I recently discovered that AvalaraTax calculations happen async which means when creating a draftOrder, the initial response may have no tax which within ~1-5seconds updates with the correct tax.
We're using the Graphql Admin API (draftOrderCalculate -> draftOrderCreate -> draftOrderComplete) and I noticed that the graphql api returns a 200 Response with no Retry-After header. However! The REST api returns a 202 with a Retry-After 1 which would allow us to know to poll for tax calculations.
Am I missing something with graphql? Is there no method to indicate that we need to poll. Now we're forced to poll every order for X amount or use the REST API to get accurate order totals with tax/shipping.
Solved! Go to the solution
This is an accepted solution.
Hi @gilg ,
In GraphQL, it's standard to respond with a 200 status code for the vast majority of requests, even when an error occurs. The only time I know where something other than a 200 response would occur is when a request was throttled or an issue occurred at the HTTP level.
As such, I think it would be out of spec to respond in GraphQL with a 202 - but perhaps we could respond with a message to let you know when you could check again if the draft wasn't ready yet. I'll log an issue with our orders team about this and see if there's anything we can do.
we're having related need. We create draft order using draftOrderCreate and then redirect customer to invoiceUrl. However sometimes, mostly for Shopify Plus merchants, the "Invoice is not ready yet" message appears, resulting in a very pool customer experience.
It would be great if there was a way to find whenever we need to wait for the invoice to be ready.