[msCdekWidget] Альтернативный калькулятор доставки СДЭК

Приветствую! Представляю вашему вниманию свой вариант интеграции оригинального виджета службы доставки СДЭК на сайты на базе всеми нами любимой CMS Modx Revolution.

Главное отличие от ms_CDEK2 в том, что все расчёты производятся на сайте СДЭК, после чего результат расчёта передаётся через сессию в класс обработчик доставки miniShop'а.

Для корректной работы компонента нужен договор с компанией СДЕК. Без него вы не сможете получить логин и пароль для интеграции. Так же понадобится ключ для API Яндекс.Карт (JavaScript API и HTTP Геокодер). Все эти данные, а так же некоторые другие необходимо указать в системных настройках компонента.

Без нюансов, конечно, не обошлось. На тестовом сайте в какой-то момент карта стала загружаться очень долго. Проанализировав ситуацию, я пришёл к выводу, что у СДЭК'а есть личная неприязнь к моему хостеру (hostland.ru). Впрочем их ТП подтвердила наличие проблемы с картами, но так же сказали, что сроков решения они не знают.
В целом, JS компонента загружается как модуль, сам виджет и карта загружаются отдельно, после загрузки всей страницы, чтобы не блокировать отрисовку контента.

Компонент платный, потому что, несмотря на внешнюю простоту, у виджета напрочь отсутствует API, поэтому для интеграции пришлось проявить немалую изобретательность.

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

Ссылка на компонент
Ссылка на тестовый сайт

Спасибо за внимание!
Артур Шевченко
07 декабря 2023, 20:58
modx.pro
2 107
+5
Поблагодарить автора Отправить деньги

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

