Компонент предназначен для:
- интеграции вариантов доставки, настройенных в сервисе
eShopLogistic в Minishop2 (далее MS2);
- приёма заказов от виджетов eShopLogistic.
Для работы компонента для товаров вашего магазина должен быть указан вес.
В противном случае вес каждого товара будет принят равным 1 кг.
Чанки компонента рассчитаны на работу c pdoTools и шаблонизатором fenom.
Необходима стандартная настройка нужных вам способов доставки в разделе «Пакеты / miniShop2 / Настройки».
Включите нужный вариант, активируйте нужные способы оплаты. Можно добавить логотип (варианты идут с компонентом в папке assets/components/eshoplogistic/logos/)
Возможна ситуация, когда ни одного варианта доставки от eShopLogistic не будет получено
(например в указанный населённый пункт просто никто не доставвляет или
в данный момент по каким-то причинам система расчёта доставок будет недоступна).
Для такого случая рекомендуем создать отдельный способ доставки и указать его затем в системной настройке «Способ доставки по-умолчанию». Например такой:
Настройка | Описание |
---|---|
Ключ API eShopLogistic | Обязательно. Доступен после регистрации в сервисе и необходимой минимальной настройки в панели управления. Документация |
Способ доставки по-умолчанию | Укажите id варианта доставки по умолчанию, для случая, если не получено расчётных вариантов от сервисе eShopLogistic. |
Учитывать способ оплаты | Укажите «Да», если при расчёте стоимости доставки в ваших корректирующих правилах учитывается способ оплаты. В противном случае настройка должна быть выключена для снижения нагрузки, т.к. нет необходимости отслеживать способ оплаты. Что такое правила, смотрите в документации. |
Методы оплаты MS2, ассоциируемые с типами: «Оплата картой», «Оплата наличными», «Безналичный расчёт» |
Для каждой службы доставки у вас могут быть настроены свои способы оплаты,
кроме того в системе eShopLogistic способы оплаты имеют свою кодировку, которую нужно связать с идентификаторами способов оплаты на вашем сайте. Указать id методов, через запятую. |
Секретные коды виджетов | Укажите секретные коды виджетов, от которых вы хотите принимать заказы на данном сайте. В настройках виджета необходимо указать обработчик заказа: https://site.ru/assets/components/eshoplogistic/action.php. См. в документации: «Настройки виджета» -> «Корзина/Заказ», параметр «Скрипт обработки заказа». Документация. |
Сообщения при успешном создании заказа / ошибке | Если настроен приём заказов от виджета, то данные сообщения будут показаны при соответствующем результате. |
Префикс номера заказа | Добавляется к номеру заказа MS2. |
СSS-файл для фронта |
Файл css, который будет подключён в корзине сайта при включении модуля. В случае необходимости внесения изменений в данный файл, создайте новый файл и укажите его здесь. Иначе при обновлении ваши изменения будут затёрты. |
JS-файл для фронта |
Файл js, который будет подключён в корзине сайта при включении модуля. В случае необходимости внесения изменений в данный файл, создайте новый файл и укажите его здесь. Иначе при обновлении ваши изменения будут затёрты. |
Время жизни кэша данных доставок, часы | Для снижения количества обращений к сервису eShopLogistic (есть тарифицированные лимиты), укажите возможно большее время кэширования, чтобы одинаковые запросы не запрашивались повторно. Рекомендуется 3-8 часов. |
eslOrderHandler
{'eShopLogisticInit' | snippet}
tpl.eShopLogistic.order
, и чтобы ваша вёрстка не была затёрта при обновлении.esl-
.{'!msOrder' | snippet : ['tpl' => 'eShopLogistic.order']}
Если на вашем сайте работает какая-либо система определения местополождения,
то для автоматического включения населённого пункта в расчёт доставки
можно добавить в запуск сниппета eShopLogisticOrder
параметры (на выбор):
fias (ФИАС-код населённого пункта) или city (название населённого пункта).
Например: {set $services = '!eShopLogisticOrder' | snippet : ['fias' => $fias]}
.
Если fias/city не указаны, то населённый пункт будет определён сервисом eShopLogistic автоматически по IP посетителя.
Для максимально верного расчёта стоимости доставки большинство служб требует указания габаритов груза. Соответственно, желательно учитывать габариты товаров.
1) Если у товаров вашего магазина не указаны габариты в упаковке, можно воспользоваться параметром «Стандартная коробка / стандартный вес» в настройках службы доставки личного кабинета сервиса eShopLogistic.
2) Если у товаров вашего магазина указаны габариты в упаковке, то их необходимо добавить в объект корзины MS2.
Т.к. стандартных полей под габариты MS2 не имеет, очевидно, что данные у вас содержатся либо в полях объекта msProductData, либо
в свойствах товара (объект msProductOption).
Проще всего добавить габариты можно с помощью плагина на событие msOnAddToCart
:
switch ($modx->event->name) {
case 'msOnAddToCart':
$tmp = $cart->get();
/**
* Например, габариты у нас в dimensions_packing объекта msProductData.
* Формат значения dimensions Д*Ш*В, в сантиметрах
*/
if($product = $modx->getObject('msProductData', $tmp[$key]['id'])) {
$tmp[$key]['dimensions'] = $product->get('dimensions_packing');
$cart->set($tmp);
}
break;
}
В словарях для параметров, содержащих eshoplogistic_frontend_
можно указать нужное вам значение, вместо штатного.
Для параметров, содержащих eshoplogistic_frontend_service_
можно использовать placeholder «services».
Например: Курьер до адреса [[+service]]
Если вдруг работа компонента или сервиса eShopLogistic вас перестала устраивать.
Чтобы ваш сайт при этом не постардал, я рекомендую делать так:
Смысл в том, чтобы если нужно - просто переключить шаблон страницы оформления заказа и процесс оформления заказа пойдёт по ветке без компонента.
Чтобы «отфильтровать» способы доставки ваши от способов доставки, которые установит компонент,
можно использовать проверку на наличие класса eslHandler
:
{foreach $deliveries as $delivery}
{if $delivery.class == 'eslHandler'} {continue} {/if}
//some code
{foreach}
В таком случае даже выключать не нужные способы доставки экстренно не потребуется.