chamadas de recursos de produtos

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/store/20160512512/assets/items/images/GGOEGXXX1100.jpg https://shop.example.com/store/20160512512/assets/items/images/GGOEGXXX0906.jpg https://shop.example.com/store/20160512512/assets/items/images/GGOEGHPB071610.jpg
gtin 9504000059422 9504000059446 9504000059452
mpn 00638NIC 00638ANG 00638ABC
marca Google Google Google
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"
   ]
  }
 ]
}