Reading list Switch to dark mode

    Laravel eCommerce Multi-Tenant SaaS Module

    Updated 14 February 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’,):

    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 using: 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

    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.

    Screenshot-from-2024-02-02-18-12-46

    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.0.0

    Supported Framework Version - Bagisto: v2.0.0

    Blog Version - Bagisto: v2.0.0
    • Version v0.2.2
    • Version v0.1.6
    • Version Bagisto: v2.0.0
    • Version Bagisto: v1.5.1
    • Version Bagisto: v1.3.3
    • Version Bagisto: v1.2.0
    • Version Bagisto: v1.1.0.
    . . .

    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