Este artigo interno explica o novo fluxo de publicação de anúncios na Amazon utilizando o feed POST_PRODUCT_DATA na SP-API.
A publicação de novos anúncios ocorre em etapas, passando pela criação do documento de feed, envio do XML, criação do feed, acompanhamento do processamento, consulta do resultado e finalização do anúncio via patchListingItem.
Neste artigo:
- Pré-requisitos
- Como funciona o fluxo POST_PRODUCT_DATA
- Passo a passo do fluxo SP-API
- Boas práticas
- Dúvidas comuns
Pré-requisitos
Antes de analisar ou executar o fluxo POST_PRODUCT_DATA, valide se:
- A integração Amazon SP-API está configurada corretamente;
- O seller possui autorização válida para comunicação com a Amazon;
- O anúncio possui os dados obrigatórios para catalogação;
- O XML do feed foi gerado corretamente;
- O marketplaceId correspondente ao país será enviado na chamada de criação do feed;
- Há acesso ao OUTPUT/Kibana para pesquisa de erros de transmissão, quando necessário.
Como funciona o fluxo POST_PRODUCT_DATA
O fluxo de publicação de novos anúncios com POST_PRODUCT_DATA ocorre em sete etapas principais:
- createFeedDocument: cria o documento de feed na Amazon e retorna o feedDocumentId e a URL para envio do conteúdo;
- submitFeedContent: envia o XML do feed para a URL retornada pela Amazon;
- createFeed: informa à Amazon qual documento deve ser processado, qual o tipo de feed e quais marketplaces serão impactados;
- feedProcessing: aguarda o processamento do feed pela Amazon;
- getFeedResultUrl: busca a URL do resultado do processamento do feed;
- feedValidate: consulta o XML de retorno contendo o status do feed;
- completeProductData: finaliza a criação do anúncio utilizando patchListingItem.
Após a finalização do fluxo, o anúncio estará completo na Amazon. Ainda assim, pode levar um tempo considerável para que ele fique ativo de fato no marketplace.
Passo a passo do fluxo SP-API
Passo 1: createFeedDocument
Nesta etapa, é feito um POST para criar o documento de feed.
Endpoint:
POST https://sellingpartnerapi-na.amazon.com/feeds/2021-06-30/documentsBody enviado:
{
"contentType": "text/xml; charset=UTF-8"
}Exemplo de retorno:
{
"feedDocumentId": "amzn1.tortuga.3.67ed995c-dcee-473a-b4fb-7e0e9c81cef4.T3245LZP783CY0",
"url": "https://tortuga-prod-na.s3-external-1.amazonaws.com/%2fNinetyDays/amzn1.tortuga.3.67ed995c-dcee-473a-b4fb-7e0e9c81cef4.T3245LZP783CY0?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20220811T153926Z&X-Amz-SignedHeaders=content-type%3bhost&X-Amz-Expires=300&X-Amz-Credential=AKIA5U6MO6RAGA3RSQ2I%2f20220811%2fus-east-1%2fs3%2faws4_request&X-Amz-Signature=504695b9de6bd94c10ae3bd85afc390b4651a949071c99e6cc407acf3b05bf2f"
}O campo feedDocumentId é o identificador utilizado nos próximos passos para informar à Amazon que o conteúdo do feed foi enviado, qual é o tipo do feed e quais marketplaceIds serão impactados.
O campo url indica a URL para onde o conteúdo do feed será enviado.
Passo 2: submitFeedContent
Nesta etapa, é feito um PUT na URL retornada pela Amazon no passo anterior.
No request dessa chamada, deve ser enviado o XML do feed.
O retorno esperado dessa chamada é:
200 OKO response dessa etapa será vazio.
Passo 3: createFeed
Nesta etapa, é feito um POST para criar o feed de processamento.
Endpoint:
POST https://sellingpartnerapi-na.amazon.com/feeds/2021-06-30/feedsBody enviado:
{
"inputFeedDocumentId": "amzn1.tortuga.3.67ed995c-dcee-473a-b4fb-7e0e9c81cef4.T3245LZP783CY0",
"feedType": "POST_PRODUCT_DATA",
"marketplaceIds": [
"A2Q3Y263D00KWC"
]
}Campos importantes:
- inputFeedDocumentId: valor retornado no passo 1, no campo feedDocumentId;
- feedType: deve ser enviado como POST_PRODUCT_DATA;
- marketplaceIds: deve conter o marketplaceId correspondente ao país.
Exemplo de retorno:
{
"feedId": "342209019215"
}O valor retornado no campo feedId será utilizado para buscar os dados do feed após o processamento.
É nesse passo que são retornados eventuais erros de transmissão gerados no momento da catalogação.
Passo 4: feedProcessing
Nesta etapa, é necessário aguardar a notificação da Amazon informando que o feed foi processado.
Os possíveis status são apresentados na tabela abaixo. Caso o status recebido seja CANCELLED ou FATAL, será necessário enviar o feed novamente.

