2010-08-12 47 views
0

會理解這個錯誤任何想法在Magento 1.4.1.1。我不知道爲什麼會發生這種情況,但Magento 1.4.0和Magento 1.3.2.4正常工作。Magento的色譜柱:未知列「order_created_at」訪問銷售出貨API時

錯誤是由訪問Magento的銷售出貨列表API與「order_created_at過濾器引起的,這種過濾器在以前的版本中工作,但與此版本的失敗。

我不知道爲什麼這可能發生。

另請參閱參考Magento的問題:http://www.magentocommerce.com/bug-tracking/issue/?issue=9556有請求發送到Web服務Magento的一些細節

下面是實際的要求:

<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未知列 'order_created_at' 在 'where子句'

+0

包括客戶端代碼設置你的肥皂連接,並撥打電話將是有益的。大多數Magento問題都是通過調試來解決的,而不是一組收集到的共享知識。 – 2010-08-12 16:59:50

回答

0

事實是,出貨量「order_created_at」過濾器壞了(至少使用SOAP API)在最新的1.4.1.1 SE和1.8.0企業版,而它的工作中之前的版本。

解決方法是在出貨時使用「created_at」過濾器,這將在同一時間段內給出比預期更多的額外出貨量,但由於出貨創建時間始終在訂單創建時間之後進行 - 因此您將可以獲得所有在指定創建時間之後創建的訂單的裝運。

如果有人需要更精確的出貨量與創建發出後的時間,然後用「created_at」過濾器下載的出貨量可進一步過濾所有訂單列表,雖然這將承擔下載訂單名單。不久之後,出貨可以在客戶端進一步過濾。

0

列名是created_at不order_created_at。 (至少在我的DB :))

+0

對不起,我正在討論裝運清單而不是訂單清單。所以發貨實際上有一個order_created_at加入屬性,它在1.4.0和1.3.2.4中有效。我已更新問題 – Vladimir 2010-08-12 19:32:24

+0

@Vladimir:我明白了。好吧,似乎magento開發人員遲遲沒有做好自己的工作...... 1.4.1.0中充滿了令人討厭的bug,而下一個小版本應該解決它們,但似乎他們引入了新問題以及這些修復: ( – silvo 2010-08-13 10:40:17

+0

是的,我也看了論壇主題有關最近的更新和修復我甚至安裝了PHP IDE試圖解決的bug我自己,儘管它需要一些學習曲線 - 所以我們現在有解決辦法 - 見我的回答如下 - 我可以暫停我們正在考慮要求我們的客戶將magento版本降級爲工作版本,但在某些情況下尤其如此,企業版本1.8.0很難 - 爲此我甚至找不到更多信息,即使客戶支付12000美元/年: - ) – Vladimir 2010-08-13 13:28:14