Hi Shopify Developers,
We are the developers of a Shopify donation app that allows merchants to add donation products to their storefronts.
Recently, one of our merchants experienced a large number of fraudulent donation orders. According to the merchant, attackers appeared to be testing stolen credit card numbers by placing small donation orders, which resulted in multiple chargebacks and additional fees for the merchant.
As app developers, we are trying to understand whether there is a better way to prevent this behavior on Shopify stores.
Our Current Setup
The donation is implemented as a normal Shopify product.
We already have multiple safeguards in place:
-
Customers cannot visit the donation product page directly.
-
The donation widget is only shown when the cart contains at least one non-donation (real) product.
-
If the cart contains only the donation product, we automatically clear the cart.
-
We removed donation purchase options from collection pages and other storefront locations.
-
We use both Liquid and JavaScript-based protections.
The Challenge
A determined user can still:
-
Disable JavaScript.
-
Directly call Shopify cart endpoints.
-
Manipulate cart requests.
-
Add the donation product through methods outside the normal storefront flow.
Since the donation is ultimately a regular Shopify product, it appears that storefront-level protections can only go so far.
Questions
-
Is there any Shopify setting that merchants can enable to reduce this type of fraud?
-
Is there a recommended way to prevent donation-only orders on non-Plus stores?
-
Can Shopify Flow be used effectively for this use case, or would it only help after the order is created?
-
Are there any Shopify Functions, Checkout settings, Fraud settings, Shopify Protect features, or payment gateway settings that could help merchants stop these transactions?
-
Has anyone dealt with card-testing attacks on donation products or low-value products before? If so, what solution worked for you?
From our understanding, app developers do not have a way to fully block direct cart manipulation on non-Plus stores before checkout. We would appreciate any guidance from developers who have faced similar situations.
Thank you in advance for any suggestions or best practices.
