应用Magento优惠券代码,我可以将订单状态更新为“处理”吗?

时间:2013-01-28 13:07:17

标签: magento magento-1.7 status coupon

当客户通过优惠券代码部分或全部付款时,订单状态设置为" 待付款"。我们使用第三方订单管理应用程序,该应用程序仅提取状态为" 处理"的订单。

普通订单会自动设置为"处理",所以只有在使用我们遇到问题的优惠券代码时才会这样。

有没有办法自动将订单状态更新为" Processing"当客户使用优惠券代码?

感谢您的帮助

(Magento Community 1.7)

1 个答案:

答案 0 :(得分:0)

我认为这是可能的,但您可能需要将其与创建发票相结合 - 因为优惠券金额涵盖了订单价值,订单是技术支付的。我会创建一个观察者来捕获sales_order_place_after并将其用于以下内容:

$order = $observer->getOrder();
/**
add code to check if the coupon amount covers the order value
*/
$invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice();
$invoice->register();
$invoice->getOrder()->setIsInProcess(true);
$invoice->getOrder()->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true, '', false);
$transactionSave = Mage::getModel('core/resource_transaction')
    ->addObject($invoice)
    ->addObject($invoice->getOrder());
$transactionSave->save();
$invoice->getOrder()->save();