Webkul
Services
Technologies Bagisto QloApps
iOS Android SAP BigCommerce Wix
Trusted by
Samsung Intel Toyota Walmart Disney Nokia Nestlé Decathlon
See all customers
Back to Top
DOC

Laravel eCommerce Point of Sale

Laravel eCommerce Point of Sale extension offers extensive features for admins, enabling easy creation of multi-stores.

It also allows seamless tracking of daily sales and efficient customer management.

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

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

This guide documents the Laravel eCommerce Point of Sale extension for Bagisto v2.5.0.

Compatibility

  • Compatibility: Bagisto v2.5.0 (Laravel 13, PHP 8.4 or later)
  • Bagisto API: Bagisto Headless eCommerce (the main branch, which carries the Bagisto 2.5.0 support) is needed, because the POS terminal communicates with the store entirely over the Bagisto API.

Which printer and scanner support Bagisto POS?

The Bagisto Point of Sale system supports the Epson TM-T82 Thermal POS Receipt Printer.

The paper width and the roll diameter are 79.5 ± 0.5 (W) × dia. 83.0; 57.5 ± 0.5 (W) × dia. 83.0.

Most barcode scanners work with the Bagisto POS system, such as the Retsol LS450.

Check a brief overview of the POS terminal workflow 

7gjobytCnsg

Check a brief overview of the POS backend settings –  

ynAxK7tlmLs

Features Of Laravel eCommerce Point of Sale

  • Creation of several outlets from the back-end.
  • Sales agents can give a discount on a single cart line or on the whole cart, and apply coupons, from the front-end.
  • Sales agents can handle customers both online and offline. 
  • Front-end cart hold features.
  • Barcode generation and printing available at the back-end.
  • Separate product inventory management by assigning inventory sources to each outlet.
  • Support for cash, card and split payments at the front-end.
  • Real-time sync of customers and orders in offline mode.
  • Capability to place orders with custom products.
  • Support for various product types: Simple, Configurable, Downloadable, Virtual, Bundle, Grouped and Booking.
  • Customizable POS sales invoices.
  • POS sales reporting with extensive filtering options at the admin end.
  • Barcode prefix option added into module settings.
  • Reorder / Repeat Order – Quickly recreate a previous order by fetching items into the current cart.
  • Return Product – Process a return for a previous order directly at the POS terminal.
  • Cash drawer management with reports that agents can print and reprint.

Installation of Laravel eCommerce Point of Sale

The customer will get a zip folder.

Prerequisite: Install Bagisto v2.5.0 first (php artisan bagisto:install), and then install the Bagisto API on it. The POS terminal uses the Bagisto API, so you cannot use the till without it.

Therefore, the POS terminal uses the Bagisto API, so you cannot use the till endpoints without it.

composer require bagisto/bagisto-api:dev-main
php artisan bagisto-api-platform:install

Install the API after Bagisto itself is installed. The API installer registers the API Platform providers in bootstrap/app.php, and from then on every command reads the database at start-up, so it needs an installed store.

Follow these steps to install the Bagisto POS Extension:

1. Unzip and Merge Files
Extract the extension zip file and merge the packages folder into your project’s root directory.

2. Update composer.json
Add the following entry under the psr-4 section in composer.json:

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

3. Update bootstrap/providers.php

Bagisto v2.5.0 runs on Laravel 13, where you register service providers in bootstrap/providers.php. Add the following lines to that file:

use Webkul\Pos\Providers\PosServiceProvider;
PosServiceProvider::class,

4. Update config/concord.php
Add the following line under the modules section in config/concord.php:

Webkul\Pos\Providers\ModuleServiceProvider::class,

5. Run Commands
From the project root, run the following commands in your terminal, in this order:

composer dump-autoload
php artisan pos:install
php artisan storage:link
php -d memory_limit=-1 artisan bagisto-api-platform:optimize

The pos:install command runs the POS migrations, seeds the default settings and receipt, publishes the POS assets, configures the storefront key used by the terminal, and clears the application caches. storage:link serves the published POS images; skip it if the link already exists.

