Back to Top

Laravel eCommerce Multi-Tenant SaaS POS Module

Updated 25 September 2024

Laravel eCommerce Multi-Tenant SaaS POS Module allows tenants to create multi-outlets to keep track of their day-to-day sales along with the proper customer management.

Bagisto Saas Pos Extension is a perfect solution for the management of a physical store for individual Saas-Tenant with discount management, multiple cart creation, (cash, card and split payment mode), and real-time sync.

It gives the store owner the liberty to have multiple outlets for a saas-tenant. This module will easily manage customers and orders for swift processing of the store.

The physical stores will have a POS front-end for which the tenant can assign a POS agent who can easily manage the daily sales with their respective customers.

The POS system can also work both online and offline mode in case of poor connectivity.

Start your headless eCommerce
now.
Find out More

Note:- This is an add-on for the module Laravel eCommerce Multitenant SaaS module.

Features

  • Separate Pos-Order listing for each saas-companies.
  • Each saas-companies can manage Pos-Outlets separately.
  • Each saas-companies can manage their sales agents separately.
  • Saas companies can access their individual Pos panel.
  • A tenant can also manage the online store along with physical stores.
  • The POS user can also apply discount offers as per fixed amount or percent (%) value on the cart.
  • A user of POS can also create an order for the registered and new customer.
  •  Hold the cart and proceed to the next transaction whenever required can also be done.
  • Generate a barcode for simple and configurable product.
  • Multiple stores can also be created.
  •  The tenant can also assign multiple users of POS in a single outlet.
  • A tenant can assign agents for the outlets to manage the day to day sales and customers at their POS front end.
  • The POS agent can also add or change the customer on the POS front end.
  •  An agent can also work offline in case of poor connectivity.
  • POS agents can automatically synchronize all the offline data whenever going online.
  • Barcode readers can be used to add products to the cart.
  • Hassle-free payment and checkout system.
  • The agent can also select the currency for the store.
  • A POS agent can select the locale for the store.
  • POS agents can also check the sales history, hold sales, and also offline sales.
  • POS agents can also sell a custom product that is not available on the POS front end.
  • An agent can also send the request for the low-stock product.
  • POS agents can also set the minimum unit of quantity for the low stock product to get notified when the product is low in quantity.
  • POS agents can also add or edit the discount on their front end.
  • The POS user can also create multiple carts from the front end.
  • A tenant can also manage the product inventory separately by assigning the inventory source to the outlet.
  • Cash, Card, and split payments are available at the front end.
  • Barcode prefix option added into module configuration.
  • Pos Search Options added in the configuration, now you can add bulk products to the cart by scanning the barcode of the products from a single search bar.
  • Hide Barcode Icon Option added in the configuration.

Note: Please follow the POS SAAS README for the installation process exclusively. Do not refer to or follow any instructions provided in the Bagisto POS README.

Installation

Unzip the respective extension zip and then merge “packages” “public” and “storage” folders into project root directory.

Laravel-eCommerce-multi-shipping-1

Goto composer.json file and add following line under ‘psr-4’

"Webkul\\Pos\\": "packages/Webkul/Pos/src",
"Webkul\\PosSaas\\": "packages/Webkul/PosSaas/src"

Goto config/app.php file and add following line under ‘providers’

Webkul\Pos\Providers\PosServiceProvider::class,
Webkul\PosSaas\Providers\PosSaasServiceProvider::class,

Find a file bagisto-vite.php present inside config folder from root and do the following entries:

  • insert the below code in ‘viters’ array.
'pos' => [
    'hot_file'                 => 'pos-vite.hot',
    'build_directory'          => 'themes/pos/default/build',
    'package_assets_directory' => 'src/Resources/assets',
],

Find a file auth.php present inside the config folder from the root and do the following entries:

  • insert the below code in ‘guards’ array.
'posuser' => [
    'driver'    => 'session',
    'provider'  => 'posusers'
],
  • insert the below code in ‘providers’ array.
'posusers' => [
    'driver'    => 'eloquent',
    'model'     => Webkul\Pos\Models\PosUser::class,
],
  • insert the below code in ‘passwords’ array.
