Big e-shop xCommerce architecture recomendation
In current days we are using e-commerce very often, even more then year before. What are our experiences with them? How many products they offer for us, how much properties those products have?
Usually that would be clothes with some sizes, colors. But what if those products will be many and each will have more than 100 properties? How we should to build xCommerce architecture to deliver proper product and fulfill client expectations?
1. Context
Imagine that you have to deliver e-commerce solution based on xCommerce for client which:
- Has multi-site solution (32 sites)
- Has global market solution (32 markets)
- Has around 45 000 products per each market
- Each product has over 100 properties (parameters)
- Solution has 24 languages
How we should to bit this topic, what is crucial in xCommerce approaching here?
Answer is catalogs and indexing part.
I will skip here topic Azure or Solr, we decided to use SOLR.
But in terms of catalog and indexing. We should to ask what is the the main risk here?
Answer is amount of the data that we can unexpected create (or let xCommerce to create) and later push SOLR to index it. Here fun fact - indexing then can take e.g. 40 days :]
2. Issue
Why?
Firstly what is the default xCommerce shop creation approach?
To create each site with own catalog. In this scenario let's calculate
Well let's calculate:
45 000 products * 32 markets (catalogs) * 23 languages = (*o*) this is the numcber of entries which we will have in xCommerce and later they will be indexed (or tried to index at least) by SOLR.
3. Solution
So what we should do ? Is there any way to mitigate this issue?
Yes, we have to decide to change the default approach and use only 1 shared catalog for each site. It's possible. To obtain the results you only have to remember to:
-
Assign catalog to main commerce catalogs node
-
Do not assign any catalog to node under specific site catalog node
-
Link you Commerce catalog setting in each site Settings node to shared
catalog in main commerce catalog node (point 1)
- Change you custom queries to SOLR to check your sort of MarketId to filter proper products
Enjoy !