【问题标题】:How to stop order processing of same order once if order status is canceled in Magento?如果在 Magento 中取消订单状态,如何停止处理同一订单的订单?
【发布时间】:2016-05-02 10:44:38
【问题描述】:

订单取消后如何停止处理同一订单? 我正在使用贝宝付款方式,如果我从贝宝网关取消订单(取消并返回),则在从贝宝下订单时,它将订单状态设置为已取消并重定向到购物车页面,但如果我再次按下浏览器返回按钮,然后将我重定向回paypal支付网关页面,支付成功完成。我的订单状态历史显示为Pending PaymentCanceledOrder处理中准备交付

我怎样才能阻止这种情况?

我尝试使用事件和观察者更新订单状态,但我仍然无法停止此处理。

$order = $observer->getEvent()->getPayment()->getOrder();
$order=Mage::getModel('sales/order')->load($order->getEntityId());
$order->setState(Mage_Sales_Model_Order::STATE_CANCELED, true);
$order->setStatus("canceled");
$order->save();

【问题讨论】:

  • 我在 WooCommerce for Wordpress 遇到了完全相同的问题

标签: magento


【解决方案1】:

我认为你状态的问题是改变但状态没有改变试试下面的代码..

              $order->setData('state', Mage_Sales_Model_Order::STATE_CANCELED); 
              $order->setStatus("canceled");
              $history = $order->addStatusHistoryComment('', false);
              $history->setIsCustomerNotified(false);
              $order->save(); 

【讨论】:

  • 状态正在改变,甚至我的状态也在改变,但又是它的处理过程。我的历史状态显示为“待付款”、“已取消”、“已取消”(这是从我的事件观察者文件中更新的)“订单处理”、“准备交付”
  • 请禁用您的缓存并再次检查
  • 他们还有其他办法吗?
  • 你在做什么?
  • 添加这个$order->setActionFlag(Mage_Sales_Model_Order::ACTION_FLAG_CANCEL, true);
猜你喜欢
  • 2015-09-08
  • 1970-01-01
  • 2014-10-21
  • 1970-01-01
  • 2013-02-26
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 2015-02-17
相关资源
最近更新 更多