bagisto-api-platform:optimize caches the configuration and routes and pre-builds the API metadata. Do not skip it: without it, every till request rebuilds the metadata of the whole API and the terminal becomes slow or answers 500 Internal Server Error. Run it again after every .env change, extension update or php artisan optimize:clear.

If your .env uses CACHE_STORE=database, you can also add API_PLATFORM_CACHE=file to .env, so the API metadata is read from files instead of the cache table, and then run bagisto-api-platform:optimize again.

Accessing the POS Front-end

The POS terminal comes pre-built, and php artisan pos:install publishes it. Therefore, you do not need a separate front-end build or preview server.

Once the commands above have completed, open the terminal at:

https://example.com/pos

Replace example.com with your own store domain. The extension registers the POS terminal as a route in your Bagisto application, so it uses the same domain as your store.

You can also open the terminal from the POS Front button on the Agents and Outlets pages in the admin panel.

POS stays switched off until you enable it

The installation leaves the extension switched off. Until you turn on Status under Configure >> Point Of Sale >> Settings >> General, the Point Of Sale (POS) menu is hidden in the admin panel and the terminal page returns 404 Not Found.

Note: The terminal keeps selling while the connection is down, as long as the terminal page stays open. Do not reload the page while you are offline, because it cannot be loaded again until the connection returns.

After updating the extension, hard-refresh the terminal so the browser loads the new version instead of the cached one.

Once the extension is installed and its Status is turned on, you will see the Point Of Sale (POS) menu on the left-hand side of the admin panel. It contains Agents (with Agents and Outlets), Barcode Products, Orders, Requests, Banks, Sales Report and Receipts.

Point Of Sale (POS) menu in the Bagisto admin panel

Laravel eCommerce Point of Sale Configuration

From the admin dashboard, go to Configure. The Point Of Sale group is listed right after General and Magic AI; open its Settings card.

Point Of Sale settings card on the Configure page

The Settings page has four groups: General, Barcode, Products and POS API. The image below shows the complete page; each group is described after it.

POS Settings configuration page

General Settings

The fields marked [Default] are set for the default channel, and the fields marked [English] are set for the English locale.

Let’s go through the Configuration Settings one by one:

Status 

Turns the whole extension on or off. While it is off, the admin menu is hidden and agents cannot open the terminal.

Pos Logo

Upload the logo that the POS login panel will show.

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 that the POS login panel will show.

Footer Note 

Enter the footer note.

Barcode 

Print Product Name 

The admin can turn on this option to print the product name along with the product barcode.

Width

Here the admin can add the width of the barcode.

Height

Here the admin can add the height of the barcode.

Generate Barcode With

The admin can generate the barcode with the Product Id or with the Product Sku (stock keeping unit) from the drop-down.

Prefix

The admin can also add a barcode prefix if needed. Leave it blank if you do not want to add a prefix.

Hide Barcode

The admin can turn on or turn off this option as per their need.

Products

Allow SKU for Custom Product

Once the admin turns on this option, the POS agent enters an SKU for a custom product at the front end while adding it to the customer’s cart.

POS API

Bagisto v2.5.0 serves the POS terminal over the Bagisto API, and this section holds the settings for that till API.

Agent Token Lifetime (Days)

How many days an agent stays signed in when they tick Remember Password at login. Leave it empty to use the default of 30 days. An agent who does not tick Remember Password stays signed in for one day.

Storefront Key

The storefront key the POS terminal presents when it calls the Bagisto API.

This key is set automatically when you run php artisan pos:install, so in most installations it does not need to be changed by hand.

Manage Agent

Go to Point Of Sale (POS) >> Agents >> Agents to manage the people who sign in to the terminal.

  • Agents: Here you can see the list of agents that the admin created.
POS agents list

Create Agent

The admin can add agents by clicking on the “Create Agent” button, which opens the Add Agent screen.

Here, the admin needs to add the below details:

Username

The admin can add the username of the agent. This is the username the agent signs in to the POS terminal with.

First Name 

Here the admin can add the first name of the agent.

Last Name

The admin needs to add the last name of the agent.

Email 

The admin can add the email ID of the agent.

Upload Agent Image

Add an image to represent the agent.

Password and Confirm Password

The admin can set the password for the agent and confirm it.

