Расчет стоимости доставки - модификация.
Действительно для новых пакетов — msDellin2, msKit, msPec — где используется стороннее api для расчета стоимости доставки.
Для модификации будем использовать плагин на событие msDellinOnAfterRequest, для других пакетов есть подобные события с одноименными названиями.
Пример плагина ниже
Возникла ситуация когда город отправления == городу доставки, в таком случае большинство ТК — выдают ошибку расчета и как следствие сниппет расчета стоимости доставки продукта выдает — нет доставки. Понятно что это некрасиво и пугает покупателя. Вот для такого случая хотелось бы модифицировать цену и время доставки.
Создадим плагин на событие msDellinOnAfterRequest, в нем получим опции запроса и при условии когда город отправления == городу доставки поставим свою цену и время доставки.
Спасибо за внимание!)
Для модификации будем использовать плагин на событие msDellinOnAfterRequest, для других пакетов есть подобные события с одноименными названиями.
Пример плагина ниже
Возникла ситуация когда город отправления == городу доставки, в таком случае большинство ТК — выдают ошибку расчета и как следствие сниппет расчета стоимости доставки продукта выдает — нет доставки. Понятно что это некрасиво и пугает покупателя. Вот для такого случая хотелось бы модифицировать цену и время доставки.
Создадим плагин на событие msDellinOnAfterRequest, в нем получим опции запроса и при условии когда город отправления == городу доставки поставим свою цену и время доставки.
<?php
switch ($modx->event->name) {
case 'msDellinOnAfterRequest':
$mode = $modx->getOption('mode', $scriptProperties, array(), true);
$params = $modx->getOption('params', $scriptProperties, array(), true);
$result = $modx->getOption('result', $scriptProperties, array(), true);
$derivalPoint = $modx->getOption('derivalPoint', $params);
$arrivalPoint = $modx->getOption('arrivalPoint', $params);
/* set delivery default */
if (
$mode == 'public/calculator'
AND
$derivalPoint == $arrivalPoint
) {
$result['delivery'] = array(
'delivery_cost' => 200,
'delivery_time' => 1,
'delivery_info' => ''
);
$modx->event->returnedValues['result'] = $result;
}
break;
}
Таким образом можно влиять на расчетную стоимость доставки согласно вашим хотелкам.Спасибо за внимание!)
Поблагодарить автора
Отправить деньги