Обошлось без парсинга ["CONDITIONS"] и ["APPLICATION"], сравниваю ID товаров с ID из массива с правилами корзины таким образом:
Код |
---|
AddEventHandler("sale", "OnSaleCalculateOrderDiscount", "Check_basket_discount_rules");
function Check_basket_discount_rules(&$arOrder) {
foreach ($arOrder["BASKET_ITEMS"] as &$arItem) {
foreach ($arOrder["DISCOUNT_LIST"] as $discRuleKey => $arDiscountRule) {
foreach ($arDiscountRule["RESULT"]["BASKET"] as $discItemKey => $arDiscountItem) {
if ($arItem["ID"] == $arDiscountItem["BASKET_ID"]) {
$arItem["ACTUAL_DISCOUNT_NAME"] = $arDiscountRule["NAME"];
}
}
}
}
return;
}
|
Вроде работает корректно! Предлагайте свои варианты!