magento 2.0で属性を検索するときにsearchCriteriaを使用する


7

属性情報を取得しています。単一の検索条件で複数のフィルターを適用すると、機能しません。しかし、単一のフィルターの場合、それは完全に機能します。

複数のフィルターHTTPリクエスト:

http://192.168.1.180/magento/index.php/rest/V1/products/attributes?searchCriteria [filter_groups] [0] [filters] [0] [field] = attribute_code&searchCriteria [filter_groups] [0] [filters] [ 0] [value] = color&searchCriteria [filter_groups] [0] [filters] [0] [condition_type] = eq&searchCriteria [filter_groups] [0] [filters] [1] [field] = attribute_code&searchCriteria [filter_groups] [0] [filters] [1] [値] = size&searchCriteria [filter_groups] [0] [filters] [1] [condition_type] = eq

Output: 
{
  "items": [],
  "search_criteria": {
    "filter_groups": [
      {
        "filters": [
          {
            "field": "attribute_code",
            "value": "size",
            "condition_type": "eq"
          },
          {
            "field": "attribute_code",
            "value": "color",
            "condition_type": "eq"
          }
        ]
      }
    ]
  },
  "total_count": 0
}

しかし、1つのフィルターをヒットすると、サイズと色の両方の結果が得られます。

単一フィルター:

http://192.168.1.180/magento/index.php/rest/V1/products/attributes?searchCriteria [filter_groups] [0] [filters] [0] [field] = attribute_code&searchCriteria [filter_groups] [0] [filters] [ 0] [値] = color&searchCriteria [filter_groups] [0] [filters] [0] [condition_type] = eq

更新:フィルターを試しましたが、まだ結果がありません

{
  "items": [],
  "search_criteria": {
    "filter_groups": [
      {
        "filters": [
          {
            "field": "attribute_code",
            "value": "color,size",
            "condition_type": "in"
          }
        ]
      }
    ]
  },
  "total_count": 0
}

更新2:別のフィルターで「で」試した

{
  "items": [],
  "search_criteria": {
    "filter_groups": [
      {
        "filters": [
          {
            "field": "attribute_code",
            "value": "color",
            "condition_type": "in"
          },
          {
            "field": "attribute_code",
            "value": "size",
            "condition_type": "in"
          }
        ]
      }
    ]
  },
  "total_count": 0
}

更新3:別のフィルターグループで「イン」フィルターを試しました

{
  "items": [],
  "search_criteria": {
    "filter_groups": [
      {
        "filters": [
          {
            "field": "attribute_code",
            "value": "color",
            "condition_type": "in"
          }
        ]
      },
      {
        "filters": [
          {
            "field": "attribute_code",
            "value": "size",
            "condition_type": "in"
          }
        ]
      }
    ]
  },
  "total_count": 0
}

期待される出力と何が得られますか?
Alex Paliarush

質問を更新しました
nr5

@AlexPaliarushこれについて何か見つけましたか?
nr5

回答:



0

問題は、同じフィールドが同じフィルターグループの2つのフィルターで使用されていることです。この特定のケースでは、2つのeqフィルターを1つのinフィルターに置き換えます。

searchCriteria[filter_groups][0][filters][0][field]=attribute_code&searchCriteria[filter_groups][0][filters][0][value]=color,size&searchCriteria[filter_groups][0][filters][0][condition_type]=in

試しましたがまだ結果はありません '{"items":[]、 "search_criteria":{"filter_groups":[{"filters":[{"field": "attribute_code"、 "value": "color、size"、 "condition_type": "in"}]}]}、 "total_count":0} '
nr5

リクエストは正しいようです。値「color」と値「size」で別々に「in」フィルターを指定するとどうなりますか?
Alex Paliarush、2015

両方のAPI応答を含む編集された質問
nr5

私は意味searchCriteria[filter_groups][0][filters][0][field]=attribute_code&searchCriteria[filter_groups][0][filters][0][value]=color&searchCriteria[filter_groups][0][filters][0][condition_type]=in
アレックスPaliarush

1
内部チケットを追跡できるかどうかはわかりませんが、ここでチケットを作成し、MAGETWO-47450およびMAGETWO-47451が内部で作成されたことをメモとして入力できます。
Alex Paliarush
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.