Magento - get price rules from order

后端 未结 4 1192
感动是毒
感动是毒 2020-12-15 01:41

does anyone know how one can get the catalog- and cart price rules from an order?

I know that I can get the discount percentage from an order item via the method

4条回答
  •  离开以前
    2020-12-15 02:32

    Have a look in the sales_flat_order_item table. there is a field called applied_rule_ids which will give you the id of the rule applied to that item. Also you can find out in this table how much discount was applied and the percentage.

    Example

    //The order I want to check
        $order_id = 859;
    
        //Get the list of items for your order
        $items = Mage::getModel('sales/order_item')
        ->getCollection()
        ->addFilter('order_id',array('eq'=>$order_id));
    
        //loop through each item
        foreach($items as $item){
    
            //if the item has not had a rule applied to it skip it
            if($item->getAppliedRuleIds() == '')continue;
    
            /*
            * I cant remember in the database they might be comma separated or space if multiple rules were applied
            * the getAppliedRuleIds() function is the one you want
            */
            foreach(explode(",",$item->getAppliedRuleIds()) as $ruleID){        
    
                //Load the rule object
                $rule = Mage::getModel('catalogrule/rule')->load($ruleID);
    
                // Throw out some information like the rule name what product it was applied to
    
                echo "

    ".$item->getSku()." had rule ".$rule->getName()."(".$item->getAppliedRuleIds().") applied

    "; } }

提交回复
热议问题