WP Manifestindependent plugin directory
manifest / ecommerce / cdek-shipping-woocommerce

СДЭК Доставка — ПВЗ

WooCommerce + CDEK API v2.0: courier pickup from warehouse to PVZ delivery. Tariff calculation, PVZ map, order creation, label printing, status tracking.

by Al Nemirov · github.com/al-nemirov/cdek-shipping-woocommerce · website

★ 0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/al-nemirov/cdek-shipping-woocommerce/archive/refs/heads/master.zip

СДЭК Доставка — ПВЗ для WooCommerce

WordPress-плагин для интеграции WooCommerce с СДЭК через официальный API v2.0.
Схема: курьер СДЭК забирает посылки с вашего склада → доставляет в ПВЗ клиента.


Возможности

🛒 Расчёт стоимости

  • Динамический расчёт через CDEK API v2.0
  • Настраиваемый тариф (рекомендуем 481 — Экспресс дверь-склад)
  • Наценка фиксированная (₽) + процентная (%)
  • Бесплатная доставка от заданной суммы
  • Срок доставки в названии метода (N–M дн.)

🗺 Выбор ПВЗ на карте

  • Яндекс.Карты с кластеризацией маркеров
  • Список ПВЗ с адресами, графиком, иконками (💵💳👔)
  • Поиск по адресу / названию
  • Сброс ПВЗ при смене города
  • Валидация: обязательный выбор ПВЗ перед оформлением

📦 Создание накладных

  • Кнопка «Отправить в СДЭК» в карточке заказа
  • Авто-расчёт веса и габаритов из товаров заказа
  • Трек-номер + ссылка для отслеживания
  • Печать этикетки PDF
  • Кнопка «Пересоздать заявку»

🚚 Вызов курьера (один забор в день)

WooCommerce → СДЭК Курьер:

  • Чеклист СДЭК-заказов, ожидающих отправки (сегодняшние — авто-отмечены)
  • Старые заказы, ещё не переданные
  • Выбор даты и интервала (вкл. ночной 22:00–06:00)
  • Авто-подсчёт суммарного веса
  • Создание / отмена заявки через API (POST /intakes)

📋 Страница «Заказы — Отправка»

WooCommerce → 📦 Заказы отправки — чистый список без лишнего:

  • Фильтры: Все / Сегодня / СДЭК / Яндекс / Ждут СДЭК / Отправлено СДЭК
  • Сводка: сегодня / ждут СДЭК / в СДЭК / ждут МС
  • Статус СДЭК и МойСклад в одной строке
  • Быстрые кнопки: «СДЭК →», «↻ СДЭК», «МС →», «✏️»
  • Поиск по номеру или имени

📊 Трекинг

  • Крон-синхронизация статусов каждые 2 часа
  • Ручная кнопка «Обновить статус»
  • Авто-завершение заказа при DELIVERED
  • Колонка «СДЭК» в стандартном списке заказов

Установка

  1. Скопируйте папку в wp-content/plugins/
  2. Активируйте плагин
  3. WooCommerce → СДЭК — введите API-ключи и данные склада
  4. WooCommerce → Доставка → Зона → Добавить метод → «СДЭК — ПВЗ»

Настройка

API-ключи

Получить в ЛК СДЭК → Настройки → Интеграция → API.

Account (Client ID):     ваш_client_id
Secure (Client Secret):  ваш_client_secret
Тестовый режим:          выкл (боевой api.cdek.ru)

Данные склада-отправителя

Поле Пример
Компания ООО Ваша Компания
Контактное лицо Иванова Анна
Телефон склада +79001234567
Код города СДЭК 44 (Москва), 137 (СПб)
Адрес склада г. Москва, ул. Примерная, д. 1
Описание груза Книги

Тариф

Сценарий отправки Тариф Код
Привозите в ПВЗ СДЭК сами Экспресс склад-склад 483
Курьер СДЭК забирает у вас Экспресс дверь-склад 481

