Question: How Can I Share a Server-Only App Across Multiple Merchants Without the Shopify App Store?
Hi everyone,
I’m building a server-only app that doesn’t require a merchant-facing UI. The main goal is to provide shared backend functionality for merchants who install it, such as:
- Accessing and syncing inventory, images, prices to my backend database
- Setting up webhooks for events like product updates or inventory changes
- Possibly offering other backend features (e.g., analytics, multi-merchant reporting)
I’ve read the Shopify docs Server-only apps section, which say:
“Apps that don’t provide a user interface for merchants can’t be distributed through the Shopify App Store.”
That raises some questions:
What I’m Trying to Understand
- How can I distribute this app to multiple merchants if I can’t use the App Store?
- Do I need each merchant to create their own private/custom app and send me their Admin API token (which seems messy)?
- Is OAuth with a public app the only scalable solution even for server-only apps?
- Is it acceptable to build a “public” app via the Partner Dashboard, use OAuth, and never show a frontend to the merchant?
- Can I still get approved without a full UI, as long as the backend works and the app is installed via OAuth?
- Are there recommended patterns for apps that work like this?
- What are the best practices around storing and using access tokens in this kind of setup?
- If I’m storing access tokens from multiple merchants on my server, is that fine as long as I follow Shopify’s app security guidelines?
My Use Case Summary
- Central server app written in Node.js
- I want all inventory data from multiple merchant stores synced into one system
- No storefront rendering or embedded app UI