Skip to content
msPriceTiers
msPriceTiers
Оптовые цены по количеству для MiniShop3 — пороги на товаре и категории, сумма корзины, шаблоны, массовые операции, ms3Variants
  1. Компоненты
  2. msPriceTiers
  3. Начало работы

Быстрый старт

Установка и первые оптовые пороги на карточке товара за ~15 минут.

Требования

ТребованиеВерсия
MODX Revolution3.0+
PHP8.2+
MiniShop3установлен
pdoTools3.x (Fenom-чанки)
VueToolsвкладка «Оптовые цены» в MS3

Шаг 1: Установка пакета

  1. Подключите ModStore.
  2. Extras → Installer → Download ExtrasmsPriceTiersDownloadInstall.
  3. Убедитесь, что установлены MiniShop3 и VueTools.
  4. Настройки → Очистить кэш.

Пакет: msPriceTiers на modstore.pro.

После установки

ЭлементОжидание
Сервис mspricetiersВ $modx->services
СниппетыmsPriceTiers, msPriceTiers.initialize, msPriceTiersProgress
Плагин mspricetiers_eventsВключён, подписка на события MS3
Таблицыmspricetiers_product_tier, пороги категории и корзины, шаблоны
Вкладка на товаре«Оптовые цены» (при VueTools)
Extras → msPriceTiersПороги по сумме корзины, массовые операции

Шаг 2: Системные настройки

Настройки → Системные настройки, фильтр mspricetiers.

Минимум для витрины:

КлючЗначение
mspricetiers_enabledДа
mspricetiers_apply_on_product_pageДа
mspricetiers_apply_in_cartДа
mspricetiers_cart_tiers_enabledДа, если нужны пороги по сумме корзины
mspricetiers_integrate_ms3variantsДа, если используете ms3Variants

Полный список: Системные настройки.

Шаг 3: Пороги в админке

  1. Мини-магазин → Товары — откройте товар.
  2. Вкладка «Оптовые цены»+ Добавить.
  3. Пример: Количество от 10, режим Фикс. цена ₽Цена 900; или режим Скидка %15.
  4. Сохраните.

Зачёркнутая цена на витрине — из карточки товара MS3, не из формы порога. Подробнее: Управление порогами.

Шаг 4: Сниппеты на карточке товара

На шаблоне ресурса msProduct (некэшированно):

fenom
{'!msPriceTiers.initialize' | snippet}

<section class="price-tiers">
  <h3>{'mspricetiers_price_tiers' | lexicon}</h3>
  {'!msPriceTiers' | snippet : ['product' => $_modx->resource.id]}
</section>
modx
[[!msPriceTiers.initialize]]

<section class="price-tiers">
  <h3>[[%mspricetiers_price_tiers]]</h3>
  [[!msPriceTiers?
    &product=`[[*id]]`
  ]]
</section>

Шаг 5: Разметка количества

Чтобы цена пересчитывалась при смене количества, поле должно быть в форме с классами компонента:

fenom
<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>
modx
<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 — форма вариантов на странице (см. Интеграция).

Шаг 6: Проверка

ДействиеОжидание
Открыть карточку товараТаблица порогов видна
Увеличить количество до 10+Цена на странице меняется
Добавить в корзину 10+ шт.В корзине цена по порогу
Вкладка не появиласьУстановить VueTools, жёсткое обновление (Cmd+Shift+R)

Прогресс-бар до следующего порога:

fenom
{'!msPriceTiersProgress' | snippet : ['product' => $_modx->resource.id]}
modx
[[!msPriceTiersProgress?
  &product=`[[*id]]`
]]

Нужен mspricetiers_progress_bar_enabled = Да. См. Сниппет msPriceTiersProgress.

Прогресс по сумме корзины и обновление без перезагрузки — Интеграция.

Дальше