Ребята, помогите, всю документацию перелопатили, решения нет, а нужно срочно. Готов за деньги дать доработать компонент, но нужно решение как говорится здесь и сейчас.
Есть стандартный компонент корзины. Есть купон
При вводе купона в корзину должен автоматически добавляться товар.
При удалении купона из корзины товар также должен удаляться автоматически.
Сейчас подвешиваюсь на пересчет и сохранение корзины
Main\EventManager::getInstance()->addEventHandler(
'sale',
'OnSaleBasketSaved',
['cartGift', 'giftUpdateItem']
);
Сам обработчик купона в этой же функции
$coupon="nameOfCoupon";
$getCoupon = \Bitrix\Sale\DiscountCouponsManager::getData($coupon, true);
if ($getCoupon['ACTIVE'] == "Y") {
//проверяем, если товара в корзине нет, добавляем
if (!$item = $basket->getExistsItem('catalog', 990)) {
$item = $basket->createItem('catalog', 990);
$item->setFields(array(
'QUANTITY' => 1,
'NAME' => 'Набор пробников',
'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(),
'LID' => \Bitrix\Main\Context::getCurrent()->getSite(),
'PRICE' => "0",
'CUSTOM_PRICE' => 'Y',
));
}
}else{
//купон неактивен, проверяю, есть ли товар в корзине, и если да, то его удаляю
if ($item = $basket->getExistsItem('catalog', 990)) {
$item->delete();
}
}
после применения купона товар добавляется и удаляется из корзины, только если принудительно нажать кнопку пересчета корзины (обновить количество товара)
А как сделать так, чтобы товар автоматически сразу добавлялся в корзину?
И как сделать чтобы удалялся, если удаляется купон?
Есть стандартный компонент корзины. Есть купон
При вводе купона в корзину должен автоматически добавляться товар.
При удалении купона из корзины товар также должен удаляться автоматически.
Сейчас подвешиваюсь на пересчет и сохранение корзины
Main\EventManager::getInstance()->addEventHandler(
'sale',
'OnSaleBasketSaved',
['cartGift', 'giftUpdateItem']
);
Сам обработчик купона в этой же функции
$coupon="nameOfCoupon";
$getCoupon = \Bitrix\Sale\DiscountCouponsManager::getData($coupon, true);
if ($getCoupon['ACTIVE'] == "Y") {
//проверяем, если товара в корзине нет, добавляем
if (!$item = $basket->getExistsItem('catalog', 990)) {
$item = $basket->createItem('catalog', 990);
$item->setFields(array(
'QUANTITY' => 1,
'NAME' => 'Набор пробников',
'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(),
'LID' => \Bitrix\Main\Context::getCurrent()->getSite(),
'PRICE' => "0",
'CUSTOM_PRICE' => 'Y',
));
}
}else{
//купон неактивен, проверяю, есть ли товар в корзине, и если да, то его удаляю
if ($item = $basket->getExistsItem('catalog', 990)) {
$item->delete();
}
}
после применения купона товар добавляется и удаляется из корзины, только если принудительно нажать кнопку пересчета корзины (обновить количество товара)
А как сделать так, чтобы товар автоматически сразу добавлялся в корзину?
И как сделать чтобы удалялся, если удаляется купон?