[msRussianPost] - международные отправления и стабильная ветка

Всем привет! Друзья, рад сообщить вам что msRussianPost перебрался из beta версии в стабильную! Под капотом множество изменений!



Changelog:
  • Множество исправлений front-end части
  • Исправлены ошибки back-end части
  • Добавлены международные тарифы
  • Удалена настройка [msrussianpost_weight], вместо нее теперь используется коэффициент
  • Добавлен выбор страны получателя
  • Интегрирован автокомплит страны на основе стандартного процессора modCountry
  • Добавлено Front-End событие на обновление статуса
Под катом я расскажу о самых интересных изменениях более подробно
Итак, поехали:

Новые тарифы


Были добавлены новые тарифы:
  • Международный мешок М
  • Международный мешок М авиа
  • Международный мешок М заказной
  • Международный мешок М авиа заказной
  • Международная бандероль
  • Международная авиабандероль
  • Международная бандероль заказная
  • Международная авиабандероль заказная
  • Международный мелкий пакет
  • Международный мелкий пакет авиа
  • Международный мелкий пакет заказной
  • Международный мелкий пакет авиа заказной
  • Международная посылка
  • Международная авиапосылка
  • ЕMS международное — документы
  • ЕMS международное — товары
На демо сайте представлен не полный список новых тарифов

Страны


Первое и самое главное изменение — добавились международные отправления и соответственно автокомплит стран. Для автокомплита используется библиотека select2 и процессор, основанный на стандартном modCountry. Для добавления автокомплита и выбора страны вам необходимо включить настройку country_autocomplete а также добавить select с name=«country» в msOrder. На демо сайте это выглядит вот так:
<div class="form-group input-parent">
    <label class="col-md-4 control-label" for="country">
        {('ms2_frontend_country') | lexicon}
    </label>
    <div class="col-sm-6">
        <select name="country" id="country" class="form-control{('country' in list $errors) ? ' error' : ''}"></select>
    </div>
</div>
Выбранная страна успешно запоминается и подтягивается при обновлении страницы. Но учтите то, что в заказ попадает не название страны, а ее ISO — код (RU, UA и т.д.)

Также добавлены несколько обработок ошибок связанные с международными отправлениями, к примеру если выбрать тариф международный тариф, но указать страну РФ, компонент вам укажет о том, что тариф выбран неверно, как и в обратной ситуации. За это отвечают 3 лексикона
  • msrussianpost_err_nomd — выбран тариф для РФ, но страна не РФ
  • msrussianpost_err_tariff — выбран тариф для международного отправления, но страна РФ
  • msrussianpost_err_tariff_not_delivery — доставка по сочетанию страна-тариф невозможна

Событие получения статуса


Для большей гибкости компонента добавлено событие обновления статуса, в него приходит json объект, который содержит текст сообщения, флаг error обозначающий ошибка это или успешный расчет а также в случае успешного расчета содержит цену доставки и расчетный период доставки, вот пример использования:
$(document).on('pr_update_status', function(e, data) {
    console.log(data);
    if (data.error) {
        miniShop2.Message.error('Ошибка расчета доставки: '+data.msg);
    } else {
        miniShop2.Message.success('Доставка расчитана успешно, стоимость доставки: '+data.price);
    }
})
На основе этого события теперь вы сами можете задавать логику для получения статуса, как в примере выше или например открывать попап/запрещать оформление заказа и т.д.

Демо
Купить

P.s. также активно ведется работа над глобальным обновлением msCDEK, там вы увидите еще более глобальные изменения и улучшения
Pavel Zarubin
05 сентября 2018, 05:36
103
+7

Комментарии: 0