See the way POS for Magento 2 extension works.
Grow offline sales and get enhanced data accuracy by connecting your physical outlets to your e-commerce store with the Magento 2 Point of Sale (POS) solution. Manage the whole system from one admin panel. Eliminate the hassle of manual data entry and decrease the probability of human errors due to real-time data synchronization between your stores.
To configure your Point of Sale extension, please login into the Magento admin panel and navigate to Stores → Configuration → POS. Here you will see the General Information and Receipt Information configuration tabs for the POS setting.
Enable POS: Select 'Yes' to enable POS Solution.
Subtotal Label: This is the text label for Subtotal that is displayed in the POS cart:
Discount Label: This is the Discount label that appears on the POS cart.
Tax Label: This is the Tax label that appears on the POS cart.
Grand Total Label: This is the Grand Total label that appears on the POS cart.
Low Stock Qty: Here the admin can enter a Threshold value for the low stock. When the product quantity reaches this value, the special 'Low Stock' label is displayed on it, as it is shown in the example below.
In this section, the admin can customize the sales invoice appearance for being printed.
Display Logo: Select Yes if you wish to display the company logo.
Upload Logo: Here you can upload the logo file.
Top Header Content: Here you can add the content that will be displayed below the logo. For example, it can be an address or some promotional text.
Footer Content: Here you can add the content that will be displayed at the bottom of the receipt.
Display Outlet Name: Specify whether to display or not the outlet name on the billing invoice.
Display Outlet Label: Here you can indicate the label for the Store / Outlet name.
Display POS Agent Name: Specify whether to display or not the outlet agent name on the billing invoice.
Display POS Agent Label: Here you can indicate the Agent Name label that gets displayed in the invoice.
Display Order Date: Select 'Yes' to get the order generation date displayed in the invoice.
Display Order Date Label: This is the Order Date Label heading in the invoice.
Display Order Id: Select 'Yes' to get the order Id displayed in the invoice.
Display Order Label: This is an Order Label text to the order id.
Display Invoice Id: Select 'Yes' to get the order Id displayed in the invoice.
Display Customer Name: Select 'Yes' to get the customer name displayed in the invoice.
Display Customer Name Label: This is the customer name label that is displayed in the invoice before the customer name.
With Magento 2 POS extension you can add multiple physical outlets to your system and comfortably manage all the stores in one place. To do this, please navigate to Magento Admin Panel → POS → Manage Stores, here you can see the list of created stores (please note, that when you are just starting with the extension this grid is empty).
To add the store click the Add New button and fill in the required details.
Status: (Yes/No) the option is used to enable or disable the store that has been created.
Store Admin: Here you can choose the store admin. This feature will be released in the next POS upgrade.
Store Name: Here the admin can enter the name of the store, which is also further used in invoices and other places if required.
Country: Here you can specify the country of the store, where it is located.
State/Province: Specify to which state does the store belongs.
City: Fill in the name of the city where the store is located.
Pincode / Street: Here the additional address details should be specified. NOTE: These details are even used for the tax management purpose so that as per the province tax is bifurcated and calculated.
Street: Here you can specify the street, where the store is located.
Store View: You can create multiple store views for multiple locations, and those store views can have a different product assortment. In this tab, the admin can select the particular store view that he wants to link with his physical store.
To change the information of the created store, click the Edit link in the Action column.
With the Point of Sale Solution, you can create and manage sales agent profiles for the employees who manage your physical points of sales and associate them with particular stores.
To do this, please navigate to Magento Admin Panel → POS → Manage Agent.
To add an agent, please click the Add New Agent button.
Status: (Yes / No) Here admin can enable or disable the sales agent profile.
Name: Here you can specify the name of the agent.
Profile Image: Admin can add the photo of the sales agent.
Email: Specify the email of the sales agent that will be used to log in to the POS panel profile.
Contact Number: Here the contact number of a sales agent should be specified.
Country / State/Province / City / Street / Pincode: Specify the additional address details of the sales agent.
Allowed Store: Here you can assign the agent to a particular store. Choose the store from the list.
New Password / Confirm Password: In these fields, you can create the password for the sales agent profile.
After getting the POS URL via email or manually by admin, a sales agent can easily log to the POS System (frontend) by using his Email address and Password, which is created by Admin.
As Magento 2 POS system's front end (Agent Panel) is based on headless architecture so you need to discuss with your server provider first to open a 3001 port. For example if your website front end is on www.example.com so you may request with your server provider to open the port as www.example.com:3001
Once done then your POS front end URL (Agent Panel) can be installed on this port following the below installation process.
However, if you want to map your POS front end URL to another URL like pos.example.com instead www.example.com:3001 then you may request your server provider to provide you mapping of URLs accordingly.
Step 1: Open terminal navigate to pos-app folder run below commands
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash
To verify that nvm has been installed, do:
command -v nvm
which should output nvm if the installation was successful. Please note that which nvm will not work, since nvm is a sourced shell function, not an executable binary.
nvm: command not found
or see no feedback from your terminal after you type
command -v nvm
, simply close your current terminal, open a new terminal, and try verifying again.
Note: Step 2:To install a specific version of node
nvm install 14.17.0
To install Yarn
npm install --global yarn
Step 3: Update homepage and proxy in the file pos-app/package.json present in the last
Step 4: Update variables in pos-app/.env
Step 5: In the pos-app folder run the below commands one by one Install the dependencies ⇒
yarn install npm i --save graphql yarn add graphql --dev
Build the pos app ⇒
yarn run build
Run the app ⇒
NODE_ENV=production PORT=3001 nohup yarn start &
Note: don’t close the ssh terminal directly otherwise pos will stop For exiting terminal use Ctrl + D
Step 6: Now open browser and run the url according to your domain http://your-domain.com:3001
If everything worked properly you will get pos login page
If your port number is already running something you can close it by running below command, replace with your actual port number in below
kill -9 $(lsof -t -i:port number)
The Point of Sale panel should be installed at the port. This POS panel is used by the sales agent in the store. Following functionalities are available to the agent with the panel:
Selecting a Customer
To create an order in the POS agent panel, a sales agent should specify the customer first.
If the customer account is already in the Magento system, the sales agent can directly select the customer from the dropdown.
Adding a New Customer to the System
With the extension, sales agents can easily add customers to the system if they are not registered yet. In such a case, it is enough to specify just basic customer info like name, phone, and email. To add a new customer, the sales agent should click the Add Customer button on the POS panel and then fill in all the necessary info in the popup window.
After filling in and submitting the required details, the customer account is created in the Magento admin panel as well and the new customer can be selected for an order by the sales agent.
Also, the retail store managers can add a custom product if it is for some reason unavailable in the system. To do this, the sales agent should click the Add Custom Product button in the POS panel and then fill in all the necessary product details (like product name, SKU, price, weight, quantity & EAN) in the popup window.
By clicking on Add Product, the product will be added to the system and becomes available for adding to the cart.
Inventory Management functionality of the POS solution provides the store agents with the ease to manage inventory efficiently.
POS Inventory management key features are the following:
When the sales agent needs to update the stock of any product he should navigate to the top left section (side panel) and click on Add Inventory.
In the popup window that appears, the store agent can fill in the product SKU or EAN number and hit the Get Product Details button. Then, the agent can update the product quantity.
After updating the product quantity and clicking the Update button, the inventory information will be updated in the system.
Magento 2 Point of Sale Solution provides sales agents with a separate panel for Order Management. Thus they can track the orders placed by them via the POS admin panel.
After successful login, the sales agent gets redirected to the POS home screen.
Adding the Product to Cart
A sales agent can add the product to the cart via the following methods:
As per the physical store address location set by the admin, the applicable Tax Rate is automatically calculated, as it is set in the Magento admin panel.
If the customer has a discount coupon, the sales agent can add the coupon code to the order.
After adding the products to the cart and applying a coupon, the agent can proceed to the checkout phase.
Here sales agent can select the payment method: payment by Cash or by Card.
After the sales agent confirms the order, it becomes visible in the POS Order Management panel and also in the Magento admin panel.
For each placed order, a sales agent can create a refund. To do this, the agent should click the Create Refund button on the right top.
In the window that opens, the sales agent should enter the ID of the order for which the refund should be generated. Then, after hitting the Get Order Details button, the agent can see the order information, and here a refund can be created.
The refund can be created either for all items from the order or just for a part of them.
The extension provides you with separate reports for orders, products, and credit memos associated with sales agents (for the orders, products, and credit memos created via POS panel). This way, you can conveniently analyze the performance of physical stores.
To view the POS Orders report, please navigate to POS → Reports → Orders.
To view the POS Products report, please navigate to POS → Reports → Products.
To view the POS CreditMemos report, please navigate to POS → Reports → CreditMemos.
Find out how to install the Point of Sale extension for Magento 2 via Composer.