Outlet

Select the outlet from the drop-down.

Status

The admin can activate or deactivate the agent from the toggle button. A deactivated agent cannot sign in to the terminal.

Lastly, hit the Save Agent button to save the agent settings correctly.

Add Agent screen

Manage Outlet

Go to Point Of Sale (POS) >> Agents >> Outlets to see the list of POS outlets.

POS outlets list

First, the admin can add an outlet by clicking on the “Create Outlet” button, which opens the Add Outlet screen.

Here, the admin needs to add some details –

Outlet Name

The admin needs to add the name of the outlet in the field.

Email

Enter the email address of the outlet.

Phone and Customer Care Number

Enter the outlet’s phone number and the customer care number to print on the receipt.

GST Number

Enter the tax registration number of the outlet, if applicable.

Website

Enter the website address associated with the outlet.

Status 

The admin can activate or deactivate the outlet status.

Outlet Address

Enter the outlet address, then select the Country and State, and enter the City and Postcode of the outlet.

Inventory Source

The admin has to choose the inventory source for each outlet from the drop-down. The POS uses this source to count the outlet’s stock.

Low Stock Quantity

Set the threshold below which a product is treated as low stock for this outlet. Products under this threshold appear in the agent’s Low Stock Products list at the terminal. Agents can also change this value from the terminal, as described under POS Panel-Product Management.

Receipt

The admin selects the receipt template for this outlet from the Receipt drop-down. The list contains the receipts created under the Receipts section described later in this article.

Finally, hit the Save Outlet button to save the outlet settings correctly.

Add Outlet screen

After creating the outlet, click the Assign Product action on its row, the list icon between the edit and delete icons, to choose which products the outlet sells.

Assign Product action on an outlet row

Manage Products

The Manage Outlet Products page lists your catalog with each product’s quantity at the outlet. Select the products, open Select Action, choose Update Assign, then pick Assign or Unassign and confirm. The terminal shows only assigned products, after the agent syncs.

Update Assign mass action on Manage Outlet Products
Manage Outlet Products list

Outlet Stock Rules

**Note:

Each outlet uses its own Inventory Source, and the POS counts its stock at that source.

Therefore, an outlet can hold a different quantity of the same product from another outlet or from an unassigned warehouse.

In addition, Bagisto shares the stock instead of copying it: a POS sale reduces the quantity at the outlet’s inventory source.

Also, a change made elsewhere in Bagisto for that source appears at the till after the agent syncs.

For example, for a configurable product, the POS uses the quantity of the chosen variant at the outlet’s inventory source, not the parent product.

A configurable parent carries no stock of its own.

Barcode Product List

Go to Point Of Sale (POS) >> Barcode Products. Here the admin can view the products with their price, quantity and generated barcode.

They can generate product barcodes so the POS agent can add products to the cart by scanning them during checkout.

Barcode Products list

Generate Barcode

To generate the barcode for one product, click the barcode icon on its row. To generate several at once, select the products, open Select Action and choose Generate Barcode.

Generate Barcode mass action

To print barcode labels for one product, click the printer icon on its row. To print several, select the products; a Print Barcode button appears above the list.

Print Barcode button for the selected products

On the Print Barcode page, enter in Qty how many labels to print for each selected product, and click Print.

Print Barcode page

Orders

Go to Point Of Sale (POS) >> Orders to see every order placed at a terminal, with its Order ID, Customer Name, Order Date, Grand Total and Status.

POS Orders list in the admin panel

Click the view icon on a row to open the order in the store’s order page. POS orders show an extra Order Note panel with the note the agent added at the terminal.

POS order on the admin order page

Requests

Go to Point Of Sale (POS) >> Requests to see the low stock requests that agents send from the terminal.

POS Requests list

Click the view icon on a request to open Requested Product Details. The page shows User Information — the agent, the outlet and its inventory source — and Request Information — the product, the Requested Qty, the request date and the agent’s comment.

Set the Status to Complete or Decline and click Save. You can also change several requests at once with the Update Status mass action on the list.

Requested Product Details

Completing a request adds stock

When you set a request to Complete, the requested quantity is added to the product’s stock at the outlet’s inventory source. The agent sees the request as Received at the terminal.

