Новый универсальный модуль расчёта доставки сразу для 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
1
900
+13
Поблагодарить автора Отправить деньги

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

Максим
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 найден
                Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                20