Цены · Автоматика

Ценообразование: правила, наценка и формула, 5 видов округления, очередь пересчёта

Правила ценообразования живут в дереве папок. У каждого правила есть приоритет, порядок внутри приоритета, период действия (с какого по какое число), список товаров, к которым оно применяется (через гибкий отбор по категориям, типам, производителям, тегам и характеристикам), диапазон допустимой базовой цены, базовый тип цены (например, «считать от закупочной» или «от розничной»), способ расчёта (наценка в процентах или формула) и один из пяти видов округления: без округления, до целого, до десятков, на 9.90 (психологические цены) или до сотен. Одно правило может одновременно работать на несколько ценовых типов (Розница, Опт, VIP, Онлайн) — каждому типу задаётся своя наценка. Правила перебираются по приоритету и порядку, «побеждает» последнее подходящее. Поверх результата накладываются акции, а самый высокий приоритет — у ручных фиксированных цен, которые автоматика не трогает. Пересчёт идёт через очередь с историей и расписанием автоматической обработки.

5
видов округления
3
уровней приоритета
24+
операций
2
способов расчёта
Все возможности
Преимущества

Что получает бизнес от модуля

Правила в дереве папок

Правила раскладываются по папкам — например, «Бытовая техника», «Сезонные акции», «VIP-клиенты», «Защита РРЦ». Папки можно вкладывать друг в друга на любую глубину. Правило может лежать в папке или в корне дерева. Когда система считает цену товара, она проходит по всему дереву и собирает все применимые правила в единый список с глобальным порядком применения. Папки упрощают навигацию, когда правил становится больше двух десятков.

Гибкий отбор товаров

Каждое правило само описывает, к каким товарам оно относится: можно указать категории, типы товаров, производителей, теги, характеристики. Несколько условий складываются в строки отбора — например, «все холодильники Bosch объёмом от 400 л» или «вся бытовая химия со скидочной меткой». В карточке категории сразу видно, сколько правил её затрагивают — это помогает не плодить пересекающиеся настройки.

Наценка или формула

У правила два способа считать цену. Простая наценка: «прибавить 30% к закупочной» — указываешь процент, всё остальное считается само. Формула: пишешь произвольное выражение от переменной «база» (например, «база × 0.85 − 100» — минус 15% и ещё минус сто рублей). Формула поддерживает арифметику и скобки, проверяется на безопасность перед расчётом. Если в формуле что-то не так — система не сломает цену, а вернёт базу как есть.

5 видов округления

После расчёта цену можно округлить пятью способами: оставить как есть, округлить до целого, до десятков, до сотен или привести к «психологической» цене с окончанием на 9.90. Округление выбирается на каждое правило отдельно. Это удобно, чтобы выдержать единый стиль ценников по сети — например, «вся розница оканчивается на 9.90, а опт округляется до десятков». Никакого ручного редактирования каждой цены — политика выдерживается сама.

Своя наценка для каждого ценового типа

Одно правило умеет одновременно работать на Розницу, Опт и VIP — для каждого ценового типа задаётся собственный процент наценки. Например, правило «Скидка по сезону» поднимает розницу на 10%, опт на 5%, а VIP-клиентам даёт минус 15%. Не нужно держать три отдельных правила-близнеца — всё в одной карточке, разные настройки для разных каналов продаж.

Конфликты, превью и проверка

Система сама находит правила, которые пересекаются — затрагивают одни и те же товары в одно и то же время. Перед сохранением нового правила можно посмотреть превью: сколько товаров оно затронет, как изменятся цены, кто выйдет за допустимые границы. Для разбора спорной цены — отдельная проверка по одному товару: видно, какие правила примерялись, какие подошли, какое в итоге сработало и почему.

Очередь пересчёта

Когда меняется правило, закупочная цена или акция — все затронутые товары попадают в очередь пересчёта. Можно обработать всю очередь сразу, выбрать отдельные позиции или очистить её целиком. Есть расписание автоматической обработки — например, каждую ночь пересчитывать накопившееся. Тяжёлый пересчёт идёт фоном и не тормозит работу пользователей, история всех пересчётов сохраняется.

История применений и аналитика

По каждому правилу видно историю: какие товары и когда под него попадали, на сколько изменилась цена, было ли отказано. По всей системе — общие счётчики: сколько правил активно, сколько срабатываний за период, какие правила «спят» и могут быть отключены. Это даёт ответ на вопрос «почему именно такая цена» в три клика, без выгрузки базы в Excel.

Три уровня приоритета

Цена считается по трём уровням. На самом верху — ручные фиксированные цены: если сотрудник зафиксировал цену вручную, автоматика её не тронет. Ниже — правила ценообразования, перебираются по приоритету и порядку. Поверх результата правил — акции и кампании. Такая схема даёт безопасный выход: важную цену всегда можно «прибить гвоздями» вручную, а массовый расчёт оставить системе.

Возможности модуля