Banks

Go to Point Of Sale (POS) >> Banks to add the banks that agents choose from when a customer pays by card.

The admin can also see the Bank List in this section.

POS banks list

Once the admin clicks on the “Create Bank” button, the Create New Bank screen opens, where they add the bank details. 

General 

Name: The admin needs to add the bank name.

Address: Enter the bank address. 

Email: Enter the email ID. 

Phone: The admin can add the phone number. 

Pos Agent & Bank Status 

Assign Pos Agent: Here the admin can assign the bank to the POS agent. 

Bank Status: Select the bank status, Active/Inactive.

Create New Bank screen

Now at the POS outlet, when the customer pays by card, the POS agent selects the bank from the Bank drop-down on the payment screen, as shown below.

Selecting the bank for a card payment

Sales Report

Go to Point Of Sale (POS) >> Sales Report to see the orders placed at your terminals. Orders placed on the storefront are not included.

Each row shows the Order ID, Order Date, Status, Grand Total, Payment Method, Order Note, Outlet Name and Bank Name. You can filter by these columns, for example by bank or payment method, export the list, and click the view icon to open the order.

POS Sales Reports

Receipts

Go to Point Of Sale (POS) >> Receipts to add, edit, preview and delete the receipt templates that outlets print.

POS receipts list

Add Receipt

The admin can add a new receipt by clicking on “Create Receipt”, which opens the Create New Receipt screen. The screen has four groups: General, Logo, Header and Footer.

  • Receipt Title: The admin can add the title of the receipt.
  • Status: The admin can turn on or turn off the receipt status.
  • Display Outlet Name: By enabling this, the admin can show the outlet name.
  • Display Outlet Address: By enabling this, the admin can show the outlet address on the receipt.
  • Display Date: By enabling this option, the admin can show the date on the receipt.
  • Display Order ID: The admin can show the order ID on the receipt by enabling this.
  • Order ID Label: The admin can add the order ID label.
  • Display Customer Name: By enabling this, the admin can show the customer name on the receipt.
  • Display Customer Email: By enabling this, the admin can show the customer’s email address on the receipt.
  • Display Customer Number: By enabling this, the admin can show the customer’s phone number on the receipt.
  • Mask Customer Details: Partially hides the customer’s details on the printed receipt, so a receipt left at the counter does not expose them.

Totals and Payment Settings

  • Display Sub Total: The admin can show the subtotal on the receipt by enabling this.
  • Sub Total Label: The admin can add the sub-total label.
  • Display Tax: By enabling this, the admin can show tax on the receipt.
  • Tax Label: The admin can add the tax label.
  • Display Credit Amount: By enabling this, the admin can show the credit amount on the receipt.
  • Credit Amount Label: The admin adds the credit amount label.
  • Display Change Amount: The admin can show the change amount by enabling this.
  • Change Amount Label: The admin can add the change amount label.
  • Display Cashier Name: By enabling this, the admin can show the cashier’s name on the receipt.
  • Cashier Name Label: The admin can add the cashier name label.
  • Grand Total Label: The admin can add the grand total label.
  • Display Discount Amount: By enabling this, the admin can show the discount amount on the receipt.
  • Discount Amount Label: The admin can add the discount label.
  • Show Order Barcode: Prints the order’s barcode on the receipt, so the order can be scanned back at the counter for a reorder or a return.
  • Show Print Confirmation: The terminal asks the agent to confirm before it sends the receipt to the printer.

Logo and Print Settings

  • Display Logo: By enabling this, the admin can show the logo on the receipt.
  • Upload Logo / Logo Alt / Logo Width (in px) / Logo Height (in px): The admin can upload the logo, set its alternative text, and set its width and height in pixels.
  • Header Content / Footer Content: The admin can add the header or footer content on the receipt.

Receipt Settings

Create New Receipt screen

Laravel eCommerce Point of Sale Front-end

The agent signs in to the terminal with the User Name and Password the admin created. Ticking Remember Password keeps the agent signed in for the number of days set in Agent Token Lifetime (Days); otherwise the sign-in lasts one day.

POS terminal login page

POS Cash Drawer Amount

