Getting started

The complete setup guide — every step, every click

From install to your first enrolled student. Most of Chapters works the moment you publish a course; this guide also walks through every optional Shopify and theme step that makes your store feel like a school, end to end.

Last updated: July 12, 2026

What Chapters does automatically

  • Creates the Shopify product when you publish a course or exam — digital, no shipping
  • Enrolls the student the moment their order is paid, and fulfills the order
  • Serves the whole student portal at yourstore.com/apps/courses — works with any theme
  • Adds SEO structured data (schema.org Course) to every course page for Google rich results
  • Hosts and streams your video — nothing to set up
  • Soft-revokes access on refunds

Steps 1–4 are the launch path — the app's dashboard shows the same checklist and detects most steps automatically (the checkout step you tick off yourself). Steps 5–8 are optional polish that most schools turn on. Videos, live classes, and a launch test are covered at the end.

1. Install Chapters and activate the free plan

2. Create and publish your first course

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.

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:

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:

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:

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 %}

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

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):

  1. Product page: the course product shows chips, outcomes, and curriculum; the quantity stepper and Buy-it-now are gone.
  2. 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.
  3. Thank-you page: "Welcome to your course" hero with Start learning →.
  4. Email: "You're enrolled — welcome to your course!" with the Start-learning button (if you did step 7).
  5. Account: My Learning shows the course with progress; the order page shows "Access your course".
  6. 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

Ready to open your school?

Free to install, no monthly fee. Publish your first course today — the checklist inside the app walks you through the rest.

Install Free on Shopify