Course registration using a shopping-cart system?

I am currently evaluating options for getting online course registration working for a small theater education studio. I am a web developer but there is currently not time/budget for a custom system - we need something right away.

What I’m wondering (and I’d particularly appreciate hearing from anyone who’s custom-built an e-commerce app and knows how this works under the hood) is if a traditional shopping cart system, e.g. Magento or osCommerce (or possibly Tienda for Joomla), would be suitable for course registration.

I was thinking the courses could simply be added as “products,” and that I’d just do some custom edits to the language files of the shopping cart to make it appear the way we want.

What concerns me is that shopping cart systems obviously aren’t built with course registration in mind…what happens when the remaining capacity is getting low, i.e. the “quantity” - if multiple people are trying to sign up simultaneously, is a person’s purchase locked in as soon as they reach the page where they enter their credit card number, or is there still a chance they could lose their purchase at that point? Is there any difference between how a traditional shopping cart system works and how a real course registration system would work in this regard?

Thanks for any thoughts on this.

As I know, with Magento you have options to choose manage quantity or not.

Thanks for your response.

Could you be a little more specific as to what “manage quanity” means? It sounds like it’s just a choice of whether quantities are relevant at all for a particular product (which they might not be for a downloadable product, for example), at least that’s my recollection of how that option works in Magento when I was trying the demo.

Are you saying that Magento would work well for course registration as long as I just enter the course capacity as the “quantity”?

Sounds like it would work. Is it the best solution, probably not but like you said the budget is low and it just needs to get done. In that case sounds decent enough.

Thanks. I think I have actually found a better option, but have to explore it a bit more to be sure. For anyone who might be interested, I found this open-source online ticketing system that looks very promising:

Since we eventually want to sell tickets to plays in addition to selling courses, I am planning to modify it for course registrations and then when we’re ready to sell tickets we’ll be able to do that too. I’ll try to remember to post back here on how this turns out.

Any progress on this?
I am looking some something similar.
Non-profit giving community courses. Needs to have enrollment restricted to members, sales of memberships (if possible), inventory of seats…
Payment by Visa or Mastercard…

I actually decided on an eCommerce plugin for Drupal called Ubercart which is amazingly flexible, largely thanks to Drupal’s CCK (content creation kit) which essentially lets you create a custom database without having to do any programming. So I was able to create a “Course” content type (as well as “Instructor” and “Venue,” which I set up as related content types), and then (in Ubercart) assigned “Course” as one of my “Product Classes.”

As to the original question I mentioned here about multiple students registering as the class fills up, Ubercart works well in this regard because the shopping cart expiration time is configurable. I also installed a plugin for Ubercart called “Limited time offer” that let me specify the registration end time.

I’m just about done with this - there have been a lot of tricky finer points, especially since I didn’t have prior Drupal experience, but I think in the end this is quite a good solution. So I would recommend trying it out and if you want some pointers let me know.

Thanks for the update. The client is already using Drupal for their main site, but had problems integrating the shopping cart. I’ll get more details to find out what exactly happened.

I’ve done a few Drupal sites already, but none with CCK yet.

Does Ubercart allow you to load a fixed number of tickets (people) so that it will stop selling when the show (class) is fully subscribed?

We have other issues like restricting sales to members (and selling memberships) and applying various discounts, but I can research those myself.


If the site is already in Drupal it would definitely seem like Ubercart would be your best option.

Yes, you can restrict the number of people who sign up simply be setting the available quantity of the product. It’s possible to do an update query directly in the database so you don’t have to enter the quantity manually for each course. Or you could try using the “node clone” plugin and have some unpublished courses act as templates.

I installed the LTO (Limited time offer) plugin so that we could also have a registration cut-off date.

I should note that in order to manage stock, make sure that the “Stock” module (under “Ubercart - extra”) is enabled. Then you have a stock tab. Since I just got the update query working, here it is in case it’s helpful to you:

– add a stock entry for every product not already in the stock table
– set default stock to 20
– (for duplicates of the same product in the uc_product table [not sure why they’re there - versioning?]
– always uses the higher nid number)
– TODO: Restrict this to courses in the LMB Studio Venue

insert into uc_product_stock (
select model, nid, 1, 20, 0 from (select model, nid from uc_products order by nid desc) prodDistinct
where model not in (select sku from uc_product_stock)
group by model