Shopify custom distribution: how it works, its limits, and when to use it
Short answer: custom distribution is the Shopify distribution method for an app you build in your own Shopify organization and hand out by install link. Shopify's own definition: "Select this method if you've built a custom app that you want to distribute to one store or multiple stores on the same Plus organization using a link." It needs no app review, it has the same API surface as a public app, and the choice is permanent. Its hard boundary is the merchant: one custom app serves one merchant, and Shopify's API Terms make that a rule rather than a convention.
That last sentence is where most of the confusion in this topic lives, so the rest of this page assembles the constraints the docs state in four separate places.
What is custom distribution, exactly?
It is one of the two ways a Shopify app can reach a store. Shopify's distribution overview describes a custom-distribution app as "Installed on a single Shopify store, on multiple stores that belong to the same Plus organization or any transfer-disabled development stores." You build the app in the Dev Dashboard, choose the method on the app's Select distribution method screen, and Shopify generates an install link you send to the store owner.
What it is not is a lesser app. Custom-distribution apps use the same Admin API, the same webhooks, and the same extension surfaces as apps in the App Store. The differences are all about reach, review, and billing — see Shopify custom apps explained for the type-by-type comparison.
Who can install a custom-distribution app?
Exactly one merchant, on one store — or on several stores if, and only if, those stores sit inside a single Shopify Plus organization. The multi-store case is controlled by a toggle: Shopify's page says that to "limit your app's installs to one store, uncheck Allow multi-store installs for one Plus organization." Multi-store install for Plus organizations arrived in a changelog entry dated July 27, 2023: "Starting today partner accounts can distribute a single custom app to all stores within a Shopify Plus organization."
Two quirks that bite people:
- Apps created before July 26, 2023 don't get the toggle by themselves. Shopify's own wording: "If you created a custom app before July 26, 2023, then you need to contact Partner Support to enable installing the custom app on multiple stores." That is a support ticket, not a settings change.
- "Organization" is not "my client list". The boundary is a Shopify organization, and Shopify enforces it at install time. Trying to install outside it produces an error rather than a warning — see the collaborator guide for what that looks like in practice.
Can one custom app serve several merchants?
No, and this is a terms question rather than a technical one. Shopify's API Terms define a Custom Application as one "made available to a single Merchant", and §2.3.20 requires that a developer "not make Custom Applications available to or for use by more than one Merchant. For the avoidance of doubt, this means that Custom Applications may not be installed by more than one Merchant. For clarity, a Merchant may have more than one Merchant Store."
Read the clause carefully, because it cuts both ways. It forbids reusing one custom app across unrelated merchants — and in the same breath it establishes that one dedicated app per client merchant is the compliant shape, not a loophole. The remedies §2.3.20 lists for a breach are severe: Shopify may terminate the developer's rights, or decide in its sole discretion that the application "is deemed to be a Public Application" and therefore subject to the public-app regime.
Is the distribution method reversible?
No. Shopify states it twice on the same page: "You can't change the distribution method after you select it, so make sure that you understand the different capabilities and requirements of each type," and, for apps that came from the old admin flow, "If you create a custom app through the Shopify admin, then you can't change the app distribution method." (Select a distribution method.)
Practically: if there is a real chance this codebase becomes an App Store product, the migration is a new app plus a re-install on every store — plan for it before you click, not after.
Custom distribution versus public distribution: what do you trade?
| Custom distribution | Public distribution | |
|---|---|---|
| Who can install | One merchant (one store, or one Plus organization) | Any merchant |
| Shopify app review | Not required | Required, including for a listing kept at limited visibility |
| App Store listing | None | Required; visibility is a separate setting |
| Shopify Billing API | Not available | Available, and expected for paid services |
| Revenue share | None — you bill directly | Applies through Shopify billing |
| Extensions (theme, checkout, web pixel) | Supported | Supported |
| Release cadence | Yours | Gated by review on qualifying changes |
| Serving many unrelated merchants | One app per merchant | One app for all |
Two rows deserve a note because they are routinely misread.
"Limited visibility" is not a review shortcut. A public app whose listing is hidden is still a public app. Shopify's visibility documentation states that "All apps distributed through the Shopify App Store must have an app listing page on the Shopify App Store", with visibility governing only whether it is indexed and surfaced in search and category pages. A Shopify staff reply on the developer forum in April 2026 put the same point directly: an app intended for multiple merchants "does need to have a Public distribution status in order to install it on multiple stores" and review "is required" even when the listing is hidden (thread). Whatever you have heard about this route, the review gate is still there.
No Billing API is often the feature, not the limitation. Shopify's comparison table lists "Can't use the Billing API to charge merchants" under custom distribution, and the Help Center repeats it. If you already have a commercial relationship, an invoice, and a contract with the merchant, losing Shopify's billing rails also means losing Shopify's cut and keeping the payment relationship.
Does the January 2027 expiring-token requirement apply?
Not as of today. Shopify's offline access tokens page states that "Public apps created on or after April 1, 2026 must use expiring tokens, and public apps created before April 1, 2026 must migrate to expiring tokens by January 1, 2027," and then that "These requirements don't apply to custom apps or apps created by merchants."
We flag the "as of today" deliberately. This is a Shopify policy decision, not a law of physics, and it is the kind of exemption that can be narrowed in a changelog entry. If your architecture depends on a non-expiring offline token, put a calendar reminder on Shopify's changelog rather than on this sentence.
When should you choose custom distribution — and when shouldn't you?
Choose it when:
- The app serves one merchant you know, under an existing commercial relationship.
- You need to ship on your own schedule, without a review queue between you and a fix.
- You want per-merchant scopes, per-merchant credentials, and a blast radius of one store.
- Your merchants are not on Plus, so an organization-wide install was never available anyway.
Don't choose it when:
- You want any merchant to be able to find and install the app. That is public distribution; nothing about custom distribution scales to that, and attempting it is what §2.3.20 prohibits.
- You need Shopify-managed billing, trials, or App Store discovery.
- One merchant, one app is genuinely all you'll ever have and everything already sits inside one Plus organization — in which case the multi-store toggle is the whole answer and you need no further tooling at all.
The honest middle case is a vendor with many unrelated client stores. Custom distribution is the right method there, but it means N apps — N creations, N configurations, N scope sets, N credential sets, N deploys per release. Shopify staff prescribe exactly that pattern on their own forum and concede its ceiling in the same breath: one 2026 staff reply describes one app per client store with its own install link and adds "it's a bit more setup up front, but for a handful of stores it's manageable" (thread, April 2026). Below a handful, do it by hand — the step-by-step creation guide is the entire job.
Where DeploTeka fits (product note). DeploTeka is our own tool for the case above a handful, and this is the only place it appears in this guide. It creates a dedicated custom-distribution Shopify app per client store inside your own organization, seals the credentials and delivers them to your backend, and pauses with a named action when a step needs a person. It does not clone, build, or run your source on our servers, and the merchant still approves each install — Shopify requires that, and no tool removes it. deploteka.com
Sources: [Shopify — About app distribution](https://shopify.dev/docs/apps/launch/distribution), [Shopify — Select a distribution method](https://shopify.dev/docs/apps/launch/distribution/select-distribution-method), [Shopify — App listing visibility](https://shopify.dev/docs/apps/launch/distribution/visibility), [Shopify changelog — install custom apps on multiple Shopify Plus stores](https://shopify.dev/changelog/install-custom-apps-on-multiple-shopify-plus-stores), [Shopify — Offline access tokens](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/offline-access-tokens), [Shopify API Terms](https://www.shopify.com/legal/api-terms), [Shopify Help Center — making apps](https://help.shopify.com/en/partners/build-integrate/making-apps). Community threads are linked as evidence of what was said in them, not as statements of Shopify policy.