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

Правила изменения цен позволяют автоматически модифицировать цены товаров в процессе импорта. Можно применять наценки, скидки, устанавливать фиксированные цены или умножать на коэффициент. Правила могут применяться ко всем товарам или только к определенным категориям, брендам, товарам с определенными характеристиками. Это мощный инструмент для автоматического ценообразования. В заивисмости от типа файла необходимо указывать либо номер столбца для 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
Ошибка: "Применяются не те правила"
Проверьте порядок применения
Убедитесь что условия не пересекаются непредвиденным образом
Для взаимоисключающих условий используйте точные совпадения вместо частичных
Ошибка: "Условие с регулярным выражением не срабатывает"
Проверьте синтаксис регулярного выражения
Используйте онлайн-тестеры для отладки
Убедитесь что выражение соответствует всему значению, а не его части
Для частичного совпадения используйте тип условия "содержит"
Ошибка: "Правила применяются в неправильном порядке"
Проверьте значения поля "Порядок применения"
Помните что меньшие числа применяются раньше
Перестройте последовательность при необходимости