ms_CDEK2

Добавляет методы доставки СДЭК, расчет цены и времени доставки по индексу и городу
Автор дополнения
Pavel Zarubin
Пакетов
4
Закачек
168
Автор дополнения
Пакетов
4
Закачек
168
Версия 1.0.4-beta
Дата выпуска 12.02.2018
Загрузки 12
Просмотры 482
Внимание, этот компонент требует версию PHP 5.6 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.3 !
Что может:
  • Расчет цены и времени доставки СДЭК
  • Вывод статуса на фронт сайта
  • Расчет по индексу и/или названию города
  • Автокомплит городов
  • После выбора города поле области автоматически заполняется

Главные отличия от первой версии msCDEK:
  • Была немного переписана стандартная библиотека сдэк'а, компонент научился работать с индексами покупатель может указать только индекс или только город или все вместе и компонент рассчитает стоимость
  • Поддержка дополнительной цены (наценки)
  • Не конфликтует с другими методами доставки т.е. выводит статус времени и цены доставки только когда выбран сдэк, убирает его если выбран метод доставки не сдэк
  • Устранены проблемы с записью города в заказ
  • Выводимая информация о удачном расчете/времени доставки/ошибки расчета теперь выводится через чанки используя феном и pdoTools, вы можете спокойно модифицировать его, добавлять условия и т.д.
  • Для автокомплита теперь не используется громоздкий jquery UI, теперь используется маленькая библиотека на ванильном JS от pixabay
  • Компонент не требует модификации полей оформления заказа все подгружается и подключается самостоятельно
  • Добавлена возможность отключить автокомплит вообще
  • Добавлено корректное удаление дополнения, он чистит за собой все методы, что добавил
  • Авторизация работает корректно
  • Для города — отправителя теперь не нужно искать ID города в каких — то списках, достаточно указать индекс отправителя в настройках
  • Главный JS скрипт можно переопределить опять же в настройках
  • Компонент больше не совместим с msRussianPost
На самом деле изменений было еще очень много, от старого сдэка не было взято ни строчки кода а дополнение по ходу разработки тестировалось и дорабатывалось на реальном проекте.

Установка компонента:

  1. Если у вас была установлена первая версия, то перед установкой выполните зачистку старых методов доставки СДЭК (приложения->minishop2->настройки (вкладка варианты доставки) выберите все методы доставки от msCDEK (поддерживается мультивыбор через shift) затем нажмите правой кнопкой мыши и выберите «Удалить выбранные»
  2. Установите компонент из modstore
  3. На странице корзины в любом месте вызовите сниппет msCDEK.init
    {'!msCDEK.init' | snippet}
    или
    [[!msCDEK.init]]
    он подключит нужные js файлы а также создаст несколько глобальных js переменных.
    Внимание, у вас должен быть также подключен Jquery, компонент самостоятельно его не подключает! Если вы противник jquery по религиозным соображениям, вы можете переопределить стандартный скрипт, он очень прост и jquery там используется по минимуму
  4. В любом месте на странице корзины добавьте блок
    <div id="ms_cdek2_status"></div>
    сюда будет записываться информация о времени и цене доставки, а также об ошибках, если таковые будут
  5. Перейдите в системные настройки->ms_cdek2 и укажите ваш логин и пароль от СДЭК (если имеется), а также Индекс города-отправителя

Опциональность:
  • В чанке cdek2.status.success можно задать свой шаблон вывода статуса удачного расчета, туда передается три переменных:
    • price — цена доставки
    • min — минимальное кол-во дней доставки с момента отправления
    • max — максимальное кол-во дней доставки с момента отправления
  • В чанке cdek2.status.error можно задать свой шаблон вывода статуса неудачного расчета, туда передается одна переменная:
    • code — код ошибки. Он нужен для того, чтобы покупатель мог сообщить менеджеру какая именно ошибка произошла, также во время ошибки в лог modx'a записывается код ошибки и его расшифровка, так что вам не обязательно помнить все коды наизусть

Расшифровка кодов ошибок:
0 - Внутренняя ошибка на сервере. Обратитесь к программистам компании СДЭК для исправления.
1 - Указанная вами версия API не поддерживается 
2 - Ошибка авторизации 
3 - Невозможно осуществить доставку по этому направлению при заданных условиях 
4 - Ошибка при указании параметров места 
5 - Не задано ни одного места для отправления 
6 - Не задан тариф или список тарифов 
7 - Не задан город-отправитель 
8 - Не задан город-получатель
9 - При авторизации не задана дата планируемой отправки
10 - Ошибка задания режима доставки
11 - Неправильно задан формат данных
12 - Ошибка декодирования данных. Ожидается <json или jsop>
13 - Почтовый индекс города-отправителя отсутствует в базе СДЭК
14 - Невозможно однозначно идентифицировать город-отправитель по почтовому индексу
15 - Почтовый индекс города-получателя отсутствует в базе СДЭК
16 - Невозможно однозначно идентифицировать город-получатель по почтовому индексу

На что стоит обратить внимание:
  • Выбор города приоритетней, чем индекс, т.е. если вдруг покупатель выбрал город, а потом решил поменять индекс, не изменив город, то доставка будет рассчитываться исходя из выбранного города
  • При изменении полей индекса или города метод доставки сбрасывается
  • Компонент не реализует функционал интеграции, только функционал калькулятора, если появится спонсор на интеграцию, тогда возможно это будет сделано
  • Только minishop 2.4+

Обсуждение в сообществе modx

ms_cdek2 1.0.4

  • Исправлено добавление некоторых настроек
  • Появилась новая настройка позволяющая отключить учитывание города при расчете

ms_cdek2 1.0.3

  • Интегрирована защита от пиратских версий
  • Изменения front-end части кода

ms_cdek2 1.0.2

  • Исправление расчета дополнительной цены

ms_cdek2 1.0.1

  • Небольшие исправления

ms_cdek2 1.0.0

  • Первый релиз

Последние обсуждения в сообществе MODX.pro