WordPress · 6 мин чтения

WordPress сайт с интеграцией СДЭК: пошаговая настройка

Клиент вводит адрес - и через пару секунд видит стоимость доставки и список пунктов выдачи рядом с домом, не уходя со страницы заказа. Такой сценарий получаешь, когда собираешь wordpress сайт с интеграцией сдэк: калькулятор доставки, карта ПВЗ и передача заказов в личный кабинет транспортной компании работают внутри WooCommerce без ручного переноса данных менеджером. Ниже разбираю пошаговую настройку, которую провожу на проектах интернет-магазинов на WordPress - от получения ключей API до автоматической печати этикеток и уведомлений о статусе посылки.

Зачем интегрировать СДЭК в WordPress и какие есть варианты

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

Первый - готовый плагин из каталога WordPress или премиум-версия с доработками. Второй - прямая интеграция через СДЭК API v2 с написанием собственного модуля под тарифы и бизнес-логику магазина. Третий - агрегатор служб доставки (когда один плагин одновременно подключает СДЭК, Boxberry и Почту России), если магазин сравнивает несколько служб на чекауте.

Для интернет-магазина с оборотом до 200-300 заказов в месяц обычно достаточно официального плагина. Когда нужна кастомная логика - например, разные тарифы для разных категорий товаров, автоматическая сверка веса и габаритов со складскими данными или синхронизация с 1С - приходится дорабатывать интеграцию под конкретный процесс.

Вариант Расчёт стоимости в реальном времени Карта ПВЗ Кастомная логика тарифов Трудозатраты
Официальный плагин СДЭК для WooCommerce Да Да Ограниченная 1-2 дня
Прямая интеграция через API v2 Да Да, с кастомизацией Полная от 5-7 дней
Агрегатор служб доставки Да Да, несколько служб сразу Ограниченная 2-3 дня

Что подготовить до настройки: аккаунт, ключи API и требования к сайту

Прежде чем ставить плагин, нужно оформить два вида доступа: договор с СДЭК как с интернет-магазином (не физлицом - тарифы и API для юрлиц и ИП отличаются) и получить client_id и client_secret в личном кабинете интегратора на cdek.ru.

Обычно это занимает 1-3 рабочих дня: заявка на подключение, подтверждение реквизитов, доступ в тестовый контур для проверки интеграции перед переходом на боевой API. Работать сразу с боевыми ключами не стоит - в тестовом контуре можно спокойно проверить расчёт стоимости и вебхуки без риска создать реальную заявку на забор груза.

Из технических требований на стороне сайта: WooCommerce актуальной версии, PHP 8.0 и выше, включённый SSL-сертификат (СДЭК API работает только по HTTPS) и адрес склада отправки с точными координатами - от него считается расстояние до ПВЗ получателя.

Установка и настройка плагина СДЭК для WooCommerce

Ставлю плагин из официального каталога или загружаю премиум-версию, если нужна карта ПВЗ без ограничений на количество запросов.

  1. Активирую плагин и перехожу в раздел настроек доставки WooCommerce
  2. Ввожу client_id и client_secret из личного кабинета СДЭК
  3. Указываю адрес склада отправки и способ упаковки по умолчанию для расчёта объёмного веса
  4. Выбираю доступные тарифы - обычно оставляю «посылка склад-склад», «посылка со склада на дверь» и экспресс-тариф для срочных заказов
  5. Настраиваю округление и наценку, если нужно заложить комиссию в стоимость доставки для покупателя

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

curl -X POST "https://api.cdek.ru/v2/oauth/token" 
  -H "Content-Type: application/x-www-form-urlencoded" 
  -d "grant_type=client_credentials&client_id=ВАШ_CLIENT_ID&client_secret=ВАШ_CLIENT_SECRET"

Если запрос возвращает access_token и время жизни токена в секундах - авторизация настроена верно, и плагин сможет запрашивать тарифы и создавать заказы от имени магазина.

Что подготовить: договор с СДЭК и настройки перед запуском

Бесплатный материал

🎁 Полезный скрипт в подарок

Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.

Без спама. Отписка в 1 клик.

Виджет выбора ПВЗ на карте и калькулятор доставки в корзине

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

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

<script src="https://cdn.cdek.ru/widget/widget.js"></script>
<div id="cdek-map"></div>
<script>
  const widget = new CDEKWidget({
    apiKey: 'ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ',
    from: { city: 'Москва' },
    root: 'cdek-map',
    onChoose: function (point) {
      document.getElementById('cdek-pvz-id').value = point.code;
    }
  });
</script>

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

