📜 Shopify 101 — For the Developer Who Knows Nothing About It
The person reading this file: knows how to write code, understands a bit of marketing, has zero knowledge of Shopify. Goal: after 30 minutes of reading, be able to answer "what is a Shopify app, what am I going to build, where does the money come from". No setup, just a clear picture in your head.
1. What exactly is Shopify?
An e-commerce SaaS. A business pays a monthly fee and gets a ready-made online store in return: product management, cart, payments, shipping, tax, admin panel. You open a store without writing code.
There are three parties in the ecosystem:
| Party | Who | What they want |
|---|---|---|
| Merchant (seller) | The store owner. Our customer. | More sales, less manual work |
| Shopify | The platform | Ecosystem growth, commission |
| Partner / Developer | Us | Sell tools to merchants and make money |
Critical point: our customer is the merchant, not Shopify. Shopify is just the distribution channel — the intermediary that runs the App Store, issues the invoice and collects the money.
2. What is a Shopify app?
Software that does a job Shopify doesn't do on its own, which the merchant installs into their store.
Examples (real App Store categories):
- Automatically collecting and displaying product reviews
- WhatsApp/SMS reminders for abandoned carts
- Automatic reorders to the supplier when stock runs low
- Printing shipping labels, managing returns
- "Buy this too" recommendations on the product page
Technically, the app does not run on Shopify's servers. It is a normal web application sitting on your own server (in our case, on Coolify). Shopify only:
- Sends the merchant to you via OAuth,
- Shows your application inside the admin panel in an iframe,
- Gives you an access token to access the store's data.
So it's a web app as you know it. What's new: the authentication flow, the APIs and billing are tied to Shopify.
3. Mental model — the pieces
┌────────────────────────────────────────────┐
│ Shopify Admin (what the merchant sees) │
│ ┌──────────────────────────────────────┐ │
merchant ───► │ │ <iframe> YOUR APP │ │
│ │ (running on your server) │ │
│ └──────────────────────────────────────┘ │
└────────────────────────────────────────────┘
│ Admin GraphQL API (you → Shopify: read/write data)
▼
┌────────────────────────────────────────────┐
│ Shopify: products, orders, customers │
└────────────────────────────────────────────┘
│ Webhook (Shopify → you: "an order came in")
▼
your server / your database
There are three directions, don't mix them up:
- iframe → the merchant sees your UI inside the admin (this is called an embedded app).
- API call → you ask Shopify for data. GraphQL. (The REST API is legacy now; don't write new code against it.)
- Webhook → Shopify notifies you of an event. Order created, product deleted, app uninstalled.
4. Glossary — you can't move forward without these
| Term | What it means |
|---|---|
| Merchant | The store owner. Your customer. |
| Store / shop | A single store. Has a permanent name like something.myshopify.com. |
| Partner account | Your developer account. Free. Your apps and test stores live here. |
| Development store | A free test store filled with fake data. Can't make real sales. This is where you develop. |
| Embedded app | An app that opens in an iframe inside the admin. This is the standard. |
| App Bridge | Shopify's library that lets your JS inside the iframe talk to the admin outside it (open a modal, redirect, show a toast). |
| Session token | Identity in an embedded app. Because it's an iframe, cookies can't be trusted; a short-lived JWT comes with every request. |
| Access token | The key you receive when a merchant installs the app, granting access to that store's API. One per store. |
| Scopes | Permissions. Like read_products, write_orders. Every permission you ask for is shown to the merchant on the install screen — asking for too many lowers installs. |
| Admin GraphQL API | The main API for reading/writing store data. |
| Webhook | An event notification Shopify sends you (HTTP POST). |
| Extension | The part of your app that injects code somewhere outside the admin (see below). |
| Theme | The store's storefront — a theme written with Liquid templates. A separate world from the app. |
| Liquid | Shopify's theme templating language. You'll see little of it writing apps, a lot of it if you get into theme work. |
| App Store | apps.shopify.com — the marketplace where apps are listed. Getting in requires review. |
| Custom app | An app written for a single store, not listed on the App Store. No review. |
| Shopify Functions | WASM code that runs on Shopify's own infrastructure (discount logic, shipping rules). Rare but powerful. |
5. Types of apps — deciding what to build
Public app — Listed on the App Store, anyone can install it. Scales, but goes through the review process. 👉 This is our target.
Custom app — For a single merchant. No review, fast. Like consulting work; doesn't scale, but brings in the first money quickly and teaches you the real problem.
Extensions — Parts of your app that reach outside the admin:
- Theme app extension → adds a block to the storefront (e.g. a review box on the product page)
- Checkout UI extension → adds fields to the checkout page (some parts require the Plus plan)
- Admin UI extension → adds buttons/panels to the admin's own pages
- Shopify Functions → runs discount/shipping logic inside Shopify
At the start, an embedded admin app alone is enough. Extensions come later.
6. How is money made?
You charge the merchant a subscription (typical: $9–99/mo, some usage-based). You don't collect the money yourself: via the Billing API, Shopify adds it to the merchant's existing invoice, charges it, and pays you. No credit card integration — this is a huge convenience.
Shopify takes a revenue share. The current general framework: 0% up to a certain annual threshold, a share above it. The rates change — confirm them in the Partner docs at the time you apply, don't trust the number here.
A realistic sense of scale: $30/mo × 50 merchants = $1,500/mo. That's a small-to-mid but real app on the App Store. Set your target from here, not from "there are millions of merchants".
7. Why this business is attractive for a developer — and where the trap is
Attractive:
- Payment infrastructure, authentication and the distribution channel come ready-made.
- Your customer is already a paying business; no B2C "user waiting for free stuff" problem.
- Merchants are easy to find: they openly talk about what they sell, their revenue, their problems.
Trap:
- App Store competition is fierce; every popular category has 50+ apps.
- Merchants install apps like items in a shopping cart and delete them a month later. Churn is high.
- A "nice app" doesn't sell; a measurable result sells (conversion went up, saved this many hours).
- The biggest mistake: learn the platform, write code for 3 months, then publish something nobody wants.
That's why in the roadmap the technical warm-up is deliberately short, followed by merchant conversations.
8. The 5 sentences that need to be clear in your head
- Shopify app = a normal web application running on my own server, shown in the admin via an iframe.
- Merchant installs → OAuth → I get an access token for that store.
- I read data with the Admin GraphQL API, I hear about events via webhooks.
- Shopify collects the money via the Billing API and pays me.
- The hard part isn't the code; it's which merchant's which pain I'm solving.
9. What's next
We got this far without installing anything. Setup and the first running application: 👉 LEARNING.md — Session 1.
Sources: shopify.dev (official docs), partners.shopify.com. This file gets corrected as we learn — if you see something wrong, change it and add a date.