Привет,
По логике битрикс одноразовый купон может применяться только к одному товару в корзине, поэтому возникло несколько запросов в ТП на реализацию возможности применять одноразовый купон ко всем товарам в корзине. Такой возможностью обладает только многоразовый купон. Решить задачу можно, превратив многоразовый купон в одноразовый.[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 многоразовый купон, который использовал покупатель, будет деактивирован, т.к. у него проставлена дата последнего использования. Т.е. купон стал одноразовым.
Конец.