msOnAddToCart срабатывает только при первом добавление товара, как исправить?
        Нужно чтобы при добавлении товара если больше опред суммы, то снижал цену товара, и стоимость корзины.
Код который тестил
    
    
                                                                                
            Код который тестил
<?php
switch ($modx->event->name) {
    case 'msOnAddToCart':
        $res = $modx->getObject('modResource', 1);
        $defaultOptPrice = (int)$res->getTVValue('opt_price__default');
        
        $crt = $cart->get();
        $modx->log(modX::LOG_LEVEL_ERROR, '
 =:>' . print_r($crt));
        foreach($crt as $crtItem ){
            $currentGoods = $modx->getObject('modResource', (int)$crtItem['id']);
            $currentGoodsOptPrice = (int)$currentGoods->getTVValue('opt_price');
            if(((int)$crtItem['price'] * (int)$crtItem['count']) >= $defaultOptPrice){
                $crtItem['price'] = $currentGoodsOptPrice;
            }
            
        }
        $cart->set($crt);
        break;
        
        
}Кстати код выше так же не меняет результат корзины.    Комментарии: 4
                Так же пытался с msOnBeforeAddToCart, но там корзина меняется но постоянно только 1 товар, хотя он уже по счету 10й.            
                    
                Спасибо всем, обновился, сделал так
                    switch ($modx->event->name) {
    case 'msOnAddToCart':
        $res = $modx->getObject('modResource', 1);
        $defaultOptPrice = (int)$res->getTVValue('opt_price__default');
        
        $crt = $cart->get();
        $currentGoods = $modx->getObject('modResource', (int)$crt[$key]['id']);
        $currentGoodsOptPrice = (int)$currentGoods->getTVValue('opt_price');
        if(((int)$crt[$key]['price'] * (int)$crt[$key]['count']) >= $defaultOptPrice){
            
            $crt[$key]['old_price'] =  $crt[$key]['price'];
            $crt[$key]['price'] = $currentGoodsOptPrice;
            $crt[$key]['discount_price'] = $currentGoodsOptPrice;
            
            
        }
        $cart->set($crt);
        break;
 
}            
                Потому что когда ты добавляешь второй раз тот же товар то срабатывает msOnChangeInCart            
                    
                странно, добавлял один и тот же товар 10 раз, и плагин все равно работает как нужно.            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.