Бывают моменты, когда необходимо добавить "особые" условия в шаблоне материла. Ниже идут примеры, как получить быстрый доступ к данным цены с помощью 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>';
- }
Сообщение отредактировал tapakan: 25 August 2015 - 12:10