1

我正在将系统与 Magento 集成。

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

我怎样才能做到这一点?

4

2 回答 2

2

我设法这样做:

 $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 - 待付款时标记为已使用的单张优惠券

于 2013-04-16T16:51:12.733 回答
0

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

- - 编辑 - -

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

$coupon_code = "YOUR_CODE";

Mage::getSingleton('checkout/cart')
    ->getQuote()
    ->setCouponCode($coupon_code)
    ->collectTotals()
    ->save();
于 2013-04-15T21:25:01.863 回答