コンディションについて
コンディションとはヤフオクで言う「新品」「中古」「可」など商品の状態を指すものであり、
eBayへ出品を行う際、一部のカテゴリを除き指定が必須となっています。
じゃあ指定すればいいだけの話じゃん。となりそうですが実はeBayのコンディションは
ヤフオクのようにどの商品でも共通しているわけではなくカテゴリによって
選択できるコンディションが異なっています。
例えば下表の赤枠は食品ですが、こちらは「New」しか選択できないのに対し
青枠のカメラ等は非常に多くのコンディションが選択できます。
eBayドキュメントより抜粋
いちいちこんな表確認してらんねぇよ!というそこのあなた、
安心してください。 APIで取得できます。
カテゴリに沿ったコンディションの取得
使用するAPIはTrading APIのGetCategoryFeatures。
このAPIではカテゴリIDといくつかのオプションを使用することで、
そのカテゴリで設定できるコンディションを確認することができます。
以下リクエスト例
def client_opts
{ AllFeaturesForCategory: true,
CategoryID: category_id,
DetailLevel: 'ReturnAll',
ViewAllNodes: true }
end
※コンディションの取得は上記オプションが全て必須となります
リクエスト結果は以下の通り。
赤枠部分でカテゴリIDに沿ったコンディションIDとNewなどの表示名が取得できます。
あとはこのレスポンスを配列に加工し、viewに渡してセレクトボックスなどで表示すればOK
# カテゴリIDに沿ったconditionのリストを取得
def get_category_condition_list(category_id)
condition_list = []
client = Ebay.trading.get_category_features(auth_token: ebay_auth_token)
res = client.call(category_id)
res.conditions.each do |condition|
condition_list << [condition.css('DisplayName').text, condition.css('ID').text]
end
condition_list
end
private
def conditions
res.css('ConditionValues/Condition').map
end
= f.select :item_condition_id,
options_for_select(@condition_list, nil),
{ include_blank: true },
class: 'form-control'
その他
基本的に出品時のコンディション指定は必須ですが、
一部のカテゴリ(Digital Gift Cards Antiques など)についてはカテゴリの指定が不要です。
コンディションの要否についても先ほどのGetCategoryFeaturesで確認ができ、
disableの場合は設定が不要となります。
コンディションの設定が不要な商品でも、
出品時にコンデイションID空欄でリクエストするとエラーになるので、
IDがある場合のみリクエストするようにしましょう。
余談
トレーディングカードカテゴリについては、
上述したコンディションとは異なる設定が必要になりますので、
こちらについては後日記事を書こうと思います。
eBayドキュメントAdd_itemより抜粋