Правила изменения цен

Правила изменения цен позволяют автоматически модифицировать цены товаров в процессе импорта. Можно применять наценки, скидки, устанавливать фиксированные цены или умножать на коэффициент. Правила могут применяться ко всем товарам или только к определенным категориям, брендам, товарам с определенными характеристиками. Это мощный инструмент для автоматического ценообразования. В заивисмости от типа файла необходимо указывать либо номер столбца для csv, xls\xlsx файлов, либо xpath\json path для остальных.

Обратите внимание

Правила изменения цен не является основным функционалом ценообразования в каталоге, они позволяют просто изменить цены конкретного прайс-листа и импортировать цены в необходимом виде, но конечная цена товаров в каталоге устанавливается правилами ценообразования в соответствующем разделе.

В примерах с регулярными выражениями типа Паттерн = r'^[A-Za-z]+-\d+$' само выражение, которое нужно вводить в форму располагается между двумя одинарными кавычками, то есть ^[A-Za-z]+-\d+$

Типы операций с ценами

Тип 1. Увеличить на процент

Добавляет указанный процент к исходной цене. Исходная цена умножается на (1 + процент/100).

Пример: Цена 1000 руб., наценка 20% → 1200 руб.

Формула: новая_цена = исходная_цена * (1 + процент/100)

Тип 2. Уменьшить на процент

Вычитает указанный процент из исходной цены. Исходная цена умножается на (1 - процент/100).

Пример: Цена 1000 руб., скидка 15% → 850 руб.

Формула: новая_цена = исходная_цена * (1 - процент/100)

Тип 3. Прибавить фиксированную сумму

Добавляет фиксированную сумму к исходной цене.

Пример: Цена 1000 руб., добавить 200 руб. → 1200 руб.

Формула: новая_цена = исходная_цена + сумма

Тип 4. Вычесть фиксированную сумму

Вычитает фиксированную сумму из исходной цены.

Пример: Цена 1000 руб., вычесть 150 руб. → 850 руб.

Формула: новая_цена = исходная_цена - сумма

Тип 5. Умножить на коэффициент

Умножает исходную цену на указанный коэффициент.

Пример: Цена 1000 руб., коэффициент 1.25 → 1250 руб.

Формула: новая_цена = исходная_цена * коэффициент

Тип 6. Установить фиксированную цену

Устанавливает указанную цену независимо от исходной. Исходная цена игнорируется.

Пример: Любая цена → 999 руб.

Формула: новая_цена = фиксированное_значение

Типы условий применения правил

Тип 1. Всегда применять

Правило применяется ко всем товарам без каких-либо условий.

Пример: Сделать наценку 10% на все товары.

Тип 2. Если столбец содержит

Правило применяется, если значение в указанном столбце содержит заданный текст.

Пример: Применить скидку 5%, если в названии есть слово "Акция".

Тип 3. Если столбец равен

Правило применяется, если значение в указанном столбце точно равно заданному тексту.

Пример: Применить наценку 20%, если бренд точно равен "Bosch".

Тип 4. Если столбец соответствует регулярному выражению

Правило применяется, если значение в указанном столбце соответствует регулярному выражению.

Пример: Применить наценку 15%, если артикул начинается с "PRO-".

Структура правила изменения цен

Каждое правило содержит следующие параметры:

Название правила - произвольное название для идентификации

Операция - тип операции (увеличить на процент, уменьшить на процент, и т.д.)

Значение - процент, сумма или коэффициент для операции

Тип условия - всегда применять, если столбец содержит, и т.д.

Столбец\xpath\json path для условия - номер столбца\xpath\json path для проверки условия

Значение условия - значение для проверки условия

Порядок применения - правила применяются в порядке возрастания

Активно - включено ли правило

Примеры для CSV/EXCEL

Пример 1. Базовая наценка на все товары

Самый простой случай - единая наценка на весь прайс-лист.

Правило:

Название правила = "Базовая наценка 20%"

Операция = увеличить на процент

Значение = 20

Тип условия = всегда применять

Порядок применения = 1

Активно = да

Результат: Все цены увеличиваются на 20%

Пример 2. Разные наценки для разных категорий

В прайс-листе есть столбец с категорией товара.

Правило 1 (для электроники):

Название правила = "Наценка на электронику 25%"

Операция = увеличить на процент

Значение = 25

Тип условия = если столбец содержит

