Présentation de Merchant Products API

Cette page explique comment importer et gérer vos produits de manière programmatique. L'API Merchant Products vous permet d'insérer ou de mettre à jour un produit dans une source de données, de récupérer un produit dans votre compte et de supprimer un produit d'une source de données.

L'API Merchant Products contient deux ressources.

  • productInputs représente les parties d'entrée de vos produits.
  • products représente les produits traités qui ont été construits à partir de vos pièces d'entrée.

productInputs peut être principal et supplémentaire, selon qu'il est importé dans une source de données principale ou une source de données supplémentaire. Chaque product sera construit à partir d'un seul productInput principal et d'un nombre quelconque de productInputs supplémentaires.

Vous pouvez utiliser Merchant Products API pour créer des catalogues de magasins en ligne ou en magasin. Il s'agit de produits pouvant apparaître sur plusieurs sites d'achat. Vous pouvez utiliser la ressource productInputs une fois que vous avez créé votre compte Merchant Center, configuré votre première source de données et êtes prêt à importer un ensemble initial de produits via l'API.

Bien que les marchands puissent importer des produits à l'aide d'un fichier appelé PrimaryProductDataSource, la création et la suppression de produits à l'aide de Merchant API présente plusieurs avantages. Ces avantages incluent un temps de réponse plus rapide et la possibilité de mettre à jour les produits en temps réel, sans avoir à gérer de gros fichiers. Il peut s'écouler plusieurs heures avant que les modifications apportées aux produits via des appels d'API ne soient appliquées dans la base de données Shopping.

Prérequis

Si vous ne disposez pas d'une source de données, créez-en une à l'aide de l'API Merchant DataSources ou de Merchant Center.

Si vous avez déjà créé une source de données à l'aide de l'interface utilisateur de Merchant Center ou de l'API, vous pouvez utiliser l'API Merchant Products pour ajouter vos produits. Si vous utilisez la Content API for Shopping pour ajouter des produits, consultez le guide de migration pour savoir comment commencer à utiliser l'API Merchant Products.

Vous êtes tenu de respecter les règles concernant les annonces Shopping et les fiches gratuites. Les annonces Shopping se réservent le droit de faire appliquer ces règles et de prendre les mesures appropriées si nous détectons un contenu ou un comportement qui n'y est pas conforme.

Ressources

La ressource products vous permet de récupérer des informations produit à partir de la base de données Shopping.

La ressource productInput représente les données d'entrée que vous envoyez pour un produit. Elle fournit également des méthodes qui vous permettent de mettre à jour ou de supprimer des informations sur un produit, voire sur plusieurs produits en même temps, en mode par lot. Une ressource productInput doit comporter les champs suivants:

  • channel: canal du produit.
  • offerId: identifiant unique du produit.
  • contentLanguage: code de langue ISO 639-1 à deux lettres du produit.
  • feedLabel: libellé du flux du produit.

Importer une entrée produit dans votre compte

Pour importer une entrée de produit dans votre compte, utilisez la méthode accounts.productInputs.insert. Vous devez transmettre l'identifiant unique de la source de données principale ou supplémentaire.

L'exemple de requête suivant montre comment utiliser la méthode accounts.productInputs.insert pour importer une entrée de produit dans votre compte marchand. La requête définit le prix et la région de livraison, ainsi que des attributs personnalisés tels que la date de fabrication et la taille.

POST https://merchantapi.googleapis.com/products/v1beta/accounts/{ACCOUNT_ID}/productInputs:insert?dataSource={DATASOURCE}

{
  "name": "{PRODUCT_TITLE}",
  "versionNumber": {VERSION_NUMBER},
  "contentLanguage": "{CONTENT_LANGUAGE}",
  "feedLabel": "{FEED_LABEL}",
  "offerId": "{OFFER_ID}",
  "channel": "ONLINE",
  "attributes": {
    "availability": "in stock",
    "imageLink": "{IMAGE_LINK}",
    "link": "{PRODUCT_LINK}",
    "brand": "{BRAND_NAME}",
    "price": {
      "currencyCode": "{CURRENCY_CODE}",
      "amountMicros": {PRICE}
    },
    "color": "red",
    "productWeight": {
      "value": 320,
      "unit": "g"
    },
    "adult": false,
    "shipping": [
      {
        "country": "GB",
        "price": {
          "amountMicros": {SHIPPING_COST},
          "currencyCode": "{CURRENCY_CODE_SHIPPING}"
        },
        "postalCode": "{SHIPPING_POSTALCODE}",
        "service": "",
        "region": "{SHIPPING_REGION}",
        "maxHandlingTime": "{MAX_HANDLING_TIME}",
        "minHandlingTime": "{MIN_HANDLING_TIME}",
        "maxTransitTime": "{MAX_TRANSIT_TIME}",
        "minTransitTime": "{MIN_TRANSIT_TIME}"
      }
    ],
    "gender": "Female"
  },
  "customAttributes": [
    {
      "name": "size",
      "value": "Large"
    },
    {
      "name": "Date of Manufacturing",
      "value": "2024-05-05"
    }
  ]
}

