Алексей

Алексей

С нами с 23 мая 2018; Место в рейтинге пользователей: #815
14 сентября 2018, 14:45
0
Такая же проблема, пытаюсь вывести алиас родителя [[#[[ParentItem? &parent=`[[+id]]`]].alias]], все работает. Но в консоль падают ошибки core/model/modx/modparser.class.php: 540) Could not find snippet with name #14.alias
12 сентября 2018, 15:00
0
В некоторых случаях он мне выдает вот такое значение 18384.600000000002, поэтому не знаю надо ли вам так. А копейки выставляются в системных настройках минишоп, там есть формат цен
12 сентября 2018, 14:04
0
К сожалению вопрос не решил.
31 июля 2018, 15:44
0
Подскажите пожалуйста, а как настроить modextra, что бы событие плагина при установке было отмечено? Т.е. сейчас создается плагин все прописано как надо, но не отмечены системные события на срабатывание.
31 июля 2018, 11:47
0
Установите UpgradeModx. Переходите на страницу со сниппетом, которая очень любезно сама создается. Останется выбрать версию и нажать несколько раз далее.
24 мая 2018, 20:48
0
Проблему решил, добавил переменную в SESSION
function getSessionPrice(cdekPrice) {

				$.ajax({
			        type: "POST",
			        url: "/assets/components/customDelivery/session.php",
			        data: "cdekPrice=" + cdekPrice,
			        success: function(res) {
			          console.log(res);
			          console.log(cdekPrice);
			        }
			    });

}

<?php
//Инициализируем api modx, чтобы иметь доступ к нужной нам сессии в пространстве modx, иначе мы просто не достучимся до нее в нашем скрипте
define('MODX_API_MODE', true);
require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/index.php';
$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget('FILE');
//проверяем действительно ли это AJAX запрос, иначе редиректим на главную
if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {
  	$modx->sendRedirect($modx->makeUrl($modx->getOption('site_start'),'','','full'));
}
//пишем в сессию
session_start();
$_SESSION['cdekPrice'] = $_POST['cdekPrice'];
//возвращаем записанные данные для отладки (необязательно)
echo $_SESSION['cdekPrice'];
?>

<?php
//проверяем на отсутствие классов и инициализируем классы msdeliveryhandler, CalculatePriceDeliveryCdek
if(!class_exists('msDeliveryInterface')) {
    require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/minishop2/model/minishop2/msdeliveryhandler.class.php';
}


class msDeliveryHandlerCDEK extends msDeliveryHandler implements msDeliveryInterface {
    
    public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0) {


        $cdekPrice = $_SESSION['cdekPrice'];
        $fullcost = intval($cost)  + intval($cdekPrice);

        return $fullcost;

        
    }
} 
?>
В самой корзине пересчитывает только при условии переключении доставки, не разобрался как вызывать событие автоматом. Сделаю на js во фронтэнде. В остальном все пересчитывается, заказу передается нужная стоимость доставки.