This is still very relevant @Paige-Shopify. We just got another upset merchant saying that more than 20 customers reported they could not checkout due to continuous CloudFlare bot challenges.
Here is a message this merchant received from Shopify’s customer support about our app:
Reviewing it in technical terms, we discovered that this app makes too many calls in milliseconds to cart.js and I am detecting a problem of excessive polling of the cart associated with your app.
This is frustrating because this conclusion comes from what appears to be a shallow technical review. Our app does not poll the cart. Yes, we make a number of /cart.js calls, but many of those calls exist specifically to compensate for inconsistencies in the AJAX Cart API responses. We would happily make fewer calls if the API gave us reliable data.
More importantly, this is not just about our app. The Shopify app ecosystem has never provided a way for apps to coordinate with each other when interacting with the Cart API. There is no shared state, no event bus, no subscription mechanism. So every app independently fetches the latest cart data, which naturally results in a high volume of requests on any store running multiple apps. This has been the reality for years, and apps were built with the reasonable expectation that the Cart API could handle this kind of usage.
Increasing bot protection sensitivity without accounting for how the existing ecosystem actually works was not a well considered decision. The result is that legitimate customers on legitimate stores are being blocked from checking out. That is a real problem affecting real revenue for merchants who trust the platform.
It’s also worth pointing out that this is an ecommerce platform. Cart experiences can be very complicated, especially on stores running multiple apps that handle things like upsells, bundles, gift wrapping, subscriptions and so on. The Cart API should be built to handle high volumes of requests because that is the natural consequence of a rich app ecosystem. Imposing low rate limits on the Cart API and then blaming apps for hitting them is working against the very ecosystem Shopify built and profits from.
On top of that, the CloudFlare bot challenge behaviour is broken. Even after a customer successfully completes a challenge, they keep getting prompted again and again. A legitimate customer who has already confirmed they are not a bot should not be blocked from completing their purchase. That is driving away real paying customers.
These are solvable problems, but they need to be acknowledged first.