Столбец для условия = 2 (столбец с категорией)

Значение условия = "Электроника"

Порядок применения = 1

Правило 2 (для одежды):

Название правила = "Наценка на одежду 15%"

Операция = увеличить на процент

Значение = 15

Тип условия = если столбец содержит

Столбец для условия = 2

Значение условия = "Одежда"

Порядок применения = 2

Правило 3 (для всего остального):

Название правила = "Базовая наценка 10%"

Операция = увеличить на процент

Значение = 10

Тип условия = всегда применять

Порядок применения = 3

Результат:

Товары с категорией "Электроника" получают наценку 25%

Товары с категорией "Одежда" получают наценку 15%

Все остальные товары получают наценку 10%

Пример 3. Скидки на определенные бренды

В прайс-листе есть столбец с брендом.

Правило 1 (скидка на Bosch):

Название правила = "Скидка на Bosch 10%"

Операция = уменьшить на процент

Значение = 10

Тип условия = если столбец равен

Столбец для условия = 3 (столбец с брендом)

Значение условия = "Bosch"

Порядок применения = 1

Правило 2 (скидка на Makita):

Название правила = "Скидка на Makita 15%"

Операция = уменьшить на процент

Значение = 15

Тип условия = если столбец равен

Столбец для условия = 3

Значение условия = "Makita"

Порядок применения = 2

Пример 4. Наценка на товары с определенным признаком

В прайс-листе есть столбец "Примечание" с пометками.

Правило:

Название правила = "Наценка на премиум товары 30%"

Операция = увеличить на процент

Значение = 30

Тип условия = если столбец содержит

Столбец для условия = 5 (столбец с примечанием)

Значение условия = "Премиум"

Порядок применения = 1

Пример 5. Скидка на товары с большим остатком

В прайс-листе есть столбец с количеством на складе.

Правило:

Название правила = "Скидка на товары с остатком > 50"

Операция = уменьшить на процент

Значение = 5

Тип условия = регулярное выражение

Столбец для условия = 4 (столбец с остатком)

Значение условия = r'^([5-9][0-9]|[1-9][0-9]{2,})$' (числа от 50 и выше)

Порядок применения = 1

Пример 6. Фиксированная цена для акционных товаров

В прайс-листе есть столбец с пометкой "АКЦИЯ".

Правило:

Название правила = "Акционная цена 999 руб."

Операция = установить фиксированную цену

Значение = 999

Тип условия = если столбец содержит

Столбец для условия = 6

Значение условия = "АКЦИЯ"

Порядок применения = 1

Пример 7. Комбинирование нескольких правил (последовательное применение)

Сначала делается наценка на бренд, потом скидка за объем, потом округление.

Правило 1 (наценка на бренд):

Название = "Наценка Bosch 20%"

Операция = увеличить на процент

Значение = 20

Тип условия = если столбец равен

Столбец = 3, значение = "Bosch"

Порядок = 1

Правило 2 (скидка за объем):

Название = "Скидка 5% при заказе от 10 шт"

Операция = уменьшить на процент

Значение = 5

Тип условия = если столбец содержит

Столбец = 7, значение = "опт"

Порядок = 2

Правило 3 (округление):

Название = "Округление до 9"

Операция = установить фиксированную цену

Значение = формула не поддерживается напрямую, нужно использовать несколько правил

Порядок = 3

Пример 8. Наценка в зависимости от цены

Правило применяется только к товарам, цена которых ниже определенного порога.

Правило:

Название правила = "Наценка на дешевые товары 15%"

Операция = увеличить на процент

Значение = 15

Тип условия = регулярное выражение (для проверки цены)

Столбец для условия = 8 (столбец с ценой)

Значение условия = r'^([0-9]{1,3})$' (цены до 999)

Порядок применения = 1

Пример 9. Разные наценки для разных диапазонов цен

Сложная логика ценообразования.

Правило 1 (дешевые товары):

Название = "Наценка 30% на товары до 1000 руб."

Операция = увеличить на процент

Значение = 30

Тип условия = регулярное выражение

Столбец = 8

Значение условия = r'^([1-9][0-9]{0,2})$' (1-999)

Порядок = 1

Правило 2 (средние товары):

Название = "Наценка 20% на товары 1000-5000 руб."

Операция = увеличить на процент

Значение = 20

Тип условия = регулярное выражение