'posusers' => [
    'provider'  => 'posusers',
    'table'     => 'pos_user_password_resets',
    'expire'    => 60,
],

Run the below-mentioned commands from the root directory in the terminal:

composer dump-autoload
php artisan optimize:clear
php artisan pos:install
php artisan db:seed --class=Webkul\Pos\Database\Seeders\DatabaseSeeder

Once all the commands have been executed successfully, then you will see the POS icon on the left-hand side in the menu bar.

Laravel eCommerce Multi-Tenant SaaS POS

Initial Configuration – SaaS POS

Once you are on the tenant dashboard, click the Configure option which is there on the left-hand side in the menu bar following which you will be redirected to the POS Configuration page.

Laravel eCommerce Multi-Tenant SaaS POS

General Settings

Above you will get settings to choose channel and locale. Based on that you can even change the configuration of the POS.

Laravel eCommerce Multi-Tenant SaaS POS

The fields below depicting [default-en] refer to the setting of the default channel and English locale.
Let’s go through the Configuration Settings one by one

Laravel eCommerce Multi-Tenant SaaS POS
  • Status: Here, the tenant can also be active or inactive on the POS status.
  • Heading On Login: Enter the POS heading which will be visible on the POS login panel.
  • Sub-Heading on Login: Enter the Sub-Heading which will be visible on the POS login panel.
  • Footer Content: Enter the footer content which will be displayed in the footer section of the POS login panel.
  • Footer Note: Enter the footer note.
  • Footer Link Text: Enter the footer link text here.
  • Footer Link: Enter the footer link here.
  • POS Logo: Upload the logo image which will be shown on the landing page of POS at the front end and will also be displayed over the bill receipt.

Barcode 

Laravel eCommerce Multi-Tenant SaaS POS
  • Print Product Name With Barcode: The tenant can select Yes in the option if they want to print the product name with the product barcode.
  • Barcode Size [width of the barcode in pixels]: Here tenant can enter the size of the barcode with weight of the barcode.
  • Barcode Size [height of the barcode in pixels]: The tenant can mention the size of the height of the barcode.
  • Generate Barcode With A tenant can generate the barcode with the Product ID or with Product SKU(Stock keeping unit) from the drop-down.
  • Barcode Prefix [Left blank if don’t want to add prefix] : The tenant can also add a “Prefix”
  • Pos Search Options [Search By]: The POS agent can search the product by “Product Name & SKU” else can search the product at the front end by the “Barcode” of the product.
  • Hide Barcode Icon: The tenant can select the active or inactive option as per their need.

POS Product

Laravel eCommerce Multi-Tenant SaaS POS

Allow SKU For Custom Product: Once the tenant active this section, at the front end the POS agent can add the Custom Product SKU while adding the product to the customer cart.

POS Outlet’s Address – POS Receipt Configuration

Bill Receipt

Laravel eCommerce Multi-Tenant SaaS POS
  • Show Logo On Bill Receipt: If the tenant sets the status as active then the POS logo will be displayed over the bill receipt.
  • Bill Receipt Logo: The tenant can upload the logo for the bill receipt.
  • Use Custom Address On Bill Receipt If set inactive, then POS Outlet’s address will show on bill receipt otherwise Custom address will show.
  • Store Name: The tenant can also enter the store name here.
  • Store Address: If the tenant sets inactive, then POS Outlet’s address will show on bill receipt otherwise Custom address will show.
  • Email Address: Here tenant can also add the email address
Laravel eCommerce Multi-Tenant SaaS POS
  • Website: The tenant can also add the website of their store to show the bill receipt
  • Phone Number: The tenant can add the phone number to show over the bill receipt
  • Customer Care Number: The tenant can also add the customer care number here which will be displayed on the bill receipt
  • GSTIN Number: the tenant can add the GSTIN number of their store to show on the bill receipt
  • Show Order Barcode On Bill Receipt: If the status is active, the Order’s Barcode will be showing on the bill receipt
  • Provide Footer Custom Note On Bill Receipt: Under this section, the tenant can add the Custom Footer Note which will be showing on the bill receipt.
  • Enable Order Print Confirmation Option: The tenant can enable or disable the order print confirmation option.

