El products
recurso permite una gran flexibilidad y control sobre más
de 60 atributos de productos.Hay varios campos obligatorios
que se deben incluir para que se apruebe su publicación en Google Shopping.
Existen varios campos opcionales que pueden volverse obligatorios según las diferentes condiciones, como la ubicación, el tipo de producto, las variantes de productos y los paquetes de productos. Para obtener más detalles sobre los más de 60 parámetros opcionales que se pueden
configurar para los productos, consulta las especificaciones de datos de productos.
El recurso products te permite insert, get, update y delete un
producto a la vez, y list todos los productos en la base de datos de Merchant Center.

El recurso
productstatuses
se puede usar para verificar el estado de aprobación o rechazo de un producto específico
para un destino. Consulta la guía
de estado del producto para obtener más detalles sobre qué
productos pueden tener problemas de calidad de los datos y cuáles podrían ser esos problemas.
En nuestros ejemplos de la API, usamos tres productos: dos camisetas de Google y una gorra de Google. Usamos un conjunto mínimo de datos de productos que se muestra en la siguiente tabla para realizar llamadas al recurso products para insertar, obtener, actualizar, enumerar y borrar productos individuales y lotes de productos.
Te recomendamos que la información de envío y fiscal se configure a nivel de la cuenta en lugar de a nivel del producto.
En el caso de las cuentas secundarias de varios vendedores de
los mercados, todos los productos deben
incluir el external_seller_id campo. Consulta
IDs de productos para obtener más detalles.
![]() |
![]() |
![]() |
|
| id | online:en:US:1111111111 | online:en:US:2222222222 | online:en:US:3333333333 |
| offerId | 1111111111 | 2222222222 | 3333333333 |
| título | The Black Google Tee | Google Tee Green | Google Twill Cap |
| descripción | The Black Google Tee | Camiseta de Google 100% algodón | Gorra clásica de Google |
| ID de grupo de artículos | google_tee | google_tee | |
| vínculo | http://my.site.com/blacktee | http://my.site.com/greentee | http://my.site.com/blackhat |
| de transición | Nuevo | Nuevo | Nuevo |
| precio | USD 21.99 | USD 21.99 | USD 10.99 |
| availability | En stock | En stock | En stock |
| imageLink | https://shop.example.com/ |
https://shop.example.com/ |
https://shop.example.com/ |
| gtin | 9504000059422 | 9504000059446 | 9504000059452 |
| mpn | 00638NIC | 00638ANG | 00638ABC |
| brand | |||
| Categoría producto google | Ropa y accesorios > Ropa | Ropa y accesorios > Ropa | Ropa y accesorios > Accesorios de ropa > Sombreros |
| color | negro | verde | negro |
| tamaño | L | M | M |
| age_group | adult | adult | adult |
| género | male | male | unisex |
| included_destination | Shopping Actions, Shopping Ads | Shopping Actions, Shopping Ads | Shopping Actions |
products.insert
Para insertar un solo producto, usa la siguiente URL de solicitud, especificando tu ID de comerciante y un cuerpo JSON de muestra. Una inserción crea el producto nuevo. Si existen valores para los atributos channel, contentLanguage, offerId y feedLabel para un producto determinado, este método actualiza esa entrada y reemplaza todos los datos de las llamadas a la API anteriores para el producto determinado.
Los productos que se excluyan de todos los destinos por más de 7 días se borrarán automáticamente.
En el ejemplo que se muestra, se inserta una nueva "Black Google Tee" en los productos disponibles.
POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products
Ejemplo de llamada al cuerpo de la solicitud para products.insert:
{
"kind": "content#product",
"offerId": "1111111111",
"title": "Google Tee Black",
"description": "The Black Google Tee is available in unisex sizing.",
"link": "http://my.site.com/blacktee/",
"imageLink": "https://shop.example.com/.../images/GGOEGXXX1100.jpg",
"contentLanguage": "en",
"targetCountry": "US",
"feedLabel": "US",
"channel": "online",
"ageGroup": "adult",
"availability": "in stock",
"availabilityDate": "2019-01-25T13:00:00-08:00",
"brand": "Google",
"color": "black",
"condition": "new",
"gender": "male",
"googleProductCategory": "1604",
"gtin": "608802531656",
"itemGroupId": "google_tee",
"mpn": "608802531656",
"price": {
"value": "21.99",
"currency": "USD"
},
"sizes": [
"Large"
]
}
Un producto también puede tener atributos personalizados establecidos en el cuerpo JSON. Por ejemplo, podemos establecer un purchase_quantity_limit para un solo producto para limitar la cantidad de artículos que un cliente puede pedir:
"customAttributes": [
{
"name": "purchase_quantity_limit",
"value": "4"
}
]
Ten en cuenta que el atributo personalizado purchase_quantity_limit establece un límite de compra por pedido del cliente en la definición del producto y también es compatible con los feeds. Actualmente, el atributo está en versión beta hasta que la API lo admita por completo. Un comerciante puede agregar cualquier atributo personalizado adicional, pero no genera ningún procesamiento específico por parte de las APIs.
Una llamada correcta muestra un código HTTP 200 y un cuerpo de respuesta que contiene el recurso de producto insertado con solo id, offerId, contentLanguage, feedLabel y channel propagados:
{
"kind": "content#product",
"id": "online:en:US:1111111111",
"offerId": "1111111111",
"contentLanguage": "en",
"targetCountry": "US",
"feedLabel": "US",
"channel": "online"
}
products.get
Para obtener información sobre un producto específico en la base de datos de Merchant Center, usa products.get. Pueden pasar varios minutos antes de que un producto recién insertado esté disponible a través de esta llamada.
Usa la siguiente URL y los parámetros de solicitud HTTP, tu ID de comerciante y el ID de producto (formato de ID de REST) para el producto que deseas obtener:
GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}
Una llamada correcta muestra un HTTP 200 y el "recurso de producto" en el cuerpo de la respuesta. A continuación, se muestran datos de productos de muestra recuperados de un producto con el ID online:en:US:1111111111:
{
"kind": "content#product",
"id": "online:en:US:1111111111",
"offerId": "1111111111",
"source": "api",
"title": "Google Tee Black",
"description": "The Black Google Tee is available in unisex sizing.",
"link": "http://my.site.com/blacktee/",
"imageLink": "https://shop.example.com/.../images/GGOEGXXX1100.jpg",
"contentLanguage": "en",
"targetCountry": "US",
"feedLabel": "US",
"channel": "online",
"ageGroup": "adult",
"availability": "in stock",
"availabilityDate": "2019-01-25T13:00:00-08:00",
"brand": "Google",
"color": "black",
"condition": "new",
"gender": "male",
"googleProductCategory": "1604",
"gtin": "608802531656",
"itemGroupId": "google_tee",
"mpn": "608802531656",
"price": {
"value": "21.99",
"currency": "USD"
},
"sizes": [
"Large"
]
}
products.update
Para actualizar un solo producto, usa la siguiente URL de solicitud con el método PATCH, especificando tu ID de comerciante, el ID de producto y un cuerpo JSON que contenga los datos que deseas actualizar para el producto. A diferencia de products.insert, que requiere que se proporcionen todos los campos aplicables, products.update solo requiere que especifiques los campos que deseas cambiar.
Para agregar o modificar un atributo, especifica el campo con el valor nuevo en el cuerpo JSON. En el ejemplo que se muestra, se actualizarán el title y el description de una "Black Google Tee" existente con los datos de productos proporcionados en el cuerpo de la solicitud, sin modificar los demás campos.
PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}
Ejemplo de llamada al cuerpo de la solicitud para products.update:
{
"title": "Google Tee Black Limited Edition",
"description": "The Limited Edition Tee is available in unisex sizing and features a retail fit."
}
Solo se pueden actualizar los campos de nivel superior a través de una solicitud products.update.
Si deseas actualizar campos anidados, debes proporcionar todo el objeto de nivel superior.
En el ejemplo que se muestra, se actualizará el objeto salePrice de nivel superior, incluidos los campos anidados de un producto existente, con los datos de productos proporcionados en el cuerpo de la solicitud, sin modificar los demás campos.
PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}
{
"salePrice": {
"value": "17.99",
"currency": "USD"
}
}
Para seleccionar ciertos campos para actualizar sin realizar cambios en los demás incluidos en el cuerpo de la solicitud, puedes especificar un updateMask. Este parámetro de cadena de consulta debe ser una lista de campos separados por comas que deseas modificar.
Un updateMask es útil cuando deseas afirmar que solo se actualizarán los campos con nombre. No especificar un updateMask equivale a marcar todos los campos de la solicitud para que se actualicen, como se muestra en el ejemplo anterior.
En el ejemplo que se muestra, se actualizarán solo la description y la availability
de una "Black Google Tee" existente con los datos de productos respectivos proporcionados en
el cuerpo de la solicitud, sin modificar los demás campos, incluido el title
PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}?updateMask=description,availability
Ejemplo de llamada al cuerpo de la solicitud para products.update:
{
"title": "Google Tee Black",
"description": "This Limited Edition is out of print.",
"availability": "out of stock"
}
Si se proporciona un campo en la lista updateMask, pero no en el cuerpo de la solicitud, ese campo se borrará del recurso Product, si existe.
En el ejemplo que se muestra, se usará updateMask para quitar el valor del campo salePrice.
PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}?updateMask=salePrice
El cuerpo de la solicitud de muestra no debe incluir el campo salePrice para borrarlo. Tampoco puedes proporcionar un cuerpo vacío. Los demás campos no se modificarán, siempre que no aparezcan en el updateMask.
Para usar updateMask en una solicitud products.custombatch, se debe especificar updateMask en el cuerpo de la solicitud.
En el ejemplo que se muestra, se actualizarán el price y el availability de una "Black Google Tee" existente con products.custombatch con los datos de productos proporcionados en la entrada del lote, sin modificar los demás campos, incluidos title y description
POST https://shoppingcontent.googleapis.com/content/v2.1/products/batch
{
"entries": [{
"batchId": 1,
"merchantId": "MERCHANT_ID",
"productId": "online:en:US:1111111111",
"method": "update",
"product": {
"title": "Google Tee Black",
"description": "The Black Google Tee is available in unisex sizing.",
"availability": "in stock",
"price": {
"value": "19.99",
"currency": "USD"
}
},
"updateMask": "availability,price"
}]
}
products.delete
Para borrar un solo producto, usa products.delete con la URL de solicitud HTTP de muestra, tu ID de comerciante y el ID de producto (en formato de ID de REST, como online:en:US:1111111111) para el producto que deseas borrar:
DELETE https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}
Una respuesta correcta muestra un HTTP Status 204 sin cuerpo de respuesta.
products.list
products.list muestra todos los productos que un comerciante tiene en la base de datos de Merchant Center. Usa la siguiente URL de solicitud:
GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products
Una llamada correcta muestra un HTTP 200 y datos JSON para los productos en la clave "resources".
Se muestran los siguientes tres productos de ejemplo:
{
"kind": "content#productsListResponse",
"resources": [
{
"kind": "content#product",
"id": "online:en:US:1111111111",
"offerId": "1111111111",
"source": "api",
"title": "Google Tee Black",
"description": "The Black Google Tee is available in unisex sizing.",
"link": "http://my.site.com/blacktee/",
"imageLink": "https://shop.example.com/.../images/GGOEGXXX1100.jpg",
"contentLanguage": "en",
"targetCountry": "US",
"feedLabel": "US",
"channel": "online",
"ageGroup": "adult",
"availability": "in stock",
"availabilityDate": "2019-01-25T13:00:00-08:00",
"brand": "Google",
"color": "black",
"condition": "new",
"gender": "male",
"googleProductCategory": "1604",
"gtin": "608802531656",
"itemGroupId": "google_tee",
"mpn": "608802531656",
"price": {
"value": "21.99",
"currency": "USD"
},
"sizes": [
"Large"
]
},
{
"kind": "content#product",
"id": "online:en:US:2222222222",
"offerId": "2222222222",
"source": "api",
"title": "Google Tee Green",
"description": "100% cotton jersey fabric sets this Google t-shirt above the crowd.
Features the google logo across the chest. Unisex sizing.",
"link": "http://my.site.com/greentee/",
"imageLink": "https://shop.example.com/.../images/GGOEGXXX0906.jpg",
"contentLanguage": "en",
"targetCountry": "US",
"feedLabel": "US",
"channel": "online",
"ageGroup": "adult",
"availability": "in stock",
"availabilityDate": "2019-01-25T13:00:00-08:00",
"brand": "Google",
"color": "green",
"condition": "new",
"gender": "male",
"googleProductCategory": "1604",
"gtin": "608802531649",
"itemGroupId": "google_tee",
"mpn": "608802531649",
"price": {
"value": "21.99",
"currency": "USD"
},
"sizes": [
"Medium"
]
},
{
"kind": "content#product",
"id": "online:en:US:3333333333",
"offerId": "3333333333",
"source": "api",
"title": "Google Twill Cap",
"description": "Classic urban styling distinguishes this Google cap.
Retains its shape, even when not being worn.",
"link": "http://my.site.com/blackhat/",
"imageLink": "https://shop.example.com/.../images/GGOEGHPB071610.jpg",
"contentLanguage": "en",
"targetCountry": "US",
"feedLabel": "US",
"channel": "online",
"ageGroup": "adult",
"availability": "in stock",
"availabilityDate": "2019-01-07T13:00:00-08:00",
"brand": "Google",
"color": "black",
"condition": "new",
"gender": "male",
"googleProductCategory": "173",
"gtin": "689355417246",
"mpn": "689355417246",
"price": {
"value": "10.99",
"currency": "USD"
},
"sizes": [
"Medium"
]
}
]
}


