Overview
On May 7, 2026, Shopify shipped Discounts by Market, a long-requested feature that lets you assign any code-based or automatic discount to specific markets instead of running every promo globally. This guide walks you through scoping discounts by country, B2B company location, retail location, or sales channel, and shows you how to audit your existing global codes so a US-only flash sale doesn't quietly drain margin in Europe. You'll get step-by-step setup instructions, troubleshooting tips for common edge cases, and an FAQ covering the most frequent merchant questions. If you sell internationally, run wholesale alongside DTC, or operate POS locations, this is one of the highest-impact admin changes of the year.
Contents
What changed in May 2026
Before this update, a Shopify discount code applied across every market unless you bolted on workarounds with Functions, apps, or customer segments. That's now built in.
Shopify rolled out the ability to assign discounts to specific markets and control exactly where they apply, so you can run an online-only flash sale without it hitting your retail locations, or create a wholesale offer that only reaches your B2B buyers, with no workarounds needed.
The release added three concrete admin changes: an eligibility selector on the Discount Details page that lets you assign any code-based or automatic discount to one or more markets, market and customer filters on the discounts list to find what's active where, and a Discounts panel on the Market Details page that shows every discount assigned to a market at a glance.
You can also preview how discounts resolve in context using the View-As mode in Markets graph view. Discounts by Market is available for all merchants on Basic plans and above who are on the new version of Markets.
Side note - this cleans up international promo mistakes, which has historically been a top revenue leak when a US-priced "20% off" code accidentally applies to euro carts.
When should you scope a discount by market?
Use market scoping any time the offer doesn't make economic or strategic sense everywhere. Common scenarios:
Currency mismatch. A "Spend $100, get $20 off" threshold breaks the moment a customer shops in EUR or GBP at a different conversion rate.
Retail vs online. A homepage banner code shouldn't accidentally redeem at your POS counter on already-marked-down items.
B2B-only offers. Wholesale terms should reach company locations, not your DTC storefront.
Regional compliance. The European Price Indication Directive requires you to display the lowest price charged for a product within the last 30 days when announcing price reductions in the EEA, so EU promos need careful scoping.
Instead of one global promotion, merchants can run market-specific discounts that apply only to selected regions or countries. Currency-aware thresholds are a direct result of this shift: a "Spend $100, get $20 off" promotion no longer makes sense when customers shop in different currencies.
Step 1 - Audit your existing global discount codes
Before you create anything new, find out what's leaking. Every active discount created before May 7 likely still defaults to "All customers" eligibility across every market.
From your Shopify admin, go to Discounts.
Use the new market filter at the top of the list to view everything currently active globally.
Export the list or screenshot it, then sort by revenue using your discount performance report.
Flag any code with a fixed-amount value (for example, $10 off), any free-shipping code, and any "first order" code: these are the highest-risk leakers.
Why this matters: fixed amount discounts can be created in your store's default currency only, and they're converted to your customer's currency at checkout based on current exchange rates. For example, if your default currency is USD and you create a $5.00 USD discount, a customer in a CAD market with an exchange rate of 1.44 receives $7.02 CAD off. That's a silent margin hit on every international order if the code wasn't meant for them.
What if you have dozens of legacy codes?
Prioritize by impact: codes used in the last 90 days, codes with no expiry date, and codes shared in email campaigns to international segments. Re-scope the top 20 first; archive the rest if they're stale. Re-scoping every active discount code by market is now a baseline May 2026 checklist item.
Step 2 - Map your markets before you scope discounts
Discounts by Market only works as well as your underlying market structure. Previously, markets were composed only of specific countries or regions, but markets have now been expanded and can be used to represent specific sets of customers by creating markets and submarkets, where submarkets inherit the customizations of their parent market.
You'll see three market types referenced throughout the discount eligibility flow: Markets eligibility lets you choose which B2B company location markets, Region markets, or Retail location markets your discount is available to.
Go to Settings > Markets and confirm each country or region you sell to has its own market (or is grouped intentionally under a parent).
Confirm B2B company locations are assigned to a B2B market, not lumped under your DTC Region market.
Confirm each physical retail location has a Retail market, especially if POS pricing differs from online.
Open the Markets graph view to visualize the hierarchy.
Tip - if a market is missing here, the discount eligibility selector won't show it. Build the market first, then come back to the discount.
Step 3 - Create a code-based discount scoped to a market
Now create the discount itself. The flow is the same as before, with one new section.
From your Shopify admin, go to Discounts and click Create discount.
Choose Amount off products, Amount off order, Buy X get Y, or Free shipping.
Set your code, value, and combinations as usual.
Scroll to the Eligibility section. Select Markets.
Select the markets that you want to assign the discount to, and then click Add.
Set your usage limits and active dates, then click Save.
The discount is now invisible to any buyer outside those markets. A customer in France using a French IP and EUR currency will not see, redeem, or have the code applied at checkout if you scoped it to a US Region market only.
Can you combine market eligibility with customer segments?
Yes, but read the rules carefully. You can specify customer and market eligibility for discount codes and automatic discounts: All customers, Markets (B2B, Region, or Retail), or Customer segments, which let you offer discounts to groups of customers who have similar characteristics. For automatic discounts, you can have up to 5 customer segments for a single discount, and for discount codes, you can have up to 100 customer segments for a single discount.
Step 4 - Scope an automatic discount to B2B or retail
Automatic discounts (no code required) historically applied across every sales channel, which made them risky for international stores. That's no longer the case.
From Discounts, click Create discount and choose an automatic type.
In Eligibility, select Markets.
For a wholesale-only promo, select your B2B company location market(s) and exclude your DTC Region markets.
For a POS-only doorbuster, select only your Retail location market.
Save.
Important POS detail: automatic discounts are applied on all sales channels you have set up, and for POS specifically, you can activate automatic discounts only for POS Pro locations. They're activated when you select Apply on POS Pro locations when the discount's eligibility is set to All customers, or when you assign a valid Retail market when the discount's eligibility is set to Markets.
What if you don't see a B2B market option?
You need at least one B2B company with an assigned company location, and the company location must be tied to a B2B market under Settings > Markets. Create the B2B market first, then refresh the discount creation page.
Step 5 - Preview with View-As and filter the discounts list
Two new tools help you verify scope before you announce a campaign.
View-As in Markets graph view. Open Settings > Markets, switch to graph view, and use View-As to simulate a buyer in any market. You'll see which discounts resolve for that buyer in context, which is the fastest way to confirm a code is properly walled off.
Filters on the discounts list. From Discounts, filter by market, customer segment, or specific customers to find what's active where. This is the audit view you'll keep coming back to whenever marketing pushes a new campaign.
Discounts panel on the Market Details page. Open any market and scroll to see every discount assigned to it. The Market Details page now surfaces every discount assigned to a market at a glance.
Tip - bookmark each major market's detail page. When something looks off in revenue reporting, this is faster than searching the discounts list.
Step 6 - Avoid currency and stacking pitfalls
Scoping by market doesn't solve every international promo problem. A few rules still apply.
Percentage discounts ignore currency entirely. Percentage-based discounts (for example, 10% off an order) don't have a currency attached to them. Prices are discounted by the specified percentage regardless of the customer's checkout currency. For example, you create a discount that offers ten percent off a ball, and at checkout this discount reduces the price of the ball by 10%. That's usually safe, but it means a "10% off" code scoped globally won't break currency-wise; the risk is strategic, not mathematical.
You still can't create currency-restricted codes. You can't use discount codes to offer currency-based discounts; for example, you can't create a discount code that can only be used for orders using one type of currency. Scoping by market is the closest equivalent, and it's how you should solve this from now on.
Catalogs are not discounts. If you're on Shopify Plus and use catalogs to set regional pricing, remember they sit upstream. Shopify Plus has a feature called Catalogs that allows you to override pricing based on the Market or Company a customer belongs to. This is a separate system from discounts: catalogs apply way before discounts. Catalogs are a simple, scalable solution for contextual pricing. Don't try to do market pricing with discount codes when a catalog is the right tool.
Stacking rules still apply. Shopify only allows one product discount per line item, so you can't stack two product-level discounts on the same item. Order discounts can combine with product discounts if both allow combinations. Shipping discounts cannot combine with each other. Customers can use 5 product/order discounts and 1 shipping discount max per order.
FAQ
Which plans get Discounts by Market?
Discounts by Market is available for all merchants on Basic plans and above who are on the new version of Markets. If you're still on the legacy Markets experience, you'll need to migrate to access the new eligibility selector.
Can I create a discount that applies only to B2B buyers?
Yes. Create the discount, choose Markets as eligibility, and select only your B2B company location market(s). DTC buyers won't see or be able to redeem the code. You can assign automatic discounts and discount codes to specific B2B, Region, or Retail markets to control which customers the discounts apply to.
How do I make a discount online-only and exclude POS?
Scope the discount to your Region (online) markets only and leave your Retail location markets unchecked. Because automatic discounts on POS Pro require you to assign a valid Retail market when eligibility is set to Markets, leaving Retail off keeps the discount off the POS terminal.
Will a $10 off code in USD still convert into CAD?
Yes, unless you scope it to your USD market only. Fixed amount discounts can be created in your store's default currency only, and they're converted to your customer's currency at checkout based on current exchange rates. If you don't want that conversion to happen, restrict the code to your home market.
Do existing discount codes get re-scoped automatically?
No. All discounts created before May 7, 2026 remain at their original eligibility setting (typically "All customers" globally). You need to manually open each one and apply the Markets eligibility you want. That's why the audit in Step 1 matters.
Can I create a code that only works for orders in EUR?
Not directly by currency, but effectively yes by market. Scope the code to your EU Region market (or whichever markets are set to EUR), and any non-EUR buyer is excluded. This is the recommended workaround now that currency-restricted codes are still not supported natively.
How do I confirm a discount is properly scoped before launching?
Use View-As mode in the Markets graph view to simulate a buyer in each market. You can also open the Market Details page for that market and confirm the discount appears (or doesn't) in the Discounts panel.