плагин корзины
как при заказе товара, сделать: общая цена за товара = цена за товар * на поле 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;
}
Комментарии: 5
Я, конечно, не 100% знаток MODx, но вы говорите о корзине, а плагин пишете для заказа.
Документация по корзине
Документация по корзине
ой, ошибся, мне для заказ нужно, сейчас исправлю
Ну в принципе должно все работать. Попробуйте вывести в лог $orderArray перед сетом. Может что-то не то приходит?
[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/
Смотрите что вот тут:
$orderArray = $order->get();
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.