Usa feeds complementarios con Content API

Puedes usar feeds complementarios para realizar actualizaciones parciales en los datos de productos. Para ello, agrega feedId como parámetro de búsqueda cuando realices llamadas a los métodos products.insert, products.delete, products.custombatch.insert y products.custombatch.delete.

Por ejemplo, puedes realizar una llamada de método de 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 de productos que envías en el cuerpo de la solicitud y los reemplaza, si existen. Cuando se usa un feed complementario, este método no modifica los demás campos de productos, a menos que 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 mediante una solicitud de feed complementario y, luego, no incluyes el campo en una solicitud posterior, los datos del campo omitido se quitarán del feed. Este comportamiento difiere de llamar 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 feed complementario 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 “agotado”, puedes usar el siguiente cuerpo de solicitud para realizar una llamada al método Product.insert de 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 las llamadas a products.insert agregaron previamente con el feed complementario especificado. Llamar a este método para un feed complementario no afecta los datos de productos originales que se agregaron antes de que se realizara la llamada(Product.insert) al feed complementario. Es como quitar una capa de datos de un feed específico, los datos agregados a través de otros feeds no se verán afectados y el producto se revertirá efectivamente a su estado anterior antes de agregar 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 products.delete del feed complementario, en el que productId es el ID de REST del producto, representado de la siguiente manera: channel:contentLanguage:feedLabel:offerId:

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

No se necesita ningún cuerpo de solicitud para las llamadas al método products.delete de feeds complementarios.

products.custombatch

Los métodos custombatch te permiten aplicar insert o delete datos del feed complementario para varios productos mediante una sola llamada a la API a fin de minimizar la cantidad de llamadas a la API realizadas.

Usa la siguiente URL de solicitud para hacer una llamada a custombatch:

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

Para todas las llamadas 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 feed complementario al método products.custombatch:insert, debes incluir 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 de productos son opcionales.

Ejemplo

Si quieres actualizar el valor 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 de dos productos mediante un feed complementario específico, puedes usar la siguiente solicitud y 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"
    }
  ]
}