Olá, @Alan_Oliveira!
Em complemento ao que a @sesnick comentou, queria te dar uma perspectiva do funcionamento do Feed, que é diferente do List orders, mas cumpre a mesma função de maneira mais eficiente.
O List orders te retorna a lista dos pedidos que foram feitos na sua loja naquele período de tempo selecionado.
Já o Feed retorna uma lista de atualizações de pedidos que cumpram os requisitos do filtro. Mas o Feed só recebe atualizações depois que você o configura. Vamos ver um exemplo com a configuração que você fez:
Get - https://xxxx.myvtex.com/api/orders/feed/config
{
“filter”: {
“status”: [
“order-completed”,
“start-handling”,
“handling”,
“ready-for-handling”,
“waiting-ffmt-authorization”,
“cancel”
],
“type”: “FromWorkflow”
},
“queue”: {
“visibilityTimeoutInSeconds”: 350,
“messageRetentionPeriodInSeconds”: 355600
},
“quantity”: 25,
“approximateAgeOfOldestMessageInSeconds”: 24691.625987708518
}
Qualquer pedido que entrar em algum desses status do campo status
vai gerar um evento no feed. Digamos que você configurou às 12h e às 12h30 o pedido ABC
entra em ready-for-handling
. Você consulta o Feed às 12h45 e o feed vai retornar algo parecido com isso:
[
{
"eventId": "ED423DDED4C1AE580CADAC1A4D02DA3F"
"handle": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lZW50aXR ..."
"domain": "Fulfillment"
"state": "ready-for-handling"
"lastState": "window-to-cancel"
"orderId": "ABC"
"lastChange": "2019-08-12T12:20:01.134057Z"
"currentChange": "2019-08-12T20:12:30.7153839Z"
}
]
Aí você toma as devidas ações na loja com essa informação e comita o evento, limpando o feed.
Às 13h o pedido XYZ
também chega em ready-for-handling
e às 13h05 o ABC
chega em start-handling
. Nesse caso, se consultar o feed às 13h10, receberá:
[
{
"eventId": "ED423DDOLJHDFHG354AC1A4D02DA3F"
"handle": "dfhg6d5fgh4g6hk8h4u6l84h6h8f4gb6daz8f4g68fg4nghj5k1lhf32lj468gkxv3h5jxv3nb54xv3b5n4gc6h8j7k ..."
"domain": "Fulfillment"
"state": "start-handling"
"lastState": "ready-for-handling"
"orderId": "ABC"
"lastChange": "2019-08-12T12:30:01.134057Z"
"currentChange": "2019-08-12T20:13:05.7153839Z"
},
{
"eventId": "ED423456GDSFADAC1A4D02DA3F"
"handle": "dgfh6s5dfhg46sd5h46fg54h6df5gh46df5g4h6d5fg4h6d5f4gh65d4f6gh54d6fg5h46df5g4h6df5g4h65f ..."
"domain": "Fulfillment"
"state": "ready-for-handling"
"lastState": "window-to-cancel"
"orderId": "XYZ"
"lastChange": "2019-08-12T12:30:01.134057Z"
"currentChange": "2019-08-12T20:13:00.7153839Z"
}
]
Então, novamente, você pode realizar as ações necessárias na loja e comitar os eventos, limpando o feed novamente.
Importante lembrar que que, dados os valores que você estabeleceu na sua configuração, depois que você consulta o feed, os eventos retornados somem de consultas futuras por 350 segundos (visibilityTimeOutInSeconds
). Além disso, qualquer evento será automaticamente excluído do feed após 355600 segundos = ±98h (MessageRetentionPeriodInSeconds
).
Além dessas documentações que a Fer citou, recomendo também esse guia de integração de pedidos que traz esse fluxo bem explicado.