Sorry for not being able to attend this morning. I just finished reviewing the recording. I probably watched the last 15 minutes at least 3 times.
I need to explain a few things.
With regards to ecommerce and the Payment MFE. Because of political / institutional decisions, we had to develop our own payment processor connector for Netbanx / Paysafe way back in 2016 and install it as part of our fork for ecommerce. Of course, there were slight modifications to edx-platform, but nothing serious. I also have to point out that we do not use the edX basket because our implementation of Netbanx / Paysafe uses an hosted payment page. So, all credit card information is entered on the hosted payment page and the PCI component of the equation rests at Netbanx / Paysafe.
When I first tried lilac.master, the Payment MFE was still not available for the native installation. Since I was afraid that something wrong could happen, call it a hunch, I went ahead to see if the code was really deprecated between Koa and Lilac.
The first thing I really noticed were the calls to the new Profile MFE to see what is the state of a user’s identity validation. Going from there I was able to reverse engineer the calls and determine where I would need to change a line of code here and a line of code there to call ecommerce as usual and used the code we developed for Netbanx / Paysafe way back in 2016. The code was adapted from the code of the cybersource connector. We even adapted it to Python 3 when Python 3 was introduced into Open edX.
When I said there were 31 files to modify, those are 31 files in Lilac. Everything worked fine before Lilac. Sometimes I needed to change a line or two. Sometimes I need to reintroduce code that was removed from Lilac or even make sure the number of parameters on specific functions. It was a long evening. A lot of trials and errors.
In the end, I was able to change things so that I could still use the same behavior we had before Lilac but of course that now makes my Lilac fork absolutely incompatible with the Payment MFE. There would need to be a lot of additional code changes to make it a choice between using the old behavior or using the new Payment MFE behavior. Remember what I said about reusing functions from Koa and some functions not having the same number of parameters between Koa and Lilac. It really was an exercise in hacking the code.
I could point you to the 3 big commits I made in our fork to make the payment workflow work for us. I was waiting to revert those 3 commits in order to test the new Payment MFE. Those 3 commits allowed me to test everything else in our fork with Lilac without having to wait for the sudden appearance of the MFEs in the native installation. Finding out today that I cannot use the Payment MFE because I am not using Cybersource, Paypal or Stripe, well that is disappointing to say the least.
For the moment, I could go as is with Lilac and bite the bullet with my modifications until I can find a solution or we can find a solution as a community for all other payment processors. I am just worried there will be so much changes between Lilac and Maple that even rebasing my fork with maple.master will be an adventure in itself.
If you need more information or if you have comments, please do not hesitate to contact me.