Наумов Алексей
08 декабря 2023, 11:41
+1
тестовый сайт что-то не аллё, не могу выбрать никакой способ доставки, radio заблокированы
    Артур Шевченко
    08 декабря 2023, 11:56
    0
    На тестовом сайте в какой-то момент карта стала загружаться очень долго. Проанализировав ситуацию, я пришёл к выводу, что у СДЭК'а есть личная неприязнь к моему хостеру (hostland.ru).
      Наумов Алексей
      08 декабря 2023, 14:23
      0
      очень долго — это ну не знаю, 5 или 15 секунд
      я по приколу подождал около 2х минут, ничего не произошло, тестовый сайт не работает. ни уведомлений, ни предупреждений — тишина…

      для платного компонента презентация не очень) я раньше покупал и использовал ms_CDEK2, было интересно сравнить, но не судьба похоже
    Алексей Суслов
    08 декабря 2023, 14:26
    +1
    Да, хотелось бы пощупать. На демо сайте не работает.
    Плотно приходилось работать с ms_CDEK2 — и не совсем понял про главное отличие.
    В ms_CDEK2 точно также необходим логин и пароль для интеграции к их API для рассчетов.
    Там идет запрос к api.cdek.ru/v2/ для рассчета стоимости и затем сохраняет в сессию для вывода в корзине результата.

    У ms_CDEK2 есть свои нюансы и проблемы, поэтому реально заинтересован в аналогичном, но более стабильном и продуманном решении, но пока по описанию абсолютно не понятно в чем разница.

    На тестовом сайте в какой-то момент карта стала загружаться очень долго. Проанализировав ситуацию, я пришёл к выводу, что у СДЭК'а есть личная неприязнь к моему хостеру (hostland.ru).
    Со СДЭКом давно борюсь, у них много бывает приколов, например в черную пятницу через раз грузился их виджет с точками ПВЗ, так как их сервера были перегружены и валились с 500 ошибкой. Это сама их поддержка подтвердила потом. Пришлось кэшировать на своей стороне и обновлять раз в несколько часов весь список ПВЗ.

    Еще есть проблема с автокомплитом города, ну там комплексная проблема минишопа github.com/modx-pro/miniShop2/issues/879
      Артур Шевченко
      08 декабря 2023, 17:44
      +2
      Развернул демо на другом хостинге
        Алексей Суслов
        08 декабря 2023, 18:33
        0
        Спасибо, посмотрел. Расскажите, пожалуйста, как разработчик, чем же все же принципиально отличается ваше решение?
        Пока навскидку это просто виджет widget.cdek.ru с обвязкой. Причём на мой вкус и взгляд, новая версия виджета СДЭК, которая используется у вас более глючная и тормозная, чем предыдущая, но надо признать она активно допиливается сейчас.
        Пока болячки все те же:
        1) массовая установка полей при выборе ПВЗ, из-за чего происходит перезаписывание и иногда некоторые поля затираются или не ставятся
        2) отсутствует адекватный автокомплит у поля город, у ms_CDEK2 он есть — но тоже к нему есть вопросы, т.к. выбор города в поле на карте — долго думает и не совсем логичный способ для посетителей, они путаются и не понимают, где вводить город. Часто несколько доставок в магазине используется и поэтому выбор города должен быть где-то в одном месте, а не так, что для почты РФ в однм месте, для СДЭК на карте.

        Не подумайте, что я хейчу как-то — это просто наболевшее для меня) Правда хочется получить адекватное, удобное решение. Надеюсь, вы продолжите дорабатывать и получится хороший конкурентный пакет.
          Артур Шевченко
          08 декабря 2023, 19:35
          0
          Принципиальная разница в том, что компонент работает на том коде, который предоставляет сам СДЭК — да это их виджет с обвязкой.
          Что касается заполнения адреса, то по-моему всё логично. Если пользователь выбирает объект на карте, то заполняется адрес этого объекта, если пользователь вводит адрес вручную, то в виджете запускается поиск по введённому значению, т.е. адрес необязательно вводить на карте.
            Pandemic
            09 декабря 2023, 21:04
            0
            Получил баг на тестовом хостине, когда захожу карта постоянно обновляется, на ваш сервер отправляется кучу запросов каждую секунду
              Артур Шевченко
              09 декабря 2023, 22:41
              0
              Возможно просто не повезло))) Я сейчас на трёх тестовых сайтах посмотрел, которые на разных хостингах, всё работает нормально. Похоже СДЭК карту починил.
                Максим
                18 декабря 2023, 07:29
                0
                Я сейчас тоже посмотрел и глюк на глюке)) Тормозит ужасно всё)) Но, думаю, тут не к вам претензия, а к разработчикам виджета))
                  Артур Шевченко
                  18 декабря 2023, 11:13
                  0
                  Я после вашего комментария тоже посмотрел, они виджет обновили. Так что надо обновление компонента выпускать, что-то работать перестал.
                    Максим
                    19 декабря 2023, 07:28
                    0
                    Потому и говорю, что на их стороне полюбому проблема. Сталкивался с прошлой версией, тоже голову сломал себе, в итоге заказчика просто отказался от него))
      Сергей
      15 декабря 2023, 11:02
      0
      Артур, добрый день! На счет актуальности CDEK не совсем в курсе, но вот очень не хватает модуля для Яндекс доставки, доставки до ПВЗ, что бы клиент мог выбирать удобный для него пункт самовывоза. Если будет время и желание заняться разработкой данного модуля, то с удовольствием бы купил его.
        Артур Шевченко
        15 декабря 2023, 11:18
        0
        Думал вы напишите: я бы с удовольствием оплатил разработку))) А так, спасибо за идею.
        Вячеслав
        04 апреля 2024, 17:01
        0
        @Артур Шевченко На тестовом запустил, карта не появилась сама пока не прописал
        <div id="cdek-map"></div>
        и не сделал вызов
        <script type="module" src="assets/components/mscdekwidget/js/web/mscdekwidget.js"></script>
        . «ID ресурсов для подключения виджета» — в настройках указал, но нет. Теперь другая проблема, выводятся цены в виджете для ИП, но цены для клиента будут больше «Доп. стоимость» в вариантах доставки не дали результата, это настраивается где-то или нет?
          Вячеслав
          26 апреля 2024, 00:58
          0
          Всем привет @Артур Шевченко в виджете СДЕК отображается стоимость доставки например 185р мне нужно, чтобы показывалось 250р, как это реализовать? Через админку минишоп2(Доп. стоимость) не работает и на тестовом сайте при оформлении заказа доставка не плюсуется к общей сумме(
            Артур Шевченко
            26 апреля 2024, 10:34
            0
            Виджет показывает стоимость рассчитанную самим СДЭКом, там можно что-то поменять только через JS.
              Виктория
              26 апреля 2024, 21:19
              0
              Сегодня узнавала в СДЭК, что при наличии договора есть самый дешевый тариф посылка склад-склад — это для юр лиц в договором. И такой же по срокам, но для физ и юр лиц без договора — экспресс склад-склад. Можно его показывать при расчете покупателям — он дороже всегда и даст запас на сопутствующие расходы.
              Либо все таки придумать как наценку указывать внутри настроек виджета, так как даже на самый дешевый тариф обычно берем страховку + упаковку и расчет для покупателя уже неверный будет показываться.
                Артур Шевченко
                Вчера в 13:37
                0
                В системных настройках компонента вы указываете логин и пароль от API и все данные виджет берёт из вашего ЛК СДЭК. Дополнительная стоимость, которую можно указать в настройках минишопа для данного способа доставки рассчитывается отдельно и может быть выведена в виджет, только с помощью костылей на JS.
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            19