3

MagentoのAPIを使用してRailsアプリにこのコードを使用しています。1つを除いてすべて問題ありません。MagentoAPIの引数で製品をフィルタリングする必要がありますが、方法がわかりません:(

明らかに、私はより多くのソリューション(配列、ハッシュなど)でテストしましたが、失敗しました。

Pd:申し訳ありませんが、私の英語は非常に限られています

リンク

4

3 に答える 3

3

これは非常に遅いことはわかっていますが、他の誰かがこのスレッドを見つけた場合は、Magento SOAPAPIv2のフィルターを実装するmagento_api_wrappergemを作成しました。ここでコードを見つけることができます:https ://github.com/harrisjb/magento_api_wrapper

要約すると、Magento SOAP APIの単純なフィルターの1つを使用する場合は、キーと値を使用してハッシュを渡すことができます。

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

api.product_list(simple_filters: [{key: "status", value: "processing"}, {key: created_at, value: "12/10/2013 12:00" }])

また、複雑なフィルターを使用するには、キー、演算子、および値を含むハッシュを渡します。

api.product_list(complex_filters: [{key: "status", operator: "eq", value: ["processing", "completed"]}, {key: created_at, operator: "from", value: "12/10/2013" }])
于 2014-02-28T18:44:47.500 に答える
3

これをSavonで機能させるために何年も費やしました-Web上に実際の解決策はありません。SOAP呼び出しに行って調べたところ、:itemがありませんでした

params = {:filter => {:item => {:key => "status", :value => "closed"}}}

result = client.call(:sales_order_list, message: { session_id: session_id, filters: params})

これにより、ステータスがクローズされた注文のみが返されます。

于 2016-03-22T22:14:50.217 に答える
1

MagentoとRailsでの作業を検討している場合は、Gemgentoが必要な場合があります。MagentoのフロントエンドをRoRに置き換えます。

http://www.gemgento.com

Magentoと同期した後Gemgento::Product.filter、いくつかのスコープとともにこのメソッドを使用して、MagentoのEAV構造を簡単に検索できます。

attribute = Gemgento::Attribute.find_by(code: 'color')
Gemgento::Product.filter({ attribute: attribute, value: 'red' })

フィルタメソッドは、実際にはあらゆる種類の配列/ハッシュコンボを使用できます

filters = [
   { attribute: [attribute1, attribute2], value: %w[red yellow black] },
   { attribute: size_attribute, value: 'L' }
]
Gemgento::Product.filter(filters)
于 2014-07-07T20:55:33.737 に答える