SaaS POS User List

On the tenant dashboard, click the POS icon which is there on the left-hand side to check on for the features available in the backend for the tenant.

Users: Here you will find the list of multiple users that have been created by the tenant.

Laravel eCommerce Multi-Tenant SaaS POS Module

Also, the tenant can add the users by clicking on the Add User button.

Laravel eCommerce Multi-Tenant SaaS POS Module

Here, the tenant will enter –

  • Username: Enter the username.
  • First Name: Enter the first name of the user.
  • Lastname: Enter the last name of the user.
  • Email: Email id of a user.
  • User Avatar: Here tenant can use any icon or figure to represent the user.
  • Add Image: Add an image to represent the user.
  • Password: Set the password for the user.
  • Outlet: Select the outlet from the drop-down.
  • Status: The tenant can also active or inactive the outlet status from the drop-down.

Lastly hit the Save User button to save the user configuration successfully.

Mange Outlets

 Here you will also find the list of multiple POS outlets. A tenant can create outlets by clicking on the Add Outlet button.

Laravel eCommerce Multi-Tenant SaaS POS Module

A tenant can add the Outlets by clicking on the Add Outlet button.

Laravel eCommerce Multi-Tenant SaaS POS Module

Here, the tenant will enter –

  • Store Name: Provide the name of the outlet in the  field
  • Status :A tenant can also active or inactive the outlet status from the drop-down.
  • Inventory Source: A tenant has to choose the separate inventory for each outlet from the drop-down.
  • Status & Store: The tenant can select receipts from dropdown options.
  • Store Address: The address of the outlet will be provided in this section.
    • Store Country: Country of the outlet.
    • Store State: State of the outlet.
    • Store City: The city of the outlet will be provided in
    • Store PostCode: Postcode of the outlet.

Lastly hit the Save Outlet button to save the outlet configuration successfully.

After creating the outlet, the tenant will Manage the Product to the outlet by hitting the below icon shows in the image.

Laravel eCommerce Multi-Tenant SaaS POS Module

Manage Products

Now, under the Manage Products tab, the tenant will assign the products to the outlet by enabling the products for the outlet.

Assigned products will be displayed on POS front-end.

Laravel eCommerce Multi-Tenant SaaS POS Module

**Note:

However, In POS Inventory is Centralised.

This centralized inventory will depict that any inventory changes done on the website will be reflected in the POS end or vice versa.

Likewise, if the online stock of the product is 200, then all the POS outlet stock will be the same i.e 200. The stock will automatically decrease on each sale from the online store or the POS outlet accordingly.

Products

Here tenant can view all the products associated with his store accordingly they can generate barcodes for the products to be used by the POS agent to add a product to the cart during the check-out process.

barcode

Generate Barcode

Now, the tenant will select the products for which they want to generate the barcode. Then Select Action > Barcode Options > click on Generate Barcode.

barcodesettings

After that, pop up will appear for confirmation of generating the barcode.

Confirmation

Therefore, the successful barcode will be generated.

Successful

After that, now tenant allows POS users to easily print a barcode for a product in a required quantity by clicking on the Print Barcode button available on the product.

Tenant cam also select the products for which they want to set the barcode quantity then they will select the barcode option to Print Barcode from the drop-down then click on the submit button.

barcode-set

Now, the tenant will add the quantity of the barcode to print.

count

POS Orders

Here tenant can also view all the POS orders in a given list or they can view any order details by simply clicking on order as shown in the image below.

POS order List

By clicking on the eye icon as shown in the above image, the tenant can easily check the order information.

View pos

Request Product

Under the Request Product tab tenant will check the “Low stock product request” sent by the POS user.

Request Product

A tenant can click on the action button shown in the above image the open tab will show all information like User, outlet details, the required number of quantity and inventory source.

The tenant can select the request status from the drop-down then complete the product request by assigning the requested quantity to the respective outlet.

Request Product

POS – Agent Workflow

The user can easily Log in to the POS System by using the Username (email address) and Password.

Log in to the POS System

After the Sign-in into the POS system, the POS Users will be redirected to the POS panel as shown in the below image.

Log in to the POS System

