[msCdekWidget] Альтернативный калькулятор доставки СДЭК
Приветствую! Представляю вашему вниманию свой вариант интеграции оригинального виджета службы доставки СДЭК на сайты на базе всеми нами любимой CMS Modx Revolution.
Главное отличие от ms_CDEK2 в том, что все расчёты производятся на сайте СДЭК, после чего результат расчёта передаётся через сессию в класс обработчик доставки miniShop'а.
Для корректной работы компонента нужен договор с компанией СДЕК. Без него вы не сможете получить логин и пароль для интеграции. Так же понадобится ключ для API Яндекс.Карт (JavaScript API и HTTP Геокодер). Все эти данные, а так же некоторые другие необходимо указать в системных настройках компонента.
Без нюансов, конечно, не обошлось. На тестовом сайте в какой-то момент карта стала загружаться очень долго. Проанализировав ситуацию, я пришёл к выводу, что у СДЭК'а есть личная неприязнь к моему хостеру (hostland.ru). Впрочем их ТП подтвердила наличие проблемы с картами, но так же сказали, что сроков решения они не знают.
В целом, JS компонента загружается как модуль, сам виджет и карта загружаются отдельно, после загрузки всей страницы, чтобы не блокировать отрисовку контента.
Компонент платный, потому что, несмотря на внешнюю простоту, у виджета напрочь отсутствует API, поэтому для интеграции пришлось проявить немалую изобретательность.
В ближайшем обновлении планирую добавить события для изменения и дополнения логики работы компонента. Так же принимаются ваши пожелания по доработкам и улучшениям.
Ссылка на компонент
Ссылка на тестовый сайт
Спасибо за внимание!
Главное отличие от ms_CDEK2 в том, что все расчёты производятся на сайте СДЭК, после чего результат расчёта передаётся через сессию в класс обработчик доставки miniShop'а.
Для корректной работы компонента нужен договор с компанией СДЕК. Без него вы не сможете получить логин и пароль для интеграции. Так же понадобится ключ для API Яндекс.Карт (JavaScript API и HTTP Геокодер). Все эти данные, а так же некоторые другие необходимо указать в системных настройках компонента.
Без нюансов, конечно, не обошлось. На тестовом сайте в какой-то момент карта стала загружаться очень долго. Проанализировав ситуацию, я пришёл к выводу, что у СДЭК'а есть личная неприязнь к моему хостеру (hostland.ru). Впрочем их ТП подтвердила наличие проблемы с картами, но так же сказали, что сроков решения они не знают.
В целом, JS компонента загружается как модуль, сам виджет и карта загружаются отдельно, после загрузки всей страницы, чтобы не блокировать отрисовку контента.
Компонент платный, потому что, несмотря на внешнюю простоту, у виджета напрочь отсутствует API, поэтому для интеграции пришлось проявить немалую изобретательность.
В ближайшем обновлении планирую добавить события для изменения и дополнения логики работы компонента. Так же принимаются ваши пожелания по доработкам и улучшениям.
Ссылка на компонент
Ссылка на тестовый сайт
Спасибо за внимание!
Поблагодарить автора
Отправить деньги
Комментарии: 22
тестовый сайт что-то не аллё, не могу выбрать никакой способ доставки, radio заблокированы
На тестовом сайте в какой-то момент карта стала загружаться очень долго. Проанализировав ситуацию, я пришёл к выводу, что у СДЭК'а есть личная неприязнь к моему хостеру (hostland.ru).
очень долго — это ну не знаю, 5 или 15 секунд
я по приколу подождал около 2х минут, ничего не произошло, тестовый сайт не работает. ни уведомлений, ни предупреждений — тишина…
для платного компонента презентация не очень) я раньше покупал и использовал ms_CDEK2, было интересно сравнить, но не судьба похоже
я по приколу подождал около 2х минут, ничего не произошло, тестовый сайт не работает. ни уведомлений, ни предупреждений — тишина…
для платного компонента презентация не очень) я раньше покупал и использовал ms_CDEK2, было интересно сравнить, но не судьба похоже
Да, хотелось бы пощупать. На демо сайте не работает.
Плотно приходилось работать с ms_CDEK2 — и не совсем понял про главное отличие.
В ms_CDEK2 точно также необходим логин и пароль для интеграции к их API для рассчетов.
Там идет запрос к api.cdek.ru/v2/ для рассчета стоимости и затем сохраняет в сессию для вывода в корзине результата.
У ms_CDEK2 есть свои нюансы и проблемы, поэтому реально заинтересован в аналогичном, но более стабильном и продуманном решении, но пока по описанию абсолютно не понятно в чем разница.
Еще есть проблема с автокомплитом города, ну там комплексная проблема минишопа github.com/modx-pro/miniShop2/issues/879
Плотно приходилось работать с ms_CDEK2 — и не совсем понял про главное отличие.
В ms_CDEK2 точно также необходим логин и пароль для интеграции к их API для рассчетов.
Там идет запрос к api.cdek.ru/v2/ для рассчета стоимости и затем сохраняет в сессию для вывода в корзине результата.
У ms_CDEK2 есть свои нюансы и проблемы, поэтому реально заинтересован в аналогичном, но более стабильном и продуманном решении, но пока по описанию абсолютно не понятно в чем разница.
На тестовом сайте в какой-то момент карта стала загружаться очень долго. Проанализировав ситуацию, я пришёл к выводу, что у СДЭК'а есть личная неприязнь к моему хостеру (hostland.ru).Со СДЭКом давно борюсь, у них много бывает приколов, например в черную пятницу через раз грузился их виджет с точками ПВЗ, так как их сервера были перегружены и валились с 500 ошибкой. Это сама их поддержка подтвердила потом. Пришлось кэшировать на своей стороне и обновлять раз в несколько часов весь список ПВЗ.
Еще есть проблема с автокомплитом города, ну там комплексная проблема минишопа github.com/modx-pro/miniShop2/issues/879
Развернул демо на другом хостинге
Спасибо, посмотрел. Расскажите, пожалуйста, как разработчик, чем же все же принципиально отличается ваше решение?
Пока навскидку это просто виджет widget.cdek.ru с обвязкой. Причём на мой вкус и взгляд, новая версия виджета СДЭК, которая используется у вас более глючная и тормозная, чем предыдущая, но надо признать она активно допиливается сейчас.
Пока болячки все те же:
1) массовая установка полей при выборе ПВЗ, из-за чего происходит перезаписывание и иногда некоторые поля затираются или не ставятся
2) отсутствует адекватный автокомплит у поля город, у ms_CDEK2 он есть — но тоже к нему есть вопросы, т.к. выбор города в поле на карте — долго думает и не совсем логичный способ для посетителей, они путаются и не понимают, где вводить город. Часто несколько доставок в магазине используется и поэтому выбор города должен быть где-то в одном месте, а не так, что для почты РФ в однм месте, для СДЭК на карте.
Не подумайте, что я хейчу как-то — это просто наболевшее для меня) Правда хочется получить адекватное, удобное решение. Надеюсь, вы продолжите дорабатывать и получится хороший конкурентный пакет.
Пока навскидку это просто виджет widget.cdek.ru с обвязкой. Причём на мой вкус и взгляд, новая версия виджета СДЭК, которая используется у вас более глючная и тормозная, чем предыдущая, но надо признать она активно допиливается сейчас.
Пока болячки все те же:
1) массовая установка полей при выборе ПВЗ, из-за чего происходит перезаписывание и иногда некоторые поля затираются или не ставятся
2) отсутствует адекватный автокомплит у поля город, у ms_CDEK2 он есть — но тоже к нему есть вопросы, т.к. выбор города в поле на карте — долго думает и не совсем логичный способ для посетителей, они путаются и не понимают, где вводить город. Часто несколько доставок в магазине используется и поэтому выбор города должен быть где-то в одном месте, а не так, что для почты РФ в однм месте, для СДЭК на карте.
Не подумайте, что я хейчу как-то — это просто наболевшее для меня) Правда хочется получить адекватное, удобное решение. Надеюсь, вы продолжите дорабатывать и получится хороший конкурентный пакет.
Принципиальная разница в том, что компонент работает на том коде, который предоставляет сам СДЭК — да это их виджет с обвязкой.
Что касается заполнения адреса, то по-моему всё логично. Если пользователь выбирает объект на карте, то заполняется адрес этого объекта, если пользователь вводит адрес вручную, то в виджете запускается поиск по введённому значению, т.е. адрес необязательно вводить на карте.
Что касается заполнения адреса, то по-моему всё логично. Если пользователь выбирает объект на карте, то заполняется адрес этого объекта, если пользователь вводит адрес вручную, то в виджете запускается поиск по введённому значению, т.е. адрес необязательно вводить на карте.
Получил баг на тестовом хостине, когда захожу карта постоянно обновляется, на ваш сервер отправляется кучу запросов каждую секунду
Возможно просто не повезло))) Я сейчас на трёх тестовых сайтах посмотрел, которые на разных хостингах, всё работает нормально. Похоже СДЭК карту починил.
Я сейчас тоже посмотрел и глюк на глюке)) Тормозит ужасно всё)) Но, думаю, тут не к вам претензия, а к разработчикам виджета))
Я после вашего комментария тоже посмотрел, они виджет обновили. Так что надо обновление компонента выпускать, что-то работать перестал.
Потому и говорю, что на их стороне полюбому проблема. Сталкивался с прошлой версией, тоже голову сломал себе, в итоге заказчика просто отказался от него))
Артур, добрый день! На счет актуальности CDEK не совсем в курсе, но вот очень не хватает модуля для Яндекс доставки, доставки до ПВЗ, что бы клиент мог выбирать удобный для него пункт самовывоза. Если будет время и желание заняться разработкой данного модуля, то с удовольствием бы купил его.
Думал вы напишите: я бы с удовольствием оплатил разработку))) А так, спасибо за идею.
@Артур Шевченко На тестовом запустил, карта не появилась сама пока не прописал
<div id="cdek-map"></div>
и не сделал вызов <script type="module" src="assets/components/mscdekwidget/js/web/mscdekwidget.js"></script>
. «ID ресурсов для подключения виджета» — в настройках указал, но нет. Теперь другая проблема, выводятся цены в виджете для ИП, но цены для клиента будут больше «Доп. стоимость» в вариантах доставки не дали результата, это настраивается где-то или нет?
Всем привет @Артур Шевченко в виджете СДЕК отображается стоимость доставки например 185р мне нужно, чтобы показывалось 250р, как это реализовать? Через админку минишоп2(Доп. стоимость) не работает и на тестовом сайте при оформлении заказа доставка не плюсуется к общей сумме(
Виджет показывает стоимость рассчитанную самим СДЭКом, там можно что-то поменять только через JS.
Сегодня узнавала в СДЭК, что при наличии договора есть самый дешевый тариф посылка склад-склад — это для юр лиц в договором. И такой же по срокам, но для физ и юр лиц без договора — экспресс склад-склад. Можно его показывать при расчете покупателям — он дороже всегда и даст запас на сопутствующие расходы.
Либо все таки придумать как наценку указывать внутри настроек виджета, так как даже на самый дешевый тариф обычно берем страховку + упаковку и расчет для покупателя уже неверный будет показываться.
Либо все таки придумать как наценку указывать внутри настроек виджета, так как даже на самый дешевый тариф обычно берем страховку + упаковку и расчет для покупателя уже неверный будет показываться.
В системных настройках компонента вы указываете логин и пароль от API и все данные виджет берёт из вашего ЛК СДЭК. Дополнительная стоимость, которую можно указать в настройках минишопа для данного способа доставки рассчитывается отдельно и может быть выведена в виджет, только с помощью костылей на JS.
Сразу же вводит в заблуждение выбор курьером/в пункт как в форме минишопа, так и на карте параллельно.
так не юзерфрендли ни разу
так не юзерфрендли ни разу
И еще не понятно — компонент только считает стоимость доставки или еще и отправляет заказы в ЛК СДЭКа?
Только считает стоимость.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.