Бывают моменты, когда необходимо добавить "особые" условия в шаблоне материла. Ниже идут примеры, как получить быстрый доступ к данным цены с помощью API.
1. Условие от наличия товара на складе.
// Получаем из материала элемент цены по его идентификатору $jbprice = $item->getElement('ELEMENT_ID'); // Создаем/Получаем объект JBCartVariantList. С ним и работаем. $list = $jbprice->getList(); if($list->current()->inStock(1)) { echo '<div class="container-in-stock"></div>'; } else { echo '<div class="container-notin-stock"></div>'; }
2. Условие от стоимости товара.
// Получаем из материала элемент цены по его идентификатору $jbprice = $item->getElement('ELEMENT_ID'); // Создаем/Получаем объект JBCartVariantList. С ним и работаем. $list = $jbprice->getList(); // Узнаем итоговую стоимость $total = $list->getTotal(); // Если стоимость товара больше 3000 рублей. if($total->compare('3000 rub', '=>')) { echo '<div class="container-rich"></div>'; } else { echo '<div class="container-poor"></div>'; }
3. Есть/Нет скидки.
// Получаем из материала элемент цены по его идентификатору $jbprice = $item->getElement('ELEMENT_ID'); // Создаем/Получаем объект JBCartVariantList. С ним и работаем. $list = $jbprice->getList(); $total = $list->getTotal(); $price = $list->getPrice(); $discount = $total->minus($price, true); $discount->positive(); if(!$discount->isEmpty()) { echo '<div class="container-discount"></div>'; } else { echo '<div class="container-no-discount"></div>'; }
4. Произвольное условие.
// Получаем из материала элемент цены по его идентификатору $jbprice = $item->getElement('ELEMENT_ID'); // Создаем/Получаем объект JBCartVariantList. С ним и работаем. $list = $jbprice->getList(); // Получаем элемент цены с актуальными данными $element = $list->current()->get('ELEMENT_ID'); // Value элемента $value = $element->get('value'); if($value == 'Искомое значение') { echo '<div class="container-foundit"></div>'; } else { echo '<div class="container-no-results"></div>'; }
Edited by tapakan, 25 August 2015 - 12:10.