Mise à jour de la tarification et de la disponibilité des produits

Remarque

L’API Inventory est disponible uniquement pour les participants pilotes fermés. L’API et la documentation sont susceptibles d’être modifiées.

S’il vous suffit de mettre à jour la tarification et la disponibilité d’un produit dans votre magasin Bing Merchant Center (BMC), vous devez utiliser la ressource Inventaire au lieu de la ressource Produit . Avec la ressource Product, vous devez fournir les détails complets du produit, mais la ressource Inventory vous permet de spécifier uniquement le prix et la disponibilité.

Mise à jour d’un produit unique

Pour mettre à jour un produit unique, utilisez le /bmc/{bmcMerchantId}/inventory/{storeCode}/products/{productUniqueId} modèle dans une requête HTTP POST. Définissez {bmcMerchantId} sur votre ID de magasin, {storeCode} sur en ligne et {productUniqueId} sur l’ID complet du produit.

Le corps de la requête est un objet Product qui inclut uniquement les champs suivants :

  • Prix
  • availability
  • salePrice
  • salePriceEffectiveDate

Les price champs et availability sont obligatoires ; l’appel échoue si vous ne spécifiez pas les deux champs. Et salePricesalePriceEffectiveDate sont facultatifs. Si vous ne les spécifiez pas, le prix de vente actuel et la date d’effet du produit sont supprimés de l’offre.

L’exemple suivant montre un exemple de requête 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
    }
}

Si la requête réussit, elle retourne status code 200 et l’URI du produit mis à jour dans l’en-tête 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"
}

Si la réponse échoue, la requête retourne status code 400 ; le corps contient un objet de réponse d’erreur qui identifie le problème.

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"
  }
}

Pour obtenir un exemple de code qui montre comment utiliser la ressource Inventory pour mettre à jour un seul produit, consultez Mise à jour de la tarification et de la disponibilité pour un seul produit.

Mise à jour de plusieurs produits

Pour mettre à jour plusieurs produits, utilisez le /bmc/{bmcMerchantId}/inventory/batch modèle dans une requête HTTP POST. Définissez {bmcMerchantId} sur votre ID de magasin.

Le corps de la requête est un objet Batch qui peut contenir un maximum de 400 produits à mettre à jour. Chaque entrée du lot fournit un ID de lot défini par l’utilisateur, un code de magasin défini sur en ligne, l’ID complet du produit et les champs de tarification et de disponibilité du produit à mettre à jour. L’objet Product peut inclure uniquement les champs suivants :

  • Prix
  • availability
  • salePrice
  • salePriceEffectiveDate

Les price champs et availability sont obligatoires ; l’appel échoue si vous ne spécifiez pas les deux champs. Et salePricesalePriceEffectiveDate sont facultatifs. Si vous ne les spécifiez pas, le prix de vente actuel et la date d’effet du produit sont supprimés de l’offre.

L’exemple suivant montre un exemple de requête 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
                }
            }
        }
    ]
}

Étant donné que la demande tente de mettre à jour chaque produit du lot, elle retourne status code 200. Pour déterminer si une mise à jour a échoué, vous devez itérer toutes les entrées du lot. Une mise à jour a échoué si l’entrée inclut le errors champ ; sinon, elle a réussi.

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"
          }
        ]
      }
    }
  ]
}

Pour obtenir un exemple de code qui montre comment utiliser la ressource Inventaire pour mettre à jour un lot de produits, consultez Mise à jour de la tarification et de la disponibilité d’un lot de produits.

Voir aussi

Gestion des offres de produits