Someone buys your course at 11 p.m. Shopify takes the payment and sends a receipt. Then nothing happens until you see the order the next morning, copy the customer's email into your LMS, create their account, and enroll them in the right course.

That works for the first few sales. It stops working when orders arrive on a weekend, when two people on your team handle the same order, or when a customer buys a second course and ends up with two accounts.

A Shopify to LMS integration turns a paid Shopify order into a learner account and a course enrollment, so the customer can start the training they paid for without anyone copying details between systems. Shopify stays responsible for the store, checkout, and payment. The LMS is responsible for the course, the learner's progress, and the certificate at the end.

This guide walks through that workflow with Edaxu and Zapier. It covers the setup, the fields that matter, and the cases worth testing before you take a real order: repeat purchases, refunds, orders with more than one course, and someone buying a seat for a colleague.

The screenshots show the actual Edaxu application and Zapier editor, captured October 11, 2026 in our Edaxu Academy demo portal. No Shopify store was connected for this walkthrough: the store, order, line item, and variant values are test values typed into the Zapier step, and the learner is our demo account. Select an image to enlarge it.

Why not sell courses inside the LMS?

Some LMS platforms include a basic checkout. If you already run a Shopify store, though, you probably want to keep it. Your products, discounts, taxes, payment settings, and customer history are already there, and you may sell physical items such as printed manuals or exam kits alongside the training.

Keeping the store in Shopify means the LMS only has to answer one question for each order: which course does this purchase give access to, and for whom?

The workflow at a glance

StepWhere it happensWhat to check
A customer pays for a course productShopifyThe product variant is the one you mapped to a course
Zapier receives the paid orderZapierThe trigger fires on paid orders, not on draft or unpaid ones
Zapier sends the purchase to EdaxuZapier, using the Edaxu appThe order, line item, variant, and customer fields are mapped
Edaxu finds or invites the learnerEdaxuA returning customer is matched by email instead of duplicated
Edaxu enrolls the learner in the mapped courseEdaxuThe enrollment appears in the right portal and course
The learner completes the course and earns a certificateEdaxuThe course's certificate settings are what you expect

1. Decide what each product gives access to

Before you connect anything, write down which Shopify product grants which course.

Edaxu matches purchases by Shopify variant, not by product title. A product with a single option still has one variant. A product with options such as "Online only" and "Online plus printed workbook" has one variant for each, and each variant can point to a course.

That gives you a simple rule for setup: one variant, one course. If a bundle should unlock three courses, plan how you will handle it before launch, because a single mapping points to a single course.

Also decide how long access should last. The enrollment action accepts an optional start date and end date, so a variant can represent a year of access, or a course that opens on a set date for a scheduled cohort. If you leave them empty, the enrollment starts when the order is processed and has no end date.

2. Connect your Edaxu portal to Zapier

Edaxu's Zapier app is currently installed by invitation. In Edaxu, open Integrations in the administration menu and choose Zapier. The setup page has the invitation link and the values Zapier asks for.

The Zapier setup page in the Edaxu Academy demo portal. Each connection gets its own API key and belongs to one portal.

The Zapier setup page in the Edaxu Academy demo portal. Each connection gets its own API key and belongs to one portal.

Setup has three parts:

  1. Create a connection. Select New connection, give it a name that identifies the Zap that will use it, such as "Shopify course purchases," and grant only the permissions that Zap needs. Copy the API key when it appears. It is shown only once.
  2. Install the Edaxu app. Select Open Zapier app setup and accept the private app invitation for your Zapier account.
  3. Connect your portal in Zapier. Add an Edaxu account in Zapier and enter the API domain, API key, and portal subdomain shown on the setup page.

A connection belongs to one portal. If you run separate client training portals, learners enrolled through a connection land in that connection's portal, so check which portal you are connecting before you build the Zap.

For a Shopify enrollment Zap, the connection needs four permissions: Course · List, Enrollment · Create, User · Read Any, and Portal · Invite User. Leave the rest unchecked. Edaxu recommends one connection per workflow, so you can change or revoke the Shopify Zap's access without touching your other automations.

3. Map each Shopify variant to a course

Next, tell Edaxu which course each variant unlocks. The Edaxu Zapier app has an action for this called Link Shopify Variant to Course. It takes your store's domain (for example, your-store.myshopify.com), the variant ID, and the Edaxu course.

You do this once per variant, not once per order. You can run it from a small separate Zap and test it once for each course product before the store goes live. If you later change which course a variant unlocks, run the action again with the new course and the mapping is updated. Orders that have already been processed keep the enrollment they received.

If an order arrives for a variant that has no mapping, Edaxu rejects that step with the message "Shopify variant is not mapped to a course." The Zap run shows as an error in Zapier, which is what you want: a missing mapping should be visible, not silently skipped.

4. Build the Zap

In Zapier, start with Shopify as the trigger and choose the event for a new paid order. Then add an Edaxu step and choose Enroll Shopify Purchase.

The Edaxu actions available in Zapier.

The Edaxu actions available in Zapier.

The Enroll Shopify Purchase step filled in with test values. In a live Zap, each field is mapped from the Shopify order.

The Enroll Shopify Purchase step filled in with test values. In a live Zap, each field is mapped from the Shopify order.

