Puedes usar feeds complementarios para realizar actualizaciones parciales en los datos de productos. Para ello, agrega
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 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 producto que envías
en el cuerpo de la solicitud y los reemplaza si existen. Cuando se usa un feed complementario, este método deja todos los demás campos de productos sin cambios, a menos que se hayan incluido en una solicitud anterior del mismo feed. Si bien los datos agregados a través de otros feeds no se ven afectados, cada solicitud reemplaza las solicitudes anteriores del 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, lo 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 Product.insert
del feed complementario:
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
en 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
antes agregaron mediante llamadas a products.insert
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 realizaran las llamadas Product.insert
del feed complementario. Considéralo 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á
de forma efectiva a su estado anterior antes de que se agregara la capa de 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
de feed complementario, en el que productId
es el ID de REST del producto, que se representa como 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 de método products.delete
de feeds complementarios.
products.custombatch
Los métodos custombatch
te permiten aplicar insert
o delete
a los datos de feeds complementarios de varios productos con una sola llamada a la API para minimizar la cantidad de llamadas a la API.
Usa la siguiente URL de solicitud para realizar una llamada a custombatch
:
https://shoppingcontent.googleapis.com/content/v2.1/products/batch
Para todas las llamadas a custombatch
de feeds complementarios, 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 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 de productos son opcionales.
Ejemplo
Si quieres actualizar el valor price
de dos productos existentes, puedes usar la siguiente solicitud para realizar una llamada de 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 en dos productos con 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"
}
]
}