如何在magento退款时更改订单状态?

Nee*_*arg 7 paypal magento paypal-ipn magento-1.7

我正在研究Magento 1.7版本.我下了订单并使用Paypal付款并离线退款.订单状态发生以下变化: -

  1. 待付款
  2. 发票#100000001已创建
  3. 处理(IPN"已完成".有关已捕获金额1英镑的已注册通知.交易ID:"0CT123456789874521".)
  4. 处理(关于发票#100000001的通知客户.)
  5. 贷记凭证#100000001已创建
  6. 处理(退还金额1英镑离线.)
  7. 处理(IPN"退款".注意:可退款的最高金额为0.00英镑)
  8. 处理(测试订单已退款.)

订单状态仍显示处理但应完成.

小智 6

在Magento中,只有在您为其创建发票和发货后,订单才会标记为完成.为订单创建贷记凭证时,它将被标记为已关闭.

如果您尝试使用该setStatus方法直接将订单设置为完成或关闭,则会出现例外情况:订单状态"完成"不得手动设置.同样,这些状态应由Magento自动设置.

话虽这么说,如果你真的想手动设置它们,你可以像这样绕过它:

$order->setData('state', 'complete');
$order->setStatus('complete');
$history = $order->addStatusHistoryComment('Manually set order to Complete.', false);
$history->setIsCustomerNotified(false);
$order->save();
Run Code Online (Sandbox Code Playgroud)

您可以查看此stackoverflow线程以获取更多信息.