Интеграция доставки

Интеграция CarrierService API Shopify с СДЭК. Автоматический расчет стоимости доставки "Дверь-Дверь" в реальном времени на странице оформления заказа.

Краткая информация

  • Проект lovelyeva.ru
  • Платформа Shopify
  • Служба доставки СДЭК
  • Тариф Дверь-Дверь
  • API CarrierService
  • Срок 15 дней

Задача

Магазин lovelyeva.ru на Shopify столкнулся с классической проблемой для российских интернет-магазинов: стандартные настройки доставки не умеют автоматически подтягивать тарифы СДЭК.

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

Нужно было сделать так, чтобы на странице оформления заказа (Checkout) покупатель сразу видел реальную стоимость доставки СДЭК до своего адреса.

Из переписки с клиентом

Мы: "Вам нужно только показать рассчитанную СДЭКом стоимость? Или полный функционал контроля доставки?"

Клиент: "Требуется только расчет суммы и передача в оформление заказа."

Выбор решения

СДЭК предлагает много тарифов: до склада, до двери, от двери. Это критично для формулы расчета.

Клиент выбрал самый простой для покупателя вариант: тариф "Дверь-Дверь". Без карт, без выбора пунктов выдачи. Просто адрес клиента → расчет цены курьера.

Техническое ограничение Shopify

Чтобы магазин мог запрашивать стоимость доставки у стороннего сервиса (в нашем случае у API СДЭК) в реальном времени, Shopify требует функцию CarrierService. Она доступна только на тарифе Advanced Shopify или при оплате базового тарифа сразу за год.

Техническая реализация

Готового приложения под узкую задачу клиента не было. Существующие решения были перегружены лишним функционалом. Пошли путем прямой интеграции через API.

Как это работает

  1. Покупатель вводит адрес на странице оформления заказа
  2. Shopify отправляет эти данные нашему серверному скрипту
  3. Скрипт обращается к API СДЭК, передает габариты и город
  4. СДЭК возвращает цену по тарифу "Дверь-Дверь"
  5. Скрипт передает цену обратно в Shopify
  6. Покупатель видит итоговую сумму с доставкой

Что сделали

  • Зарегистрировали приватное приложение (Private App) в админке Shopify
  • Очистили старые методы доставки, чтобы не путать покупателей
  • Подключили CarrierService API
  • Написали внешний скрипт-прослойку (middleware)
  • Реализовали функцию приема данных от магазина и конвертации в формат СДЭК
  • Реализовали функцию получения ответа от СДЭК и конвертации в формат Shopify

CarrierService API

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

Как работает CarrierService

При оформлении заказа Shopify отправляет POST-запрос на URL вашего сервиса. В запросе передаются:

  • Адрес доставки
  • Список товаров с весом и размерами
  • Общий вес и габариты

Ваш сервис должен вернуть JSON с вариантами доставки и ценами.

API СДЭК

СДЭК предоставляет API для расчета стоимости доставки. Основной метод — расчет тарифа.

Параметры запроса

  • Город отправления (код СДЭК)
  • Город получения (код СДЭК)
  • Вес посылки
  • Габариты (длина, ширина, высота)
  • Код тарифа (для "Дверь-Дверь" свой код)

Что возвращает СДЭК

  • Стоимость доставки
  • Срок доставки (минимальный и максимальный)
  • Ошибки, если что-то не так (например, город не обслуживается)

Скрипт-прослойка

Скрипт работает как посредник между Shopify и СДЭК. Конвертирует данные туда и обратно.

Функция 1: Shopify → СДЭК

Получаем от Shopify адрес, вес, габариты. Преобразуем в формат запроса СДЭК. Например, город "Москва" превращаем в код города СДЭК.

Функция 2: СДЭК → Shopify

Получаем от СДЭК стоимость и срок доставки. Формируем JSON в формате, который понимает Shopify CarrierService. Возвращаем варианты доставки с ценами.

Результат

Магазин получил автоматический расчет доставки. Покупатель видит реальную стоимость доставки СДЭК сразу при оформлении заказа.

  • Менеджерам не нужно звонить и пересчитывать доставку
  • Покупатель знает итоговую сумму заранее
  • Меньше отказов из-за неожиданной стоимости доставки
  • Все прозрачно сразу на странице оформления
  • Расчет в реальном времени по актуальным тарифам СДЭК

Почему 15 дней

Работа заняла около 15 рабочих дней. Основное время ушло на:

  • Изучение документации CarrierService API
  • Настройку Private App в Shopify
  • Тестирование разных сценариев (разные города, веса, габариты)
  • Обработку ошибок (когда СДЭК не обслуживает адрес)
  • Оптимизацию скорости ответа (чтобы расчет не тормозил оформление)

Технологии

Shopify СДЭК CarrierService API Доставка API интеграция E-commerce Курьерские службы