Что входит в Автоматика

  1. 01

    Карточка правила: всё необходимое

    У правила задаются папка хранения, порядок применения, приоритет (чем больше — тем «крупнее» правило), магазин (можно сделать глобальное правило для всей сети или привязать к одному магазину), период действия с указанием начальной и конечной даты, гибкий отбор товаров, допустимый диапазон базовой цены, базовый тип цены, способ расчёта, формула, округление, флаг «учитывать РРЦ» и текстовое описание. Удаление мягкое — карточка не пропадает физически, её можно восстановить.

  2. 02

    Папки правил с вложенностью

    Папки правил организованы в дерево любой глубины: «Бытовая техника» → «Холодильники» → «Премиум». Папки можно создавать, переименовывать, перетаскивать мышкой для смены порядка. Правила перетаскиваются между папками — это помогает реорганизовать систему, когда правил становится много. Дерево папок видно целиком, открывается и сворачивается по нужным веткам.

  3. 03

    Одно правило — разные наценки на каналы

    Внутри правила задаётся список ценовых типов, на которые оно действует: Розница, Опт, VIP, Маркетплейс. Для каждого ценового типа — своя наценка в процентах. Удобно для сетевой работы: одно правило закрывает сразу все каналы продаж, не нужно дублировать настройки. При изменении правила цены пересчитываются сразу по всем выбранным каналам.

  4. 04

    Справочник ценовых типов

    Список ценовых типов настраивается под бизнес: Закупочная, Розница, Опт, VIP, Онлайн, для маркетплейсов. У каждого типа — название, описание, флаги «встроенный» (нельзя удалить из системы) и «это закупочная цена», привязка к каналу продаж, порядок отображения. Порядок меняется перетаскиванием в интерфейсе — то, что чаще нужно, ставится в начало.

  5. 05

    Расчёт цены: чёткая иерархия приоритетов

    Когда нужно посчитать цену товара, система действует по строгому порядку. Сначала проверяет, не зафиксирована ли цена вручную — если да, она и есть итог, никакая автоматика не вмешивается. Если ручной цены нет — перебирает правила и считает цену по последнему подходящему. Поверх результата накладывается акция, если она действует. Полученная цена сохраняется по комбинации «товар × магазин × ценовой тип». Если ни одно правило не подошло — старая цена аккуратно удаляется, чтобы не висели устаревшие значения.

  6. 06

    Алгоритм перебора правил

    Все правила выстраиваются в единую цепочку по приоритету, внутри одного приоритета — по порядку. Для каждого правила проверяется: попадает ли сегодняшняя дата в период действия, работает ли это правило на нужный ценовой тип, подходит ли товар под условия отбора, есть ли у товара базовая цена и попадает ли она в допустимый диапазон. Если всё совпало — считается цена, применяется округление, отрицательные значения отсекаются. Промежуточный результат запоминается, и следующее подходящее правило может его переписать — побеждает последнее.

  7. 07

    Безопасные формулы

    Формула — это арифметическое выражение от переменной «база». В формулу разрешены только цифры, точка, пробелы, плюс, минус, умножение, деление, проценты и скобки. Любые буквы, кавычки или подозрительные символы блокируются ещё до расчёта, в журнал пишется предупреждение, а цена возвращается без изменений. Если выражение по какой-то причине не сошлось в число — то же самое, базовая цена остаётся как есть. Никакого риска, что через формулу можно «положить» систему.

  8. 08

    Пять видов округления на выбор

    После расчёта цена приводится к удобному виду. Без округления — оставляем как посчитали. До целого — 1234.57 становится 1235. До десятков — 1234 превращается в 1230. До «психологических» 9.90 — 1234 становится 1229.90 (классическая ценовая политика «всё с девятками»). До сотен — 1234 округляется до 1200. Каждое правило само выбирает, какое округление ему нужно — поэтому можно мешать в одной системе акционные цены с «9.90» и оптовые с округлением до десятков.

  9. 09

    Учитывать РРЦ производителя

    У правила есть переключатель «считать от РРЦ» — рекомендованной розничной цены производителя. Полезно, когда дилерское соглашение запрещает продавать дешевле, чем сказал бренд. Создаёшь правило «не дороже РРЦ» с этим переключателем и формулой «база × 1.00» — и наша цена держится ровно на уровне рекомендованной. У товаров без РРЦ правило просто пропускается, без ошибок.

  10. 10

    Диапазон базовой цены

    Правило срабатывает только если базовая цена товара попадает в указанный диапазон. Если базовая 12 000 ₽, а правило настроено «от 20 000 ₽» — оно пропускается. Это позволяет делать разные правила для разных ценовых сегментов: на дешёвые товары — большая наценка, на дорогие — поменьше, чтобы оставаться в рынке. Никакой дополнительной классификации товаров не нужно, всё считается от цены.

  11. 11

    Очередь пересчёта цен

    Все товары, которым нужно пересчитать цены, попадают в общую очередь. Видно её текущее состояние, статистику обработки и историю прошлых пересчётов. Можно добавить один товар или сразу пачку, запустить обработку всей очереди или только выбранных строк, очистить очередь, удалить конкретную запись. Есть настройки автоматической обработки по расписанию — например, каждую ночь. Тяжёлый пересчёт выполняется фоном и не блокирует работу пользователей.

  12. 12

    Связь с карточкой товара

    После расчёта цена сохраняется по тройке «товар × магазин × ценовой тип» — у каждого магазина и каждого канала продаж своё значение. Параллельно в карточку товара уходит «обзорная» розничная цена для быстрого фильтра в каталоге и поиске. Всё это происходит автоматически, без участия пользователя: подписался — изменение цены в одном месте сразу синхронизируется со всеми связанными.

  13. 13

    Акции поверх правил

    Акции и кампании — отдельная сущность со своими настройками скидок. Они не подменяют базовые правила, а накладываются поверх результата. Акция может действовать только на выбранные ценовые типы (например, только на Розницу, а Опт не трогать), только на выбранные товары и только в выбранных магазинах. Это даёт ясное разделение: базовое ценообразование живёт само по себе, маркетинговые кампании накладываются сверху и так же чисто заканчиваются.

  14. 14

    Ручные фиксированные цены

    Если у товара выставлена ручная цена — никакое правило её не пересчитает. Это сценарий «зафиксировано по согласованию»: например, особая цена для VIP-клиента, обещанная директору, или цена, утверждённая на совещании. Система сначала проверяет наличие ручной цены и, если она есть, использует её без оглядки на правила и акции. Безопасный способ выйти из автоматики в нужном месте.

  15. 15

    Массовые действия и копирование

    Выбираешь несколько правил в списке — и сразу удаляешь их, переносишь в другую папку или отправляешь все затронутые ими товары в очередь пересчёта. Любое правило можно скопировать целиком — это быстрый способ сделать вариант «как существующее, но с другим периодом действия и наценкой». Отдельно есть операция «отправить товары этого правила в пересчёт» — удобно после ручной правки настроек.

  16. 16

    Превью, конфликты, проверка на товаре

    Превью отвечает «что станет с ценами, если я сохраню это правило»: сколько товаров затронет, как изменятся цены, кто выйдет за допустимые границы. Проверка конфликтов ищет уже существующие правила, которые пересекаются по списку товаров и периоду действия — чтобы новое правило не наступало на старое. Проверка на товаре берёт конкретную позицию и показывает шаг за шагом, какие правила примерялись, какие подошли, какое в итоге сработало.

  17. 17

    Права доступа

    Доступ разделён на два блока. Блок «Правила ценообразования» — четыре права: создавать, изменять, видеть, удалять. Блок «Справочник ценовых типов» — отдельные четыре права. Управление справочником обычно остаётся за финансовой службой, а правила цен — за коммерческой. Менеджеры категорий получают только просмотр, чтобы понимать, как сформирована цена их товара, но не править её.

  18. 18

    Богатый набор операций

    Кроме обычных «создать, открыть, изменить, удалить» доступны массовые операции (удалить пачкой, перенести пачку в другую папку, отправить пачку в пересчёт), копирование правила, превью, проверка конфликтов, проверка на товаре, переупорядочивание перетаскиванием. Отдельно — статистика по всей системе, по конкретному правилу и история применений. Для папок и ценовых типов — свои операции с деревом и порядком. Очередь пересчёта закрывается ещё дюжиной операций.

  19. 19

    Умное кэширование

    Расчёт цен — операция тяжёлая, поэтому промежуточные результаты кэшируются. Кэш разделён на несколько независимых тегов: отдельно справочник правил, отдельно их формулы, отдельно итоговые расчёты. При изменении правила сбрасывается только нужная часть кэша — а не весь сразу. Пользователь работает быстро, расчётная нагрузка на сервер остаётся низкой.

