Чтобы получить такую запись:
<param name="Размер" unit="RU">43</param>
То если побыстрее, попроще:
Есть файл, в последней версии модуля он по такому пути:
catalog\model\extension\payment\yandex_money\YandexMarket.php
Там примерно на 37 стр. такой код:
elseif ($tag == 'param') {
foreach ($val as $v) {
$s .= '<param name="'.$this->prepare_field($v['name']).'">'.$this->prepare_field($v['value']).'</param>';
$s .= PHP_EOL;
}
Туда и добавить unit.
При этом сделать проверку на имя Размер, и на нужную категорию.
Ведь Размер может быть в других категориях, где не нужен unit.
Здесь для категории 20, поставьте свою:
elseif ($tag == 'param') {
foreach ($val as $v) {
if($this->prepare_field($v['name'])=='Размер' && $arr['categoryId']=='20') {
$s .= '<param name="'.$this->prepare_field($v['name']).'" unit="RU">'.$this->prepare_field($v['value']).'</param>';
}
else
$s .= '<param name="'.$this->prepare_field($v['name']).'">'.$this->prepare_field($v['value']).'</param>';
$s .= PHP_EOL;
}
unit поставьте по правилам:
https://yandex.ru/support/partnermarket/guides/clothes.html
Правки не слетят, если модуль переустановить конечно слетят.
Когда проверял, в yml выводятся только атрибуты.
То есть атрибут Размер, значение 43 выведется, такие же опции нет.
Модуль последней версии. Будет время посмотрю.
Там в саму функцию function convert_array_to_tag($arr)
которая в теги оборачивает параметры для товара уже не передаются опции.
Дело не в настройках выводить опции, не влияют.
Если как следует делать, то к опциям добавить еще поля.
Туда и прописывать единицы (unit) и значение.
А потом выводить в yml.