Модуль-сторож данных доставки для интернет-магазина
Модуль доставки тянул из публичного API «фейковые» пункты выдачи, а в части городов доставка пропадала — терялись заказы. Надстройка без правок чужого кода отсекает мусор, сторожит данные и вернула доставку в 120 городов.
Задача
В интернет-магазине на Битрикс модуль доставки тянул адреса пунктов выдачи из публичной выгрузки службы доставки, где периодически проскакивали ошибки — и никак их не фильтровал. Из-за этого на карте появлялось «фейковое отделение» с неверными координатами (пин улетал в другой город), а в части городов доставка вообще пропадала из вариантов. Клиент в таком городе не видел привычного способа доставки и уходил к конкуренту — прямая потеря заказов.
Что было
- Модуль слепо доверял публичной выгрузке пунктов выдачи — любая ошибка в ней сразу попадала на витрину.
- Из-за неверных координат появлялось несуществующее отделение, и пин на карте улетал в чужой город.
- Из-за незаполненного соответствия городов доставка не показывалась в большинстве населённых пунктов.
- Ошибки данных всплывали случайно — их замечали уже по жалобам, а не заранее.
Что сделали
- Сделали отдельный модуль-надстройку без единой правки чужого кода — только подписка на события обновления данных. Такой модуль переживает обновления исходного модуля доставки.
- Чёрный список: заведомо фейковые пункты выдачи не попадают в автообновление витрины.
- Сторож данных: каждое подозрительное изменение (сдвиг координат больше 2 км, смена региона, новые точки) логируется — ошибку видно сразу после обновления базы.
- Информер в админке «здоровье данных доставки»: менеджер управляет чёрным списком и видит состояние без разработчика.
- Авто-сопоставление городов службы доставки с городами Битрикса — доставка снова появляется там, где есть пункты выдачи.
Что получилось
- Фейковые отделения отсекаются автоматически — карта больше не «улетает» в чужие города.
- Авто-сопоставление 120 городов вернуло доставку во все населённые пункты, где есть пункты выдачи.
- Любая будущая ошибка в данных ловится сразу после обновления, а не по жалобам клиентов.
- Ноль правок чужого модуля и ноль простоя магазина — надстройка переносится на другие сайты одним архивом.
Имя клиента не раскрывается по NDA. Реальные имена и подробности обсуждаем в брифе.
Похожая задача?
Опишите кратко — за 1–2 дня вернёмся с разбором и оценкой по часам. Если решение тиражное — честно скажем.