eCommerce platform system architecture suggestion

I’ve an eCommerce platform building using Laravel, MySQL and jQuery.
It’s working good and if anyone become interested, I just deploy the entire source code in environment / Hosting.
This is not a good model of course.
Because everyone ask for small or large amount of change and I had to do this. Imagine when there will be 100 separate deploy and I had to manage 100 separate source.
So How do I make my system architecture so that I’ll have a core / base source code. To make any any change / update on specific deployment, it will be theme / plugin / extension based .
Also if I introduce an API layer then I could handle the Web, Mobile App and POS as well ? Is the API should be part of source code or a individual single API and all the deployment will use that API ?

1 Like

Hey @kazi-shahin, this sounds like a cool project. With respect to getting the multiple versions deployed, I suggest looking into how Facebook does AB testing as they are a prime example of what you are doing (they have millions of different versions of the platform running): https://engineering.fb.com/android/airlock-facebook-s-mobile-a-b-testing-framework/

For the API, you would likely want to have that separate in my opinion since it would be extracting data from the Database and would not need to interact with the other front-end code. 

Thanks @logankilpatrick 

That’s really helpful thoughts. 

I was thinking like WordPress core, theme, plugin 

a. WordPress = The core Source Code with default theme and fetaures 

b. Theme = Availble theme from my system 

c. Plugin/extension/add on = Plugin/extension/add on (So that if any client/customer ) ask for chnages, I could managen via this option. 

API layer will be part of core as well. 

What do you think ?