Возникла необходимость выгружать все товары в 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.
Получилось отлично все товары выгружаются все с ценами.
Может кому пригодится.
ЗЫ Отдельная благодарность Святоше и Сергею