Кастомизация экспорта в Яндекс.Маркет на примере добавления тега sales_notes

Задача довольно распространенная, однако, почему-то, вызывает трудности у большинства клиентов. Сама логика формирования YML файла заложена в ядре продукта — в /bitrix/modules/catalog/load/yandex_run.php. Однако, данный файл подключается не на прямую, а через обертку — /bitrix/php_interface/include/catalog_export/yandex_run.php, что оставляет нам шанс изменить логику формирования без правки ядра продукта.

Файл /bitrix/modules/catalog/load/yandex_run.php мы копируем в /bitrix/php_interface/include/catalog_export/ с заменой, затем вносим правку, чтобы реализовать свою логику.

Например, нам нужно добавить очень важный тег sales_notes — нужен для информации о необходимости предоплаты, о том, что товар только под заказ, об акциях и прочей мелкой, но важной информации. Судя по документации, он должен идти сразу после тега description (описания).

Добавим в начало файла строку (содержание тега можно вписать на свой вкус):

$sales_notes_value = «Под заказ»;

Затем ищем, где формируются теги для каждого товара и добавляем:

case ‘sales_notes’:
$strTmpOff .=
««.yandex_text2xml($sales_notes_value).»\n»;
break;

Данную правку нужно сделать еще в 3 местах,