High frequency of orders/updated

We were initially using orders/paid to sync orders to our ERP. This worked fine except that Channable orders would not trigger this webhook and thus not get synced. We swapped over to orders/updated and do some filtering on our side. This works fine except that occasionally we receive massive bursts of webhook requests.

In a 3 hours time frame of 6 new orders, we received roughly 18k webhooks of orders/updated. What could be triggering this? What can I look for? Is there another way to receive paid Channable orders (near) realtime?

I can throw more servers at the problem, but that’s just a waste of money and does not have a positive impact on the environment.

Hey @Lynn-srs, thanks for sharing this. Based off of your description it does sound like there may be another app that is making bulk updates to existing orders. Since you are syncing order data with your ERP, have you noticed if any of these updates are for data that is important to have updated within your ERP?

If not, is channable registered on the order anywhere; possibly in the sourceName field? If so, you could use the orders/paid webhook for all non channable orders and then use the orders/update webhook with a filter for only the channable orders.
Guide to filters here:

I’ve started logging payloads per order, and the majority of changes aren’t even visible in the payload. Yesterday I noticed 13 orders/updated webhooks of which the only difference is the updated_at, and halfway through a tag was added by another application.

It seems that I also receive a new orders/updated if metafields get updated, and I can’t even see this change in the payload. I’d say 99% of these payloads are irrelevant.

I’ve double checked and this is source_name can be whatever, so I can’t rely on this. The orders that were received through that channel had the source from that channel (so in this case as channel “bol”)

One caveat is that currently we are not able to filter on the Shopify side. The shopify-api package for php does not support this (nor removing unused webhooks): shopify-api-php/src/Webhooks/Registry.php at main · Shopify/shopify-api-php · GitHub

For now will have to do this in the app and reject as early as possible to free up HTTP requests.

1 Like