在Magento中设置用于客户的优惠券代码

时间:2013-04-15 20:59:48

标签: magento coupon

我正在将系统与Magento集成。

当我创建订单时,如果我的非Magento系统显示订单确实有优惠券我想将优惠券代码标记为该客户的“已使用”,因此下次他尝试使用时,Magento将知道客户已经使用过它。

我该如何做到这一点?

2 个答案:

答案 0 :(得分:1)

我设法这样做:

 $coupon = mage::getModel('salesrule/coupon')->load($code, 'code');
 $coupon->setTimesUsed($coupon->getTimesUsed()+1);
 $coupon->save();

 $rule = Mage::getModel('salesrule/rule')->load($coupon->getRuleId());
 $rule->setTimesUsed($rule->getTimesUsed()+1);
 $rule->save();


 $couponUsage = Mage::getResourceModel('salesrule/coupon_usage');
 $couponUsage->updateCustomerCouponTimesUsed($customerId,$coupon->getCouponId());

感谢这篇文章: Magento - Single Coupon marked as used when payment pending

答案 1 :(得分:0)

将购物车规则的Uses per Customer设置为1。

---- ---- EDIT

如果您想在代码中应用优惠券,那么您可以执行以下操作:

$coupon_code = "YOUR_CODE";

Mage::getSingleton('checkout/cart')
    ->getQuote()
    ->setCouponCode($coupon_code)
    ->collectTotals()
    ->save();