1С-Битрикс: многоскладовость, 1С, персональные скидки

Алексей Шкарупа
Анатолий Ерофеев

После весьма успешного интернет-магазина Shell к нам обратилась компания "Глобус" из города Хабаровска (они также являются официальными дистрибьюторами Shell). У них была сложная, но интересная задача. 

Задачи, цели, нюансы

Задача состояла в том, чтобы автоматизировать работу с постоянными клиентами. Есть специфика: почти все товары импортируются из Японии, а их цена зависит от курса Юаня (большая часть товаров из Китая). Бумаги не напасешься чтобы печатать прайс-листы при смене курса валют! :)

Весь учет «Глобуса» построен на «1С: Управление торговлей», с которой нужно было интегрировать сайт (выгрузка товаров, обмен заказами). Кстати пока писалось ТЗ, наш клиент плавно переехал на новую версию 1С: Предприятия и 1С: УТ соответственно (всем бы так!).

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

Ну и пожалуй самое интересное: персональные цены. Когда компания работает на рынке и работает с оптовиками есть такая специфика, что менеджеры со временем каждому клиенту раздают персональные скидки (иногда на конкретные товары, а иногда на целые группы).
В предыдущих проектах мы уже сталкивались с подобными бизнес-процессами. Однако в тех случаях все знания о том, кому какую скидку обещали не были зафиксированы в учетной системе. В Глобусе же напротив вся эта информация хранилась в 1С.

Для того, чтобы доработать обмен с 1С сперва была сделана типовая выгрузка товаров. Полученные XML-файлы (CommerceML) мы подвергли изменениям, которые зафиксировали в техническом задании. 
Такое изменение естественно это потребовало и доработки обмена на стороне сайта.
Пара обсуждений, просьб перенести данные из одних узлов в другие и все было готово.

В результате мы получили:
  • выгрузку контрагентов на сайт
  • выгрузку информации о персональных скидках на сайт
  • расчет цен на сайте в зависимости от курсов валют и персональных скидок

Как менеджер проекта могу сказать, что самым сложным в этом проекте было различие в 7 часовых поясов. Когда мы приходили на работу наш клиент уже уходил домой. Созванивались после работы, договаривались, обсуждали узкие места.
Яндекс_Карты.png


А еще как раз в момент программирования и запуска проекта в Хабаровске было наводнение, думаю вы помните…
habarovsk.jpg

Несмотря на эту сложность проект запустили, а время реакции наших коллег не уменьшилось ни на минуту.

Технические аспекты

С точки зрения программиста, проект получился тоже неординарный. ТЗ пестрило необычными задачками, решать которые было одно удовольствие. Взять, например, список адресов доставки. Согласно ТЗ «Во вкладке Адреса доставки клиент может увидеть все свои адреса для доставки и добавить новые, отредактировать существующие. Название адреса является ссылкой на редактирование записи.». То есть, адреса — это самостоятельная сущность, потенциально инфоблок. Но эти данные используются и на этапе оформления заказа! Решилось файлом result_modifier, который, если пользователь указал ID своего профиля доставки, записывал значения оттуда в скрытые поля заказа.

Следующее интересное требование связано с многоскладовостью. У клиента три склада в разных городах, и сайт должен был это отражать. Мы сделали для каждого пользователя настройку — товары с каких складов ему показывать, по умолчанию показывали все. Чтобы клиент не запутался в маслах и смазках на разных складах, корзину выводили блоками, для каждого города свою. Вышло так, что Клиент захотел, чтобы заказы по разным городам оформлялись порознь, и в один заказ не могли попасть товары из разных городов.
Корзина товаров
Пришлось пойти на хитрость. Как только покупатель нажимал кнопку «оформить заказ» в городе A, товары из складов городов Б и В автоматически добавлялись в «отложенные» и не участвовали в процедуре оформления заказа. А при следующем посещении корзины товары «доставались» обратно.

Больше всего времени отняла работа с ценами, и немалая часть этой задачи была потрачена на простое понимание механизма скидок. Если вкратце, все завязано на 5 сущностях — пользователь, скидка, тип цены, товар, конкретное значение скидки для пользователя по конкретному типу цены. Все это можно представить в виде семантической сети.

Семантическая сеть
Скидка задается коэффициентом — 1,5 означает наценку 50%, 0,95 — 5% скидку, а 1 — это продажа товаров по обычной цене. Как видно на схеме, нет прямой связи между пользователями и товарами, только посредством типов цен и групп скидок. При этом для нового пользователя покупка каких-либо товаров невозможна до тех пор, пока менеджеры на сайте или в файлах импорта не укажут его скидку. Но это закономерно, так как случайных пользователей в этом интернет-магазине нет.

Вот такой получился «нестандартный» проект.

Оцените статью
06.03.2014
Понравилась статья?
Поделитесь ссылкой с друзьями и коллегами!

Статьи по теме

07.03.2023
Дорожная карта внедрения платформы автоматизации оптовых продаж Про построение эффективных отделов продаж написано много крутых статей. Одни эксперты готовы сделать это за 10 шагов, другие предлагают многоэтапную эволюц...
16.02.2023
Как начать B2B-продажи онлайн - особенности и методы оптовой торговли После пандемии рынок e-commerce начал стремительно расти. Мы говорим не только о B2C, но и о B2B-сегменте. Многие крупные компании уже разглядели потенциал...
10.01.2023
Как битриксоиды в React уходили Приятно познакомиться, мы битриксоиды. Да-да, те самые которые: вообще не модные, пишут НЕ на Laravel и Symfony, ...
10.01.2023
Товарная дистрибуция 30 лет спустя. Как программисты изменили продажи крупного бизнеса «Я думал, что буду строить банк, а на самом деле построил ИТ-компанию» Олег Тиньков, безработный Есть такая штука — товарная дистри...
10.01.2023
Как мы решили выпускать собственный продукт через CustDev и у нас получилось Собственный продукт как фиксация компетенции  В развитии крупных компаний-аутсорсеров наступает момент, когда они уже обросли опытом и компетенциями ...
19.12.2022
Учимся настраивать свою почту, не наступая на чужие грабли: Postfix + msmtp + сайт Привет, меня зовут Никита, я backend-разработчик в компании ИНТЕРВОЛГА. Работаю в компании уже 3 года, и за этот срок достаточно часто мне приходилось вози...

Мы работаем по одному из двух форматов:

  • аренда команды (от 2 человек, не менее 3 месяцев);
  • итерации с фиксированной ценой (1-3 месяца длительностью).

ИНТЕРВОЛГА предоставляет:

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

Для доработок и развития мы предлагаем формат 100 часов в месяц. Что можно сделать за это время:

  • новые нетиповые страницы или раздел;
  • 2 отчета с индивидуальными настройками;
  • 3-5 веб-сервисов интеграции;
  • замудренный калькулятор и т.п.

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

Хочешь получать лучшие статьи от INTERVOLGA раз в месяц?
Подпишись на рассылку — спамить не будем