Расчет стоимости доставки - модификация.
        Действительно для новых пакетов — 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;
}Таким образом можно влиять на расчетную стоимость доставки согласно вашим хотелкам.Спасибо за внимание!)
            
                Поблагодарить автора            
            
                 Отправить деньги            
        
        
            
        0