Алексей

Алексей

С нами с 23 мая 2018; Место в рейтинге пользователей: #844
Алексей
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 во фронтэнде. В остальном все пересчитывается, заказу передается нужная стоимость доставки.