Новый универсальный модуль расчёта доставки сразу для 13 служб доставки

Модуль для сервиса eShopLogistic.ru.
Интегрированы службы доставки: СДЭК, DPD, Boxberry, IML, Почта России, Деловые Линии, ПЭК, Dostavista, GTD, Байкал Сервис, PickPoint, Желдорэкспедиция, Ozon Rocket.
Если у вас есть своя служба доставки или просто пункты самовывоза, вы можете добавить собственную службу наравне с уже работающими.

Демонстрация возможностей модуля и подробная документация доступны на демо-сайте:
https://modx-v2.eshoplogistic.ru.

Кратко функционал

1. Встроенный виджет на странице оформления заказа.




2. Виджет для страницы товара во всплывающем окне.


3. Виджет для страницы товара встроенный.


4. Дополнительная информация прикреплена к заказу


Отличия от первой версии

В отличии от первой версии (создает отдельные способы доставки для каждой службы доставки) в основе лежит виджет, который встраивается в нужный блок на странице. Отсюда вытекают следующие качественные изменения:

  • простота подключения и настройки: для начала работы модуля в корзине нужно выполнить 4 простых шага: установить параметры и добавить всего 1 сниппет в нужное место страницы оформления заказа;
  • удобство использования — виджет сделан максимально понятным для посетителей сайта;
  • не нужно править чанк оформления заказа, нет необходимости что-то верстать дополнительно.
  • не нужно изменять процедуру оформления заказа Minishop2 (в первой версии нужно изменять параметр ms2_order_handler_class);
  • создаются всего 3 новых способа доставки: Самовывоз, Курьер и Почта России;
  • дополнительно: теперь все данные о доставке доступны в панели управления сайтом на отдельной вкладке окна редактирования заказа Minishop2.
  • виджеты, встраиваемые в страницу оформления заказа или карточку товара возможно стилизовать как вам угодно через css: поменять цвет, шрифт, размер, расположение блоков и т.п.

Стоимость

Сам пакет бесплатный.
Сервис eShopLogistic.ru условно бесплатный: использовать бесплатно можно 1 службу; если включено несколько служб доставки — от 300р / месяц за каждую включённую службу доставки.
В платном режиме за 3 подключенные службы выходит ~900 рублей в месяц, что сторицей окупается приростом конверсии сайта (проверено на себе).
Есть бесплатный пробный период без ограничений на 3 месяца, можно полноценно и не торопясь опробовать.

Загрузить пакет: https://modstore.pro/packages/delivery/eshoplogistic2
Алексей Шумаев
17 августа 2021, 17:29
modx.pro
2
2 441
+13
Поблагодарить автора Отправить деньги

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

