
msPriceTiers
Оптовые цены по количеству для MiniShop3 — пороги на товаре и категории, сумма корзины, шаблоны, массовые операции, ms3Variants


Установка и первые оптовые пороги на карточке товара за ~15 минут.
| Требование | Версия |
|---|---|
| MODX Revolution | 3.0+ |
| PHP | 8.2+ |
| MiniShop3 | установлен |
| pdoTools | 3.x (Fenom-чанки) |
| VueTools | вкладка «Оптовые цены» в MS3 |
Пакет: msPriceTiers на modstore.pro.
| Элемент | Ожидание |
|---|---|
Сервис mspricetiers | В $modx->services |
| Сниппеты | msPriceTiers, msPriceTiers.initialize, msPriceTiersProgress |
Плагин mspricetiers_events | Включён, подписка на события MS3 |
| Таблицы | mspricetiers_product_tier, пороги категории и корзины, шаблоны |
| Вкладка на товаре | «Оптовые цены» (при VueTools) |
| Extras → msPriceTiers | Пороги по сумме корзины, массовые операции |
Настройки → Системные настройки, фильтр mspricetiers.
Минимум для витрины:
| Ключ | Значение |
|---|---|
mspricetiers_enabled | Да |
mspricetiers_apply_on_product_page | Да |
mspricetiers_apply_in_cart | Да |
mspricetiers_cart_tiers_enabled | Да, если нужны пороги по сумме корзины |
mspricetiers_integrate_ms3variants | Да, если используете ms3Variants |
Полный список: Системные настройки.
10, режим Фикс. цена ₽ → Цена 900; или режим Скидка % → 15.Зачёркнутая цена на витрине — из карточки товара MS3, не из формы порога. Подробнее: Управление порогами.
На шаблоне ресурса msProduct (некэшированно):
{'!msPriceTiers.initialize' | snippet}
<section class="price-tiers">
<h3>{'mspricetiers_price_tiers' | lexicon}</h3>
{'!msPriceTiers' | snippet : ['product' => $_modx->resource.id]}
</section>[[!msPriceTiers.initialize]]
<section class="price-tiers">
<h3>[[%mspricetiers_price_tiers]]</h3>
[[!msPriceTiers?
&product=`[[*id]]`
]]
</section>Чтобы цена пересчитывалась при смене количества, поле должно быть в форме с классами компонента:
<form method="post" class="ms3_form mspricetiers-form">
<input type="hidden" name="id" value="{$_modx->resource.id}">
<label>Количество</label>
<input type="number" name="count" class="mspricetiers-quantity" value="1" min="1">
<button type="submit" name="ms3_action" value="cart/add">В корзину</button>
</form><form method="post" class="ms3_form mspricetiers-form">
<input type="hidden" name="id" value="[[*id]]">
<label>Количество</label>
<input type="number" name="count" class="mspricetiers-quantity" value="1" min="1">
<button type="submit" name="ms3_action" value="cart/add">В корзину</button>
</form>С ms3Variants — форма вариантов на странице (см. Интеграция).
| Действие | Ожидание |
|---|---|
| Открыть карточку товара | Таблица порогов видна |
| Увеличить количество до 10+ | Цена на странице меняется |
| Добавить в корзину 10+ шт. | В корзине цена по порогу |
| Вкладка не появилась | Установить VueTools, жёсткое обновление (Cmd+Shift+R) |
Прогресс-бар до следующего порога:
{'!msPriceTiersProgress' | snippet : ['product' => $_modx->resource.id]}[[!msPriceTiersProgress?
&product=`[[*id]]`
]]Нужен mspricetiers_progress_bar_enabled = Да. См. Сниппет msPriceTiersProgress.
Прогресс по сумме корзины и обновление без перезагрузки — Интеграция.
data-mspt-live