Usa feeds complementarios con Content API

Puedes usar feeds complementarios para realizar actualizaciones parciales de los datos de productos agregando feedId como parámetro de consulta cuando realices llamadas a los métodos products.insert, products.delete, products.custombatch.insert y products.custombatch.delete.

Por ejemplo, puedes realizar una llamada al método del feed complementario products.insert a la siguiente URL:

POST https://shoppingcontent.googleapis.com/content/v2.1/merchantId/products?feedId=feedId

products.insert

El método products.insert del feed complementario agrega los campos del producto que envías en el cuerpo de la solicitud y reemplaza los campos existentes. Cuando se usa un feed complementario, este método deja sin cambios todos los demás campos del producto, a menos que los campos se hayan incluido en una solicitud anterior para el mismo feed. Si bien los datos agregados a través de otros feeds no se ven afectados, cada solicitud reemplaza las solicitudes anteriores para el mismo feed. Esto significa que, si agregas o actualizas un campo a través de una solicitud de feed complementario y, luego, no lo incluyes en una solicitud posterior, los datos del campo omitido se quitarán del feed. Este comportamiento difiere de la llamada a products.insert sin un feed complementario, que borra todos los datos de productos existentes y los reemplaza por los campos que envías en el cuerpo de la solicitud.

Usa la siguiente URL para realizar una solicitud al servicio de feeds complementarios Product.insert:

POST https://shoppingcontent.googleapis.com/content/v2.1/merchantId/products?feedId=feedId

Debes incluir los campos offerId, feedLabel, channel y contentLanguage en el cuerpo de la solicitud. Todos los demás campos son opcionales.

Ejemplo

Para cambiar la disponibilidad de un producto de “en stock” a “sin stock”, puedes usar el siguiente cuerpo de la solicitud para realizar una llamada al método Product.insert de los feeds complementarios:

{
 "offerId": "1111111111",
 "contentLanguage": "en",
 "feedLabel": "US",
 "channel": "online",
 "availability": "out of stock",
}

products.delete

El método products.delete quita todos los datos complementarios que se agregaron anteriormente con llamadas a products.insert usando el feed complementario especificado. Llamar a este método para un feed complementario no afecta los datos de productos originales agregados antes de que se realizaran las llamadas a Product.insert del feed complementario. Puedes pensar en esto como quitar una capa de datos para un feed específico. Los datos agregados a través de otros feeds no se ven afectados, y el producto vuelve a su estado anterior antes de que se agregara la capa del feed complementario. Esto difiere de llamar a products.delete sin un feed complementario, lo que borra todo el producto y todos sus datos.

Usa la siguiente URL para realizar una solicitud al servicio de feeds complementarios products.delete, en la que productId es el ID de REST del producto, representado como channel:contentLanguage:feedLabel:offerId:

DELETE https://shoppingcontent.googleapis.com/content/v2.1/merchantId/products/productId?feedId=feedId

No se necesita un cuerpo de solicitud para las llamadas al método products.delete de los feeds complementarios.

products.custombatch

Los métodos custombatch te permiten insert o delete datos de feeds complementarios para varios productos con una sola llamada a la API, lo que minimiza la cantidad de llamadas a la API realizadas.

Usa la siguiente URL de solicitud para realizar una llamada custombatch:

https://shoppingcontent.googleapis.com/content/v2.1/products/batch

Para todas las llamadas a custombatch del feed complementario, debes incluir los parámetros batchId, merchantID, method y feedId en el cuerpo de la solicitud.

products.custombatch:insert

Cuando realices llamadas de feeds complementarios al método products.custombatch:insert, debes incluir los parámetros offerId, feedLabel, channel y contentLanguage en el cuerpo de la solicitud, además de los parámetros obligatorios batchId, merchantID y method. Todos los demás campos del producto son opcionales.

Ejemplo

Para actualizar el valor de price de dos productos existentes, puedes usar la siguiente solicitud para realizar una llamada al método products.custombatch:insert:

{
  "entries": [
    {
      "batchId": 1111,
      "merchantId": 1234567,
      "method": "insert",
      "feedId": "7654321",
      "product": {
         "offerId": "1111111111",
         "contentLanguage": "en",
         "targetCountry": "US",
         "feedLabel": "US",
         "channel": "online",
         "price": {
          "value": "30.99",
          "currency": "USD"
         }
      }
    },
    {
      "batchId": 1112,
      "merchantId": 1234567,
      "method": "insert",
      "feedId": "7654321",
      "product": {
         "offerId": "2222222222",
         "contentLanguage": "en",
         "targetCountry": "US",
         "feedLabel": "US",
         "channel": "online",
         "price": {
          "value": "33.99",
          "currency": "USD"
         },
      },
    }
}

products.custombatch:delete

Para quitar todas las actualizaciones realizadas a dos productos a través de un feed complementario especificado, puedes usar la siguiente solicitud para realizar una llamada al método products.custombatch:delete:

{
  "entries": [
    {
      "batchId": 1115,
      "merchantId": 1234567,
      "method": "delete",
      "feedId": "7654321",
      "productId": "online:en:US:1111111111"
    },
    {
      "batchId": 1116,
      "merchantId": 1234567,
      "method": "delete",
      "feedId": "7654321",
      "productId": "online:en:US:2222222222"
    }
  ]
}