Skip to content
ms3Discounts
Правила скидок для MiniShop3. Без промокодов
  • MODX 3
  • PHP 8.2
  • miniShop3
  • Vue 3
  1. Компоненты
  2. ms3Discounts
  3. Витрина
  4. Сниппет ms3discountsBuyNow

Сниппет ms3discountsBuyNow ​

Сниппет находит товары, попадающие под действующие акции с включённым флагом show_in_catalog, передаёт список ID в сниппет msProducts и возвращает готовую разметку подборки.

Как сниппет собирает товары по целям правила:

  • product — конкретные ID товаров добавляются напрямую.
  • category — добавляются товары категорий (включая основные категории и связи msCategoryMember).
  • vendor — добавляются все товары указанных производителей.

Акции со сферой «Весь каталог» без явного указания включаемых целей в выборку сниппета не попадают. Это предотвращает случайную выгрузку всего каталога магазина.

По умолчанию сниппет передаёт в msProducts параметры parents=0 и tpl=tpl.ms3discounts.buynow.row. Скидочные цены в подборке пересчитывает плагин, бейдж выводится вызовом ms3discountsGetDiscount в чанке строки.

Параметры ​

ПараметрПо умолчаниюОписание
saleпустоСписок ID акций через запятую для фильтрации
force_date11 — отбирать только акции с заполненной датой окончания date_end. 0 — отбирать любые акции
tpltpl.ms3discounts.buynow.rowИмя чанка строки товара для msProducts
frontend_cssиз настроекПуть к CSS-файлу витрины
frontend_jsиз настроекПуть к JS-файлу таймера

Все остальные переданные параметры (например limit, sortby, where, parents) без изменений передаются в msProducts.

Если подходящих товаров не найдено, сниппет возвращает пустую строку и не запускает msProducts.

Работа таймера ​

Чанк по умолчанию tpl.ms3discounts.buynow.row содержит разметку таймера с классом .ms3d_remains и атрибутом data-remain:

fenom
<span class="ms3d_remains" data-remain="{$remains}"></span>

Скрипт default.js автоматически запускает обратный отсчёт времени до окончания акции.

Примеры вызова ​

Вывод 8 акционных товаров со сроком действия:

fenom
{'!ms3discountsBuyNow' | snippet : [
  'force_date' => 1,
  'limit' => 8,
]}
modx
[[!ms3discountsBuyNow?
  &force_date=`1`
  &limit=`8`
]]

Выборка товаров конкретной акции по её ID:

fenom
{'!ms3discountsBuyNow' | snippet : [
  'sale' => 5,
  'limit' => 12,
]}
modx
[[!ms3discountsBuyNow?
  &sale=`5`
  &limit=`12`
]]