Появилась потребность, у одного из заказчиков, сделать добавление услуги к товару без зависимости от кол-ва основного товара в корзине.
Скажем товара в корзине 5 шт. а услуга одна или иного кол-ва.
С логикой работы экшенов работы с корзиной (shopFrontendCartAdd, shopFrontendCartDelet и т.п.) все ясно - под замену.
Хелперы, вроде: {$wa->shop->cart()} так же, нужно переписать новые.
А как сделать обработчик события order_create ? Можно ли игнорировать зависимость услуги от кол-ва основного товара в других системных классах?
Мне тоже интересно это реализовать.
К примеру человек заказывает 100 листовок, а услугой заказывает дизайн. Так вот 100 раз платить за дизайн глупо.
https://gyazo.com/9d2b189911c2e5b118215b9e7b2cff40 - технически это возможно. На скрине результат работы плагина, который добавляет текущее содержимое корзины в уже созданный заказ. И там вышел такой вот баг, который решено было считать не багом, а правильным подходом :)
Если в двух словах, то придется отредактировать заказ после его создания. Как-то так:
В методе recalculateServices() изменить 'quantity' у нужных услуг на 1. Но это только касаемо уже созданного заказа. Во фронте выкручиваться костылями придется.
Евгений
Такой вариант уже рассматривался. Уведомления о заказе улетают раньше, чем он будет отредактирован.
Вроде никто не запрещает удалять стандартное уведомление при создании(настройки - уведомления). Вместо него можно создать своё событие для уведомления и уже для него...
Добрый день! Кто-нибудь знает, как отредактировать /wa-apps/shop/lib/actions/frontend/shopFrontendCartAdd.controller.php, чтобы услуга засчитывалась только единожды?
Отвечаю сам себе, правил /wa-apps/shop/lib/classes/shopCart.class.php
А именно заменил на $s['quantity'] = $item['quantity']; на $s['quantity'] = 1; - пока что этот костыль меня полностью устраивает, т.к. у меня только одна услуга, и она не увеличивается с количеством товаров.