Map these fields from the Shopify order:

Edaxu fieldMap it toWhy it matters
Shopify Store DomainYour store's myshopify.com domainIdentifies which store's mappings to use
Shopify Order IDThe order IDPart of how Edaxu recognizes a repeat delivery of the same order
Shopify Line Item IDThe ID of the course line itemLets one order contain more than one course
Shopify Variant IDThe line item's variant IDSelects the mapped course
Customer Email, First Name, Last NameThe customer on the orderFinds the existing learner or invites a new one
Start Date Timestamp, End Date TimestampOptional, as Unix timestampsSets an access window for this purchase
NotesOptionalUseful for the order number or campaign
Re-enrollment ModeRestart (the default) or resumeControls what happens if the learner already finished this course

When the step runs, Edaxu looks up the learner by email in the connected portal. If they already have an account, the enrollment is added to it. If they don't, Edaxu invites them, and they set up their account from the invitation.

Orders with more than one course

Each Enroll Shopify Purchase step handles one line item. If a customer can buy two courses in one order, the Zap needs to send each course line item separately, for example with a looping step in Zapier. Test this with a two-course order before launch.

5. Place a test order and check the result

Use a test order rather than waiting for the first real customer. Then open Edaxu and check the learner, the course, and the enrollment dates.

The enrollment created by the test order in the Edaxu Academy demo portal. The order number was mapped to the enrollment notes.

The enrollment created by the test order in the Edaxu Academy demo portal. The order number was mapped to the enrollment notes.

Things to confirm:

  • The learner is in the portal you intended.
  • The course is the one mapped to the variant you bought.
  • The access dates match what you set.
  • The invitation reached the test inbox and the account could be set up from it.

Then send the same test order through again. When we did, Edaxu returned the same enrollment ID and marked the response as a replay. No second enrollment was created.

What happens in the awkward cases

The first real week of sales usually produces at least one of these. It is easier to decide how to handle them now.

SituationWhat Edaxu doesWhat you should decide
Zapier delivers the same order twiceRecognizes the same store, order, and line item and returns the original enrollmentNothing, but check it once in testing
The variant has no mappingRejects the step, and the Zap run shows an errorWho watches Zapier for failed runs
A customer buys a course they are still takingReturns their current enrollment and changes nothingNothing
A customer buys a course they already finishedWith Restart, creates a new enrollment and keeps the earlier record. With Resume, reopens the earlier enrollment for a new access periodWhich mode fits your repeat purchases
A customer buys a course for a colleagueEnrolls the email on the orderWhether to collect the learner's email at checkout and map that field instead
A customer buys five seats for their teamEnrolls one person, the email on the orderWhether team purchases need a separate process, such as a team portal for that company
A customer requests a refundNothing automatically. Edaxu's Zapier app does not currently include an action that removes an enrollmentWho ends access in Edaxu when a refund is issued

The refund case is the one most providers forget. Write it into your refund process: when you issue a refund in Shopify, someone ends the matching enrollment in Edaxu.

After the enrollment: progress, certificates, and follow-up

Once the learner is enrolled, the rest happens in the LMS. They work through the course, you can see their progress, and if the course issues a certificate, they receive it on completion with a public verification link.

You can also send information back the other way. The Edaxu Zapier app has five triggers: Learner Enrolled, Course Completed, Certificate Issued, User Invited to Portal, and User Joined Portal. A provider might use the completion event to tag the customer in their email tool, or the certificate event to send a follow-up offer for the next course.

If some of your customers are companies that already have their own LMS, a Shopify store and a learner account may not be what they want. SCORM Dispatch lets them launch your hosted course from their own system instead.

Try it with one product

Start with a single product and a single course. Map the variant, build the Zap, and place a test order. Then try the cases that matter to your business: a repeat purchase, a two-course order, and a refund.

You can start a 30-day Edaxu trial with no credit card, or read more about how Edaxu works for training providers who sell courses.

Frequently Asked Questions

Can I sell online courses on Shopify?

Yes. Shopify can sell a course as a product like any other. To deliver the training, connect the paid order to an LMS so the buyer gets an account and an enrollment. With Edaxu, that connection runs through Zapier.

Does Edaxu integrate with Shopify?

Edaxu connects to Shopify through Zapier. A Zap triggered by a paid Shopify order uses the Edaxu action Enroll Shopify Purchase, which finds or invites the customer and enrolls them in the course mapped to the purchased variant.

What happens if Zapier sends the same order twice?

Edaxu recognizes a purchase by its store, order ID, and line item ID. If the same purchase arrives again, Edaxu returns the existing enrollment instead of creating a second one.

Can a Shopify product unlock more than one course?

Each Shopify variant maps to one Edaxu course. For a bundle, plan how the order will create each enrollment, and test it before launch.

Do refunds remove course access automatically?

No. Edaxu's Zapier app does not currently include an action that removes an enrollment. Include ending access in Edaxu as a step in your refund process.

Can I limit how long a buyer has access to the course?

Yes. The enrollment action accepts optional start and end dates, so each purchase can carry its own access window.

ET
Edaxu Team
matt@edaxu.com

Edaxu writes practical guides for teams running SCORM, certification, compliance, and professional training programs.