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. This is the one plan approval you'll ever make — there is no monthly fee. Chapters takes a 5% commission only when a student buys, and the commission is capped at $29 per shop per month. Free until you sell. 5% after. Never more than $29 a month.
- Everything Chapters ever charges — commission, and any storage or streaming beyond the free allowances — appears on your normal Shopify invoice. No separate billing account, no card on file with us.
2. Create and publish your first course
Prefer screenshots? Follow the step-by-step tutorial: Publish your first course — eight steps, every screen shown.
- Click Create course, then add at least one chapter and one lesson — video, text, or a live Zoom class. Drag to reorder anytime; quizzes attach to any lesson.
- 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 these products by hand — though if you'd rather sell through a product that already exists in your store, you can link any existing Shopify product to a course instead.
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.
Course settings worth a minute (all optional)
Each of these lives in the course editor. None is required to launch — but they're the settings most schools end up wanting, so decide before you announce:
- Drip content — release lessons on a fixed date, a set number of days after enrollment, or sequentially as each lesson is completed.
- Free previews — mark individual lessons as free previews, and add a course preview video with a custom poster for the product page.
- Seat caps — limit enrollment and the storefront shows a live "spots left" count, then Sold out. Expired seats free up on their own.
- Access duration — lifetime by default, or a set number of days. A re-purchase restarts the clock.
- Completion rules per lesson — require a watch-time percentage, a quiz pass, an assignment pass, or both before a lesson counts as done.
- Bulk import — build the curriculum and question banks from Excel/CSV using the downloadable templates instead of clicking lessons in one by one.
- Bundles — one Shopify product can unlock multiple courses; publish once, sell the set.
- Pricing badges — set a compare-at price and a Save % badge appears; a featured badge highlights your flagship course in the catalog.
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.
Let students install the portal like an app
The portal is an installable web app (PWA) — nothing for you to build or submit anywhere. Students add it to their phone's home screen and it opens full-screen with your store's logo as the icon: one-tap install on Android, a short guided install on iPhone, both prompted from inside the portal. Once installed, push notifications work too — including live-class reminders 30 and 5 minutes before start — with students opting in themselves. Your only setup is step 8 above: the logo and portal name you set there are exactly what lands on their home screen.
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. Hosting and streaming ride a global CDN, included — no third-party video account needed.
- Uploads land in a shared media library with transcode-progress badges, so you can reuse one video across lessons and courses without uploading twice.
- Captions: upload an SRT file on any video lesson — Chapters converts it to VTT for the player automatically.
- Every store includes 30 GB of video storage free. Anything beyond bills automatically at $0.16 per GB per month, and the charge shrinks when you delete videos. You'll get an email warning before a storage overage ever bills — it never lands as a surprise.
- Student streaming includes 300 GB per month free — roughly a few thousand lesson views — then $0.08 per GB, measured from actual delivery. Your billing page in the app shows both meters live.
- Playback is enrollment-gated and token-protected: signed, expiring links, a per-student moving watermark, and copy/print/right-click blocking — with a protection toggle per course.
10. Sell standalone exams (optional)
Quizzes belong to lessons; the course-level assessment is the final exam. And an exam doesn't have to live inside a course at all — give an exam a price and it becomes its own Shopify product, sold at your normal checkout like everything else. Setup in three moves:
- Build the exam from the seven auto-graded question types (multiple choice, true/false, multiple select, short answer, numeric, ordering, matching). Randomize from question pools so no two sittings look alike, and set a time limit — the live countdown survives page reloads.
- Set the passing score and attempts, then price and publish. Chapters creates the Shopify product (type
Exam); each purchase grants an attempt bundle, and students who run out see "Buy another attempt" — paid retakes, no support tickets. - Watch the results in the exam insights dashboard, alongside per-course analytics.
Inside a course, the final exam can also gate the certificate — no pass, no certificate. Full detail on the Examinations page.
11. Set up certificates before your first graduate
Certificates are auto-issued per course — a toggle in each course's settings, on or off as you like. Two minutes of branding now means your very first graduate gets a finished document:
- Brand once: in Chapters' certificate settings, add your logo, brand color, store name, and signer name, and upload a signature image. Everything renders on one professionally designed template — nothing to lay out yourself.
- Students claim by name: each student claims the certificate with the name they want printed, and can rename it later without changing the certificate number.
- Every PDF verifies itself: the overall score is printed and frozen at claim time, and the footer carries a verify URL — anyone can check it on the public verification page, or look any certificate up by number.
- Charging for the certificate? Flip on paid certificates: Chapters auto-creates a hidden Shopify product and puts a buy CTA on the course completion page.
- Keep the records: every issued certificate lands in a searchable registry in your admin.
Full detail on the Certificates page.
12. Live classes (Zoom)
Connect your own Zoom account — free or paid — once via OAuth in Chapters → Settings → Live Classes, then schedule live classes right inside your lesson editor: Chapters creates, updates, and deletes the Zoom meetings for you. Students join inside the course player with a pre-start countdown, can download a calendar (.ics) invite, and get push reminders 30 and 5 minutes before start. 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.
13. 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, and run the home-screen install to see your logo become the icon.
- Certificate (if enabled): complete the course, claim the certificate, download the PDF — check your logo, signer, and the verify link in the footer.
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.