Откройте файл Pricelist.php, найдите метод ClientPricelist::fetch_yandex_pricelist, строка 268. В ней запрос селекта категорий. В этом запросе добавьте колонку single_name, должно получиться так.
$query = 'SELECT `category_id`, '
. '`parent`, '
. '`name`, '
. '`single_name`, '
. '`order_num` '
. 'FROM ' . $dbtable_cats . ' '
. 'WHERE `enabled` = 1 '
. 'AND `hidden` = 0 '
. 'AND (`ymarket` & ' . $mask . ') != 0 '
. 'ORDER BY `parent` ASC, '
. '`order_num` DESC;';
Вот из базы селектится еще и название категорий в единственном числе. Теперь вставить его в разметку Яндекса. Но сначала надо удалить строку 319, иначе категории не будут доступны ниже, где разбирают товары.
unset($used);
Убрали? Теперь идите к строке 421. Вот она.
$model = $this->db->get_compound_product_model_text($item);
После нее добавьте такую строку.
if (isset($used[$item->category_id])) $model = ltrim($used[$item->category_id]->single_name . ' ') . $model;
Должно сработать, не проверял. Отпишите получилось?
Проверить можно так. Скачайте http://site.com/yandex.xml, в коде посмотрите есть перед товарами категория. Ищите по тегам <model> или <name>.