Как реализовать отображение персональных цен на товары для клиентов, не перебирая всю CMS
Периодически, к нам приходят запросы на реализацию подобных задач от клиентов, бизнес которых ориентирован в основном на b2b сегмент, или же имеет смешанный тип потребителей — и из b2b сегмента, и из b2c сегмента
Одним из таких наших клиентов является компания Виконт, которая специализируется на оптовых поставках гигиенической и бумажной продукции, профессиональных и бытовых моющих, чистящих и дезинфицирующих средств, профессиональной уборочной техники, инвентаря для уборки, хозяйственных товаров, продукции для профессиональной стирки белья.
Подписывайтесь на наш телеграм канал для директоров по маркетингу, где делимся полезными кейсами, разбираем аналитические отчеты и даем полезные материалы: Инсайды и структуры успеха для маркетологов и боссов маркетинга. Поднимаем планку вместе
Предыстория:
Изначально, компания Виконт пришла к нам с запросом на разработку нового сайта, где помимо дизайна, верстки, интеграции в cms и прочих типовых «танцев с бубнами» в сфере разработки сайтов потребовались также и такие уникальные задачи, как:
- интеграция с 1С 7.7 по товарам, ценам, остаткам, заказам и т.д.
- реализация ряда функциональных возможностей, раскрывать которые мы не можем
- а также, реализация отображения персональных цен в каталоге для b2b клиентов
По ходу дела мы реализовали сайт, при этом реализовали на Битриксе, а также, реализовали и перечисленные интеграции; Что такое персональные цены? Персональные цены — это когда для определенного пользователя, или организации и только для нее на определенные товары и/или группы товаров действуют уникальные условия продаж в части цен. К примеру, договорился Ваш менеджер с ООО «рога и копыта», что для них на все швабры цена будет ниже от розничной на 20 процентов — и так Вы и продаете, при этом продаете так только для ООО «рога и копыта», а для остальных организаций и предпринимателей подаете по другим условиям :) В чем сложность? Проблематика данной задачи лежит в плоскости отличия систем: 1С и Битрикса в части учета контрагентов и работы с ценами Если кратко, то имеем следующее: Таким образом, чтобы реализовать отображение персональных цен в каталоге для контрагентов, прежде всего нужно решить задачу устранения разности сущностей, или же обхода этой проблемы. Если говорить об устранении разности сущностей — это долго и дорого, да и битрикс в этом случае можно будет забыть. Однако, в Битриксе есть довольно много преимуществ, из-за которых он и был выбран, поэтому идти этим вариантом для нас было бессмысленно. И мы решили идти вариантом обхода Читайте также нашу статью:
Внедрение бонусной программы в интернет-магазине на базе Mindbox
Чтоб добиться цели по отображению на сайте цен нужно было решить следующие задачи: По-началу звучит страшно и непонятно, однако вариант обхода, который мы сейчас рассматриваем, оказался, с логической точки зрения, довольно простым, стоит только разобраться чуть подробнее в понятиях: Как было описано выше, у одного контрагента может быть как типовое, так и индивидуальное соглашение. Типовое по своей сути определяет тип цен, по которым в целом работает контрагент по всем направлениям. Индивидуальное — определяет на какую категорию товаров или отдельный список товаров действуют индивидуальные цены и для какого контрагента. и понятное дело, что если есть индивидуальное соглашение — оно в приоритете. Задаемся вопросами: Как мы можем определять тип цен в битриксе? — там есть функционал «тип цен», им и будем определять. Как мы можем определять контрагента, к которому тип цен привязан? — по ИНН, ведь это уникальный идентификатор. Как мы можем определять товар, на который действует индивидуальная цена? — по коду/артикулу этого товара. Ок, хорошо, а как это все увязать с сайтом? как говориться, следите за руками :) Типы цен с их значениями для товаров передаем вместе с товарами — таким образом мы имеем все нужные типы цен на сайте в стандартном функционале битрикса (как передаем — это вопрос того, как у вас реализована интеграция с 1С — это тема отдельного разговора). Для идентификации какому ИНН — какой тип цен принадлежит передаем со стороны 1С справочник, который содержит колонки: «ИНН», «ИД», «тип цен». Для персональных цен передаем второй справочник, который содержит колонки «ИНН», «код/артикул товара», «значение цены». В публичной части сайта делаем «выбиралку», которой пользователь выбирает для какого его контрагента отображать цены (помним, что у одного пользователя их может быть много). Что такое справочники в Битриксе? — все просто, это Highload-блоки. Как передавать? — даже с помощью стандартного протокола передачи справочников, который уже есть в битриксе из коробки. Таким образом, мы знаем для какого ИНН отображать цены и откуда их брать: При загрузке страницы проверяем справочники по ИНН, если есть индивидуальные цены — показываем из справочника индивидуальных цен, если нет — смотрим справочник типов цен и определяем по какому типу цены выводить цену. Чтобы это все корректно работало на стороне сайта, пользуемся волшебным событием OnGetOptimalPrice Profit :) Само собой, данный метод обхода не уникален, и имеет ряд определенных ограничений, который стоит учитывать и, с которым нужно будет мириться Из ограничений, можно отметить: Однако, с одной стороны, в каждом решении есть плюсы и минусы, с другой — в нашей случае, эти ограничения были приемлемы, поэтому решение подошло! Читайте также нашу статью: Как мы делали редизайн интернет-магазина для лидера рынка пневматики


Суть и проблематика задачи
Как сделали:

