非常感谢Magento 1.4.1.1中有关此错误的任何想法。我想知道为什么会这样,但Magento 1.4.0和Magento 1.3.2.4工作正常。
错误是由于使用“order_created_at过滤器访问Magento销售货件列表API而引起的。此过滤器在以前的版本中有效,但在此版本中失败。
我想知道为什么会发生这种情况。
另请参阅Magento Issue以供参考:http://www.magentocommerce.com/bug-tracking/issue/?issue=9556有一些请求发送到Magento webservice的详细信息。
以下是实际要求:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:salesOrderShipmentList soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:Magento">
<sessionId xsi:type="xsd:string">bbb778755d046129c1c5df1cf4f0b119</sessionId>
<filters href="#id0"/>
</ns1:salesOrderShipmentList>
<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:filters" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="urn:Magento">
<filter xsi:type="ns2:associativeEntity" xsi:nil="true"/>
<complex_filter soapenc:arrayType="ns2:complexFilter[1]" xsi:type="soapenc:Array">
<complex_filter href="#id1"/>
</complex_filter>
</multiRef>
<multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:complexFilter" xmlns:ns3="urn:Magento" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<key xsi:type="xsd:string">order_created_at</key>
<value href="#id2"/>
</multiRef>
<multiRef id="id2" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns4:associativeEntity" xmlns:ns4="urn:Magento" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<key xsi:type="xsd:string">gt</key>
<value xsi:type="xsd:string">2010-07-08</value>
</multiRef>
</soapenv:Body>
</soapenv:Envelope>
以下是回复: SQLSTATE [42S22]:未找到列:1054'where子句'中的未知列'order_created_at'
答案 0 :(得分:0)
列名是 created_at 而不是order_created_at。 (至少在我的DB :) :)
答案 1 :(得分:0)
事实上,在最新的1.4.1.1 SE和1.8.0企业版中,出货的“order_created_at”过滤器已被破坏(至少使用SOAP API),而它在以前的版本中有效。
解决方法是对货件使用“created_at”过滤器,这将比同期更多的货物发货,但由于货物创建时间总是在订单创建时间之后 - 所以你可以安全地获得所有货物。在指定的创建时间之后创建的订单发货。
如果某人需要更精确的货件清单,该清单与在给定时间后创建的所有订单相关,那么使用“created_at”过滤器下载的货件可以进一步过滤,尽管这也将假设下载订单列表。不久,可以在客户端进一步过滤出货。