15.06.2021

Разработка модуля интеграции «1С-Битрикс» с «МойСклад»

Задача: Разработать модуль интеграции 1С-Битрикс с МойСклад для сайта AUDIO-DRIVE.

AUDIO-DRIVE - популярный интернет магазин электроники и аксессуаров. 

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

По мере увеличения каналов продаж, перед клиентом встал вопрос о переработке интеграции с системой учета МойСклад. Так после запуска интеграции с OZON проблема синхронизации встала особенно остро, задержка обмена остатками неизбежно приводила к отмене заказов, а маркетплейс грозил отключением магазина.

Анализ требований

Мы проанализировали бизнес процессы клиента, изучили текущую логику обмена и дополнительные требования к интеграции.

Штатный модуль обмена решили не использовать, поскольку он не покрывает всех потребностей клиента, например:

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

Анализ готовых решений сторонних разработчиков показал, что без доработок под конкретную специфику магазина не обойтись. Доработка готового модуля не является оптимальным решением, ввиду сложности доработок, зависимости от обновлений и чужой архитектуры. Чтобы избежать дополнительных рисков и учесть все нюансы бизнес процессов клиента - мы пошли путем разработки собственного решения в виде модуля интеграции с МойСклад (на основе JSON API)

Разработка модуля

Flowchart_min-min.jpg
Логическая схема интеграции
Синхронизация товаров

Поскольку новые товары заводятся как в МС так и в битрикс, синхронизацию сделали двухсторонней. 

При синхронизации товаров происходит проверка по полю артикул (ID товара в МС), товары созданные в МС импортируются в отдельный раздел каталога битрикс для последующего распределения по разделам.

Товары созданные в битрикс - передаются в МС, происходит проверка на уникальность (по ID товара) и создаются новые товары, при этом ID товара в МС соответствует артикулу на сайте. Такая привязка позволяет работать с несколькими сайтами в рамках битрикс, где наименования и цены одних и тех же товаров различаются.

При изменении товара (название, цена, гарантия, вес, размер и штрихкод) в одной из систем - изменения синхронизируются в другой.

Синхронизация заказов 

Синхронизация заказов односторонняя, созданный заказ в битрикс - выгружается в МС, с заказом передаются товары, количество и стоимость (с учетом скидок), вариант доставки и ее стоимость (в МС выгружается как услуга), синхронизируются контрагент/покупатель.

Синхронизация остатков

Актуальные остатки хранятся только в МС и импортируются в битрикс по расписанию. 

Резервирование товара в МС происходит после установки “Доставка разрешена”, при этом происходит проверка доступного остатка в МС и установка флагов “Проведено” и “Резерв”, а также флага “Ошибка”, в случае недостаточности доступного остатка.

Синхронизация оплат

При создании оплаты в битрикс - в МС создается входящий платеж на выбранное (в битрикс) юрлицо и соответствующий счет. 

Если по одному заказу в битриксе создаются несколько оплат, то в МС создаются несколько входящих платежей, при этом в МС устанавливается флаг “Проведено”. При удалении или отмене оплаты в битрикс - удаляется платеж в МС

Синхронизация отгрузок

При установке флага “Отгружено” в битрикс - в МС создается отгрузка. При удалении или отмене отгрузки в битрикс - удаляется отгрузка в МС

Заключение

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

Так в битрикс можно загрузить файл отчета, например от СДЭК, после его обработки в МС будут созданы входящие платежи (на выбранное при импорте файла юрлицо и расчетный счет) и будут привязаны к заказам покупателей.

Наш модуль интеграции 1С-Битрикс с МойСклад работает быстрее штатного, например среднее время загрузки заказа в МС (после появления его в битрикс) составляет 10 секунд, примерно такое-же время требуется на синхронизацию статусов, а полный обмен остатками, ≈ 20 000 товаров, проходит за 3 минуты.