Remplacez les éléments suivants :

  • {ACCOUNT_ID}: identifiant unique de votre compte Merchant Center.
  • {DATASOURCE}: identifiant unique de la source de données. Il doit être au format accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}.
  • {PRODUCT_TITLE}: nom du produit.
  • {VERSION_NUMBER}: numéro de version du produit. Facultatif.
  • {CONTENT_LANGUAGE}: code de langue ISO 639-1 à deux lettres du produit. Obligatoire.
  • {FEED_LABEL}: code de territoire CLDR de la région dans laquelle vous souhaitez vendre le produit. Si la valeur fournie pour feedLabel n'est pas valide, le champ targetCountry n'est pas renseigné.
  • {OFFER_ID}: identifiant unique du produit. Obligatoire.
  • {IMAGE_LINK}: lien vers l'image du produit sur votre site Web. Facultatif.
  • {PRODUCT_LINK}: lien vers le produit sur votre site Web. Facultatif.
  • {CURRENCY_CODE}: devise du prix à l'aide d'acronymes à trois lettres, conformément à la norme ISO 4217. Facultatif.
  • {PRICE}: prix du produit représenté sous la forme d'un nombre en micros. Facultatif.
  • {SHIPPING_COST}: prix de livraison fixe, représenté sous forme de nombre. Facultatif.
  • {SHIPPING_POSTALCODE}: plage de codes postaux pour laquelle le tarif de livraison s'applique. Facultatif.
  • {MAX_HANDLING_TIME}: temps de traitement maximal en jours ouvrés entre la réception de la commande et son expédition. Facultatif.
  • {MIN_HANDLING_TIME}: temps de traitement minimal en jours ouvrés entre la réception de la commande et son expédition. La valeur 0 signifie que la commande est livrée le jour même de sa réception. Facultatif.
  • {MAX_TRANSIT_TIME}: délai d'acheminement maximal en jours ouvrés entre l'expédition de la commande et sa livraison. Facultatif.
  • {MIN_TRANSIT_TIME}: délai d'acheminement minimal en jours ouvrés entre l'expédition de la commande et sa livraison. La valeur 0 signifie que la commande est livrée le même jour que son expédition. Facultatif.

Lorsque la requête s'exécute correctement, la réponse suivante s'affiche:

{
  "name": "{PRODUCT_NAME}",
  "product": "{PRODUCT_ID}",
  "channel": "ONLINE",
  "offerId": "{OFFER_ID}",
  "contentLanguage": "{CONTENT_LANGUAGE}",
  "feedLabel": "{FEED_LABEL}",
  "versionNumber": "{VERSION_NUMBER}",
  "attributes": {
    "link": "{PRODUCT_LINK}",
    "imageLink": "{IMAGE_LINK}",
    "adult": false,
    "availability": "in stock",
    "brand": "{BRAND_NAME}",
    "color": "red",
    "gender": "Female",
    "price": {
      "amountMicros": "{PRICE}",
      "currencyCode": "{CURRENCY_CODE}"
    },
    "shipping": [
      {
        "price": {
          "amountMicros": "{SHIPPING_COST}",
          "currencyCode": "{CURRENCY_CODE}"
        },
        "country": "{SHIPPING_COUNTRY}",
        "region": "{SHIPPING_REGION}",
        "postalCode": "{SHIPPING_POSTALCODE}",
        "minHandlingTime": "{MIN_HANDLING_TIME}",
        "maxHandlingTime": "{MAX_HANDLING_TIME}",
        "minTransitTime": "{MIN_TRANSIT_TIME}",
        "maxTransitTime": "{MAX_TRANSIT_TIME}"
      }
    ],
    "productWeight": {
      "value": 320,
      "unit": "g"
    }
  },
  "customAttributes": [
    {
      "name": "Size",
      "value": "Large"
    },
    {
      "name": "Date of Manufacturing",
      "value": "2024-05-05"
    }
  ]
}

Récupérez un produit traité dans votre compte

Pour récupérer un produit traité dans votre compte, utilisez la méthode accounts.products.get. L'affichage du produit traité peut prendre plusieurs minutes après l'insertion.

Vous pouvez obtenir le nom de la ressource du produit traité à partir du champ product dans la réponse de accounts.productInputs.insert.

Supprimer une entrée de produit de votre compte

Pour supprimer une entrée de produit de votre compte, utilisez la méthode accounts.productInputs.delete. Pour supprimer un produit à l'aide de l'API Merchant Products, vous devez transmettre l'identifiant unique de la source de données principale ou supplémentaire à laquelle le produit appartient.

Lister les produits de votre compte

Pour lister les produits traités dans votre compte, utilisez la méthode accounts.products.list.