Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DEPR]: Oscar Ecommerce Stack Deprecation #22

Closed
Tracked by #156
feanil opened this issue Feb 22, 2022 · 13 comments
Closed
Tracked by #156

[DEPR]: Oscar Ecommerce Stack Deprecation #22

feanil opened this issue Feb 22, 2022 · 13 comments
Assignees
Labels
depr Proposal for deprecation & removal per OEP-21

Comments

@feanil
Copy link
Contributor

feanil commented Feb 22, 2022

Proposal Date

22 Feb 2022

Ticket Acceptance Date

06 Sep 2024

Technology Removal Date

TBD

First Open edX Named Release Without This Functionality

Teak

Rationale

The ecommerce service is based on Django Oscar, which is dropping support for MySQL. On top of that, the ecommerce system is extremely costly to maintain. A search for maintainers for the whole stack has not succeeded.

Removal

The ecommerce application, repository, and configuration will be removed. Hooks and supporting code in other Open edX systems may be deprecated if they do not support a more general-purpose use case. More details will be included in the specific tasks of this epic.

Repositories that we will archive:

The relevant code in the systems that remain and will be removed as a separate task.

Replacement

A new system is in very early design that will serve as a platform for managing the shopping cart, payment, order history, and financial reporting flows. Where it makes sense some current Ecommerce functionality may be moved to other existing systems such as LMS or Discovery. High level architecture documents for the new system are expected to be available for review in October 2021.

2023 UPDATE: Rather than rebuilding ecommerce as another bespoke Open-edX application, we propose instead that edx-platform provide APIs and extension points so that it can easily integrate with third-party commerce systems. See @MaferMazu 's WooCommerce comment for work that has been done already).

2024 Update: Along with the WooCommerce plugin, there are other ways to integrate the Open edX Platform with commerce systems. eg. https://github.com/hastexo/webhook-receiver

Target Dates

This is a large project with many moving pieces and impacts on several systems and processes. Current thinking is that replacement will take place in several phases and result in final deprecation of ecommerce in early to mid 2023. As scope and timing become more clear this ticket will be updated.

The repositories will be archived on Sept 9th

The code removal from edx-platform and other systems will take a little longer and will be done in future releases and will have their own DEPR announcements.

Additional Context

The current Django Oscar based Ecommerce application has long been a pain point in the Open edX ecosystem, causing issues with performance, compliance, and reporting. It is a large maintenance burden and very difficult to configure and administer. Our desire is to move to a much smaller pluggable framework that will offer transition towards APIs that support third-party solutions that will hopefully offer operators and developers more flexibility and ease deployment and maintenance burdens.

Deprecation

No response

Migration

No response

Additional Info

Original Jira Ticket: https://openedx.atlassian.net/browse/DEPR-169
Tutor Plugin Deprecation Ticket: overhangio/tutor-ecommerce#83
DEPR Announcement: https://discuss.openedx.org/t/oscar-based-ecommerce-stack-deprecation/13760

@feanil feanil added the depr Proposal for deprecation & removal per OEP-21 label Feb 22, 2022
@inventhouse
Copy link

inventhouse commented Mar 14, 2022

