Esta página explica como fazer upload e gerenciar seus produtos de forma programática. Com a API Merchant Products, você pode inserir ou atualizar um produto em uma fonte de dados, recuperar um produto da sua conta e excluir um produto de uma fonte de dados.
A API Merchant Products contém dois recursos.
productInputs
representa as partes de entrada dos seus produtos.products
representa os produtos processados que foram criados com base nas partes de entrada.
O productInputs
pode ser principal e complementar, dependendo se ele é
enviado para uma
fonte de dados principal
ou uma
fonte de dados complementar.
Cada product
será criado a partir de um único productInput
principal e qualquer
número de productInputs
complementares.
É possível usar a API Merchant Products para criar catálogos de lojas on-line ou locais. Esses produtos podem aparecer em vários destinos de compras.
Você pode usar o recurso productInputs
depois de criar sua conta do Merchant Center, configurar sua primeira fonte de dados e fazer o upload de um conjunto inicial de produtos pela API.
Embora os comerciantes possam fazer upload de produtos usando um arquivo chamado PrimaryProductDataSource, há várias vantagens em criar e excluir produtos usando a API Merchant. Essas vantagens incluem tempo de resposta mais rápido e a capacidade de atualizar produtos em tempo real, sem a necessidade de gerenciar arquivos grandes. Pode levar até várias horas para que as mudanças de produtos feitas por chamadas de API sejam mostradas no banco de dados do Shopping.
Pré-requisitos
Se você não tiver uma fonte de dados, crie uma usando a API Merchant DataSources ou o Merchant Center.
Se você já tiver criado uma fonte de dados usando a interface do Merchant Center ou a API, poderá usar a API Merchant Products para adicionar seus produtos. Se você estiver usando a API Content for Shopping para adicionar produtos, consulte o guia de migração para saber como começar a usar a API Merchant Products.
Você é responsável por obedecer às políticas de anúncios do Shopping e listagens sem custo financeiro. Os anúncios do Shopping se reservam o direito de aplicar essas políticas e responder adequadamente se encontrarmos conteúdo ou comportamento que viole essas políticas.
Recursos
O recurso products
permite recuperar informações do produto do banco de dados do Shopping.
O recurso
productInput
representa os dados de entrada que você envia para um produto. Ela também fornece
métodos que permitem atualizar ou excluir informações de produtos uma por vez ou
muitas de uma vez no modo de lote. Um recurso
productInput
precisa ter os seguintes campos:
channel
: o canal do produto.offerId
: o identificador exclusivo do produto.contentLanguage
: o código de idioma ISO 639-1 de duas letras do produto.feedLabel
: o rótulo do feed do produto.
Faça upload de uma entrada de produto na sua conta
Para fazer upload de uma entrada de produto na sua conta, use o
método accounts.productInputs.insert
. É necessário transmitir o
identificador exclusivo da fonte de dados principal ou
complementar.
O exemplo de solicitação a seguir mostra como usar o
método accounts.productInputs.insert
para fazer upload de uma entrada de produto na
sua conta de comerciante. A solicitação define o preço e a região do frete, além de atributos
personalizados, como data de fabricação e tamanho.
POST https://merchantapi.googleapis.com/products/v1beta/accounts/{ACCOUNT_ID}/productInputs:insert?dataSource={DATASOURCE}
{
"name": "{PRODUCT_TITLE}",
"versionNumber": {VERSION_NUMBER},
"contentLanguage": "{CONTENT_LANGUAGE}",
"feedLabel": "{FEED_LABEL}",
"offerId": "{OFFER_ID}",
"channel": "ONLINE",
"attributes": {
"availability": "in stock",
"imageLink": "{IMAGE_LINK}",
"link": "{PRODUCT_LINK}",
"brand": "{BRAND_NAME}",
"price": {
"currencyCode": "{CURRENCY_CODE}",
"amountMicros": {PRICE}
},
"color": "red",
"productWeight": {
"value": 320,
"unit": "g"
},
"adult": false,
"shipping": [
{
"country": "GB",
"price": {
"amountMicros": {SHIPPING_COST},
"currencyCode": "{CURRENCY_CODE_SHIPPING}"
},
"postalCode": "{SHIPPING_POSTALCODE}",
"service": "",
"region": "{SHIPPING_REGION}",
"maxHandlingTime": "{MAX_HANDLING_TIME}",
"minHandlingTime": "{MIN_HANDLING_TIME}",
"maxTransitTime": "{MAX_TRANSIT_TIME}",
"minTransitTime": "{MIN_TRANSIT_TIME}"
}
],
"gender": "Female"
},
"customAttributes": [
{
"name": "size",
"value": "Large"
},
{
"name": "Date of Manufacturing",
"value": "2024-05-05"
}
]
}
Substitua:
- {ACCOUNT_ID}: o identificador exclusivo da sua conta do Merchant Center.
- {DATASOURCE}: o identificador exclusivo da fonte de dados. Ele precisa estar no formato
accounts/
{ACCOUNT_ID}/dataSources/
{DATASOURCE_ID}. - {PRODUCT_TITLE}: o nome do produto.
- {VERSION_NUMBER}: o número da versão do produto. Opcional.
- {CONTENT_LANGUAGE}: o código de idioma ISO 639-1 de duas letras do produto. Obrigatório.
- {FEED_LABEL}: o código de território CLDR da
região em que você quer vender o produto. Se o valor fornecido para
feedLabel
não for válido, o campotargetCountry
não será preenchido. - {OFFER_ID}: o identificador exclusivo do produto. Obrigatório.
- {IMAGE_LINK}: o link para a imagem do produto no seu site. Opcional.
- {PRODUCT_LINK}: o link para o produto no seu site. Opcional.
- {CURRENCY_CODE}: a moeda do preço usando sigla de três letras de acordo com a ISO 4217. Opcional.
- {PRICE}: o preço do produto representado como um número em micros. Opcional.
- {SHIPPING_COST}: o preço de frete fixo representado como um número. Opcional.
- {SHIPPING_POSTALCODE}: o intervalo de CEPs em que a taxa de frete é válida. Opcional.
- {MAX_HANDLING_TIME}: o tempo máximo em separação em dias úteis entre o recebimento e o envio do pedido. Opcional.
- {MIN_HANDLING_TIME}: o tempo mínimo em dias úteis entre o recebimento e o envio do pedido. O valor 0 significa que o pedido é entregue no mesmo dia em que é recebido. Opcional.
- {MAX_TRANSIT_TIME}: o tempo máximo em trânsito em dias úteis entre o envio e a entrega do pedido. Opcional.
- {MIN_TRANSIT_TIME}: o tempo mínimo em trânsito em dias úteis entre o envio e a entrega do pedido. O valor 0 significa que o pedido é entregue no mesmo dia em que é enviado. Opcional.
Quando a solicitação for executada, você vai receber a seguinte resposta:
{
"name": "{PRODUCT_NAME}",
"product": "{PRODUCT_ID}",
"channel": "ONLINE",
"offerId": "{OFFER_ID}",
"contentLanguage": "{CONTENT_LANGUAGE}",
"feedLabel": "{FEED_LABEL}",
"versionNumber": "{VERSION_NUMBER}",
"attributes": {
"link": "{PRODUCT_LINK}",
"imageLink": "{IMAGE_LINK}",
"adult": false,
"availability": "in stock",
"brand": "{BRAND_NAME}",
"color": "red",
"gender": "Female",
"price": {
"amountMicros": "{PRICE}",
"currencyCode": "{CURRENCY_CODE}"
},
"shipping": [
{
"price": {
"amountMicros": "{SHIPPING_COST}",
"currencyCode": "{CURRENCY_CODE}"
},
"country": "{SHIPPING_COUNTRY}",
"region": "{SHIPPING_REGION}",
"postalCode": "{SHIPPING_POSTALCODE}",
"minHandlingTime": "{MIN_HANDLING_TIME}",
"maxHandlingTime": "{MAX_HANDLING_TIME}",
"minTransitTime": "{MIN_TRANSIT_TIME}",
"maxTransitTime": "{MAX_TRANSIT_TIME}"
}
],
"productWeight": {
"value": 320,
"unit": "g"
}
},
"customAttributes": [
{
"name": "Size",
"value": "Large"
},
{
"name": "Date of Manufacturing",
"value": "2024-05-05"
}
]
}
Extrair um produto processado da sua conta
Para recuperar um produto processado da sua conta, use o
método accounts.products.get
. Pode levar alguns minutos para
o produto processado aparecer após a inserção.
É possível conferir o nome do recurso do produto processado no campo product
na
resposta de accounts.productInputs.insert
.
Excluir uma entrada de produto da sua conta
Para excluir uma entrada de produto da sua conta, use o
método accounts.productInputs.delete
. É necessário transmitir o
identificador exclusivo da fonte de dados principal ou complementar à qual o produto
pertence para excluir um produto usando a API Merchant Products.
Listar produtos da sua conta
Para listar os produtos processados na sua conta, use o método
accounts.products.list
.