Selling single courses in Moodle is straightforward. Selling bundles—where one payment unlocks five different courses—is where most teams hit a wall. Admins often resort to “meta-courses” or complex WooCommerce plugins just to group items together. This guide explains how to sell bundles cleanly without cluttering your LMS.
Key takeaways
Avoid “Meta-courses” for sales. Using Moodle’s internal meta-course linking just to create a “product” creates administrative debt and reporting nightmares.
Bundle at the storefront, not the LMS. Your Moodle should focus on delivery. Let the commerce layer handle the grouping.
One payment → Multiple enrollments. The ideal flow is a single Stripe transaction that triggers parallel enrollments into every course in the package.
Comparison: Ways to sell bundles in Moodle
Most methods require you to “hack” Moodle or install heavy add-ons. Here is how the top options compare for selling multi-course packages.
| Method | How it works | Maintenance | User Experience |
|---|---|---|---|
| Enrollait | 1 Product maps to N Courses | Low | Student buys one item, gets instant access to all courses on dashboard. |
| WooCommerce + Bundles | Requires “Product Bundles” plugin + Bridge | High | Works, but requires syncing product IDs across 3 different plugins. |
| Moodle Meta-courses | Create empty “Parent” course linked to children | Medium | Confusing. Students often get lost in the empty “Parent” course. |
| Cohorts / Groups | Sell access to a Cohort | Medium | Good for batch management, but hard to sell automatically without custom dev. |
The Enrollait approach: Bundle without the mess
In Enrollait (Pro and Enterprise plans), bundling is a native feature. You don’t need to change anything in Moodle. You simply define the relationship in the storefront.
How it works
Sync: Enrollait pulls your list of available Moodle courses.
Group: Create a new Product (e.g., “Full Certification Pack”).
Map: Select the 3, 5, or 10 Moodle courses included in this pack.
Sell: When a student pays for the Pack, Enrollait loops through the list and enrolls them in all linked courses instantly.
This keeps your Moodle clean. You don’t have to create fake courses just to facilitate a transaction.
Why WordPress + WooCommerce is harder for bundles
If you are using WordPress, selling a bundle usually requires the WooCommerce Product Bundles extension (an extra cost) plus a connector plugin like Edwiser or weak standard integration.
The sync problem: You often have to ensure that the “Bundle” product in WooCommerce correctly maps to specific Moodle course IDs. If one ID changes or a sync fails, the student might pay $200 and only receive access to 2 out of 5 courses, creating immediate support tickets.
What to test when selling bundles
Bundles introduce complexity in enrollment timing. Before launching a large package, verify these scenarios:
Partial ownership: If a student already owns “Course A” and buys a bundle containing “Course A + B”, does the system handle it gracefully? (Enrollait does).
Hidden courses: Can you sell a bundle of hidden courses? (Yes, use this for “Early Access” bundles where courses are pre-sold but not yet visible to students).
Welcome Emails: Do students get bombarded with 5 separate “Welcome to Course X” emails from Moodle? You may want to disable course welcome messages in Moodle and rely on the single Enrollait receipt email.
Conclusion
Bundling is one of the best ways to increase Average Order Value (AOV) for training programs. The key is to execute it without breaking your LMS structure.
By using Enrollait to handle the grouping logic, you keep Moodle focused on learning while offering flexible pricing options to your customers.
FAQ
Can I sell a bundle of courses as a single product?
Yes. In Enrollait, you create a single Product and select multiple Moodle courses. When a student buys that product, they are automatically enrolled in all selected courses instantly.
Do I need to create a "Meta-course" in Moodle to sell bundles?
No. With Enrollait, you keep your Moodle courses separate and clean. The bundling happens at the storefront layer, not inside your LMS structure.
What happens if a student already owns one course in the bundle?
Enrollait recognizes the student by email. They will simply be enrolled in the remaining courses they don’t yet have access to, without creating duplicate accounts.