Oscar Based Ecommerce Stack Deprecation

We’ve tried this a few times but I think we’re in a healthier place than we have been to actually archive and move away from the Oscar based ecommerce stack.

More details in the newly updated DEPR: [DEPR]: Oscar Ecommerce Stack Deprecation · Issue #22 · openedx/public-engineering · GitHub

tl;dr; We’ll be archiving the below repos on 2024-09-09T04:00:00Z

We’ve tried for some time to try to find a maintainer for all of the ecommerce systems but I think they need more resourcing than is worth the effort and with the underlying APIs being better exposed and documented, it’s not worth it for us to expend a lot of energy as a community on maintaining the oscar based ecommerce stack.

If you have questions or feedback about the process please chime in but I think at this point we are not looking for maintainers for this set of repos anymore.

2 Likes

For an edx-enterprise stack user, the E-Commerce is currently acting as the data store for course seats and prices, as the Course Discovery fetches the seats and prices information from it.

I think there is a way to input this data directly into LMS. However, I am not sure if this is something that course-discovery pulls. If someone who is experienced with this sync process can shed some light on what this deprecation means in practical terms, it would be super helpful. Thanks in advance. :pray:

Hi @arunmozhi thanks for pointing that out. Short term, the repos will not see any new changes but the code that connects to them will still remain in-place. As we think about removing the code in existing repos that connects to the old commerce system, we will have to be thoughtful about how we do that removal. In the case of something like this, it will probably make sense to add some filters so that we can allow operators to hook in whatever commerce system they have into the existing Open edX Platform for looking of pricing data.

Note also that there have been a few conversations around dropping enterprise systems all together from the Open edX platform given their lack of maintainers, lack of documentation and complexity. This has not been fully decided yet but if this happens then the consuming code you mention would also be removed.

For clarity I think we’re talking about: edx-enterprise/enterprise/api_client/ecommerce.py at master · openedx/edx-enterprise · GitHub

1 Like

@arunmozhi did you have any further concerns or comments?

@feanil Hi, sorry for not responding sooner. I had to check with the client about a few things before responding.

  • Thanks for the clarifications on the e-commerce’s gradual removal. A graceful replacement in course-discovery with hooks sounds great.
  • W.r.t conversations around the enterprise systems, our client has a strong interest in building up their enterprise capabilities and would be very willing to participate and contribute in the efforts to support the stack. So, if there is any place we can link them to, kindly let us know.

Finally, for what it’s worth, a lot of the perceived “complexity” seems to be from the lack of documentation. While we could definitely come up with better designs for the stack of IDAs that form the different parts of the current enterprise stack, I would say deploying as-is has gotten easier with Docker Containers and Tutor. We were able to get an operational setup with our fork of tutor-contrib-enterprisecatalog (which we upgraded to deploy all the enterprise IDAs and the 2 MFEs). I feel, investing some efforts into documentation could make it more approachable and maybe even more maintainable.

P.S: I am not sure if I can drop the client’s names in public forum yet. Sorry about the “our client” bits in the message.

Sounds good @arunmozhi Thanks! It sounds like there is interest in keeping the enterprise repos but no major concern with dropping ecommerce as long as we provide alternatives for how enterprise is integrated with it before we fully remove the ecommerce code out of all the services we retain.

For supporting the enterprise repos, they currently don’t have any CCs or maintainers so I would say if someone is interested in becoming a CC or maintainer for them, please have chime in about that in the wg-maintenance slack channel.

1 Like

Given that there were no other objections, this deprecation has been accepted. To give everyone ample time, we’ll be adding node 20 support and letting these repos get released as a part of Sumac and then we will archive them.

If the ecommerce repositories are tagged for release, but not maintained for the duration of the Sumac release, then it’s just as if they were not part of the release. We are very keen on getting rid of the tutor-ecommerce plugin, which is very difficult to test and to maintain. Do we have an agreement that we won’t have to release tutor-ecommerce for Sumac?

@regis looking at the support windows and potential for issues, I don’t expect a lot of changes to be needed to the ecommerce repositories as a part of keeping it supported in sumac. I think it would be useful to have a final release with all the warnings added including the tutor plugin with all the warnings added and then don’t actually need to further maintain this system but people have a final version that they can access.

After discussing with Feanil, we agreed that the tutor-ecommerce plugin:

  1. would not have a v19 (sumac) tag,
  2. but the latest commit from the master branch would work with the latest version of the ecommerce repo,
  3. and the tutor-ecommerce repository would be archived in Sumac.
1 Like

Confirmed, thanks for posting the update here from our conversation!