плагин корзины

как при заказе товара, сделать: общая цена за товара = цена за товар * на поле sod товара
switch ($modx->event->name) {
     case 'msOnBeforeAddToOrder': case 'msOnAddToOrder':
        $orderArray = $order->get(); 
        foreach ($orderArray as &$orderProduct) {
            if ($product = $modx->getObject('msProduct', $orderProduct['id'])) { 
            $count = $orderProduct['count'];
                if ($count > 0){
                    if ($product->get('sod') > 0){
                    $tv = $product->get('price') * $product->get('sod');
                    }
                    else { $tv = $product->get('price');}
                    $pr =  $tv;
                }
                $orderProduct['cost'] =  $pr;
            }
        }
        $order->set($orderArray);
        break;
}
Максим
19 февраля 2018, 18:57
modx.pro
1 218
0

Комментарии: 5

Максим
20 февраля 2018, 11:57
0
Я, конечно, не 100% знаток MODx, но вы говорите о корзине, а плагин пишете для заказа.
Документация по корзине
    Максим
    20 февраля 2018, 12:27
    0
    ой, ошибся, мне для заказ нужно, сейчас исправлю
      Максим
      21 февраля 2018, 13:51
      0
      Ну в принципе должно все работать. Попробуйте вывести в лог $orderArray перед сетом. Может что-то не то приходит?
        Максим
        21 февраля 2018, 14:46
        0
        [2018-02-21 14:45:31] (ERROR @ /var/www/u0459941/data/www/cloverflower.ru/core/components/minishop2/model/minishop2/msorderhandler.class.php : 381) PHP warning: Invalid argument supplied for foreach()
        [2018-02-21 14:45:33] (ERROR @ /var/www/u0459941/data/www/cloverflower.ru/core/xpdo/xpdo.class.php : 644) Could not load class: msoptionsprice from msoptionsprice.msoptionsprice.
        [2018-02-21 14:45:33] (ERROR @ /var/www/u0459941/data/www/cloverflower.ru/core/xpdo/xpdo.class.php : 1247) Problem getting service msoptionsprice.msoptionsprice, instance of class msoptionsprice.msoptionsprice, from path /var/www/u0459941/data/www/cloverflower.ru/core/components/msoptionsprice/model/
          Максим
          22 февраля 2018, 22:37
          +1
          Смотрите что вот тут:
          $orderArray = $order->get();
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    5