Hujun / blog

post in issues
7 stars 0 forks source link

Build a Complete eCommerce System: Prologue #5

Open Hujun opened 6 years ago

Hujun commented 6 years ago

eCommerce is a classic Internet application since it arrives the "web age". Now we use the services of amazon, alibaba, ebay everyday, from PC and smartphone. All of them are actually eCommerce system, though they can be put into different business modes. We are so familiar with these services, processes, therms and logics behind. From the view of technique, it is easy to understand the foundamental components and software that used to build a eCommerce website. One can eailly to build a eCommerce website within 10 minutes using some out-of-box open source solutions such as magento.

So why I am still trying to reexplain the architecture of the system with all functionalities and implementation details?

Why?

Unfortunately, most of us (professionals as software developpers, product managers and IT consultants) do not know the eCommerce system & technologies as well as we imagin. And we are frequently mading mistakes from system design to the details of implementations.

The problem can be concluded as:

Besides the existing misunderstandings of eCommerce system, the other reason to spotlight on eCommerce system is that it covers almost all parts of general information systems. In fact, you can find all 2B software modules in eCommerce system such as CRM, CMS, WMS, MRP etc. And more on, there are more and more new technologies are involved, e.g. search engine, NLP, machine learning, etc. Since eCommerce is now the largest general comprehensive fundamental application in the IT world, it is necessary for every IT professional to understand it. No matter in which specific domain you are working on, all these knowledge will be helpful.

Contents

Real World Practise

This series of articles will not only focus on domain model and logic architecture of the eCommerce system, but will also give a concrete code demonstration. The code is for better understanding of the archtecture and gives some inspiration of implementations. You may have different implementations as well. It depends totally on your demand from the real business scenarios. And don't forget that a good system is never the most complex one but the most suitable one. If you are just begining to build a new system, I recommand to start with mandatory modules and keep them simple. Once you understand better the business demand and your domain models, you could easily scale your system out and add more functions into it. For example, you might detach the inventory function into an independant service when the amount of SKU is drastically increased and your warehouse management is also becoming complex.