Максим
18 августа 2021, 20:19
0
в первой версии нужно изменять параметр ms2_order_handler_class
А в этой версии он сам изменяет?))) Или какой-то обходной путь найден?)))
    Алексей Шумаев
    18 августа 2021, 22:26
    +2
    Ничего не меняет, это не требуется.
    В данном варианте все нужные данные на фронте доступны через события виджета.
    Поэтому и не требуется расширять класс доставки, чтобы добавить в стандартный response недостающие данные.
    Наумов Алексей
    26 августа 2021, 11:53
    0
    Добрый день!

    Когда добавляю вызов сниппета eshoplogistic2Order на страницу оформления заказа — скрипты скрывают все мои остальные способы доставки.
    У меня 4 способа:
    1. Самовывоз со склада
    2. Доставка курьером в пределах МКАД
    3. Забрать с пункта самовывоза (должно работать через eShopLogistic.ru)
    3. Курьером по РФ (должно работать через eShopLogistic.ru)

    я что-то не так сделал или компонент так работает?
      Алексей Шумаев
      26 августа 2021, 13:06
      0
      Добрый!

      Да, так работает.
      Сами способы доставки должны быть на странице, но управляются «за кулисами» по событиям виджета.
      Возможно, это я не совсем верно сделал, т.к., действительно могут быть иные способы доставки, которые не нужно скрывать. Я подумаю, как это поудобнее реализовать; скорее всего скрываться будут только способы доставки, созданные модулем при установке.
      Пока можно переключиться на свой js-файл, скопировать туда несжатый eshoplogistic2.js и закомментировать/изменить эти строки: yadi.sk/i/XckMjOIIacnUaQ
        Наумов Алексей
        26 августа 2021, 14:40
        0
        Конечно не нужно скрывать все)))

        Самовывоз со склада, собственный курьер, да просто куча способов доставок может быть, которые не нужно скрывать.

        Ладно, хорошо, хоть есть несжатый скрипт, придется поковыряться!
          Алексей Шумаев
          26 августа 2021, 14:48
          0
          Я думаю, можно для способов доставки в чанке
          {if $delivery.class == 'eslHandler'} установить класс типа «esl-delivery-item»
          и скрывать только их.
          В ближайшее время что-нибудь придумаю…
            Наумов Алексей
            26 августа 2021, 15:29
            +1
            Я еще несколько замечаний напишу «на будущее», что заметил:
            1. Если скрывать только доставки с классом esl-delivery-item, то при выборе их нужно снимать выбор с элемента input[type=«radio»] с другими доставками, иначе пользователь видит, что выбраны две доставки, несколько странно.
            2. Если я выбрал доставку, отличную от eslHandler, то нужно убирать галочку у доставки esl, иначе опять же 2 варианта выбранных видит пользователь.
            c2n.me/4d8bvV6
            3. Я выбираю доставку (в моем случае DPD) «Курьер до адреса», автоматически город определился, стоимость доставки посчиталась. Я вбиваю другой город, идет расчет новой цены, но она остается старой! Какой-то глюк: clip2net.com/s/4d8bPU9
              Алексей Шумаев
              26 августа 2021, 15:32
              0
              Спасибо! Завтра займусь обновлением модуля.
                Алексей Шумаев
                27 августа 2021, 10:30
                +1
                Если не случится непредвиденных осложнений, сегодня к вечеру будет новая версия с учётом выявленных недостатков. В худшем случае — к понедельнику.
                  Алексей Шумаев
                  27 августа 2021, 16:24
                  0
                  Версия обновлена. Правда я немного поспешил, т.к. по 3 пункту ещё разбираемся.
                  Скорее всего обновление версии не потребуется, если баг внутри виджета, но лучше пока подождать с обновлением на боевом сайте.

                  Проверить как сейчас работает можно на демо-сайте: modx-v2.eshoplogistic.ru
                  Буду благодарен за обратную связь!
                    Наумов Алексей
                    27 августа 2021, 16:37
                    +1
                    Добрый день!

                    Пощелкал немного на демо-сайте, на основном уж в понедельник буду разбираться…

                    Пока заметил вот что: clip2net.com/s/4d8ZXPJ
                    Выбрал Почту России, но остались галочки у курьерской службы… путаница.
                    Глюк с п.3 да, пока остался…

                    И у меня еще общий вопрос: расчет стоимости для служб идет только на основании веса, размеров посылки и города? Для курьера учитываются ли поля адреса (улица, дом и др. стандартные поля минишопа? Дело в том, что я все их (street, building, room) заменил на просто общее поле full_address (добавил самостоятельно), где пользователь может написать адрес в удобном ему виде.
                    Для Почты России, я так понимаю, доставки считается только на основании индекса?
                      Алексей Шумаев
                      27 августа 2021, 16:48
                      0
                      1. Глюка с почтой не вижу, буду попозже на свежую голову отлавливать.
                      2. Там, где конкретный адрес важен (Достависта), он учитывается.
                      но при этом адрес задаётся прямо в виджете, поэтому манипуляции с полями ms2 не имеют значения.
                      Причём для поля ввода адреса можно подключить dadata: yadi.sk/i/1UamsCRgwxoW9A
                      modx-v2.eshoplogistic.ru/documentation.html#d12
                      Сейчас поля ввода адреса внутри виджета и в ms2 не синхронизированы, т.е. вводить надо и там и там. Пока это касается только Достависты, поэтому отложено на недалёкое будущее.
                      3. Для почты — да, но это под капотом: задавать индекс посетителю сайта не нужно, он автоматом подтягивается от выбранного города.
                    Алексей Шумаев
                    27 августа 2021, 16:25
                    0
                    Да, ещё: что-то делать в чанках не нужно, вся логика в js.
            Наумов Алексей
            30 августа 2021, 11:56
            0
            Еще из замечаний: при первой загрузке страницы (а так же если просто её обновить кнопкой F5), то выбирается не первая доставка из списка (Самовывоз в моем случае), а первая из доставок компонента и показывается блок с выбором службы доставки. Это не корректное поведение.
              Алексей Шумаев
              30 августа 2021, 12:00
              0
              Принято, проверю.
                Наумов Алексей
                01 сентября 2021, 15:15
                0
                Добрый день!

                И еще как бы нюанс…
                У меня на сайте одна служба DPD.
                Ввожу в поле Город какую-нибудь деревню из области, где ну точно нет пункта самовывоза. При этом населенный пункт вполне себе подсказывается. Я так понимаю, что в целом курьером транспортная компания привезти заказ может, т.к. стоимость «Курьер до адреса» меняется, ну а самовывоза — нет. Однако скрипты такую ситуацию не обрабатывают, в консоли браузера ошибка:
                2eshoplogistic2.js?v=0.0.1:176 Uncaught (in promise) TypeError: Cannot read property 'price' of null
                    at Object.confirm (eshoplogistic2.custom.js?v=0.0.1:176)
                    at Object.eShopLogistic.onSelectedService (eshoplogistic2.custom.js?v=0.0.1:420)
                    at app.js:1
                    at Array.forEach (<anonymous>)
                    at H (app.js:1)
                    at onSelect (app.js:1)
                    at $r (chunk-vendors.js:1)
                    at Vr (chunk-vendors.js:1)
                    at Jt (chunk-vendors.js:1)
                    at Proxy.selected (app.js:1)
                  Алексей Шумаев
                  01 сентября 2021, 15:24
                  0
                  Спасибо, проверю/поправлю в течении 1-2 дней.
                  Можно сразу и название деревни для примера? На всякий случай проверю ситуацию с деревнями.
                    Наумов Алексей
                    01 сентября 2021, 15:39
                    0
                    Да любая на самом деле, я вот вводил поселок Шварцевский, Тульская область.
                      Алексей Шумаев
                      04 сентября 2021, 12:26
                      +1
                      Да, нюансов масса выплывает )
                      Можно посмотреть тут новую версию: modx-v2.eshoplogistic.ru/korzina.html
                      С очисткой кэша браузера.
                        Наумов Алексей
                        06 сентября 2021, 12:20
                        +1
                        Добрый день!
                        Спасибо, обновляюсь, все лучше и лучше)
                        clip2net.com/s/4deLsku
                        здесь ошибочка лезет, если нет способа доставки «Почта России».
                        нужно проверять, что el найден
                Viktor
                27 марта 2023, 09:28
                0
                MODX — 2.8.5
                Minishop2 — 4.1.3
                eShopLogistic2 — 0.1.2

                Добрый день!
                Компонент работает с ошибкой!
                Не передан fias населённого пункта
                Ошибка виджета, включен дефолтный режим доставки {status: false, code: 'inValidFiasCode'}
                Внедрял по инструкции!
                Раньше всё работало! после очередного обновления Minishop2 начались проблемы
                  Алексей Шумаев
                  27 марта 2023, 09:47
                  0
                  Добрый день!

                  Ключевое тут: «после очередного обновления Minishop2» — т.е. что-то поменялось.
                  Это не проблема — напишите обращение с указанием доступа в админку через поддержку здесь или в личном кабинете eShopLogistic, решим.
                    Viktor
                    27 марта 2023, 11:41
                    0
                    Ok спасибо!
                      Aborrol
                      09 апреля 2023, 19:51
                      0
                      Такая же проблема, подскажите куда копать?
                        Алексей Шумаев
                        09 апреля 2023, 19:58
                        0
                        Там может быть 2 момента:
                        1) изменение пути к классу обработчика доставки ms2 (в этом случае ошибка 500 появляется, фикс есть в новой версии, которая готовится)
                        2) более сложный момент, связанный с работой pdoTools.
                        Напишите в поддержку, решим.
                    Viktor
                    27 марта 2023, 13:05
                    0
                    Спасибо за помощь!
                    И еще один вопрос — как выводить пункты выдачи только по Росии?
                      Алексей Шумаев
                      27 марта 2023, 13:08
                      0
                      Не понял вопрос (
                      ПВЗ на карту выводятся для конкретного выбранного города.
                      Вы хотите запретить выбор городов не из России в корзине?
                        Viktor
                        27 марта 2023, 13:34
                        0
                        Да
                          Алексей Шумаев
                          27 марта 2023, 13:36
                          0
                          Ок, чуть позднее настрою.
                            Viktor
                            28 марта 2023, 13:51
                            0
                            ?
                              Алексей Шумаев
                              28 марта 2023, 14:51
                              0
                              Предлагаю тут не писать — эта переписка никому не интересна )
                              Напишите в ранее открытый тикет поддержки eShopLogistic — задача будет у меня.
                                Viktor
                                28 марта 2023, 15:19
                                0
                                ok
                      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                      32