К содержанию

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
8 116
Реклама

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

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

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

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

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

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

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

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

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

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

            Что я делаю и какие ответы получаю:
            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
              Отправка запроса на обновление стоимости происходит при изменении поля #citi_select. При этом, расчет стоимости (механизм) работает по полю name=«city», тк это штатное поле для самого miniShop2.

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

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

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

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

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

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

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

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

                      В текущей версии не поддерживается. Требуется переработка компонента для использования новой версии API сервиса. В ближайшее время такая работа не планируется.
                      Андрей
                      Андрей Старожил
                      25 августа 2017, 20:55
                      Подскажите, пожалуйста, как в эту конструкцию вставить чанк [[$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
                        Если не решил то пиши в личку подскажу, если кратко то надо из этого цикла вытащить итерацию с полем ввода города и дальше уже вставить вызов чанка.
                          Андрей
                          Андрей Старожил
                          26 сентября 2017, 11:21
                          Спасибо, дружище. Так и сделал. ))
                        Алеша
                        Алеша Старожил
                        26 сентября 2017, 11:26
                        А вообще поражает отношение разработчика, пишет в инструкции устаревший уже год как метод правки — новички по месяцу тыкаются, пытаясь править неиспользуемый чанк tpl.msOrder.outer )))
                        Вроде как платное приложение, а афишируемая работоспособность сниппета msCDEK на странице товара по сути уже с весны как я купил этО изделие, абсолютно нерабоспособно
                          Воеводский Михаил
                          Воеводский Михаил Проверенный
                          26 сентября 2017, 11:35
                          Поскольку для меня поддержка данных компонентов нецелесообразна по ряду причин, уже начат процесс передачи компонентов новому автору. В скором времени подробности станут известны.
                          Алеша
                          Алеша Старожил
                          26 сентября 2017, 11:26
                          имел ввиду соседний компонент msCDEK
                            Воеводский Михаил
                            Воеводский Михаил Проверенный
                            26 сентября 2017, 21:29
                            С сегодняшнего дня поддержкой компонента занимается Павел Карелин.
                              Сергей Кепкин
                              Сергей Кепкин Старожил
                              06 октября 2017, 11:25
                              Господа, будьте осторожны, разработчик не указал одну особенность, возможно недокументированная, но судя по результатам проведенных исследований, скорее всего это банальная руко***.
                              При вызове сниппета в карточке товара результата расчета сниппета не поддается никакой логике, при этом наблюдается некая взаимосвязь с наличием товаров в корзине:
                              1. если корзина пуста, стоимость доставки на странице товара =180р
                              2. если корзина наполнена товарами, то расчет на странице товара =325р
                              WTF?)))
                              Кто-то может возразить — и это первая мысль что пришла мне в голову — возможно, в стоимость добавилась сумма доставки для товаров, которые уже в корзине? НЕТ! На странице корзины сниппет показывает стоимость 438р (3 разных товара).
                              Как видно, три абсолютно не связанных между собой числа.
                              Проверялось и для одного и того же товара и для разных товаров и для разных регионов и для разных видов почтовых отправлений.
                              Компонент крайне не рекомендуемый к покупке!
                              В тех. поддержку писать нет никакого желания, еще раз там получить порцию оскорблений от нового преемника компонента может переполнить чашу сию.
                                Сергей Кепкин
                                Сергей Кепкин Старожил
                                06 октября 2017, 12:00
                                справочно:
                                При полной корзине на сервер postcalc уходит стоимость корзины
                                [ОценкаВложения] => 3600

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

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