我正在使用API V2“salesOrderList
”来接收已放置在Magento中的所有订单的列表。但SOAP响应向我显示错误: -
Item (Mage_Sales_Model_Order) with the same id "1" already exist
我正在使用Magento Enterprise版本1.9.0.0。
查看SQL&在搜索数据库时,我发现对于每个Order,SQL为同一个Order Entity ID提供4条记录;区别仅在于计费和名称字段中。运输区域。此外,查询通过使用两个不同的别名(一个用于计费,另一个用于发货)使用相同的数据库表“sales_flat_order_address
”进行两个左连接。根据我的理解,这应该有效,但这种情况并没有发生。
任何人都可以建议发生什么事情&可以做些什么来从这个错误中恢复?
任何帮助都表示赞赏,并提前致谢。
答案 0 :(得分:1)
粗略地说,Magento正在为您创建订单集并尝试加载所有记录。此集合有一条规则,只允许它为每个ID创建一个订单对象,因此当您的其他对象被加载时,将抛出异常。
左连接可能是问题所在,但很难说是蝙蝠。您可以发布一些关于如何进行API调用的详细信息吗?不正确的连接通常会出现此问题。
编辑:
如果您使用默认代码,我的第一个猜测是数据库中存在错误记录,或者这是升级后的Magento系统,其升级过程中出现了错误。在指向同一数据库的EE版本的干净副本上尝试此操作。如果出现相同的问题,您可能需要在数据库中插入以查找有问题的数据加载的原因。由于您已经有了查询,因此您可能希望将查询的某些部分分开,以查看某个子查询是否返回了太多数据。