Привет,
По логике битрикс одноразовый купон может применяться только к одному товару в корзине, поэтому возникло несколько запросов в ТП на реализацию возможности применять одноразовый купон ко всем товарам в корзине. Такой возможностью обладает только многоразовый купон. Решить задачу можно, превратив многоразовый купон в одноразовый.[spoiler]
Вставляем обработчик в /bitrix/php_interface/init.php. При оформлении заказа компонентом bitrix:sale.order.ajax многоразовый купон, который использовал покупатель, будет деактивирован, т.к. у него проставлена дата последнего использования. Т.е. купон стал одноразовым.
Конец.
По логике битрикс одноразовый купон может применяться только к одному товару в корзине, поэтому возникло несколько запросов в ТП на реализацию возможности применять одноразовый купон ко всем товарам в корзине. Такой возможностью обладает только многоразовый купон. Решить задачу можно, превратив многоразовый купон в одноразовый.[spoiler]
AddEventHandler("sale", "OnSaleComponentOrderOneStepComplete","KillCoupon"); function KillCoupon($ID,$arFields) { CModule::IncludeModule('catalog'); foreach ($_SESSION["CATALOG_USER_COUPONS"] as $coupon): $res=CCatalogDiscountCoupon::GetList(array(),array('COUPON'=>$coupon))->Fetch(); if ($res && $res['DATE_APPLY']) CCatalogDiscountCoupon::Update($res['ID'],Array('ACTIVE'=>'N')); endforeach; } |
Вставляем обработчик в /bitrix/php_interface/init.php. При оформлении заказа компонентом bitrix:sale.order.ajax многоразовый купон, который использовал покупатель, будет деактивирован, т.к. у него проставлена дата последнего использования. Т.е. купон стал одноразовым.
Конец.