E-commerce

Feanil is looking for the right person from OpenCraft to discuss e-commerce. Who would that be? Maybe @giovannicimolin given the past work you did around it? Or do we have a current client using it?

[ Ticket to log time spent answering ]

1 Like

@antoviaque I’ve done some work with e-commerce last year (theming + custom payment provider), but the clients that used it are no longer with us. I’m not aware of any other ongoing projects using ecommerce.

I can definitively meet to discuss e-commerce, but my availability and cell status prevents me from taking up work related to it. Maybe if it counts towards the 20h CC time?

Note: this is a public thread - maybe it’s best if this becomes private so we can mention client names?

@giovannicimolin OK - I think it could make sense for this to be included as CC work yes, it seem important to be able to use it to support tCRIL members.

For this thread – I was thinking of pointing Feanil to it, to allow to discuss with him here? Would that work for you, or do you prefer another approach?

1 Like

That’s totally fine in this case! I’m good with discussing it here in the forum. :slight_smile:

1 Like

:wave: Hey @giovannicimolin ,

To start with, I’m looking for an overview of how OC uses ecommerce today. Do you have it on most deployments, or just a few? Do you use any alternatives to ecommerce for fullfillment?

@feanil, AFAIK, we currently have two clients who are using the Open edX ecommerce. One of them is only generating coupons for learners, though they were looking into expanding its usage.

@maxim, do you have some context on how your client is using ecommerce?

We also have a client who is using a homemade solution as an alternative. Pinging @mtyaka as the client owner.

cc: @giovannicimolin, @antoviaque

Yes, we have a client that’s using a homemade ecommerce/registration platform to handle enrollments for some of their online courses. I don’t have much info about it, but as far as I understand it was not built specifically for Open edX.

We developed an integration layer, so that enrollments created in their custom registration platform are added as course enrollments in Open edX. The integration uses AWS Lambda functions that get triggered by an S3 insertion that contains enrollments and unenrollments.

Hi @feanil!

To start with, I’m looking for an overview of how OC uses ecommerce today. Do you have it on most deployments, or just a few?

As mentioned by @Agrendalath, just two iirc. We only deploy it when clients ask specifically for it.
Ecommerce usually has a few caveats to set up so the additional costs usually turn it unattractive (custom payment processors, theming to match LMS, etc).

Do you use any alternatives to ecommerce for fullfillment?

No, we don’t have any alternatives for it right now. :frowning:
I’ve read somewhere in Slack about deprecating the ecommerce IDA and replacing with a simpler service, is that happening soon? Count me in on the effort.

Do most of your clients not sell courses then? Or do they manage that in some external way and then manually enroll the relevant users?

Yes, I think over the next year or so, 2U is probably going to start a major deprecation of the ecommerce service at 2U and so they will probably step away for maintainership of that service. At that point, either others in the community would need to take it over or we would need to deprecate it for Open edX all together. What are your thoughts on this?

One feeling I have is that well documented APIs + How-Tos for integrating with ecommerce SaaS services might be good enough for a lot of people because no one else can use ecommerce the way it is today. Maintaining Django Oscar on Mysql seems like it’s way more work than it’s worth for most people but I’m trying to understand if that assumption that I’m making rings true to others.

1 Like

No, not really. We did a technical discovery for them, the scope of which was limited to payment processors in e-commerce MFE in Lilac.

It’s a mix: some of them manage enrollments manually or through automated means and some don’t sell courses.

My personal opinion is that the current ecommerce IDA is too complex to maintain for what it does and for the uses cases that we came across in the last few years.

I’m in favor of building out a new very simple IDA/MFE that enables basic ecommerce functionality (buying courses and maybe subscriptions) and showcases how to integrate Open edX with SaaS solutions though Open edX APIs (as you mentioned above). Not having a reference implementation supported by Open edX might cause the project to get lost in the possibilities of extensibility and end up with a solution as complex as the current ecommerce IDA.


Also, on a somewhat related note: some of our clients used the ecommerce IDA just to enroll users in the platform using 100% coupon codes and that made me realize that that’s a gap in “enrollment management” in Open edX, as there’s no right place to go to manage enrollments (instructor dashboard? ecommerce? django admin?).
Are there any plans to build a tool/IDA/MFE/plugin to help manage enrollments?

I think that from the perspective of what “items” can be sold, it boils down to enrollments, and entitlements I think. So my thinking was that if we can articulate how to produce those in the system based on external events(someone paying you for those things), then how people want to deal with that payment can be fully up to them and the systems they want to use.

However, if we still think it would be useful to have a basic reference system, I could imagine the new product working group being used to help define something that could be invested in by the community.

I’d be curious to hear more about this, I think putting a usecase together for this on the product roadmap might be helpful in understanding what this might look like.

1 Like

@feanil Sorry for the delay, I’ll reply here tomorrow.

@feanil

Yup I totally agree with that. :+1:

The gist of it is: there’s no centralized place for managing learners and enrollments in the platform (I’m not counting Django admin here). I know this isn’t that important for MOOCs, but more than one client asked for a way to manage enrollments (enroll users on a certain track, manage current users on a course, let instructions change a user’s track, etc).

Currently, you can manage users like this:

  • Add users to a course through Instructor dashboard (but only to the default track)
  • Enroll users on a certified/verified track through e-commerce (one of our clients used the ecommerce without a payment processor with 100%-discount coupons just to get users in the verified track).
  • Change a user track: either upgrading it through the e-commerce flow or manually changing the track in Django admin.
  • Manage enrolled users: inexistent (?) - maybe through Django admin with some effort.

Also, permissions for a given course content are spread across a few models and methods (enrollment model, course creator model, staff, global staff, superuser). This makes it hard to have a comprehensive view of which users have access to given resources.

So, this is certainly a gap in the platform’s functionality that could be filled with a specialized tool (functionality in the Instructor Dashboard or maybe a MFE + plugin). I understand this doesn’t apply to every instance - but it would be useful to have, especially for smaller instances and environments where the learner is closer to the instructors.

1 Like