Перейти к основному содержимому

Правила репрайсера

Модуль ТЗ: 5.3 · Репрайсер

Что это​

Правило репрайсера описывает, как автоматически менять цену: «для этих товаров, если показатель такой-то, повысить или понизить цену на N%, но не выходить за минимальную и максимальную цену». Само создание правила цену не меняет — цены меняются при запуске репрайсера.

Где найти​

Боковое меню → «Цены» → «Репрайсер» (/app/wb/<кабинет>/repricer) → блок «Правила» и форма «Новое правило» справа от него.

Как пользоваться​

Создать правило​

Заполните форму «Новое правило»:

  1. Название — например, «Повышение при низком остатке».
  2. Область действия — на какие товары распространяется правило:
    • «Тип области»: «Один артикул» (nmId товара), «Бренд» (название бренда точно так, как оно записано в Wildberries) или «Список артикулов» (nmId через запятую или пробел);
    • «Значение» — артикул, бренд или список.
  3. Условие — когда срабатывает правило: «Показатель», «Сравнение» (больше / меньше / равно) и «Порог».
  4. Изменение цены — «Действие» («Повысить цену на» или «Понизить цену на»), величина «На, %» от 1 до 50, а также «Мин. цена, ₽» и «Макс. цена, ₽» — границы, за которые репрайсер не выйдет. Границы можно не задавать.
  5. Флажок «Правило активно» — участвует ли правило в прогонах.
  6. Нажмите «Создать правило».

Изменить, выключить или удалить правило​

В таблице «Правила» видны область, условие, действие, лимиты, частота и статус каждого правила. В колонке «Действия»:

  • «Включить» / «Выключить» — правило остаётся, но выключенное не участвует в прогонах;
  • «Редактировать» — открывает форму «Редактирование правила»; сохраните изменения кнопкой «Сохранить правило»;
  • «Удалить» — после подтверждения правило удаляется из списка. Удаление «мягкое»: прошлые прогоны и история цен по этому правилу сохраняются.

Какое правило закреплено за конкретным товаром, видно в блоке «Товары под репрайсером», колонка «Правило».

Какое правило сработает​

Если товар попадает под несколько активных правил, применяется созданное раньше всех — более старое правило имеет приоритет. Чтобы поменять приоритет, пересоздайте правила в нужном порядке.

Ограничения​

  • Показатели для условий сейчас никто не передаёт автоматически. Кнопка «Запустить» и расписание запускают движок без показателей, поэтому правило с условием по показателю в таких прогонах не срабатывает. Срабатывает оно только при запуске через API с переданными показателями.

  • Подписи показателей в форме не совпадают с тем, что проверяет движок. Фактическое соответствие сейчас такое:

    В формеЧто на самом деле проверяется
    Остаток на WBостаток в днях продаж
    Заказы за 7 днейместо товара в рейтинге продаж категории
    Маржа, %маржинальность, %
    Выкуп, %отклонение цены от средней цены конкурентов, %
    Текущая ценаотклонение цены от средней цены конкурентов, %
  • Форма умеет только процентное изменение от 1 до 50% и сравнения «больше / меньше / равно». Через API доступно больше: изменение в рублях, процент от −99 до +500, сравнения «не больше» / «не меньше» и безусловное правило always. Если такое правило открыть и сохранить в форме, оно будет перезаписано ограниченным набором формы (например, изменение в рублях превратится в процентное, а always — в «равно») или форма не даст его сохранить — правьте такие правила через API.

  • Частота в таблице правил сейчас всегда показывает «По расписанию сервиса»: интервал расписания нельзя задать ни в форме, ни через API (см. «Расписание репрайсера»).

  • Минимальная цена не может быть больше максимальной; обе — целые рубли от 1.

  • Правило по бренду срабатывает только когда при запуске известен бренд товара; при запуске кнопкой «Запустить» и по расписанию бренд не передаётся, поэтому такие правила там не срабатывают.

Связанные страницы​

Для интеграторов​

  • POST /repricer/rules — поля wbAccountId, name, conditionMetric (stock_days, sales_rank, margin_pct, price_gap_pct), conditionOperator (lt, lte, gt, gte, eq, always), conditionValue, actionType (absolute — рубли, percent — проценты от −99 до 500), actionValue (положительное — повышение, отрицательное — понижение), minPrice, maxPrice, scope (sku, brand, list), scopeValue (nmId строкой / название бренда / JSON-массив nmId, например "[123,456]"), isActive.
  • GET /repricer/rules?wbAccountId=… — фильтры scope, isActive, пагинация.
  • GET /repricer/rules/:id, PATCH /repricer/rules/:id (частичное обновление, кабинет менять нельзя), DELETE /repricer/rules/:id (мягкое удаление, 204).
  • GET /repricer/products — каталог кабинета с привязанным правилом.
  • Поле scheduleIntervalHours в API не принимается и не возвращается.
  • Справочник: API, решение — ADR-0022.