Организация схемы Click & Collect (заказ на сайте с последующим самовывозом из розничной точки) — одна из самых востребованных задач в современной розничной торговле. Покупателю удобно выбрать товар онлайн, зарезервировать его и забрать в удобном магазине, а бизнесу это позволяет объединить онлайн- и офлайн-каналы продаж.
В этой статье мы подробно проанализируем, как правильно выстроить архитектуру взаимодействия между интернет-магазином на платформе 1С-Битрикс и конфигурацией 1С:Розница, избегая избыточных звеньев и технических ошибок синхронизации.
Часто у разработчиков и системных архитекторов возникает соблазн построить трехзвенную схему обмена: Битрикс <-> 1С:Управление торговлей (УТ) <-> 1С:Розница (кассы). На первый взгляд это кажется логичным, ведь 1С:УТ традиционно обладает мощным функционалом оптово-розничной торговли и развитым модулем обмена с сайтами. Однако на практике такая схема порождает критические проблемы:
Поэтому наиболее эффективным решением является прямая интеграция 1С:Розница с 1С-Битрикс.
Если ранее (в редакции 2.3 и ниже) встроенный модуль обмена с сайтом в 1С:Розница действительно имел ограниченный функционал, то с выходом 1С:Розница 3.0 ситуация кардинально изменилась. Современная Розница построена на единой кодовой базе с 1С:Управление нашей фирмой (УНФ).
Благодаря этому Розница 3.0 «из коробки» получила:
Заказ покупателя с возможностью резервирования запасов.Еще одно частое опасение — необходимость ломать структуру справочника Номенклатура в 1С под логику отображения товаров на сайте. Разберем по шагам, как решить эту проблему без изменения структуры папок в учетной системе:
Для корректной работы Click & Collect схема взаимодействия настраивается следующим образом:
Шаг 1. Настройка многоскладовости на сайте. В редакции «Битрикс: Бизнес» создаются склады, соответствующие розничным магазинам (складам в 1С). Из 1С выгружаются остатки в разрезе каждого магазина.
Шаг 2. Оформление заказа покупателем. Покупатель на сайте выбирает товар, видит его реальное наличие в конкретной точке и выбирает доставку «Самовывоз» из Магазина №1.
Шаг 3. Резервирование в 1С. Заказ моментально (в режиме реального времени) поступает в 1С:Розница. На стороне 1С создается документ Заказ покупателя, который автоматически резервирует товар на складе Магазина №1. Розничный кассир на кассе сразу видит, что свободный остаток уменьшился, и откладывает товар на специальную полку хранения интернет-заказов.
Проанализируем пример программного создания такого резерва при поступлении заказа с сайта:
// Пример фиксации резерва под заказ с сайта в 1С:Розница 3.0 / УНФ
Процедура ЗарезервироватьТоварПодЗаказ(ДанныеСайта)
НовыйЗаказ = Документы.ЗаказПокупателя.СоздатьДокумент();
НовыйЗаказ.Дата = ТекущаяДата();
НовыйЗаказ.Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", ДанныеСайта.ИНН);
НовыйЗаказ.Покупатель = Справочники.Контрагенты.НайтиПоНаименованию("Розничный покупатель (Сайт)");
// Определяем конкретный магазин-склад для самовывоза
НовыйЗаказ.Склад = Справочники.СтруктурныеЕдиницы.НайтиПоНаименованию(ДанныеСайта.МагазинПолучения);
Для Каждого ТоварИзЗаказа Из ДанныеСайта.Товары Цикл
НоваяСтрока = НовыйЗаказ.Запасы.Добавить();
НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(ТоварИзЗаказа.КодТовара);
НоваяСтрока.Количество = ТоварИзЗаказа.Количество;
НоваяСтрока.Цена = ТоварИзЗаказа.Цена;
НоваяСтрока.Сумма = ТоварИзЗаказа.Количество * ТоварИзЗаказа.Цена;
// Устанавливаем резерв на выбранном складе
НоваяСтрока.Резерв = ТоварИзЗаказа.Количество;
КонецЦикла;
Попытка
НовыйЗаказ.Записать(РежимЗаписиДокумента.Проведение);
Сообщить("Заказ успешно зарезервирован: " + НовыйЗаказ.Ссылка);
Исключение
Сообщить("Ошибка проведения резерва: " + ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Особое внимание необходимо уделить моменту пробития кассовых чеков, так как закон строго регламентирует торговлю через интернет.
Вариант А: Оплата при получении в магазине.
Это наиболее простой сценарий. Покупатель оформляет заказ на сайте без онлайн-оплаты. Товар резервируется. При визите клиента кассир находит заказ в РМК 1С:Розница, принимает оплату наличными или картой через эквайринг и пробивает обычный чек с признаком расчета «Передача без оплаты» или «Полный расчет».
Вариант Б: Онлайн-оплата на сайте.
Если покупатель оплачивает заказ картой прямо на сайте, возникает необходимость пробития двух чеков:
Для успешной реализации самовывоза не нужно перегружать ИТ-ландшафт дополнительными базами вроде 1С:УТ. Переход на современную версию 1С:Розница 3.0 и правильная настройка интеграции с 1С-Битрикс позволяют организовать бесшовный процесс резервирования остатков в режиме реального времени, исключить пересортицу и обеспечить полное соответствие требованиям законодательства по фискализации.