MODX RevominiShop2: вывод популярных товаров

19 апреля, 2018
82
miniShop2: вывод популярных товаров
Как вывести популярные товары miniShop2 на любой странице

Интересно, как вывести популярные товары в MODX Revo? 

Задача такова: вывести популярные товары и если их нет, не выводить ничего. Выводить нужно в случайном порядке.

По сути нам нужно сделать проверку на наличие популярных товаров.

Приступим.

Добавим код в шаблон.

Шаблон

{var $popularProducts = $_modx->runSnippet('!msProducts', [
  'parents' => 0,
  'includeThumbs' => 'medium',
  'where' => '{
      "Data.popular:=": 1
  }',
  'limit' => '16',
  'tpl' => '@FILE PATH_TO_CHUNK.tpl',
  'sortby' => 'RAND()',
])}
{if $popularProducts != ''}
<div class="container">
  <div class="text-center">
    <div class="block-title">Популярные</div>
  </div>

  <div class="multi-5 swiper-container">
    <div class="swiper-wrapper">
      {$popularProducts}
    </div>
    <div class="carousel-controls">
      <div class="swiper-button-prev"><i class="icon icon-arrow-left"></i></div>
      <div class="swiper-button-next"><i class="icon icon-arrow-right"></i></div>
    </div>
  </div>
</div>
{/if}

В данном примере товары выводятся рандомно в карусели Swiper

Чанк

<div class="swiper-slide good-col">
  <div class="good">
    {if $favorite || $old_price?}
      <div class="good-label-left">
        <div class="label-discount">
          <span>Скидка</span>
        </div>
      </div>
    {/if}

    <div class="good-label-right">
      {if $popular?}
        <div class="label-hit">
          <span>Хит</span>
        </div>
      {/if}

      {if $new?}
        <div class="label-new">
          <span>Новинка</span>
        </div>
      {/if}
    </div>

    <div class="good-image">
      <a href="{$id | url}" title="{$longtitle}">
        {if $thumb?}
        <img src="{$medium}" alt="{$longtitle}" class="mx-auto d-block">
        {else}
          <img src="{'assets_url' | option}images/goods/ni-320.jpg" alt="{$longtitle}" class="mx-auto d-block">
        {/if}
      </a>
    </div>

    <form method="post" class="ms2_form">
      <div class="d-flex justify-content-between">
        <div class="good-code">
          Код: {$article}
        </div>
        <div class="good-fav">
          <a class="msfavorites load" data-click="" data-data-id="{$id}" data-data-list="default">
            <i class="icon icon-heart"></i>
          </a>
        </div>
      </div>

      <div class="good-title">
        <a href="{$id | url}">{$longtitle}</a>
      </div>

      <div class="d-flex justify-content-between">

        <div class="prices">
          <div class="old-price">{if $old_price?}{$old_price} ₽{/if}</div>
          <div class="price{if !$old_price?} no-discout{/if}">{$price} ₽</div>
        </div>

        <div>
          <input type="hidden" name="id" value="{$id}">
          <input type="hidden" name="count" value="1">
          <input type="hidden" name="options" value="[]">
          <button class="btn btn-buybutton" 
            type="submit" 
            name="ms2_action" 
            value="cart/add" 
            data-id="{$id}" 
            data-title="{$longtitle}" 
            data-picture="{$medium}" 
            data-price="{$price}
            ">
            <i class="icon icon-shopping-bag"></i> <span>В корзину</span>
          </button>
        </div>

      </div>
    </form>
  </div>
</div>

 

Итог

Популярные товары

 

Теги:

Поделиться