Back to Top

Laravel eCommerce Multi-Tenant SaaS Module

Updated 2 September 2024

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.

Start your headless eCommerce
now.
Find out More
SaaS Module installation

Goto config/app.php file then add the following line under ‘providers

Webkul\SAASCustomizer\Providers\SAASCustomizerServiceProvider::class, 

Do the below entry in config/app.phpaliases

'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

bagisto saas super login

/*
|————————————————————————–
| 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.

wildcard entry

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.

bagistosaas2.com_super_loginstore-screenshts

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.

bagistosaas2.com_super_tenants_companiesstore-screenshts-1

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

bagistosaas2.com_super_tenants_companiesstore-screenshts-2

Tenant data exported in XLS file format example:

Screenshot-from-2024-01-24-12-29-53

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.

bagistosaas2.com_super_tenants_companiesstore-screenshts

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

bagistosaas2.com_super_tenants_companiesstore-screenshts-1

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 :

bagistosaas2.com_super_tenants_companies_view_1store-screenshts-1

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.

bagistosaas2.com_super_tenants_companies_edit_1store-screenshts

However, the super admin can also delete the tenant as well, as per their requirement by tapping the delete button for the respective tenant.

bagistosaas2.com_super_tenants_companiesstore-screenshts-1

Tenant’s Customer

The super admin can see all the customer lists of their tenants as shown in the below image

bagistosaas2.com_super_tenants_customersstore-screenshts

Tenant’s Products

The super admin can also see all the product lists of their tenants as shown in the below image

bagistosaas2.com_super_tenants_productsstore-screenshts

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.

bagistosaas2.com_super_tenants_ordersstore-screenshts

Agents

By navigating to Settings>Agents the super admin can see the agent list if already created.

bagistosaas2.com_super_settings_agentsstore-screenshts-2

Add Agent

By hitting the Create Agent button the super admin can add the agent by providing the below information.

bagistosaas2.com_super_settings_agentsstore-screenshts-1

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.

bagistosaas2.com_super_settings_agentsstore-screenshts-2-1

Add Role

To add a role tap the Add Role button.

bagistosaas2.com_super_settings_rolesstore-screenshts

After that, you can create the role as required with the permissions that you want to allow for the agent’s role.

bagistosaas2.com_super_settings_roles_edit_1store-screenshots

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.

bagistosaas2.com_super_settings_localesstore-screenshts

After tapping the Create Local the below section appears.

bagistosaas2.com_super_settings_localesstore-screenshts-1

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.

bagistosaas2.com_super_settings_localesstore-screenshts-2

Currencies

To add a currency navigate through Setting>>Currencies>>Create Currency.

bagistosaas2.com_super_settings_currenciesstore-screenshts

This brings up the below section.

bagistosaas2.com_super_settings_currenciesstore-screenshts-1

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.

bagistosaas2.com_super_settings_currenciesstore-screenshts-2

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.

bagistosaas2.com_super_settings_exchange-ratesstore-screenshts

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.

bagistosaas2.com_super_settings_channelsstore-screenshts

By navigating to Settings>>Channels>>Channels List>>Edit Mode under the action field, the super admin can edit the below settings.

1-1

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

3-1

Theme

Choose the theme that you want to apply.

Logo and Favicon

Add the logo and favicon image.

Home page SEO

2-2

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.

bagistosaas2.com_super_settings_themesstore-screenshts

To create a theme, just tap on the Create Theme button that brings up the below section.

bagistosaas2.com_super_settings_themesstore-screenshts-1

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.

bagistosaas2.com_super_settings_themes_edit_7store-screenshts

Then the same is visible on the storefront.

bagistosaas2.com_company_homestore-screenshts

Apart from that, you can also set the static content to be displayed.

4-1

You can also set the CSS, and preview the static content added.

5-1

Now, the respective static content is visible as shown below in the snapshot.

bagistosaas2.com_company_homestore-screenshts

For the image carousel, you can add multiple images as required.

bagistosaas2.com_super_settings_themes_edit_1store-screenshts

Now the added slider images are visible on the tenant home page from where the tenants can register.

bagistosaas2.com_company_homestore-screenshts-1

The service page content icons can be configured as required.

bagistosaas2.com_super_settings_themes_edit_2store-screenshts

You can change the icon by editing and the below section appears. Here, you can change the icon and update it as required.

bagistosaas2.com_super_settings_themes_edit_2store-screenshts-1

The added icons are then visible on the services page.

bagistosaas2.com_company_homestore-screenshts-2

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 :

bagistosaas2.com_super_settings_email_createstore-screenshts

After that, all the tenants will receive the email sent from the super admin.

bagisto-multi-tenant-saas-super-admin-email

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.

bagistosaas2.com_super_cmsstore-screenshts

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.

bagistosaas2.com_super_cms_createstore-screenshts
bagistosaas2.com_super_cms_createstore-screenshts-1

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.

bagistosaas2.com_super_configurationstore-screenshots

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.

design

Super Agent

Here super admin will enter the Email Address of the Super agent to receive the email notifications.

bagistosaas2.com_super_configuration_general_agentstore-screenshts

Content

Under the content section, the super admin can add the footer text for their Landing Page.

content

Super Admin Landing Page

bagistosaas2.com_company_homestore-screenshots

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.

Screenshot-from-2024-02-02-18-10-49

2: The merchant has to enter the Personal details like First Name, Last Name, Phone number.

Screenshot-from-2024-02-02-18-12-00

3: The merchant has to enter the Organization details like user name and Organization name.

merchant-registration

Merchant Front end

Now successfully tenant’s front end was created like below.

tenant_separate_frontend_page

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.

tenant_dashboard_1
tenant_dashboard_2

Merchants can manage their orders.

site1.bagistosaas2.com_admin_sales_ordersstore-screenshots

They can generate invoices by tapping the Invoice and then create Invoice button.

site1.bagistosaas2.com_admin_sales_orders_view_1store-screenshots

Similarly, they can create the shipments for their orders as well.

site1.bagistosaas2.com_admin_sales_orders_view_1store-screenshots-1

Merchants can also create, edit, and delete the products for their store.

Apart from that, they can create – categories, attributes, attribute families as required.

site1.bagistosaas2.com_admin_catalog_productsstore-screenshots-1

Under the Tenant side menu option, the merchants can manage their details.

site1.bagistosaas2.com_admin_company_profilestore-screenshots

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

. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


8 comments

  • Calixte
    • Sanjana Singh (Moderator)
      • Calixte
        • saurav pathak (Moderator)
  • Nikhil
    • Sanjana Singh (Moderator)
  • Sumit Rawat
    • saurav pathak (Moderator)
  • Back to Top

    Message Sent!

    If you have more details or questions, you can reply to the received confirmation email.

    Back to Home

    Table of Content