Интерфейс

Как это выглядит в системе

Правила ценообразования: папки, приоритет, период, способ расчёта
Карточка правила: товары, формула, диапазон, округление
Иерархия папок правил ценообразования
История применений: какие товары и когда попали под правило
Пошаговый разбор цены: база, формула, округление
Статистика правил: применения, изменения цен, отказы
FAQ

Частые вопросы

Сколько способов расчёта в правиле?

Два. Первый — простая наценка: указываешь процент, цена считается как «база плюс этот процент». Для каждого ценового типа (Розница, Опт, VIP) задаётся свой процент. Второй — формула от переменной «база»: пишешь произвольное арифметическое выражение, например «база × 0.85 − 100» (минус 15% и ещё сто рублей сверху). Любая ошибка в формуле безопасна — система просто оставит базовую цену без изменений.

Насколько безопасны формулы?

Безопасны. В формуле разрешены только цифры, точка, пробелы, плюс, минус, умножение, деление, проценты и скобки. Любые буквы, кавычки, специальные символы блокируются ещё до начала расчёта, в журнал пишется предупреждение, а цена возвращается как была. Если выражение по какой-то причине не сошлось в число — то же самое. Через формулу невозможно выполнить какой-либо вредоносный код или получить доступ к данным системы.

Какие виды округления есть?

Пять. Без округления — цена остаётся как посчитали. До целого рубля. До десятков (1234 становится 1230). На 9.90 — психологические цены, всё оканчивается на 9.90 (1234 становится 1229.90). До сотен (1234 становится 1200). Округление выбирается на каждое правило отдельно — можно мешать в одной системе акционные цены с «девятками» и оптовые с округлением до десятков.

Что такое психологическое округление на 9.90?