⚠️ Важно: тарифы «Посылка» (136), «Эконом» (234/368) могут быть заблокированы вашим договором СДЭК. Если API возвращает ve_tariff_is_not_available_for_payment_type — потребуйте у менеджера включить эти тарифы: они значительно дешевле.


Схема работы

Клиент выбирает СДЭК → ПВЗ на карте → оплачивает онлайн
       ↓
Менеджер: WooCommerce → Заказы отправки
  → «СДЭК →»: регистрирует накладную, скачивает этикетку
       ↓
Менеджер: WooCommerce → СДЭК Курьер
  → отмечает заказы, дату/время → «Сформировать заявку»
  → курьер СДЭК приезжает на склад, забирает все посылки
       ↓
СДЭК: курьер → сортировочный центр → ПВЗ клиента
  → клиент получает СМС автоматически

Технические детали API

Тип заказа

Плагин использует "type": 2 (доставка), а не type: 1 (интернет-магазин).
Это критично — type: 1 требует отдельного типа договора и даст ошибку err_currency_empty.

Пример payload накладной

{
  "type": 2,
  "tariff_code": 481,
  "from_location": { "code": 44, "address": "г. Москва, ул. ...", "postal_code": "107023" },
  "delivery_point": "SPB335",
  "sender": { "company": "Ваша Компания", "name": "Иванова Анна", "phones": [{ "number": "+79001234567" }] },
  "recipient": { "name": "Иван Иванов", "phones": [{ "number": "+79001234568" }], "email": "client@mail.ru" },
  "packages": [{ "number": "PKG-12345", "comment": "Книги", "weight": 500, "length": 25, "width": 20, "height": 5 }]
}

Доступные тарифы (тип договора «Экспресс»)

Код Тариф Назначение
483 Экспресс склад-склад ПВЗ → ПВЗ, самопривоз
481 Экспресс дверь-склад ПВЗ, курьер забирает у вас
485 Экспресс дверь-постамат Постамат, курьер забирает
62 Магистральный склад-склад Межрегион, самопривоз
123 Магистральный дверь-склад Межрегион + курьер

Требования

  • WordPress 6.0+
  • WooCommerce 8.0+
  • PHP 8.0+
  • Договор СДЭК + API-ключи

Changelog

1.3.0

  • NEW: Страница «📦 Заказы отправки» — чистый список с фильтрами, сводкой, быстрыми действиями
  • NEW: Страница «СДЭК Курьер» — вызов курьера с чеклистом заказов, выбором даты и интервала
  • FIX: type: 1 → type: 2 в payload (совместимость с договорами «доставка»)
  • NEW: Поля склада-отправителя в настройках (компания, телефон, адрес)
  • NEW: API: create_intake, get_intake, delete_intake
  • FIX: from_location.address для тарифов «дверь» (курьер забирает по адресу)
  • FIX: packages[].comment — обязательное поле для type: 2

1.2.1

  • FIX: кнопка «Выбрать ПВЗ» не открывала карту при клике мышью
  • FIX: совместимость с checkout v4.0 (hidden billing_city, Dadata)
  • FIX: CDEK_Shipping_Method загружался до инициализации WooCommerce

1.2.0

  • FIX: дублирование хука woocommerce_process_shop_order_meta
  • FIX: нерабочий get_barcode_pdf() — переписан
  • FIX: XSS в тесте API
  • FIX: раздельный кеш OAuth-токена test/prod

1.1.0

  • Создание заказов СДЭК через API (кнопка в карточке заказа)
  • Трекинг, статус, этикетки, история в метабоксе
  • Крон-синхронизация статусов

1.0.0

  • Расчёт стоимости через CDEK API v2.0
  • Выбор ПВЗ на Яндекс.Карте
  • Sandbox / Production режим

Лицензия

MIT — свободное использование и модификация.