Да, в консоли есть переменная $modx, а в процессоре такой переменной нет, есть только $this->modx
Да вы правы синтаксис во всем виноват
if( $order_id = $this->modx->basket->getActiveOrderID() and $basket = $this->modx->getObject('Order', $order_id) ){ foreach($basket->OrderProducts as $OrderProduct){ $OrderProduct->quantity = 0; $OrderProduct->save(); } }
Самое что интересное в консоли то работает
Ничего больше не подскажу. Может синтаксическая ошибка, может еще что-то. Выделяйте 1000 рублей — залезу, допилю. А так экстрасенсорные ресурсы закончились.
Вообще я об этом и спрашивал как бы, именно так и хотел сделать, но почему то не сработало
Так вообще не добавляет товар в корзину )
Комментирование этой строчки не решает проблему более одного товара в корзине. Тут надо более комплексно подходить. Самое простое решение вот сюда прописать такое:
if( $order_id = $modx->basket->getActiveOrderID() and $basket = $modx->getObject('Order', $order_id); ){ foreach($basket->OrderProducts as $OrderProduct){ $OrderProduct->quantity = 0; $OrderProduct->save(); } }
Таким образом у вас будет выполняться сброс всех товаров в корзине, и добавляться только один добавляемый.
А тут строчку не надо комментировать, иначе не обновится сброшенный товар, сделайте как я написал.
Проблему с количеством решал комментирование строчки в add процессоре
// Плюсуем общее количество данного товара в этом заказе
/*$this->setProperty('quantity', $this->getProperty('quantity') + $object->get('quantity')); */
Спасибо Николай. Нет имею ввиду вообще товар как сам по себе, не только количество. В корзине должен быть всегда один товар в целом
Привет.
1. Все зависит от того как у вас реализован вывод этих ссылок, если каждая ссылка ресурс modx то сделайте тв-ку типа чекбокс, а в шаблоне вывода проверяйте значение
2. Тут тоже вопрос интересный — кому ссылка должна быть недоступна?, только одному или всем, если к примеру кто-то перешел. Если одному, то можно запомнить в кэше, но опять же если чел кэш почистит в браузере или с другого зайдет, то это не решение проблемы )