Laravel eCommerce Multi-Tenant SaaS Module is an eCommerce virtual mall, where multiple vendors can sign up and create their own e-commerce store with their domain name.
Bagisto is an online e-commerce platform that helps anyone start their e-commerce store within a few minutes without any technical requirements.
The merchant doesn’t need to add any plugin to create their store, it is the full end-to-end integration. You have to just sign up then you can start your business.
Feature of Laravel eCommerce Multi-tenant SaaS Module
- Admin can easily set up and manage saas based eCommerce solution
- Flexibility and scalability for your business
- Multiple eCommerce merchants can access at a time
- The super admin can view the product list of their merchant’s store
- Super admin will get the email notification whenever a customer orders a product from his merchant’s store
- The super admin can also view the customer data of their merchant’s store
- Manage multiple businesses with custom domains or self-provided domains
- Super admin can also view the orders of their merchant’s store
- The Merchant can Change the domain from channel settings
- The Merchant manages their own store using their own dedicated admin dashboard
- Supported the Bagisto Velocity theme
- Supported all product types of Bagisto Framework including Simple, Downloadable, Grouped, Bundle, Configurable, Virtual, and Booking.
- Every merchant will also receive the mail whenever a customer orders from his store
- High security in a session
- Easy Customisation
- Easy Updates of Laravel Multi-Tenant SaaS.
- ACL system for the Super admin users.
- CMS pages support at super admin.
- Add an option to register a tenant account from the super admin end.
- Theme configuration options are available.
- Implemented Full Page Cache support to improve performance.
- Added support of Laravel Octane to enhance application speed and efficiency.
- Added Dark theme support, providing users with the option to switch to a darker color scheme for improved visibility in low-light environments.
Note:-
- Do not install Bagisto till you configure this extension.
- Do not seed your database at any point using ‘php artisan db: seed‘ (seeding is done automatically when the seller is registered)
- Run the command from the root in the terminal ‘composer create-project’
- Find ‘.env’ file in the root directory then change the APP_URL parameter to your application’s domain name.
- Add your database credentials in.env where params DB_DATABASE, DB_USERNAME, DB_PASSWORD should be added as your own database credentials.
- DB_DATABASE is the name of your database where all the tables will be created.
Installation of Laravel eCommerce Multi-Tenant SaaS Module
Customers will get a zip folder after purchasing the extension. After that, Unzip the respective extension zip and then merge the “package” folder into the project root directory.
Goto config/app.php file then add the following line under ‘providers’
Webkul\SAASCustomizer\Providers\SAASCustomizerServiceProvider::class,
Do the below entry in config/app.php ‘aliases‘
'Company' => Webkul\SAASCustomizer\Facades\Company::class,
Goto config/concord.php and packages/Webkul/Core/src/Config/concord.php files and add the following line under the ‘modules’ index in both files:
\Webkul\SAASCustomizer\Providers\ModuleServiceProvider::class,
Goto composer.json file inside the Bagisto root directory and add the following line under ‘psr-4’
"Webkul\\SAASCustomizer\\":"packages/Webkul/SAASCustomizer/src"
Another entry inside file(‘app/Http/Kernel.php’,):
Remove the code in ‘middleware’ array.
\Webkul\Core\Http\Middleware\CheckForMaintenanceMode::class,
Add the code in ‘middleware’ array.
\Webkul\SAASCustomizer\Http\Middleware\SaasCheckForMaintenanceMode::class,
In this file, you can find an array of’ middleware groups’ inside it there is
a key named ‘web’ inside it do an entry:
\Webkul\SAASCustomizer\Http\Middleware\ValidatesDomain::class,
Find a file auth.php present inside the config folder from the root and do the following entries:
Insert the below in the ‘guards‘ array
'super-admin' => [ 'driver'=> 'session', 'provider' => 'superadmins' ],
Then insert the below code in the ‘providers‘ array
'superadmins' => [ 'driver' => 'eloquent', 'model' => Webkul\SAASCustomizer\Models\Agent::class ],
insert the below code in the ‘passwords‘ array
'superadmins' => [ 'provider' => 'superadmins', 'table' => 'super_admin_password_resets', 'expire' => 60, 'throttle' => 60, ],
To publish the assets of the saas extension, add the below entries in the config/bagisto-vite.php file inside the viters array index:
'company' => [ 'hot_file' => 'company-default-vite.hot', 'build_directory' => 'vendor/webkul/company/build', 'package_assets_directory' => 'src/Resources/assets', ],
Run the below-mentioned commands from the root directory in the terminal:
composer dump-autoload
php artisan saas:install
* Access the super admin panel as an example: http://saas.com/super/login
Once you run the command “php artisan saas:install” then you have to enter your super admin credentials like email id and password
/*
|————————————————————————–
| Company Theme Configuration
|————————————————————————–
|
| All the configurations are related to the Company themes.
|
*/
‘company-default’ => ‘default’,
‘company’ => [
‘default’ => [
‘name’ => ‘Default’,
‘assets_path’ => ‘public/vendor/webkul/company’,
‘views_path’ => ‘resources/company-themes/default/views’,
'vite' => [ 'hot_file' => 'company-default-vite.hot', 'build_directory' => 'vendor/webkul/company/build', 'package_assets_directory' => 'src/Resources/assets', ], ],
],
/*
|————————————————————————–
| Super Theme Configuration
|————————————————————————–
|
| All the configurations are related to the Super themes.
|
*/
‘super-default’ => ‘default’,
‘super’ => [
‘default’ => [
‘name’ => ‘Default’,
‘assets_path’ => ‘public/themes/admin/default’,
‘views_path’ => ‘resources/admin-themes/default/views’,
'vite' => [ 'hot_file' => 'admin-default-vite.hot', 'build_directory' => 'themes/admin/default/build', 'package_assets_directory' => 'src/Resources/assets', ], ],
],
Let’s discuss the few DNS Record
CNAME:- Cname is standing for Canonical Name. Every website has an IP address to connect to the world wide web. Where we need more than one domain on a single IP address, their Cname will be useful to map the multiple domains on a single IP address.
For example, If you have your domain shop.mydomain.com and you want this domain point on your main domain(shop.com). Then you have to just replace the IP address of mydomain.com with shop.com so that your CNAME record will be created.
Wildcard:- With the help of the Wildcard DNS record, we can match the request for the non-existence domain name. A Wildcard DNS record is identified by an “*” asterisk. For example *.example.com.
Super-Admin Panel
Once the SaaS module is successfully installed, you can open your super admin panel (enter the example.com/super/login). Then the next page will be open like below then you have to enter your credentials then click on Sign in.
After successfully signing in, the super admin dashboard will be open like below. Super-admin can view all the company which is registered on their SaaS Panel.
Now as you can see in the below image super admin can export the tenant list from the respective Export Button into two forms CSV/XLS.
Download the tenant list by selecting the format such as CSV/XLS
Tenant data exported in XLS file format example:
In addition to this, the super admin can also register the tenant from the super admin panel itself by tapping the Register Tenant button on the top right-hand corner.
Here the super admin has to enter the below details :
First Name: Enter the first name
Last Name: Enter the last name
Phone: Provide the phone number
User Name: Enter the user name
Organization Name: Mention the organization name
Email Address: Provide the email
Password: Provide the password
Confirm Password: Confirm the password
Lastly, tap the Save Tenant button to save the new tenant.
Once you click on the eye-icon on any particular company then you can view company/tenant insights
Tenant’s Insights
Under the tenant’s insights super admin can see all the information about their tenant store as shown in the below image :
Domain Information – Details of the tenant.
Attribute Information:- No of attributes of the tenant.
Attribute Family Information – Number of attribute families of the company.
Product Information:- Number of products available on that company.
Category Information: Number of categories available to that company
Customer Information: Number of customers available
Customer Group Information:- Number of customer groups of the tenant
Edit Tenant Detail
The super admin can also edit their tenant details as per the below image.
However, the super admin can also delete the tenant as well, as per their requirement by tapping the delete button for the respective tenant.
Tenant’s Customer
The super admin can see all the customer lists of their tenants as shown in the below image
Tenant’s Products
The super admin can also see all the product lists of their tenants as shown in the below image
Tenant’s Order
By navigating to Tenants>Tenant’s Order super admin can see all the orders of their tenants as shown in the below image.
Agents
By navigating to Settings>Agents the super admin can see the agent list if already created.
Add Agent
By hitting the Create Agent button the super admin can add the agent by providing the below information.
First Name: Enter the first name.
Last Name: Enter the last name.
Email: Enter the email id.
Password: Set the password.
Role – Choose the role for the agent.
Status: Select the status of the agent.
Roles
Under the Roles, the super admin can create many roles with custom permissions for assigning to the agents whilst creating them.
Add Role
To add a role tap the Add Role button.
After that, you can create the role as required with the permissions that you want to allow for the agent’s role.
If you select custom then you have to select what type of permission you want to provide that rule.
Name:- You have to enter the role name.
Description:- Enter a description of the role.
Permission:- You have to select the permission type for that particular role Custom or All. Once you select All then all the administrator access will be given.
Lastly, save the role.
Locales
Now the super admin can add the locale by clicking on Setting>>Locales>>Create Locale.
After tapping the Create Local the below section appears.
Code: Enter the code.
Name: Enter the name.
Direction: Choose the direction – LTR or RTL(Only available when locale selected is Arabic).
Locale Logo: Add the Locale logo.
After that click on the Save Locale button and the locale gets saved.
Currencies
To add a currency navigate through Setting>>Currencies>>Create Currency.
This brings up the below section.
Here for the available options –
Code: Enter the code
Name: Enter the name
Currency Symbol: Add the Currency Symbol
Decimal: Set the decimal value for the currency.
After saving the currency it is visible in the respective list.
Exchange Rates
Here You can find the currency exchange rate list as shown in the below image.
Super admin can easily edit/delete the currency
Adding Exchange Rate
Here super admin can add the exchange rate. Click on Setting>>Exchange Rates>>Create Exchange Rate.
Select Target Currency, enter the rate click on Save Exchange Rate
Channels
Here the super admin can see all their created channel list. They can also edit his channel once they click on the pencil icon under the action section.
By navigating to Settings>>Channels>>Channels List>>Edit Mode under the action field, the super admin can edit the below settings.
General
Here super admin can find the Code, Name, description, and Hostname of the channel.
Currencies and Locales
The next step is to set your locales on a particular channel. Check the locales that you want to set.
The super admin can also choose the default locale for the storefront.
Currencies
- Currency:- You can select or multi-select currency as per your choice.
- Default Currency:- You have to set your default currency that will be applicable throughout your eCommerce ecosystem
Once the channel setting has been done click on Save Channel.
Design
Theme
Choose the theme that you want to apply.
Logo and Favicon
Add the logo and favicon image.
Home page SEO
Enter the Meta Title: Super meta title
Meta Keywords: Enter super meta keywords
Meta Description: Super meta description
Theme
Under this section, the super admin can configure the website theme as required.
To create a theme, just tap on the Create Theme button that brings up the below section.
Here, for the theme to create –
- Set the name.
- Choose the sort order.
- Choose the type from the available ones – Slider Carousel, Static Content, Footer Links, and Services Content.
- Select the channel as required.
Lastly, save the theme by tapping the Save Theme button.
For the footer links, you can add the links and title as well.
Then the same is visible on the storefront.
Apart from that, you can also set the static content to be displayed.
You can also set the CSS, and preview the static content added.
Now, the respective static content is visible as shown below in the snapshot.
For the image carousel, you can add multiple images as required.
Now the added slider images are visible on the tenant home page from where the tenants can register.
The service page content icons can be configured as required.
You can change the icon by editing and the below section appears. Here, you can change the icon and update it as required.
The added icons are then visible on the services page.
Send Email
Now the super admin can send emails to all their tenants with just one click as you can see in the below image :
After that, all the tenants will receive the email sent from the super admin.
CMS
With the help of CMS(content management system), the super admin can create a new page, and edit the page as required for their store.
How To Create a CMS Page
To Create a CMS page, open the Super Admin Panel then follow the below step
Add A New Page
On Super Admin Sidebar, click on CMS>>Create Page
After clicking on the Create Page, below is the list of fields you need to fill.
Page Title:-You have to fill in the page title.
Channel:- Select the channel.
Content:- In this section, you have to write the content which you want to show on this page.
Enter The SEO Details
Meta Title:-
Provide the main title of the page by which your page will be known.
URL Key:-
Enter the page URL key
Meta Keywords:-
The meta keyword for the page needs to be provided to improve its searchability on the search engine for specific keywords.
Meta Description:-
Enter the description so that the page can easily appear in search engine listing.
Configuration
Under Configuration, the super admin can manage – Design, Super Agent, Content, Shipping, and Payment methods using the Laravel Multi Tenant SaaS module.
Note: The shipping and Payment method settings will only work with the SaaS Shipping & Payment add-ons only, like these.
Design – Here, set the logo and favicon icon.
Super Agent
Here super admin will enter the Email Address of the Super agent to receive the email notifications.
Content
Under the content section, the super admin can add the footer text for their Landing Page.
Super Admin Landing Page
Merchant Registration
There are three steps to register on the SaaS module.
1: The merchant has to enter the Authentication Credentials like email, the password, confirm the password then click on Continue.
2: The merchant has to enter the Personal details like First Name, Last Name, Phone number.
3: The merchant has to enter the Organization details like user name and Organization name.
Merchant Front end
Now successfully tenant’s front end was created like below.
Merchant Admin Panel
The merchant can enter their admin panel with a URL like abc.test.com/admin/login such as below. You will get the backend likewise Bagisto.
Merchants can manage their orders.
They can generate invoices by tapping the Invoice and then create Invoice button.
Similarly, they can create the shipments for their orders as well.
Merchants can also create, edit, and delete the products for their store.
Apart from that, they can create – categories, attributes, attribute families as required.
Under the Tenant side menu option, the merchants can manage their details.
Apart from that, there are many other menu options as well to manage the store.
Custom Domain
In the Laravel multi tenant saas module, Merchant can run their website on their own domain and they will get all benefits of the Custom domain. They will get benefits like –
- Website will more flexible using own domain
- Merchant can host their website where they want
- No more hosting provider restrictions on your website
- URLs and email addresses are entirely your own
Domain Mapping is the most important so that customers can access their portal through their custom domain. So let’s discuss a few technical components which are used for domain mapping.
DNS:- DNS stands for Domain name system. DNS is used to translate the IP address into a domain name, for example, if any can run “example.com” on their browser then the browser will perform a DNS query against the DNS server.
So that the DNS server can take the hostname and resolve it to a numeric address so that the web browser can connect with the related IP address.
There is a component DNS Resolver which is used to checking the hostname is available or not in the local cache. Then return to the browser or application.
That’s all for Laravel eCommerce Multi-Tenant SaaS Module, still, have any issues feel free to contact us.
Also, you can raise a ticket at https://bagisto.uvdesk.com/en/
Current Product Version - 2.2.2
Supported Framework Version - Bagisto: v2.2.2
Is it compatible with version 1.0 of bagisto?
Regards,