Envoyer des requêtes

Ce guide s'adresse aux utilisateurs qui ont déjà consulté le Guide de démarrage et qui ont configuré leur compte pour effectuer des requêtes autorisées.

Une fois la configuration terminée, vous pouvez envoyer des requêtes à Google Content API for Shopping. Les exemples de code ci-dessous vous indiquent comment envoyer quelques requêtes simples :

  • Créer un produit
  • Obtenir la liste des produits
  • Récupérer un produit spécifique de la liste
  • Mettre à jour le prix d'un produit

Pour obtenir la liste complète des méthodes, consultez la documentation de référence.

Pour savoir comment exploiter pleinement l'API, consultez la page Bonnes pratiques. Vous y découvrirez également pourquoi les requêtes par lot sont recommandées.

Si vous rencontrez des problèmes avec Content API, consultez le Tableau de bord d'état Merchant Center pour vérifier si le service est disponible, ainsi que la page Forum. Si vous avez encore besoin d'aide, contactez l'assistance.

Créer un produit

Pour découvrir en détail tous les attributs qu'un produit peut comporter, consultez les spécifications du flux de produits. Pour créer un produit, utilisez le code suivant :

Protocole

POST /content/v2.1/YOUR_MERCHANT_ID/products

{
  "offerId": "book123",
  "title": "A Tale of Two Cities",
  "description": "A classic novel about the French Revolution",
  "link": "http://my-book-shop.com/tale-of-two-cities.html",
  "imageLink": "http://my-book-shop.com/tale-of-two-cities.jpg",
  "contentLanguage": "en",
  "targetCountry": "GB",
  "channel": "online",
  "availability": "in stock",
  "condition": "new",
  "googleProductCategory": "Media > Books",
  "gtin": "9780007350896",
  "price": {
    "value": "2.50",
    "currency": "GBP"
  },
  "shipping": [{
    "country": "GB",
    "service": "Standard shipping",
    "price": {
      "value": "0.99",
      "currency": "GBP"
    }
  }],
  "shippingWeight": {
    "value": "200",
    "unit": "grams"
  }
}

Java

Product product = new Product();

product.setOfferId("book123");
product.setTitle("A Tale of Two Cities");
product.setDescription("A classic novel about the French Revolution");
product.setLink("http://my-book-shop.com/tale-of-two-cities.html");
product.setImageLink("http://my-book-shop.com/tale-of-two-cities.jpg");
product.setContentLanguage("en");
product.setTargetCountry("GB");
product.setChannel("online");
product.setAvailability("in stock");
product.setCondition("new");
product.setGoogleProductCategory("Media > Books");
product.setGtin("9780007350896");

Price price = new Price();
price.setValue("2.50");
price.setCurrency("GBP");
product.setPrice(price);

Price shippingPrice = new Price();
shippingPrice.setValue("0.99");
shippingPrice.setCurrency("GBP");

ProductShipping shipping = new ProductShipping();
shipping.setPrice(shippingPrice);
shipping.setCountry("GB");
shipping.setService("Standard shipping");

ArrayList shippingList = new ArrayList();
shippingList.add(shipping);
product.setShipping(shippingList);

Product result = service.products().insert(merchantId, product).execute();

PHP

$product = new Google_Service_ShoppingContent_Product();
$product->setOfferId('book123');
$product->setTitle('A Tale of Two Cities');
$product->setDescription('A classic novel about the French Revolution');
$product->setLink('http://my-book-shop.com/tale-of-two-cities.html');
$product->setImageLink('http://my-book-shop.com/tale-of-two-cities.jpg');
$product->setContentLanguage('en');
$product->setTargetCountry('GB');
$product->setChannel('online');
$product->setAvailability('in stock');
$product->setCondition('new');
$product->setGoogleProductCategory('Media > Books');
$product->setGtin('9780007350896');

$price = new Google_Service_ShoppingContent_Price();
$price->setValue('2.50');
$price->setCurrency('GBP');

$shipping_price = new Google_Service_ShoppingContent_Price();
$shipping_price->setValue('0.99');
$shipping_price->setCurrency('GBP');

$shipping = new Google_Service_ShoppingContent_ProductShipping();
$shipping->setPrice($shipping_price);
$shipping->setCountry('GB');
$shipping->setService('Standard shipping');

