我正在将系统与 Magento 集成。
当我创建订单时,如果我的非 Magento 系统指示该订单确实有优惠券,我想将优惠券代码标记为该客户的“已使用”,这样下次他尝试使用它时,Magento 就会知道该客户已经用过了。
我怎样才能做到这一点?
我设法这样做:
$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 - 待付款时标记为已使用的单张优惠券
将购物车规则设置Uses per Customer
为 1。
- - 编辑 - -
如果您想在代码中应用优惠券,则可以执行以下操作:
$coupon_code = "YOUR_CODE";
Mage::getSingleton('checkout/cart')
->getQuote()
->setCouponCode($coupon_code)
->collectTotals()
->save();