Guia de uso

Processamento de Feed

1355

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

  1. 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.

  2. Carregue o conteúdo do documento feed para o URL da etapa anterior.

  3. 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

  4. 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.

  5. 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.

  6. Baixe o relatório de processamento de feed.

  7. 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

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.

Pré-requisitos

Para concluir este tutorial, você precisará de:

  1. Um feed a ser enviado. Consulte os feedType para obter uma lista dos tipos de feed disponíveis.

  2. 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

  1. Faça uma chamada em createFeedDocument, passando o seguinte parâmetro:
ValorDescriçã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á.

Exemplo de chamada

Body

https://sellingpartnerapi-na.amazon.com/feeds/2021-06-30/documents
{
  "contentType":"text/xml; charset=UTF-8"
}

Resposta

Exemplo de resposta com sucesso:

ValorDescriçã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>"
}
  1. 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.

XML de Feeds

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

1. Adicione uma nova requisição

209

2. Selecione o tipo "PUT"

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>
125

3. Adicione o "Headers"

ChaveValor
Content-Typetext/xml; charset=UTF-8

4. Adicione o "Body"

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.

795

Exemplo de Feed para envio

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.

  1. A chamada em createFeed, deve ter os seguintes parâmetros:
ValorDescriçã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.

Exemplo de chamada

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"
}

Exemplo de chamada para um pedido Easy Ship

{
  "feedType":"POST_EASYSHIP_DOCUMENTS",
  "marketplaceIds":["A21TJRUUN4KGV"],
  "feedOptions":
  {
    "AmazonOrderId":"902-3159896-1390916",
    "DocumentType":"ShippingLabel"
  },
  "inputFeedDocumentId":"amzn1.tortuga.3.06438a22-2b6f-4138-a120-362c096d5e04.TKXDFQFUMYD86"
}

Resposta

Exemplo de resposta com sucesso:

ValorDescrição
feedId

Obrigatório

Tipo: String
O identificador do feed. Este identificador é único apenas em combinação com um ID de vendedor.
{
  "feedId": "23492394"
}
  1. Salve os seguintes valores:

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.

Exemplo de chamada

Path

ValorDescriçã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

Resposta

Exemplo de resposta com sucesso:

ValorDescriçã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"
}
  1. 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.

  1. Faça uma chamada em getFeedDocument, passando o seguinte parâmetro:

Exemplo de chamada

Path

ValorDescrição
feedDocumentId

Obrigatório

Tipo: String
O identificador do documento de alimentação. Use o valor resultFeedDocumentId retornado na 5. Processamento do Feed.

Exemplo de chamada

https://sellingpartnerapi-na.amazon.com/feeds/2021-06-30/documents/amzn1.tortuga.3.ed4cd0d8-447b-4c22-96b5-52da8ace1207.T3YUVYPGKE9BMY

Resposta

ValorDescriçã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.