【问题标题】:How to confirm an order in Magento using the SOAP webservice?如何使用 SOAP 网络服务在 Magento 中确认订单?
【发布时间】:2011-10-20 09:29:00
【问题描述】:

我正在尝试使用 Magento 网络服务确认订单。我可以这样暂停订单:

$result = $client->salesOrderHold( $sessionId, $order_id );
echo "Order on Hold: " . $result . "<br>";

或在订单中添加评论,但我找不到用于确认订单的函数。

注意:我的订单是手动确认的,所以我需要使用网络服务来完成。

感谢任何帮助!

【问题讨论】:

  • 我在这里回答了几乎相同的问题 [通过 API 更新订单状态][1] [1]:stackoverflow.com/questions/7819979/…
  • 感谢您的回复。我之前看到过该回复并且已经尝试过......但是当我添加评论时,状态为“已确认”......它会改变......但订单仍然未被识别为“确认”......在Magento中订单列表...订单的状态字段为空,当我打开订单时...我仍然可以看到该订单顶部的“确认”按钮...这意味着 Magento 不认为这是已确认的订单。我使用了“已确认”状态文本...这是用于状态的正确文本吗?
  • 订单完成后状态必须为“完成”
  • 但是,在我确认订单后,订单不会处于“完成”状态。您看,在我们的模型中,订单已收到,然后,我们手动确认,然后,我们将发货并相应地修改订单状态。所以,我不能使用“完成”状态。根据您上面的链接,我试图找出的是我应该用来确认订单的状态文本。你知道我应该使用什么状态吗?

标签: magento soap


【解决方案1】:

从 Magento 1.4.2 版开始,可以自定义订单状态。所以现在,你有两种状态订单的价值。检查此链接以查看可能的情况以及状态和状态之间的区别。 Magento state and status

通过将您的订单设置为“确认”,我不确定您的期望。如果只是显示需要,您可以在后台菜单系统 > 订单状态中创建您的。然后,您可以使用 API 以自定义状态或现有状态添加评论,但不会更改订单状态。如果处于此状态,它将保持“暂停”。

如果你想改变状态而不是状态,你需要扩展模块Mage_Sales的api来允许为订单设置状态。 Magento 默认不提供。正如我评论中提供的链接中所写,您无法编辑订单的状态和状态。 API 的addComment 方法不会改变状态,它只允许改变评论中的状态。您必须基于类Mage_Sales_Model_Order_Api 创建您的方法。自己动手看下面的链接Create a custom API

希望对你有帮助

【讨论】:

  • 感谢您的提示并为我迟到的回复道歉。就在今天,我再次被重新分配到此。我已经使用您之前发送给我的链接成功地 - 确认 - 使用 API 的订单,但不是通过 SOAP。这是代码,希望它可以帮助其他人:$order = Mage::getModel('sales/order')-&gt;loadByIncrementId( $id ); $state = 'processing'; $status = 'Confirmed'; $comment = 'Changing state to Processing and status to Confirmed'; $isCustomerNotified = false; $order-&gt;setState( $state, $status, $comment, $isCustomerNotified ); $order-&gt;save();
猜你喜欢
  • 2013-09-15
  • 1970-01-01
  • 2015-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多