For the last several months, I have been receiving a lot of inquiries about building multi-tenant eCommerce platforms.
Many startups are trying to take advantage of the COVID-19 situation and are willing to build SaaS (software as a service) platforms allowing small businesses to go online with their product.
Just like a Shopify.
The most frequent inquiries come from the restaurant/food delivery and grocery shopping industries. Sometimes it’s about copying a global business model in a local area or adjusting the business model to yet undiscovered industry niche.
As the idea of releasing the SaaS eCommerce platform is pretty popular, startups usually want to shorten the time to market and release the platform before the competition.
That’s why I’ve decided to collect our insights and turn them into a blog post that will help entrepreneurs with building Shopify-like platforms.
So, how to build a Shopify-like platform in 3 months?
Let's start from the beginning.
What is a multi-tenant eCommerce platform?
A multi-tenant eCommerce platform allows distributors and vendors building their own branded online stores.
Therefore, the development and maintenance costs are much lower, and it makes the whole process more efficient and easier than creating a store from scratch.
Multi-tenant vs single-tenant: the differences
The main difference between multi-tenant and single-tenant models is the number of software instances. While in the case of the first one this number is practically limitless, a single-tenant model limits the number of platform users to one.
In our scenario, a multi-tenant model means that multiple store owners can create and manage their web shops that will run on a single eCommerce codebase.
In a single-tenant model, on the other hand, a single online store is using its copy of the software that is not being shared with any other online store.
Shopify is a good explanation of the difference between multi-tenant vs single-tenant stores.
You can visit the Shopify website and create your store, branded with your logo. The store is hosted on Shopify servers and is based on their software – you just add your domain, inventory and you can start selling. An example of single-tenant software is when you install a copy of an open-source eCommerce system like Magento or WooCommerce on your server.
Key parts of multi-tenant eCommerce platforms
Below there is an explanation of critical parts that your SaaS platform needs to have as well as a description of features of the MVP version.
This is where the platform owner manages all created stores and store owner accounts. It’s used by the platform owner and the customer care team. The Admin Console can also be integrated with external services like CRM (user.com) or recurrent payment system (ex. Stripe).
Store Owner Dashboard
This is the place where the store owner can manage his eCommerce website.
Functionalities: editing inventory, updating product pricing, managing CMS pages, setting up payment gateway credentials, managing orders, and final customers.
Final Customer Storefront
This is the area where the final customer of the eCommerce platform is checking the offer by browsing through products and categories. Therefore, you need to make sure that the storefront of your online store is well-designed and developed, so it ensures the great user experience.
One more thing – a storefront is critical to SEO (it gets indexed by Google robots), so it should be fast and well-optimised.
The main goal of a marketing website is to attract customers, describe the platform, and monetise traffic by converting visitors into paying customers (future store owners).
This is also the place where merchants can sign up, create their store and pay for your product, usually using third party subscription operators like Recurly or Stripe.
The marketing website should be a separate application, which is not based on any eCommerce system, so I will skip this part in my post.
Examples of multi-tenant eCommerce platforms
Shopify is an all-in-one cloud-based eCommerce platform powering over one million businesses all around the world. It offers many features such as store management, in-store analytics, mobile app, ready-to-use customisable themes, various editing tools, web hosting, SSL certificate, CRM and many more for a monthly fee.
In other words, it offers everything you need to start selling online without the need of hiring web developers or learning how to code. For now, it’s the most popular multi-tenant eCommerce platform.
Is Shopify a good business model? Probably yes. Shopify stocks grew by 171% last year, and I believe the technology was also an essential factor of this result.
Selz is quite similar to Shopify that promotes itself mainly as a go-to platform for selling or renting digital products like eBooks, courses, software, apps, etc. Be aware that’s not all because with Selz you can sell whatever you want however you want. For example, you can start selling on your existing website without creating the actual online store.
Squarespace also provides software for building and hosting websites, but there is one primary difference between Squarespace and two platforms mentioned above. With Squarespace, you can also build business websites, personal websites, blogs, and magazines because it’s not only focused on selling products.
Choosing the right tech for multi-tenant eCommerce platform
Picking the right eCommerce platform
For now, there are not many multi-tenant eCommerce platforms on the market because it’s not a very often business case. However, it started to change slowly, considering the number of inquiries I received lately.
All of the leading eCommerce SaaS platforms that already exist are made to measure.
Of course, when you’re building the MVP, you cannot afford to develop a bespoke platform because of the high cost and a long time to the market.
Our advice is to find a good open-source eCommerce platform, even without the support of multitenancy. Your dev team should be able to add it in a short time.
The eCommerce platform for your SaaS business should have:
- All eCommerce functionalities you want to offer your final users,
- Stocks management,
- Live search
- Coupon / discount codes
- Flexible Order status management system
- CMS Pages editor
- Sales Analytics and Reports
- Multi-language and multi-currency support with easy to manage translations.
- Developed ecosystem, because you want to use the system that is maintained, upgraded with new features and security patches. You also want to be able easily to find developers.
- Have a fresh technology stack that will be easy to maintain and customize in response to the needs of your clients.
- Solid, developed, and documented API is a must-have.
- Possible PWA Support
- Easy to use and customize back office that you’re going to use as a Store Owner Dashboard.
In simple words, it needs to be a future-ready platform following the latest architectural and technology trends.
Multi-tenant platform based on Saleor
After reviewing all trending open-source platforms, I think that Saleor is the platform with the biggest potential.
I also wanted to find a platform that can work as a headless eCommerce allowing full flexibility of the storefront and potential integrations with other platforms (like PWA or native mobile apps).
What is Saleor?
Saleor is an open-source eCommerce platform developed to provide fast and personalised shopping experiences thanks to being headless. Headless means that the back-end layer is separated from the front-end layer. It gives developers a possibility to build custom storefront regardless of the back-end part responsible for business logic.
Core functionalities of Saleor
- Back office management (i.e. managing access privileges)
- Collecting data like sales history and metrics
- Custom PWA storefront
- Extensive order management
- Internationalisation and localisation
- Various product management options
How to add multi-tenant support to Saleor?
I had to find software with multi-tenant support for Saleor, and since it’s based on Django, the chosen solution should be, too.
There are three different ways to store data for multiple tenants:
- One database per tenant
- One schema per tenant
- The same table(s) for all tenants
You should make such a decision by considering the number of tenants and customisations these tenants need. I decided to go with the “one schema per tenant” way which best suits what I wanted to achieve.
Choosing a package is another decision you have to make. While doing so, answer these questions:
- Does this package support chosen architecture?
- Is it ready to run in a production environment?
- Does it have sufficient documentation?
Answers to these questions made me choose the django_tenants package.
- Offers “one schema per tenant” solution
- Has a stable release cycle
- Provides well-written documentation
Picking the right storefront technology
Storefront is the most critical part of your platform and the part that is going to be changed the most frequently. In the future, your customers will require you to provide multiple themes and be able to customise their stores. You need to pick the technology that suits these needs.
Why do you need a separate storefront?
It’s important to decouple platform core functionalities from the storefront. Thanks to that, your core tech stack is not limiting your storefront.
You can use any tech stack you want, and in the future, you will be able to change it without rewriting the whole system because the storefront is just communicating with the core using its API.
What are the top storefront technologies on the market?
As the storefront is mainly front-end, you need to consider one of the top 3 frameworks/libraries available:
Pick the stack you’re the most comfortable to use by you and your current or future dev team.
Saleor is using React, the same as Pagepro, so our suggestion is to use it also for your project.
If you use React you will:
- gain access to the most developed ecosystem
- be able to recruit easier React developers than in Vue or Angular
- be able to use Saleor Storefront code or just get insights from its source code to write your bespoke solution
- have a technology that is the most popular right now
Saleor React Storefront is pretty heavy, our clients didn’t require all of its features, and Pagepro decided to write a bespoke React PWA storefront that is communicating with Saleor API.
If your MVP has just basic eCommerce functionality, I’d suggest going the same way.
How to go to market fast?
0. Development Team
To efficiently build this kind of project you need a solid team composite of:
- React JS Developer – to integrate storefront with headless eCommerce
- UI React Developer – to build the user interface of the storefront
- Python & Django Developer – for Saleor customization and multi-tenancy support
- DevOps – for setting up the test, stage and production environments
- Project Manager
I. Start design and initial development work at the same time
Your goal is to go to market fast, and the easy trick is to have multiple teams working at the same time.
As you already know your platform functionalities and you have the headless eCommerce API, you have everything to start the design phase and everything to begin with the development phase.
Start working on storefront designs and at the same time, plan your development sprints for adding multitenancy support for your eCommerce platform.
Design Phase: UX & UI Design
Initial Development: basic configuration of eCommerce platform, setting up development environments, setting up servers infrastructure, multitenancy investigation & implementation.
If you have well-described requirements, you should have all designs ready in three weeks.
The same with initial development works (setting up the project, infrastructure, and adding multitenancy to the eCommerce platform).
II. Prepare the Admin Console, but don’t care about its look
The Admin console is a tool for you and your future support team; it doesn’t need to look well and work on multiple devices – it just needs to work. You will usually be using your desktop computer to manage it.
The ideal tool for this kind of dashboard is the Django Admin.
It is automatically generating admin pages, listings and forms to manage all data you need to edit as a platform owner. As Saleor is based on Django, you can pretty easily install the admin area.
You can start working on the Admin Console almost at the beginning of the project. Works shouldn't take more than two weeks.
III. Implement the storefront using headless eCommerce API
As you already have your eCommerce platform, based on Saleor you can now use it’s GraphQL API to feed your storefront with the data.
You can use Saleor storefront files or write it from scratch.
The hardest thing to do in the checkout if you need to use a custom payment gate that is not yet supported by Saleor.
The storefront part is the most time-consuming. It’s the application that your final customer sees. It needs to work correctly. You need around six weeks to work on it. Alternatively, you can use some UI kit that might reduce the implementation time by half. You can also use the default Saleor storefront, but the customisation can also take around one month.
IV. Customise Store Owner Dashboard
Preparing a bespoke Store Owner Dashboard is something that you can do later. For the MVP just grab the initial admin area of the eCommerce platform and customise it a bit, removing options that you don’t want to offer your clients.
Give it two weeks.
V. Release multi-tenant eCommerce platform
MVP won’t require an expensive hosting – you can pick either Amazon or Azure, but Saleor authors are suggesting to use AWS. I think it’s the right approach.
After going live, you need to attract a lot of customers. I hope you had some early adopters signed before starting the development. This is where your growth hacking activities need to escalate.
How to do that most efficiently?
As you can notice in this blog post, nowadays development is pretty fast because you have a lot of great open-source tools to use.
The most important factor of development is to know how to pick the right technologies and how to use them.
If you want to do it fast, stick to this guide or find a development agency that already did a similar project; an agency that is aware of the most common risks and knows how to avoid or limit them.