Это классическая ценовая политика «всё с девятками». Любая цена приводится к виду, оканчивающемуся на 9.90 — например, 1 234 ₽ становится 1 229.90 ₽. Округление идёт всегда вниз, в пользу покупателя — мы не задираем цену в большую сторону. На больших объёмах работает на восприятие: покупателю кажется, что товар «чуть дешевле тысячи двухсот», хотя по факту он почти за неё.

Как правила выстраиваются в цепочку?

Все правила со всех папок собираются в единый список и сортируются: сначала по приоритету, внутри одного приоритета — по порядку. Система проходит по цепочке и для каждого подходящего правила обновляет промежуточный результат. В итоге побеждает последнее сработавшее правило. Это значит, что более «крупное» правило, поставленное позже в цепочке, может перекрыть результат более раннего — удобно для общих ограничений (например, «минимальная маржа 12%»), которые срабатывают финально.

Что такое базовый тип цены?

Это тип цены, от которого правило считает наценку или формулу. Если не указан — берётся закупочная цена товара. Если указан — берётся соответствующая цена (например, «считать от Розницы»). Классический сценарий: «Опт = Розница минус 15%» — у этого правила базовый тип «Розница». Если у товара ещё нет розничной цены — правило просто пропускается, ошибки не будет.

Как описать, к каким товарам применяется правило?

У правила есть гибкий конструктор отбора. Несколько строк с условиями — категория, тип товара, производитель, теги, флаги. Условия складываются в логические наборы: «все холодильники Bosch объёмом от 400 л со скидочной меткой». Когда система считает цену конкретного товара, она проверяет, попадает ли он под все условия отбора. В карточке категории сразу видно, сколько правил её затрагивают — это помогает не плодить пересекающиеся настройки.

Что такое переключатель «учитывать РРЦ»?

У правила есть отдельный переключатель «считать от РРЦ» — рекомендованной розничной цены производителя. Если он включён, базовая цена для расчёта берётся не из закупочной и не из связанного ценового типа, а из РРЦ. Сценарий: правило «Не дороже РРЦ» с формулой «база × 0.97» — гарантирует, что наша цена держится на 3% ниже рекомендованной производителем. У товаров без РРЦ правило просто пропускается, ошибок не возникает.

Как работают приоритет и порядок?

Приоритет — это «крупность» правила, целое число (чем больше — тем важнее). Порядок — это позиция правила внутри одного приоритета. Сначала система сортирует все правила по приоритету, потом — по порядку. Поскольку выигрывает последнее подходящее правило в цепочке, общие «глобальные» ограничения (типа «минимальная маржа 12%») ставят с самым большим приоритетом — они срабатывают в конце и накрывают всё, что было раньше.

Какая общая иерархия приоритетов?

Три уровня сверху вниз. Первый — ручные фиксированные цены: если у товара выставлена ручная цена, никакое правило её не тронет. Второй — правила ценообразования: перебираются по приоритету и порядку, побеждает последнее подходящее. Третий — акции: накладываются поверх результата правил, давая итоговую цену с учётом кампании. Такая иерархия даёт безопасный «ручной выход» из автоматики и при этом сохраняет гибкое сочетание базовых правил и маркетинговых акций.

Что такое папки правил?

Дерево любой глубины для организации правил: «Бытовая техника» → «Холодильники» → «Премиум». Правило может лежать в папке или в корне. Дерево видно целиком, открывается и сворачивается по веткам. Папки переименовываются и переставляются мышкой, правила перетаскиваются между папками. Когда правил становится больше двух-трёх десятков — без папок начинается каша.

Можно ли применить одно правило сразу к нескольким ценовым типам?

Да. Внутри правила выбирается список ценовых типов (Розница, Опт, VIP, Маркетплейс), и для каждого задаётся своя наценка. Пример: правило «Сезонная скидка» поднимает розницу на 10%, опт на 5%, VIP-клиентам даёт минус 15%. Это одно правило в системе, а не три-четыре копии — изменение настроек идёт в одном месте, цены пересчитываются сразу по всем каналам.

Можно ли посмотреть, что станет с ценами до применения?

Да. У правила есть превью: до сохранения видно, сколько товаров оно затронет, какие новые цены они получат, кто выйдет за допустимые границы. А для разбора конкретной ситуации есть отдельная проверка: указываешь товар — и получаешь детальный пошаговый разбор, какие правила примерялись в каком порядке и с какими промежуточными значениями. Удобно для обучения новых сотрудников и для аудита спорных цен.

Что такое конфликты правил?

Система сама находит правила, которые пересекаются — затрагивают одни и те же товары в одно и то же время действия. Например, две акции на одну категорию в один день: какая из них «выиграет», непонятно без разбора приоритетов. Проверка конфликтов возвращает пары пересекающихся правил с описанием. Это помогает находить «забытые» старые правила, которые тихо мешают новым настройкам.

Что такое очередь пересчёта?

Список товаров, которым нужно пересчитать цены — например, после изменения правила, обновления закупочной цены или запуска новой акции. Можно добавлять товары по одному или пачкой, обрабатывать всю очередь, только выбранные строки, очищать, удалять отдельные записи. Есть статистика и история, есть настройки автоматической обработки по расписанию (например, каждую ночь). Тяжёлый пересчёт идёт фоном и не тормозит работу пользователей.

