msCDEK 1.0.0: расчет доставки ТК СДЕК
Описание
msCDEK позволяет рассчитывать стоимость доставки, с учетом веса заказа, для 8 тарифов ТК СДЕК.
Особенности
Поддерживаемые типы отправлений:
Данный компонент возможно использовать вместе с компонентом msRussianPost – они унифицированы.
Установка
Шаг 1: только стоимость доставки
После установки создается 8 новых способов доставки, по умолчанию они все выключены. Включите требуемые, не забыв отметить доступные способы оплаты.
В чанке tpl.msOrder.outer замените поле ввода города на вызов чанка [[$tpl.msCDEK.city]]. В данном чанке находится вызов сниппета для вывода списка городов и скрипт для динамического пересчета стоимости после выбора другого города
Шаг 2: срок доставки
В чанке tpl.msOrder.outer добавьте в удобное место вызов чанка [[$tpl.msCDEK.time]], в нем находится контейнер для вывода срока доставки.
Расчет в карточке товара
Для расчета в карточке товара используется сниппет msCDEK. Его параметры:
&tpl — Чанк оформления. По умолчанию: 'tpl.msCDEK.delivery'
&tariffId — ID тарифа. По умолчанию: '1' (Экспресс-Лайт Дверь-Дверь)
&weight — Вес отправления. По умолчанию: '1'
&to — ID пункта назначения. По умолчанию:'44' (Москва)
&toPlaceholder — Если указано, все результаты сохраняются в плейсхолдер с указанным именем. По умолчанию: 'false'
Системные настройки
mscdek_from_cityid — ID места отправления. По умолчанию: '137' (г. Санкт-Петербург)
ms2_delivery_weight_in_kg — Если включено, то вес отправления считается в килограммах. В противном случае – в граммах. По умолчанию: Включено
mscdek_cities_list — Путь к файлу с массивом городов и ID в сериализованном виде. По умолчанию:'libs/city_c_rus.ser'
mscdek_default_size — Размер одной стороны отправления, указывается в см. Используется «для галочки», менять не нужно. По умолчанию: 1
mscdek_login — Имя пользователя для интеграции. По умолчанию: ''
mscdek_password — Пароль для интеграции. По умолчанию: ''
О логине и пароле:
Логин (Account), выдается компанией СДЭК по вашему запросу. Обязательны для учета индивидуальных тарифов и учета условий доставок по тарифам «посылка». Запрос необходимо отправить на адрес integrator@cdek.ru с указанием номера договора со СДЭК. ВАЖНО: Учетная запись для интеграции не совпадает с учетной записью доступа в Личный Кабинет СДЭК.
Совместимость с msRussianPost
Для вывода срока доставки используется отправка и обработка запроса происходит одинаково в обоих компонентах, используются переменные с одинаковыми названиями.
Это позволяет, например, корректно выводить результаты расчета для доставок через Почту России, используя чанки от msCDEK.
Нюанс: сниппет пунктов назначения для Почты России возвращает города и области, однако СДЕК не принимает названия областей для расчета. По этой причине при совместном использовании компонентов рекомендуется использовать чанк выбора города от компонента msCDEK.
Тарифы и города
В комплекте с компонентом есть файлы с соответствиями названий и ID для городов и тарифов.
Список городов и их ID находится в файле /core/components/mscdek/docs/cities_rus.txt
Список тарифов и их ID находится в файле /core/components/mscdek/docs/tariffs_ids.txt
Добавление других типов доставки
Поддерживается работа со всеми тарифами СДЕК. Для этого необходимо создать новый метод доставки, указать в нем класс-обработчик msCDEKHandler, после чего через базу или иным способом занести в поле properties данного метода JSON массив:
name — название. Не обязательно
______
Компонент можно будет приобрести в скором времени в магазине MODSTORE.PRO.Описание
msRussianPost позволяет рассчитывать стоимость доставки, с учетом веса заказа и стоимости всех товаров, для всех основных типов перевозок Почтой России.
Особенности
Поддерживаемые типы отправлений:
Данный компонент возможно использовать вместе с компонентом msCDEK – они унифицированы.
Установка
Шаг 1: только стоимость доставки
После установки создается 9 новых способов доставки, по умолчанию они все выключены. Включите требуемые, не забыв отметить доступные способы оплаты.
В чанке tpl.msOrder.outer замените поле ввода города на вызов чанка [[$tpl.msRussianPost.city]]. В данном чанке находится вызов сниппета для вывода списка городов и скрипт для динамического пересчета стоимости после выбора другого города
Шаг 2: срок доставки
В чанке tpl.msOrder.outer добавьте в удобное место вызов чанка [[$tpl.msRussianPost.time]], в нем находится контейнер для вывода срока доставки.
Расчет в карточке товара
Для расчета в карточке товара используется сниппет msRussianPost. Его параметры:
&tpl — Чанк оформления. По умолчанию: 'tpl.msRussianPost.delivery'
&sending — Тип отправления, указывается название. По умолчанию: 'Ценная посылка'
&weight — Вес отправления. По умолчанию: '1'
&cost — Стоимость отправления в рублях. По умолчанию: '0'
&to — Пункт назначения. По умолчанию:'Москва'
&toPlaceholder — Если указано, все результаты сохраняются в плейсхолдер с указанным именем. По умолчанию: 'false'
Системные настройки
msrussianpost_from_index — Индекс места отправления. По умолчанию: '190000' (Главпочтамт г. Санкт-Петербург)
ms2_delivery_weight_in_kg — Если включено, то вес отправления считается в килограммах. В противном случае – в граммах. По умолчанию: Включено
msrussianpost_cache_ttl — Время жизни результатов расчета в кэше, в секундах. По умолчанию:'604800'
msrussianpost_response_to_modx_log — Возможность отправить ответ сервиса расчетов в лог ошибок MODX на уровне ERROR. Может быть полезно при разработке, но на реальных проектах настоятельно рекомендуется отключать. По умолчанию: Отключено
Совместимость с msCDEK
Для вывода срока доставки используется отправка и обработка запроса происходит одинаково в обоих компонентах, используются переменные с одинаковыми названиями.
Это позволяет, например, корректно выводить результаты расчета для доставок через Почту России, используя чанки от msCDEK.
Нюанс: сниппет пунктов назначения для Почты России возвращает города и области, однако СДЕК не принимает названия областей для расчета. По этой причине при совместном использовании компонентов рекомендуется использовать чанк выбора города от компонента msCDEK.
Компонент можно будет приобрести в скором времени в магазине MODSTORE.PRO.
Спасибо сервису postcalc.ru за возможность создания данного компонента.
С текущего момента поддержкой компонента занимается Павел Карелин.
msCDEK позволяет рассчитывать стоимость доставки, с учетом веса заказа, для 8 тарифов ТК СДЕК.
На самом деле, поддерживаются все тарифы СДЕК, но для этого необходимо вручную прописывать JSON в свойство properties метода доставки. Подробнее в конце заметки.
Особенности
- Учет веса товаров в заказе
- Вывод сроков доставки
- Сниппет для расчета доставки в карточке товара
- Поддержка авторизации
- Совместимость с msRussianPost при расчете сроков доставки
Поддерживаемые типы отправлений:
- Экспресс-Лайт Склад-Склад
- Экспресс-Лайт Склад-Дверь
- Экспресс-Лайт Дверь-Склад
- Экспресс-Лайт Дверь-Дверь
- Посылка Склад-Склад (Требуется авторизация!)
- Посылка Склад-Дверь (Требуется авторизация!)
- Посылка Дверь-Склад (Требуется авторизация!)
- Посылка Дверь-Дверь (Требуется авторизация!)
Данный компонент возможно использовать вместе с компонентом msRussianPost – они унифицированы.
Установка
Шаг 1: только стоимость доставки
После установки создается 8 новых способов доставки, по умолчанию они все выключены. Включите требуемые, не забыв отметить доступные способы оплаты.
В чанке tpl.msOrder.outer замените поле ввода города на вызов чанка [[$tpl.msCDEK.city]]. В данном чанке находится вызов сниппета для вывода списка городов и скрипт для динамического пересчета стоимости после выбора другого города
Шаг 2: срок доставки
В чанке tpl.msOrder.outer добавьте в удобное место вызов чанка [[$tpl.msCDEK.time]], в нем находится контейнер для вывода срока доставки.
Расчет в карточке товара
Для расчета в карточке товара используется сниппет msCDEK. Его параметры:
&tpl — Чанк оформления. По умолчанию: 'tpl.msCDEK.delivery'
&tariffId — ID тарифа. По умолчанию: '1' (Экспресс-Лайт Дверь-Дверь)
&weight — Вес отправления. По умолчанию: '1'
&to — ID пункта назначения. По умолчанию:'44' (Москва)
&toPlaceholder — Если указано, все результаты сохраняются в плейсхолдер с указанным именем. По умолчанию: 'false'
Системные настройки
mscdek_from_cityid — ID места отправления. По умолчанию: '137' (г. Санкт-Петербург)
ms2_delivery_weight_in_kg — Если включено, то вес отправления считается в килограммах. В противном случае – в граммах. По умолчанию: Включено
mscdek_cities_list — Путь к файлу с массивом городов и ID в сериализованном виде. По умолчанию:'libs/city_c_rus.ser'
mscdek_default_size — Размер одной стороны отправления, указывается в см. Используется «для галочки», менять не нужно. По умолчанию: 1
mscdek_login — Имя пользователя для интеграции. По умолчанию: ''
mscdek_password — Пароль для интеграции. По умолчанию: ''
О логине и пароле:
Логин (Account), выдается компанией СДЭК по вашему запросу. Обязательны для учета индивидуальных тарифов и учета условий доставок по тарифам «посылка». Запрос необходимо отправить на адрес integrator@cdek.ru с указанием номера договора со СДЭК. ВАЖНО: Учетная запись для интеграции не совпадает с учетной записью доступа в Личный Кабинет СДЭК.
Совместимость с msRussianPost
Для вывода срока доставки используется отправка и обработка запроса происходит одинаково в обоих компонентах, используются переменные с одинаковыми названиями.
Это позволяет, например, корректно выводить результаты расчета для доставок через Почту России, используя чанки от msCDEK.
Нюанс: сниппет пунктов назначения для Почты России возвращает города и области, однако СДЕК не принимает названия областей для расчета. По этой причине при совместном использовании компонентов рекомендуется использовать чанк выбора города от компонента msCDEK.
Тарифы и города
В комплекте с компонентом есть файлы с соответствиями названий и ID для городов и тарифов.
Список городов и их ID находится в файле /core/components/mscdek/docs/cities_rus.txt
Список тарифов и их ID находится в файле /core/components/mscdek/docs/tariffs_ids.txt
Добавление других типов доставки
Поддерживается работа со всеми тарифами СДЕК. Для этого необходимо создать новый метод доставки, указать в нем класс-обработчик msCDEKHandler, после чего через базу или иным способом занести в поле properties данного метода JSON массив:
{"tariffId":139,"name":"\u041f\u043e\u0441\u044b\u043b\u043a\u0430 \u0434\u0432\u0435\u0440\u044c-\u0434\u0432\u0435\u0440\u044c"}tariffId — ID нужного тарифаname — название. Не обязательно
______
Компонент можно будет приобрести в скором времени в магазине MODSTORE.PRO.Описание
msRussianPost позволяет рассчитывать стоимость доставки, с учетом веса заказа и стоимости всех товаров, для всех основных типов перевозок Почтой России.
В тексте упоминается компонент msCDEK — его описание появится в скором времени.
Особенности
- Учет стоимости и веса товаров в заказе
- Вывод стоимости доставки с учетом страхования
- Вывод сроков доставки
- Сниппет для расчета доставки в карточке товара
- Кэширование результатов расчета
- Совместимость с msCDEK при расчете сроков доставки
Поддерживаемые типы отправлений:
- Простая бандероль
- Заказная бандероль
- Заказная бандероль 1 класс
- Ценная бандероль
- Ценная посылка
- Ценная авиабандероль
- Ценная авиапосылка
- Ценная бандероль 1 класс
- Курьерская доставка EMS
Данный компонент возможно использовать вместе с компонентом msCDEK – они унифицированы.
Установка
Шаг 1: только стоимость доставки
После установки создается 9 новых способов доставки, по умолчанию они все выключены. Включите требуемые, не забыв отметить доступные способы оплаты.
В чанке tpl.msOrder.outer замените поле ввода города на вызов чанка [[$tpl.msRussianPost.city]]. В данном чанке находится вызов сниппета для вывода списка городов и скрипт для динамического пересчета стоимости после выбора другого города
Шаг 2: срок доставки
В чанке tpl.msOrder.outer добавьте в удобное место вызов чанка [[$tpl.msRussianPost.time]], в нем находится контейнер для вывода срока доставки.
Расчет в карточке товара
Для расчета в карточке товара используется сниппет msRussianPost. Его параметры:
&tpl — Чанк оформления. По умолчанию: 'tpl.msRussianPost.delivery'
&sending — Тип отправления, указывается название. По умолчанию: 'Ценная посылка'
&weight — Вес отправления. По умолчанию: '1'
&cost — Стоимость отправления в рублях. По умолчанию: '0'
&to — Пункт назначения. По умолчанию:'Москва'
&toPlaceholder — Если указано, все результаты сохраняются в плейсхолдер с указанным именем. По умолчанию: 'false'
Системные настройки
msrussianpost_from_index — Индекс места отправления. По умолчанию: '190000' (Главпочтамт г. Санкт-Петербург)
ms2_delivery_weight_in_kg — Если включено, то вес отправления считается в килограммах. В противном случае – в граммах. По умолчанию: Включено
msrussianpost_cache_ttl — Время жизни результатов расчета в кэше, в секундах. По умолчанию:'604800'
msrussianpost_response_to_modx_log — Возможность отправить ответ сервиса расчетов в лог ошибок MODX на уровне ERROR. Может быть полезно при разработке, но на реальных проектах настоятельно рекомендуется отключать. По умолчанию: Отключено
Совместимость с msCDEK
Для вывода срока доставки используется отправка и обработка запроса происходит одинаково в обоих компонентах, используются переменные с одинаковыми названиями.
Это позволяет, например, корректно выводить результаты расчета для доставок через Почту России, используя чанки от msCDEK.
Нюанс: сниппет пунктов назначения для Почты России возвращает города и области, однако СДЕК не принимает названия областей для расчета. По этой причине при совместном использовании компонентов рекомендуется использовать чанк выбора города от компонента msCDEK.
Компонент можно будет приобрести в скором времени в магазине MODSTORE.PRO.
Спасибо сервису postcalc.ru за возможность создания данного компонента.
Обновлено 26.09.2017
С текущего момента поддержкой компонента занимается Павел Карелин.
Комментарии: 59
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Если не логиниться то все работает ок.
В логах ошибка
[2015-12-22 11:34:39] (ERROR @ /var/www/~/core/components/mscdek/model/mscdek/mscdek.class.php: 89) PHP warning: in_array() expects parameter 2 to be array, null given
[2015-12-22 11:34:39] (ERROR @ /var/www/~/core/components/mscdek/model/mscdek/mscdek.class.php: 245) PHP warning: array_search() expects parameter 2 to be array, null given
подскажите как настроить
ситуация такая: пользователь набрал товаров с общим весом большим чем максимально возможное по тарифу сдека, и возвращается нулевая цена доставки.
в итоге заказ был оформлен и оплачен с нулевой стоимостью доставки.
дилемма однако…
В файле components/minishop2/custom/delivery/mscdekhandler.class.php замените тело метода getCost() на следующее:
Данное изменение войдет в грядущее обновление компонента, однако, оно отложено на неопределенный срок.
Как еще получить выбранный город после Ajax запроса? Просто написал свой сниппет, который получает город, но только он работает после перезагрузки.
Спасибо!
Как это сделать и как сделать умную строку вводу города, чтоб было как у СДЭКА — payanyday.com/
вводишь пару букв он тебе варианты накидывает. Это важно, так как люди не только в Москве/ ЕКБ / Питере и тд живут, а еще и в поселках и деревнях Маленького Яичного))))
modx.pro/development/3139-foundations-of-ajax/
Извините, доставка не может быть рассчитана. Код ошибки: 3
Что значит?
Автодополнение — это от кого использовать?
1. Любую — это какую? Режим работы возможно получить (дни недели, время)?
2. Сайт на поддоменах, т.е. каждый город — поддомен — будет на них работать?
2) Сниппету абсолютно все равно, где он работает. Главное — в параметре &city передать правильное название города
В автодополнении по алфавиту выводятся все населенные пункты, в полное наименование которых входит введенное значение. В частности, Москва. В следующем обновлении добавлю вывод совпадающего значения на первое место.
спасибо, про селект понял.
и еще, было бы здорово добавить функционал выгрузки заказов в сдэк — либо через интеграцию, либо хотя бы в виде экспорта таблицы в нужном формате
2) Можно подробнее о формате? Возможно, получится добавить.
вот пример файла
и где в админке инфа по выбранным способам?
/assets/components/mscdek/js/web/default.js
на
Содержимое чанка chunk.delivery.tpl на
msCDEK/core/components/mscdek/model/mscdek/mscdek.class.php
на
Билд соберу думаю в конце этой недели.