The Buyer Journey Intercept API is now deprecated

@Gil-Shopify

Just found out about this deprecation after doing a big change for one of our merchant :melting_face:

Basically, its a big brand with a lot of system playing with their inventory in their in house ERP. Their IT team told us that sending/polling all the real time inventory to Shopify for their millions of products would overload their system and by the time someone reach the checkout, another system might have changed the inventory in their ERP. So they asked us to disable inventory in Shopify and do an inventory check at checkout time (in stock/out of stock is still synched periodically in Shopify, but real inventory validation is done at checkout). We highly recommended against that approach, but they really didn’t want it otherwise as that’s how it’s working in their old platform.

Without fetch we wouldn’t be able to validate inventory with their system.

Edit: and now that I explain it, I think even with a function with fetch access that wouldn’t be possible as we need a real time check at the moment the user clicks on the checkout button. This inventory check also comes with an inventory reservation of 15 minutes so the check needs to expire after 15 minutes, which functions don’t have any notion of time. So that’s another case that functions can’t help with, time based blocking.

Actually just in general, we try hard to use functions first, but the limitations of functions are just too strict to make it possible most of the time. The inability to make API calls is probably the biggest one. I get that it would slow down some parts of Shopify if everyone starts abusing slow API calls, but sometimes there’s really no getting around that we need external data to put the merchant’s business logic in place.

We end up having to make less secure functions by doing client side cart attributes change and using a function that reads the attributes. It works for standard shopping flow but as you mentioned its not working for all channels. It also kind of defeats the purpose of functions, but it at least protects agains user navigating directly to the checkout url.

Right now only enterprise Shopify has access to fetch in functions and I have yet to see any merchant on the enterprise plan, could we maybe bring this to at least Shopify Plus for at least custom apps? :sweat_smile: