我正在将系统与Magento集成。
当我创建订单时,如果我的非Magento系统显示订单确实有优惠券我想将优惠券代码标记为该客户的“已使用”,因此下次他尝试使用时,Magento将知道客户已经使用过它。
我该如何做到这一点?
答案 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();