Плагин интеграции с СДЭК — это плагин который позволяет отображать стоимость доставки курьерской службой СДЭК. Расчёт стоимости происходит в режиме реального времени с учётом габаритов и веса товара находящиеся в корзине у покупателя.

Плагин производит расчёт стоимости во всех валютах с которыми работает компания СДЭК.
Убедитесь, что на вашем сервере включена PHP библиотека SimpleXML.

Для работы плагина обязательно требуются боевые учётные данные от API СДЭК. Не путайте их с логином и паролем от личного кабинета СДЭК. Для получения этих учётных данных вам нужно, во-первых иметь активный договор со СДЭК, а во-вторых написать на почту integrator@cdek.ru с просьбой предоставить вам эти данные.

Установка


  1. Скачайте плагин в личном кабинете или по ссылке в письме которое пришло вам после оплаты
  2. Перейдите в раздел Плагины > Добавить новый > Загрузить в админке вашего сайта
  3. Установите и активируйте плагин

Сразу после активации на вашем экране отобразится помощник настройки плагина. Если этого не произошло, то просто нажмите на ссылку «настройки» (см.скрин)

Запуск настройки плагина

Помощник настройки плагина

Если же вы хотите настроить плагин позже, то просто кликните по ссылке «Не сейчас» внизу помощника. В дальнейшем плагин можно будет настроить на странице Woocommerce > Настройки > Интеграция > СДЭК (eDostavka).

Основные настройки


Первым делом вам необходимо произвести настройки на странице Woocommerce > Настройки > Интеграция > СДЭК (eDostavka) — это страница основных(базовых) настроек плагина.

 

Лицензионный ключ продукта — данный ключ вы получаете при покупке плагина автоматически. Ключ выдаётся сроком на один год и даёт возможность обновлять плагин в автоматическом режиме* и получать техническую поддержку касаемо функционала плагина.

API логин и API секретный ключ — учётные данные от API СДЭК которые вам должны выдать в техническом отделе СДЭК после заключения договора. Не путайте их с логином и паролем от личного кабинета СДЭК. Так же имейте ввиду что нужно использовать «боевые» учётные данные.

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

Город получатель по умолчанию — город который будет использоваться по умолчанию если покупатель ещё ни разу не выбирал город для доставки из списка на странице оформления заказа. Это нужно для первичного расчёта, в дальнейшем будет использоваться город который выбрал текущий пользователь. Если оставить пустым, то при первичном оформлении заказа покупателю не будет отображаться методы доставки СДЭК.

Префикс для заказов — префикс который будет прибавляется к номеру заказа при передачи в личный кабинет СДЭК. Нужно в случае если у вас несколько магазинов и хотите как то их различать в ЛК. Рекомендуется использовать какую то уникальную строчку что бы не случилось совпадений номеров в ЛК СДЭК.

Автоматическая отправка заявки — опция указывает при достижении заказа какого из статуса Woocommerce отправлять заказ сразу в ЛК СДЭК автоматически, т.е. без участия менеджера магазина. Обычно используется «В обработке», так как именно этот статус присваивается заявке сразу же после успешного оформления.

Актуальность городов — указывает как долго не обновлять информацию о населённых пунктах в вашей базе данных. Рекомендуется указывать значение «один месяц» — это самое оптимальное значение.

Тип поля ПВЗ — указывает на то как отображать пункты выдачи заказов при активном типе доставки «До склада». Имеет 3 варианта:

  1. Текстовое поле (по умолчанию) — когда отображается обычное текстовое поле в которое автоматически вписывается адрес ПВЗ при его выборе на карте.
  2. Скрытое поле — отображается только карта. Поле с адресом ПВЗ скрыто.
  3. Выпадающий список — отображается выпадающий список адресов ПВЗ, при этом карта с пунктами не отображается.

Удалить поле «квартира…» — с версии Woocommerce 3.3 не актуальная опция, так как её предназначение скрыть/удалить поле «Квартира, жилое помещение» которое, как правило, не используется. Теперь это поле можно отключить стандартными средствами Woocommerce.

Валидация адреса — запрещает продолжить оформление заказа если введённый пользователем адрес слишком прост или имеет структуру отличную от общепринятых форматов адресов. Так же помогает избежать такой ошибки как «Адрес слишком короткий» или «Не правильно указан адрес» при отправки заявки с ЛК СДЭК. Имейте ввиду, данная опция не панацея, а лишь уменьшает вероятность возникновения вышесказанных ошибок при отправки. На стороне сервера СДЭК есть ещё своя валидация которая работает по какому то своему алгоритму.

