Петр Сальников › spbcod Сбер ID
Fullstack-разработчик (Symfony / Битрикс) с опытом DevOps.
Рейтинг
332
№ 3 332 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Город
Санкт-Петербург
Опыт работы
28 лет
На сайте с
2023 года
Юридический статус
ИП

Разработка системы автоматического обновления и синхронизации пунктов выдачи заказов (ПВЗ) СДЭК с местоположениями в 1С-Битрикс

Описание

В интернет-магазине при оформлении заказа покупатели выбирают удобный пункт самовывоза СДЭК. Проблема заключалась в том, что:
- Список ПВЗ устаревал — СДЭК регулярно открывает новые пункты, закрывает старые, меняет график работы
- Несоответствие данных — в базе магазина одни адреса, а в реальности — другие
- Ошибки при заказе — покупатели выбирали пункт, которого уже нет, или с неверным режимом работы
- Ручное обновление невозможно — в России тысячи ПВЗ СДЭК, обновлять вручную нереально
- Интеграция с картами — для отображения ПВЗ на карте нужны актуальные координаты

Требовалось создать систему, которая:
- Автоматически получает актуальный список ПВЗ через API СДЭК v2.0
- Обновляет существующие записи в базе магазина
- Добавляет новые ПВЗ, которые появились
- Помечает (или удаляет) закрытые пункты
- Синхронизирует с местоположениями Битрикс (города, регионы)
- Сохраняет полную информацию: адрес, координаты, график работы, фотографии, услуги
- Работает по расписанию (CRON) без участия человека

Решение

Создал комплексное решение на основе API СДЭК v2.0 :

/local/php_interface/include/cdek_pvz_updater/
├── CdekPvzUpdater.php # Основной класс обновления
├── CdekApiClient.php # Клиент для работы с API СДЭК
├── LocationMatcher.php # Сопоставление с городами Битрикс
├── PvzStorageManager.php # Управление хранением ПВЗ
├── install/
│ └── create_tables.php # Создание таблиц для хранения ПВЗ
├── admin/
│ └── cdek_pvz_admin.php # Интерфейс в админке
└── cron/
└── update_pvz.php # Скрипт для запуска по CRON

Результат

Для бизнеса
✅ Актуальный список ПВЗ — всегда свежие данные из API СДЭК
✅ Точность при заказе — покупатели видят только существующие пункты
✅ Экономия времени — не нужно обновлять вручную тысячи записей
✅ Меньше ошибок доставки — заказы не попадают в несуществующие ПВЗ
✅ Полная информация — координаты, фото, график работы, услуги

Для покупателей
✅ Точный выбор — видят реально работающие пункты выдачи
✅ Актуальный график — правильное время работы
✅ Удобная навигация — координаты для построения маршрута
✅ Фото ПВЗ — могут оценить внешний вид пункта

Технические результаты
✅ Интеграция с API СДЭК v2.0
✅ Автоматическая аутентификация с получением и сохранением токена
✅ Пакетная загрузка с пагинацией (1000 записей за раз)
✅ Сопоставление с городами Битрикс (с учетом регионов)
✅ Полная структура данных ПВЗ (адрес, координаты, фото, услуги)
✅ Деактивация несуществующих ПВЗ
✅ Запуск по CRON (рекомендуется раз в сутки)
✅ Интерфейс для ручного запуска и мониторинга
✅ Интеграция с Яндекс.Картами для визуализации

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Разработка интерфейса выбора доставки на этапе оформления заказа с отображением стоимости по разным транспортным компаниям (1С-Битрикс)
Разработка интерфейса выбора доставки на этапе оформления заказа с отображением стоимости по разным транспортным компаниям (1С-Битрикс)
75
Веб-разработка и IT Разработка универсального API времени Events in Time — от Большого взрыва до далекого будущего (Symfony)
Разработка универсального API времени Events in Time — от Большого взрыва до далекого будущего (Symfony)
79
Веб-разработка и IT Система черных списков покупателей для 1С-Битрикс (автоматическое выявление проблемных клиентов по email, телефону и другим данным)
Система черных списков покупателей для 1С-Битрикс (автоматическое выявление проблемных клиентов по email, телефону и другим данным)
72
Веб-разработка и IT Разработка API для получения интересных фактов о числах на Symfony
Разработка API для получения интересных фактов о числах на Symfony
79