Passo 5: getFeedResultUrl
Nesta etapa, é feito um GET para buscar a URL do resultado do feed.
Endpoint:
GET https://sellingpartnerapi-na.amazon.com/feeds/2021-06-30/documents/{feedDocumentId}Para essa chamada, utilize o valor do campo resultFeedDocumentId retornado no passo 4.
Exemplo de retorno:
{
"feedDocumentId": "amzn1.tortuga.3.f6b1a180-6218-43f3-a28c-48662afea610.T28Z4KU1OBQEM",
"url": "https://tortuga-prod-na.s3-external-1.amazonaws.com/%2fNinetyDays/amzn1.tortuga.3.0226ebb6-8358-4aef-8a06-f4fc923a8623.T3F807K73A3HS?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20220811T154239Z&X-Amz-SignedHeaders=host&X-Amz-Expires=300&X-Amz-Credential=AKIA5U6MO6RAGA3RSQ2I%2f20220811%2fus-east-1%2fs3%2faws4_request&X-Amz-Signature=ef2c67d4ec7aa1a177db55d5cef4afd3c7ccd6c66914b293aa26eedb32a462fd"
}O valor contido no campo url será utilizado para buscar o resultado do feed.
Passo 6: feedValidate
Nesta etapa, é feito um GET na URL retornada no passo anterior.
O retorno será um XML contendo o status do feed.
Em caso de sucesso, o fluxo deve prosseguir para o passo 7.
Passo 7: completeProductData
Nesta etapa, é feita a finalização da criação do anúncio por meio do patchListingItem.
Esse é o PATCH frequentemente visualizado no OUTPUT quando a busca é realizada pelo SKU e pelo OI.
Diferente do feed, nessa etapa é feita uma chamada para cada anúncio.
Para anúncio simples, devem ser enviados apenas:
- Estoque;
- Preço;
- Imagens.
Para anúncio com variação, também deve ser enviado o relacionamento da variação.
Exemplo de relacionamento de variação:
{
"patches": [
{
"op": "replace",
"path": "/attributes/child_parent_sku_relationship",
"value": [
{
"marketplace_id": "A2Q3Y263D00KWC",
"child_relationship_type": "variation",
"parent_sku": "ShortsLeo1"
}
]
}
]
}O retorno esperado para sucesso nessa chamada é:
"status": "ACCEPTED"Após essa etapa, o anúncio estará completo na Amazon. Porém, pode levar um tempo considerável para que ele fique ativo de fato no marketplace.
Fluxo para pesquisa do erro de transmissão no Kibana
Para pesquisar erros de transmissão no Kibana, utilize o fluxo de análise representado abaixo:

Boas práticas
- Valide o XML antes de executar o fluxo de envio do feed.
- Guarde o feedDocumentId retornado no passo 1, pois ele será usado nas etapas seguintes.
- Utilize o feedId retornado no passo 3 para acompanhar o processamento.
- Se o feed retornar CANCELLED ou FATAL, envie o feed novamente.
- Use o resultFeedDocumentId do processamento para buscar o resultado do feed.
- Em anúncios simples, envie apenas estoque, preço e imagens no patchListingItem.
- Em anúncios com variação, envie o relacionamento da variação no PATCH de finalização.
- Pesquise erros no OUTPUT/Kibana utilizando SKU, OI e etapa do fluxo para localizar a falha com mais precisão.
Dúvidas comuns
O que é o fluxo POST_PRODUCT_DATA?
É o fluxo de publicação de novos anúncios na Amazon via SP-API, utilizando feed para envio dos dados principais do produto.
Qual é o primeiro passo do fluxo?
O primeiro passo é o createFeedDocument, que cria o documento de feed e retorna o feedDocumentId e a URL para envio do conteúdo.
Para que serve o feedDocumentId?
Ele identifica o documento de feed e será usado nas próximas etapas para enviar, criar e consultar o processamento do feed.
Para onde o XML do feed é enviado?
O XML é enviado por meio de um PUT para a URL retornada no passo createFeedDocument.
Qual feedType deve ser enviado no createFeed?
Deve ser enviado o feedType POST_PRODUCT_DATA.
Para que serve o feedId?
O feedId retornado no createFeed será usado para buscar os dados do feed após o processamento.
O que fazer se o feed retornar CANCELLED ou FATAL?
Será necessário enviar o feed novamente.
Como busco o resultado do feed?
Utilize o resultFeedDocumentId retornado no processamento e faça um GET em https://sellingpartnerapi-na.amazon.com/feeds/2021-06-30/documents/{feedDocumentId}.
O que é o completeProductData?
É a etapa final do fluxo, feita por meio do patchListingItem, que conclui a criação do anúncio.
O patchListingItem é feito uma vez para todos os anúncios?
Não. Diferente do feed, no patchListingItem é realizada uma chamada para cada anúncio.
O que é enviado no PATCH para anúncio simples?
Para anúncio simples, são enviados apenas estoque, preço e imagens.
O que é enviado no PATCH para anúncio com variação?
Para anúncio com variação, além dos dados necessários, deve ser enviado o relacionamento da variação, como child_parent_sku_relationship.
Qual retorno indica sucesso no patchListingItem?
O retorno esperado é "status": "ACCEPTED".
O anúncio fica ativo imediatamente após o fluxo?
Não necessariamente. Mesmo após completar o fluxo, pode levar um tempo considerável para o anúncio ficar ativo no marketplace.
Comentários
0 comentário
Por favor, entre para comentar.