Как мы научили Shopify считать стоимость доставки «Дверь-Дверь» в реальном времени.
Задача
К нам обратился магазин lovelyeva.ru. Проблема классическая для Shopify в России: стандартные настройки доставки не умеют автоматически подтягивать тарифы наших локальных перевозчиков.
Нужно было сделать так, чтобы покупатель на странице оформления заказа (Checkout) видел реальную стоимость доставки СДЭК до своего адреса, а не фиксированную заглушку.
Из переписки с клиентом:
«Вам нужно только в варианте доставки показать рассчитанную СДЭКом стоимость? Или полный функционал контроля доставки?»
Ответ: «Требуется только расчет суммы и передача в оформление заказа».
Выбор решения и нюансы
СДЭК - штука гибкая, тарифов много. Мы сразу уточнили у клиента, как именно он возит товары. Варианты бывают разные: до склада, до двери, от двери. Это критично для формулы расчета.
Клиент выбрал самый простой для покупателя, но самый дорогой вариант: тариф «Дверь-Дверь». Без карт, без выбора пунктов выдачи (ПВЗ). Просто адрес клиента -> расчет цены курьера.
Чтобы магазин мог запрашивать стоимость доставки у стороннего сервиса (в нашем случае у API СДЭК) в реальном времени, Shopify требует наличие функции CarrierService. Она доступна только на тарифе Advanced Shopify или при оплате базового тарифа сразу за год.
Реализация
Поскольку готового приложения под узкую задачу клиента не было (или они были перегружены лишним функционалом), мы пошли путем прямой интеграции через API.
Схема работы получилась такая:
- Покупатель вводит адрес на чекауте.
- Shopify отправляет эти данные нашему скрипту.
- Скрипт стучится в СДЭК, отдает габариты и город, получает цену по тарифу «Дверь-Дверь».
- Скрипт возвращает цену обратно в Shopify, и покупатель видит итоговую сумму.
Что вошло в смету
Работа заняла около 15 рабочих дней. Вот список того, что пришлось сделать руками:
- Регистрация приватного приложения (Private App) в админке Shopify.
- Очистка старых методов доставки, чтобы не путать клиентов.
- Подключение CarrierService API.
- Написание внешнего скрипта-прослойки (middleware).
- Функция 1: Прием данных от магазина → конвертация в формат СДЭК.
- Функция 2: Получение ответа от СДЭК → конвертация в формат Shopify.
Итог
Магазин получил автоматический расчет. Менеджерам больше не нужно звонить клиенту и говорить: «Вы знаете, доставка выйдет чуть дороже, чем написано на сайте». Всё прозрачно сразу при оформлении.
Категория: Интеграции, Shopify, API
Дата реализации: Август 2019