Что такое история применений?

Подробный журнал: какие товары и когда попадали под какое правило, какая была цена до и после, кто инициировал пересчёт, в чём была причина. По любому правилу можно открыть его историю и посмотреть, как часто оно срабатывает и на какие товары. Незаменимо для разбора жалоб «у меня в чеке цена выше, чем на сайте» — быстро видно, какое правило в какой момент это сделало.

Как сделать массовый пересчёт?

Выбираешь нужные правила в списке и одной командой отправляешь все затронутые ими товары в очередь пересчёта. Можно отправить и по одному правилу — у каждой карточки есть такая операция. После этого запускаешь обработку очереди или ждёшь, когда сработает автоматическая обработка по расписанию.

Какие операции есть у правил?

Стандартные: создать, открыть, изменить, удалить, перетащить мышкой для смены порядка. Дополнительные: превью, проверка конфликтов, проверка на конкретном товаре, копирование правила. Массовые: удаление пачки, перенос пачки в другую папку, отправка пачки в очередь пересчёта. Аналитика: общая статистика по всем правилам, статистика по конкретному правилу, история применений. Для папок — операции с деревом и порядком.

Что хранится в карточке ценового типа?

Название, описание, признаки «встроенный» (системный тип, нельзя удалить) и «это закупочная цена», привязка к каналу продаж (розница, маркетплейс, опт), порядок отображения в списках. Список ценовых типов настраивается под бизнес: одни сети ограничиваются Розницей и Оптом, другие добавляют VIP, Онлайн, отдельные типы под каждый маркетплейс. Порядок меняется перетаскиванием — то, что чаще нужно, ставится в начало.

Где сохраняется итоговая цена товара?

Цена сохраняется по тройке «товар × магазин × ценовой тип» — у каждого магазина сети и каждого канала продаж своё значение. Если по итогу расчёта правило ни одно не подошло, старая цена аккуратно удаляется, чтобы не висели устаревшие значения. Параллельно в карточку товара уходит «обзорная» розничная цена — её используют каталог, поиск и фильтры по цене, чтобы не лазить за каждым товаром в детальную таблицу.

Как защищается маржа?

Через диапазон базовой цены у правил и через сильное «общее» правило. Например, создаёшь правило «минимальная маржа 12%» с самым большим приоритетом: оно срабатывает последним и накрывает результаты всех более слабых правил, не давая цене упасть ниже допустимой границы. Отдельно система не допускает отрицательных цен — они отсекаются при расчёте. Все эти механики работают вместе и страхуют от потери маржи даже при сложной комбинации акций и скидок.

Какие права на ценообразование?

Доступ разделён на два независимых блока — «Правила ценообразования» и «Справочник ценовых типов». В каждом по четыре права: создавать, изменять, видеть, удалять. Обычно работа с правилами достаётся коммерческой службе или отдельной роли «Управление ценами», работа со справочником — финансовой. Менеджеры категорий получают только просмотр — чтобы понимать, как именно сформирована цена их товара, но не править её.

Кейсы

Что меняется на реальной сети

