Четыре всадника скидочного апокалипсиса. Мы строили… строили… и наконец построили

Четыре всадника скидочного апокалипсиса. Мы строили… строили… и наконец построили

Исходные данные

  • Штатный функционал интернет-магазина Битрикс
  • Персональные скидки для: юридических лиц и физических лиц
  • Акции
  • Старая добрая зачеркнутая цена

Клиенты часто приходят к нам с разными запросами по реализации программ лояльности, логике работы скидок и наличия акционных предложений внутри сайта. Очень хорошо, когда человек знает свою аудиторию, не первый день продает в интернете и в целом знаком с механиками, что называется на практике. Но что делать, если бизнес только вышел в интернет, идей много, почву прощупать нужно? Да еще и аппетит приходит во время еды. Добавьте сюда стремление автоматизировать как можно больше аспектов работы интернет ресурса. Да и ковыряться в том, что есть, меняя уже устоявшиеся правила работы, для того, чтобы сайт работал - хочется далеко не всем.

С таким кейсом, проблемами реализации и подводными камнями, я сегодня вас познакомлю.

Штатный функционал

Как всегда это происходит в нашей компании, при разработке сайта с нуля, начали с проектирования будущего интернет-магазина и написания технического задания. Когда речь зашла о системе скидок, единственным пожеланием клиента было разделение пользователей. Достаточно просто спрашивать при регистрации “Вы чьих будете?” и определять пользователя в нужную группу. А исходя из группы, показывать нужные цены.

(При регистрации клиенты делятся на две группы: “физические” и “юридические” лица.)
(При регистрации клиенты делятся на две группы: “физические” и “юридические” лица.)

Уже на этом этапе возникли трудности.

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

Вторая, в 1С в принципе заведена только одна цена - розничная. Разделять и дописывать еще 2 типа с повышающими коэффициентами - долго.

Четыре всадника скидочного апокалипсиса. Мы строили… строили… и наконец построили

Выход:

  1. Налаживаем обмен номенклатурой 1С -> Сайт. Обрабатываем пришедшие данные, проверяем, радуемся, вешаем задание на крон.
  2. Пишем скрипт, который на входе ловит цену товара, перемножает на повышающий коэффициент, а далее заносит в нужные места.

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

Для реализации всяческих акций, после обсуждения, было принято решение использовать правила работы с корзиной и предустановленный список маркетинговых акций. Штатный функционал битрикса покрывает достаточно широкий спектр потребностей. По крайней мере, для MVP (минимальной жизнеспособной версии проекта) этого вполне достаточно.

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

Персональные скидки

Клиентоориентированность - наше всё. И тут не важно, большой у вас бизнес или маленький. Любому человеку приятно чувствовать, что его помнят, его проблемы решают и работают с ним, как будто он единственный покупатель вашего магазина. У каждого магазина есть свои постоянные покупатели, с которыми партнерские отношения хочется продолжать и хочется быть к ним лояльнее.

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

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

Четыре всадника скидочного апокалипсиса. Мы строили… строили… и наконец построили

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

Напрашивается вариант решения, который используют многие вендоры. Создаем несколько групп пользователей с процентом скидки. Например:

Четыре всадника скидочного апокалипсиса. Мы строили… строили… и наконец построили

Увеличиваем количество групп в 2 раза, просто потому что у нас уже есть деление на юридических лиц и физических и вроде должно работать. Но… не было бы этого кейса, если бы всё было так гладко.

Вдруг откуда ни возьмись… Появились новые идеи!

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

Значит разберем по очереди.

Персональные скидки для юридических лиц

Компания “Ноунейм и партнеры” часто покупает товары бренда “А”, за это мы его и любим. Поэтому Ноунейм получает 30% скидки на бренд “А”. Но его партнеры еще чаще, но в меньших объемах просят заказать что-то еще, чем несомненно помогают нашему магазину. Поэтому нужно раскидать “на что-то еще” еще скидочек.

…И таких “Ноунеймов с партнерами” в нашем примере были сотни.

В целом задача ясна, но стандартными методами ее не решить. Начинаем декомпозировать. Было бы начало, будет и конец.

Скидки должны где-то храниться. Будь то инфоблок, хайлоад блок или даже кастомизировать правила работы с корзиной.

Читайте также

Двигаемся дальше. Что там с правилами корзины? Отлично, функционал есть, он даже удовлетворяет нашим хотелкам, касаемо логики предоставления скидки. Скидка должна предоставляться конкретному пользователю из группы “юридические лица” и предоставляться на определенные бренды. Проблема, которую данный метод решить не может - отображение скидки в общем каталоге.

Четыре всадника скидочного апокалипсиса. Мы строили… строили… и наконец построили

В таком виде персональные скидки не работают в общем каталоге, а это обязательное условие, пересчет только в корзине - не наш вариант, клиент должен сразу видеть сколько он заплатит за каждый товар. Так же невозможно выполнять сортировку и фильтрацию, поскольку цены считаются для каждого клиента на лету. А отключать кеширование и ждать загрузки страницы десятки секунд, просто смерти подобно, ваш сайт никогда не проиндексируется должным образом, а соответственно все деньги, вложенные в разработку - просто так потраченные деньги.

Вариант с инфоблоком откинули сразу, ибо для наших целей упрощенные таблицы highload блока подходят лучше. Снова лезем в 1С для того, чтобы организовать выгрузку. Что нам нужно?

  • id пользователя
  • собственно бренд, на который идет скидка
  • процент скидки

Выгружаем. Помните я говорил, что условий много?

Четыре всадника скидочного апокалипсиса. Мы строили… строили… и наконец построили
Четыре всадника скидочного апокалипсиса. Мы строили… строили… и наконец построили

Дело за малым…

  • Не убить скорость загрузки страниц каталога
  • Не забыть, что часть загрузок отдана ajax-у (фильтр, теги, пагинация)
  • Передавать корректные цены в заказ

Валера! Front-end! Настало твое время!

Чтобы бы не отключать кеширование компонента, выбираем вариант откладывать показ цен (или выводим общую, без скидки). То есть в начале выводим цены без скидки, а после загрузки страницы запрашиваем js-ом новые цены по нашим условиям и выводим уже их (либо по отдельности по товару, либо собираем все ID товаров в блоке, и выполняем запрос, если есть ТП). И кроме отдельного запроса JS, после загрузки страницы, запрашиваем/подменяем цену в component_epilog.php - а далее заменяем в сгенерированном шаблоне.

И да, это работает! Наверное вы немного устали, но дальше будет проще, обещаю.

Читайте также

Персональные скидки для физических лиц

Четыре всадника скидочного апокалипсиса. Мы строили… строили… и наконец построили

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

Четыре всадника скидочного апокалипсиса. Мы строили… строили… и наконец построили

Разработчики Битрикса позаботились о пользователях и сделали функционал предустановленных маркетинговых акций! Настраивается все в дружественном интерфейсе, просто и понятно. Назначается группа пользователей для которых программа должна работать, можно пользоваться, этап пройден!

Четыре всадника скидочного апокалипсиса. Мы строили… строили… и наконец построили

На текущий момент сайт запущен, работает в тестовом режиме - lamps.ru.

Читайте также

4848
Начать дискуссию