
ms_CDEK2
Внимание
Данная документация актуальна для версии компонента 2.4.1 и выше.
Внимание
Компонент msDeliveryProps
больше не нужен.
Требования
- Modx 2.8.x
- PHP >=7.4
- MySQL 5.7
Возможности
- Расчёт стоимости доставки в соответствии с указанными тарифами.
- Выбор ПВЗ из списка или на карте (нужно получить токен для JavaScript API и HTTP Геокодер).
- Подсказки при вводе адреса от сервиса DaData.
Порядок работы
Для расчёта стоимости доставки компоненту требуется почтовый индекс, который следует указать в поле [name="index"]
. Пользователь может ввести его сам или вы можете настроить подсказки при вводе адреса, и тогда при выборе одной из подсказок индекс заполнится автоматически.
После получения индекса работает стандартная логика компонента miniShop2, которая приводит к вычислению стоимости доставки. Затем в колбэке на событие Order.getcost.response.success
, если выбран способ доставки до ПВЗ, получаем список ПВЗ, и, в любом случае, получаем статус доставки (всю информацию которую вернул API СДЭК), чтобы показать его пользователю, если на странице есть соответствующий блок (подробности ниже).
Если получали список ПВЗ и на странице есть блок для отрисовки карты, то рисуем карту. При выборе ПВЗ в списке, карта будет перемещена по координатам ПВЗ, а маркет обведёт в кружок. При выборе ПВЗ на карте, значение в списке так же поменяется.
Информация
Компонент умеет учитывать страну, для этого нужно добавить поле [name="country"]
. Страна учитывается при предоставлении подсказок, при получении списка ПВЗ и при расчёте стоимости.
Быстрый старт
Информация
Ни один из html-блоков, которые будут упомянуты ниже, не является обязательным для расчёта стоимости доставки, кроме поля ввода почтового индекса.
После установки компонента ОБЯЗАТЕЛЬНО выполнить первые 6 пунктов из списка ниже:
- Перейдите в системные настройки и выберите пространство имён ms_cdek2;
- Установите свои значения в поля с ключами ms_cdek2_login и ms_cdek2_password;
- Установите индекс отправителя в поле ms_cdek2_sender_index;
- Убедитесь, что в поле ms_cdek2_deliveries установлены правильные ID способов доставки (door — доставка до двери, pvz — доставка в ПВЗ);
Подробнее
Например ID достаки до двери у вас 9, а до ПВЗ 10, тогда значение этой настройки будет выглядеть так
{"door":"9","pvz":"10"}
. - Убедитесь, что в поле ms_cdek2_tariffs установлены правильные ID способов доставки и ID тарифов СДЭК (доставка до двери для ИМ тариф 137, доставка в ПВЗ - 136);
Подробнее
Например ID достаки до двери у вас 9, а до ПВЗ 10, тогда значение этой настройки будет выглядеть так
{"9":"137","10":"136"}
. - Установите номер шаблона с формой оформления заказа в поле ms_cdek2_template (чтобы скрипты фронтэнда подключались только на страницах с этим шаблоном);
- Если используете доставку до ПВЗ, то в чанке с формой оформления заказа добавьте код
<div data-mscdek-list></div>
Информация
Если отправка будет не из РФ, укажите корректный код страны отправителя в системной настройке ms_cdek2_sender_country
.
Внимание
Список ПВЗ должен выводится в элементе select как в чанке mscdekListWrap
или не выводиться вовсе.
Информация
Если решили не выводить список ПВЗ, вставляйте вместо
<div class="hide" data-mscdek-list></div>
скрытое поле
<input type="hidden" name="point">
Вывод карты со списком ПВЗ
- Получите ключ для JavaScript API и HTTP Геокодер;
- Установите полученный ключ в системную настройку
ms_cdek2_yandex_api_key
; - В шаблон с формой оформления заказа вставьте код
<div class="hide" data-mscdek-map></div>
Подсказки при вводе адрес
- Получите токен в сервисе DaData;
- Установите полученный токен в системную настройку с ключом
ms_cdek2_dadata_token
; - Полю, в которое пользователь будет вводить адрес добавить атрибут
data-mscdek-suggest-field
; - В шаблон с формой оформления заказа вставьте код
<ul class="hide" data-mscdek-suggest-list></ul>
Вывод информации о сроках доставки
- В шаблон с формой оформления заказа вставьте код
<div class="hide" data-mscdek-status></div>