O recurso products
permite muita flexibilidade e controle sobre mais de
60 atributos de produto.Há vários campos obrigatórios
que precisam ser incluídos para aprovação e exibição no Google Shopping.
Há vários campos opcionais que podem se tornar obrigatórios com base em condições variáveis, como local, tipo de produto, variantes e pacotes de produtos. Para mais detalhes sobre os mais de 60 parâmetros opcionais que podem ser configurados para produtos, consulte as Especificações dos dados de produtos.
Com o recurso products
, é possível insert
, get
, update
e delete
um produto por vez, além de list
todos os produtos no banco de dados do Merchant Center.
O recurso
productstatuses
pode ser usado para verificar o status de aprovação ou reprovação de um produto
específico para um destino. Consulte o guia de status do produto para mais detalhes sobre quais produtos podem ter problemas de qualidade de dados e quais são esses problemas.
Nos nossos exemplos de API, usamos três produtos: duas camisetas e um boné do Google. Usamos um conjunto mínimo de dados de produtos mostrados na tabela abaixo para fazer chamadas de recursos products
e inserir, receber, atualizar, listar e excluir produtos individuais e em lote.
Recomendamos que as informações de frete e tributos sejam configuradas no nível da conta, e não no nível do produto.
Para subcontas de vários vendedores de marketplaces, todos os produtos precisam incluir o campo external_seller_id
. Consulte
IDs de produtos para mais detalhes.
![]() |
![]() |
![]() |
|
ID | online:en:US:1111111111 | online:en:US:2222222222 | online:en:US:3333333333 |
offerId | 1111111111 | 2222222222 | 3333333333 |
título | Camiseta preta do Google | Camiseta Google verde | Boné de sarja do Google |
descrição | Camiseta preta do Google | Camiseta do Google 100% algodão | Boné clássico do Google |
ID do grupo de itens | google_tee | google_tee | |
link | http://my.site.com/blacktee | http://my.site.com/greentee | http://my.site.com/blackhat |
condição | Novo | Novo | Novo |
preço | US$ 21,99 | US$ 21,99 | 10.99 BRL |
disponibilidade | Em estoque | Em estoque | Em estoque |
imageLink | https://shop.example.com/ |
https://shop.example.com/ |
https://shop.example.com/ |
gtin | 9504000059422 | 9504000059446 | 9504000059452 |
mpn | 00638NIC | 00638ANG | 00638ABC |
marca | |||
Categoria Google do produto | Vestuário e acessórios > Roupas | Vestuário e acessórios > Roupas | Vestuário e acessórios > Acessórios de vestuário > Chapéus |
cor | preto | verde | preto |
tamanho | L | M | M |
age_group | adulto | adulto | adulto |
gênero | masculino | masculino | unissex |
included_destination | Shopping Actions, Anúncios do Shopping | Shopping Actions, Anúncios do Shopping | Shopping Actions |
products.insert
Para inserir um único produto, use o seguinte URL de solicitação, especificando seu ID do comerciante e um corpo JSON de exemplo. Uma inserção cria o novo produto. Se houver valores para os atributos channel
, contentLanguage
, offerId
e feedLabel
de um determinado produto, esse método vai atualizar a entrada e substituir todos os dados das chamadas de API anteriores para o produto em questão.
Os produtos removidos de todos os destinos por mais de sete dias são excluídos automaticamente.
O exemplo mostrado insere uma nova camiseta preta do Google aos produtos disponíveis.
POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products
Exemplo de chamada do corpo da solicitação 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"
]
}
Um produto também pode ter atributos personalizados definidos no corpo JSON. Por exemplo, podemos definir um purchase_quantity_limit
para um único produto e limitar o número de itens que um cliente pode pedir:
"customAttributes": [
{
"name": "purchase_quantity_limit",
"value": "4"
}
]
O atributo personalizado purchase_quantity_limit
define um limite de compra por pedido do cliente para a definição do produto e também é compatível com feeds. O atributo está atualmente na versão Beta até ser totalmente compatível com a API. Qualquer atributo personalizado adicional pode ser adicionado por um comerciante, mas não resulta em nenhum processamento específico pelas APIs.
Uma chamada bem-sucedida retorna um código HTTP 200
e um corpo de resposta contendo
o recurso de produto inserido com apenas id
, offerId
, contentLanguage
,
feedLabel
e channel
preenchidos:
{
"kind": "content#product",
"id": "online:en:US:1111111111",
"offerId": "1111111111",
"contentLanguage": "en",
"targetCountry": "US",
"feedLabel": "US",
"channel": "online"
}
products.get
Para receber informações sobre um produto específico no banco de dados do Merchant Center, use
products.get
. Pode levar alguns minutos para que um produto recém-inserido esteja disponível por essa chamada.
Use o URL e os parâmetros da solicitação HTTP a seguir, seu ID do comerciante e o ID do produto (formato de ID REST) do item que você quer receber:
GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}
Uma chamada bem-sucedida retorna um HTTP 200
e o "recurso de produto" no corpo da resposta. Confira um exemplo de dados de produto recuperados de um item com 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 atualizar um único produto, use o seguinte URL de solicitação com o método PATCH,
especificando seu ID do comerciante, ID do produto e um corpo JSON contendo os dados que você
quer atualizar para o produto. Ao contrário de products.insert
, que exige que todos os campos aplicáveis sejam fornecidos, products.update
só exige que você especifique os campos que quer mudar.
Para adicionar ou modificar um atributo, especifique o campo com o novo valor no corpo
JSON. O exemplo mostrado vai atualizar o title
e o description
de uma
"Black Google Tee" (camiseta preta do Google) com os dados do produto fornecidos no corpo da solicitação, deixando
todos os outros campos inalterados.
PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}
Exemplo de chamada do corpo da solicitação para products.update
:
{
"title": "Google Tee Black Limited Edition",
"description": "The Limited Edition Tee is available in unisex sizing and features a retail fit."
}
Somente campos de nível superior podem ser atualizados com uma solicitação products.update
.
Se você quiser atualizar campos aninhados, forneça o objeto de nível superior inteiro.
O exemplo mostrado vai atualizar o objeto salePrice
de nível superior, incluindo os campos aninhados de um produto existente, com os dados do produto fornecidos no corpo da solicitação, deixando todos os outros campos inalterados.
PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}
{
"salePrice": {
"value": "17.99",
"currency": "USD"
}
}
Para selecionar determinados campos a serem atualizados sem fazer mudanças nos outros incluídos
no corpo da solicitação, especifique um updateMask
. Esse parâmetro de string de consulta precisa ser uma lista separada por vírgulas dos campos que você quer modificar.
Um updateMask
é útil quando você quer afirmar que apenas os campos nomeados serão atualizados. Não especificar um updateMask
é o equivalente a marcar todos os campos na solicitação para serem atualizados, como mostrado no exemplo acima.
O exemplo mostrado vai atualizar apenas o description
e o availability
de uma "Camiseta preta do Google" com os dados do produto fornecidos no corpo da solicitação, deixando todos os outros campos, incluindo o title
, intactos.
PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}?updateMask=description,availability
Exemplo de chamada do corpo da solicitação para products.update
:
{
"title": "Google Tee Black",
"description": "This Limited Edition is out of print.",
"availability": "out of stock"
}
Se um campo for fornecido na lista updateMask
, mas não no corpo da solicitação,
ele será excluído do recurso Product
, se existir.
O exemplo mostrado vai usar updateMask
para remover o valor do campo salePrice
.
PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}?updateMask=salePrice
O corpo da solicitação de exemplo não deve incluir o campo salePrice
para
excluí-lo. Também é possível não fornecer um corpo ou enviar um corpo vazio. Os outros campos vão permanecer inalterados, desde que não apareçam no updateMask
.
Para usar updateMask
em uma solicitação products.custombatch
, o updateMask
precisa ser especificado no corpo da solicitação.
O exemplo mostrado vai atualizar o price
e o availability
de uma
"Black Google Tee" usando products.custombatch
com os dados do produto fornecidos
na entrada em lote, deixando todos os outros campos, incluindo title
e description
inalterados.
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 excluir um único produto, use products.delete
com o URL de solicitação HTTP de amostra, seu ID do comerciante e o ID do produto (no formato de ID REST, como online:en:US:1111111111
) do item que você quer excluir:
DELETE https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}
Uma resposta bem-sucedida retorna um HTTP Status 204
sem corpo de resposta.
products.list
O products.list
lista todos os produtos que um comerciante tem no banco de dados do Merchant Center. Use o seguinte URL de solicitação:
GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products
Uma chamada bem-sucedida retorna um HTTP 200
e dados JSON para produtos na chave "resources".
Os três exemplos de produtos a seguir são retornados:
{
"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"
]
}
]
}