Iβm excited that we are close to finishing the WooCommerce Integration project.
This project will allow you to sell your Open edX courses with a third-party e-commerce, WooCommerce.
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.
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)
You can consult the status of an enrollment.
If you are using a Quince platform, you can also create enrollment allowed.
Whatβs left?
Improve and complete the documentation.
Receive feedback from the community to improve the plugin and plan the next steps.
You canβt miss this demo if youβre curious to see how this works.
And if youβd like to discuss it live and have your questions answered directly, weβll see you on October 18th at 12pm EDT.
Click here to add the event to your calendar:
I have went through the docs, and installed the plugin on a wordpress sandbox, I was able to sync the plugin with dot application.
What I am still confused about is generally is that what is expirence from opreator/course author side, I am not sure how the course would be created and listed in the LMS, for example does the plugin expects that /courses/course-id/about pages not be presnet in the LMS and rather be handled by wordpress as a merketing site? if the answer is no, then how would the redirection works between the LMS <=> and wordpress.
Lastly is there a wordpress/WooEcommerce theme that you can recommend that doesnβt need much configurations.
Hello @ghassan
Answering your questionsβ¦
This WordPress plugin shouldnβt modify the operator/course authorβs experience. This doesnβt work as a marketing site with redirection; we donβt have redirections in our plugin; we only have API calls to the enrollments Open edX endpoints.
This plugin aims to sell; it is an alternative to the current e-commerce system.
This plugin allows you to create WooCommerce Products and select that this is an Open edX course, meaning that if this product is configured correctly, it will create an enrollment in Open edX if someone buys it from WordPress, and if you refund the product, that will generate an unenroll.
If you need, you can create redirections, but that is not in the scope of this first stage of this project.
About WordPress themes, you caught me off guard. I will ask my team if they know some themes
Hi, this endpoint is not showing in my openedx tutor api list
/api/enrollment/v1/enrollment_allowed/ is there a way to enable that api as I am able to see the COURSE ENROL ALLOWED menu in admin
If you need, you can create redirections, but that is not in the scope of this first stage of this project.
I understand, but when I compare to the ecommerce service to my knowlede, it works as in course about page
if the course mode or has the price it will redirect to ecommerce service and once the course is bought after paymentβ¦etc it will redirect to dashboard
if the course is free, it would just redirect to dashbaord or/and course home.
This bit is exactly what I messing for the demo, or how it is expected to be done once the LMS is set to use WooEcommerce plugin.
About WordPress themes, you caught me off guard. I will ask my team if they know some themes
Redirections
Right now, the plugin only allows you to create Open edX enrollments/unenrollments when a person performs a purchase or refund using WooCommerce. We didnβt consider redirections in this first phase. When we discussed the solution, created the discovery, and opened it to community feedback, the issue of redirects did not come up.
I will put your request in the following steps and future work.
Themes
About the WordPress theme, they donβt tell me a specific theme name but recommend using themes that are easy to customize with WooCommerce.
I used the OnePress theme for the demo video, a simple template with nothing weird or pre-setted. I installed WooCommerce, created a page, and used shortcodes to filter my courses ([products category="Courses"]).
I know that the Astra theme also works well and has a lot of started templates with pre-setted things. That helps you quickly create good-looking pages, but as I was unsure how to configure it, I prefer a simple theme.
Hello everyone!
I am writing to announce the successful completion of the WooCommerce Integration project. I am pleased to report that all project objectives have been achieved.
Hi @mafermazu, I need to set up multi-vendor support for WooCommerce; therefore, I am using the Dokan plugin as the multi-vendor marketplace. However, I found that when creating a product from the Dokan product page, there is no integration with OpenEdX, so the field to label the product as an OpenEdX course is not available. Any idea to add the fields to the Dokan product page? Thanks
What I found about Dokan is that, even though it uses WooCommerce, the page for adding products and the hooks are different. So, to fix your problem is not as easy as adding a field in Dokan; it involves bringing support for a different interface and different hooks.
Hi, thanks for the clear explanation. You were right: Dokan uses different product pages/hooks, which is why the plugin didnβt catch vendor-created products. I implemented a workaround by injecting small custom code snippets into the Dokan product page. The snippets add the required fields and trigger the same enrollment/sync logic used by the WooCommerce integration. This solution works for our environment.
Code snippet 1
βββββββββββββββββββββββββββββ
β Detect Dokan is active β
ββββββββββββββ¬βββββββββββββββ
βΌ
βββββββββββββββββββββββββββββ
β Add βSherab Courseβ fieldsβ
β to vendor product form β
ββββββββββββββ¬βββββββββββββββ
βΌ
βββββββββββββββββββββββββββββ
β Vendor enters: β
β β’ Is Sherab Course? β
β β’ Course ID β
β β’ Course Mode β
ββββββββββββββ¬βββββββββββββββ
βΌ
βββββββββββββββββββββββββββββ
β On Save β Validate input β
β (ID format, mode, etc.) β
ββββββββββββββ¬βββββββββββββββ
βΌ
βββββββββββββββββββββββββββββ
β Save as product meta: β
β _sherab_course_id, mode β
ββββββββββββββ¬βββββββββββββββ
βΌ
βββββββββββββββββββββββββββββ
β Set product virtual & β
β non-downloadable β
ββββββββββββββ¬βββββββββββββββ
βΌ
βββββββββββββββββββββββββββββ
β Done β ready to sync β
β with Open edX β
βββββββββββββββββββββββββββββ
Code snippet 2
Vendor adds/edits product in Dokan
|
βΌ
Dokan fires hook: dokan_product_updated
|
βΌ
sherab_mirror_to_openedx_meta() runs
|
βββ Reads is_sherab_course, course_id, course_mode
βββ Saves to:
β - _is_sherab_course
β - _sherab_course_id
β - _sherab_course_mode
βββ Mirrors to:
β - _openedx_course
β - _openedx_course_id
β - _openedx_course_mode
βββ Updates product attributes
βββ Marks product as virtual/non-downloadable
|
βΌ Product synced between Dokan + WooCommerce + Open edX