1. Install Chapters and activate the free plan
- Install Chapters from the Shopify App Store and approve the requested access — products, orders, customers, files, plus the publishing and fulfillment access Chapters uses to auto-create course products, enroll students on payment, mark course orders fulfilled, and store your logo.
- Open Chapters in your Shopify admin. The dashboard's "Get set up" checklist mirrors this guide and ticks most steps itself as you go (the checkout step has a "mark as done" button).
- Click Activate your free plan. There is no monthly fee — Chapters charges 5% only when a student buys. Activating just registers the plan with Shopify billing.
2. Create and publish your first course
- Click Create course, then add at least one chapter and one lesson (video, text, or quiz). Drag to reorder anytime.
- Set your price, then hit Publish.
Publishing is the moment Chapters wires your store: it creates a real Shopify product for the course —
marked as a digital product with no shipping required, product type Course, priced at what you set — and publishes it to your Online Store.
Exams you sell standalone get their own product (type Exam) the same way. You never create or link these products by hand.
Every course page Chapters serves also carries schema.org Course structured data automatically, so Google can show your courses as rich results. Nothing to configure.
Empty store? The dashboard offers a one-click sample course so you can test the whole flow before building your real content.
3. Add the theme blocks (theme editor)
Chapters ships four app blocks for your theme. The easiest path: on the app dashboard, the checklist's "Add block" buttons open your theme editor with the block already placed — you just press Save. To add one manually instead: Online Store → Themes → Customize, open the template you want, click Add block → Apps, and pick the block.
App blocks require an Online Store 2.0 theme — any theme from the current Theme Store qualifies. If Add block shows no Apps option, your theme is a vintage one; update it first.
- Course Details — add to your product template. On course products it renders the meta chips (length, lessons, level), "What you'll learn" outcomes, and the full curriculum outline; on standalone exam products it shows no card but still tidies the buy box. On every other product it renders nothing, so it's safe on your shared product template.
- Course Access Card — product template. Shows guests a sign-in prompt, buyers a "You're enrolled — continue learning" card.
- Course Catalog — your homepage (or any page). A browseable grid of your published courses.
- My Courses Button — anywhere you want a shortcut into the student portal.
The buy box cleans itself up. The Course Details block also hides the quantity selector and Shopify's "Buy it now" dynamic-checkout button on confirmed course and exam products (both on by default in the block's settings — you can toggle them off). Courses are bought once; with the stepper and the duplicate button gone, the page reads like a course, not a physical product — and other products on your store are untouched.
Optional, theme-dependent: many themes have a "skip cart" or "buy button goes straight to checkout" setting. With quantity and Buy-it-now already hidden, turning that on takes a student from Enroll → payment in one step. Check your theme's cart settings — this one lives in your theme, not in Chapters.
4. Turn on the thank-you checkout block
Two extensions carry students from "paid" to "learning". Only one needs a click:
- Go to Settings → Checkout and click Customize to open the checkout editor.
- Use the page selector at the top to open the Thank you page, click Add app block, and add "Course thank-you experience". Save.
- The "Access your course" card on the order page needs no setup at all — it appears automatically on course and exam orders once Chapters is installed. Just confirm it during the launch test.
After that, course orders end on a "Welcome to your course" hero with a Start learning → button, and the order page customers revisit carries the "Access your course" card forever. Exam orders get their own versions ("Your exam is unlocked"). Orders without a course or exam are completely unchanged.
The order-page card renders in Shopify's modern customer accounts (the hosted account pages). If your store still runs legacy customer accounts, switch in step 5 — it unlocks this card and the My Learning page in step 6.
Don't trust the editor preview here: the checkout editor previews a sample physical order, and these blocks only render for course/exam purchases — so the preview will look empty. That's expected. Verify with a real (or free) course order instead; the launch test at the end of this guide covers it.
5. Require sign-in before checkout (recommended)
In Settings → Customer accounts, make sure customer accounts are on (choose the modern hosted accounts — Shopify calls the older version "legacy") and enable "Require customers to log in before checkout" (wording varies slightly by admin version).
Why we recommend it: when every order belongs to a signed-in customer, enrollment is instant — the payment webhook carries the customer, and the course unlocks the second Shopify confirms the order. Guests who buy can still claim access by signing in with their order email afterwards, but the signed-in path removes that extra step for every future student.
6. Put "My Learning" inside their Shopify account
Chapters adds a native My Learning page to your customers' Shopify account area — the same place as their orders and profile. It shows their enrolled courses with progress, a "continue where you left off" hero, pending quizzes and assignments, upcoming live classes, and one-tap links into the full portal. My Learning requires Shopify's modern customer accounts (see step 5) — it isn't available on legacy accounts. Activate it once:
- Go to Settings → Checkout → Customize (the same editor also covers customer accounts; you can also reach it from Settings → Customer accounts).
- Open the page selector at the top and choose My Learning under Apps. Save.
- When the editor offers to add it to the account menu, accept — pick the link first (Link → Customer accounts → Apps → My Learning), then confirm the row. A row confirmed with no link silently saves nothing.
Optional but nice: in the same menu editor you can reorder the menu so My Learning comes first, and rename "Orders" to something shoppers-turned-students expect — like "Purchases". That one-word change does a lot to make the account area read "school", not "shop".
Preview caveat: inside the editor, My Learning previews with a placeholder customer, so it shows "Couldn't load your courses". That's the preview, not a bug — sign in to your storefront with a real account to see it live.
7. Make the order confirmation email course-aware (optional)
Out of the box, Shopify's order confirmation says "Thank you for your order" and talks about shipping — the right words for products, the wrong ones for a course. Shopify doesn't let apps edit notification emails, so this is a copy-paste job in your admin. Five minutes, once:
- Go to Settings → Notifications → Customer notifications → Order confirmation and click Edit code.
- Heads-up before you start: once you customize a notification template, Shopify stops auto-updating it. That's normal for any store that customizes emails — just know you own the template from here.
A — paste this at the very top of the template. It detects whether the order contains a course or exam:
{% assign chx_course_count = 0 %}{% for chx_line in subtotal_line_items %}{% if chx_line.product.type == 'Course' or chx_line.product.type == 'Exam' %}{% assign chx_course_count = chx_course_count | plus: 1 %}{% endif %}{% endfor %}{% assign chx_is_course = false %}{% if chx_course_count > 0 %}{% assign chx_is_course = true %}{% endif %}
B — swap the heading. Find the thank-you heading near the top of the body (in most templates it reads Thank you for your purchase! or Thank you for your order!) and wrap it:
{% if chx_is_course %}You're enrolled — welcome to your course!{% else %}Thank you for your purchase!{% endif %}
C — add a course intro line. Good news first: in Shopify's default template the shipping sentence lives inside {% if requires_shipping %}, and course orders are digital — so the shipping talk already hides itself on course orders. What's missing is a positive line in its place. Paste this directly below the heading you edited in B (outside the {% if requires_shipping %} block — don't put it inside, or it will never show):
{% if chx_is_course %}Your enrollment is confirmed and your course is unlocked — you can start learning right now.{% endif %}
If your template was customized and shows a hard-coded shipping sentence on every order, wrap that sentence instead: {% if chx_is_course %}course wording{% else %}your original sentence{% endif %}.
D — add a Start-learning button. Find the existing button block (search for order_status_url — it sits inside a <table class="row actions">) and paste this directly above that table:
{% if chx_is_course %}
<table class="row actions">
<tr>
<td class="actions__cell">
<table class="button main-button-row">
<tr>
<td class="button__cell"><a href="{{ shop.url }}/apps/courses" class="button__text">Start learning</a></td>
</tr>
</table>
</td>
</tr>
</table>
{% endif %}
- Click Save, then use Send test email for a quick sanity check (test emails use sample data, so the course branch may not show — the real proof is a course order).
- If your template was already customized, the exact heading in B may differ — wrap whatever your template says. The pattern is the same:
{% if chx_is_course %}course wording{% else %}your original wording{% endif %}.
Result: course buyers get "You're enrolled — welcome to your course!" with a Start-learning button and zero shipping talk; every other order keeps your normal email, untouched.
8. Brand the checkout, accounts, and portal
Checkout & account pages (Shopify's branding editor)
In Settings → Checkout → Customize, open the Branding panel (paintbrush icon). Set your brand color, button color and corner radius, typography, and upload your logo. This skins your checkout and the new customer-account pages (login, orders, My Learning) in one pass — so the whole buy-to-learn journey carries your identity instead of stock Shopify.
The student portal (in Chapters)
In Chapters, open Settings → Branding: set a portal name, upload your logo (PNG/JPG/WebP, up to 1 MB), pick your brand and accent colors, and flip the toggle on. A width slider lets you size the logo exactly (60–320px, or leave it on Auto). Add your logo and colors once and the whole portal matches — header, buttons, and badges — and your portal name is what students see when they add it to their home screen. Branding off? Students get a clean, premium default theme.
9. Upload video the right way
- Upload your original files. Chapters' video pipeline transcodes on the server into multiple resolutions — don't pre-compress, and don't worry about file size at upload time. Compressing first only costs you quality.
- Every store includes 30 GB of video storage free. Need more? Add 25 GB blocks at $4/month each, and drop them whenever your library shrinks.
- Student streaming includes 100 GB per month free — roughly a few thousand lesson views — with top-ups at $6 per 100 GB if your school outgrows it. Your billing page in the app shows both meters live.
- Playback is token-protected: signed, expiring links, with optional student-email watermarking and download deterrents.
10. Live classes (Zoom)
Connect Zoom once in Chapters → Settings → Live Classes, then schedule live classes right inside your lesson editor — students join from the lesson page, and recordings can replay in-course. The full walkthrough (including disconnecting and what data is stored) lives in the Zoom setup guide. Google Meet and Microsoft Teams aren't built yet — there's a "Request" button in the same settings if you want to vote for one.
11. The launch test — prove the whole journey once
Before you announce, run one order through the system (set a course to a low price, or use a 100% discount code):
- Product page: the course product shows chips, outcomes, and curriculum; the quantity stepper and Buy-it-now are gone.
- Checkout: your colors and logo; sign-in required (if you enabled step 5); no shipping step — course products are digital, so Shopify only asks for a billing address.
- Thank-you page: "Welcome to your course" hero with Start learning →.
- Email: "You're enrolled — welcome to your course!" with the Start-learning button (if you did step 7).
- Account: My Learning shows the course with progress; the order page shows "Access your course".
- Portal: the lesson plays, progress saves, and the whole thing carries your branding — try it on your phone too.
If any leg fails, the matching section above has the caveats — nine times out of ten it's a block not yet saved in the right template, or the checkout-editor preview being mistaken for the real thing.
Troubleshooting
- Course Details shows nothing — it renders only on products created by publishing a Chapters course or exam. On any other product it stays invisible by design.
- Thank-you block missing in the editor preview — expected; the preview order is a sample physical order. Judge by a real course order.
- My Learning says "Couldn't load your courses" in the editor — the editor previews with a placeholder customer. Sign in to your real storefront to verify.
- Catalog block is empty — publish at least one course; drafts don't appear.
- "Add block" has no Apps option — your theme is a vintage (pre-2.0) theme; update to a current Theme Store theme.
- My Learning isn't in the checkout editor's page picker — your store is on legacy customer accounts; switch to the modern accounts in Settings → Customer accounts (step 5).
- Student paid but isn't enrolled — check whether the order has a customer attached. Guest checkouts enroll when the buyer signs in with the same email; requiring sign-in (step 5) removes the gap entirely.
- Anything else — email chapters@pixipace.com; we read everything.