Сервис VirtualPOS - это сервис, позволяющий розничному бизнесу вести управление и аналитику продаж через один web-интерфейс. Функционал платформы обеспечивает работу полноценной интернет-витрины, кассы, склада и системы аналитики. Для интеграции со сторонними сервисами VirtualPOS предоставляет доступ к данным средствами собственного API. Именно методы этого интерфейса стали основой для нашей разработки.
Если ваш розничный бизнес это десятки или сотни точек продаж, а номенклатура склада состоит из тысяч наименований, рано или поздно вы столкнетесь с такими проблемами, как нехватка дискового пространства для хранения больших объемов контента, обеспечение безопасности хранения и разграничение доступа, резервное копирование и восстановление данных. Чтобы решить описанные проблемы, разработчики CMS все чаще идут на такой шаг, как интеграция собственных продуктов со сторонними облачными хранилищами.
Покупатели интернет-магазина K.Plus под управлением CMS 1С:Битрикс всегда должны видеть на сайте актуальное наличие товара в точке выдачи, которая географически находится рядом с его домом. Кассир-продавец не должен отправлять покупателя на другой конец города, если продажу можно совершить тут и сейчас. VirtualPOS позволяет вести операционную дейтельность с номенклатурой, складом и заказами. Остатки на складе VirtualPOS должны быть синхронизированы с остатками в каталоге интернет-магазина. Новый заказ на сайте должен быть моментально отображен в облачном кассовом сервисе.
В нашем решении VirtualPOS является источником, где уже создана структура номенклатуры и склада. Мы реализовали экспорт этих объектов на сайт K.Plus. А уже после создания нового заказа выполняется выгрузка покупки в противоположном направлении - в облачную систему.
VirtualPOS разделяет товары на группы. На стороне Битрикс создается аналогичная структура дерева разделов каталога. Характеристики и атрибуты товаров переносятся как свойства инфоблока. Одинаковые товары с разными характеристиками группируются в торговые предложения.
В облаке цены хранятся в отдельной таблице прайс-листов, а остатки привязаны к точкам продаж. На стороне Битрикса соответственно заполняются цены и создаются склады.
После оформление нового заказа в интернет-магазине такой же заказ экспортируется на сервер VirtualPOS. Изменение статусов заказа отслеживается и переносится в облако.
Для решения нам понадобился удобный и понятный программный интерфейс API VirtualPOS для получения, добавления и изменения данных. А удобен он тем, что запрос строится в одну строчку, если использовать php библиотеку cURL. Данные выгружаются по http протоколу. Формат на выбор - XML или JSON.
Используя функции cURL и Bitrix Framework мы написали собственные методы, которые позволили нам связать два источника. Таком образом для каждой задачи мы создали отдельные скрипты:
Для работы сайта K.Plus полное обновление разделов и товаров, а также складов, выполняется раз в сутки. Остатки и цены синхронизируются несколько раз в день. Для запуска скриптов в указанное время на сервере используется программа cron. Результаты обновлений пишутся в лог-файлы. Другие скрипты требуют исполнения в определенный момент. Например, когда на сайте создан новый заказ. В этом случае для вызова нашего скрипта используется система “событий” движка Битрикс.
Вот такими манипуляциями мы решили поставленную задачу и реализовали интересный функционал, который думаю, может быть востребован не только в единичном случае. Препятствием может стать только сложность структуры каталога товаров, которую позволяет создать фантазия заказчика.