A API Merchant apresenta uma maneira mais robusta e intuitiva de gerenciar os dados de produtos. A principal mudança é a separação dos dados de produtos em dois recursos distintos: ProductInput para enviar seus dados e Product para visualizar a versão final processada, incluindo o status e os problemas do produto. Essa nova estrutura oferece uma experiência mais previsível e transparente.
Este guia mostra as principais diferenças para ajudar você a migrar sua integração da API Content for Shopping. Para um guia detalhado sobre como usar os novos recursos, consulte Gerenciar seus produtos.
principais diferenças
Confira as mudanças mais significativas na forma de gerenciar produtos na API Merchant em comparação com a API Content for Shopping:
- Recursos dedicados para dados de entrada e processados: a API Merchant divide o gerenciamento de produtos em dois recursos. Você pode usar o recurso - ProductInputpara inserir, atualizar e excluir os dados de produtos. Você pode usar o recurso- Productsomente leitura para ver o produto final depois que o Google processa suas entradas, aplica regras e combina dados de fontes complementares.
- Status do produto integrado: o serviço - productstatusesé removido. Os problemas de validação de produtos e os status de destino agora estão incluídos diretamente no recurso- Productno campo- productStatus, simplificando a recuperação de dados.
- Atualizações de produtos previsíveis: o novo método - productInputs.patchmodifica diretamente uma entrada de produto específica. Essa é uma melhoria significativa em relação à API Content for Shopping, em que as atualizações podiam ser substituídas inesperadamente por outros uploads de feed. Na API Merchant, uma atualização permanece até que a entrada de produto específica seja atualizada ou excluída novamente. As atualizações de produtos são aplicadas no recurso- ProductInputem vez do recurso- Productprocessado.
- Escolha sua fonte de dados para um gerenciamento mais limpo: todas as operações de gravação - productInputsagora exigem um parâmetro de consulta- dataSource, deixando explícito qual fonte de dados você está modificando. Isso é especialmente útil se você tiver várias fontes de dados.
- Novos identificadores de recursos: agora os produtos são identificados por um recurso RESTful - nameem vez do campo- id. O formato é- accounts/{account}/products/{product}.
- Sem lotes personalizados: o método - custombatchnão está mais disponível. É possível usar solicitações assíncronas ou lotes HTTP para enviar várias solicitações em uma única chamada HTTP.
- Fontes de dados para qualquer rótulo e idioma do feed: a API Merchant permite criar fontes de dados sem especificar o rótulo e o idioma do feed. Assim, é possível inserir produtos com qualquer rótulo e idioma. 
Solicitações
Esta seção compara os formatos de solicitação da API Content for Shopping e da API Merchant.
| Descrição da solicitação | API Content for Shopping | API Merchant | 
|---|---|---|
| Receber um produto | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} | GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product} | 
| Listar produtos | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products | GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products | 
| Inserir um produto | POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products | POST https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs:insert | 
| Atualizar um produto | PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} | PATCH https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput} | 
| Excluir um produto | DELETE https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} | DELETE https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput} | 
| Receber status do produto | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses/{productId} | GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product} | 
| Listar status dos produtos | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses | GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products | 
| Agrupar várias solicitações | POST https://shoppingcontent.googleapis.com/content/v2.1/products/custombatch | Solicitações assíncronas, loteamento HTTP | 
Identificadores
O formato dos identificadores de produtos mudou na API Merchant para um nome de recurso REST padrão.
| Descrição do identificador | API Content for Shopping | API Merchant | 
|---|---|---|
| ID do produto | Uma string composta por segmentos separados por dois pontos ( :).Formato: channel:contentLanguage:targetCountry:offerIdouchannel:contentLanguage:feedLabel:offerId.Exemplo: online:en:US:sku123 | Uma string namede recurso REST.Formato: accounts/{account}/products/{product}, em que{product}écontentLanguage~feedLabel~offerId.Exemplo: accounts/12345/products/en~US~sku123 | 
Métodos
Esta tabela mostra os métodos da API Content for Shopping e os equivalentes na API Merchant.
| Método da API Content for Shopping | Método da API Merchant | Disponibilidade e observações | 
|---|---|---|
| products.get | products.get | Recupera o produto final processado. | 
| products.list | products.list | Lista os produtos finais processados. | 
| products.insert | productInputs.insert | Insere uma entrada de produto. Requer um dataSource. | 
| products.update | productInputs.update | O comportamento é significativamente diferente. Ele atualiza uma entrada de produto específica e é persistente. | 
| products.delete | productInputs.delete | Exclui uma entrada de produto específica. Requer um dataSource. | 
| products.custombatch | Indisponível | Use solicitações assíncronas ou o agrupamento em lote HTTP. | 
| productstatuses.get | products.get | O serviço productstatusesé removido. As informações de status agora fazem parte do recursoProduct. | 
| productstatuses.list | products.list | O serviço productstatusesé removido. As informações de status agora fazem parte do recursoProduct. | 
| productstatuses.custombatch | Indisponível | Use [assíncrono | 
requests](/merchant/api/samples/insert-product-input-async) ou lote HTTP. |
Mudanças detalhadas nos campos
Esta tabela destaca campos importantes que foram mudados, adicionados ou removidos na API Merchant.
| API Content for Shopping | API Merchant | Descrição | 
|---|---|---|
| id | name | O identificador principal de um produto agora é o recurso REST name. | 
| Atributos de especificação de dados de produtos de nível superior (por exemplo, title,price,link) | Objeto productAttributes | Atributos de produto, como title,priceelink, não são mais campos de nível superior. Agora eles estão agrupados no objetoproductAttributesnos recursosProducteProductInput. Isso oferece uma estrutura de recursos mais limpa e organizada. | 
| targetCountry | feedLabel | O nome do recurso agora usa feedLabelem vez detargetCountrypara se alinhar à funcionalidade do Merchant Center. | 
| feedId | dataSource(parâmetro de consulta) | Agora, um nome dataSourceé um parâmetro de consulta obrigatório para todos os métodos de gravaçãoproductInputs(insert,update,delete). | 
| channel | Indisponível. Use legacy_localpara produtos disponíveis apenas na loja física. | O campo channelnão está mais presente na API Merchant. Os produtos com o canalLOCALna API Content for Shopping precisam definir o campolegacy_localcomo "true". | 
| Indisponível | versionNumber | Um novo campo opcional em ProductInputque pode ser usado para evitar inserções fora de ordem em fontes de dados principais. | 
| Campos do tipo stringcom um conjunto de valores definido | Campos do tipo enumcom um conjunto de valores definido | Os campos nos atributos de produto com um conjunto definido de valores (por exemplo, excluded_destinations,availability) agora são do tipoenum. |