Skip to main content
— Operations guide

Refunds and course access on Shopify

Refunding a course order and leaving the student full access is a leak most sellers never notice. Revoking a whole order when only one item was refunded is the opposite mistake. Here is what should happen in between.

Refunding a course order on Shopify is two actions, and most stores only ever do one of them. The money goes back. The access does not. The student keeps every lesson, every video and every worksheet they were refunded for, and nobody notices until it has happened a hundred times.

The opposite mistake is quieter and worse for the customer: refunding one item on a three-course order and cutting the student off from all three. Alva Courses is a Shopify app for selling online courses, and this article covers what should happen in between — on a partial refund, on a multi-course order, and after a student has already submitted work.

The leak: a refunded course the student still owns

A course is not a parcel. There is nothing to send back, so a refund that leaves access in place is a full-price course given away for free, and the store has no signal that it happened. On a physical product the missing return is obvious in a warehouse; on a course it is invisible until someone audits enrolments against orders.

It compounds, too. Refunded-but-enrolled students still count in your member totals, still appear in completion analytics, still receive course email, and still occupy a seat in any programme where a seat means something. The number that looks like healthy enrolment is partly people who asked for their money back.

The opposite mistake: revoking a whole order for one item

Course sellers bundle. A single order regularly carries two or three courses, or a course plus a workbook, or the same course twice for two colleagues. Treating a refund as an order-level event punishes a customer who was refunded for one thing and paid for the others, and it produces exactly the support ticket you least want.

The correct unit is the order line, not the order. Alva Courses reconciles refunds line by line: a refunded line ends the access that line paid for, and every other line on that order is untouched.

What should happen on a partial refund

A partial refund is not a cancellation, and it should not behave like one. If a line was bought at quantity three and you refund one, two seats are still paid for and access has to stay. Alva Courses acts only when the refunded quantity for a line equals the quantity that was originally bought — anything less leaves access exactly where it was.

Refunds also arrive in instalments. A student refunded one seat this week and two the next has, in total, been fully refunded, and access ends when the last one lands rather than being missed because no single refund covered the line on its own.

There is one deliberate exception. When you refund a custom amount rather than the line itself, Shopify records an adjustment, and the quantities on the refund no longer tell you what was actually returned. Alva Courses leaves access alone in that case rather than guessing. Refunding half the price of a course is a judgement call about that student, so removing them is a judgement call too — do it by hand with Unenroll if that is what you meant.

What should happen on a multi-course order

On an order with several courses, only the refunded course ends. The rest of the order is unaffected, and so is anything the student bought on a different order entirely. That much is what line-level reconciliation buys you.

The subtler case is the same course bought twice. If a student holds two paid lines for one course — a re-purchase, a bundle that included it, a seat bought for them by an employer — refunding one line does not end their access, because another unrefunded line still pays for it. Access ends when nothing is left paying for it.

Access that a refund never touches

Not every enrolment came from an order. Alva Courses only revokes access it can account for line by line against the purchase that created it, which means two common cases are deliberately left alone:

  • Students you enrolled by hand — added in the admin, imported from a CSV, or granted access as a comp. There is no order to refund, so a refund elsewhere cannot remove them.
  • Access from a customer tag — membership access follows the tag. It ends when the tag is removed, which is what a cancelled subscription does, not when an unrelated order is refunded. Membership access on Shopify covers that model.

What should happen after the student has submitted work

This is where a naive implementation does real damage. If revoking access deletes the enrolment, it also deletes progress, quiz attempts, written answers, instructor feedback and the record that a certificate was ever issued. That is a data loss event dressed up as a refund, and it is irreversible.

Alva Courses ends access without destroying the record. The enrolment is marked as revoked and dated with the refund; progress, coursework, evaluation results and certificate history stay exactly as they were. On the storefront the student is told plainly that they no longer have access to the course, and lessons can no longer be marked complete.

Two consequences worth knowing. A certificate you already issued is not withdrawn — if a refund should invalidate a credential in your programme, that is a manual decision and a manual email. And work sitting in your evaluation queue does not vanish when the student is refunded; decide whether you still grade it.

If they buy again

Refund and re-purchase is common. Someone refunds during a launch, thinks about it, and buys again a fortnight later. When the new order lands, access is restored and their progress is still there — they resume where they stopped rather than starting a course they have already half-finished.

Order of arrival does not matter either. Webhooks are not guaranteed to arrive in the order events happened, so a refund can reach the app before the order that created the access. Nothing is revoked on the strength of a refund with no purchase behind it; the two are reconciled once both are known.

Mechanics are not prevention

Everything above is about handling a refund correctly once it has happened. It is not a strategy for having fewer of them, and the two get conflated constantly. Clean revocation stops a refunded course being a free course; it does nothing about why the student asked.

Refund prevention is a different job with different levers — expectations set on the product page, a strong first lesson, pacing that stops a buyer drowning on day one, and a reason to come back in week three. Reduce course refunds and boost completion covers that side. A monthly progress email covers the students who go quiet rather than complaining. Read this article for what the store does when a refund happens, and that one for why it happened.

For the store-side steps and what a member record looks like after a refund, see refunds and course access in the Help Centre.

Frequently asked questions

Does refunding a Shopify order remove course access automatically?

In Alva Courses, yes, when the refund covers the whole line that paid for the course. The refund is reconciled line by line rather than order by order, so a fully refunded course line ends that student's access to that course and leaves everything else on the order alone.

What happens on a partial refund?

Nothing is revoked. Access ends only when the refunded quantity for a line equals the quantity originally bought, so refunding one seat of three leaves access in place. Instalments add up, so access ends when the final refund completes the line.

If an order contained two courses and I refund one, does the student lose both?

No. Only the refunded course ends. Every other line on that order, and anything the student bought on a different order, is untouched. If the same course was also paid for by another unrefunded line, access continues.

Does a refund delete the student's progress and coursework?

No. The enrolment is marked as revoked and dated with the refund, and progress, quiz attempts, written answers, instructor feedback and certificate history are all kept. The student is told on the storefront that they no longer have access, and can no longer mark lessons complete.

What happens if a refunded student buys the course again?

Access is restored when the new order lands, and their previous progress is still there, so they resume rather than restart. This also works if the webhooks arrive out of order, because nothing is revoked on the strength of a refund with no matching purchase.

Why was a refunded student not removed from the course?

Three common reasons. The refund was for a custom amount rather than the line itself, so Shopify recorded an adjustment and the quantities no longer describe what was returned. Another unrefunded line still pays for the same course. Or the access never came from an order at all, because you enrolled the student by hand or they hold a membership tag.

Ready to teach on Shopify?

Install Alva Courses on Shopify and build your first course in minutes. A drag-and-drop builder, video lessons, quizzes, completion certificates, member management and branded email delivery — all native to your store. Every plan starts with a 14-day free trial.

Install on Shopify