2013-05-08 14 views
1

我試圖從一個magento實例獲取所有訂單。每天一次,我們抓住所有的訂單。(有時幾千個)Magento SalesOrderList ...是否有一個這樣的重量版本,或者一種方法來減少返回的值

額外的東西,更重要的是,爲什麼我問:

我使用的Ruby-on-軌道搶訂單。這涉及將soap調用發送到magento實例。這很容易。
一旦我有了迴應,我將它轉換成哈希(樹),然後挑出訂單的增量id,然後繼續用增量id調用getOrder。

我對現在發生了什麼事情,一個正在運作的和一個宗教有兩個問題。 將XML響應抓取到列表請求需要很長時間,並且當您將XML轉換爲散列所涉及的工作時,我看到一個非常緩慢的過程。 宗教位是我只想要increment_ids所以爲什麼我必須支付處理/帶寬來支持巨大的反應。

好吧所以這個問題... 有沒有辦法設置從Magento返回的響應,只包含特定的字段?例如只有updated_at和increment_id。 如果沒有,是否還有另一個電話我不知道,可以得到increment_ids和日期?


編輯
下面是什麼,我希望從Magento的一個例子,但它是易趣。我把這個xml發送到ebay,並且找回關於產品的真正特定信息。它適用於訂單等。我可以說「只有這個」,並得到這一點。我想的一樣,從 Magento的

<GetItemRequest xmlns="urn:ebay:apis:eBLBaseComponents"> 
<SKU>b123-332</SKU><OutputSelector>ItemId</OutputSelector>   
</GetItemRequest> 
+0

你在這裏問了很多:)如果你可以用控制器設置一個小模塊,你可以這樣做:http://pastebin.com/dg36cs4m – butterbrot 2013-05-08 07:28:29

+0

其實我只想要一個小東西..一個XML (soap)字符串,我可以發送一個更小的xml返回。完全語言不可知論者。 – baash05 2013-05-09 01:35:50

回答

1

我創建了一個rubygem,讓你在哈希的表格salesOrderList響應,你可以做你想做的與您的訂單已經收到後他們返回(即選擇你想要的字段,包括increment_id)。只要運行

gem install magento_api_wrapper 

做你想做的事,你會做這樣的事情:

api = MagentoApiWrapper::Sales.new(magento_url: "yourmagentostore.com/index.php", magento_username: "soap_api_username", magento_api_key: "userkey123") 

orders = api.order_list(simple_filters: [{key: "status" value: "complete"}]) 

orders.map {|o| [o.increment_id, o.items.first.sku] } 

粗略的估計,但你的想法。你會得到一連串的哈希值,然後你可以用它來做你想要的。祝你好運!

+1

爲了使網站保持最新狀態,我們被要求從網站發佈重要信息,而不是僅僅共享鏈接。即使在其他網站關閉後,這也有助於網站的有用性。 – Thom 2014-02-28 19:12:37

+0

Thom,我編輯刪除鏈接,我想這就是你所指的? – harrisjb 2014-02-28 19:17:52

+0

是的。鏈接很好,你不需要刪除它。這只是將相關部分複製到答案中的SO方式,以便在鏈接消失後它可以有用。 – Thom 2014-02-28 19:19:22

相關問題