[2023 UPDATE: This project described here has been cancelled. See @MaferMazu 's comment below for the work we are doing instead -Kyle]

Ecommerce Service Deprecation and Replacement

INTRO

edX's monolithic Ecommerce Service was meant to be a full-featured product catalog, discounting, and order management service and has grown in complexity for many years until it has become very hard to maintain, let alone evolve. In that time, more and better hosted services have become available for solving many of these problems, and complex use cases have evolved that make flexibility vital for Open edX operators, including edx.org.

We are building a new system that should be flexible and adaptable enough to support any ecommerce product of choice. By uncoupling openedx from a specific ecommerce product, we will enable more contributors and deployments, and remove edX as a blocker for others’ ecommerce.

COMMERCE COORDINATOR

At the center of the new system is the Commerce Coordinator, a highly modular Django web service written in Python. Coordinator will provide a framework for configuring ecommerce capabilities. Individual Django apps will act as plugins to implement specific functionality, for example a webhook for a payment service provider to call when a purchase is successful, that plugin can then signal one that performs the fulfillment in the LMS. The core of the Coordinator will allow commerce workflows to be tailored by combining plugins and routing signals, and will eventually include tools for validating configurations and tracing signal flows.

ROADMAP

We have completed some upfront design and proof-of-concept work and are now bringing it to the community for awareness, review, and support. The next steps will be to flesh out the Coordinator Core while we begin building decoupling Coordinator Plugins to bridge legacy ecommerce. During this process, edX will also begin building plugins to bridge our ecommerce vendor of choice.

We intend to officially deprecate legacy ecommerce by April 1st 2022. When the legacy ecommerce service has been fully decoupled from the platform, it will be removed from openedx or transferred to a new maintainer. Please comment on the deprecation ticket by April 30th 2022 if you would be interested in taking over maintenance.

COMMUNITY SUPPORT

The community can support this development effort in three main ways:

  • Help with Core improvements, particularly signal validation and signal traceability
  • Write Plugins to decouple legacy ecommerce
  • Write “minimum viable” Plugins for development environment

Please reach out if you are interested in collaborating on any of these.

Coordinator will be rapidly evolving and may need some time to stabilize before being included in named releases. Once stabilized, the core should require relatively few changes, and anyone can write their own plugins to suit their needs and sideload them as desired.

COMMUNICATION

Tight and transparent communication with the community will be critical to success. To keep the community informed of our progress, edX will provide monthly updates to Discourse.

ADDITIONAL REFERENCES

Legacy Ecommerce Deprecation Announcement
Legacy Ecommerce Deprecation Ticket
Commerce Coordinator Repo
Commerce Coordinator Architecture Decisions

@inventhouse
Copy link

The ecommerce and ecommerce-worker repositories have been marked as deprecated; they will be in maintenance-only operation while we work on the replacement.

@dianakhuang
Copy link

We are going to close the ecommerce basket page -> micro-frontend DEPR ticket in favor of this ticket.

@robrap
Copy link

robrap commented Apr 20, 2023

[inform] openedx-unsupported/ecommerce#3943 will drop ecommerce's custom jwt_decode_handler, but no other DEPR ticket is being created, since the entire service has been deprecated.

@MaferMazu
Copy link

Hello!!! :D
I hope you're well. I am here to let you know about a replacement e-commerce application project.

There is a WooCommerce Integration Project that aims to integrate the Open edX platform with a 3rd party commerce platform.

This Integration primarily focuses on workflows that are streamlined:

  • A course bought in WooCommerce will have the consequence that the enrollment for that course is created in the Open edX platform, understood with the enrollment as a seat in a specific course run.
  • If the order is refunded, the associated enrollment will be unenrolled using the soft delete(using the is_active flag) used in regular unenrollments.

More info: WooCommerce Discovery

The current state of this project:

Image

  • You can buy an Open edX course, which will cause an enrollment.
  • You can refund an Open edX course, which will cause a soft unenrollment (is_active=False)

What's left?

  • Support the course enrollment allowed (for emails still need to be registered in the platform). Only for platforms with versions Palm.3 or Quince.
  • Some general fixes.
  • Improve and complete the documentation.

What's next?
I will publish a demo video about this project this week, and I hope to receive your feedback and questions. 🙌

@kdmccormick kdmccormick moved this from Deprecated to Proposed in DEPR: Deprecation & Removal Jun 18, 2024
@kdmccormick
Copy link
Member

kdmccormick commented Jun 18, 2024

I'm moving this back to Proposed since (a) there was never an official announcement or comment period and (b) the original Commerce Coordinator replacement never happened. I know that WooCommerce plugin exists as a replacement for many use cases, but I don't have the knowledge to say whether or not that's a sufficient replacement. Regardless, if we want to remove ecommerce before Sumac or Teak, we will need to announce it with a 2+ week comment period, and explain what feature will/won't be available in any replacement.

@fghaas
Copy link

fghaas commented Jun 27, 2024

For what it's worth there's another means of wiring up Open edX with WooCommerce, which is much more loosely-coupled.

@kdmccormick
Copy link
Member

Nice, thanks Florian.

@feanil feanil changed the title [DEPR]: Replace the ecommerce application [DEPR]: Oscar Ecommerce Stack Deprecation Aug 23, 2024
@feanil feanil moved this from Proposed to Communicated in DEPR: Deprecation & Removal Aug 23, 2024
@DawoudSheraz
Copy link

Created overhangio/tutor-ecommerce#83 for tutor-ecommerce deprecation.

@feanil
Copy link
Contributor Author

feanil commented Sep 13, 2024

Given that there were no major 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.

@feanil
Copy link
Contributor Author

feanil commented Nov 4, 2024

The repositories have all been archived and this DEPR is now considered complete.

@feanil feanil closed this as completed Nov 4, 2024
@github-project-automation github-project-automation bot moved this from Removing to Removed in DEPR: Deprecation & Removal Nov 4, 2024
@DawoudSheraz
Copy link

The repositories have all been archived and this DEPR is now considered complete.

@feanil Hi. Weren't these supposed to be part of sumac and then they would have been deprecated (your comment #22 (comment)). If they have been archived, I suspect there won't be any sumac.1 tag for these, right?

@feanil
Copy link
Contributor Author

feanil commented Nov 4, 2024

@DawoudSheraz see https://discuss.openedx.org/t/oscar-based-ecommerce-stack-deprecation/13760/10?u=feanil there were some questions about that but the final decision was to not have them be in the sumac release officially.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
depr Proposal for deprecation & removal per OEP-21
Projects
Status: Removed
Development

No branches or pull requests

8 participants