We’ve been building using the store credit API’s for quite some time and there’s been quite a few requests over the past few months from our merchants which we’ve turned down.
For example
Prevent stacking: credit OR discount code (not both)
Outcome: Merchant wants to disable store credit as an option if the customer has applied a discount code at checkout. This helps them protect margins.
Minimum spend rule for credit redemption
Example
– Customer has $4 in store credit
– Credit can only be redeemed when order total is $8 or more
– (1×, 2×, or configurable multiplier logic)
Outcome: Flexibility to set credit redemption rule as a multiplier to ensure regular spends instead of hoarding credit and placing a completely free order.
Based on my reading of the order of function execution, (3) should also be possible, since the payment customization function runs after all discount functions are executed.
Look forward to hearing back and seeing how we can solve for evolving use cases on the store credit primitives.
Also - on a side note; store credit doesn’t currently have a topic / section for itself in the dropdown. Makes it difficult to relay feedback in a single place at the moment.
Thanks for the detailed feedback! I’ve explored these scenarios and wanted to share what’s currently possible:
In Payment Customization Functions, store credit appears in the paymentMethods array with the name: "Redeemable payment method".
To prevent stacking (credit or discount code), you can use a Payment Customization function. While you can’t see which specific discount codes are applied, you can calculate whether a discount has been applied by comparing line costs. Compare the line item’s subtotalAmount (before discounts) with totalAmount (after discounts), then hide store credit when discounts are present.
For minimum spend requirements, Payment Customization functions can help here too. Check cart.cost.totalAmount and hide store credit when the order total is below your threshold.
With Checkout UI Extensions, you can detect when store credit is selected through selectedPaymentOptions (it appears with the handle: “redeemable”). This lets you display messaging to customers when they toggle store credit on or off.
Current limitations
Payment Customization Functions can’t access:
Store credit balance
Entered discount codes
Checkout UI Extensions can’t access:
Store credit balance
Can you tell me more about example use cases for when you need store credit balance and entered discount codes? I want to create a detailed feature request report but more context would help us understand what kind of solution would be best here.
Hi @Paige-Shopify - thank you for getting back to me here.
This seems like a viable solution for “Stacking of credit with discount“ – I will explore this further with the team.
The “Entered Discount Codes“ will help brands be more specific with their stacking rules and not just a blanket All / None like with your suggestion.
Regarding the store credit balance use case – I’ve shared an example case with you in my first post. Hopefully that gives a good understanding of the kind of requests we’ve seen come through.
We already support hiding store credit based on the order total - but that’s fixed logic and still lets $0 orders through where the customer has accumulated enough store credit over time.
As long as the function has the ability to read the user’s wallet balance – we should be able to set this logic up using the payment customization function.
Let me know if you need further clarity on any of the points or the related use cases. Happy to assist!
Now I understand what you meant about the store credit balance example. Since flat amounts could still result in $0 orders, using multiplier logic would effectively prevent that scenario!
I appreciate you sharing this context. I’ll submit a feature request and update this thread if/when we have news about this feature.
On an additional note, I found another solution to prevent stacking. It only works with Function discounts with conditional logic based on a cart attribute:
Use a Checkout UI extension to detect store credit selection
Use a Checkout UI extension to update the cart attribute when store credit is checked/unchecked
The cart attribute change triggers the discount function to run again
The discount applies or skips based on the cart attribute value
While hiding Store Credit with a Payment Customization Function when discounts are applied is simpler, this approach works if you need this specific functionality.
Sounds good! What’d be a good timeframe to circle back to this thread on?
Yep, this would work – but only for Plus and isn’t the ideal case for us. Doesn’t make sense for us to limit support for such basic use cases to Shopify Plus.
Also - I wanted to check if there’s a specific thread / place where we can raise questions and doubts related to the store credit primitive in Shopify?
There were still questions that we raised earlier on Slack regarding store credit webhook availability and the ability to write a message on the transaction level. (for analytics and better accountability) Not sure if there’s a great place within .dev where we can raise these points too.
With feature requests, it’s hard to give a reliable timeframe.
I recommend subscribing to notifications for this thread so you’ll know as soon as there’s any update. You can also keep an eye on our developer changelog.
If your questions are about the store credit primitive itself, the best options are Shopify Support via help.shopify.com or the merchant community forums. If your questions are more about extending our APIs or other developer functionality, this forum is still the right place to ask.