MagentoのAPIを使用してRailsアプリにこのコードを使用しています。1つを除いてすべて問題ありません。MagentoAPIの引数で製品をフィルタリングする必要がありますが、方法がわかりません:(
明らかに、私はより多くのソリューション(配列、ハッシュなど)でテストしましたが、失敗しました。
Pd:申し訳ありませんが、私の英語は非常に限られています
リンク
MagentoのAPIを使用してRailsアプリにこのコードを使用しています。1つを除いてすべて問題ありません。MagentoAPIの引数で製品をフィルタリングする必要がありますが、方法がわかりません:(
明らかに、私はより多くのソリューション(配列、ハッシュなど)でテストしましたが、失敗しました。
Pd:申し訳ありませんが、私の英語は非常に限られています
リンク
これは非常に遅いことはわかっていますが、他の誰かがこのスレッドを見つけた場合は、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" }])
これをSavonで機能させるために何年も費やしました-Web上に実際の解決策はありません。SOAP呼び出しに行って調べたところ、:itemがありませんでした
params = {:filter => {:item => {:key => "status", :value => "closed"}}}
result = client.call(:sales_order_list, message: { session_id: session_id, filters: params})
これにより、ステータスがクローズされた注文のみが返されます。
MagentoとRailsでの作業を検討している場合は、Gemgentoが必要な場合があります。MagentoのフロントエンドをRoRに置き換えます。
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)