After signing in, the agent is prompted to open the cash drawer. The Cash Drawer pop-up asks for the Opening Drawer Amount and Remarks; clicking Open Drawer starts the session.

The POS agent adds the opening drawer amount, for example $200 as shown in the image, which is the cash in the drawer at the start of the day.

Cash Drawer pop-up

After that, the agent reaches the POS panel. It shows the categories and the products that the admin assigned to the outlet, with the cart on the right, where the POS agent manages the customer’s order.

The POS terminal sidebar gives access to Home, Customers, Cashier, Orders, Products, Reports, Settings and Logout.

POS terminal home page

Once you have made any changes at the admin end, make sure you sync the POS front end to reflect the changes.

The terminal keeps its catalog locally for offline sales, so newly assigned products and changed fields reach an agent only after a sync.

You can do this by hitting the sync button at the top right-hand side of the header, or from Settings >> Sync.

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

Searching products at the till

POS agents can also look for the products in their categories. Selecting a category shows its sub-categories next to it, as shown in the image below.

Browsing products by category

Moreover, the POS agent can add products to the cart by scanning their barcodes. The barcode button in the header (or Ctrl + B) opens Enter Barcode, where a scanned or typed barcode adds the product when the agent clicks Proceed.

Enter Barcode pop-up

Reorder / Repeat Order Feature

The Reorder feature allows POS agents to quickly recreate a previous order for a returning customer.

Instead of searching the catalog and adding each product manually, the agent can fetch all items from an existing order and load them directly into the current active cart.

How to Process a Reorder

You start a reorder from the order history:

  1. Go to Orders >> History.
  2. Find the previous order by searching for its Order ID, and select it. The order details open on the right with the Return, Reorder and Print Invoice buttons.
  3. Click Reorder. Offline orders that have not synced yet have the same button under Orders >> Offline Orders.
  4. Select a customer first if none is chosen — the terminal will prompt with “Please select a customer first.”
  5. [System Check] If your current active cart already has items, the terminal moves that cart to Hold Orders so the reorder starts from a clean basket, and confirms with “Current cart has been moved to hold orders.”
  6. The terminal shows a Reorder Summary. It lists the items added to the cart, the items modified because of stock limits, and the items skipped.
Order details with the Return, Reorder and Print Invoice buttons

Smarter Cart Recalculations

Bagisto POS handles the heavy lifting when bringing past items into today’s checkout cart:

  • Price & Tax Recalculation: All prices and taxes are updated to their current values, so a repeat order is charged at today’s price rather than the price on the original order.
  • Smart Variations: For products with several sizes or colors, the system fetches the exact variant bought previously and checks that variant’s own stock at the outlet.
  • Partial Reorder Support: If the POS cannot supply an item from the old order, it reports the item in the Reorder Summary. It then loads what is available, so you do not lose the sale. The POS reports an item as skipped when the product was deleted, disabled, or out of stock. It reports an item as modified when only part of the requested quantity is available.

In the example below, one item of the old order was added to the cart, and the other was skipped because it is out of stock at the outlet.

Reorder Summary with a skipped out-of-stock item

 Return Product

Handling returns manually by issuing a refund and creating a completely new order is time-consuming.

The Return Product feature introduces a dedicated workflow right at the POS terminal, allowing agents to process a return in a single, unified transaction.

How to Process a Return

When a customer brings an order back, follow this flow:

  1. Go to Orders >> History and select the customer’s original order.
  2. Click Return. The button appears only while the terminal is online and the order still has items that have not been returned.
  3. The terminal creates the refund straight away and confirms with “Refund created successfully”. The order’s status changes to Closed in the order history and in the admin panel.

A return covers the whole order

Return refunds every item on the order that has not been returned yet, in one step. The terminal does not ask for a confirmation, you cannot pick individual items or quantities, and a return cannot be undone.

An offline order that has not synced yet can be returned from Orders >> Offline Orders instead.

Return completed at the till

Configurable Products at the Till

When the POS agent opens a configurable product, the terminal shows each configurable attribute — for example Color and Size — with the options that can actually be sold.

Then, once the agent selects a complete combination, the terminal finds the exact child variant and shows its Selected Variant Price.