Drawer Opening Amount

After logging into the POS System, the user has to enter some cash drawer amount.

A pop-up comes which will ask the user to enter the Drawer Opening Amount as shown below along with the Remark section.

The POS user has to enter the drawer opening amount, for example, $5000 as shown in the image, which is the required amount set for that particular day .

Drawer Opening Amount

After login, the POS user will see the panel, where all the products are displayed that are assigned by the tenant to the particular outlet.

The user will also see the Cart section where the POS user will manage the customer orders.

Cart section

The POS user can easily search for any product from the search bar.

Moreover, the POS agent can add the bulk product(s) to the cart by scanning the barcode of the products from a single search bar.

search for any products from the search bar.

POS users can also look out for the products available in their respective categories as shown in the below image.

products available

By clicking on the small arrow icon under the small box specified in the below image.

The POS user will view the category lists through which POS user can also select a category to choose the product from a specific category.

small arrow icon under the small box

The below image shows all categories listing to the POS.

all categories listing to the POS

The POS user can also add a product in the cart which is not available in their POS but the product is available in the physical store. POS user will have to click on the button as shown in below image.

POS-SaaS-Laravel

Here, the POS user will have to enter the product details. Then add the product to the cart by clicking on the Add to Cart button.

POS-SaaS-Laravel

After that, the POS user can proceed the order as normal.

Manage POS Cashier

Under the Cashier, The POS user manages the functionalities given below –

  • Close Counter
  • Today Cash
  • Sale History

After clicking the Close Counter tab, the User will find Drawer Amount Details, Counted Drawer Amount, and Closing Drawer Detail options.

POS-SaaS-Final

“Before closing the drawer opening amount was $5,000 and whenever in a day the POS agent closes the drawer all today’s total cash amount will be added to the opening amount and again current drawer sale will be zero. “

  • The Drawer Amount Details display the opening amount which is $5,000 here, today total cash sales are $2,400.00 and the expected amount in the drawer is $7,400.
  • Under the Counted Drawer Amount displays the counted drawer amount which is $5,000. The POS agent may add the remarks as well.
  • Closing Drawer Details displays the difference between the opening and the closing amount(current drawer sale) which is $2,400.

Today Cash

Under Cashier, there is another option Today Cash is available which displays the  Today Cash Sale and the Today Card Sale.

POS-SaaS-Final

The order id, time, order total and the order payment mode details are also visible to the POS agent under the Today Cash option.

Sale History

The POS user can view the sale history under the Sale History option. For a particular order ID, order date, order total, and payment mode are listed under Sale History.

POS-SaaS-Final

Manage POS Customer

The POS user can also manage sales activity like adding products to the cart, adding customer details, putting the cart on hold to process it later, pay for the order from his panel as shown below.

POS user

After adding the products to the cart the POS user will now add customer details by clicking on the default customer option and then follow the steps as shown in the below image.

POS user

Note: The Pos user can search customers by their name or email as well.

After clicking on the add customer button the below pop-up will display.

POS user
POS user

The POS user can add a new customer step by step filling in the above fields as shown in the image and then clicking on the save button to proceed with the payment.

Once the customer is selected the after POS user can complete the order after a click on the pay button.

If the customer has chosen the cash method then the customer will provide the amount to pay for the order.

Also, customer can select the card payment method or split payment method for their payment mode which is available at the front end.

POS-laravelsaas-payment

After that, click on the Confirm Payment button, After clicking on confirm payment below pop will be displayed to complete the payment successfully click on the confirm button now.

POS-laravelsaas-confirmation

Under the Sale History Section, POS users can print the invoice for the order and can continue further with other orders.

POS-laravelsaas-paids

Customers can even pay via card, it depends on customer’s wish. In the Card Payment method, the total amount of the order will be deducted from the customer’s card.

Return: The POS user can click on the return option.

Discount

The POS user can apply the discount to the cart.

To apply the discount, the POS user will click the Cash Discount option available in the cart as shown below.

discount-option

After that, the below pop-up will display. The POS can easily choose the discount from the drop-down and then click on the apply discount button.

discount-applied

Once that, the chosen discount is added to the cart as shown in the below image:

discount

