msRussianPost 1.0.0: расчет доставки Почтой России

Описание

msRussianPost позволяет рассчитывать стоимость доставки, с учетом веса заказа и стоимости всех товаров, для всех основных типов перевозок Почтой России.

В тексте упоминается компонент msCDEK — его описание появится в скором времени.

Особенности

  1. Учет стоимости и веса товаров в заказе
  2. Вывод стоимости доставки с учетом страхования
  3. Вывод сроков доставки
  4. Сниппет для расчета доставки в карточке товара
  5. Кэширование результатов расчета
  6. Совместимость с msCDEK при расчете сроков доставки

Поддерживаемые типы отправлений:

  1. Простая бандероль
  2. Заказная бандероль
  3. Заказная бандероль 1 класс
  4. Ценная бандероль
  5. Ценная посылка
  6. Ценная авиабандероль
  7. Ценная авиапосылка
  8. Ценная бандероль 1 класс
  9. Курьерская доставка 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


С текущего момента поддержкой компонента занимается Павел Карелин.
Воеводский Михаил
28 июля 2015, 10:55
modx.pro
7 034
+7

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

Воеводский Михаил
03 августа 2015, 18:25
0
Компонент доступен в магазине.
    Stan Ezersky
    17 ноября 2015, 08:50
    0
    Михаил, хотелось бы демку посмотреть, есть она?
      Воеводский Михаил
      17 ноября 2015, 11:57
      +1
      Демки пока нет. В течение нескольких часов оживлю свой технический сайт, где есть этот компонент — можно будет посмотреть. Главное — не воспринимать этот сайт как демку. Он совсем страшный )
        Stan Ezersky
        17 ноября 2015, 12:45
        0
        Хорошо, тем более, что нужен не сайт, а работа аддона :)
          Воеводский Михаил
          18 ноября 2015, 12:27
          0
          tickets.o.aaa0.ru
          Товар там только 1 — нетбук. Повторю — это не демка в прямом смысле :)
            Stan Ezersky
            18 ноября 2015, 13:23
            0
            Спасибо!

            От почты России можно 1 вариант сделать, к примеру, «Почта России Простая бандероль»?
    Stan Ezersky
    18 ноября 2015, 13:52
    0
    Почта России Курьерская доставка EMS — это встроенное? Другой аддон не нужен? msEMS тогда не пригодится уже?
      Воеводский Михаил
      18 ноября 2015, 13:55
      +1
      Да, здесь EMS поддерживается.
      Но: в msEMS есть поддержка международных отправлений. В msRussianPost пока только российский города.
    Наумов Алексей
    28 января 2016, 17:09
    0
    Михаил, а компонент умеет округлять стоимость доставки, что бы копеек не было, или с точностью до 10/50/100 рублей?
      Воеводский Михаил
      28 января 2016, 17:11
      0
      Не умеет. Если надо, напишите в поддержке — добавлю такую возможность.
    Konstantin
    22 апреля 2016, 18:53
    0
    Доставка Почта России Курьерская доставка EMS
    рассчитывает стоимость доставки даже там где курьерская служба не доставляет

    Потом будут претензии мол платил за курьерскую а вы по почте отправили которая дешевле на тысячу рублей

    Как быть?
    Konstantin
    22 апреля 2016, 19:32
    1
    0
    Адрес доставки
    Указываю Магадан

    из Саратовской области Энгельс
    вес 4,3кг цена вещи 360р.

    насчитал доставку 3930 Откуда?

    В то время как сайт postcalc.ru/ насчитал авиапосылку 2784р максимум

    сайт почты России выдал максимум без учета упаковки — 1 776 р

    А переключаю на EMS там цена доставки 1700р. ДЕШЕВЛЕ 0_о
    Сайт почты России вообще говорит что в Магадан не ходит EMS
      Воеводский Михаил
      26 апреля 2016, 02:15
      0
      Загрузил в магазин обновленную версию. Если доставка выбранным методом невозможна, стоимость доставки считается нулевой, вместо срока доставки выводится сообщение о невозможности доставить данным способом.
        Konstantin
        26 апреля 2016, 14:01
        0
        Михаил, а почему это в сроках отражается? я вообще сроки не вывожу например, так как товар еще менеджеру (перекупу) нужно заказать на это надо время, пару недель например чтобы товар пришел в магазин, а потом только срок доставки. Это сообщение вводит в заблуждение, поэтому от него отказались.
        Другое дело если делать кнопку «Сделать заказ!» не активной, но тогда можно Энтером отправить, тоже не варик.
        Как же делать чтобы было правильно и универсально? Может отдельно выводить сообщения эти от сообщений о сроках доставки?
          Воеводский Михаил
          30 апреля 2016, 01:43
          0
          Добавлена системная настройка msrussianpost_return_time. Если ее отключить, срок доставки не будет выводиться. На сообщения о невозможности доставки это не влияет.
          Обновляйтесь.
          Konstantin
          26 апреля 2016, 14:43
          0
          Не указывать город нельзя, так как куда отправлять товар? В область Саратовскую и всё? Да возможно будет правильно рассчитана стоимость если в селекторе выбрать Саратовская область.

          Что я делаю и какие ответы получаю:
          1. Указал вручную город при отсутствующем селекте, прописал #city_select полю с городом
          ответ — метод недоступен
          shot.hsdn.org/oyX8RLjE
          Хотя указал тоже самое на сайте postcalc.ru, которым пользуется данное приложение
          ответ — или 303р. доставка ценной посылки или 640р.
          shot.hsdn.org/x0xWdexD

          2. Сделал вывод селект списка и города одновременно, у поля город указал #city_select
          В селекте выбрал Саратовскую область
          Скрин — shot.hsdn.org/Rw4X6m8Z вроде все работает

          далее указываю город в области
          скрин — shot.hsdn.org/msUmrHRH Цена доставки не обновилась, написано по прежнему про область и пропала область из селекта, там пустота

          далее щелкаю кнопки доставки на самовывоз и обратно на «Почта России Ценная посылка»
          скрин — shot.hsdn.org/24iV8IMs Опять для этого города по какой то причине посылка не считается, хотя указал тоже самое на сайте postcalc.ru, которым пользуется данное приложение
          ответ — или 303р. доставка ценной посылки или 640р.
          shot.hsdn.org/x0xWdexD
            Воеводский Михаил
            30 апреля 2016, 01:52
            0
            Отправка запроса на обновление стоимости происходит при изменении поля #citi_select. При этом, расчет стоимости (механизм) работает по полю name=«city», тк это штатное поле для самого miniShop2.

            В отдаленном будущем есть планы перевести компонент на новое API postcalc.ru, которое работает по индексам, но сроки пока даже примерные не назову.
        Konstantin
        22 апреля 2016, 19:42
        0
        Ниже под [[$tpl.msRussianPost.city]]
        расположен стандартный инпут города

        Оставлен на случай отсутствия города в списках

        Сперва ввожу один город потом другой город.

        Цена доставки не обновляется
        пока не по щелкаешь по радио кнопкам выбора доставки

        Как вообще должно выглядеть если города, поселка нет в этом селект списке?
          Igor Ivanov
          23 апреля 2016, 07:59
          0
          Это потому что изначально порочна сама идея привязывать расчет к названию населенного пункта. Надо отталкиваться от индекса, т.е. Клиент вводит индекс, и этого достаточно для расчета, а поле с названием города он либо сам заполняет как хочет, либо автоматом по индексу определять и подставлять.
            Konstantin
            23 апреля 2016, 17:38
            0
            Пусть сам заполняет.
            Я вообще не понимаю как автор задумал все это. Вот нет в списках города или он находится в Области к примеру Воронежской.
            Туда нет курьерской доставки, данное дополнение это не умеет определять. оно считает доставку в любом случае, даже не убирает этот вариант доставки из списка, то есть заказчик должен сам разгребать есть там ЕМС или нет.
            При написании вручную города, например может ошибиться в буквах ЕЁ или сделать опечатку. Доставка опять насчитает криво, так как не обновится сумма доставки, робокасса отправит минишопу что счет оплачен и будет в магазине статус ОПЛАЧЕНО а сумма оплаты неправильная, и гадай какой заказ правильно оплачен а какой нет.

            Потом пиши письма заказчику и объясняй почему на пару тысяч ошибочка вышла. Да он просто скажет верните деньги.

            Приложение, не рабочее.
          Воеводский Михаил
          26 апреля 2016, 02:17
          0
          Обновление цены происходит при изменении поля #city_select. Стандартное поле ввода названия города имеет другой ID, потому скрипт на него не срабатывает.
          Konstantin
          24 апреля 2016, 17:08
          0
          куда все делись
            Воеводский Михаил
            25 апреля 2016, 09:33
            0
            В течение сегодняшнего дня дам ответ. На DevCamp с инетом была печаль :)
            Георгий Графов
            23 ноября 2016, 15:01
            0
            Михаил, день добрый Minishop2.4 поддерживается?
              Воеводский Михаил
              23 ноября 2016, 16:22
              0
              Целенаправленно не проверялось. После покупки напишите в поддержке магазина, если будет работать неправильно — исправлю.
              Дмитрий
              04 января 2017, 20:16
              0
              Михаил, доброго времени суток!
              Подскажите, Ваш модуль можно связать с Geolocation?
              Спасибо.
                Воеводский Михаил
                04 января 2017, 20:34
                0
                Дмитрий, добрый вечер!
                Напишите в поддержку, после каникул посмотрим на возможность их подружить.
                Денис
                11 января 2017, 09:55
                0
                Михаил, здравствуйте. Приобрел Ваш модуль, поставил, вроде все ок, но при выборе города там нет например того в котором я живу и многих других и вперемешку с областями
                  Воеводский Михаил
                  11 января 2017, 13:47
                  0
                  Денис, для списка городов взят список, предоставляемый ранее сервисом postcalc.ru. В отдаленных планах есть изменение компонента под обновленный API сервиса, но срок пока сложно назвать.
                    Денис
                    11 января 2017, 13:50
                    0
                    Ок, скажите если msCDEK дополнительно поставлю, список городов изменится или останется прежним? И можно посмотреть список городов по сдэк?
                      Воеводский Михаил
                      11 января 2017, 13:57
                      0
                      Они используют разные списки.

                      www.edostavka.ru/website/edostavka/upload/custom/files/CDEK_city.zip
                      Здесь полный список городов, которые поддерживает СДЕК. Вместе с компонентом идет сжатый список — только те города, которые отмечены как центры.
                        Денис
                        11 января 2017, 14:17
                        0
                        Ок, еще можно ли в msRussianPost указать сортировку так чтобы города не мешались с областями?
                Дмитрий
                28 апреля 2017, 13:22
                0
                Добрый день! А есть ли возможность посчитать доставку в города Московской области? Не пойму как пользоваться. Например до города Зеленоград. На сервисе postcalc.ru я могу по индексу 124460 посчитать. Однако по этому индексу он подставляет Москва 460. Это как то решаемо, чтобы было понятно для пользователя?
                  Воеводский Михаил
                  28 апреля 2017, 14:03
                  0
                  Добрый день.

                  В текущей версии не поддерживается. Требуется переработка компонента для использования новой версии API сервиса. В ближайшее время такая работа не планируется.
                  Андрей
                  25 августа 2017, 20:55
                  0
                  Подскажите, пожалуйста, как в эту конструкцию вставить чанк [[$tpl.msRussianPost.city]]?
                  {foreach ['index','region','city'] as $field}
                                  <div class="form-group input-parent">
                                      <label class="col-md-6 control-label" for="{$field}">
                                          <span class="required-star">*</span> {('ms2_frontend_' ~ $field) | lexicon}
                                      </label>
                                      <div class="col-sm-12">
                                          <input type="text" id="{$field}" placeholder="{('ms2_frontend_' ~ $field) | lexicon}"
                                                 name="{$field}" value="{$form[$field]}"
                                                 class="form-control{($field in list $errors) ? ' error' : ''}">
                                      </div>
                                  </div>
                              {/foreach}
                    Алеша
                    26 сентября 2017, 11:20
                    0
                    Если не решил то пиши в личку подскажу, если кратко то надо из этого цикла вытащить итерацию с полем ввода города и дальше уже вставить вызов чанка.
                      Андрей
                      26 сентября 2017, 11:21
                      0
                      Спасибо, дружище. Так и сделал. ))
                    Алеша
                    26 сентября 2017, 11:26
                    0
                    А вообще поражает отношение разработчика, пишет в инструкции устаревший уже год как метод правки — новички по месяцу тыкаются, пытаясь править неиспользуемый чанк tpl.msOrder.outer )))
                    Вроде как платное приложение, а афишируемая работоспособность сниппета msCDEK на странице товара по сути уже с весны как я купил этО изделие, абсолютно нерабоспособно
                      Воеводский Михаил
                      26 сентября 2017, 11:35
                      0
                      Поскольку для меня поддержка данных компонентов нецелесообразна по ряду причин, уже начат процесс передачи компонентов новому автору. В скором времени подробности станут известны.
                      Алеша
                      26 сентября 2017, 11:26
                      0
                      имел ввиду соседний компонент msCDEK
                        Воеводский Михаил
                        26 сентября 2017, 21:29
                        0
                        С сегодняшнего дня поддержкой компонента занимается Павел Карелин.
                          Сергей Кепкин
                          06 октября 2017, 11:25
                          +1
                          Господа, будьте осторожны, разработчик не указал одну особенность, возможно недокументированная, но судя по результатам проведенных исследований, скорее всего это банальная руко***.
                          При вызове сниппета в карточке товара результата расчета сниппета не поддается никакой логике, при этом наблюдается некая взаимосвязь с наличием товаров в корзине:
                          1. если корзина пуста, стоимость доставки на странице товара =180р
                          2. если корзина наполнена товарами, то расчет на странице товара =325р
                          WTF?)))
                          Кто-то может возразить — и это первая мысль что пришла мне в голову — возможно, в стоимость добавилась сумма доставки для товаров, которые уже в корзине? НЕТ! На странице корзины сниппет показывает стоимость 438р (3 разных товара).
                          Как видно, три абсолютно не связанных между собой числа.
                          Проверялось и для одного и того же товара и для разных товаров и для разных регионов и для разных видов почтовых отправлений.
                          Компонент крайне не рекомендуемый к покупке!
                          В тех. поддержку писать нет никакого желания, еще раз там получить порцию оскорблений от нового преемника компонента может переполнить чашу сию.
                            Сергей Кепкин
                            06 октября 2017, 12:00
                            0
                            справочно:
                            При полной корзине на сервер postcalc уходит стоимость корзины
                            [ОценкаВложения] => 3600

                            Причем тут стоимость доставки товаров из корзины и стоимость доставки какого-то одного товара?
                            Почему со страницы товара не отправляется стоимость? Тоже получается расчет неверный.

                            Т.е. сниппет, созданный для работы на странице товара, явно сырой. Одну ошибку уже нашли совместными усилиями неделю назад, еще одну помочь найти? Почему нет? За 50% прибыли очень даже был бы рад…
                            Сергей Кепкин
                            10 октября 2017, 14:14
                            0
                            Как добавить вариант доставки: Посылка 1 класса?
                              Dmitry St.
                              01 февраля 2018, 09:24
                              0
                              Доброго дня, интересует совместимость с скриптом Shopkeeper.
                              Возможно привязать модуль к магазину на Shopkeeper?
                                Андрей
                                01 февраля 2018, 12:21
                                0
                                С Shopkeeper работать не будет. Для него нужно писать своё решение.
                                  Олег
                                  01 февраля 2018, 12:35
                                  0
                                  Не советую — техподдержка не отвечает, когда глючит модуль.
                                  Почемупри смене города action.php отдает ошибку 500?
                                    Андрей
                                    14 июня 2018, 14:49
                                    0
                                    Посмотрите серверный error.log, 500я ошибка должна туда записываться, возможно станет понятно из за чего проблема. Ну или напишите в техподдержку, т.к. компонент платный.
                                  Андрей
                                  20 октября 2018, 19:38
                                  0
                                  В последней версии есть возможность сделать расчет доставки в карточке товара?
                                    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                    61