The agent can then set the quantity and click Add to Cart.

Choosing a variant of a configurable product

The terminal checks the quantity against the stock that the chosen variant has at the outlet’s inventory source.

The same variant decides the price, the available quantity and the line that reaches the cart.

POS – Custom Product

The POS agent can also add a product to the cart which is not available in their POS catalog but is available in the physical outlet.

The POS agent clicks the add product button in the header, or presses Ctrl + Alt + N.

The Add New Product pop-up asks for the Name, Price, Quantity and Weight, and the SKU when Allow SKU for Custom Product is turned on in the configuration. Click Proceed: the terminal creates the product, adds it to the outlet’s catalog and puts one in the cart.

Select the customer before you add a custom product. Without a customer, the product is still created, but the terminal reports “No customer is selected.” and the cart stays empty; add the product from the catalog after choosing the customer.

Add New Product pop-up

After that, the POS agent can proceed with the order as normal.

POS – Cashier Management

Under the Cashier section, the POS agent manages the functionalities given below –

  • Cash Drawer
  • Today’s Sale
  • Sale History
  • Drawer Reports

After the agent opens the Cash Drawer tab, they can see the Drawer Amount Summary. It lists the Opening Drawer Amount, Cash Payment Sale, Other Payment Sale, and Expected Drawer Amount.

The agent counts the cash in the drawer, enters it in the amount field below the summary, and adds Remarks describing the counter closure. The terminal then shows the Difference between the expected amount and the counted amount.

Clicking Close Drawer closes the counter for that session, and Print Drawer Report prints the drawer slip. The next sign-in asks for a new opening amount.

Drawer Amount Summary and closing the drawer

Drawer Reports

Under Cashier >> Drawer Reports, the agent can review every drawer session that has been opened and closed.

Each row carries the Report ID, the Type (Open or Close), the Print Time, the Starting Cash, the Expected Cash, the Actual Cash and the Variance Cash.

The agent can narrow the list with Filters, and print any slip again with the Print action on its row.

The printed drawer slip shows the POS agent, the opening and closing times, and the opening amount.

It also shows the payment summary, total sales, expected amount, actual closing amount and difference.

Drawer Reports

Today’s Sale

Under Cashier, another option, Today’s Sale, is available. It shows the Opening Drawer Amount, the Cash Payment Sale and the Other Payment Sale.

Below them, the Order ID, Time, Order Total and Payment Mode of each order placed today are listed, and Filters narrows the list, for example by payment mode.

Today's Sale

Sale History

Under Cashier >> Sale History, the agent sees their takings day by day: the Date, Cash Payments, Other Payments, Total Sale and the Drawer Note. Use Filters to narrow the list by date range or by amount.

Individual orders, with the Reorder and Return actions, are under Orders >> History.

Sale History

POS – Order Management

The POS agent can manage sales activity such as adding customer details and products to the cart.

They can also put the cart on hold to process it later and take payment for the order from their panel.

Start each sale by choosing the customer. Click Add Customer at the top of the cart to open the Customers pop-up, then search the customer by name or email and select them. Customers created while the terminal is offline are listed under the Offline Customers tab until they are synced.

Customers pop-up

To register a new customer, click Add New in the pop-up, or the + button next to Add Customer. The terminal shows the form below.

Fill in the First Name, Last Name, Phone Number, Email, Address, Country, State, City and Pin code, then click Add Customer. The email and phone number must not already belong to another customer.

Add New Customer form

With the customer selected, the POS agent adds the products to the cart by clicking them in the catalog.

Cart with two products

Cart Drawer

The cart works as a drawer that the agent can slide away to see more of the catalog while selling:

  1. Click the arrow at the top right of the cart, next to the customer. When you point at it, it shows Hide Cart.
Hide Cart button at the top of the cart
  1. The cart slides into a small cart on the right, and the product grid widens. The small cart keeps the number of items, the first items, the Payable Amount and a Pay button in view, so the agent can still take payment from it.
  2. Click Show Cart, or the small cart itself, to open the full cart again.
Small cart with the Show Cart button

POS Panel- Apply Discount

The POS agent can give a discount on a single cart line, or on the whole cart.

