Restricting discounts to specific sales channels (e.g., POS only)

Hi everyone,

I’m looking for guidance on how to restrict discounts based on the sales channel.

Specifically, is it possible to create a discount (either standard or custom via Shopify Functions) that is strictly limited to a specific sales channel, such as Shopify POS, so that it cannot be applied on the Online Store?

I’d love to know:

  1. Is there native support for channel-restricted discounts in the standard Admin setup?

  2. If not, can this be achieved programmatically using the Shopify Functions (Discounts API) by evaluating the order/cart context or channel ID?

Any code snippets, GraphQL API references, or documentation links would be greatly appreciated.

Thanks in advance!

Hi there! Developer from the Discounts team here.

Yes, we do have native admin support for this. Use a **location (retail) market** and set the discount’s eligibility to it.

1. Create a market with a locationsCondition (specific POS locations, or applicationLevel: ALL for a whole region): Market types .

2. Target the discount at it: admin → **Customer eligibility → Markets**, or context: { markets: { add: ["gid://shopify/Market/123"] } } on discountCodeBasicCreate / discountAutomaticBasicCreate (2026-07+, Target discounts to specific markets - Shopify developer changelog ).

A location market only matches when the sale has a retail location, which only POS has, so the discount can’t apply on the online store.

Notes:

- The **Sales channel access** card on the discount page isn’t this. It only lets channel apps see and feature the discount.

- Market eligibility replaces customer eligibility on that discount.

- The reverse (online store only) doesn’t work with markets, since POS sales also match their country’s region market. For that, use a discount Function and check Cart.retailLocation (null online, set in POS): Discount Function API .

@GabrielTurnes : Have the channel add a cart attribute or line attribute (for example, channel=pos) and read that from the function’s cart input.