Сеть бытовой техники
24 магазина · 18 000 SKU · 4 ценовых типа
Было
Раньше цены вели в Excel. На каждый ценовой тип (розница / опт / VIP / онлайн) — отдельный файл. После изменения закупочной — пересчёт вручную по формулам. На 18 000 SKU это занимало 2 дня раз в месяц, ошибки накапливались, опт и онлайн жили с устаревшими данными.
Сделали
Перевели на правила ценообразования. Создали папки «Бытовая техника», «Электроника», «Мелкая техника», внутри каждой — несколько правил: «Розница = закупочная × 1.30», «Опт = розница × 0.85», «VIP = розница × 0.90». Одно правило сразу работает на три ценовых типа со своей наценкой для каждого. После изменения закупочной товар автоматически попадает в очередь пересчёта и обрабатывается фоном, не отвлекая пользователей.
Стало
Пересчёт перестал быть «событием месяца». Любое изменение закупочной — товар автоматически в очереди. Опт и онлайн всегда актуальны. Команда ценообразования сократилась с трёх человек до одного. Проверки от налоговой проходят без расхождений: цена в системе совпадает с ценой на кассе.
< 5 мин
на полный пересчёт
0
расхождений каналов
−66%
команды ценообразования
Магазин одежды и обуви
6 магазинов · сезонные распродажи 4 раза в год
Было
Чёрная пятница, Новый год, 23 февраля, 8 марта — четыре больших периода с скидками. Раньше менеджеры заходили в каждый магазин (физически или удалённо) и переоценивали товары. Иногда забывали отключить акцию вовремя, и скидка работала ещё неделю после праздника, съедая маржу.
Сделали
Создали правило с точными датами начала и окончания акции. Приоритет максимальный — выше всех базовых правил, поэтому акционная цена «выигрывает». Формула «база × 0.75» даёт минус 25% от розничной, округление — на 9.90 для красивого ценника. В отбор товаров включили категорию «Все товары» с исключением «Уценённые» по тегу.
Стало
Акция стартует автоматически в полночь даты начала. Заканчивается автоматически в полночь даты окончания — никаких «забыли отключить». Все 6 магазинов одновременно. Маржа сезонных распродаж стабильная. Конверсия в чёрную пятницу — рекордная.
0
забытых акций
×4
кампании в год
+38%
выручки в чёрную пятницу
Опт стройматериалов
4 склада · 8 000 SKU · 12 ключевых клиентов с VIP-условиями
Было
VIP-клиенты получали индивидуальные скидки. На каждого — 50-150 позиций с особыми ценами. Эти цены вели в отдельной таблице, при смене закупочной — пересчитывали вручную. Иногда клиент звонил, менеджер обещал «5%», а в системе всё ещё стояло «3%». Доверие падало.
Сделали
Для каждого VIP-клиента создали отдельное правило в папке «VIP» с приоритетом выше базовых, но ниже акций. Внутри правила — собственная наценка на нужные ценовые типы. В отборе указали категории, по которым клиент закупается. Базовый тип цены — «Опт» (то есть скидка считается от оптовой). Менеджер VIP меняет условия в одном месте — в карточке правила этого клиента.
Стало
У каждого VIP — своё правило в своей папке. Изменение условий — одно поле в карточке правила. После сохранения товары автоматически уходят в очередь пересчёта, пересчёт занимает минуты. Менеджер VIP может сказать клиенту «по новым условиям цена с понедельника» — и в понедельник цена действительно меняется автоматически.
12
VIP-правил, по 1 на клиента
< 10 сек
на смену условий
+8%
к лояльности VIP
Электроника
32 магазина · ограничения РРЦ от производителей
Было
Apple, Samsung, Bosch требовали не продавать ниже РРЦ. Раньше система давала ставить любую цену, кто-то по ошибке делал -15% от РРЦ. Производитель грозил отозвать дилерский статус. Контролировать вручную было невозможно — десятки тысяч SKU.
Сделали
Создали правило с переключателем «считать от РРЦ» и формулой «база × 1.00» (то есть ровно РРЦ) или «база × 1.02» (РРЦ плюс 2%). Приоритет максимальный — финальная защита. Любой результат более слабого правила, попадающий на товар с РРЦ, перезаписывается этим финальным правилом. У товаров без РРЦ правило просто пропускается, и действуют обычные настройки.
Стало
Системно стало невозможно опустить цену ниже РРЦ через автоматику. Производители прислали благодарственные письма. Дилерские статусы сохранены. Команда контроля цен — переведена на другую задачу, проверка больше не нужна.
0
нарушений РРЦ
100%
покрытия товаров с РРЦ
< 100 мс
на проверку РРЦ-правила
Сеть товаров для дома
11 магазинов · 22 000 SKU · быстрая реакция на закупочные цены
Было
Когда поставщик повышал закупочную (внезапно, на 20-30%), сеть продолжала продавать по старой цене и съедала маржу. Аналитик замечал это через неделю-две, когда «странные» отрицательные маржи накапливались. К тому моменту убытки были.
Сделали
Настроили автоматическое отслеживание закупочной. Как только закупочная меняется — через импорт прайс-листа или вручную — товар сразу попадает в очередь пересчёта. Фоновая обработка запускает расчёт правил для этого товара. Правило «Розница = закупочная × 1.30» пересчитывает розницу и обновляет цены по магазинам. На сайт новая цена уходит сразу же — отдельной автоматической синхронизацией.
Стало
Закупочная выросла — розница автоматически догнала. От момента изменения до новой цены на сайте — 5-10 минут. Никаких «странных маржей». Аналитик переключился с разбора инцидентов на анализ конкурентоспособности.
< 10 мин
от закупки до новой цены
0
потерь от запоздалого пересчёта
+1.4 пп
средней маржи
Региональная сеть DIY
9 магазинов · аудит ценовой политики каждый квартал
Было
Раз в квартал директор требовал «отчёт по применённым правилам»: сколько раз каждое правило сработало, на сколько SKU, какой выигрыш в марже. Аналитик собирал это полностью вручную, выгружал базу, считал в Excel — 3-4 дня работы.
Сделали
Включили встроенную аналитику и историю применений. По каждому правилу видно, какие товары, когда и с каким результатом под него попадали. Общая статистика собирает счётчики по всем правилам сразу. Проверка конфликтов показывает пересечения правил, которые требуют внимания и пересмотра.
Стало
Отчёт за квартал собирается в 3 клика в админке. Видно, какие правила работают активно, какие «спят» (применились 0 раз), какие конфликтуют. Решения принимаются на свежих данных, а не на воспоминаниях аналитика.
< 1 мин
на отчёт квартала
−95%
времени аналитика
6
неэффективных правил отключено
Подробнее

Как модуль помогает розничной сети

Одно правило закрывает все сценарии ценообразования

В AIERP правила ценообразования — это карточки, объединённые в дерево папок любой глубины. Одно правило описывает: к каким товарам применяется (через гибкий конструктор отбора по категориям, типам, производителям, тегам и характеристикам), в какой период работает (с какого по какое число), при каком диапазоне базовой цены, к каким ценовым типам и с какой наценкой для каждого, от какой базы считать (от закупочной, от розничной или другой), каким способом (простая наценка или формула) и каким округлением (один из пяти видов).