$shipping_weight = new Google_Service_ShoppingContent_ProductShippingWeight();
$shipping_weight->setValue(200);
$shipping_weight->setUnit('grams');

$product->setPrice($price);
$product->setShipping(array($shipping));
$product->setShippingWeight($shipping_weight);

$result = $service->products->insert($merchant_id, $product);

Obtenir la liste des produits

Pour obtenir la liste des produits, utilisez le code suivant :

Protocole

GET /content/v2.1/YOUR_MERCHANT_ID/products

Java

List productsList = service.products().list(merchantId);

ProductsListResponse page = productsList.execute();
while ((page.getResources() != null) && !page.getResources().isEmpty()) {
  for (Product product : page.getResources()) {
    System.out.printf("%s %s%n", product.getId(), product.getTitle());
  }

  if (page.getNextPageToken() == null) {
    break;
  }

  productsList.setPageToken(page.getNextPageToken());
  page = productsList.execute();
}

PHP

$products = $service->products->listProducts($merchantId);
$parameters = array();
while (!empty($products->getResources()) {
  foreach ($products->getResources() as $product) {
    printf("%s %s\n", $product->getId(), $product->getTitle());
  }
  if (!empty($products->getNextPageToken()) {
    break;
  }
  $parameters['pageToken'] = $products->nextPageToken;
  $products = $service->products->listProducts($merchantId, $parameters);
}

Récupérer un produit spécifique

Pour récupérer un produit spécifique de la liste, utilisez le code suivant :

Protocole

GET /content/v2.1/YOUR_MERCHANT_ID/products/online:en:GB:book123

Java

Product product = service.products()
    .get(merchantId, "online:en:GB:book123")
    .execute();
System.out.printf("%s %s\n", product.getId(), product.getTitle());

PHP

$product = $service->products->get($merchant_id, 'online:en:GB:book123');
printf("%s %s\n", $product->getId(), $product->getTitle());

Mettre à jour la disponibilité des produits en ligne

Vous pouvez utiliser des flux supplémentaires dans la ressource Products pour mettre à jour les données produit en ligne à l'aide du code suivant :

Protocole

POST /content/v2.1/YOUR_MERCHANT_ID/products?YOUR_SUPPLEMENTAL_FEED_ID

{
  "offerId": "book123",
  "contentLanguage": "en",
  "targetCountry": "GB",
  "channel": "online",
  "availability": "out of stock"
}

Java

Product product = new Product();
// Mandatory Fields
product.setOfferId("book123");
product.setContentLanguage("en");
product.setTargetCountry("GB");
product.setChannel("online");

// Optional Fields to Update
product.setAvailability("out of stock");

// Your unique supplemental feedId
feedId=123456789

Product result = service.products().insert(merchantId, product, feedId).execute();

PHP

$product = new Google_Service_ShoppingContent_Product();
// Mandatory Fields
$product->setOfferId('book123');
$product->setContentLanguage('en');
$product->setTargetCountry('GB');
$product->setChannel('online');

// Optional Fields to Update
$product->setAvailability('out of stock');

// Your unique supplemental feedId
$feedId=123456789

$result = $service->products->insert($merchant_id, $product, $feedId);

Mettre à jour la disponibilité des produits en magasin

Vous pouvez utiliser le service Local Inventory pour mettre à jour les données produit en magasin à l'aide du code suivant :

Protocole

POST /content/v2.1/YOUR_MERCHANT_ID/localinventory/online/products/online:en:GB:book123

{
  "availability": "out of stock"
}

Java

Product product = new Product();
// Mandatory Fields
product.setOfferId("book123");
product.setContentLanguage("en");
product.setTargetCountry("GB");
product.setChannel("online");

// Optional Fields to Update
product.setAvailability("out of stock");

Product result = service.localinventory().insert(merchantId, product).execute();

PHP

$product = new Google_Service_ShoppingContent_Product();
// Mandatory Fields
$product->setOfferId('book123');
$product->setContentLanguage('en');
$product->setTargetCountry('GB');
$product->setChannel('online');

// Optional Fields to Update
$product->setAvailability('out of stock');

$result = $service->localinventory->insert($merchant_id, $product);