magentomagento-1.4magento-1.5magento-1.6

Magento - get rule from coupon code


I have to retrieve the rule associated to a coupon code in order to display in quote the discount percentage of that rule. the simplest way is to calculate directly from quote amounts, but i want to retrieve directly the rule and then get the discount percentage from it.

this is what i tried:

 $rule = Mage::getModel('salesrule/coupon');
 $rule->load($couponCode);

by this way i still havent retrieved rules attributes. any help?

thanks.


Solution

  • To load a coupon by code, pass 'code' as 2nd param to load(). Then you can get the proper rule instance by using the rule_id value of your coupon instance:

    $oCoupon = Mage::getModel('salesrule/coupon')->load($couponCode, 'code');
    $oRule = Mage::getModel('salesrule/rule')->load($oCoupon->getRuleId());
    var_dump($oRule->getData());