В процессе автоматизации розничной торговли часто возникает задача реализации программы лояльности типа «каждый 5-й товар бесплатно». При попытке настроить такую схему в 1С:Розница пользователи сталкиваются с тем, что стандартные маркетинговые акции не умеют «запоминать» количество покупок конкретного клиента с последующим обнулением счетчика. Давайте разберем, почему так происходит и как реализовать данную механику на практике.
Механизм Маркетинговые мероприятия в 1С:Розница предназначен для применения скидок непосредственно в момент оформления Чек. Типовая логика работает следующим образом:
Попытки использовать галочку Кратно выполнению условий приводят лишь к тому, что при покупке 5-го товара скидка будет применяться ко всем последующим единицам товара, так как счетчик накоплений для одного контрагента в рамках стандартных скидок отсутствует. Таким образом, реализовать «сброс» счетчика после предоставления подарка штатными средствами невозможно.
Самый надежный и корректный способ — переход от прямых скидок на товар к Бонусной системе. Это позволяет избежать проблем с «зависшими» счетчиками и сделать систему более гибкой для покупателя.
Правила начисления бонусов, при которых за покупку товара из сегмента «Кофе» клиенту начисляется фиксированное количество баллов.Правила списания бонусов, разрешив оплату бонусами до 100% стоимости товара.Преимущество этого метода заключается в том, что 1С:Розница штатно умеет управлять бонусными счетами, привязанными к Дисконтная карта, и вам не потребуется менять код конфигурации.
Если бизнес-модель требует строгого алгоритма «каждый 5-й бесплатно» без участия баллов, необходимо реализовать доработку через Расширение конфигурации. Рассмотрим алгоритм действий:
СчетчикПокупокКофе. Измерениями будут: ВладелецКарты (ссылка на Контрагент), а ресурсом — Количество (число).РМК или событие при добавлении товара в Чек.
// Псевдокод логики
КоличествоКофе = РегистрыСведений.СчетчикПокупокКофе.Получить(ВладелецКарты);
Если КоличествоКофе = 4 Тогда
ПрименитьСкидку100Процентов();
РегистрыСведений.СчетчикПокупокКофе.Установить(ВладелецКарты, 0);
Иначе
РегистрыСведений.СчетчикПокупокКофе.Установить(ВладелецКарты, КоличествоКофе + 1);
КонецЕсли;
Важно помнить, что использование Вид цены с фиксированной ценой (например, 1 рубль) также требует программного управления, чтобы система не применяла эту цену ко всем последующим чекам после достижения порога в 4 покупки. Доработка через Расширение позволит вам контролировать, когда именно нужно сбросить счетчик в 0.
Работая с задачей предоставления «бесплатного товара», мы должны четко разделять маркетинговую цель и технические возможности платформы. Если у вас нет возможности содержать штат разработчиков для поддержки Расширение, мы настоятельно рекомендуем использовать Бонусную систему. Она исключает ошибки в логике счетчиков, является прозрачной для учета и полностью поддерживается стандартными обновлениями 1С:Розница.
Если же вы решили идти по пути доработки, обязательно протестируйте сценарий, при котором клиент возвращает товар или аннулирует чек, чтобы счетчик корректно корректировался при выполнении операции Возврат товара от покупателя.