To discount one line, expand the line with the arrow on its left. Enter a percentage in its Discount field and click the green apply button, as shown below. The largest discount allowed is 99.99%.

Discount on a single cart line

To discount the whole cart, click Discount at the bottom of the cart. In the Apply Discount pop-up, choose Percent (%) or $ Fixed, enter the Discount Amount and click Apply.

Apply Discount pop-up for the whole cart

Next to Discount, Coupon applies a coupon code from the store’s cart rules, and Note adds an order note to the cart.

Product Checkout

Once the cart is ready, the POS agent clicks Proceed in the cart (or presses Ctrl + Enter) to open the payment screen. It shows the Payable Amount, the amount Received and the Remaining amount, the Payment Methods — Cash, Card or Split — and the Order Details.

If the customer pays in cash, the agent enters the amount received with the keypad. When the customer pays more than the total, the Remaining amount turns negative: that is the change to hand back.

Cash payment

In the example above, the Payable Amount is $185.01 after a 10% line discount. The customer pays $200.00, so the Remaining amount is -$14.99, the change.

Finally, click Confirm Payment. The terminal shows Order placed successfully with the Home and Print Invoice buttons. When the outlet’s receipt has Show Print Confirmation turned on, the terminal asks “Do you want to print the receipt of last order?” before printing.

Order placed successfully

Under Orders >> History, agents can select any order and click Print Invoice to print it again.

Print Invoice prints the receipt on the thermal receipt printer, laid out by the outlet’s receipt template: the outlet’s details, the date, order ID and cashier, the customer, each product with its options, the totals and how the order was paid. The example below is the receipt of a split payment.

Printed POS receipt

Customers can also pay by card. With Card, the agent enters the last four digits in Card Details and selects the Bank the payment goes through; the whole order total is taken by card. The terminal does not accept a full card number.

POS Panel- Hold Order

The POS agent can put a cart on hold to process it later. To keep a note with the held cart, add it first with Note at the bottom of the cart; the Order Note pop-up takes up to 250 characters.

Order Note pop-up

Then click Hold Order (or press Ctrl + Shift + H) and confirm with Agree. The terminal confirms with “Order has been hold successfully.” and empties the cart.

Confirming Hold Order

After holding the cart, the POS agent can check the held orders from the Hold Orders button in the header (or Ctrl + H), or under Orders >> Orders On Hold.

Orders On Hold

The above image shows the cart details of the order that has been put on hold. The note added by the POS agent is also shown under the Note section.

Here the POS agent can:-

  • Click the “Resume” button to bring the held order back into the cart and process it further. If a cart is already in progress, the terminal asks the agent to process the current cart first.
  • Click the “Remove” button to remove the held order.

Split Payment 

The customer can also split the order payment between cash and card at checkout, as shown in the image below.

With Split, the agent enters the cash Received; the Remaining amount is taken by card, for which the agent enters the Card Details and selects the Bank.

Split payment between cash and card

POS Panel – Offline Orders

While the connection is down, the Wi-Fi icon in the header turns red and the terminal warns the agent that it is in offline mode. The agent keeps selling as usual.

Terminal in offline mode

The sales orders taken in offline mode appear under Orders >> Offline Orders.

Offline Orders

Once the POS system is connected to the internet again, the POS agent can sync offline sales with the online store.

They can use the Sync Order action in an order’s details for a single order, or Sync All Orders, which appears above the list when the terminal is online, to push every pending order at once.

Sync All Orders

After syncing, the offline orders appear with the other orders under Orders >> History.

Orders History

Under Orders >> History, the POS agent can –

  • View the complete list of the orders placed.
  • View the details of any order from the sales order list.
  • Search for an order by its Order ID.
  • Print the invoice of the order.
  • Start a Reorder or a Return for the order.

POS Panel-Product Management

The POS agent can manage their outlet products under the Products section.

Here POS agents can –

  • Review the products that fall below the outlet’s low stock threshold under the Low Stock Products section, as shown in the image below.
  • Build a Purchase Request by adding low stock products to it, and then send it with the Send Request button.
Low Stock Products

Clicking a low stock product opens the Send Quantity Request pop-up.

