出品の管理
出品管理 (Listing Management)
概要
このガイドでは、アクティブなeBay出品(リスティング)の管理に関連するユースケースについて解説します。具体的には、出品の修正、再出品、出品情報の取得、および出品の終了について説明します。
APIユースケース
- 出品の修正
- アイテムの再出品
- 出品の取得
- 出品の終了
出品の修正
Inventory API、Trading API、および Sell Feed API は、いずれもアクティブな出品を修正するために使用できます。必要な手順はそれぞれのAPIによって異なるため、以下で個別に説明します。どのAPIを使用する場合でも、アクティブな出品の修正は1日(暦日)あたり最大250回までに制限されています。
Inventory APIを使用した製品詳細の修正
以下のフロー図は、Inventory API を使用して製品詳細を修正する手順を視覚的に表したものです。
-
以下のメソッドを使用して、1つ以上のインベントリアイテムの現在の値を確認します。
- getInventoryItem(特定のインベントリアイテム1件)
- getInventoryItems(すべてのインベントリアイテム)
- bulkGetInventoryItem(特定のインベントリアイテム最大25件)
- createOrReplaceInventoryItem メソッドを使用して1つのインベントリアイテムの製品詳細を変更するか、bulkCreateOrReplaceInventoryItem メソッドを使用して最大25件のインベントリアイテムの製品詳細を変更します。これらのメソッド名が示す通り、インベントリアイテムに対して「完全な置き換え(Complete Replace)」が行われます。したがって、現在の値から変更がないフィールドであっても、適用可能なすべてのリクエストフィールドを渡す必要があります。
- createOrReplaceInventoryItem または bulkCreateOrReplaceInventoryItem メソッドが成功した後、変更したアイテムの View Item ページ(商品ページ)を確認することをお勧めします。
Inventory APIを使用したオファー詳細の修正
以下のフロー図は、Inventory API を使用してオファー詳細を修正する手順を視覚的に表したものです。
-
以下のメソッドを使用して、出品の現在のオファー関連値を確認します。
- getOffer: offerId をパスパラメータとして使用
- getOffers: sku をクエリパラメータとして使用
マルチバリエーション出品(複数種類のバリエーションを持つ出品)で、複数のバリエーションを更新する必要がある場合、各バリエーションは独自の offer オブジェクトを持つため、複数のGETコールを使用する必要があります。
-
updateOffer メソッドは、単一SKU出品、またはマルチSKU出品内の単一バリエーションのオファー詳細を変更するために使用されます。updateOffer メソッドはオファーの完全な置き換えを行うため、現在の値から変更がないフィールドであっても、適用可能なすべてのリクエストフィールドを渡す必要があります。ステップ1で説明したGETコールのいずれかを使用した場合、取得した offer オブジェクトをコピーし、updateOffer メソッドのリクエストペイロード内で必要に応じて修正する方法が効率的です。
updateOffer には「一括(bulk)」バージョンはありませんが、bulkUpdatePriceQuantity メソッドを使用すると、アクティブな出品内の最大25個のSKUの価格および/または数量を一括更新できます。 - updateOffer または bulkUpdatePriceQuantity メソッドが成功した後、変更したアイテムの View Item ページ(商品ページ)を確認することをお勧めします。
Inventory APIを使用したバリエーションの追加
追加するSKUに対して inventory item と offer オブジェクトが存在する限り、createOrReplaceInventoryItemGroup メソッドを使用して、そのSKUを既存のマルチバリエーション出品に追加できます。新しいSKUの値は、variantSKUs 配列の下に定義された既存のSKU値と共に追加するだけです。
なお、inventory item group オブジェクトの一部となるSKUの inventory item および offer オブジェクトは、単一SKU出品となるSKUとは要件が少し異なります。これらの要件の詳細については、「Inventory APIを使用したマルチバリエーション出品の作成」に関するドキュメントを参照してください。
Inventory APIを使用したバリエーションの削除
Inventory API を使用して、マルチバリエーション出品内のバリエーション/SKUを削除する方法はいくつかあります。以下に、アクティブなマルチバリエーション出品からSKUを削除するために使用できる Inventory API の各メソッドを説明します。
- createOrReplaceInventoryItemGroup メソッドを使用してインベントリアイテムグループオブジェクトを更新し、削除するSKUを variantSKUs 配列に含めないようにします。このSKUに関連付けられた inventory item および offer オブジェクトはシステムに残りますが、オファーのステータスは PUBLISHED(公開)状態から UNPUBLISHED(非公開)状態に変わります。
- 対象のSKUに対して deleteOffer メソッドを実行します。offer オブジェクトは削除されますが、inventory item オブジェクトは残ります。
- 対象のSKUに対して deleteInventoryItem メソッドを実行します。これにより、そのSKUに関連付けられた inventory item オブジェクトと offer オブジェクトの両方が削除されます。
Trading APIを使用した出品の修正
アクティブな出品は、Trading API の ReviseItem または ReviseFixedPriceItem を使用して修正できます。ReviseItem はすべての出品タイプをサポートしていますが、マルチバリエーション出品はサポートしていません。その名前が示す通り、ReviseFixedPriceItem は固定価格出品(単一およびマルチバリエーション)のみをサポートしています。
ReviseItem または ReviseFixedPriceItem を使用してアクティブな出品の詳細を修正するには、以下のプロセスに従ってください。
- GetItem コールを使用して、出品の現在の設定および値を確認します。
- ReviseItem または ReviseFixedPriceItem コールの ItemID フィールドを使用して、修正する出品を特定します。
-
必要に応じてアクティブな出品を変更します。フィールドの追加、変更、または削除方法は以下の通りです。
- 適用可能なフィールドを使用して、1つ以上のフィールド/設定を追加または変更できます。Trading API での出品詳細の設定に関する詳細については、「出品作成ガイド」を参照してください。
- DeletedField フィールドを使用して、1つ以上のフィールド/設定を削除できます。削除するフィールドのフルパスを渡します。たとえば、出品からオプションの Subtitle(サブタイトル)を削除したい場合、リクエストペイロードで <DeletedField>Item.SubTitle</DeletedField> と指定します。ブール値(真偽値)フィールドを削除するには、そのフィールド名を渡し、値を false に設定します。たとえば、出品の Best Offer 機能を無効にしたい場合、リクエストペイロードで <BestOfferEnabled>false</BestOfferEnabled> と指定します。
注意: 必須フィールドは削除できません。また、12時間以内に終了するオークション出品や、保留中のBest Offer/カウンターオファーがある出品など、特定の状況下では一部のフィールド値を変更できない場合があります。 - ReviseItem または ReviseFixedPriceItem コールが成功した場合、エラーや警告は返されません。Reviseコールは、追加された設定(例:以前にはなかったサブタイトルを追加した場合など)によっては、追加の出品手数料が発生する可能性があることに留意してください。また、手数料が発生する設定や機能を削除しても、自動的に出品手数料の返金が行われるわけではありません。
Trading APIにおけるその他の出品修正コールには以下が含まれます。
- ReviseInventoryStatus: セラーが1回のコールで1〜4件のアクティブな出品の価格および/または数量を迅速に更新できるコール。
- AddToItemDescription: セラーが現在の商品説明に追加のテキストを追記できるコール。
Inventory APIを使用した出品の一括修正
以下のフロー図は、Inventory API の3つの一括メソッドを使用して最大25件のアクティブな出品を修正する手順を視覚的に表したものです。
Inventory API で最大25件の出品を修正するために必要な手順は以下の通りです。
- getInventoryItems メソッドを使用してセラーのアカウントに定義されているすべてのインベントリアイテムを取得するか、bulkGetInventoryItem メソッドを使用して特定のインベントリアイテムレコードを最大25件取得します。現在、複数のオファーを一括で取得するメソッドはありません。
-
bulkCreateOrReplaceInventoryItem メソッドを使用して、最大25件のインベントリアイテムレコードを修正します。このメソッドのペイロードは createOrReplaceInventoryItem メソッドとほぼ同一ですが、以下の点が異なります。
- 1件ではなく最大25件のインベントリアイテムレコードを修正可能。
- SKU値はパスパラメータではなく、各インベントリアイテムレコードのリクエストペイロード内の requests.sku フィールドで指定する。
名前が示す通り、インベントリアイテムに対して「完全な置き換え」が行われるため、現在の値から変更がないフィールドであっても、適用可能なすべてのリクエストフィールドを渡す必要があります。
- updateOffer メソッドの「一括(bulk)」バージョンはありませんが、bulkUpdatePriceQuantity メソッドを使用すると、アクティブな出品内の最大25個のSKUの価格および/または数量を更新できます。
- bulkCreateOrReplaceInventoryItem または bulkUpdatePriceQuantity メソッドが成功すると、アクティブなeBay出品が自動的に更新されます。修正したアイテムの View Item ページ(商品ページ)を確認することをお勧めします。
Sell Feed APIを使用した出品の一括修正
Sell Feed API を使用すると、セラーはさまざまなフィードファイルやレポートをアップロードおよびダウンロードできます。出品の一括更新に使用されるフィードタイプは、LMS_REVISE_ITEM、LMS_REVISE_FIXED_PRICE_ITEM、および LMS_REVISE_INVENTORY_STATUS の3つです。これらのフィードファイルのサイズ制限は15MBで、ファイルはeBayによって非同期に処理されます。すべてのアップロードタスクのステータスは、一意の「タスクID」で追跡されます。
以下のフロー図は、Sell Feed API を使用して複数のアクティブな出品を修正する手順を視覚的に表したものです。
Sell Feed API で複数のアクティブな出品を修正するために必要な手順は以下の通りです。
- createTask メソッドを使用してタスクをステージングします。X-EBAY-C-MARKETPLACE-ID ヘッダーを使用して出品マーケットプレイスを設定し、リクエストペイロードの feedType 値を LMS_REVISE_ITEM、LMS_REVISE_FIXED_PRICE_ITEM、または LMS_REVISE_INVENTORY_STATUS のいずれかに設定します。LMS_REVISE_ITEM は、マルチバリエーション出品を修正する場合には使用できません。コールが成功すると、タスクの getTask URIが Location レスポンスヘッダーで返されます。
- getTask メソッドを使用してタスクのステータスを確認します。status フィールドに返される値は CREATED である必要があります。この値が表示されたら、次のステップに進みます。
- uploadFile メソッドを使用して、LMS_REVISE_ITEM、LMS_REVISE_FIXED_PRICE_ITEM、または LMS_REVISE_INVENTORY_STATUS フィードファイルをアップロードします。createTask メソッドで返され、getTask メソッドで使用されたのと同じタスクIDを、uploadFile メソッドのパスパラメータとして使用します。uploadFile メソッドにはリクエストペイロードはありませんが、XMLデータファイルをアップロードします。XMLファイルの作成とアップロードの詳細については、uploadFile リファレンスドキュメントおよび「データファイルの作成」トピックを参照してください。uploadFile コールが成功すると、HTTPステータスコード 202 Accepted が返されます。アップロードされたファイルは非同期に処理されるため、ファイルのサイズによっては処理に時間がかかる場合があります。
- 同じタスクIDを使用して再度 getTask メソッドを実行し、ステータスを確認します。今回は、COMPLETED または COMPLETED_WITH_ERROR の値が表示されることを確認します。COMPLETED_WITH_ERROR は、一般に1つ以上の出品が正常に修正されなかったことを示すため、COMPLETED が望ましい結果です。また、uploadSummary コンテナも確認してください。すべての出品が正常に修正された場合、uploadSummary.failureCount フィールドの値は0になります。
- getResultFile メソッド(同じタスクIDをパスパラメータとして使用)を使用して、出品修正タスクの結果を示すファイルを取得します。完全に成功したタスクには、新しく修正された出品のアイテムID値が表示されます。正常に修正されなかった出品がある場合、1つ以上の出品に関する問題を示す Errors コンテナが含まれます。
アイテムの再出品
最近終了した出品を再出品するプロセスは、Inventory API、Trading API、または Sell Feed API のどれを使用しているかによって異なります。それぞれのAPIで再出品するために必要な手順を以下で個別に説明します。
Inventory APIを使用したアイテムの再出品
Inventory API には「再出品(relist)」という名称のメソッドはありませんが、代わりに publishOffer メソッドを使用して、オファーを非公開状態から公開状態に移行させることで再出品を行います。
以下は、Inventory API を使用してアイテムを再出品するためのロジックフローです。
- publishOffer メソッドを使用する前に、getOffer メソッドを使用してオファーの現在の状態を確認し、getInventoryItem メソッドを使用してインベントリアイテムの現在の状態を確認する必要があります。
- 行いたい変更に応じて、updateOffer メソッドを使用してオファーの更新を行うか、createOrReplaceInventoryItem メソッドを使用してインベントリアイテムの更新を行います。変更が必要ない場合は、次のステップに進みます。
- publishOffer メソッドを使用してアイテムを再出品します。
Trading APIを使用したアイテムの再出品
最近終了した出品は、Trading API の RelistItem または RelistFixedPriceItem を使用して再出品できます。RelistItem はすべての出品タイプをサポートしていますが、マルチバリエーション出品はサポートしていません。その名前が示す通り、RelistFixedPriceItem は固定価格出品(単一およびマルチバリエーション)のみをサポートしています。
RelistItem または RelistFixedPriceItem を使用してアイテムを再出品するには、以下のプロセスに従ってください。
- GetItem コールを使用して、出品の現在の設定および値を確認します。
- RelistItem または RelistFixedPriceItem コールの ItemID フィールドを使用して、再出品する出品を特定します。
-
出品に必要な修正を加えます。フィールドの追加、変更、または削除方法は以下の通りです。
- 適用可能なフィールドを使用して、1つ以上のフィールド/設定を追加または変更できます。Trading API での出品詳細の設定に関する詳細については、「出品作成ガイド」を参照してください。
- DeletedField フィールドを使用して、1つ以上のフィールド/設定を削除できます。削除するフィールドのフルパスを渡します。たとえば、出品からオプションの Subtitle(サブタイトル)を削除したい場合、リクエストペイロードで <DeletedField>Item.SubTitle</DeletedField> と指定します。ブール値フィールドを削除するには、そのフィールド名を渡し、値を false に設定します。たとえば、出品の Best Offer 機能を無効にしたい場合、リクエストペイロードで <BestOfferEnabled>false</BestOfferEnabled> と指定します。
注意: 必須フィールドは削除できません。 - 成功した RelistItem または RelistFixedPriceItem コールは、エラーや警告をトリガーしません。Relistコールは、Addコール(新規出品)と同じ出品手数料の対象となることに留意してください。正常に再出品されたアイテムは、レスポンスで新しい ItemID 値が返されます。
Sell Feed APIを使用したアイテムの一括再出品
Sell Feed API を使用すると、セラーはさまざまなフィードファイルやレポートをアップロードおよびダウンロードできます。アイテムの一括再出品に使用されるフィードタイプは、LMS_RELIST_ITEM と LMS_RELIST_FIXED_PRICE_ITEM です。これらのフィードファイルのサイズ制限は15MBで、ファイルはeBayによって非同期に処理されます。すべてのアップロードタスクのステータスは、一意の「タスクID」で追跡されます。
以下のフロー図は、Sell Feed API を使用して複数のアイテムを再出品する手順を視覚的に表したものです。
Sell Feed API で複数のアイテムを再出品するために必要な手順は以下の通りです。
- createTask メソッドを使用してタスクをステージングします。X-EBAY-C-MARKETPLACE-ID ヘッダーを使用して出品マーケットプレイスを設定し、リクエストペイロードの feedType 値を LMS_RELIST_ITEM または LMS_RELIST_FIXED_PRICE_ITEM のいずれかに設定します。LMS_RELIST_ITEM は、マルチバリエーション出品を再出品する場合には使用できません。コールが成功すると、タスクの getTask URIが Location レスポンスヘッダーで返されます。
- getTask メソッドを使用してタスクのステータスを確認します。status フィールドに返される値は CREATED である必要があります。この値が表示されたら、次のステップに進みます。
- uploadFile メソッドを使用して、LMS_RELIST_ITEM または LMS_RELIST_FIXED_PRICE_ITEM フィードファイルをアップロードします。createTask メソッドで返されたのと同じタスクIDを、パスパラメータとして使用します。uploadFile メソッドにはリクエストペイロードはありませんが、XMLデータファイルをアップロードします。XMLファイルの作成とアップロードの詳細については、uploadFile リファレンスドキュメントおよび「データファイルの作成」トピックを参照してください。uploadFile コールが成功すると、HTTPステータスコード 202 Accepted が返されます。アップロードされたファイルは非同期に処理されるため、ファイルのサイズによっては処理に時間がかかる場合があります。
- 同じタスクIDを使用して再度 getTask メソッドを実行し、ステータスを確認します。今回は、COMPLETED または COMPLETED_WITH_ERROR の値が表示されることを確認します。COMPLETED_WITH_ERROR は、一般に1つ以上の出品が正常に再出品されなかったことを示すため、COMPLETED が望ましい結果です。また、uploadSummary コンテナも確認してください。すべての出品が正常に再出品された場合、uploadSummary.failureCount フィールドの値は0になります。
- getResultFile メソッド(同じタスクIDをパスパラメータとして使用)を使用して、出品再出品タスクの結果を示すファイルを取得します。完全に成功したタスクには、新しく再出品された出品の新しいアイテムID値が表示されます。正常に再出品されなかった出品がある場合、1つ以上の出品に関する問題を示す Errors コンテナが含まれます。
出品の取得
APIを使用してeBayの出品を取得する方法は、Inventory API、Trading API、または Sell Feed API のどれを使用しているかによって異なります。
Inventory APIを使用した出品の取得
Inventory API を使用する場合、eBayの出品は inventory_item オブジェクトと offer オブジェクトで構成されます。inventory_item オブジェクトはアイテム/製品の詳細を記述し、offer オブジェクトは価格、カテゴリ、数量、出品の詳細など、製品以外のすべてのオファー関連の詳細を記述します。
inventory_item オブジェクトは、以下のGETメソッドを使用して取得できます。
- getInventoryItem: SKU値をパスパラメータとして使用し、特定の inventory_item オブジェクトを取得します。
- getInventoryItems: すべてのeBayマーケットプレイスにわたるセラーのすべての inventory_item オブジェクトを取得します。このメソッドのレスポンスは非常に大きくなる可能性があるため、ページネーション制御が利用可能です。
- bulkGetInventoryItem: リクエストペイロードでSKU値を指定して、最大25件の inventory_item オブジェクトを取得します。
これら3つのメソッドのレスポンスで返される inventory_item オブジェクトは本質的に同じです。製品詳細は product コンテナに、アイテムの状態は condition フィールドに、利用可能な数量(全体の数量およびロケーション固有)は availability コンテナに表示されます。
offer オブジェクトは、getOffer または getOffers メソッドを使用して取得できます。これら2つのメソッドのレスポンスで返される offer オブジェクトは同じですが、getOffer メソッドは offerId 値をパスパラメータとして必要とし、getOffers メソッドは sku 値をクエリパラメータとして必要とします。
なお、status フィールドは、offer オブジェクトが公開されている(アクティブな出品の一部である)か、非公開である(アクティブな出品の一部ではない)かを示します。公開されたオファーの場合、出品の識別子が listing.listingId フィールドに表示されます。listing.listingStatus フィールドには、ListingStatusEnum で定義されている出品のステータスが表示されます。レスポンス内の sku 値は、どの inventory_item オブジェクトがその offer オブジェクトに関連付けられているかを示し、marketplaceId 値は出品が含まれるeBayマーケットプレイスを示します。
マルチバリエーション出品内の1つ以上のアイテムバリエーションに関する情報を取得するには、getInventoryItemGroup を使用し、variantSKUs 配列で返されるSKU値を参照する必要があります。
Trading APIを使用した出品の取得
Trading API にはeBayの出品を取得するためのGETコールがいくつかありますが、主要なものは GetItem です。GetItem は、アクティブなeBay出品を特定するために、リクエストペイロードに ItemID 値または(定義されている場合は)SKU 値を必要とします。ユーザーがマルチバリエーション出品を取得したいが、特定の1つのアイテムバリエーションのみに関心がある場合は、VariationSKU フィールドを使用して確認したいバリエーションを指定できます。GetItem には、レスポンスで返されるアイテム関連データの量や内容を制御するその他のさまざまな包含フィルタもあります。
出品を取得するために使用される Trading API の他の2つのGETコールについて簡単に説明します。
-
GetSellerList: このコールは、セラーの複数の出品を取得できます。フィルタオプションには以下が含まれます。
- StartTimeFrom(開始時刻)または EndTimeFrom(終了時刻)の日付範囲に基づいて出品を取得。
- 特定の CategoryID(カテゴリ)からすべての出品を取得。
- SKU 値に基づいて複数の出品を取得。
- 出品ポリシー違反によりeBayによって「運営により終了(administratively ended)」されたすべての最近の出品を取得。
- GetSellerEvents: このコールは、StartTimeFrom(開始時刻)、ModTimeFrom(最終変更時刻)、または EndTimeFrom(終了時刻)の日付範囲に基づいて、セラーの複数の出品を取得できます。このコールには、レスポンスで返されるアイテム関連データの量や内容を制御するその他のさまざまな包含フィルタがあります。
GetSellerList コールには、任意の15秒間隔内で300コールという短期間のコール制限があります。この閾値に達すると、後続のコールはブロックされます。同様に、GetSellerEvents コールには、任意の15秒間隔内で1000コールという短期間のコール制限があります。この閾値に達すると、後続のコールはブロックされます。
Sell Feed APIを使用したすべてのアクティブな出品の取得
Sell Feed API は、すべてのeBayマーケットプレイスにわたるすべてのアクティブな出品の価格と数量情報を取得するためにのみ使用できます。以下は、Active Inventory Report(アクティブ在庫レポート)を生成してダウンロードするプロセスです。
-
createInventoryTask メソッドを使用してタスクを作成し、リクエストフィールドを次のように設定します。
- feedType フィールド値を LMS_ACTIVE_INVENTORY_REPORT に設定します。
- schemaVersion フィールド値を 1.0 に設定します。
- オプションで filterCriteria.listingFormat フィールドを使用して、オークション出品のみ、または固定価格出品のみを取得するように設定します。
- Location レスポンスヘッダーで返されたURIを使用して、getInventoryTask メソッドで在庫タスクの status(ステータス)を取得します。LMS_ACTIVE_INVENTORY_REPORT フィードタイプは非同期に処理され、セラーが持つアクティブな出品数によっては完了までに時間がかかる場合があります。status フィールドの値は、次のステップに進む前に COMPLETED になっている必要があります。
- getResultFile メソッドを使用して、Active Inventory Report をダウンロードします。タスクの同じタスクIDをパスパラメータとして渡します。このコールが成功すると、Active Inventory Report がzip形式のファイルとしてダウンロードされます。各アクティブな出品についてダウンロードされるフィールドを確認するには、ActiveInventoryReport リファレンスドキュメントを参照してください。
出品の終了
APIを使用してeBayの出品を終了する方法は、Inventory API、Trading API、または Sell Feed API のどれを使用しているかによって異なります。
Inventory APIを使用した出品の終了
Inventory API で作成されたアクティブな出品を終了する方法はいくつかあります。以下に各メソッドを説明します。
- withdrawOffer: 単一バリエーションのeBay出品を終了します。操作が成功した場合、offer オブジェクトは残りますが、PUBLISHED(公開)状態から UNPUBLISHED(非公開)状態に移行します。
- deleteOffer: 単一バリエーションのeBay出品を終了し、その出品に関連付けられた offer オブジェクトも削除します。
- deleteInventoryItem: 単一バリエーションのeBay出品を終了し、その出品に関連付けられた inventory item オブジェクトと offer オブジェクトの両方を削除します。
- withdrawOfferByInventoryItemGroup: マルチバリエーションのeBay出品を終了します。inventory_item_group オブジェクトおよびグループ内のすべての inventory item と offer オブジェクトは残りますが、すべてのオファーが PUBLISHED(公開)状態から UNPUBLISHED(非公開)状態に移行します。
- deleteInventoryItemGroup: マルチバリエーションのeBay出品を終了し、inventory item group オブジェクトも削除します。ただし、その出品に関連付けられた inventory item オブジェクトと offer オブジェクトは、offer オブジェクトのステータスが PUBLISHED(公開)状態から UNPUBLISHED(非公開)状態に移行することを除いてそのまま残ります。
Trading APIを使用した出品の終了
アクティブな出品は、Trading API の EndItem または EndFixedPriceItem を使用して終了できます。また、1つの EndItems コールで最大10件のアクティブな出品を終了できます。その名前が示す通り、EndFixedPriceItem は固定価格出品(単一およびマルチバリエーション)のみをサポートしています。
EndItem と EndFixedPriceItem の両方について、終了する出品は ItemID(EndFixedPriceItem は SKU フィールドもサポート)によって特定される必要があり、EndingReason(終了理由)の値も指定する必要があります。EndItem コールは、オークション、固定価格、またはクラシファイド広告の出品を終了するために使用できますが、マルチバリエーション固定価格出品には使用できません。EndFixedPriceItem コールは、単一バリエーションまたはマルチバリエーションの固定価格出品を終了するために使用できます。
EndItems コールは EndItem コールと同様に動作しますが、1件だけでなく最大10件の出品を終了できます。EndItems コールは、終了する各出品の MessageID フィールドと、リクエスト内の出品をレスポンス内の出品と関連付けることを可能にする CorrelationID レスポンスフィールドもサポートしています。
3つのEndコールすべてにおいて、レスポンスに EndTime が表示され、エラーや警告が返されなければ、出品が正常に終了したと判断できます。
Sell Feed APIを使用した出品の一括終了
以下のフロー図は、Sell Feed API を使用して複数の出品を終了する手順を視覚的に表したものです。
Sell Feed API で複数の出品を終了するために必要な手順は以下の通りです。
- createTask メソッドを使用してタスクをステージングします。X-EBAY-C-MARKETPLACE-ID ヘッダーを使用して出品マーケットプレイスを設定し、リクエストペイロードの feedType 値を LMS_END_ITEM または LMS_END_FIXED_PRICE_ITEM のいずれかに設定します。その名前が示す通り、LMS_END_FIXED_PRICE_ITEM フィードタイプは、固定価格出品(単一およびマルチバリエーション)の終了のみをサポートしています。コールが成功すると、タスクの getTask URIが Location レスポンスヘッダーで返されます。
- getTask メソッドを使用してタスクのステータスを確認します。status フィールドに返される値は CREATED である必要があります。この値が表示されたら、次のステップに進みます。
- uploadFile メソッドを使用して、LMS_END_ITEM または LMS_END_FIXED_PRICE_ITEM フィードファイルをアップロードします。createTask メソッドで返されたのと同じタスクIDを、パスパラメータとして使用します。uploadFile メソッドにはリクエストペイロードはありませんが、XMLデータファイルをアップロードします。XMLファイルの作成とアップロードの詳細については、uploadFile リファレンスドキュメントおよび「データファイルの作成」トピックを参照してください。uploadFile コールが成功すると、HTTPステータスコード 202 Accepted が返されます。アップロードされたファイルは非同期に処理されるため、ファイルのサイズによっては処理に時間がかかる場合があります。
- 同じタスクIDを使用して再度 getTask メソッドを実行し、ステータスを確認します。今回は、COMPLETED または COMPLETED_WITH_ERROR の値が表示されることを確認します。COMPLETED_WITH_ERROR は、一般に1つ以上の出品が正常に終了されなかったことを示すため、COMPLETED が望ましい結果です。また、uploadSummary コンテナも確認してください。すべての出品が正常に終了された場合、uploadSummary.failureCount フィールドの値は0になります。
- getResultFile メソッド(同じタスクIDをパスパラメータとして使用)を使用して、出品終了タスクの結果を示すファイルを取得します。完全に成功したタスクには、正常に終了された出品の EndTime 値が表示されます。正常に終了されなかった出品がある場合、1つ以上の出品に関する問題を示す Errors コンテナが含まれます。
コードサンプル
Inventory APIで定義されたすべてのインベントリアイテムを取得する
curl -X GET "https://api.ebay.com/sell/inventory/v1/inventory_item?limit=2&offset=0" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Inventory APIで定義されたすべての在庫ロケーションを取得する
curl -X GET "https://api.ebay.com/sell/inventory/v1/location?limit=20&offset=0" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
エラーハンドリング
- eBayには、各アクティブな出品は1日(暦日)あたり最大250回までしか修正できないというポリシーがあります。したがって、その最大閾値を超えて出品を修正しようとするAPI操作は失敗します。ユーザーは、追加の修正を行うために次の日まで待つ必要があります。
- Inventory API を使用して作成されたアクティブな出品は、Trading API の Revise/Relist コールを使用して修正することはできません。
- セラー定義のテキストベースのフィールド(商品説明など)ではJavaScriptを使用できません。使用するとエラーになります。
- Sell Feed API を使用する場合、createTask メソッドの feedType フィールドで指定されたフィードタイプは、uploadFile メソッドでアップロードされる実際のオブジェクトタイプと一致する必要があります。
- オークション出品には多くの修正制限があります。一部の制限は、アイテムに1件以上の入札があるとすぐに適用され、オークション出品の終了まで12時間を切ると、さらに多くの制限が適用されます。固定価格出品にも、Best Offerがオープンになっている場合など、いくつかの修正制限があります。これらの制限の詳細については、「出品の修正(Revise a listing)」ヘルプトピックを参照してください。許可されていない修正のためにReviseコールが試行された場合、エラーが発生します。
ベストプラクティス
- 出品の修正は、サブタイトルの追加やオークション出品への最低落札価格(Reserve Price)の追加など、有料オプションが追加されない限り、通常はeBay手数料が発生しません。
- Trading API のSandbox環境を使用する代替手段として、VerifyRelistItem コールを使用することで、実際にアイテムを再出品する前に本番環境でアイテムオブジェクトの有効性をテストできます。このコールは RelistItem または RelistFixedPriceItem コールと同じロジックと検証を使用しますが、出品手数料が発生するリスクはありません。
- Inventory API を使用している場合、ユーザーが複数の出品の価格および/または数量のみを更新したいときは、bulkUpdatePriceQuantity が bulkCreateOrReplaceInventoryItem または updateOffer の優れた代替手段となります。
- Inventory API の getListingFees メソッドは、最大250件の非公開オファーに対して使用し、予想される出品手数料を取得できます。
- createOrReplaceInventoryItem および bulkCreateOrReplaceInventoryItem メソッドは、その名前が示す通りインベントリアイテムオブジェクトの「完全な置き換え」を行います。そのため、フィールドの値が変更されない場合でも、適用可能なすべてのフィールドを渡す必要があります。
- createOrReplaceInventoryItem または bulkCreateOrReplaceInventoryItem メソッドでアクティブな出品を修正する必要がある場合、まず bulkGetInventoryItem、getInventoryItems、または getInventoryItem メソッドを使用して inventory item オブジェクトの現在の状態を取得し、その後 createOrReplaceInventoryItem または bulkCreateOrReplaceInventoryItem メソッドで必要に応じて修正することを検討してください。
- 後日オファーを再度公開する可能性がある場合は、deleteOffer メソッドの代わりに withdrawOffer メソッドを使用してアクティブな出品を終了することを検討してください。deleteOffer メソッドはアクティブな出品を終了し、出品に関連付けられたオファーオブジェクトを完全に削除してしまいます。
- マルチバリエーション出品を終了するには、withdrawOfferByInventoryItemGroup メソッドを使用してください。インベントリアイテムグループオブジェクト自体と、グループ内の各バリエーションに関連付けられた各オファーは、すべてのオファーが PUBLISHED(公開)状態から UNPUBLISHED(非公開)状態になる以外、このアクションによる影響を受けません。