Amazon Product Advertising APIでSearchIndex=All
を使って検索すると、複数のカテゴリの商品が検索結果として返ってくる。検索結果の各商品がどのカテゴリの商品かはItemAttributes/ProductGroup
の値を参照すれば良いのだが、「家電&カメラ」が「CE」だったりとそのままではいまいちよくわからない。ということでAmazon.co.jpのカテゴリ分けのラベルに訳した。
{
"Apparel": "アパレル&ファッション雑貨",
"Baby Product": "ベビー&マタニティ",
"Book": "本・漫画・雑誌",
"CE": "家電&カメラ",
"DVD": "DVD",
"Grocery": "食品&飲料",
"Health and Beauty": "ヘルス&ビューティー",
"Kitchen": "ホーム&キッチン",
"Music": "ミュージック",
"Office Product": "文房具・オフィス用品",
"Shoes": "シューズ",
"Software": "PCソフト",
"Sports": "スポーツ&アウトドア",
"Toy": "おもちゃ",
"VHS": "ビデオ",
"Video Games": "TVゲーム",
"Watch": "時計"
}
和書と洋書やミュージックとクラシック音楽、TVゲームとPCゲーム、DVDとBlu-Rayなど判定したいけどそのままではできないものは色々ある。逆にシューズはAmazon.co.jpの検索結果ではアパレル&ファッション雑貨でまとめられているが、Shoesで返ってくるのでシューズと細かく判定できたりする。
またProductGroup
の値はSearchIndex
に指定する文字列と同じだと、SearchIndex=All
でとりあえず検索させて検索結果のある商品と同じカテゴリだけに絞るとか簡単にできそうで便利だと思うんだけど、そうなってはいない。BrowseNodes
をResponseGroup
パラメータの値に含めればかなり正確にカテゴリ判定ができ、検索をカテゴリで絞るとかもSearchIndex
パラメータではなくBrowseNode
パラメータを使ってやれば良いのでやりたいことは実現できるのだけど、レスポンスのBrowseNodes
の構造はかなり複雑で、とりあえず大まかなカテゴリ(最上位のカテゴリ)を知りたい(で絞り込みたい)とかには使いづらいような気がする。
この訳データにBrowseNodeId
も持たせてやれば便利かもな。
Aexには導入しておいた。