Разрешить города не из списка — позволяет покупателям вводить названия городов которых нету в списке СДЭК. Обычно данная опция полезна если вы используете ещё другие плагины доставки.

Шаблон строки населенных пунктов. — шаблон указывающий как отображать текст в выпадающем списке населённых пунктов. Для шаблона могут использоваться две маски %city_name% (название населённого пункта) и %state% (регион данного населённого пункта). По умолчанию %city_name% (%state%), в результате строка имеет такой вид «Жуковский (Московская обл.)».

Масса, высота, ширина и длина по умолчанию — устанавливают значения габаритов одного товара. Используется только в тех случаях если тот или иной параметр не заполнен в карточке товара. Необходимо заполнять значения веса в килограммах а габариты в сантиметрах. Настоятельно рекомендуются заполнять габариты и вес товара у каждого товара, что бы избежать недоразумений при контрольном взвешивании на складе СДЭК. Так же имейте ввиду, что нужно указывать габариты упаковки а не самого товара, так же и вес должен быть указан с учётом веса упаковки.

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

* Обновление в автоматическом режиме не означает, что плагин будет обновляться без вашего ведома. Вы будете получать уведомление в админке о том что у данного плагина появилась новая версия, как это происходит со всеми плагинами скаченными из официального репозитория WordPress.

Настройки методов/тарифов доставки СДЭК


Для начала настройки методов доставки убедитесь что в вашем интернет-магазине настроены зоны доставки. Если вы ещё этого не сделали то воспользуйтесь инструкцией по настройке зоны доставки.
Перейдите в Woocommerce > Настройки > Доставка > Зоны доставки > Нужная вам зона доставки. О том как добавлять новые методы доставки смотрите так же в документации по настройке зон доставки.
Выберите нужный вам метод/тариф СДЭК из выпадающего списка в диалоговом окне «Добавить метод доставки»

Добавление тарифа СДЭК в Woocommerce

В плагине доступны самые популярные тарифы СДЭК. Ниже представлен список этих тарифов (они же методы доставки).

Тарифы типа «Посылка» — услуга экономичной доставки товаров по России. Ограничение по весу до 30 кг.:

  • Посылка склад-склад
  • Посылка склад-дверь
  • Посылка дверь-склад
  • Посылка дверь-дверь

Тарифы типа «Экономичная посылка» — услуга экономичной наземной доставки товаров по России. Услуга действует по направлениям из Москвы в подразделения СДЭК, находящиеся за Уралом и в Крым. Ограничение по весу до 50 кг.:

  • Экономичная посылка склад-дверь
  • Экономичная посылка склад-склад

Тарифы типа «Экспресс лайт» — Классическая экспресс-доставка по России документов и грузов до 30 кг.:

  • Экспресс лайт дверь-дверь
  • Экспресс лайт склад-склад
  • Экспресс лайт склад-дверь
  • Экспресс лайт дверь-склад

Тарифы типа «Магистральный экспресс»:

  • Магистральный экспресс склад-склад — Быстрая экономичная доставка грузов по России
  • Экспресс лайт склад-склад — Быстрая экономичная доставка грузов к определенному часу

Тарифы типа «Экспресс тяжеловесы» — Классическая экспресс-доставка по России грузов от 30 кг.:

  • Экспресс тяжеловесы склад-склад
  • Экспресс тяжеловесы склад-дверь
  • Экспресс тяжеловесы дверь-склад
  • Экспресс тяжеловесы дверь-дверь

Тариф Супер-экспресс до 18 — Срочная доставка документов и грузов «из рук в руки» по России к определенному часу.

Более подробно о тарифах и услугах компании СДЭК вы можете ознакомится на официальном сайте.

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

После того как вы добавите нужный вам метод/тариф в зону доставки, при необходимости его можно настроить под свои нужды. Для этого просто перейдите по ссылке «изменить» или заголовку данного метода.

Настройка метода доставки СДЭК

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

Класс доставки — если вы используете классы доставки то вы можете указать с каким классом доставки будет, или не будет, отображаться данный метод доставки.

Срок доставки — при включённой опции рядом с заголовком тарифа будет отображаться срок доставки. Значение этого срока, как и саму стоимость, определяет сам СДЭК.

Добавочное время — устанавливает добавочные дни к сроку доставки который определил СДЭК. Не работает при включённой опции «Срок доставки».

Наценка на доставку — устанавливает сумму которая будет прибавляться к стоимости доставки. Тип каким образом будет суммироваться стоимость определяется следующей опцией «Тип наценки». Наценку можно указывать как фиксированной суммой, например 200, так и в процентном соотношении, например 10%.

