Magento-从订单获取价格规则 [英] Magento - get price rules from order

查看:102
本文介绍了Magento-从订单获取价格规则的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人知道如何从订单中获得商品目录和购物车价格规则吗?

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

我知道我可以通过方法getDiscountPercent()从订单商品中获得折扣百分比,但是如何获得应用于整个订单的所有规则?

I know that I can get the discount percentage from an order item via the method getDiscountPercent(), but how can I get all the rules that were applied to the whole order?

例如,我有一条规则:客户X组从商店中的所有商品中获得20%的折扣".

For example, I have a rule "Customer Group X gets 20% off all items in the store".

现在,我想确定当用户提交订单时实际应用了哪些规则.我需要此用于订单导出界面,在其中我必须提供用户获得的所有折扣.

Now I want to determine which rules were actually applied when the order has been submitted by the user. I need this for an order export interface where I have to supply all discounts that the user got.

提前谢谢!

推荐答案

sales_flat_order_item表中查看.有一个名为applied_rule_ids的字段,该字段将为您提供应用于该项目的规则的ID.您也可以在此表中找到应用了多少折扣和百分比.

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.

示例

//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 "<p>".$item->getSku()." had rule ".$rule->getName()."(".$item->getAppliedRuleIds().") applied </p>";
        }

    }

这篇关于Magento-从订单获取价格规则的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