The POS agent can mention the Requested Quantity and a Comment, then click Add Product to add the product to the request.

Send Quantity Request pop-up

The product is listed in the Purchase Request panel on the right. When the request is complete, click Send Request.

Purchase Request panel
  • The POS agent can also check the sent requests for low stock products under Products >> Requested Products, along with the requested quantity, the comment and the request status — Pending, Received or Declined — as shown in the image below.
Requested Products

Under Products >> Settings, the agent can set the Minimum Qty below which products count as low stock and click Save.

Minimum Qty changes the whole outlet

Minimum Qty is the outlet’s Low Stock Quantity. Saving it at one terminal changes the threshold for every agent at that outlet, and replaces the value set in the admin panel.

POS Panel- Reports

Under Reports, the agent sees charts of their sales for the current Day, Week or Month, or for a date range: Orders, Average Order Value, Average Items Per Order, Discounted Offers, Cash Payments and Other Payment.

POS Reports

POS Panel- Settings

The POS agent can also go to Settings to edit their account and terminal settings. It has four tabs: Profile, Sync, Shortcuts and Regional.

Under the Profile settings, the POS agent will –

  • First Name – add the first name of the POS agent.
  • Last Name – add the last name of the POS agent.
  • Email – add the email address.
  • Old Password – add the current password of the POS account.
  • New Password – add the new password for the POS account.
  • Confirm Password – re-add the new password of the POS account to confirm it.

And lastly, hit the Update Profile button to save the settings correctly.

Profile settings

Under the Regional settings, the POS agent can configure the terminal as shown below.

  • Select the Locale for the terminal from the drop-down.
  • Select the Currency for the terminal from the drop-down, then click Save.
Regional settings

POS Panel- Sync

Under Settings >> Sync, the POS agent refreshes the terminal’s local data from the server. The screen lists the Products, Customers, Orders and Cart Rules, each with the number of records fetched and its state as the sync proceeds. Click Sync to start it.

Because the sync replaces the terminal’s local catalog, changes made at the admin end reach the agent only after this step.

Sync settings

POS Panel- Keyboard Shortcuts

The Shortcuts tab under Settings lists the keyboard shortcuts available at the terminal, grouped under Header, Menu, Customer and Cart.

Keyboard shortcuts

The shortcuts are:

  • Ctrl + B — Open Barcode Mode
  • Ctrl + Alt + N — Open Product Create Modal
  • F11 — Toggle Fullscreen
  • Ctrl + D — Toggle Dark Mode
  • Ctrl + H — Hold Orders
  • Alt + 1 to Alt + 7 — Go to Home, Customers, Cashier, Orders, Products, Reports and Settings
  • Ctrl + Shift + C — Create New Customer
  • Ctrl + E — Edit Current Customer
  • Del — Delete Current Customer
  • Ctrl + Shift + U — Change Current Customer
  • Ctrl + Alt + Shift + N — Add Note
  • Ctrl + Backspace — Remove Note
  • Ctrl + Enter — Proceed to Checkout
  • Ctrl + Shift + H — Hold Order

That’s all for the Laravel eCommerce Point of Sale extension for Bagisto v2.5.0. If you still have any issues, feel free to raise a ticket.

Also, let us know your views on making the module Laravel eCommerce Point of Sale better https://bagisto.uvdesk.com/en/

Current Product Version - 2.5.0

Supported Framework Version - Bagisto v2.5.0

Blog Version - Bagisto v2.5.0
  • Version Bagisto v2.5.0
  • Version Bagisto v2.4.11
  • Version Bagisto v2.4.10
  • Version Bagisto v2.4.0
  • Version Bagisto v2.2.2
  • Version Bagisto v1.5.1
  • Version Bagisto v1.3.3
. . .

Leave a Comment

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


10 comments

  • Abhishek Yadav
    • saurav pathak (Moderator)
  • Lucas White
    • saurav pathak (Moderator)
  • Kristy Davis
    • saurav pathak (Moderator)
  • Andrew Campher
    • saurav pathak (Moderator)
  • Open Source Rocks
    • Prachi Chauhan (Moderator)
  • Back to Top

    Message Sent!

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

    Back to Home