Столбец = 8

Значение условия = r'^([1-5][0-9]{3})$' (1000-5999)

Порядок = 2

Правило 3 (дорогие товары):

Название = "Наценка 10% на товары от 5000 руб."

Операция = увеличить на процент

Значение = 10

Тип условия = регулярное выражение

Столбец = 8

Значение условия = r'^([5-9][0-9]{3,}|[1-9][0-9]{4,})$' (5000+)

Порядок = 3

Пример 10. Специальные условия для товаров с определенным артикулом

В прайс-листе есть столбец с артикулом.

Правило:

Название правила = "Скидка на товары из специальной серии"

Операция = уменьшить на процент

Значение = 25

Тип условия = регулярное выражение

Столбец для условия = 1 (столбец с артикулом)

Значение условия = r'^SP-\d{4}$' (артикулы вида SP-1234)

Порядок применения = 1

Примеры для YML

Пример 11. Наценка на товары определенной категории в YML

В YML категория товара определяется по categoryId.

Правило:

Название правила = "Наценка на электроинструмент 15%"

Операция = увеличить на процент

Значение = 15

Тип условия = если XPath содержит

XPath для условия = categoryId

Значение условия = "2" (ID категории электроинструмента)

Порядок применения = 1

Пример 12. Скидка на товары определенного бренда в YML

Бренд в YML обычно в теге vendor.

Правило:

Название правила = "Скидка на Makita 10%"

Операция = уменьшить на процент

Значение = 10

Тип условия = если XPath равен

XPath для условия = vendor

Значение условия = "Makita"

Порядок применения = 1

Пример 13. Наценка на товары с определенным параметром

В YML есть теги param с характеристиками.

Правило:

Название правила = "Наценка на профессиональные товары 20%"

Операция = увеличить на процент

Значение = 20

Тип условия = если XPath содержит

XPath для условия = param[@name="Назначение"]

Значение условия = "Профессиональный"

Порядок применения = 1

Примеры для XML

Пример 14. Наценка по стране производителя

В XML есть тег с информацией о стране.

Правило:

Название правила = "Наценка на импортные товары 15%"

Операция = увеличить на процент

Значение = 15

Тип условия = если XPath содержит

XPath для условия = СтранаПроизводителя

Значение условия = "Германия|Италия|Япония"

Порядок применения = 1

Пример 15. Скидка на товары с определенной ставкой НДС

В XML есть тег с НДС.

Правило:

Название правила = "Скидка на товары без НДС 5%"

Операция = уменьшить на процент

Значение = 5

Тип условия = если XPath равен

XPath для условия = НДС

Значение условия = "0"

Порядок применения = 1

Примеры для JSON

Пример 16. Наценка по бренду в JSON

В JSON бренд может быть в поле brand.

Правило:

Название правила = "Наценка на Bosch 20%"

Операция = увеличить на процент

Значение = 20

Тип условия = если JSON Path содержит

JSON Path для условия = $.brand

Значение условия = "Bosch"

Порядок применения = 1

Пример 17. Наценка по наличию определенного поля

В JSON может быть поле "isPremium".

Правило:

Название правила = "Наценка на премиум товары 25%"

Операция = увеличить на процент

Значение = 25

Тип условия = если JSON Path равен

JSON Path для условия = $.isPremium

Значение условия = "true"

Порядок применения = 1

Сложные примеры комбинирования правил

Пример 18. Многоуровневое ценообразование

Полная система ценообразования для интернет-магазина.

Правило 1 (базовая наценка):

Название = "Базовая наценка 15%"

Операция = увеличить на процент

Значение = 15

Тип условия = всегда применять

Порядок = 1

Правило 2 (дополнительная наценка на премиум бренды):

Название = "Премиум бренды +10%"

Операция = увеличить на процент

Значение = 10

Тип условия = если столбец содержит

Столбец = 3, значение условия = "Bosch|Makita|DeWalt"

Порядок = 2

Правило 3 (скидка на оптовые позиции):

Название = "Оптовая скидка 7%"

Операция = уменьшить на процент

Значение = 7

Тип условия = если столбец содержит

Столбец = 5, значение условия = "опт"

Порядок = 3

Правило 4 (фиксированная цена для акционных товаров - переопределяет всё):

Название = "Акционные товары 999 руб."

Операция = установить фиксированную цену

Значение = 999

