Magento - 从优惠券代码获取规则

时间:2012-05-10 10:06:25

标签: magento magento-1.4 magento-1.5 magento-1.6

我必须检索与优惠券代码相关联的规则,以便在报价中显示该规则的折扣百分比。 最简单的方法是直接从报价金额计算,但我想直接检索规则,然后从中获得折扣百分比。

这是我试过的:

 $rule = Mage::getModel('salesrule/coupon');
 $rule->load($couponCode);
通过这种方式,我仍然没有检索规则属性。有什么帮助吗?

感谢。

3 个答案:

答案 0 :(得分:30)

要按代码加载优惠券,请将'code'作为第二个参数传递给load()。然后,您可以使用优惠券实例的rule_id值来获取正确的规则实例:

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

答案 1 :(得分:3)

首先获取优惠券代码

$orderNumber = 100000105; //order number with coupon code

$order = Mage::getModel('sales/order')->loadByIncrementId($orderNumber);

$orderDetails = $order->getData();

$couponCode = $orderDetails['coupon_code'];

然后使用JürgenThelen的解决方案。

答案 2 :(得分:0)

可能此解决方案将帮助您通过优惠券代码获得优惠券金额。

$ couponCode =' 您的COUPONCODE ';

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

$ oRule = Mage :: getModel(' salesrule / rule') - > load($ oCoupon-> getRuleId());

的print_r($ oRule->的getData());出口();