Возникла необходимость выгружать все товары в XML для порталов и так далее.
Но у товаров две цены и хотелось выгружать либо первую либо вторую, если первой нет.
И так первую часть рецепты по убиранию проверки на наличие тут http://forum.jbzoo.c...om-yml/?p=85517
Идем \media\zoo\applications\jbuniversal\framework\helpers\jbyml.php
Везде где фигурирует $balance = 0 нужного элемента цены заменить false на true и везде $available[$key] = 'true';
Далее ваш шаблон экспорта \media\zoo\applications\jbuniversal\templates\ШАБЛОН\renderer\item\ymlexport.php
Убираем проверку на ноль
<?php if ($item_params['price'][$item->id] != 0 || !empty($item_params['price'][$item->id])) : ?>
И закрывающий тег php в самом низу.
Но теперь встает вопрос как выводить обе цены, а точнее одну из них.
У меня вышло вот так
<price>
<?php
// Получаем из материала элемент цены по его идентификатору
$jbprice = $item->getElement('id цены 1');
// Создаем/Получаем объект JBCartVariantList. С ним и работаем.
$list = $jbprice->getList();
// Узнаем итоговую стоимость
$total = $list->getTotal();
// Если стоимость товара меньше или равна 0 рублей.
if($total->compare('0 rub', '=')) {
$jbprice = $item->getElement('id цены 2');
$total = $jbprice->getList()->getTotal();
echo $total->plain($currency);
} else {
$jbprice = $item->getElement('id цены 1');
$total = $jbprice->getList()->getTotal();
echo $total->plain($currency);
}
?>
</price>
Т.о. Если цена 1 ровна нулю, то выводим цену 2, если не равна нулю то выводим цену 1.
Получилось отлично все товары выгружаются все с ценами.
Может кому пригодится.
ЗЫ Отдельная благодарность Святоше и Сергею











