製品の価格と可用性の更新

注:

Inventory API は、クローズド パイロット参加者のみが使用できます。 API とドキュメントは変更される可能性があります。

Bing Merchant Center (BMC) ストアの製品の価格と可用性を更新するだけで済む場合は、製品リソースの代わりにインベントリ リソースを使用する必要があります。 Product リソースでは、製品の完全な詳細を指定する必要がありますが、インベントリ リソースでは価格と可用性のみを指定できます。

1 つの製品の更新

1 つの製品を更新するには、HTTP POST 要求でテンプレートを使用 /bmc/{bmcMerchantId}/inventory/{storeCode}/products/{productUniqueId} します。 {bmcMerchantId} をストア ID に、{storeCode} を オンラインに、{productUniqueId} を製品の完全修飾 ID に設定します。

要求の本文は、次のフィールドのみを含む Product オブジェクトです。

  • 価格
  • availability
  • salePrice
  • salePriceEffectiveDate

フィールド priceavailability フィールドは必須です。両方のフィールドを指定しない場合、呼び出しは失敗します。 salePricesalePriceEffectiveDate は省略可能です。 指定しない場合、製品の現在の販売価格と有効日の値がオファーから削除されます。

POST 要求の例を次に示します。

POST https://content.api.bingads.microsoft.com/shopping/v9.1/bmc/1234/inventory/online/products/online:en:US:5678 HTTP/1.1
AuthenticationToken: EwAAA3hl...
DeveloperToken: 0417...
Content-Type: application/json
Host: content.api.bingads.microsoft.com
Content-Length: 73

{
    "availability":"out of stock",
    "price":{
        "currency":"USD",
        "value":1234.0
    }
}

要求が成功すると、状態コード 200 と更新された製品の URI が Location ヘッダーに返されます。

HTTP/1.1 200 OK
Content-Type: application/json
Location: https://content.api.bingads.microsoft.com/shopping.svc/v9.1/bmc/1234/products/online:en:US:5678
WebRequestActivityId: e2c53946-e18c-4302-a40a-6d174429574a
Date: Fri, 09 Nov 2018 20:34:35 GMT
Content-Length: 46

{
  "kind": "content#inventorySetResponse"
}

応答が失敗した場合、要求は状態コード 400 を返します。本文には、問題を識別する エラー応答 オブジェクトが含まれています。

HTTP/1.1 400 Bad Request
Content-Type: application/json
Location: https://content.api.bingads.microsoft.com/shopping.svc/v9.1/bmc/1234/products/online:en:US:5678
WebRequestActivityId: d3d31a3f-8993-428e-858c-730032e32a46
Date: Sat, 10 Nov 2018 14:35:14 GMT
Content-Length: 305

{
  "error": {
    "errors": [
      {
        "reason": "invalid",
        "message": "Invalid value for: availability, stock is not a valid value",
        "domain": "global"
      }
    ],
    "code": "400",
    "message": "Invalid value for: availability, stock is not a valid value"
  }
}

インベントリ リソースを使用して 1 つの製品を更新する方法を示すコード例については、「1 つの製品 の価格と可用性の更新」を参照してください。

複数の製品の更新

複数の製品を更新するには、HTTP POST 要求でテンプレートを使用 /bmc/{bmcMerchantId}/inventory/batch します。 {bmcMerchantId} をストア ID に設定します。

要求の本文は、更新する最大 400 個の製品を含む Batch オブジェクトです。 バッチ内の各エントリには、ユーザー定義のバッチ ID、 オンラインに設定されているストア コード、製品の完全修飾 ID、更新する製品の価格と可用性フィールドが用意されています。 Product オブジェクトには、次のフィールドのみを含めることができます。

  • 価格
  • availability
  • salePrice
  • salePriceEffectiveDate

フィールド priceavailability フィールドは必須です。両方のフィールドを指定しない場合、呼び出しは失敗します。 salePricesalePriceEffectiveDate は省略可能です。 指定しない場合、製品の現在の販売価格と有効日の値がオファーから削除されます。

POST 要求の例を次に示します。

POST https://content.api.bingads.microsoft.com/shopping/v9.1/bmc/1234/inventory/batch HTTP/1.1
AuthenticationToken: EwAAA3hl...
DeveloperToken: 0417...
Content-Type: application/json
Host: content.api.bingads.microsoft.com
Content-Length: 194

{
    "entries":[
        {
            "batchId":1,
            "storeCode":"online",
            "productId":"online:en:US:5678",
            "inventory":{
                "availability":"in stock",
                "price":{
                    "currency":"USD",
                    "value":4567.0
                }
            }
        },
        {
            "batchId":2,
            "storeCode":"online",
            "productId":"online:en:US:9012",
            "inventory":{
                "availability":"bad in stock",
                "price":{
                    "currency":"USD",
                    "value":678.0
                }
            }
        }
    ]
}

要求はバッチ内のすべての製品の更新を試みるため、状態コード 200 を返します。 更新が失敗したかどうかを判断するには、バッチ内のすべてのエントリを反復処理する必要があります。 エントリにフィールドが含まれている errors 場合は更新に失敗し、それ以外の場合は成功しました。

HTTP/1.1 200 OK
Content-Type: application/json
WebRequestActivityId: bf019ef5-fa76-4703-9132-7954b0323c81
Date: Fri, 09 Nov 2018 20:48:15 GMT
Content-Length: 172

{
  "kind": "content#inventoryCustomBatchResponse",
  "entries": [
    {
      "kind": "content#inventoryCustomBatchEntryResponse",
      "batchId": "1"
    },
    {
      "kind": "content#inventoryCustomBatchEntryResponse",
      "batchId": "2",
      "errors": {
        "errors": [
          {
            "reason": "invalid",
            "message": "Invalid value for: availability, bad in stock is not a valid value",
            "domain": "global"
          }
        ]
      }
    }
  ]
}

インベントリ リソースを使用して製品のバッチを更新する方法を示すコード例については、「製品の バッチの価格と可用性の更新」を参照してください。

関連項目

製品オファーの管理