我们将Magento EE 1.13.0.2与PayPal网站付款标准付款方式一起使用。不幸的是,无法在后端为PayPal付费订单设置订单状态。
当订单已成功付款(而非部分付款)时,我们需要设置自定义订单状态。修改PayPal订单状态的教程似乎已经过时,错误或丑陋。
根据我的收集:
- 付款更新将由PayPal IPN处理。
- 有一种方法
Mage_Paypal_Model_Ipn::_registerPaymentCapture()
负责“处理完成的付款(全部或部分)”。 - 在
Mage_Paypal_Model_Ipn::_registerTransaction()
对PayPal的请求中进行分析,并将付款状态与进行比较Mage_Paypal_Model_Info::PAYMENTSTATUS_COMPLETED
。
老实说,我不确定如何处理此信息。我可能会重写Mage_Paypal_Model_Ipn::_registerTransaction()
并只添加我的代码:
// paid
case Mage_Paypal_Model_Info::PAYMENTSTATUS_COMPLETED:
$this->_registerPaymentCapture(true);
// my code here
break;
当然,事件观察者(例如订单或订单状态事件之一)会好得多,但是我不确定在通过PayPal完全支付订单时是否存在100%可靠的方式来捕获一次事件。
有任何想法吗?
更新资料
我们选择修改订单状态流程,而无需再修改状态。如果有人想回答这个问题,我将开放一段时间。