FAQ
Почему в каталоге нет бейджа, а на карточке есть?
Выведите бейдж вызовом ms3discountsGetDiscount в чанке строки с параметром id товара. Цены в строках msProducts пересчитывает плагин ms3discounts.
Почему бейдж на витрине не учитывает условия корзины?
Сниппет рассчитывает цену одного товара вне контекста корзины (hasCart = false). Условия на общую сумму, количество штук или вес корзины (провайдер cart) получают статус undetermined и на цену карточки не влияют. Покупатель видит только безусловную скидку на единицу товара.
Почему в строке msProducts нет бейджа при prepareSnippet?
- У правила должен быть включён флаг «В каталоге». В режиме prepare-row сниппет отбирает правила по этому флагу; вызов с
idбезpagetitle— по «В товаре». - В строке каталога должны присутствовать
idиpagetitle. По ним сниппет определяет режим prepare-row. Если полей нет, вызов трактуется как обычный запрос списка.
Сниппет распаковывает вложенный ключ row и добавляет в строку name, description, percent, price, base_price, discount, sale_discount, remains, date_end и sale_id.
Другой путь: вызвать сниппет в чанке строки. См. Скидки в каталоге.
В каком формате выводится таймер обратного отсчёта?
Скрипт default.js находит на странице элементы .ms3d_remains[data-remain] и преобразует секунды в читаемый формат: Nд ЧЧ:ММ:СС. Если до завершения осталось меньше суток, дни скрываются и остаётся формат ЧЧ:ММ:СС.
Как работает правило «N-й товар»?
Скидка применяется к каждому N-й товару в корзине при значении параметра n ≥ 2. Все подходящие под правило единицы товара сортируются от дешёвых к дорогим. Скидка применяется к более дешёвым штукам. Если общее количество подходящих товаров меньше n, скидка не применяется.
Как добавляются и удаляются подарки?
Подарок создаётся в заказе отдельной строкой с ценой 0 и отметкой ms3discounts_gift = true. Если покупатель удаляет основной товар из корзины или уменьшает количество ниже порога, плагин удаляет подарочную строку при следующем пересчёте.
Почему BuyNow ничего не вывел?
- У акции включён флаг
show_in_catalog. - При значении
force_date=1(по умолчанию) у акции заполнена дата окончанияdate_end. - В правиле выбрана хотя бы одна include-цель: товар, категория или производитель.
Акция без конкретных include-целей действует на весь каталог в корзине. Сниппет ms3discountsBuyNow не включает её в выборку, чтобы не разворачивать весь каталог магазина.
Если ID товаров найдены, но список пуст, проверьте параметр parents. Сниппет ms3discountsBuyNow подставляет parents=0, если параметр не был передан.
Остаётся сырое число секунд вместо таймера
Подключите JS-файл витрины. В чанке нужен элемент с классом .ms3d_remains и атрибутом data-remain:
<span class="ms3d_remains" data-remain="{$remains}"></span>Сниппеты ms3discountsBuyNow и ms3discounts подключают скрипт по умолчанию из системной настройки ms3discounts_frontend_js.
Нужно ли вызывать сниппет в корзине?
Нет. Корзину пересчитывает плагин ms3discounts. Сниппеты витрины выводят бейджи, карточки и каталоги.
Почему в корзине цена без скидки?
- Проверьте, что настройка
ms3discounts_enabledвключена. - Проверьте, что правило активно и текущее время попадает в заданный период, дни недели и контекст.
- Флаги витрины (
show_in_catalog,show_in_product) влияют только на сниппеты и не отключают скидку в корзине. - После сохранения правила очистите кэш MODX и измените состав корзины.
- Правила с включённым флагом «Только после активации» применяются только после вызова сервиса
ms3discounts_activator.
Есть ли промокоды?
Пакет не включает промокоды. Скидки с активацией подключает внешний модуль через сервис ms3discounts_activator. Вызов: Интеграция.