В карточке настраиваются папка хранения, порядок применения, приоритет (чем больше — тем «крупнее» правило, тем позже оно перебирается в общей цепочке), магазин (можно сделать глобальное правило для всей сети или привязать к одному магазину), период действия, гибкий отбор товаров, диапазон базовой цены, базовый ценовой тип, способ расчёта, формула или процент наценки, переключатель «учитывать РРЦ» и описание. Удаление мягкое — карточка не пропадает физически, её можно восстановить.

Внутри карточки правила выбирается список ценовых типов, к которым оно применяется, и для каждого задаётся своя наценка. Это даёт «одно правило — много каналов»: одно правило «Сезонная скидка» одновременно работает на Рознице с 10%, на Опте с 5%, на VIP с 15%. Не нужно держать три почти одинаковых правила-близнеца — изменения вносятся в одном месте и сразу разлетаются по всем каналам продаж.

Алгоритм расчёта: три уровня приоритета

Когда система считает цену товара, она проходит три уровня сверху вниз. Первый — ручные фиксированные цены. Если у товара выставлена ручная цена на этот магазин — никакое правило её не пересчитает. Это безопасный «ручной выход» из автоматики: цены, которые согласованы лично или утверждены на совещании, остаются неприкосновенными.

Второй уровень — правила ценообразования. Все правила со всех папок собираются в единый список и сортируются: сначала по приоритету, внутри одного приоритета — по порядку. Для каждого правила в очереди проверяется: попадает ли сегодняшняя дата в период действия, работает ли это правило на нужный ценовой тип, подходит ли товар под условия отбора, есть ли у товара базовая цена и попадает ли она в допустимый диапазон. Если всё совпало — считается цена, применяется округление, отрицательные значения отсекаются. Промежуточный результат запоминается, и следующее подходящее правило может его переписать — побеждает последнее.

Третий уровень — акции и кампании. После расчёта по правилам поверх результата накладывается акция со своими настройками скидок. Акция может действовать только на выбранные ценовые типы (например, только на Розницу, а Опт не трогать), только на выбранные товары и только в выбранных магазинах. Она не пересчитывает базовое правило, а даёт итоговую «акционную» цену поверх его результата.

Такая трёхуровневая схема даёт гибкость: базовое ценообразование живёт само по себе и меняется редко, маркетинговые кампании накладываются сверху и так же чисто заканчиваются, ручные исключения для VIP-клиентов или согласований остаются неприкосновенными. Каждый уровень самостоятелен — изменения в одном не ломают остальные.

Формулы и безопасный расчёт

Способов расчёта два. Простая наценка — указываешь процент, цена считается как «база плюс этот процент». Для каждого ценового типа задаётся свой процент. Этого хватает для 80% сценариев: «розница плюс 30% от закупочной», «опт минус 15% от розницы», «VIP минус 10% от опта».

Формула — это арифметическое выражение от переменной «база». Например, формула «база × 0.85 − 100» при базовой 1000 ₽ даёт 750 ₽ (минус 15% и ещё минус сто рублей). В формуле разрешены только цифры, точка, пробелы, плюс, минус, умножение, деление, проценты и скобки. Любые буквы, кавычки, специальные символы блокируются ещё до начала расчёта — система пишет предупреждение в журнал и возвращает базовую цену как есть.

Если выражение прошло проверку, но результат не оказался числом (например, деление на ноль или ошибка в скобках) — снова возвращается базовая цена. Через формулу нельзя случайно или намеренно «положить» систему, прочитать что-то лишнее или выполнить какой-либо вредоносный код — она умеет только считать арифметику над числом «база».

После расчёта применяется округление, выбранное в карточке правила. Без округления — цена остаётся как посчитали. До целого рубля. До десятков — 1234 становится 1230. На 9.90 — психологические цены, всё оканчивается на 9.90 (1234 становится 1229.90). До сотен — 1234 становится 1200. Это даёт чёткую ценовую политику «всё с девятками» или «все цены кратны 100» без ручного контроля каждой позиции.

Как правила выстраиваются в единую цепочку

При расчёте цены для конкретного товара система собирает все применимые правила: проходит по дереву папок и берёт всё, что лежит внутри, плюс правила в корне дерева. Учитываются как глобальные правила (без привязки к магазину), так и правила, привязанные к конкретному магазину текущего расчёта. Полученный список сортируется: сначала по приоритету, внутри одного приоритета — по порядку.

Дальше система перебирает правила одно за другим. Для каждого проверяет: попадает ли сегодняшняя дата в период действия, работает ли это правило на нужный ценовой тип, подходит ли товар под условия отбора, есть ли у товара базовая цена и попадает ли она в допустимый диапазон. Если хоть один пункт «нет» — правило пропускается и берётся следующее.

Если правило подошло — берётся его наценка для текущего ценового типа. Если у правила задана формула — считается она, если нет — простая наценка от базы. Результат округляется выбранным способом. Отрицательные цены отсекаются — система не даст уйти в минус.

