Promotions and discount codes are routine for Shopify brands — BFCM sales, member offers, abandoned-cart recovery codes, first-order discounts at install. Running them in a mobile app is mostly the same as running them on web, with two specific exceptions where store policy meaningfully constrains what you can do. The gap between "fine" and "rejected" is narrower than most brands realize.

The payment gate rule

Apple and Google both have rules that govern apps which sell digital goods and services through the App Store. For physical goods (which is what Shopify brands sell), the rules are much more permissive — you can use any payment processor, including Shopify Checkout, with no requirement to share a percentage with the store. Physical-goods commerce is explicitly allowed outside the platform billing rails.

This is the foundation that makes mobile app commerce work for Shopify brands. As long as what you sell ships in a box (or is a service performed by humans, not delivered digitally to the device), you can run any discount, any pricing, any promo through your own checkout. The platform-billing rules do not apply.

What not to do

Where brands get into trouble: using the in-app purchase API for anything other than digital goods. Some platforms have tried to route Shopify orders through Apple's IAP system, presumably to centralize billing or simplify subscription handling. This violates both Apple's guidelines for physical goods and Shopify's checkout architecture; the result is rejection or suspension.

The clean rule: discount codes apply at Shopify Checkout, never via an in-app purchase product. Member tiers and loyalty credits resolve in Shopify Checkout. Subscription pause and swap actions hit your subscription platform's API (Recharge, Bold, Skio), not Apple's. Keep the financial logic on the Shopify side; the app surfaces it but does not handle it.

A mobile cart with a promo code field and discounted total
Promo codes apply at Shopify Checkout. The app surfaces them; Shopify validates and discounts.

App-only promotions are fine

Brands often run promotions that are exclusive to their app — first-order app install discounts, early-access drops, push-only restock alerts. These are entirely permitted. The app channel is allowed to have its own offers; nothing in either store's rules requires app pricing to match web pricing.

Where this gets nuanced: if your app pricing is systematically lower than web pricing in a way that could be construed as evading platform fees, you may attract attention. The reality is platforms do not police this strictly for physical goods, and brands routinely run app-only offers without issue. Still, "different pricing because the app channel is a separate experience" is the framing that holds up; "app pricing is lower to avoid the App Store cut" is the framing that does not (and is also factually wrong, since physical goods do not have an App Store cut).

Discount codes in the app

Discount codes work in the mobile app the same way they work on mobile web. The buyer types or pastes the code into a field at checkout; Shopify validates it; the discount applies. Native checkout patterns can also auto-apply codes via deep links (a push notification with a tap-to-apply code), which removes a layer of friction.

For first-order app install discounts, the cleanest pattern is auto-apply. The buyer installs, the app reads the install context, the discount is automatically present in the cart without any code entry. The conversion uplift over "here is a code, enter it at checkout" is meaningful — often 5–10% on first-order conversion.

BFCM and tentpole sales

For high-traffic sales (BFCM, summer launch, holiday gift drop), the app channel often outperforms mobile web because the install graph provides an existing audience that does not need to be re-acquired. Push notifications announce the sale, the cart surfaces the discount automatically, and the buyer completes in seconds.

The technical considerations: real-time price sync (covered elsewhere — the app must reflect sale pricing within seconds of changes in Shopify), inventory protection (the app can implement a queue if needed), and push throttling (do not send all 100,000 pushes in the same second; stagger over 5–10 minutes to manage server load on both your side and Shopify's).

The store rules are not trying to prevent you from running promotions. They are trying to prevent you from selling digital goods that bypass the store's billing. Physical goods are outside that scope.Platform policy reader, internal

Member-only and segment-based offers

Segment-based offers — discounts visible only to specific cohorts of buyers (subscribers, VIPs, lapsed buyers) — are a powerful retention lever and entirely permitted. The buyer's segment is determined by your data; the offer is auto-applied at checkout via Shopify's discount engine.

A common pattern: the app home screen shows a personalized hero with a member-exclusive offer. The buyer taps through. The discount is already in the cart at checkout. No code entry required. This is a use case where the native app experience demonstrably outperforms web, because the personalization can be more aggressive without cluttering the navigation.

A small number of categories have unusual rules — subscriptions to digital services delivered through the device (streaming, software-as-a-service), in-app currencies, and certain finance products. Most Shopify brands do not sell these and can ignore the special cases. If you do, bring the question to your legal team before launch.

For physical goods, apparel, beauty, food, home, and the rest of the standard ecommerce universe — the discounting playbook is essentially "do what you do on Shopify, surface it well in the app, complete at Shopify Checkout." That is the safe, permitted, conversion-positive pattern that holds up across every store policy update we have tracked.