Guia de uso
Processamento de Feed
Introdução ao Feeds API
O que é Feeds API?
Com o Selling Partner API for Feeds (Feeds API), você pode construir aplicativos que permitem aos vendedores fazer upload de informações para a Amazon que os ajuda a gerenciar seus negócios de vendas.
Existem feeds para uma ampla variedade de casos de uso, como criação de listagens, gerenciamento de estoque e preços, confirmação de pedidos e muito mais.
Consulte os valores feedType para obter uma lista dos tipos de feed disponíveis.
Fluxo de envio de um Feed
-
Faça a chamada em createFeedDocument, especificando o tipo de conteúdo para o feed que você está enviando.
A Amazon retorna um valor feedDocumentId e uma URL para enviar o conteúdo do feed. -
Carregue o conteúdo do documento feed para o URL da etapa anterior.
-
Faça a chamada em createFeed. Use o parâmetro inputFeedDocumentId para passar o valor feedDocumentId da etapa 1. Especifique os mercados aos quais deseja que o feed seja aplicado e quaisquer opções de feed relevantes.
Amazon retorna um valor feedId -
Faça a chamada em getFeed, especificando o valor feedId da Etapa 3, até que o feed se mova para um dos seguintes estados de terminal: DONE, CANCELED ou FATAL.
Quando o feed passar para o estado CONCLUÍDO, vá para a Etapa 5.
Amazon returns the resultFeedDocumentId value when the feed moves into the DONE state. -
Faça a chamada em getFeedDocument. Use o parâmetro feedDocumentId para passar o valor resultFeedDocumentId da etapa anterior.
A Amazon retorna o valor feedDocumentId, uma URL para baixar o relatório de processamento de feed e o algoritmo de compactação. -
Baixe o relatório de processamento de feed.
-
Verifique o relatório de processamento do feed para ver os erros gerados durante o processamento do feed. Se houver erros, corrija-os e envie o feed corrigido, começando na etapa 1. Se não houver erros, o envio do feed foi bem-sucedido.
Para obter mais detalhes sobre como enviar um feed, consulte Tutorial: Enviar um feed.
Termos usados
- S3 presigned URL: Um URL para um bucket AWS S3 para o qual você pode carregar um objeto sem credenciais ou permissões de segurança da AWS. Você obtém um URL predefinido S3 na Etapa 1. Crie um documento de feed e na Etapa 6. Obtenha informações para recuperar o relatório de processamento de feed.
Enviando um Feed
Este tutorial mostra como enviar um feed, verificar o status do processamento do feed e verificar se o envio do feed foi bem-sucedido. O tutorial contém amostras de código Java que demonstram uma maneira de fazer upload de um feed e fazer download de um relatório de resumo de processamento de feed. Você pode usar os princípios demonstrados no código de amostra para guiá-lo na construção de aplicativos em outras linguagens de programação, usando outras bibliotecas HttpClient ou carregar feeds com formatos diferentes.
Para concluir este tutorial, você precisará de:
-
Um feed a ser enviado. Consulte os feedType para obter uma lista dos tipos de feed disponíveis.
-
Autorização do vendedor para o qual você está fazendo ligações. Consulte o Selling Partner API Developer Guide para obter mais informações.
1. Criar um Feed document
- Faça uma chamada em createFeedDocument, passando o seguinte parâmetro:
Valor | Descrição |
---|---|
contentType Obrigatório Tipo: String | O tipo de conteúdo do feed. A Amazon recomenda a codificação de caracteres UTF-8. Importante. Use este valor contentType na 3. Faça upload dos dados do feed. Caso contrário, o upload dos dados do feed falhará. |
Body
https://sellingpartnerapi-na.amazon.com/feeds/2021-06-30/documents
{
"contentType":"text/xml; charset=UTF-8"
}
Exemplo de resposta com sucesso:
Valor | Descrição |
---|---|
feedDocumentId Obrigatório Tipo: String | O identificador do documento de alimentação. |
url Obrigatório Tipo: String | O URL predefinido para enviar o conteúdo do feed. Este URL expira após 5 minutos. |
{
"feedDocumentId": "amzn1.tortuga.3.920614b0-fc4c-4393-b0d9-fff175300000.T29XK4YL08B2VM",
"url": "https://tortuga-prod-na.s3.amazonaws.com/%2FNinetyDays/amzn1.tortuga.3.920614b0-fc4c-4393-b0d9-fff175300000.T29XK4YL08B2VM?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20200919T035824Z&X-Amz-SignedHeaders=<headers>&X-Amz-Expires=300&X-Amz-Credential=<credential>&X-Amz-Signature=<signature>"
}
- Salve os seguintes valores:
- url: Use este valor na 3. Fazer o upload do Feed.
- feedDocumentId: Use este valor na 4. Criar um Feed. Este valor feedDocumentId expira após 2 dias. Se você passar um valor feedDocumentId expirado para a operação createFeed, a chamada retornará falha.
2. Construção do Feed
Construa um feed que você possa enviar na 3. Fazer o upload do Feed.
Para concluir este tutorial, você precisará de:
Para construir um feed XML, você precisa incluir os três XSDs principais (Base, Envelope e Header), além de seu feed específico da categoria.
- Base: Usado para promover consistência entre os feeds. Todos os outros XSDs fazem referência aos elementos e tipos de dados no XSD Base.
- Envelope: Usado para agrupar todos os outros dados com dados de protocolo de nível de mensagem. Consiste em um cabeçalho e uma ou mais mensagens.
- Header: Usado pelo Envelope XSD para especificar dados universais relacionados ao feed ou uma mensagem no feed.
Para obter links de XSDs para feeds específicos de categorias, vá para XSDs na Seller Central e procure na seção XSDs da categoria.
A seguir está um exemplo de feed XML para um produto relacionado à saúde:
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
<Header>
<DocumentVersion>1.01</DocumentVersion>
<MerchantIdentifier>ID_DO_COMERCIANTE</MerchantIdentifier>
</Header>
<MessageType>Product</MessageType>
<PurgeAndReplace>false</PurgeAndReplace>
<Message>
<MessageID>1</MessageID>
<OperationType>Update</OperationType>
<Product>
<SKU>56789</SKU>
<StandardProductID>
<Type>ASIN</Type>
<Value>B07M6LDFW9</Value>
</StandardProductID>
<ProductTaxCode>A_GEN_NOTAX</ProductTaxCode>
<DescriptionData>
<Title>Desodorante Spray Avanço Action 85ml, Avanço</Title>
<Brand>Avanco</Brand>
<Description>Uma descrição completa do produto aqui.</Description>
<BulletPoint>Um exemplo de Bullet</BulletPoint>
<BulletPoint>Um exemplo de Bullet</BulletPoint>
<MSRP currency="BRL">5.19</MSRP>
<Manufacturer>Savoy Indústria de Cosméticos S/A</Manufacturer>
<ItemType>desodorante-avanco</ItemType>
</DescriptionData>
<ProductData>
<Health>
<ProductType>
<HealthMisc>
<Ingredients>Formação do produto</Ingredients>
<Directions>Pra quem esse produto é direcionado</Directions>
</HealthMisc>
</ProductType>
</Health>
</ProductData>
</Product>
</Message>
</AmazonEnvelope>
3. Fazer o upload do Feed
Você pode carregar o feed que você construiu na Etapa 2. Construa um feed usando as informações retornadas na Etapa 1. Crie um documento de feed. O código de exemplo a seguir demonstra uma maneira de fazer upload do conteúdo do feed. Você também pode usar os princípios demonstrados no código de amostra para guiá-lo na criação de aplicativos em outras linguagens de programação ou usando outras bibliotecas HttpClient.
O método de upload de amostra mostrado na classe UploadExample aceita o conteúdo do seu feed como o primeiro argumento e o valor do url que você salvou na Etapa 1 como o segundo argumento.
Criar documento Feed
No passo 1. Criar um Feed Document tivemos uma URL de resposta ao criar o Feed Document, utilize essa URL neste passo.
https://tortuga-prod-na.s3.amazonaws.com/%2FNinetyDays/amzn1.tortuga.3.920614b0-fc4c-4393-b0d9-fff175300000.T29XK4YL08B2VM?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20200919T035824Z&X-Amz-SignedHeaders=<headers>&X-Amz-Expires=300&X-AmzCredential=<credential>&X-Amz-Signature=<signature>
Chave | Valor |
---|---|
Content-Type | text/xml; charset=UTF-8 |
Você deve adicionar o arquivo.xmldiretamente no body como está no exemplo abaixo. Colar o arquivo todo no raw do body da requisição no tipo XML.
Veja todos os exemplos de Feeds.
4. Crie um Feed
Faça uma chamada em createFeed para especificar o identificador do documento de feed, o tipo de feed, os mercados aos quais deseja que o feed seja aplicado e quaisquer parâmetros opcionais que desejar.
- A chamada em createFeed, deve ter os seguintes parâmetros:
Valor | Descrição |
---|---|
feedType Obrigatório Tipo: String | O tipo de feed que você está enviando. Para obter mais informações, consulte os valores de feedType. |
marketplaceIds Obrigatório Tipo: < String > Array | Uma lista de identificadores para os mercados aos quais você deseja que o feed seja aplicado. |
inputFeedDocumentId Obrigatório Tipo: String | O identificador de documento retornado pela operação createFeedDocument na 1. Criar um Feed document. |
feedOptions Opcional Tipo: String | Opções adicionais para controlar o feed. Eles variam de acordo com o tipo de feed. |
Body
https://sellingpartnerapi-na.amazon.com/feeds/2021-06-30/feeds
{
"feedType":"POST_PRODUCT_DATA",
"marketplaceIds":[
"ATVPDKIKX0DER",
"A2EUQ1WTGCTBG2"
],
"inputFeedDocumentId":"amzn1.tortuga.3.920614b0-fc4c-4393-b0d9-fff175300000.T29XK4YL08B2VM"
}
{
"feedType":"POST_EASYSHIP_DOCUMENTS",
"marketplaceIds":["A21TJRUUN4KGV"],
"feedOptions":
{
"AmazonOrderId":"902-3159896-1390916",
"DocumentType":"ShippingLabel"
},
"inputFeedDocumentId":"amzn1.tortuga.3.06438a22-2b6f-4138-a120-362c096d5e04.TKXDFQFUMYD86"
}
Exemplo de resposta com sucesso:
Valor | Descrição |
---|---|
feedId Obrigatório Tipo: String | O identificador do feed. Este identificador é único apenas em combinação com um ID de vendedor. |
{
"feedId": "23492394"
}
- Salve os seguintes valores:
- feedId: Salve o valor feedId. Passe esse valor na operação getFeed na Etapa 5. Processamento do Feed.
5. Processamento do Feed
Confirme o processamento do feed chamando periodicamente a operação getFeed até que o feed passe para um dos seguintes estados de terminal: DONE, CANCELED ou FATAL.
Quando o feed passa para o estado DONE, prossiga para a 6. Recuperar o relatório de processamento de feed.
Path
Valor | Descrição |
---|---|
feedId Obrigatório Tipo: String | O identificador do feed. Obtenha esse identificador do resultado da chamada para a operação createFeed na Etapa 4. Crie um Feed. Este identificador é único apenas em combinação com um ID de vendedor. |
https://sellingpartnerapi-na.amazon.com/feeds/2021-06-30/feeds/23492394
Exemplo de resposta com sucesso:
Valor | Descrição |
---|---|
feedId Obrigatório Tipo: String | O identificador do documento de alimentação. Este identificador é único apenas em combinação com um ID de vendedor. |
feedType Obrigatório Tipo: String | O tipo de feed. |
marketplaceIds Opcional Tipo: < String > array | Uma lista de identificadores para os mercados aos quais o feed é aplicado. |
createdTime Obrigatório Tipo: string (date-time) | A data e hora em que o feed foi criado, no formato de data e hora ISO 8601. |
processingStatus Obrigatório Tipo: ProcessingStatus | O status de processamento do feed. |
processingStartTime Opcional Tipo: String (date-time) | A data e hora em que o processamento do feed começou, no formato de data e hora ISO 8601. |
processingEndTime Opcional Tipo: String (date-time) | A data e hora em que o processamento do feed foi concluído, no formato de data e hora ISO 8601. |
resultFeedDocumentId Opcional Tipo: String | O identificador do documento de alimentação. Este identificador é único apenas em combinação com um ID de vendedor. |
{
"processingEndTime":"2020-08-10T16:56:55+00:00",
"processingStatus":"DONE",
"marketplaceIds":[
"ATVPDKIKX0DER"
],
"feedId":"23492394",
"feedType":"POST_PRODUCT_DATA",
"createdTime":"2020-08-10T16:55:32+00:00",
"processingStartTime":"2020-08-10T16:55:40+00:00",
"resultFeedDocumentId":"amzn1.tortuga.3.ed4cd0d8-447b-4c22-96b5-52da8ace1207.T3YUVYPGKE9BMY"
}
- Verifique o valor do estado de processingStatus.
- Se processingStatus for IN_QUEUE ou IN_PROGRESS, o processamento do feed ainda não foi concluído. Tente novamente a operação getFeed até que processingStatus alcance um dos seguintes estados de terminal: DONE, CANCELED ou FATAL.
- Se processingStatus for DONE, o processamento do feed estará completo. Vá para a Etapa 6. Obtenha informações para recuperar o relatório de processamento de feed.
*Se processingStatus for CANCELED, o feed foi cancelado antes de iniciar o processamento. Se você deseja enviar o feed novamente, comece novamente na Etapa 1. Criar um documento de feed. - Se processingStatus for FATAL, o feed foi abortado devido a um erro fatal. Algumas, nenhuma ou todas as operações no feed podem ter sido concluídas com êxito. Em alguns (mas não todos) casos, a Amazon gera um relatório de processamento de feed. Se a Amazon gerar um relatório, ele pode estar em um formato diferente de um relatório de processamento de feed para um feed concluído com êxito. Vá para a Etapa 6. Obtenha informações para recuperar o relatório de processamento de feed para tentar recuperar um relatório de processamento de feed. Em casos raros, a Amazon pode abortar um feed por motivos não relacionados ao feed. Se você não encontrar nenhum erro para corrigir no feed, tente enviar o feed novamente.
Observação
A operação getFeed exibe informações apenas para solicitações de feed criadas nos últimos 90 dias.
6. Recuperar relatório do processamento Feed
O relatório de processamento de feed indica quais registros no feed que você enviou foram bem-sucedidos e quais registros geraram erros.
Nesta etapa, você obtém um URL predefinido para baixar o relatório de processamento de feed.
- Faça uma chamada em getFeedDocument, passando o seguinte parâmetro:
Path
Valor | Descrição |
---|---|
feedDocumentId Obrigatório Tipo: String | O identificador do documento de alimentação. Use o valor resultFeedDocumentId retornado na 5. Processamento do Feed. |
https://sellingpartnerapi-na.amazon.com/feeds/2021-06-30/documents/amzn1.tortuga.3.ed4cd0d8-447b-4c22-96b5-52da8ace1207.T3YUVYPGKE9BMY
Valor | Descrição |
---|---|
feedDocumentId Obrigatório Tipo: String | O identificador do documento de alimentação. Este identificador é único apenas em combinação com um ID de vendedor. |
url Obrigatório Tipo: String | |
compressionAlgorithm Obrigatório Tipo: CompressionAlgorithm |
{
"feedDocumentId": "amzn1.tortuga.3.ed4cd0d8-447b-4c22-96b5-52da8ace1207.T3YUVYPGKE9BMY",
"url": "https://tortuga-prod-na.s3.amazonaws.com/%2FNinetyDays/amzn1.tortuga.3.920614b0-fc4c-4393-b0d9-fff175300000.T29XK4YL08B2VM?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20200919T035824Z&X-Amz-SignedHeaders=<headers>&X-Amz-Expires=300&X-Amz-Credential=<credential>&X-Amz-Signature=<signature>"
}
Boas práticas
Melhore a performance do Feed
Geralmente, você pode obter o melhor desempenho geral de processamento de feed seguindo estas diretrizes:
- Evite enviar muitos feeds com apenas alguns registros em cada feed. Quando possível, combine os dados em feeds maiores que você envia com menos frequência.
- Inclua apenas os produtos que você está atualizando, não todo o seu estoque.
- Faça upload de um feed do mesmo tipo no máximo uma vez a cada 20 minutos. Permita mais tempo entre feeds maiores.
- Mantenha o tamanho do arquivo abaixo de 10 MiB (5 * 221 ou 10.485.760 bytes).
Não confie na estrutura do ID do documento
Você não deve confiar no formato e na estrutura dos identificadores de documentos. O formato e a estrutura estão sujeitos a alterações.
Updated over 2 years ago