Автоматизация остатков и обновление цен на Битрикс

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


Импорт прайс листов Битрикс

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

На первом этапе была поставлена задача, настроить автоматический импорт прайс листов, более чем 50 поставщиков. Мы объединили все прайс листы по типу, то есть, Excel, CSV, XML. Таким образом разделили логику обработки прайс листов. Также у некоторых поставщиков требуется дополнительная авторизация для получения прайс листа, это также учли при импорте.
Следующим шагом разделили каждого поставщика на отдельную логику так как разные прайсы идут с разными шаблонами и видом. В итоге мы разделяем поставщиков на типы файлов и типы шаблонов обработки.
Существенной проблемой при обработке прайс листов возникает в случае обработки Excel и CSV в данных прайс листах как правило не хранится данные о картинках. В результате возникла необходимость написание дополнительного html парсера, который забирает картинки и дополнительное описание с сайта поставщика.

api

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


мой склад

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

Таким образом у нас вышла схема работы такая, импорт прайс листов в сервис обработчик прайс листов, и далее выгрузка через API в МС и выгрузка данных и сервиса обработчика картинок и свойств товаров на сайт Битрикс.
Обработка и импорт прайс листов происходит на отдельном сервере с установленным фреймворком Laravel. Таким образом мы исключаем дополнительную нагрузку на сервер с сайтом Битрикс.
Также учли что остатки могут не обновляться, в прайс листе, в данном случае происходит абсолютная экономия ресурсов как сервиса так и продакшн сайта.

Проконсультироваться и получить предложение