У клиента два интернет-магазина на SaaS-платформе InSales, необходимо было подключить к ним выгрузку заказов на внешний склад (фулфилмент-оператор), интегрировать складской сервис МойСклад, сделать автоматический и точный расчёт доставки через несколько курьерских и транспортных компаний, в т.ч. и международную доставку.

https://steklopodem.ru/ — самый известный специализированный магазин стеклоподъемников;
https://autodemic.ru/ — магазин автозапчастей, пока работает в тестовом режиме но даже сейчас приносит заметный поток заказов.

Технологии: php 5.3, MySQL, Yii, Bootstrap, API-интерфейсы внешних сервисов.

Стеклоподъем_1

Решение. Непосредственного доступа к коду интернет-магазина на InSales мы получить не могли, поэтому для промежуточной обработки всех данных о доставке, заказах и товарах начали писать отдельный сервис интеграции через который в итоге стали проходить практически все данные интернет-магазина.

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

Стеклоподъем_2

Следующей большой задачей оказался расчёт стоимости доставки для клиентов интернет-магазина в режиме реального времени. Для этого нам пришлось реализовать прямые интеграции с большинством курьерских и транспортных компаний, а некоторые считать по особенному алгоритму.

Как оказалось, почти у всех курьерских компаний геобаза, по которой возможна доставка, находится в ужасном и не стандартизированном состоянии. И чтобы связать тот или иной населённый пункт (а их несколько десятков тысяч!) с конкретным ID этого населенного пункта в курьерской компании, пришлось написать скрипт стандартизации, который опирается на API dadata.ru (для РФ) и GoogleMaps (для зарубежных объектов).

Стеклоподъем_3

Следующей большой подсистемой мы реализовали обработку товаров. Товары синхронизируются между интернет-магазином, фулфилмент-оператором и сервисом складского учёта. Также мы реализовали обработку прайсов поставщиков, что дало возможность продавать товары не только со склада, но и под заказ.

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

Стеклоподъем_4

В рамках данного сервиса интеграции мы решили и продолжаем решать множество других, более локальных задач. Например, делаем анализ оприходований новых товаров на склад, обрабатываем информацию о платежах покупателей, возвратах и многое другое. Такая глубокая автоматизация позволяет управлять большим количеством заказов двух интернет-магазинов силами всего лишь 5-ти человек, причём в отзывах о магазине покупатели особо отмечают качество сервиса и скорость обработки заказов, в чём есть и немного нашей заслуги.



Есть вопросы?