Из практики: карту стоит грузить лениво, после клика «выбрать пункт выдачи», иначе она утяжеляет загрузку страницы товара на 300-500 мс на мобильных - для конверсии это ощутимо.

Автоматизация статусов заказа, вебхуки и печать этикеток

Ручная сверка статусов доставки - то, из-за чего интеграция теряет смысл: если менеджер вручную открывает личный кабинет СДЭК и переносит статус в заказ WooCommerce, экономии времени нет.

СДЭК присылает вебхуки при смене статуса посылки: принята, в пути, прибыла в пункт выдачи, вручена. Обработчик вебхука меняет статус заказа в WooCommerce автоматически и параллельно может слать уведомление клиенту в Telegram или на почту.

На нескольких проектах выносил такую логику в отдельный сценарий на n8n: вебхук СДЭК приходит на вебхук-ноду, дальше по условию меняется статус заказа через WooCommerce REST API, и то же событие уходит в aiogram-бота, который уведомляет менеджера склада о новых заявках на забор груза. Собрать это внутри самого WordPress тоже можно, но при нагрузке от пары сотен заказов в день выносить обработку вебхуков в n8n надёжнее - плагин не блокирует основной поток сайта долгими запросами.

Готовый скрипт для базовой обработки вебхуков СДЭК с обновлением статуса заказа не обязательно писать с нуля - в библиотеке готовых скриптов есть заготовка под этот сценарий, которую адаптирую под конкретный магазин.

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

Частые ошибки при настройке интеграции

  • Перепутан тестовый и боевой контур API - заказы уходят в СДЭК, но не отображаются в рабочем личном кабинете, потому что созданы в тестовой среде
  • Кэширующий плагин WordPress отдаёт закэшированную стоимость доставки - страницу корзины и чекаута нужно исключать из кэша отдельно
  • Вес и габариты товаров не заполнены в WooCommerce - тариф считается по значениям по умолчанию, и стоимость доставки расходится с фактической при заборе груза
  • Склад отправки указан без точных координат - карта ПВЗ подбирает точки не от того города
  • Вебхуки не проходят из-за отсутствия SSL или неверного эндпоинта - статус заказа зависает на «оформлен» вне зависимости от реального движения посылки

На одном проекте интернет-магазина мебели связка выглядела так: оплата через T‑Bank/WooCommerce эквайринг, доставка - СДЭК с расчётом по объёмному весу, потому что часть товаров крупногабаритная. Без ручного пересчёта веса тариф в плагине всегда занижался, и разницу магазин доплачивал из своей маржи, пока не завели автоматический расчёт объёмного веса по параметрам карточки товара.

Корпоративный сайт, каталог, блог

Фронтенд + Бэкенд

от 60 000 ₽

Подробнее →

Частые вопросы

Сколько стоит интеграция СДЭК на WordPress?

Подключение официального плагина с базовой настройкой тарифов входит в стоимость сайта на WordPress под ключ - от 60 000 ₽. Если нужна кастомная интеграция через API - нестандартные тарифы, синхронизация с 1С, автоматизация статусов через вебхуки - это отдельная работа, комплексная интеграция такого уровня у меня стоит от 40 000 ₽. На рынке фрилансеры и студии за похожую доработку обычно берут от 15 000 до 50 000 ₽ в зависимости от сложности - это ориентир по рынку, не мой прайс.

Хватит ли бесплатного официального плагина или нужна кастомная разработка?

Для небольшого магазина с типовыми тарифами официального плагина достаточно - он закрывает расчёт стоимости, карту ПВЗ и создание заказов. Кастомная разработка нужна, если логика нестандартная: разные тарифы для разных складов, автоматическая проверка остатков перед созданием заявки на забор груза или интеграция с CRM, куда статусы доставки должны попадать в реальном времени.

Сколько занимает настройка интеграции СДЭК на действующем сайте?

Базовая настройка плагина с картой ПВЗ и калькулятором - 1-2 рабочих дня, включая тестирование в тестовом контуре API. Если добавляю автоматизацию статусов через вебхуки и печать этикеток, добавляется ещё 3-5 дней - нужно прогнать сценарии смены статуса и проверить обработку ошибок API.

Нужен ли договор с СДЭК, чтобы получить доступ к API?

Да, client_id и client_secret выдаются после оформления договора интернет-магазина с СДЭК - доступ по документам физлица для API не предусмотрен. Оформление обычно занимает 1-3 рабочих дня, после чего в личном кабинете интегратора открывается тестовый и боевой контур.

Есть задача?

Обсудим в мессенджере

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Самозанятый Калинкин Н. А. · работаю с физлицами и юрлицами

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов куки) с использованием Yandex.Metrika.
Понятно