api/oms/pvt/orders?orderBy=creationDate,desc&per_page=100&page=1&f_status=ready-for-handling&q=(“totalValue” == 0.0)
Olá @FranciscoScore, tudo bom?
Ao que parece nem pela API List Orders e nem pela interface do VTEX OMS é possível fazer este filtro por valor.
Considerando também que apenas os pedidos dos últimos dois anos ficam disponíveis para consulta, a melhor solução é sempre utilizar a VTEX integrada com algum ERP onde guardamos todos os dados dos pedidos e podemos realizar esta filtragem que você deseja e outras customizações que não ficam do lado da VTEX.
Ou seja, se a VTEX não incentiva este filtro pela plataforma, indiretamente ela está indicando que o caminho é fazer no lado do ERP.
Talvez você comentando um pouco mais sobre o teu caso de uso seja possível pensar em alguma alternativa, como por exemplo, utilizando o Order Hooks para capturar estes pedidos pelo valor e notificar algum outro sistema para tratar os pedidos que batem com a tua regra:
{
"filter": {
"type": "FromOrders",
"expression": "value > 100",
"disableSingleFire": false
},
"hook": {
"url": "https://endpoint.example/path",
"headers": {
"key": "value"
}
}
Comenta o teu cenário para ver se a comunidade ajuda com outras ideias.
Fala @FranciscoScore tranquilo?
Corroborando com o post, pela documentação, é possível ver que a VTEX não disponibiliza o totalValue
como parâmetro para filtro como o @andremiani mencionou.
Os seguintes campos como possíveis para filtragem: orderId
, orderGroup
, status
, hasTheField
, approvedDate
, clientName
, clientId
, invoiceOutput.key
, invoiceInput.key
, f_status
e f_hasTheField
.
Uma alternativa seria fazer o GET de todos os pedidos com status ready-for-handling
e depois filtrar os resultados no seu código para incluir apenas aqueles com totalValue
igual a 0.0, como você espera.
Aqui está talvez uma ideia de como você poderia fazer isso em JS:
fetch('https://sua-loja.vtexcommercestable.com.br/api/oms/pvt/orders?orderBy=creationDate,desc&per_page=100&page=1&f_status=ready-for-handling', {
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'X-VTEX-API-AppKey': 'your-app-key',
'X-VTEX-API-AppToken': 'your-app-token'
}
})
.then(response => response.json())
.then(data => {
const pedidosComValorZero = data.list.filter(order => order.totalValue === 0.0);
console.log(pedidosComValorZero);
})
.catch(error => console.error('Error:', error));
Veja se a ideia ajuda de alguma forma.
Abs,
Estevão.