Тип условия = если столбец содержит

Столбец = 6, значение условия = "АКЦИЯ"

Порядок = 4

Пример 19. Ценообразование на основе валюты

Если в прайс-листе цены в разных валютах, можно нормализовать.

Правило 1 (конвертация USD в RUB):

Название = "Конвертация USD в RUB по курсу 90"

Операция = умножить на коэффициент

Значение = 90

Тип условия = если столбец содержит

Столбец = 4 (столбец с валютой)

Значение условия = "USD"

Порядок = 1

Правило 2 (конвертация EUR в RUB):

Название = "Конвертация EUR в RUB по курсу 100"

Операция = умножить на коэффициент

Значение = 100

Тип условия = если столбец содержит

Столбец = 4

Значение условия = "EUR"

Порядок = 2

Пример 20. Психологическое округление цен

После всех операций привести цены к "красивым" значениям.

Правило 1 (округление до 99):

Название = "Округление до 99 копеек"

Операция = установить фиксированную цену

Значение = формула не поддерживается, нужно использовать несколько правил

Альтернативное решение через несколько правил:

Сначала применить все наценки, а затем вручную или через скрипт округлить цены. В текущей версии прямое округление не поддерживается.

Пример 21. Наценка на редкие товары (низкий остаток)

Товары с маленьким остатком можно продавать дороже.

Правило:

Название = "Наценка на редкие товары 30%"

Операция = увеличить на процент

Значение = 30

Тип условия = регулярное выражение

Столбец = 7 (столбец с остатком)

Значение условия = r'^[1-5]$' (остаток от 1 до 5)

Порядок = 1

Порядок применения правил

Правила применяются в порядке возрастания поля "Порядок применения". Это критически важно для правильного ценообразования.

Основные принципы порядка:

Сначала общие правила, потом специальные

Общие наценки применяются ко всем товарам, потом специальные условия для отдельных групп

Правила с фиксированной ценой лучше ставить последними

Они переопределяют все предыдущие операции

Учитывайте зависимость от условий

Правило, проверяющее цену, должно идти после правил, которые эту цену формируют

Логическая последовательность

Например: конвертация валюты → наценка на бренд → скидка за объем → округление

Пример правильной последовательности:

Порядок 1: Конвертация валюты

Порядок 2: Базовая наценка 15%

Порядок 3: Наценка на премиум бренды +10%

Порядок 4: Скидка на оптовые позиции 7%

Порядок 5: Акционная фиксированная цена (переопределяет всё)

Использование регулярных выражений в условиях

Для типа условия "регулярное выражение" можно использовать сложные паттерны.

Примеры регулярных выражений для условий:

Для проверки диапазона цен: ^([1-9][0-9]{2,3})$ (цены от 100 до 9999)

Для проверки формата артикула: ^[A-Z]{2}-\d{5}$ (вида AB-12345)

Для проверки наличия ключевых слов: скидка|акция|распродажа

Для проверки числовых диапазонов: ^([5-9][0-9]|[1-9][0-9]{2,})$ (числа от 50)

Для проверки остатка: ^([1-9][0-9]?|100)$ (остаток 1-100)

Типичные ошибки и их решения

Ошибка: "Правило не применяется"

Проверьте что правило активно (флажок "Активно" включен)

Убедитесь что указан правильный номер столбца для условия

Проверьте значение условия - возможно опечатка или не тот регистр

Для условий "содержит" проверьте что текст действительно есть в ячейке

Убедитесь что порядок правил не блокирует применение (например, фиксированная цена раньше наценки)

Ошибка: "Цена стала отрицательной"

Проверьте что скидка не превышает 100%

Для операции "уменьшить на процент" значение должно быть меньше 100

Проверьте что исходная цена не равна 0

Ошибка: "Применяются не те правила"

Проверьте порядок применения

Убедитесь что условия не пересекаются непредвиденным образом

Для взаимоисключающих условий используйте точные совпадения вместо частичных

Ошибка: "Условие с регулярным выражением не срабатывает"

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

Используйте онлайн-тестеры для отладки

Убедитесь что выражение соответствует всему значению, а не его части

Для частичного совпадения используйте тип условия "содержит"

Ошибка: "Правила применяются в неправильном порядке"

Проверьте значения поля "Порядок применения"

Помните что меньшие числа применяются раньше

Перестройте последовательность при необходимости