Автоматизация приема заказов из маркетплейсов в распределенной сети магазинов — задача комплексная, требующая правильного выбора архитектуры взаимодействия. Рассмотрим, как выстроить эффективный процесс передачи данных из центрального веб-сервиса в конкретные торговые точки.
Если вы хотите обеспечить максимально оперативное взаимодействие, самым технически правильным подходом будет публикация баз 1С:Розница на веб-сервере в каждом магазине. В этом случае процесс выглядит следующим образом:
Delivery Club, при поступлении заказа отправляет POST-запрос на веб-сервис конкретной торговой точки.веб-сервис в магазине создает документ Заказ покупателя.Этот метод исключает необходимость постоянного опроса базы (polling), так как база «просыпается» только в момент поступления данных.
Если публикация баз в 38 магазинах кажется избыточной или небезопасной, можно выбрать модель «опроса» (pull). В этом случае вы реализуете обмен следующим образом:
веб-сервис, который принимает все заказы от маркетплейса.регламентное задание, которое с заданной периодичностью (например, раз в минуту) обращается к центральному веб-сервису.Для оперативного оповещения персонала при таком подходе лучше использовать мессенджеры (например, Telegram). Важно: регламентные задания в старой Рознице 1.0 могут быть недостаточно оперативными, поэтому для уведомления продавца идеально подойдет интеграция с Telegram-ботом, который пришлет пуш-уведомление на смартфон дежурной смене.
Проблема «как заставить 1С пищать» решается несколькими способами в зависимости от ваших возможностей:
Систему взаимодействия. Она позволяет выводить уведомления в интерфейсе 1С, но для версии 1.0 это потребует серьезной доработки.API это приложение может выводить визуальное окно или подавать звуковой сигнал.При настройке обмена обязательно предусмотрите двустороннюю синхронизацию статусов. Процесс должен выглядеть так:
// Пример логики обработки заказа на стороне магазина
Функция ОбработатьВходящийЗаказ(ДанныеЗаказа) Экспорт
НовыйЗаказ = Документы.ЗаказПокупателя.СоздатьДокумент();
// ... заполнение реквизитов ...
Если НовыйЗаказ.Записать() Тогда
ОтправитьСтатусВЦентр("Принят");
Возврат Истина;
Иначе
ОтправитьСтатусВЦентр("Ошибка");
Возврат Ложь;
КонецЕсли;
КонецФункции
Помните, что для стабильной работы системы в условиях 38 торговых точек необходимо:
РегистрСведений, чтобы при потере заказа можно было быстро найти причину (ошибка сети, сбой в API или проблема на стороне 1С).1С обязана мгновенно отправить статус Отказ в центральную базу для передачи в Delivery Club.Подводя итог, если у вас Розница 1.0, наиболее надежным и дешевым решением будет централизованный веб-сервис для приема заказов и использование Telegram-бота для уведомления сотрудников, так как это минимизирует риски при сбоях интернет-соединения в магазинах.