Ключевая особенность: результат не фиксируется на первом подходящем правиле, а перезаписывается каждым следующим. Побеждает последнее сработавшее. Это позволяет ставить общие «глобальные» ограничения (типа «минимальная маржа 12%») с максимальным приоритетом — они срабатывают в самом конце и накрывают всё, что было раньше, защищая бизнес от случайно слишком большой скидки.

Очередь пересчёта: тяжёлые операции уходят фоном

Пересчёт цен — тяжёлая операция, особенно на больших каталогах. Если для пересчёта одного товара по всем правилам нужны доли секунды, то 22 000 SKU дают семь-сорок минут на полный пересчёт. Делать это «здесь и сейчас» при сохранении правила нельзя — пользователь будет смотреть на висящий экран. AIERP решает это через очередь.

Все товары, которым нужно пересчитать цены, попадают в общую очередь. Видно её текущее состояние, статистику обработки и историю прошлых пересчётов. Можно добавлять товары по одному или сразу пачкой, запускать обработку всей очереди или только выбранных строк, очищать очередь, удалять отдельные записи. Есть отдельные настройки автоматической обработки по расписанию — например, каждую ночь обрабатывать всё накопившееся.

Сама обработка идёт фоном. Система берёт пачку товаров из очереди, для каждого запускает расчёт по правилам, сохраняет результат и помечает запись в очереди как обработанную. История подробно фиксирует, какое правило сработало на какой товар, какая была цена до и после, кто инициировал пересчёт и почему. Это критично для аудита и разбора жалоб.

Параллельно работает синхронизация «обзорной» розничной цены в карточке товара. Эта цена используется каталогом, поиском и фильтрами по цене — чтобы не лазить за каждым товаром в детальную таблицу цен по магазинам и ценовым типам. Синхронизация происходит автоматически после каждого расчёта, пользователь её не замечает.

Конфликты, превью и точечная проверка

Когда правил в системе становится больше двух сотен, неизбежно появляются пересечения — два правила одновременно претендуют на одни и те же товары в одно и то же время. Проверка конфликтов отвечает на этот вопрос: ищет пары правил, у которых пересекается список товаров и период действия, возвращает список пар с описанием пересечения. Это помогает находить «забытые» старые правила, которые тихо мешают новым — например, две акции на одну категорию в один день.

Превью отвечает на вопрос «что станет с ценами, если я сохраню это правило». До сохранения в систему видно, сколько товаров оно затронет, какие новые цены они получат, сколько товаров выйдет за допустимые границы, сравнение со старыми ценами. Это позволяет тестировать правило перед публикацией — особенно важно для критичных кампаний типа чёрной пятницы или перезапуска ассортимента, где ошибка стоит дорого.

Проверка на товаре берёт конкретную позицию и показывает шаг за шагом, как для неё считается цена. Не только финальный результат, но и подробный разбор: какие правила примерялись, какие были пропущены и почему (не подошла дата, не тот ценовой тип, не подошли условия отбора, базовая цена вне диапазона), какое в итоге сработало и с какими промежуточными значениями (база, цена до округления, цена после). Это материал для разбора жалоб «у меня в чеке цена выше, чем на сайте» — ответ находится за секунды.

Подробная пошаговая проверка — самый «тяжёлый» инструмент в системе ценообразования. Полный разбор с загрузкой товара, всех его связей, всех ценовых типов и прогоном по каждому правилу. Используется только в ручном режиме, когда нужно докопаться до причины — не в обычном расчёте, который должен быть быстрым.

Аналитика, история, права

Встроенная аналитика даёт счётчики и метрики на двух уровнях. Общая статистика по всей системе: сколько всего правил, сколько активных, сколько срабатываний за период, сколько товаров под управлением правил. Статистика по конкретному правилу: сколько раз сработало за период, средние и медианные новые цены, отказы (товары, на которые не попало), сравнение с предыдущим периодом. Это позволяет находить правила, которые «спят» и могут быть отключены, и правила, которые слишком активно меняют цены — кандидаты на пересмотр.

История применений — подробный журнал по каждому правилу. Какой товар, под какое правило, когда попадал, какая была цена до и после, кто инициировал пересчёт и в чём была причина. Можно фильтровать по товару, по правилу, по периоду. Незаменимо для разбора жалоб «у меня в чеке цена выше, чем на сайте» — быстро видно, какое правило в какой момент это сделало, и можно ответить клиенту с фактами в руках.

Массовые операции: выбираешь несколько правил в списке и одной командой удаляешь их, переносишь в другую папку для реорганизации дерева, отправляешь все затронутые ими товары в очередь пересчёта. Это даёт работу с десятками правил за раз — не нужно открывать каждую карточку и переключать вручную.

Доступ разделён на два блока — «Правила ценообразования» и «Справочник ценовых типов». В каждом по четыре права: создавать, изменять, видеть, удалять. Обычно работа с правилами достаётся коммерческой службе или отдельной роли «Управление ценами», работа со справочником — финансовой. Менеджеры категорий получают только просмотр — чтобы понимать, как именно сформирована цена их товара, но не править её. Это чёткое разделение ответственности: каталог ведут менеджеры категорий, цены — ценовая команда.