
Discount codes limited to one use per customer were not always removed when a returning customer tried to reuse them. We fixed the detection for this case.
Codes with a "one use per customer" limit are now removed for returning customers just like new-customer codes.
The customer sees the usual banner explaining that the code has already been used.
Every check is logged in your Activity Log with the strategy that triggered it.
Nothing to configure. If you want DiscountHero to be stricter or more lenient, adjust the matching strategies under Settings.

DiscountHero moved to Shopify's newest app framework and design system.
Consistent look across dashboard, analytics, activity log, settings and onboarding, matching the current Shopify admin.
Faster page loads when opening the app and switching between pages.
Breadcrumb navigation on every page.
Redesigned plans page with a yearly billing toggle and a date picker for analytics ranges.
The checkout extension runs on the latest Shopify API version.
Your settings, matching strategies and imported orders stay as they are. No action needed.

Depending on your store size, the initial order import can take a while, for large stores up to 48 hours. You no longer have to wait for it.
Complete the onboarding while the import runs in the background.
A banner on the dashboard shows the import progress and disappears once everything is in.
DiscountHero starts protecting your codes as soon as the first orders are imported and keeps improving as the history fills up.
Stores without the extended order-history permission import the last 60 days by default.

Instead of just removing a new-customer code from a returning customer, DiscountHero can swap it for a code that this customer is actually allowed to use.
A returning customer who enters a new-customer code gets your returning-customer code applied automatically.
A new customer who enters a returning-customer code gets the new-customer code instead.
Works with influencer and campaign links that set the codes as cart attributes.
The customer sees a short banner explaining the swap, no dead end at checkout.
Smart discount replacement is enabled per store. Message us via the widget if you want it switched on and we set it up with you.

Right after installing, many merchants ask under which conditions DiscountHero blocks a code. The answer now lives in the app.
A "How does DiscountHero work?" section on the dashboard explains the check step by step: which codes are affected, which customer data is compared and what the customer sees.
Only codes restricted to new customers or limited to one use per customer are touched. Unrestricted codes are never removed.
Use it to align your team and your customer support on what to expect.

We tightened the analytics so the numbers on your dashboard reflect what DiscountHero really saved you.
Additional revenue now only counts discounts that were removed on checkouts which turned into a completed order.
ROI uses the same conversion rate for checkouts with and without discounts, which removes a bias that inflated the lost-profit estimate.
Your estimated margin (default 20%) still feeds into the ROI, adjust it in Settings if your margin differs.
Historic numbers were recalculated, so your dashboard may show slightly different values than before.