Order On hold

The POS user can put a cart On Hold to process it later by simply clicking on the Hold Cart option as shown below.

laravel-saas-pos

When clicking on the Hold option will display the below pop-up where the POS user will specify the reason for putting the cart on hold by adding a note.

After that, hit the Hold Order button as shown below.

laravel-saas-pos-order-note

After that, the POS user can check the Hold Sale by navigating to POS > Sales > Hold Sale.

laravel-saas-pos-order-note

The above image displays the cart details of the product which has been put on Hold. The Note entered by the POS user is also displayed under Note section.

Here POS user can:-

  • Click Add To Cart button to add the order back to the cart to process it further.
  • Click Remove button to remove the hold cart.

 

Offline Sales

The sales orders that got processed in the offline mode will be seen under POS > Sales > Offline Sales.

offline-sale

Once the POS System get connected to the internet, the POS user can synchronize offline sales with the online store.

offline-sale

After that, the offline sale the POS user can see offline orders in Sale History section after that.

offline-sale

Now,the POS User can under Sale History

  • View the complete list of the orders placed.
  • View the details of any order from the sales order list.
  • Search the order from the Search Order By Id panel at the top.
  • Print the invoice of the order by clicking the Print Invoice button.

Quantity for the low stock

The POS user can manage their Store Product under the Product Section.

Here POS users can –

  • Set the minimum unit of quantity for the low stock product by navigating to POS>Products>Setting as shown in the below image.
requested-product

The POS user can check the low stock product under the Low Stock Product section as shown in the below image.

low-stock-product
  • The POS user can send the request for Low Stock Product by clicking on the Send Request button as shown in the above image.

After that, click on the Send Request button below pop-up will be displayed. The POS user can mention the required quantity for the particular product along with the comment then hit the done button.

add-product-for-stock

Now the request is done.

After that, the POS user can manage the Product Request by Clicking on the Pencil or Cross icon as shown in the below image.

requested

The POS user can check the sent requests of the low stock product under the Requested Product section along with the request status by navigating toPOS>Products>Requested Product as shown in below image.

status

POS Profile

After that, the POS user can navigate to POS > Settings to edit settings for the account and POS settings as shown below.

pos-profile

Now, under the profile setting POS user can update the Profile.

Here, the POS user will –

  • First Name – enter the first name of the POS user.
  • Last Name – enter the second name of the POS user.
  • Account Email – enter the email address.
  • Previous Password – enter the previously saved password of the POS account.
  • New Password – enter the new password for the POS account.
  • Confirm Password – reenter the new password of the POS account to confirm it.

And, lastly hit the Done button to save the configuration successfully.

  • Under the Basic Settings tab, the POS user can configure the basic settings as shown below.
POS

Here, the POS user will –

  • Select the locale for the store from the drop-down.
  • Select the currency for the store from the drop-down.
  • And lastly, under the Loyalty Discount tab, the POS user can add the discount by clicking on the Plus icon.
add-discount

After click on the Plus icon, the below pop-up will display to the POS user.

add

Here POS user can:-

  • Enter the Offer Name.
  • Enter From Price – To Price.
  • Discount Type- Percentage
    • There are two types of discount i.e percent or fixed.
  • Enter the Value.

After hitting the done button the Percentage Discount will be apply, as shown in the below image:

add-discount-percentage

 

With the same process, the POS user can add the Fixed Discount.

add-discount-fixed

Here POS user can:-

  • Enter the Offer Name.
  • Enter From Price – To Price.
  • Discount Type- Fixed.
  • Enter the Value.

After hitting the done button Fixed Discount will add.

added-discount

Support

So, that was much about the User Guide of Laravel eCommerce Multi-Tenant SaaS POS Module for any queries or doubts reach out to us at [email protected]. You can also raise a ticket at our HelpDesk System.

Please explore our Laravel Development Services and Quality Bagisto Extensions.

Current Product Version - 2.1.2

Supported Framework Version - Bagisto v2.1.2

Blog Version - Bagisto v2.1.2
  • Version Bagisto v2.1.2
  • Version Bagisto v1.2.0
. . .

Leave a Comment

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


Be the first to comment.

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