Как проверить, применяется ли правило цены корзины покупок к котировке


У меня настроено правило корзины покупок, которое применяет скидку, если у товара есть определенный атрибут - код купона отсутствует.

На всем сайте мне просто нужно проверить, применено ли это правило корзины покупок к предложению.

Я пробовал это:

$coupon_code = Mage::getSingleton('checkout/session')->getQuote()->getCouponCode();

Но это не работает; это работает только с кодами купонов, введенными пользователем.

Как бы я проверил, применялось ли такое правило корзины покупок?

Author: denton101, 2015-01-13

1 answers

$appliedRuleIds = Mage::getSingleton('checkout/session')->getQuote()->getAppliedRuleIds();

Это даст вам идентификаторы правил, применяемых к цитате, разделенной запятой.
вы можете превратить их в массив следующим образом:

$appliedRuleIds = explode(',', $appliedRuleIds);

Если вы хотите, чтобы правила применялись в качестве объектов, вы можете сделать это:

//$rules = Mage::getModel('salesrule/rule')->getCollection()->addFieldToFilter('rule_id' => array('in' => $appliedRuleIds));
$rules =  Mage::getModel('salesrule/rule')->getCollection()->addFieldToFilter('rule_id' , array('in' => $appliedRuleIds));

foreach ($rules as $rule) {
    //do something with $rule
}
 26
Author: Marius, 2015-04-03 07:24:04