2490
34.58
35.57
за сайт
- Проверено Modstore
- Бесплатные будущие обновления
- Работа на тестовом и публичном домене
- 12 месяцев тех. поддержки
Внимание, этот компонент несовместим с MODX 3.
ВНИМАНИЕ Не обновляйте компонент, если текущая версия ниже 2.х.х Удалите текущую версию полностью и установите новую.
ВНИМАНИЕ При использовании SendIt 2.4.0+ на странице оформления заказа должен быть хотя один ЛЮБОЙ html-элемент с атрибутом data-si-form
ВНИМАНИЕ Компонент не работает с PHP 8
Данный компонент не реализует функционал отправки заказов в личный кабинет CDEK — только расчёт стоимости!
Требования:
Зависимости:
ВАЖНО
Если вы обновляете компонент ОБЯЗАТЕЛЬНО укажите коды тарифов для используемых способов доставки в описании способа доставки или на вкладке Параметры.
Если вы устанавливаете компонент впервые убедитесь, что коды способов доставки соответствуют вашему договору со СДЭК.
Быстрый старт
После установки компонента ОБЯЗАТЕЛЬНО выполнить первые 6 пунктов из списка ниже:
1. Перейдите в системные настройки и выберите пространство имён ms_cdek2;
2. Установите свои значения в поля с ключами ms_cdek2_login и ms_cdek2_password;
3. Установите индекс отправителя в поле ms_cdek2_sender_index;
4. Убедитесь, что в поле ms_cdek2_deliveries установлены правильные ID способов доставки (door — доставка до двери, pvz — доставка в ПВЗ);
5. Убедитесь, что в поле ms_cdek2_tariffs установлены правильные ID способов доставки и ID тарифов СДЭК (доставка до двери для ИМ тариф 137, доставка в ПВЗ — 136);
6. Установите номер шаблона с формой оформления заказа в поле ms_cdek2_template (чтобы скрипты фронтэнда подключались только на страницах с этим шаблоном);
7. Если используете доставку до ПВЗ, то в чанке с формой оформления заказа добавьте код
8. Для вывода выбранного ПВЗ в письме, добавьте в чанк
Вывод карты со списком ПВЗ
Начиная с версии 2.9.0 поддерживаются два провайдера карт. Выбор задаётся системной настройкой ms_cdek2_map_provider (значения osm по умолчанию или yandex), а ключ хранится в унифицированной
настройке ms_cdek2_map_api_key (нужен только для Яндекса).
К пунктам из быстрого старта выполнить следующие действия:
Вариант 1. OpenStreetMap + Leaflet (по умолчанию, без ключа)
1. Убедитесь, что ms_cdek2_map_provider имеет значение osm (так и стоит после чистой установки).
2. В шаблон с формой оформления заказа вставьте код .
Leaflet и плагин leaflet.markercluster подтягиваются с публичного CDN (cdn.jsdelivr.net) автоматически — никаких дополнительных подключений в шаблоне делать не нужно.
Вариант 2. Яндекс.Карты
1. Получите ключ для JavaScript API и HTTP Геокодер на developer.tech.yandex.ru.
2. В системной настройке ms_cdek2_map_provider укажите yandex.
3. Установите полученный ключ в системную настройку ms_cdek2_map_api_key.
4. В шаблон с формой оформления заказа вставьте код .
ВНИМАНИЕ Если карта Яндекса с ПВЗ не выводится, проверьте настройки ключа в ЛК Яндекса: если есть привязка к домену — уберите, если нет — сделайте. Если это не помогло, попробуйте создать новый
ключ. Также может помочь ограничение по HTTP Referer для домена cdek.ru. Если и это не помогло, пишите в ТП Яндекс.Карт.
Миграция со старых версий
До 2.9.0 ключ Яндекс.Карт хранился в настройке ms_cdek2_yandex_map_api_key. При обновлении пакета значение автоматически переносится в ms_cdek2_map_api_key, а ms_cdek2_map_provider выставляется в
yandex. Если ключа не было — провайдер останется osm. Старая настройка удаляется.
Лицензия OpenStreetMap
Карта в режиме osm рендерится на бесплатных тайлах tile.openstreetmap.org. Согласно лицензии ODbL и OSM Tile Usage Policy, требуется видимое указание авторства данных. В пакетных стилях стандартный
блок атрибуции Leaflet скрыт (для аккуратности UI), поэтому разместите в шаблоне рядом с картой или в подвале страницы текст «© OpenStreetMap contributors». Кроме того, OSM Tile Usage Policy не
рекомендует высоконагруженное коммерческое использование с публичных тайлов — при росте трафика подключите свой кеш/прокси тайлов или платный тайл-сервис.
Подсказки при вводе адрес
К пунктам из быстрого старта выполнить следующие действия:
1. Получить токен в сервисе DaData и установить его в системную настройку с ключом ms_cdek2_dadata_token;
2. Полю, в которое пользователь будет вводить адрес добавить атрибут data-mscdek-suggest-field;
3. В шаблон с формой оформления заказа вставить код
ВНИМАНИЕ При использовании SendIt 2.4.0+ на странице оформления заказа должен быть хотя один ЛЮБОЙ html-элемент с атрибутом data-si-form
ВНИМАНИЕ Компонент не работает с PHP 8
Данный компонент не реализует функционал отправки заказов в личный кабинет CDEK — только расчёт стоимости!
Требования:
- Версия PHP >=7.4
- Версия modx >=2.6
- Версия miniShop2 >=3.0.7
Зависимости:
- miniShop2
- SendIt
- pdoTools
ВАЖНО
Если вы обновляете компонент ОБЯЗАТЕЛЬНО укажите коды тарифов для используемых способов доставки в описании способа доставки или на вкладке Параметры.
Если вы устанавливаете компонент впервые убедитесь, что коды способов доставки соответствуют вашему договору со СДЭК.
Быстрый старт
После установки компонента ОБЯЗАТЕЛЬНО выполнить первые 6 пунктов из списка ниже:
1. Перейдите в системные настройки и выберите пространство имён ms_cdek2;
2. Установите свои значения в поля с ключами ms_cdek2_login и ms_cdek2_password;
3. Установите индекс отправителя в поле ms_cdek2_sender_index;
4. Убедитесь, что в поле ms_cdek2_deliveries установлены правильные ID способов доставки (door — доставка до двери, pvz — доставка в ПВЗ);
5. Убедитесь, что в поле ms_cdek2_tariffs установлены правильные ID способов доставки и ID тарифов СДЭК (доставка до двери для ИМ тариф 137, доставка в ПВЗ — 136);
6. Установите номер шаблона с формой оформления заказа в поле ms_cdek2_template (чтобы скрипты фронтэнда подключались только на страницах с этим шаблоном);
7. Если используете доставку до ПВЗ, то в чанке с формой оформления заказа добавьте код
<div data-mscdek-list></div>Для того, чтобы сработал расчёт стоимости доставки, пользователь должен ввести почтовый индекс.8. Для вывода выбранного ПВЗ в письме, добавьте в чанк
{$address.properties.point}Вывод карты со списком ПВЗ
Начиная с версии 2.9.0 поддерживаются два провайдера карт. Выбор задаётся системной настройкой ms_cdek2_map_provider (значения osm по умолчанию или yandex), а ключ хранится в унифицированной
настройке ms_cdek2_map_api_key (нужен только для Яндекса).
К пунктам из быстрого старта выполнить следующие действия:
Вариант 1. OpenStreetMap + Leaflet (по умолчанию, без ключа)
1. Убедитесь, что ms_cdek2_map_provider имеет значение osm (так и стоит после чистой установки).
2. В шаблон с формой оформления заказа вставьте код .
Leaflet и плагин leaflet.markercluster подтягиваются с публичного CDN (cdn.jsdelivr.net) автоматически — никаких дополнительных подключений в шаблоне делать не нужно.
Вариант 2. Яндекс.Карты
1. Получите ключ для JavaScript API и HTTP Геокодер на developer.tech.yandex.ru.
2. В системной настройке ms_cdek2_map_provider укажите yandex.
3. Установите полученный ключ в системную настройку ms_cdek2_map_api_key.
4. В шаблон с формой оформления заказа вставьте код .
ВНИМАНИЕ Если карта Яндекса с ПВЗ не выводится, проверьте настройки ключа в ЛК Яндекса: если есть привязка к домену — уберите, если нет — сделайте. Если это не помогло, попробуйте создать новый
ключ. Также может помочь ограничение по HTTP Referer для домена cdek.ru. Если и это не помогло, пишите в ТП Яндекс.Карт.
Миграция со старых версий
До 2.9.0 ключ Яндекс.Карт хранился в настройке ms_cdek2_yandex_map_api_key. При обновлении пакета значение автоматически переносится в ms_cdek2_map_api_key, а ms_cdek2_map_provider выставляется в
yandex. Если ключа не было — провайдер останется osm. Старая настройка удаляется.
Лицензия OpenStreetMap
Карта в режиме osm рендерится на бесплатных тайлах tile.openstreetmap.org. Согласно лицензии ODbL и OSM Tile Usage Policy, требуется видимое указание авторства данных. В пакетных стилях стандартный
блок атрибуции Leaflet скрыт (для аккуратности UI), поэтому разместите в шаблоне рядом с картой или в подвале страницы текст «© OpenStreetMap contributors». Кроме того, OSM Tile Usage Policy не
рекомендует высоконагруженное коммерческое использование с публичных тайлов — при росте трафика подключите свой кеш/прокси тайлов или платный тайл-сервис.
Подсказки при вводе адрес
К пунктам из быстрого старта выполнить следующие действия:
1. Получить токен в сервисе DaData и установить его в системную настройку с ключом ms_cdek2_dadata_token;
2. Полю, в которое пользователь будет вводить адрес добавить атрибут data-mscdek-suggest-field;
3. В шаблон с формой оформления заказа вставить код
<ul class="hide" data-mscdek-suggest-list></ul> для вставки подсказок. 2.9.0-pl
- Добавил поддержку OpenStreetMap (Leaflet) в качестве провайдера карт.
- Новые системные настройки: ms_cdek2_map_provider (значения "osm" по умолчанию или "yandex") и ms_cdek2_map_api_key (унифицированный ключ; нужен только для Yandex). Старая настройка ms_cdek2_yandex_map_api_key удалена.
- При обновлении пакета запускается миграция: если в ms_cdek2_yandex_map_api_key был ключ — он переносится в ms_cdek2_map_api_key, а провайдер автоматически выставляется в "yandex"; иначе остаётся "osm". Старая настройка удаляется.
- В webConfig добавлено поле mapProvider; модуль map.js теперь ветвит инициализацию, кластеризацию и маркеры по выбранному провайдеру.
- Для OSM подключаются Leaflet 1.9.4 и leaflet.markercluster 1.5.3 с CDN jsdelivr (без API-ключа).
- Карта корректно поднимается даже если контейнер виден после initMap (например, лениво открываемая модалка): через ResizeObserver на mapBlock автоматически дёргается invalidateSize, тайлы и кластеры пересчитываются под актуальный viewport.
- В response при неудачном расчёте стоимости (mscdek_getstatus → success=false) добавлено поле data.debug с конкретной причиной: tariff_code, отправленный request, ответ CDEK API и, при наличии, api_error из ExternalApi\Base::$lastError. Сообщение пользователю остаётся прежним (ms_cdek2_error), детализация — для разработчика в DevTools/Network.
- Исправил двойную регистрацию ассетов в HTML при повторном срабатывании OnLoadWebDocument в рамках одного request: loadJSCSS теперь идемпотентный через placeholder ms_cdek2_jscss_loaded.
- Для Leaflet поправил CSS-конфликт
.mscdek-cluster { position: relative }(выражение конкретизировано до:not(.leaflet-marker-icon)), из-за которого кластеры визуально съезжали по карте.
2.8.6-pl
- Расширил список полей адреса при сборке to_location для курьерской доставки: теперь в строку адреса попадают building (дом), room (квартира/офис) и metro (ориентир). Поле index убрано из склейки, так как передаётся отдельно в postal_code.
- Добавил fallback в поиске ПВЗ для случая, когда поле города на форме не заполнено, а по введённому индексу СДЭК не возвращает ни одного ПВЗ. Логика трёхуровневая: сначала прямой запрос по postal_code; затем перебор всех city_code, которые СДЭК отдаёт по этому индексу через /v2/location/cities; если и там ничего не нашлось — резолв индекса в название города через DaData с последующим запросом ПВЗ по этому городу. Лечит кейсы вроде 300016 (Тула), к которому в базе СДЭК не привязан ни один ПВЗ и который их API резолвит только в окрестные деревни.
- Добавил скрытие статуса при обновлении суммы заказа.
2.8.5-pl
- Исправил совместимость с PHP 8.0+ при установке пакета (get_parent_class).
2.8.4-pl
- Исправил ошибку при получении свойств товара.
2.8.3-pl
- Вынес получение пункта назначения в отдельный метод.
2.8.2-pl
- Внёс изменения для работы с компонентом cdekIntegrate
2.8.1-pl
- Исправил ошибку при отсутствии ответа от API СДЭКа
- Добавил динамический импорт с версионированием во все JS модули
- Убрал проверку на бота для всех пресетов
- Изменил метод определения версии скриптов
2.8.0-pl
- Добавил новй метод sendRequest() в классе MsCdek2 для отправки запросов
- Добавил системное событие msCdek2OnSendRequest для доступа к ответам от API СДЭКа
2.7.10-pl
- Добавил передачу полной стоимости доставки в чанк вывода статуса.
2.7.9-pl
- Исправил ошибку не срабатывающих системных событий.
2.7.8-pl
- Изменил порядок проверки минимальной суммы до бесплатной доставки.
2.7.7-pl
- Исправил ошибку получения размеров не из стандартного поля size.
2.7.6-pl
- Добавил ещё один способ расчёта количества пакетов (ms_cdek2_packages_calc_type - 5): вес равен сумме весов товаров, а размеры из системных настроек.
2.7.5-pl
- Добавил возможность передавать код страны с фронта без использования ДаДата.
- Добавил системную настройку ms_cdek2_use_individual_weight для использования индивидуальных весов в калькуляторе.
- Изменил порядок расчёта доп.стоимости доставки: теперь можно указать доп.стоимость в процентах от рассчитанной стоимости доставки; если стоимость доставки не рассчитана, то и доп.стоимость не будет учтена.
2.7.4-pl
- Добавил обновление стоимости заказа при факапе с индексом.
2.7.3-pl
- Исправил ошибку при отсутствии поля country.
- Сделал добавление индекса перед проверкой статуса доставки, на случай, когда в поле индекс введён, а на сервере в данных заказа его нет.
2.7.2-pl
- Вынес в конфиг js шаблон для кластера на карте и стили перенёс в файл стилей.
- Сделал так, чтобы не удалялось введенное значение в поле адреса.
- Добавил проверку существования поля point в методе сортировки списка ПВЗ.
- Добавил поиск ПВЗ по городу: если ПВЗ не найдены по индексу, то будет произведён поиск по городу.
- Переписал параметры расчёта стоимости доставки: теперь в запрос передаются все данные адреса, но приоритет остался за индексом.
2.7.1-pl
- Исправил ошибку вставки значения в поле города, если населенный пункт не является городом.
2.7.0-pl
- Добавил пятый способ расчёта количества пакетов (ms_cdek2_packages_calc_type_desc = 4), при котором количество вообще не рассчитывается а берётся один пакет с размерами и весом из системных настроек.
2.6.2-pl
- Исправил ошибку в методе сортировки ПВЗ.
- Добавил в стили для блока карты ширину 100%;
2.6.1-pl
- Исправил расчёт размеров пакета для вариантов, учитывающих количество.
2.6.0-pl
- Добавил возможность тонкой настройки расчёта количества пакетов.
2.5.0-pl
- Добавил учёт дополнительной стоимости из настроек способа доставки.
- Сделал так, чтобы индекс был получен даже если не указан дом, а только улица.
- Добавил системную настройку для ms_cdek2_point_value_field_name для возможности изменить передаваемое в заказ значение адреса ПВЗ.
- Добавил расчёт дистанции по прямой до ПВЗ.
- Добавил событие msCdek2OnResetStatus.
- Добавил сохранение информации о выбранном ПВЗ в properties адреса доставки (msOrderAddress)
2.4.6-pl
- Исправил баг с установкой параметров для SendIt.
2.4.5-pl
- Поменял тип поля системной настройки sender_country.
- Добавил смену версий скриптов и стилей при обновлении компонента.
2.4.4-pl
- Добавил запуск расчёта стоимости при изменении страны.
2.4.3-pl
- Добавил возможность указывать несколько способов доставки требующих получения списка ПВЗ.
2.4.2-pl
- Добавил учёт количества каждого товара при расчёте веса и габаритов.
2.4.1-pl
- Bug-fix.
2.4.0-pl
- Доработал систему JavaScript событий.
- Связал список и карту.
- Добавил чанки для элемента списка подсказок и для статуса.
- Перенёс пресеты в файл.
2.3.1-pl
- Избавился от зависимости от компонента msDeliveryProps.
2.3.0-pl
- Добавил js событие mscdek:address:select:suggestion.
2.2.2-pl
- Добавил явные размеры маркеру ПВЗ на карте.
- Добавил возможность выводить подсказки по разным странам.
2.2.1-pl
- Добавил определение страны получателя в сервисе ДаДата.
2.2.0-pl
- Зачистил компонент от устаревших файлов и настроек
- Переписал JS и PHP код.
- Подключил автодополнения от DaData.
2.2.0-beta4
- Исправил значение системной настройки ms_cdek2_main_css_path.
- Добавил проверку существования родительского блока в JS.
- Добавил проверку на наличие поля с именем city для подключения автодополнений.
2.2.0-beta3
- Исправил ошибку с изменением значения способа доставки.
2.2.0-beta
- Переписан JS код, jQuery больше не требуется.
- Автокомплит отключить нельзя, так как требуется обязательное получение кода города от сервиса СДЭК.
- Для автодополнений используется самописный плагин.
- Можно указать пути к своим стилям в системных настройках.
- В JS появились события 'mscdek:init', 'mscdek:status:before', 'mscdek:status:after'.
2.1.2-pl
- Совместимость с miniShop2-4.x.x
2.1.1-pl
- Добавлен Content-type к запросу API
2.1.0-pl
- Реализована совместимость с компонентом cdekIntegrate
2.0.31-pl
- Задержка отображения стоимости доставки, чтобы индекс успел сохраниться (фикс ПВЗ)
2.0.30-pl
- Исправлена калькуляция при дробном количестве
- Выбор кода города по приоритету
- Исправлена калькуляция при изменении города
2.0.29-pl
- Добавлен timeout на случай недоступности сервера CDEK
- Добавлен location по умолчанию, если не удалось определить по индексу
2.0.28-pl
- Определение точного индекса пункта выдачи
2.0.27-pl
- Автодополнение от CDEK - выбор самого первого индекса из списка
2.0.26-pl
- Исправлено отображение лексикона для поля mscdek_size
2.0.25-pl
- Добавлена системная настройка для указания URL servicepath для виджета
2.0.24-pl
- Исправлено неверное отображение веса корзины.
2.0.23-pl
- Исправлено отображение пустой ошибки, если метод CDEK стоит первым.
2.0.22-pl
- Добавлено заполнение региона и индекса при выборе ПВЗ для корректного рассчёта.
2.0.21-pl
- Добавлена проверка на пустую корзину.
2.0.20-pl
- Код города теперь всегда будет запрашиваться через боевой URL API.
2.0.19-pl
- Исправлен рассчёт веса отправления.
2.0.18-pl
- Исправлено определение кода города в случае, если в ответе несколько городов.
2.0.17-pl
- Запрос GET отправляется строкой вместо массива (исправление empty location_to).
2.0.16-pl
- Добавлен ID пункта выдачи.
2.0.15-pl
- Вес товаров округляется для соответствия требованиям API (вес должен быть целым числом).
2.0.14-pl
- Изменён приоритет выбора места назначения. Теперь сначала проверяется индекс.
2.0.13-pl
- Добавлена обработка ошибок
2.0.12-pl
- Исправление рассчёта минимальной стоимости тарифа
2.0.11-pl
- Исправление учёта тарифа для методов с ПВЗ
2.0.10-pl
- При обновлении с версии 1.х.х правильно копируем индекс отправителя
2.0.9-pl
- По умолчанию добавлено обязательное поле point при выборе доставки до ПВЗ
2.0.8-pl
- Выбор конкретного тарифа на вкладке "Параметры" у каждого метода доставки
2.0.7-pl
- Исправление рассчёта с учётом добавочной стоимости доставки
2.0.6-pl
- Автоматическое добавление блока [div id="ms_cdek2_map"]
2.0.5-pl
- Добавлена проверка на существование [div id="ms_cdek2_map"]
2.0.4-pl
- Возвращена модель для расширения адреса полем с пунктом выдачи
2.0.3-pl
- Добавлена настройка для окрругления стоимости доставки
2.0.2-pl
- Скролл к стоимости доставки после выбора пункта выдачи
2.0.1-pl
- Фикс рассчёта с добавочной стоимостью
2.0.0-pl
- Компонент переписан с нуля
1.2.4-beta
- Добавлена возможность учета габаритов корзины [setting_cdek_allow_size]
- Добавлена возможность учета веса в граммах [setting_cdek_weight]
- Исправлена ошибка со статусом СДЭК
- Теперь если индекс не заполнен при выборе города сдэк пытается подставить индекс самостоятельно
- Повышена стабильность Front-end части
- Совместимость с msRussianPost3
1.2.3-beta
- Добавлена настройка которая позволяет отключить учитывание стоимости доставки в конечной цене корзины [php]
- Статус доставки больше не пишется при цене корзины 0 [php]
1.2.2-beta
- Добавлена обработка клика по балуну карты [js]
- Исправлено получение id доставки в хандлере доставки [php]
1.2.1-beta
- Исправлена ошибка с выбором города возникающая в браузере Safari (PC) [js]
- Исправлен вывод пунктов самовывоза если выбранном городе только один пункт [php]
1.2.0-beta
- Добавлен сниппет вывода пунктов доставки
- Улучшен установщик, если вы еще не настраивали компонент "под себя" рекомендую удалить старую версию и установить новую с нуля (это вовсе не обязательно, но универсальность будет лучше)
- Улучшен js - код
- Компонент добавляет новое поле в msOrderAdress
- Более подробный анонс изменений смотрите на modx.pro
1.1.1-beta
- Исправлен перерасчет при выборе города мышкой
- Добавлена настройка которая позволяет отключить спам в лог пользовательских ошибок (cdek_debug)
- Добавлена поддержка html тегов оформления ошибки
1.1.0-beta
- Значительно изменен front-end код дополнения
- Больше не сбрасывает метод доставки при изменении полей
- Уведомляет пользователя при обновлении цены доставки
- Производит расчет даже если страница была обновлена
- Улучшена совместимость с другими методами доставки
- Компонент теперь даже не инициализируется если метод доставки выбран НЕ сдэк
- Расчет не запускается если не заполнено ни одно из полей (индекс или город)
- Подготовка к следующему глобальному обновлению
1.0.3-beta
- Интегрирована защита от пиратских версий
- Изменения front-end части кода
1.0.2-beta
- Исправление расчета дополнительной цены
1.0.1-beta
- Небольшие исправления
1.0.0-beta
- Первый релиз



Последние обсуждения в сообществе MODX.pro