«Тип наценки» — устанавливает как суммировать надбавочную стоимость к стоимости доставки. Доступны 2 варианта:

  • Прибавлять к стоимости заказа (по умолчанию)
  • Прибавлять к стоимости доставки

Минимальная сумма — устанавливает минимальный порог суммы заказа при котором данный метод будет доступен. К примеру, если указать значение 1000, то метод будет доступен только если покупатель наберёт товаров на сумму равную или больше 1000.

Максимальная сумма — устанавливает максимальный порог суммы заказа при котором данный метод будет доступен. К примеру, если указать значение 5000, то метод будет доступен только если покупатель наберёт товаров на сумму менее чем 5000.

Фиксированная стоимость — устанавливает фиксированную стоимость за тариф. Не важно какую стоимость вернёт сервер СДЭК, если в этой опции указано значение больше нуля будет отображаться именно эта стоимость.

Бесплатная доставка — устанавливает порог суммы заказа после которой данный метод будет бесплатный. Не зависимо от того какая будет реальная стоимость доставки, при достижении данной суммы метод будет иметь нулевую стоимость.

Доставка в города — устанавливает как работать со списком городов следующей опцией «Города». Имеет два значения, отображать данный метод только для тех городов которые указанных в списке или же наоборот не отображать данный метод для указанных городов.

Города — список городов с которым будет работать предыдущая опция «Доставка в города». Оставьте список пустым если не хотите использовать эту опцию.

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

Карта пунктов выдачи СДЭК


С версии 2.1.0 в плагине стало возможным отображать карту с пунктами выдачи заказа. Данная карта выводится с помощью встроенного шорткода [edostavka_map] и может отображаться на любой странице вашего сайта. Шорткод может принимать два необязательных параметра city_from и city_to значения которых должно содержать ID города по базе СДЭК. По умолчанию карта будет отображать город указанный в настройках как «город получатель», если же опция не указана то будет использовано значение из опции «город отправитель». Если вы хотите поменять это значение прямо в шорткоде то можете указать ID города в одном из параметров (например [edostavka_map city_to="44"] отобразит карту с городом Москва). Список городов и их ID вы можете посмотреть скачав реестр городов по базе СДЭК.

Обратите внимание, что данный шорткод не отображает стоимость доставки. Его основное предназначение это помочь вашим покупателям понять как далеко от них находится пункт выдачи и есть ли он вообще.

Хуки — варианты использования


В плагине «Интегратор СДЭК» предусмотрено большое количество хуков для возможности кастомизации плагина под ваши нужды, не затрагивая при этом исходный код плагина. Ниже описаны наиболее востребованные.

woocommerce_edostavka_{rate_id}_rate — позволяет изменить данные передаваемые в объект WC_Shipping_Rate. В место «rate_id» нужно использовать строковый ID нужного вам тарифа СДЭК. К примеру что бы применить нужный вам фильтр к тарифу «Посылка склад-склад», непроходимо использовать хук woocommerce_edostavka_edostavka-package-stock_rate. Данный хук может принимать 3 аргумента на вход:

  1. Массив с данными который будет возвращён в результате. Данный массив должен содержать данные соответствующие методу add_rate класс WC_Shipping_Method.
  2. ID экземпляра этого метода.
  3. Массив с данными сформированный из данных корзины. К примеру $package[‘destination’] будет содержать информацию данных о доставке.

woocommerce_edostavka_shipping_methods — аналог предыдущему хуку, за тем лишь исключением, что данный хук примерятся сразу ко всем тарифам СДЭК. Данный хук принимает 2 аргумента на вход. Первый из них это тот же массив что и в первом, только ещё обёрнутый одним массивом. Второй аргумент — это третий аргумент из предыдущего хука (т.е $package).

Ниже представлен фрагент кода который демонстрирует как можно изменят стоимость доставки в зависимости от валюты интернет-магазина:

woocommerce_edostavka_customer_state_id — позволяет изменить ID города покупателя. Возвращает ID города покупателя по базе СДЭК. Принимает 3 аргумента:

  1. $state_id — ID города покупателя. По умолчанию равен значению установленной опции «Город получатель по умолчанию» из основных настроек плагина.
  2. $session_state_id — ID города покупателя полученный из сессии. Если значение null значит покупатель ещё ни разу не выбирал город доставки.
  3. $customer_id — ID покупателя. Определяется Woocommerce.

Ниже представлен пример кода позволяющий отключить значение опции «Город получатель по умолчанию».:

Внимание: Все действия производимые с плагином вы делаете на свой страх и риск. Все примеры кода представленные на этой странице, только для ознакомления. Не стоит копировать всё на свой рабочий сервер. Более того, вы должны понимать что это такое, для чего это нужно и как с этим работать.