Пересказать с ИИ:

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

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

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

Все началось с невозможности открыть заказ

Схема работы интеграции службы доставки: интернет-магазин -> API службы доставки -> пункты выдачи -> оформление заказа

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

Поскольку проект работает на платформе интернет магазин CS-Cart, первоначально можно было предположить проблему в самой административной части. Однако детальный анализ показал, что причина находилась в логике хранения данных, поступающих от службы доставки.

Во время оформления заказа сохранялась не только выбранная покупателем точка выдачи, но и весь справочник пунктов выдачи выбранного города. В некоторых случаях это были тысячи объектов, содержащих адрес, код, координаты, название и другие параметры.

Когда менеджер открывал заказ, весь этот массив загружался в рабочую сессию администратора. Из-за чрезмерного объема данных сессия сохранялась некорректно, что и приводило к невозможности открыть карточку заказа.

Что изменили

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

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

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

Следующим этапом стала оптимизация карты пунктов выдачи

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

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

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

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

Подготовка интеграции к работе с новым партнером

Сравнение карты до и после оптимизации: отображение нескольких тысяч точек одновременно и поэтапная загрузка

Комплексная доработка также включала подготовку модуля доставки к работе с новой сетью пунктов выдачи. На стороне интернет-магазина были добавлены необходимые элементы интерфейса: отображение нового партнера на карте и возможность его выбора в настройках способа доставки.

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

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

Итоги проекта

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

  • оптимизировать хранение данных о пунктах выдачи;
  • восстановить корректное открытие заказов;
  • реализовать автоматическое восстановление данных для ранее оформленных заказов;
  • повысить скорость загрузки карты ПВЗ;
  • исключить влияние ошибочных координат на отображение карты;
  • реализовать мгновенное открытие карты при выборе способа доставки;
  • подготовить модуль к работе с новым партнером и выявить внешнюю проблему при расчете стоимости доставки.

Заключение

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

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