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)

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

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

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

КлючЗначение
mspricetiers_enabledДа
mspricetiers_apply_on_product_pageДа
mspricetiers_apply_in_cartДа
mspricetiers_integrate_ms3variantsДа, если используете ms3Variants

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

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

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

Подробнее: Управление порогами.

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

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

fenom
{* Подключение CSS/JS и конфигурации *}
{'!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.

Дальше