1

我正在尝试从 magento 实例中获取所有订单。一天一次,我们抓住所有订单..(有时几千)

额外的东西,这就是我问的更多原因:

我正在使用 ruby​​-on-rails 来获取订单。这涉及将soap调用发送到magento实例。这很容易。
得到响应后,我将其转换为 Hash(树),然后挑选订单的增量 id 并继续使用增量 id 调用 getOrder。

我对现在发生的事情有两个问题,一个是操作问题,一个是宗教问题。获取对列表请求的 XML 响应确实需要很长时间,当您着手将 XML 转换为哈希的工作时,我看到了一个非常缓慢的过程。宗教一点是我只想要 increment_ids 那么为什么我必须为处理/带宽付费以支持一个非常臃肿的响应。

好的,所以问题...有没有办法设置从 Magento 返回的响应,以仅包含特定字段?例如,只有 updated_at 和 increment_id。如果没有,是否还有另一个我不知道的电话,可以只获取 increment_ids 和日期?


编辑
下面是我从 magento 中寻找的示例,但它适用于 ebay。我将此 xml 发送到 ebay,并取回有关该产品的非常具体的信息。它也适用于订单等。我可以说“只有这个”并得到那个。我想从Magento得到同样的结果

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

1 回答 1

1

我创建了一个 ruby​​gem,它以哈希的形式为您提供 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] }

粗略的猜测,但你明白了。你会得到散列数组,之后你可以用它们做你想做的事情。祝你好运!

于 2014-02-28T18:51:19.033 回答