Клиент вводит адрес - и через пару секунд видит стоимость доставки и список пунктов выдачи рядом с домом, не уходя со страницы заказа. Такой сценарий получаешь, когда собираешь 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
Ставлю плагин из официального каталога или загружаю премиум-версию, если нужна карта ПВЗ без ограничений на количество запросов.
- Активирую плагин и перехожу в раздел настроек доставки WooCommerce
- Ввожу client_id и client_secret из личного кабинета СДЭК
- Указываю адрес склада отправки и способ упаковки по умолчанию для расчёта объёмного веса
- Выбираю доступные тарифы - обычно оставляю «посылка склад-склад», «посылка со склада на дверь» и экспресс-тариф для срочных заказов
- Настраиваю округление и наценку, если нужно заложить комиссию в стоимость доставки для покупателя
Проверить, что ключи подключены верно, можно запросом на получение токена авторизации:
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 рабочих дня, после чего в личном кабинете интегратора открывается тестовый и боевой контур.