- Проверено Modstore
- Бесплатные будущие обновления
- Работа на тестовом и публичном домене
- 12 месяцев тех. поддержки
Возможности
- Рассчитывать стоимость доставки, с учетом веса заказа и стоимости всех товаров.
- Просмотр все отделений “Новая Почта” на карте Google в определенном городе с возможностью выбрать нужное.
- Создание/редактирование в автоматическом/ручном режиме товарно транспортной накладной (ТТН) она же
экспресс-накладная на отделение и на почтамт «Новая почта»
Типы доставки:
от отделения до отделения,
от отделения до адреса.
Видео-обзор
Видео устарело и не отражает весь функционал дополнения!
Настройка
После того как вы установили пакет необходимо зайти в его настройки и указать первым делом API ключ «Новая почта» который можно получить согласно
инструкции.
После того как вы указали API ключ «Новая почта» необходимо нахать на кнопку «Сохранить» и только после этого продолжить настраивать остальные параметры.
Также крайне желательно получить свой ключ для API Google Maps, а не использовать который установлен по умолчанию т.к количество запросов в рамках одного ключа к сервису Google Maps ограничено.
ВАЖНО! Созданные через ваш магазин ТТН могут редактироваться только в нем же т/е на сайте «Новая почта» их отредактировать нельзя.
Cниппеты
msNovaPoshta.Order — расчет стоимости доставки и выбора отделения.
Параметры:
elements — cписок сниппетов через запятую, которые нужно запустить. По умолчанию msOrder,
tpl — Чанк оформления. По умолчанию msNovaPoshta.order,
theme — Название темы (js и css скрипты которые будут подключены на фронтенде). По умолчанию default,
zoom — Zoom для карты Google. По умолчанию 12
Cниппет msNovaPoshta.Order является ничем иным как оберткой, выполняет необходимые действия, данные выставляет в плейсходеры, затем запускает поочередно сниппеты из списка elements. Последним необходимо указать родной сниппет msOrder.
Пример вызова
[[!msNovaPoshta.Order]]
msNovaPoshta.Tracking — трекинг посылки.
Параметры:
order — ID заказа,
number — Номер товарно транспортной накладной, если задан order number не обязателен или если задан number то order не обязателен.
tpl — Чанк оформления. По умолчанию msNovaPoshta.tracking, В переменной чанка data доступна вся информация ответа на запрос к API
События
msnpOnGetDeliveryCost — расчет стоимости доставки:
np — экземпляр класса дополнения
cost — стоимость заказанных товаров
weight — общий вес заказанных товаров
deliveryCost — стоимость доставки
deliveryId — id способа доставки
citySender — код города отправителя
cityRecipient — код города получателя
serviceType — тип услуги
cargoType — значение из справочника Тип груза: Cargo, Documents, TiresWheels, Pallet
Пример плагина:
switch ($modx->event->name) {
case 'msnpOnGetDeliveryCost':
if($cost > 1000) { // если стоимость заказанных товаров больше 1000 Гр. делаем доставку бесплатной
$modx->event->returnedValues['deliveryCost'] = 0;
}
break;
}
msnpOnBeforeSaveTTN — срабатывает перед сохранением ТТН:
mode — может принимать значение либо new (новая ТТН), либо upd (редактирование ТТН)
order — объект msOrder
msnovaposhta — объект MsNovaPoshta
data — массив исходных данных
params — массив подготовленных данных для запроса к API
Пример плагина изменения объявленной стоимости для новой ТТН:
switch ($modx->event->name) {
case 'msnpOnBeforeSaveTTN':
if($mode != 'new') return;
//$modx->log(modX::LOG_LEVEL_ERROR,print_r($data,1));
//$modx->log(modX::LOG_LEVEL_ERROR,print_r($params,1));
$params['Cost'] = $params['Cost'] + 100;
$modx->event->returnedValues['params'] = $params;
break;
}
msnpOnSaveTTN — срабатывает после сохранения ТТН:
mode — new|upd
order — объект msOrder
msnovaposhta — объект MsNovaPoshta
data — массив исходных данных
params — массив подготовленных данных для запроса к API
result — массив данных ответа запроса к API
Пример плагина отправки номера ТТН покупателю:
switch ($modx->event->name) {
case 'msnpOnSaveTTN':
if($mode != 'new') return;
$email = $order->getOne('UserProfile')->get('email');
//$receiver = $order->getOne('Address')->get('receiver');
if($email) {
$num = $order->get('num');
$subject = "Номер экспресс-накладной для заказа №{$num}";
$message = "Стоимость: {$result['CostOnSite']}; Прогноз даты доставки: {$result['EstimatedDeliveryDate']}; Номер экспресс-накладной: <a href=\"https://novaposhta.ua/tracking/?cargo_number={$result['IntDocNumber']}\" target=\"_blank\">{$result['IntDocNumber']}</a>";
$msnovaposhta->sendEmail($email, $subject, $message);
}
break;
}
FAQ
Q: Каким образом передавать данные о доставке менеджеру в письме?
A: В чанк tpl.msEmail.new.manager добавить код
{if $properties.msnovaposhta.area? }<strong>Область:</strong> {$properties.msnovaposhta.area}{/if}
{if $properties.msnovaposhta.city? }<strong>Город:</strong> {$properties.msnovaposhta.city}{/if}
{if $properties.msnovaposhta.warehouse? }<strong>Отделение:</strong> {$properties.msnovaposhta.warehouse.Description}{/if}
{if $properties.msnovaposhta.number_ttn? }<strong>Номер ТТН:</strong> {$properties.msnovaposhta.number_ttn}{/if}
[2.3.3-pl] - 2024-09-3
Добавлено
- Опции:
- "Прогреть кэш городов";
- "Загружать сразу все города";
- "Загружать сразу все улицы города";
- "Загружать сразу все отделения города";
- У сниппета msNovaPoshta.Order параметр "fuseOptions"
- Скрипт для "прогревки" кэша: core/components/msnovaposhta/scripts/cache_warmup.php
Изменено
- Чанк "msNovaPoshta.order"
[2.2.1-pl] - 2024-03-27
Добавлено
- Учет при расчете стоимости доставки опции "Бесплатная доставка от суммы заказа"
Исправлено
- Отсутствие стоимости доставки при первом выборе отделения
[2.2.0-pl] - 2023-04-06
Добавлено
- Системная опция "Параметр груза для каждого места отправки" (msnovaposhta.default_options_seat).
Исправлено
- Применение опции: "Добавлять стоимость доставки"
- Создание ТТН
[2.1.2-pl] - 2023-02-27
Исправлено
- Ошибка "Call to undefined method MsNovaPoshta::getDeliveryCost()"
- Ошибка 'Fatal error: require_once(): Failed opening required /model/minishop2/msdeliveryhandler.class.php' в miniShop2 >= 3.0.0-pl
[2.1.1-pl] - 2023-01-15
Исправлено
- Баг закрытия списка в Safari
[2.1.0-pl] - 2022-07-21
Изменено
- Чанк "msNovaPoshta.order"
- Кэш компонента отделен от основного кэша сайта
- Стандартные списки на списки с возможностью поиска в стилистике Bootstrap 5
Добавлено
- Лексикон "uk"
- Опция "msnovaposhta.cache_time" (время жизни кэша компонента, по умолчанию 30 дней)
- На странице настройки компонента кнопка очистки кэша
- Выбор отделения на карте
- Поиск ближайшего отделения на карте
- Поиск области по названию
- Поиск города по названию
- Поиск улицы по названию
- Поиск отделения по его номеру или названию улицы его расположения
Улучшено
- Скорость работы
- Работа с картой отделений
Удалено
- jQuery зависимость
Последние обсуждения в сообществе MODX.pro