{"id":174283,"date":"2019-06-07T07:00:31","date_gmt":"2019-06-07T07:00:31","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=174283"},"modified":"2026-09-17T12:54:43","modified_gmt":"2026-09-17T12:54:43","slug":"laravel-ecommerce-point-of-sale","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/","title":{"rendered":"Laravel eCommerce Point of Sale"},"content":{"rendered":"\n<p><a href=\"https:\/\/store.webkul.com\/bagisto-laravel-ecommerce-pos.html\" target=\"_blank\" rel=\"noreferrer noopener\">Laravel eCommerce Point of Sale<\/a> extension offers extensive features for admins, enabling easy creation of multi-stores.<\/p>\n\n\n\n<p>It also allows seamless tracking of daily sales and efficient customer management.<\/p>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>The Bagisto POS system can work in both online and offline mode in case of poor connectivity.<\/p>\n\n\n\n<p>This guide documents the Laravel eCommerce Point of Sale extension for <strong>Bagisto v2.4.11<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Compatibility<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Compatibility:<\/strong> Bagisto v2.4.11<\/li>\n\n\n\n<li><strong>Bagisto API:<\/strong> <a href=\"https:\/\/github.com\/bagisto\/bagisto-api\/tree\/v2.4.4\" target=\"_blank\" rel=\"noreferrer noopener\">Bagisto Headless eCommerce<\/a> is needed, because the POS terminal communicates with the store entirely over the Bagisto API.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Which printer and scanner support Bagisto POS?<\/strong><\/h2>\n\n\n\n<p>The Bagisto Point of Sale system supports the Epson TM-T82 Thermal POS Receipt Printer.<\/p>\n\n\n\n<p>The paper width and the roll diameter are 79.5 \u00b1 0.5 (W) \u00d7 dia. 83.0; 57.5 \u00b1 0.5 (W) \u00d7&nbsp;dia. 83.0.<\/p>\n\n\n\n<p>Most barcode scanners work with the Bagisto POS system, such as the <strong>Retsol LS450<\/strong>.<\/p>\n\n\n\n<p>Check a brief overview of the POS terminal workflow&nbsp;<\/p>\n\n\n\n<p>7gjobytCnsg<\/p>\n\n\n\n<p>Check a brief overview of the POS backend settings &#8211;&nbsp;&nbsp;<\/p>\n\n\n\n<p>ynAxK7tlmLs<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Features Of Laravel eCommerce Point of Sale<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Creation of several outlets from the back-end.<\/li>\n\n\n\n<li>Sales agents can manage discounts from the front-end.<\/li>\n\n\n\n<li>Sales agents can handle customers both online and offline.&nbsp;<\/li>\n\n\n\n<li>Front-end cart hold features.<\/li>\n\n\n\n<li>Ability to create several carts from the front-end.<\/li>\n\n\n\n<li>Barcode generation and printing available at the back-end.<\/li>\n\n\n\n<li>Separate product inventory management by assigning inventory sources to each outlet.<\/li>\n\n\n\n<li>Support for cash, card and split payments at the front-end.<\/li>\n\n\n\n<li>Real-time sync of customers and orders in offline mode.<\/li>\n\n\n\n<li>Capability to place orders with custom products.<\/li>\n\n\n\n<li>Support for various product types: Simple, Configurable, Downloadable, Virtual, Bundle, Grouped and Booking.<\/li>\n\n\n\n<li>Customizable POS sales invoices.<\/li>\n\n\n\n<li>POS sales reporting with extensive filtering options at the admin end.<\/li>\n\n\n\n<li>Barcode prefix option added into module settings.<\/li>\n\n\n\n<li>Reorder \/ Repeat Order&nbsp;\u2013 Quickly recreate a previous order by fetching items into the current cart.<\/li>\n\n\n\n<li>Return Product \u2013 Process a return for a previous order directly at the POS terminal.<\/li>\n\n\n\n<li>Cash drawer management with reports that agents can print and reprint.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Installation of Laravel eCommerce Point of Sale<\/h3>\n\n\n\n<p>The customer will get a <strong>zip folder<\/strong>.<\/p>\n\n\n\n<p><strong>Prerequisite:<\/strong> Install <a href=\"https:\/\/github.com\/bagisto\/bagisto-api\/tree\/v2.4.4\" target=\"_blank\" rel=\"noreferrer noopener\">Bagisto API<\/a> on your Bagisto v2.4.11 store before installing the POS extension.<\/p>\n\n\n\n<p>Therefore, the POS terminal uses the Bagisto API, so you cannot use the till endpoints without it.<\/p>\n\n\n\n<p>Follow these steps to install the Bagisto POS Extension:<\/p>\n\n\n\n<p><strong>1. Unzip and Merge Files<\/strong><br>Extract the extension zip file and merge the <code>packages<\/code> folder into your project&#8217;s root directory.<\/p>\n\n\n\n<p><strong>2. Update <code>composer.json<\/code><\/strong><br>Add the following entry under the <code>psr-4<\/code> section in <code>composer.json<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\"Webkul\\\\Pos\\\\\": \"packages\/Webkul\/Pos\/src\"<\/pre>\n\n\n\n<p><strong>3. Update <code>bootstrap\/providers.php<\/code><\/strong><\/p>\n\n\n\n<p>Bagisto v2.4.11 runs on Laravel 12, where you register service providers in <code>bootstrap\/providers.php<\/code> instead of <code>config\/app.php<\/code>. Add the following lines to that file:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">use Webkul\\Pos\\Providers\\PosServiceProvider;<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">PosServiceProvider::class,<\/pre>\n\n\n\n<p><strong>4. Run Commands<\/strong><br>From the project root, run the following commands in your terminal:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">composer dump-autoload<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">php artisan pos:install<\/pre>\n\n\n\n<p>The <code>pos:install<\/code> command runs the POS migrations, seeds the default settings, publishes the POS assets, provisions the storefront key used by the terminal, and clears the application caches.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Accessing the POS Front-end<\/h3>\n\n\n\n<p>The POS terminal comes pre-built, and <code>php artisan pos:install<\/code> publishes it. Therefore, you do not need a separate front-end build or preview server.<\/p>\n\n\n\n<p>Once the commands above have completed, open the terminal at:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">https:\/\/example.com\/pos<\/pre>\n\n\n\n<p>Replace <code>example.com<\/code> 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.<\/p>\n\n\n\n<p>You can also open the terminal from the <strong>POS Front<\/strong> button on the <strong>Agents<\/strong> and <strong>Outlets<\/strong> pages in the admin panel.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">POS stays switched off until you enable it<\/h3>\n\n\n\n<p>The installation leaves the extension switched off. Until you turn on <strong>Status<\/strong> under <strong>Configure &gt;&gt; Point Of Sale &gt;&gt; Settings &gt;&gt; General<\/strong>, the <strong>Point Of Sale (POS)<\/strong> menu is hidden in the admin panel and the terminal page returns <strong>404 Not Found<\/strong>.<\/p>\n\n\n\n<p><strong>Note:<\/strong> 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.<\/p>\n\n\n\n<p>After updating the extension, hard-refresh the terminal so the browser loads the new version instead of the cached one.<\/p>\n\n\n\n<p>Once the extension is installed and its <strong>Status<\/strong> is turned on, you will see the <strong>Point Of Sale (POS)<\/strong> menu on the left-hand side of the admin panel. It contains <strong>Agents<\/strong> (with <strong>Agents<\/strong> and <strong>Outlets<\/strong>), <strong>Barcode Products<\/strong>, <strong>Orders<\/strong>, <strong>Requests<\/strong>, <strong>Banks<\/strong>, <strong>Sales Report<\/strong> and <strong>Receipts<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-admin-dashboard.webp\" alt=\"pos-admin-dashboard\" class=\"wp-image-481372\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-admin-dashboard.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-admin-dashboard-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-admin-dashboard-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-admin-dashboard-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Laravel eCommerce Point of Sale Configuration<\/h2>\n\n\n\n<p>From the admin dashboard, go to <strong>Configure &gt;&gt; Point Of Sale &gt;&gt; Settings<\/strong>. The page has four groups: <strong>General<\/strong>, <strong>Barcode<\/strong>, <strong>Products<\/strong> and <strong>POS API<\/strong>.<\/p>\n\n\n\n<p><strong>General Settings<\/strong><\/p>\n\n\n\n<p>The fields below depicting <strong>[Default]<\/strong> refer to the setting of the&nbsp;<strong>default channel and English locale<\/strong>.<\/p>\n\n\n\n<p>Let&#8217;s go through the Configuration Settings one by one:<\/p>\n\n\n\n<p><strong>Status&nbsp;<\/strong><\/p>\n\n\n\n<p>Turns the whole extension on or off. While it is off, the admin menu is hidden and agents cannot open the terminal.<\/p>\n\n\n\n<p><strong>Pos Logo<\/strong><\/p>\n\n\n\n<p>Upload the logo that the POS login panel will show.<\/p>\n\n\n\n<p><strong>Heading On Login<\/strong>&nbsp;<\/p>\n\n\n\n<p>Enter the POS heading which will be visible on the POS login panel.<\/p>\n\n\n\n<p><strong>Sub-Heading On Login<\/strong><\/p>\n\n\n\n<p>Enter the sub-heading which will be visible on the POS login panel.<\/p>\n\n\n\n<p><strong>Footer Content<\/strong><\/p>\n\n\n\n<p>Enter the footer content that the POS login panel will show.<\/p>\n\n\n\n<p><strong>Footer Note&nbsp;<\/strong><\/p>\n\n\n\n<p>Enter the footer note.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-pos-configuration-general-settings.webp\" alt=\"laravel-ecommerce-pos-settings-general-settings\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Barcode&nbsp;<\/h2>\n\n\n\n<p><strong>Print Product Name&nbsp;<\/strong><\/p>\n\n\n\n<p>The admin can turn on this option to print the product name along with the product barcode.<\/p>\n\n\n\n<p><strong>Width<\/strong><\/p>\n\n\n\n<p>Here the admin can add the width of the barcode.<\/p>\n\n\n\n<p><strong>Height<\/strong><\/p>\n\n\n\n<p>Here the admin can add the height of the barcode.<\/p>\n\n\n\n<p><strong>Generate Barcode With<\/strong><\/p>\n\n\n\n<p>The admin can generate the barcode with the <strong>Product Id<\/strong> or with the <strong>Product Sku<\/strong> (stock keeping unit) from the drop-down.<\/p>\n\n\n\n<p><strong>Prefix<\/strong><\/p>\n\n\n\n<p>The admin can also add a barcode <strong>prefix<\/strong> if needed. Leave it blank if you do not want to add a prefix.<\/p>\n\n\n\n<p><strong>Hide Barcode<\/strong><\/p>\n\n\n\n<p>The admin can turn on or turn off this option as per their need.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-pos-configuration-bar-code.webp\" alt=\"laravel-ecommerce-pos-settings-bar-code\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Products<\/strong><\/h2>\n\n\n\n<p><strong>Allow SKU for Custom Product<\/strong><\/p>\n\n\n\n<p>Once the admin turn ons this option, the POS agent can add a custom product SKU at the front end while adding the product to the customer&#8217;s cart.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-pos-configuration-products-1.webp\" alt=\"laravel-ecommerce-pos-settings-products\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>POS API<\/strong><\/h2>\n\n\n\n<p>Bagisto v2.4.11 serves the POS terminal over the Bagisto API, and this section holds the settings for that till API.<\/p>\n\n\n\n<p><strong>Agent Token Lifetime (Days)<\/strong><\/p>\n\n\n\n<p>How many days an agent stays signed in when they tick <strong>Remember Password<\/strong> at login. Leave it empty to use the default of <strong>30<\/strong> days. An agent who does not tick <strong>Remember Password<\/strong> stays signed in for one day.<\/p>\n\n\n\n<p><strong>Storefront Key<\/strong><\/p>\n\n\n\n<p>The storefront key the POS terminal presents when it calls the Bagisto API.<\/p>\n\n\n\n<p>This key is set automatically when you run <code>php artisan pos:install<\/code>, so in most installations it does not need to be changed by hand.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Manage Agent<\/h2>\n\n\n\n<p>Go to <strong>Point Of Sale (POS) &gt;&gt; Agents &gt;&gt; Agents<\/strong> to manage the people who sign in to the terminal.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Agents:<\/strong> Here you can see the list of agents that the admin created.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><img decoding=\"async\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-agent.webp\" alt=\"laravel-ecommerce-point-of-sale-agent\" width=\"1120\" height=\"880\" loading=\"lazy\"><\/h3>\n\n\n\n<p><strong>Create Agent<\/strong><\/p>\n\n\n\n<p>The admin can add agents by clicking on the <strong>&#8220;Create Agent&#8221;<\/strong> button, which opens the <strong>Add Agent<\/strong> screen.<\/p>\n\n\n\n<p>Here, the admin needs to add the below details:<\/p>\n\n\n\n<p><strong>Username<\/strong><\/p>\n\n\n\n<p>The admin can add the username of the agent. This is the username the agent signs in to the POS terminal with.<\/p>\n\n\n\n<p><strong>First Name&nbsp;<\/strong><\/p>\n\n\n\n<p>Here the admin can add the first name of the agent.<\/p>\n\n\n\n<p><strong>Last Name<\/strong><\/p>\n\n\n\n<p>The admin needs to add the last name of the agent.<\/p>\n\n\n\n<p><strong>Email&nbsp;<\/strong><\/p>\n\n\n\n<p>The admin can add the email ID of the agent.<\/p>\n\n\n\n<p><strong>Upload Agent Image<\/strong><\/p>\n\n\n\n<p>Add an image to represent the agent.<\/p>\n\n\n\n<p><strong>Password<\/strong> and <strong>Confirm Password<\/strong><\/p>\n\n\n\n<p>The admin can set the password for the agent and confirm it.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-add-agent.webp\" alt=\"laravel-ecommerce-point-of-sale-add-agent\" class=\"wp-image-478970\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-add-agent.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-add-agent-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-add-agent-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-add-agent-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p><strong>Outlet<\/strong><\/p>\n\n\n\n<p>Select the outlet from the drop-down.<\/p>\n\n\n\n<p><strong>Status<\/strong><\/p>\n\n\n\n<p>The admin can activate or deactivate the agent from the toggle button. A deactivated agent cannot sign in to the terminal.<\/p>\n\n\n\n<p>Lastly, hit the <strong>Save Agent<\/strong> button to save the agent settings correctly.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Manage Outlet<\/strong><\/h2>\n\n\n\n<p>Go to <strong>Point Of Sale (POS) &gt;&gt; Agents &gt;&gt; Outlets<\/strong> to see the list of POS outlets.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-stores.webp\" alt=\"laravel-ecommerce-point-of-sale-stores\" class=\"wp-image-478971\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-stores.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-stores-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-stores-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-stores-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>First, the admin can add an outlet by clicking on the <strong>&#8220;Create Outlet&#8221;<\/strong> button, which opens the <strong>Add Outlet<\/strong> screen.<\/p>\n\n\n\n<p>Here, the admin needs to add some details \u2013<\/p>\n\n\n\n<p><strong>Outlet Name<\/strong><\/p>\n\n\n\n<p>The admin needs to add the name of the outlet in the field.<\/p>\n\n\n\n<p><strong>Email<\/strong><\/p>\n\n\n\n<p>Enter the email address of the outlet.<\/p>\n\n\n\n<p><strong>Phone<\/strong> and <strong>Customer Care Number<\/strong><\/p>\n\n\n\n<p>Enter the outlet&#8217;s phone number and the customer care number to print on the receipt.<\/p>\n\n\n\n<p><strong>GST Number<\/strong><\/p>\n\n\n\n<p>Enter the tax registration number of the outlet, if applicable.<\/p>\n\n\n\n<p><strong>Website<\/strong><\/p>\n\n\n\n<p>Enter the website address associated with the outlet.<\/p>\n\n\n\n<p><strong>Status&nbsp;<\/strong><\/p>\n\n\n\n<p>The admin can activate or deactivate the outlet status.<\/p>\n\n\n\n<p><strong>Outlet Address<\/strong><\/p>\n\n\n\n<p>Enter the outlet address in this section.<\/p>\n\n\n\n<p><strong>Country<\/strong><\/p>\n\n\n\n<p>The admin can select the country of the outlet.<\/p>\n\n\n\n<p><strong>State&nbsp;<\/strong><\/p>\n\n\n\n<p>The admin needs to select the state of the outlet.<\/p>\n\n\n\n<p><strong>City<\/strong><\/p>\n\n\n\n<p>Select the city of the outlet.<\/p>\n\n\n\n<p><strong>Postcode<\/strong><\/p>\n\n\n\n<p>Enter the postcode of the outlet.<\/p>\n\n\n\n<p><strong>Inventory Source<\/strong><\/p>\n\n\n\n<p>The admin has to choose the inventory source for each outlet from the drop-down. The POS uses this source to count the outlet&#8217;s stock.<\/p>\n\n\n\n<p><strong>Low Stock Quantity<\/strong><\/p>\n\n\n\n<p>Set the threshold below which a product is treated as low stock for this outlet. Products under this threshold appear in the agent&#8217;s <strong>Low Stock Products<\/strong> list at the terminal. Agents can also change this value from the terminal, as described under <strong>POS Panel-Product Management<\/strong>.<\/p>\n\n\n\n<p><strong>Receipt<\/strong><\/p>\n\n\n\n<p>The admin selects the receipt template for this outlet from the <strong>Select Receipt<\/strong> drop-down. The list contains the receipts created under the <strong>Receipts<\/strong> section described later in this article.<\/p>\n\n\n\n<p>Finally, hit the <strong>Save Outlet<\/strong> button to save the outlet settings correctly.<\/p>\n\n\n\n<p>After creating the outlet, click the <strong>Assign Product<\/strong> action on its row, shown in the image below, to choose which products the outlet sells.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/manage-pos-outlets.webp\" alt=\"manage-pos-outlets\" class=\"wp-image-481374\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/manage-pos-outlets.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/manage-pos-outlets-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/manage-pos-outlets-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/manage-pos-outlets-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Manage Products<\/strong><\/h3>\n\n\n\n<p>The <strong>Manage Outlet Products<\/strong> page lists your catalog with each product&#8217;s quantity at the outlet. Select the products, choose <strong>Update Assign<\/strong> from the mass actions, then pick <strong>Assign<\/strong> or <strong>Unassign<\/strong>. The terminal shows only assigned products, after the agent syncs.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-manage-outlet.webp\" alt=\"laravel-ecommerce-point-of-sale-manage-outlet\" class=\"wp-image-478974\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-manage-outlet.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-manage-outlet-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-manage-outlet-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-manage-outlet-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Outlet Stock Rules<\/h4>\n\n\n\n<p><strong>**Note:<\/strong><\/p>\n\n\n\n<p>Each outlet uses its own <strong>Inventory Source<\/strong>, and the POS counts its stock at that source.<\/p>\n\n\n\n<p>Therefore, an outlet can hold a different quantity of the same product from another outlet or from an unassigned warehouse.<\/p>\n\n\n\n<p>In addition, Bagisto shares the stock instead of copying it: a POS sale reduces the quantity at the outlet&#8217;s inventory source.<\/p>\n\n\n\n<p>Also, a change made elsewhere in Bagisto for that source appears at the till after the agent syncs.<\/p>\n\n\n\n<p>For example, for a configurable product, the POS uses the quantity of the <strong>chosen variant<\/strong> at the outlet&#8217;s inventory source, not the parent product.<\/p>\n\n\n\n<p>A configurable parent carries no stock of its own.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Barcode Product List<\/strong><\/h3>\n\n\n\n<p>Here the admin can view all the products associated with their outlet accordingly.<\/p>\n\n\n\n<p>They can generate product barcodes so the POS agent can add products to the cart during checkout.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-barcode-product.webp\" alt=\"laravel-ecommerce-point-of-sale-barcode-product\" class=\"wp-image-478978\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-barcode-product.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-barcode-product-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-barcode-product-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-barcode-product-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Generate Barcode<\/strong><\/h3>\n\n\n\n<p>Go to <strong>Point Of Sale (POS) &gt;&gt; Barcode Products<\/strong>. To generate the barcode for one product, click <strong>Generate Barcode<\/strong> on its row. To generate several at once, select the products and choose <strong>Generate Barcode<\/strong> from the mass actions.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-generate-barcode-1.webp\" alt=\"laravel-ecommerce-point-of-sale-generate-barcode\" class=\"wp-image-478979\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-generate-barcode-1.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-generate-barcode-1-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-generate-barcode-1-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-generate-barcode-1-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>After that, print a product&#8217;s barcode in the quantity you need by clicking <strong>Print Barcode<\/strong> on its row.<\/p>\n\n\n\n<p>Here the admin will first select the products for which they want to set the barcode quantity.<\/p>\n\n\n\n<p>Then they choose <strong>Print Barcode<\/strong> from the mass actions.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-generate-barcode-2.webp\" alt=\"laravel-ecommerce-point-of-sale-generate-barcode\" class=\"wp-image-478980\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-generate-barcode-2.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-generate-barcode-2-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-generate-barcode-2-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-generate-barcode-2-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>On the <strong>Print Barcode<\/strong> page, enter the <strong>Qty<\/strong> of labels for each product and click <strong>Print<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-print-barcode-1.webp\" alt=\"laravel-ecommerce-point-of-sale-print-barcode\" class=\"wp-image-478981\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-print-barcode-1.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-print-barcode-1-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-print-barcode-1-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-print-barcode-1-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Orders<\/strong><\/h3>\n\n\n\n<p>Go to <strong>Point Of Sale (POS) &gt;&gt; Orders<\/strong> to see every order placed at a terminal, with its <strong>Order ID<\/strong>, customer, status, grand total and date.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-order-lists.webp\" alt=\"laravel-ecommerce-point-of-sale-order-lists\" class=\"wp-image-478982\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-order-lists.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-order-lists-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-order-lists-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-order-lists-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>Click <strong>View<\/strong> on a row to open the order in the store&#8217;s order page. POS orders show an extra <strong>Order Note<\/strong> panel with the note the agent added at the terminal.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"2332\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/view-order-details.webp\" alt=\"view order details\" class=\"wp-image-481409\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/view-order-details.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/view-order-details-144x300.webp 144w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/view-order-details-492x1024.webp 492w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/view-order-details-120x249.webp 120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/view-order-details-768x1599.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/view-order-details-738x1536.webp 738w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/view-order-details-984x2048.webp 984w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Requests<\/h3>\n\n\n\n<p>Go to <strong>Point Of Sale (POS) &gt;&gt; Requests<\/strong> to see the low stock requests that agents send from the terminal.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-prod-req.webp\" alt=\"laravel-ecommerce-point-of-sale-prod-req\" class=\"wp-image-478988\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-prod-req.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-prod-req-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-prod-req-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-prod-req-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>Click <strong>View<\/strong> on a request to open it. The page shows <strong>User Information<\/strong> \u2014 the agent, the outlet and its inventory source \u2014 and <strong>Request Information<\/strong> \u2014 the product, the <strong>Requested Qty<\/strong> and the agent&#8217;s comment.<\/p>\n\n\n\n<p>Set the <strong>Status<\/strong> to <strong>Complete<\/strong> or <strong>Decline<\/strong> and click <strong>Save<\/strong>. You can also change several requests at once with the <strong>Update Status<\/strong> mass action on the list.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Completing a request adds stock<\/h3>\n\n\n\n<p>When you set a request to <strong>Complete<\/strong>, the requested quantity is added to the product&#8217;s stock at the outlet&#8217;s inventory source. The agent sees the request as <strong>Received<\/strong> at the terminal.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-request-details.webp\" alt=\"pos-request-details\" class=\"wp-image-481376\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-request-details.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-request-details-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-request-details-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-request-details-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Banks<\/h3>\n\n\n\n<p>Go to <strong>Point Of Sale (POS) &gt;&gt; Banks<\/strong> to add the banks that agents choose from when a customer pays by card.<\/p>\n\n\n\n<p>The admin can also see the Bank List in this section.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-bank-list.webp\" alt=\"laravel-ecommerce-point-of-sale-bank-list\" class=\"wp-image-478989\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-bank-list.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-bank-list-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-bank-list-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-bank-list-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>Once the admin clicks on the <strong>&#8220;Create Bank&#8221;<\/strong> button, they will find the snapshot below, in which they will add the details about their bank details.&nbsp;<\/p>\n\n\n\n<p>General&nbsp;<\/p>\n\n\n\n<p><strong>Name:<\/strong> The admin needs to add the bank name.<\/p>\n\n\n\n<p><strong>Address:<\/strong> Enter the bank address.&nbsp;<\/p>\n\n\n\n<p><strong>Email:<\/strong> Enter the email ID.&nbsp;<\/p>\n\n\n\n<p><strong>Phone:<\/strong> The admin can add the phone number.&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Pos Agent &amp; Bank Status&nbsp;<\/h4>\n\n\n\n<p><strong>Assign Pos Agent:<\/strong> Here the admin can assign the bank to the POS agent.&nbsp;<\/p>\n\n\n\n<p><strong>Bank Status:<\/strong> Select the bank status, Active\/Inactive.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-add-bank.webp\" alt=\"laravel-ecommerce-point-of-sale-add-bank\" class=\"wp-image-478991\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-add-bank.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-add-bank-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-add-bank-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-add-bank-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>Now at the POS outlet, once the customer pays the bill, the POS agent can select the preferred bank from the Select Bank drop-down shown below.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-select-bank.webp\" alt=\"select bank\" class=\"wp-image-481401\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-select-bank.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-select-bank-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-select-bank-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-select-bank-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Sales Report<\/h3>\n\n\n\n<p>Go to <strong>Point Of Sale (POS) &gt;&gt; Sales Report<\/strong> to see the orders placed at your terminals. Orders placed on the storefront are not included.<\/p>\n\n\n\n<p>Each row shows the <strong>Order ID<\/strong>, <strong>Outlet Name<\/strong>, <strong>Payment Method<\/strong>, <strong>Bank Name<\/strong>, <strong>Order Note<\/strong>, <strong>Status<\/strong>, <strong>Grand Total<\/strong> and <strong>Order Date<\/strong>. You can filter by any of these columns, for example by bank or payment method, and click <strong>View<\/strong> to open the order.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-sales-report.webp\" alt=\"pos-sales-report\" class=\"wp-image-481394\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-sales-report.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-sales-report-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-sales-report-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-sales-report-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Receipts<\/h3>\n\n\n\n<p>Go to <strong>Point Of Sale (POS) &gt;&gt; Receipts<\/strong> to add, edit, preview and delete the receipt templates that outlets print.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-manage-receipts.webp\" alt=\"manage-receipts\" class=\"wp-image-481397\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-manage-receipts.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-manage-receipts-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-manage-receipts-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-manage-receipts-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Add Receipt<\/h3>\n\n\n\n<p>The admin can add a new receipt by clicking on <strong>&#8220;Create Receipt&#8221;<\/strong>, which opens the <strong>Create New Receipt<\/strong> screen. The screen has four groups: <strong>General<\/strong>, <strong>Logo<\/strong>, <strong>Header<\/strong> and <strong>Footer<\/strong>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Receipt Title:&nbsp;<\/strong>The admin can add the title of the receipt.<\/li>\n\n\n\n<li><strong>Status:&nbsp;<\/strong>The admin can turn on or turn off the receipt status.<\/li>\n\n\n\n<li><strong>Display Outlet Name:&nbsp;<\/strong>By enabling this, the admin can show the outlet name.<\/li>\n\n\n\n<li><strong>Display Outlet Address:&nbsp;<\/strong>By enabling this, the admin can show the outlet address on the receipt.<\/li>\n\n\n\n<li><strong>Display Date:&nbsp;<\/strong>By enabling this option, the admin can show the date on the receipt.<\/li>\n\n\n\n<li><strong>Display Order ID:&nbsp;<\/strong>The admin can show the order ID on the receipt by enabling this.<\/li>\n\n\n\n<li><strong>Order ID Label:&nbsp;<\/strong>The admin can add the order ID label.<\/li>\n\n\n\n<li><strong>Display Customer Name:&nbsp;<\/strong>By enabling this, the admin can show the customer name on the receipt.<\/li>\n\n\n\n<li><strong>Display Customer Email:&nbsp;<\/strong>By enabling this, the admin can show the customer&#8217;s email address on the receipt.<\/li>\n\n\n\n<li><strong>Display Customer Number:&nbsp;<\/strong>By enabling this, the admin can show the customer&#8217;s phone number on the receipt.<\/li>\n\n\n\n<li><strong>Mask Customer Details:&nbsp;<\/strong>Partially hides the customer&#8217;s details on the printed receipt, so a receipt left at the counter does not expose them.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Totals and Payment Settings<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n\n\n<li><strong>Display Sub Total:<\/strong>&nbsp;The admin can show the subtotal on the receipt by enabling this.<\/li>\n\n\n<li><strong>Sub Total Label:<\/strong> The admin can add the sub-total label.<\/li>\n\n\n<li><strong>Display Tax:&nbsp;<\/strong>By enabling this, the admin can show tax on the receipt.<\/li>\n\n\n<li><strong>Tax Label:&nbsp;<\/strong>The admin can add the tax label.<\/li>\n\n\n<li><strong>Display Credit Amount:&nbsp;<\/strong>By enabling this, the admin can show the credit amount on the receipt.<\/li>\n\n\n<li><strong>Credit Amount Label:<\/strong> The admin adds the credit amount label.<\/li>\n\n\n<li><strong>Display Change Amount:&nbsp;<\/strong>The admin can show the change amount by enabling this.<\/li>\n\n\n<li><strong>Change Amount Label:&nbsp;<\/strong>The admin can add the change amount label.<\/li>\n\n\n<li><strong>Display Cashier Name:&nbsp;<\/strong>By enabling this, the admin can show the cashier&#8217;s name on the receipt.<\/li>\n\n\n<li><strong>Cashier Name Label:&nbsp;<\/strong>The admin can add the cashier name label.<\/li>\n\n\n<li><strong>Grand Total Label:&nbsp;<\/strong>The admin can add the grand total label.<\/li>\n\n\n<li><strong>Display Discount Amount:<\/strong> By enabling this, the admin can show the discount amount on the receipt.<\/li>\n\n\n<li><strong>Discount Amount Label:&nbsp;<\/strong>The admin can add the discount label.<\/li>\n\n\n<li><strong>Show Order Barcode:<\/strong> Prints the order&#8217;s barcode on the receipt, so the order can be scanned back at the counter for a reorder or a return.<\/li>\n\n\n<li><strong>Show Print Confirmation:<\/strong> The terminal asks the agent to confirm before it sends the receipt to the printer.<\/li>\n\n<\/ul>\n\n\n<h4 class=\"wp-block-heading\">Logo and Print Settings<\/h4>\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>Display Logo:<\/strong> By enabling this, the admin can show the logo on the receipt.<\/li>\n\n\n<li><strong>Upload Logo \/ Logo Alt \/ Logo Width (in px) \/ Logo Height (in px):<\/strong> The admin can upload the logo, set its alternative text, and set its width and height in pixels.<\/li>\n\n\n<li><strong>Header Content \/ Footer Content:<\/strong> The admin can add the header or footer content on the receipt.<\/li>\n\n<\/ul>\n\n\n<h4 class=\"wp-block-heading\">Receipt Settings<\/h4>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"842\" height=\"2560\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-create-receipt-scaled.webp\" alt=\"create receipt\" class=\"wp-image-481399\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-create-receipt-scaled.webp 842w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-create-receipt-99x300.webp 99w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-create-receipt-337x1024.webp 337w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-create-receipt-82x249.webp 82w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-create-receipt-768x2334.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-create-receipt-505x1536.webp 505w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-create-receipt-674x2048.webp 674w\" sizes=\"(max-width: 842px) 100vw, 842px\" loading=\"lazy\" \/><\/figure>\n\n\n<h3 class=\"wp-block-heading\">Laravel eCommerce Point of Sale Front-end<\/h3>\n\n\n<p>The agent signs in to the terminal with the <strong>User Name<\/strong> and <strong>Password<\/strong> the admin created. Ticking <strong>Remember Password<\/strong> keeps the agent signed in for the number of days set in <strong>Agent Token Lifetime (Days)<\/strong>; otherwise the sign-in lasts one day.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/loginpage.webp\" alt=\"loginpage\" class=\"wp-image-480833\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/loginpage.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/loginpage-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/loginpage-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/loginpage-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n<p>After signing in to the POS system, the POS agents will be redirected to the POS panel as shown in the image below.<\/p>\n\n\n<p><img decoding=\"async\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-main-page.webp\" alt=\"laravel-ecommerce-point-of-sale-main-page\" width=\"1600\" height=\"900\" loading=\"lazy\">The POS terminal sidebar gives access to <strong>Home<\/strong>, <strong>Customers<\/strong>, <strong>Cashier<\/strong>, <strong>Orders<\/strong>, <strong>Products<\/strong>, <strong>Reports<\/strong>, <strong>Settings<\/strong> and <strong>Logout<\/strong>.<\/p>\n\n\n<p>Once you have made any changes at the admin end, make sure you sync the POS front end to reflect the changes.<\/p>\n\n\n<p>The terminal keeps its catalog locally for offline sales, so newly assigned products and changed fields reach an agent only after a sync.<\/p>\n\n\n<p>You can do this by hitting the sync button, which you can see at the top right-hand side of the snapshot below, or from <strong>Settings &gt;&gt; Sync<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-main-page-1.webp\" alt=\"laravel-ecommerce-point-of-sale-main-page\" class=\"wp-image-480136\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-main-page-1.webp 1600w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-main-page-1-300x169.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-main-page-1-1200x675.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-main-page-1-250x141.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-main-page-1-768x432.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-main-page-1-1536x864.webp 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" loading=\"lazy\" \/><\/figure>\n\n\n<h2 class=\"wp-block-heading\">Reorder \/ Repeat Order Feature<\/h2>\n\n\n<p>The Reorder feature allows POS agents to quickly recreate a previous order for a returning customer.<\/p>\n\n\n<p>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.<\/p>\n\n\n<h3 class=\"wp-block-heading\">How to Process a Reorder<\/h3>\n\n\n<p>You start a reorder from the order history:<\/p>\n\n\n<ol class=\"wp-block-list\">\n\n<li>Go to <strong>Orders &gt;&gt; History<\/strong>.<\/li>\n\n\n<li>Find the previous order by searching for its <strong>Order ID<\/strong> or the customer name, and select it.<\/li>\n\n\n<li>Click <strong>Reorder<\/strong> in the order details. Offline orders that have not synced yet have the same button under <strong>Orders &gt;&gt; Offline Orders<\/strong>.<\/li>\n\n\n<li>Select a customer first if none is chosen \u2014 the terminal will prompt with <em>&#8220;Please select a customer first.&#8221;<\/em><\/li>\n\n\n<li><em>[System Check]<\/em>&nbsp;If your current active cart already has items, the terminal moves that cart to <strong>Hold Orders<\/strong> so the reorder starts from a clean basket, and confirms with <em>&#8220;Current cart has been moved to hold orders.&#8221;<\/em><\/li>\n\n\n<li>The terminal shows a <strong>Reorder Summary<\/strong>. It lists the items added to the cart, the items changed because of stock limits, and the items skipped.<\/li>\n\n<\/ol>\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-1\"><img decoding=\"async\" width=\"1200\" height=\"796\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/reorder-1200x796.webp\" alt=\"reorder\" class=\"wp-image-537609\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/reorder-1200x796.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/reorder-300x199.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/reorder-250x166.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/reorder-768x509.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/reorder.webp 1508w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n<h3 class=\"wp-block-heading\">Smarter Cart Recalculations<\/h3>\n\n\n<p>Bagisto POS handles the heavy lifting when bringing past items into today&#8217;s checkout cart:<\/p>\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>Price &amp; Tax Recalculation:<\/strong>&nbsp;All prices and taxes are updated to their&nbsp;<em>current<\/em>&nbsp;values, so a repeat order is charged at today&#8217;s price rather than the price on the original order.<\/li>\n\n\n<li><strong>Smart Variations:<\/strong>&nbsp;For products with several sizes or colors, the system fetches the exact variant bought previously and checks that variant&#8217;s own stock at the outlet.<\/li>\n\n\n<li><strong>Partial Reorder Support:<\/strong>&nbsp;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.<\/li>\n\n<\/ul>\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-2\"><img decoding=\"async\" width=\"1200\" height=\"796\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/warrning-1200x796.webp\" alt=\"Item not available\" class=\"wp-image-537615\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/warrning-1200x796.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/warrning-300x199.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/warrning-250x166.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/warrning-768x509.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/warrning.webp 1508w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n<h2 class=\"wp-block-heading\">&nbsp;Return Product<\/h2>\n\n\n<p>Handling returns manually by issuing a refund and creating a completely new order is time-consuming.<\/p>\n\n\n<p>The <strong>Return Product<\/strong>&nbsp;feature introduces a dedicated workflow right at the POS terminal, allowing agents to process a return in a single, unified transaction.<\/p>\n\n\n<h3 class=\"wp-block-heading\">How to Process a Return<\/h3>\n\n\n<p>When a customer brings an order back, follow this flow:<\/p>\n\n\n<ol class=\"wp-block-list\">\n\n<li>Go to <strong>Orders &gt;&gt; History<\/strong> and select the customer&#8217;s original order.<\/li>\n\n\n<li>Click <strong>Return<\/strong>. The button appears only while the terminal is online and the order still has items that have not been returned.<\/li>\n\n\n<li>After the terminal processes the return, it marks the order as&nbsp;<strong>Returned<\/strong>&nbsp;in the order history.<\/li>\n\n<\/ol>\n\n\n<h3 class=\"wp-block-heading\">A return covers the whole order<\/h3>\n\n\n<p><strong>Return<\/strong> refunds every item on the order that has not been returned yet, in one step. You cannot pick individual items or quantities, and a return cannot be undone.<\/p>\n\n\n<p>An offline order that has not synced yet can be returned from <strong>Orders &gt;&gt; Offline Orders<\/strong> instead.<\/p>\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-3\"><img decoding=\"async\" width=\"1200\" height=\"796\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/return-1200x796.webp\" alt=\"return \" class=\"wp-image-537619\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/return-1200x796.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/return-300x199.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/return-250x166.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/return-768x509.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/return.webp 1508w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n<h3 class=\"wp-block-heading\" id=\"panel-16\"><strong>POS Cash Drawer Amount<\/strong><\/h3>\n\n\n<p>After signing in, the agent is prompted to open the cash drawer. The <strong>Cash Drawer<\/strong> pop-up asks for the <strong>Opening Drawer Amount<\/strong> and optional <strong>Remarks<\/strong>; clicking <strong>Open Drawer<\/strong> starts the session.<\/p>\n\n\n<p>The POS agent has to add the opening drawer amount, for example $200 as shown in the image, which is the needed amount set for that specific day.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-cash-drawer.webp\" alt=\"laravel-ecommerce-point-of-sale-cash-drawer\" class=\"wp-image-480097\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-cash-drawer.webp 1600w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-cash-drawer-300x169.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-cash-drawer-1200x675.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-cash-drawer-250x141.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-cash-drawer-768x432.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-cash-drawer-1536x864.webp 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" loading=\"lazy\" \/><\/figure>\n\n\n<p>After login, the POS agent sees all products that the admin assigned to that outlet.<\/p>\n\n\n<p>The agent will also see the Cart section where the POS agent will manage the customer&#8217;s orders.<\/p>\n\n\n<p><img decoding=\"async\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-cart.webp\" alt=\"laravel-ecommerce-point-of-sale-cart\" width=\"1600\" height=\"900\" loading=\"lazy\">The POS agent can easily <strong>search for<\/strong> any product from the search bar.<\/p>\n\n\n<p>Moreover, the POS agent can add products to the cart by scanning their barcodes. The barcode button in the header (or <strong>Ctrl + B<\/strong>) opens <strong>Enter Barcode<\/strong>, where a scanned or typed barcode adds the product.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/searchproduct-1.webp\" alt=\"searchproduct\" class=\"wp-image-480363\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/searchproduct-1.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/searchproduct-1-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/searchproduct-1-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/searchproduct-1-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n<p>POS agents can also look for the products available in their respective categories as shown in the image below.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/home.webp\" alt=\"home\" class=\"wp-image-480852\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/home.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/home-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/home-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/home-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n<p>The image below shows all categories listed in the POS.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/categories.webp\" alt=\"categories\" class=\"wp-image-480364\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/categories.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/categories-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/categories-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/categories-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n<h3 class=\"wp-block-heading\">Configurable Products at the Till<\/h3>\n\n\n<p>When the POS agent opens a configurable product, the terminal shows each configurable attribute \u2014 for example <strong>Waist Size<\/strong> or <strong>Color<\/strong> and <strong>Size<\/strong> \u2014 with the options that can actually be sold.<\/p>\n\n\n<p>Then, once the agent selects a complete combination, the terminal finds the exact child variant and shows its <strong>Selected Variant Price<\/strong>.<\/p>\n\n\n<p>The agent can then set the quantity and click <strong>Add to Cart<\/strong>.<\/p>\n\n\n<p>The terminal checks the quantity against the stock that the <strong>chosen variant<\/strong> has at the outlet&#8217;s inventory source.<\/p>\n\n\n<p>The same variant decides the price, the available quantity and the line that reaches the cart.<\/p>\n\n\n<h3 class=\"wp-block-heading\">POS &#8211; Custom Product<\/h3>\n\n\n<p>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.<\/p>\n\n\n<p>The POS agent clicks the add product button in the header, shown in the image below, or presses <strong>Ctrl + Alt + N<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/customproduct.webp\" alt=\"customproduct\" class=\"wp-image-480365\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/customproduct.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/customproduct-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/customproduct-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/customproduct-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n<p>The <strong>Add New Product<\/strong> pop-up asks for the <strong>Name<\/strong>, <strong>Price<\/strong>, <strong>Weight<\/strong> and <strong>Quantity<\/strong>, and the <strong>SKU<\/strong> when <strong>Allow SKU for Custom Product<\/strong> is turned on in the configuration. Click <strong>Proceed<\/strong> to add the product to the cart.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/twoproductadd.webp\" alt=\"twoproductadd\" class=\"wp-image-480375\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/twoproductadd.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/twoproductadd-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/twoproductadd-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/twoproductadd-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n<p>After that, the POS agent can proceed with the order as normal.<\/p>\n\n\n<h3 class=\"wp-block-heading\">POS \u2013 Cashier Management<\/h3>\n\n\n<p>Under the&nbsp;<strong>Cashier<\/strong> section, the POS agent manages the functionalities given below \u2013<\/p>\n\n\n<ul class=\"wp-block-list\">\n\n<li>Cash Drawer<\/li>\n\n\n<li>Today&#8217;s Sale<\/li>\n\n\n<li>Sale History<\/li>\n\n\n<li>Drawer Reports<\/li>\n\n<\/ul>\n\n\n<p>After the agent opens the <strong>Cash Drawer<\/strong> tab, they can see the <strong>Drawer Amount Summary<\/strong>. It lists the <strong>Opening Drawer Amount<\/strong>, <strong>Cash Payment Sale<\/strong>, <strong>Other Payment Sale<\/strong>, and <strong>Expected Drawer Amount<\/strong>.<\/p>\n\n\n<p>The agent counts the cash in the drawer, adds it, and may add <strong>Remarks<\/strong> describing the counter closure. The terminal then shows the <strong>Difference<\/strong> between the expected amount and the counted amount.<\/p>\n\n\n<p>Clicking <strong>Close Drawer<\/strong> closes the counter for that session, and <strong>Print Drawer Report<\/strong> prints the drawer slip.<\/p>\n\n\n<h2 class=\"wp-block-heading\"><img decoding=\"async\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-drawers-amount-summary.webp\" alt=\"laravel-ecommerce-point-of-sale-drawers-amount-summary\" width=\"1600\" height=\"900\" loading=\"lazy\"><\/h2>\n\n\n<h2 class=\"wp-block-heading\">Drawer Reports<\/h2>\n\n\n<p>Under <strong>Cashier &gt; Drawer Reports<\/strong>, the agent can review every drawer session that has been opened and closed.<\/p>\n\n\n<p>Each row carries the <strong>Report ID<\/strong>, the <strong>Type<\/strong> (Open or Close), the <strong>Starting Cash<\/strong>, the <strong>Expected Cash<\/strong>, the <strong>Actual Cash<\/strong>, the <strong>Variance Cash<\/strong> and the <strong>Print Time<\/strong>.<\/p>\n\n\n<p>The agent can filter reports by <strong>Date Range<\/strong>. They can also print any slip again with the <strong>Reprint<\/strong> action.<\/p>\n\n\n<p>The printed drawer slip shows the POS agent, the opening and closing times, and the opening amount.<\/p>\n\n\n<p>It also shows the payment summary, total sales, expected amount, actual closing amount and difference.<\/p>\n\n\n<h2 class=\"wp-block-heading\">Today&#8217;s Sale<\/h2>\n\n\n<p>Under&nbsp;<strong>Cashier<\/strong>, another option,&nbsp;<strong>Today&#8217;s Sale<\/strong>, is available. It shows the <strong>Opening Drawer Amount<\/strong>, the&nbsp;<strong>Cash Payment Sale<\/strong>&nbsp;and the&nbsp;<strong>Other Payment Sale<\/strong>.<\/p>\n\n\n<p>The <strong>Order ID<\/strong>, <strong>Time<\/strong>, <strong>Order Total<\/strong> and <strong>Payment Mode<\/strong> details are visible to the POS agent under the <strong>Today&#8217;s Sale<\/strong>&nbsp;option.<\/p>\n\n\n<p>The agent can filter the list by <strong>Cash Payment<\/strong>, <strong>Card Payment<\/strong>, or <strong>Split Payment<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-todays-sale.webp\" alt=\"laravel-ecommerce-point-of-sale-todays-sale\" class=\"wp-image-480113\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-todays-sale.webp 1600w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-todays-sale-300x169.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-todays-sale-1200x675.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-todays-sale-250x141.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-todays-sale-768x432.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-todays-sale-1536x864.webp 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" loading=\"lazy\" \/><\/figure>\n\n\n<h2 class=\"wp-block-heading\">Sale History<\/h2>\n\n\n<p>Under <strong>Cashier &gt;&gt; Sale History<\/strong>, the agent sees their takings day by day: the <strong>Date<\/strong>, <strong>Total Sale<\/strong>, <strong>Cash Payments<\/strong>, <strong>Other Payments<\/strong> and the <strong>Drawer Note<\/strong>. Use <strong>Filters<\/strong> to narrow the list by <strong>Date Range<\/strong> or by amount.<\/p>\n\n\n<p>Individual orders, with the <strong>Reorder<\/strong> and <strong>Return<\/strong> actions, are under <strong>Orders &gt;&gt; History<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-sale-history.webp\" alt=\"laravel-ecommerce-point-of-sale-sale-history\" class=\"wp-image-480115\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-sale-history.webp 1600w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-sale-history-300x169.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-sale-history-1200x675.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-sale-history-250x141.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-sale-history-768x432.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-sale-history-1536x864.webp 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" loading=\"lazy\" \/><\/figure>\n\n\n<h3 class=\"wp-block-heading\">POS &#8211; Order Management<\/h3>\n\n\n<p>The POS agent can manage sales activity such as adding products to the cart and adding customer details.<\/p>\n\n\n<p>They can also put the cart on hold to process it later and take payment for the order from their panel.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/twoproductadd-1.webp\" alt=\"twoproductadd\" class=\"wp-image-480377\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/twoproductadd-1.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/twoproductadd-1-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/twoproductadd-1-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/twoproductadd-1-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n<p>After adding the products to the cart, the POS agent will now <strong>add customer details<\/strong>&nbsp;by clicking on the&nbsp;<strong>default<\/strong> customer option and then following the steps as shown in the image below.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/customerslist.webp\" alt=\"customerslist\" class=\"wp-image-480379\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/customerslist.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/customerslist-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/customerslist-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/customerslist-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n<p><strong>Note:<\/strong>&nbsp;The POS agent can search customers by their name or email as well. Customers created while the terminal is offline are listed under <strong>Offline Customers<\/strong> until they are synced.<\/p>\n\n\n<p>After the agent clicks <strong>Add New Customer<\/strong>, the terminal shows the form below.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-add-new-customer.webp\" alt=\"laravel-ecommerce-point-of-sale-add-new-customer\" class=\"wp-image-480117\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-add-new-customer.webp 1600w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-add-new-customer-300x169.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-add-new-customer-1200x675.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-add-new-customer-250x141.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-add-new-customer-768x432.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-add-new-customer-1536x864.webp 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" loading=\"lazy\" \/><\/figure>\n\n\n<p>Fill in the <strong>First Name<\/strong>, <strong>Last Name<\/strong>, <strong>Email<\/strong>, <strong>Phone Number<\/strong>, <strong>Address<\/strong>, <strong>Country<\/strong>, <strong>State<\/strong>, <strong>City<\/strong> and <strong>Pin code<\/strong>, then click <strong>Add Customer<\/strong>. The email and phone number must not already belong to another customer.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Product Checkout<\/h3>\n\n\n<p>Once the customer is chosen, the POS agent clicks <strong>Proceed<\/strong> in the cart (or presses <strong>Ctrl + Enter<\/strong>) to open the <strong>Payment<\/strong> screen and choose <strong>Cash<\/strong>, <strong>Card<\/strong> or <strong>Split<\/strong>.<\/p>\n\n\n<p>If the customer has chosen the cash method, the customer will provide an amount to pay for the order and the POS agent will return the remaining money as change, as shown in the screenshot below.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-order-details.webp\" alt=\"laravel-ecommerce-point-of-sale-order-details\" class=\"wp-image-480139\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-order-details.webp 1600w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-order-details-300x169.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-order-details-1200x675.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-order-details-250x141.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-order-details-768x432.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-order-details-1536x864.webp 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" loading=\"lazy\" \/><\/figure>\n\n\n<p>In the example above, the <strong>Payment Method<\/strong> is Cash and the <strong>Total Order Amount<\/strong> is <strong>$10.55<\/strong>. The customer pays <strong>$10.55<\/strong>, so the <strong>balance amount<\/strong> is <strong>$0.00<\/strong>.<\/p>\n\n\n<p>Finally, click <strong>Confirm Payment<\/strong>. When the outlet&#8217;s receipt has <strong>Show Print Confirmation<\/strong> turned on, the terminal then asks <em>&#8220;Do you want to print the receipt of last order?&#8221;<\/em> before printing.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/printorder.webp\" alt=\"printorder\" class=\"wp-image-480380\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/printorder.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/printorder-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/printorder-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/printorder-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n<p>Under <strong>Orders &gt;&gt; History<\/strong>, agents can select any order and click <strong>Print Invoice<\/strong> to print it again.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/orderhistory.webp\" alt=\"orderhistory\" class=\"wp-image-480382\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/orderhistory.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/orderhistory-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/orderhistory-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/orderhistory-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n<p>Customers can also pay by card. With <strong>Card<\/strong>, the agent enters the <strong>Card Details<\/strong> and selects the <strong>Bank<\/strong> the payment goes through; the whole order total is taken by card.<\/p>\n\n\n<h3 class=\"wp-block-heading\">POS Panel- Apply Discount<\/h3>\n\n\n<p>The POS agent can give a discount on any line in the cart.<\/p>\n\n\n<p>Open the cart line, enter a percentage in its <strong>Discount<\/strong> field and apply it, as shown below. The largest discount allowed is <strong>99.99%<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/customdiscouint.webp\" alt=\"customdiscouint\" class=\"wp-image-480383\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/customdiscouint.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/customdiscouint-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/customdiscouint-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/customdiscouint-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n<p>The line then shows the percentage applied, for example <em>&#8220;10% discount applied&#8221;<\/em>, and the cart total includes the discount.<\/p>\n\n\n<h3 class=\"wp-block-heading\">POS Panel- Hold Order<\/h3>\n\n\n<p>The POS agent can put a cart&nbsp;<strong>on hold<\/strong>&nbsp;to process it later by simply clicking on the&nbsp;<strong>Hold Order<\/strong>&nbsp;option as shown below.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/twoproductadd.webp\" alt=\"twoproductadd\" class=\"wp-image-480375\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/twoproductadd.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/twoproductadd-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/twoproductadd-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/twoproductadd-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n<p>Clicking on the <strong>Hold Order<\/strong> option will show a pop-up where the POS agent can specify a note for putting the cart on hold. The terminal confirms with <em>&#8220;Order has been hold successfully.&#8221;<\/em><\/p>\n\n\n<p>After holding the cart, the POS agent can check the held orders from the <strong>Hold Orders<\/strong> button in the header (or <strong>Ctrl + H<\/strong>), or under <strong>Orders &gt;&gt; Orders On Hold<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-orders-on-hold.webp\" alt=\"laravel-ecommerce-point-of-sale-orders-on-hold\" class=\"wp-image-480120\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-orders-on-hold.webp 1600w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-orders-on-hold-300x169.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-orders-on-hold-1200x675.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-orders-on-hold-250x141.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-orders-on-hold-768x432.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-orders-on-hold-1536x864.webp 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" loading=\"lazy\" \/><\/figure>\n\n\n<p>The above image shows the cart details of the order that has been put on <strong>hold<\/strong>. The note added by the POS agent is also shown under the <strong>Note&nbsp;<\/strong>section.<\/p>\n\n\n<p>Here the POS agent can:-<\/p>\n\n\n<ul class=\"wp-block-list\">\n\n<li>Click the <strong>&#8220;Resume&#8221;<\/strong>&nbsp;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.<\/li>\n\n\n<li>Click the <strong>&#8220;Remove&#8221;<\/strong> button to remove the held order.<\/li>\n\n<\/ul>\n\n\n<h3 class=\"wp-block-heading\">Split Payment&nbsp;<\/h3>\n\n\n<p>The customer can also split the order payment between <strong>cash and card<\/strong> at checkout, as shown in the image below.<\/p>\n\n\n<p>With <strong>Split<\/strong>, the agent enters the cash <strong>Received<\/strong>; the <strong>Remaining<\/strong> amount is taken by card, for which the agent enters the <strong>Card Details<\/strong> and selects the <strong>Bank<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/splitpay.webp\" alt=\"splitpay\" class=\"wp-image-480386\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/splitpay.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/splitpay-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/splitpay-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/splitpay-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n<h3 class=\"wp-block-heading\">POS Panel \u2013 Offline Orders<\/h3>\n\n\n<p>The sales orders taken in offline mode appear under <strong>Orders &gt;&gt; Offline Orders<\/strong>.<\/p>\n\n\n<p>Meanwhile, while the connection is down, the terminal warns the agent that it is offline and that only limited features work.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-offline-order-id.webp\" alt=\"laravel-ecommerce-point-of-sale-offline-order-id\" class=\"wp-image-480123\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-offline-order-id.webp 1600w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-offline-order-id-300x169.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-offline-order-id-1200x675.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-offline-order-id-250x141.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-offline-order-id-768x432.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-offline-order-id-1536x864.webp 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" loading=\"lazy\" \/><\/figure>\n\n\n<p>Once the POS system is connected to the internet again, the POS agent can sync offline sales with the online store.<\/p>\n\n\n<p>They can use the <strong>Sync Order<\/strong> action for a single order or <strong>Sync All Orders<\/strong> to push every pending order at once.<\/p>\n\n\n<p>After syncing, the offline orders appear with the other orders under <strong>Orders &gt;&gt; History<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/saleshistory.webp\" alt=\"saleshistory\" class=\"wp-image-480387\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/saleshistory.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/saleshistory-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/saleshistory-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/saleshistory-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n<p>Under <strong>Orders &gt;&gt; History<\/strong>, the POS agent can &#8211;<\/p>\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>View the complete list<\/strong>&nbsp;of the orders placed.<\/li>\n\n\n<li><strong>View the details<\/strong>&nbsp;of any order from the sales order list.<\/li>\n\n\n<li>Search for an order by its <strong>Order ID<\/strong> or the customer name.<\/li>\n\n\n<li>Print the invoice of the order.<\/li>\n\n\n<li>Start a <strong>Reorder<\/strong> or a <strong>Return<\/strong> for the order.<\/li>\n\n<\/ul>\n\n\n<h3 class=\"wp-block-heading\">POS Panel-Product Management<\/h3>\n\n\n<p>The POS agent can manage their <strong>outlet products<\/strong>&nbsp;under the Products section.<\/p>\n\n\n<p>Here POS agents can &#8211;<\/p>\n\n\n<ul class=\"wp-block-list\">\n\n<li>Review the products that fall below the outlet&#8217;s low stock threshold under the <strong>Low Stock Products<\/strong> section as shown in the image below.<img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/lowstocksetting.webp\" alt=\"lowstocksetting\" loading=\"lazy\"><\/li>\n\n\n<li>Build a <strong>Purchase Request<\/strong> by adding low stock products to it, and then <strong>send the request<\/strong> by clicking on the <strong>Send Request<\/strong> button as shown in the image above.<\/li>\n\n<\/ul>\n\n\n<p>After the agent clicks <strong>Send Request<\/strong>, the terminal shows the <strong>Send Quantity Request<\/strong> pop-up.<\/p>\n\n\n<p>The POS agent can mention the <strong>Requested Quantity<\/strong> and a <strong>Comment<\/strong>, then add the product to the request.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/addproduct-lowstocks.webp\" alt=\"addproduct-lowstocks\" class=\"wp-image-480834\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/addproduct-lowstocks.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/addproduct-lowstocks-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/addproduct-lowstocks-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/addproduct-lowstocks-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n<ul class=\"wp-block-list\">\n\n<li>The POS agent can also check the <strong>sent requests<\/strong> for <strong>low stock products<\/strong> under the <strong>Requested Products<\/strong> section, along with the request status \u2014 <strong>Pending<\/strong>, <strong>Received<\/strong> or <strong>Declined<\/strong> \u2014 by navigating to <strong>Products &gt;&gt; Requested Products<\/strong> as shown in the image below.<img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/requestedproduct-1.webp\" alt=\"requestedproduct\" loading=\"lazy\"><\/li>\n\n<\/ul>\n\n\n<p>Under <strong>Products &gt;&gt; Settings<\/strong>, the agent can set the <strong>Minimum Qty<\/strong> below which products count as low stock and click <strong>Save<\/strong>.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Minimum Qty changes the whole outlet<\/h3>\n\n\n<p><strong>Minimum Qty<\/strong> is the outlet&#8217;s <strong>Low Stock Quantity<\/strong>. Saving it at one terminal changes the threshold for every agent at that outlet, and replaces the value set in the admin panel.<\/p>\n\n\n<h3 class=\"wp-block-heading\">POS Panel- Reports<\/h3>\n\n\n<p>Under <strong>Reports<\/strong>, the agent sees a chart of their sales for the current <strong>Day<\/strong>, <strong>Week<\/strong> or <strong>Month<\/strong>.<\/p>\n\n\n<h3 class=\"wp-block-heading\">POS Panel- Settings<\/h3>\n\n\n<p>The POS agent can also go to <strong>Settings<\/strong> to edit their account and terminal settings. It has four tabs: <strong>Profile<\/strong>, <strong>Sync<\/strong>, <strong>Shortcuts<\/strong> and <strong>Regional<\/strong>.<\/p>\n\n\n<p>Under the <strong>Profile<\/strong> settings, the POS agent will \u2013<\/p>\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>First Name \u2013<\/strong>&nbsp;add the first name of the POS agent.<\/li>\n\n\n<li><strong>Last Name \u2013<\/strong>&nbsp;add the last name of the POS agent.<\/li>\n\n\n<li><strong>Email \u2013<\/strong>&nbsp;add the email address.<\/li>\n\n\n<li><strong>Old Password \u2013<\/strong>&nbsp;add the current password of the POS account.<\/li>\n\n\n<li><strong>New Password \u2013<\/strong>&nbsp;add the new password for the POS account.<\/li>\n\n\n<li><strong>Confirm Password \u2013<\/strong>&nbsp;re-add the new password of the POS account to confirm it.<\/li>\n\n<\/ul>\n\n\n<p>And lastly, hit the <strong>Update Profile<\/strong> button to save the settings correctly.<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/accountsetting.webp\" alt=\"accountsetting\" class=\"wp-image-480393\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/accountsetting.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/accountsetting-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/accountsetting-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/accountsetting-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n<p>Under the <strong>Regional<\/strong> settings, the POS agent can configure the terminal as shown below.<\/p>\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>Select the Locale<\/strong> for the terminal from the drop-down.<\/li>\n\n\n<li><strong>Select the Currency<\/strong> for the terminal from the drop-down, then click <strong>Save<\/strong>.<img decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/laravel-ecommerce-point-of-sale-account-settings.webp\" alt=\"laravel-ecommerce-point-of-sale-account-settings\" loading=\"lazy\"><\/li>\n\n<\/ul>\n\n\n<h3 class=\"wp-block-heading\">POS Panel- Sync<\/h3>\n\n\n<p>Under <strong>Settings &gt;&gt; Sync<\/strong>, the POS agent chooses which <strong>Entities<\/strong> to sync with the server.<\/p>\n\n\n<p>They can select <strong>Customers<\/strong>, <strong>Orders<\/strong> and <strong>Products<\/strong> using <strong>Select All<\/strong> or <strong>Deselect All<\/strong>, then click <strong>Sync Now<\/strong>.<\/p>\n\n\n<p>The screen reports the number of records fetched for each entity and its state as the sync proceeds.<\/p>\n\n\n<p>Because the sync replaces the terminal&#8217;s local catalog, changes made at the admin end reach the agent only after this step.<\/p>\n\n\n<h3 class=\"wp-block-heading\">POS Panel- Keyboard Shortcuts<\/h3>\n\n\n<p>The <strong>Shortcuts<\/strong> section under Settings lists the keyboard shortcuts available at the terminal.<\/p>\n\n\n<p>The shortcuts are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ctrl + B<\/strong> \u2014 Open Barcode Mode<\/li>\n\n\n\n<li><strong>Ctrl + Alt + N<\/strong> \u2014 Open Product Create Modal<\/li>\n\n\n\n<li><strong>F11<\/strong> \u2014 Toggle Fullscreen<\/li>\n\n\n\n<li><strong>Ctrl + D<\/strong> \u2014 Toggle Dark Mode<\/li>\n\n\n\n<li><strong>Ctrl + H<\/strong> \u2014 Hold Orders<\/li>\n\n\n\n<li><strong>Alt + 1 to Alt + 7<\/strong> \u2014 Go to Home, Customers, Cashier, Orders, Products, Reports and Settings<\/li>\n\n\n\n<li><strong>Ctrl + Shift + C<\/strong> \u2014 Create New Customer<\/li>\n\n\n\n<li><strong>Ctrl + E<\/strong> \u2014 Edit Current Customer<\/li>\n\n\n\n<li><strong>Del<\/strong> \u2014 Delete Current Customer<\/li>\n\n\n\n<li><strong>Ctrl + Shift + U<\/strong> \u2014 Change Current Customer<\/li>\n\n\n\n<li><strong>Ctrl + Alt + Shift + N<\/strong> \u2014 Add Note<\/li>\n\n\n\n<li><strong>Ctrl + Backspace<\/strong> \u2014 Remove Note<\/li>\n\n\n\n<li><strong>Ctrl + Enter<\/strong> \u2014 Proceed to Checkout<\/li>\n\n\n\n<li><strong>Ctrl + Shift + H<\/strong> \u2014 Hold Order<\/li>\n<\/ul>\n\n\n<p>That&#8217;s all for the Laravel eCommerce Point of Sale extension for Bagisto v2.4.11. If you still have any issues, feel free to raise a ticket.<\/p>\n\n\n<p>Also, let us know your views on making the module Laravel eCommerce Point of Sale better <a href=\"https:\/\/bagisto.uvdesk.com\/en\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/bagisto.uvdesk.com\/en\/<\/a><\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>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 <a href=\"https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":262,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8396,8929],"tags":[1241,5585],"class_list":["post-174283","post","type-post","status-publish","format-standard","hentry","category-bagisto","category-e-commerce-bagisto","tag-point-of-sale","tag-point-of-sale-system"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Laravel eCommerce Point of Sale | Retail POS Solution - Webkul Blog<\/title>\n<meta name=\"description\" content=\"The laravel eCommerce point of sale modue allows sellers to manage their physical store, multiple outlets and tracking day to day sales.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Laravel eCommerce Point of Sale | Retail POS Solution - Webkul Blog\" \/>\n<meta property=\"og:description\" content=\"The laravel eCommerce point of sale modue allows sellers to manage their physical store, multiple outlets and tracking day to day sales.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/\" \/>\n<meta property=\"og:site_name\" content=\"Webkul Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webkul\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-06-07T07:00:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-17T12:54:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-admin-dashboard.webp\" \/>\n<meta name=\"author\" content=\"Prachi Chauhan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webkul\" \/>\n<meta name=\"twitter:site\" content=\"@webkul\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prachi Chauhan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"35 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-ecommerce-point-of-sale\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-ecommerce-point-of-sale\\\/\"},\"author\":{\"name\":\"Prachi Chauhan\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#\\\/schema\\\/person\\\/34823aa1ccd482968bfd7d01acfa7599\"},\"headline\":\"Laravel eCommerce Point of Sale\",\"datePublished\":\"2019-06-07T07:00:31+00:00\",\"dateModified\":\"2026-09-17T12:54:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-ecommerce-point-of-sale\\\/\"},\"wordCount\":5528,\"commentCount\":10,\"publisher\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-ecommerce-point-of-sale\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/pos-admin-dashboard.webp\",\"keywords\":[\"point of sale\",\"point of sale system\"],\"articleSection\":[\"Bagisto\",\"E commerce\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-ecommerce-point-of-sale\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-ecommerce-point-of-sale\\\/\",\"url\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-ecommerce-point-of-sale\\\/\",\"name\":\"Laravel eCommerce Point of Sale | Retail POS Solution - Webkul Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-ecommerce-point-of-sale\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-ecommerce-point-of-sale\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/pos-admin-dashboard.webp\",\"datePublished\":\"2019-06-07T07:00:31+00:00\",\"dateModified\":\"2026-09-17T12:54:43+00:00\",\"description\":\"The laravel eCommerce point of sale modue allows sellers to manage their physical store, multiple outlets and tracking day to day sales.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-ecommerce-point-of-sale\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-ecommerce-point-of-sale\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-ecommerce-point-of-sale\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdnblog.webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/pos-admin-dashboard.webp\",\"contentUrl\":\"https:\\\/\\\/cdnblog.webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/pos-admin-dashboard.webp\",\"width\":1120,\"height\":880,\"caption\":\"pos-admin-dashboard\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-ecommerce-point-of-sale\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/webkul.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel eCommerce Point of Sale\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/webkul.com\\\/blog\\\/\",\"name\":\"Webkul Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/webkul.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#organization\",\"name\":\"WebKul Software Private Limited\",\"url\":\"https:\\\/\\\/webkul.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cdnblog.webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/webkul-logo-accent-sq.png\",\"contentUrl\":\"https:\\\/\\\/cdnblog.webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/webkul-logo-accent-sq.png\",\"width\":380,\"height\":380,\"caption\":\"WebKul Software Private Limited\"},\"image\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/webkul\\\/\",\"https:\\\/\\\/x.com\\\/webkul\",\"https:\\\/\\\/www.instagram.com\\\/webkul\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/webkul\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/webkul\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#\\\/schema\\\/person\\\/34823aa1ccd482968bfd7d01acfa7599\",\"name\":\"Prachi Chauhan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6c4dc4694029a3232f3acda4259960d69057ed94d263c9483622fcf1462c1fc6?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6c4dc4694029a3232f3acda4259960d69057ed94d263c9483622fcf1462c1fc6?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6c4dc4694029a3232f3acda4259960d69057ed94d263c9483622fcf1462c1fc6?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g\",\"caption\":\"Prachi Chauhan\"},\"url\":\"https:\\\/\\\/webkul.com\\\/blog\\\/author\\\/prachichauhan-bd628\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Laravel eCommerce Point of Sale | Retail POS Solution - Webkul Blog","description":"The laravel eCommerce point of sale modue allows sellers to manage their physical store, multiple outlets and tracking day to day sales.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/","og_locale":"en_US","og_type":"article","og_title":"Laravel eCommerce Point of Sale | Retail POS Solution - Webkul Blog","og_description":"The laravel eCommerce point of sale modue allows sellers to manage their physical store, multiple outlets and tracking day to day sales.","og_url":"https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2019-06-07T07:00:31+00:00","article_modified_time":"2026-09-17T12:54:43+00:00","og_image":[{"url":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-admin-dashboard.webp","type":"","width":"","height":""}],"author":"Prachi Chauhan","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"Prachi Chauhan","Est. reading time":"35 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/"},"author":{"name":"Prachi Chauhan","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/34823aa1ccd482968bfd7d01acfa7599"},"headline":"Laravel eCommerce Point of Sale","datePublished":"2019-06-07T07:00:31+00:00","dateModified":"2026-09-17T12:54:43+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/"},"wordCount":5528,"commentCount":10,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"image":{"@id":"https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-admin-dashboard.webp","keywords":["point of sale","point of sale system"],"articleSection":["Bagisto","E commerce"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/","url":"https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/","name":"Laravel eCommerce Point of Sale | Retail POS Solution - Webkul Blog","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/#primaryimage"},"image":{"@id":"https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-admin-dashboard.webp","datePublished":"2019-06-07T07:00:31+00:00","dateModified":"2026-09-17T12:54:43+00:00","description":"The laravel eCommerce point of sale modue allows sellers to manage their physical store, multiple outlets and tracking day to day sales.","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/#primaryimage","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-admin-dashboard.webp","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2019\/06\/pos-admin-dashboard.webp","width":1120,"height":880,"caption":"pos-admin-dashboard"},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/laravel-ecommerce-point-of-sale\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Laravel eCommerce Point of Sale"}]},{"@type":"WebSite","@id":"https:\/\/webkul.com\/blog\/#website","url":"https:\/\/webkul.com\/blog\/","name":"Webkul Blog","description":"","publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webkul.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webkul.com\/blog\/#organization","name":"WebKul Software Private Limited","url":"https:\/\/webkul.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","width":380,"height":380,"caption":"WebKul Software Private Limited"},"image":{"@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webkul\/","https:\/\/x.com\/webkul","https:\/\/www.instagram.com\/webkul\/","https:\/\/www.linkedin.com\/company\/webkul","https:\/\/www.youtube.com\/user\/webkul\/"]},{"@type":"Person","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/34823aa1ccd482968bfd7d01acfa7599","name":"Prachi Chauhan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/6c4dc4694029a3232f3acda4259960d69057ed94d263c9483622fcf1462c1fc6?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/6c4dc4694029a3232f3acda4259960d69057ed94d263c9483622fcf1462c1fc6?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6c4dc4694029a3232f3acda4259960d69057ed94d263c9483622fcf1462c1fc6?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g","caption":"Prachi Chauhan"},"url":"https:\/\/webkul.com\/blog\/author\/prachichauhan-bd628\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/174283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/users\/262"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=174283"}],"version-history":[{"count":243,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/174283\/revisions"}],"predecessor-version":[{"id":558407,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/174283\/revisions\/558407"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=174283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=174283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=174283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}