Забавно - тут на форуме кода ТДС почему-то не видно, пустой пост отображается )
Но на почту мне уведомление пришло. И я таки оказался прав, но все еще более забавно
Элемент $external_propertys['mark_code'] заполняется у вас _после_ вызова методов отображения как списка товаров так и карточки товара. То есть в XML этот элемент массива не передается! А значит в XSL мы не можем получить его значение

Переместите выделенный код _перед_ вызовами методов ShowShop() и ShowItem()
P.S. А вообще - ну и кошмар же у вас в коде! Javascript по правилам хорошего тона должен выноситься в отдельный js-файл который подключается к макету с помощью html-тега script