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

Build a Complete eCommerce System: Prologue #5

Open
Hujun opened this issue Jul 24, 2018 · 0 comments
Open

Build a Complete eCommerce System: Prologue #5

Hujun opened this issue Jul 24, 2018 · 0 comments

Comments

@Hujun
Copy link
Owner

Hujun commented Jul 24, 2018

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:

  • Incorrect or Incomplete Domain Modelling
    I've seen a lot of really bad designs and implementations. There are so many developpers and PMs who don't know what are SPU & SKU and what they work for. It exists a lot of eCommerce system that do not have appropriate categories and attributes, which caused endless refactoring and failures in daily operation. So many developpers start to build a eCommerce system without a clear plot for order lifecycle and its interactions with stocking functions, logistics functions and promotion functions. I do not tend to blame anyone. In fact I have made all above mentioned mistakes in my career. And I find all these mistakes could be avoided if there were a correct domain model and appropriate moduling of the system. It is pitty that there are still so many new commer who are repeating the similar mistakes and wasting time and resources to repair them (or even worse to produce more mistakes). I hope that I could give a general eCommerce domain model to avoid the fundemental mistakes from the begining.
  • Business Logic Mismatch
    With arrivals of new business modes and innovations. The system has to adapt itself to the new patterns and 3rd party systems such as payment gateway, CRM SAAS, new processes and so on. It will definitively increase the complexity of the system. While it comes some internal evolutions such as upgrade of stockhouse, development of logistics networks etc. All of the changes from internal or external environment would affect the system, or even worse, break the original architecture of the system. It is why we need to design the system carefully to avoid potential problems.

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

  • Commodity Module
    • Category & Attribute
    • SKU & SPU
    • Inventory
  • User Module
    • Authentication
    • Back Office Role & Authorities
    • Cart
    • User Tagging
  • Order Module
    • FSM of Order
    • Order Splitting
    • Interaction with Other Modules
  • Payment Module
  • Logistics Module
  • CMS Module
  • Warehouse Management Module
  • Search & Ranking Service

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant