Odoo Point of Sale - dealwallet1/tsssinfotech_docs GitHub Wiki

IOT Configuration

IoT System Connection for Odoo POS

To connect your Point of Sale (POS) system with an Internet of Things (IoT) setup in Odoo, follow the steps outlined below:

1. Pre-requisites

  • Ensure the Point of Sale and Internet of Things (IoT) apps are installed on your Odoo database.

2. IoT System Setup

  • Option A: Set up an IoT Box.

  • Option B: Use a Windows virtual IoT environment.

3. Connecting Peripheral Devices

Printer

  • Connect a supported receipt printer to a USB port or network.

  • Power it on.

  • Refer to the "Orders printing" section in Odoo documentation.

Cash Drawer

  • Connect the drawer to the printer using an RJ25 cable.

Barcode Scanner

  • Must end barcodes with an ENTER character (keycode 28).

  • This is usually the default setting.

Scale

  • Connect the scale and ensure it is powered on.

  • Refer to "Connect a scale" in Odoo documentation.

Customer Display

  • Connect a screen to the IoT box.

  • This screen will show the POS order to customers.

  • See "Connect a screen" for more information.

Payment Terminal

  • Connection steps vary by terminal type.

  • Refer to the specific terminal’s documentation.

4. Integrate IoT System with Odoo POS

  1. Go to POS > Settings.

  2. Select your POS or click the vertical ellipsis (⋮) and choose Edit.

  3. Scroll to the Connected Devices section.

  4. Enable IoT Box.

  5. Select the connected devices you want to use.

  6. Click Save.

5. Device Monitoring

  • Click IoT Devices to view all connected devices.

  • Each device card shows its connection status.

  • Click on a device card for more configuration options.

6. ePOS Printers

ePOS printers are designed to work seamlessly with POS systems and allow for direct ticket printing from the POS.

Configuration

To configure an ePOS printer in Odoo:

  1. Access the POS Settings.

  2. Activate the ePOS Printer feature.

  3. Enter the IP address of the ePOS printer in the provided field.

Note: When connected to a network, the printer will automatically print a ticket displaying its IP address.

Directly Supported ePOS Printers

These printers are directly compatible with Odoo without requiring an IoT system:

  • Epson TM-m30 i/ii/iii (Wi-Fi/Ethernet models only; Recommended)

  • Epson TM-H6000IV-DT (Receipt printer only)

  • Epson TM-T70II-DT

  • Epson TM-T88V-DT

  • Epson TM-L90-i

  • Epson TM-T70-i

  • Epson TM-T82II-i

  • Epson TM-T83II-i

  • Epson TM-U220-i

  • Epson TM-m10

  • Epson TM-P20 (Wi-Fi model)

  • Epson TM-P60II (Receipt: Wi-Fi model)

  • Epson TM-P60II (Peeler: Wi-Fi model)

  • Epson TM-P80 (Wi-Fi model)

ePOS Printers Requiring IoT System

These printers require an IoT system due to incompatible ePOS software:

  • Epson TM-T20 family

  • Epson TM-T88 family

  • Epson TM-U220 family

Important Notes:

  • Epson printers using Wi-Fi/Ethernet with the EPOS SDK Javascript protocol are directly compatible with Odoo.

  • Thermal printers using ESC/POS protocol work with Odoo through an IoT system.

  • USB-only Epson printers need the IoT system.

  • Bluetooth-connected Epson printers are not supported.

7. Secure Connection (HTTPS)

If Direct Devices is enabled in the POS settings (such as when using an ePOS printer), Odoo defaults to the HTTP protocol.

To enforce a secure connection (HTTPS), follow these steps:

  1. Activate Developer Mode.

  2. Go to Settings > Technical > Parameters > System Parameters.

  3. Click Create to add a new parameter.

  4. Enter the following:

Key: point_of_sale.enforce_https

Value: True

  1. Click Save.

8. Self-Signed Certificates for ePOS Printers

Some ePOS printers that work without an IoT box may still require HTTPS for a secure browser-to-printer connection. Attempting to connect via HTTPS typically results in a browser warning.

Warning: The secure connection is lost after closing the browser window. This method is temporary and should be used only as a workaround or setup step.

Long-Term Solution: Generate a Self-Signed Certificate

  1. Navigate to the ePOS printer’s IP address (e.g., https://192.168.1.25).

  2. Force the connection in your browser (e.g., click Advanced > Proceed to [IP address] (unsafe)).

  3. Log in using:

  • ID: epson
  • Password: Printer serial number
  1. Go to Authentication > Certificate List and click Create.

  2. Set the Common Name to the printer's IP if not auto-filled.

  3. Set a Validity Period and click Create.

  4. Restart the printer manually or click Reset.

  5. Reload the page and go to Security > SSL/TLS, ensuring Selfsigned Certificate is selected under Server Certificate.

Important: Only generate one certificate. Generating another will invalidate the previous one for all connected devices.

Export and Import the Certificate

To allow your browser to trust the certificate:

  • Export the certificate from the printer's interface.

  • Import it into your operating system or browser's certificate store.

For instructions specific to your OS or browser, search:

  • export SSL certificate [your OS/browser]
  • import SSL certificate root authority [your OS/browser]

Verify Connection Security

Open https://[printer IP] again. If successful, you won’t see a warning and a padlock icon will appear in the address bar, confirming a secure connection.

Multi-Employee Management

Odoo POS supports Log in with Employees, enabling multiple users to log in and manage POS sessions.

Configuration

  1. Go to POS Settings > Interface section.

  2. Enable Log in with Employees.

  3. Configure access:

  • Basic rights: Add employees with standard POS access.

  • Advanced rights: Add employees with extended permissions.

Note:

  • Leaving Basic rights empty allows all employees to log in.
  • Leaving Advanced rights empty grants advanced access to Odoo users only.

Access Rights

  • Basic Rights:
  • Open/lock POS sessions.
  • Cash in/out operations.
  • Toggle product/category images.
  • Process sales, refunds, and order handling.
  • Set customers and view order history.
  • Apply pricelists, discounts, change prices, and switch fiscal positions.

Usage Guidelines

  • Logging In:
  • Employees log in via badge scan, name selection, or PIN code.
  • To switch users during a session, click the employee name and choose another.

Tip: No scanner? Click the barcode icon to use your webcam.

  • Badge Login:

  • Go to Employees > Settings tab.

  • Under Attendance/Point of Sale/Manufacturing:

  • Enter a Badge ID manually or click Generate.
  • Click Print Badge for a barcode version.

PIN Code:

  • Go to the employee profile and set a PIN Code under the same category for secure logins.

Lock the session using the lock icon to allow a different user to log in.

Receipts and Invoices

Receipts

To set up and customize receipts:

  1. Go to Point of Sale > Configuration > Point of Sale.

  2. Select a POS and scroll down to the Bills & Receipts section.

  3. Enable Header & Footer and fill in both fields.

  4. Enable Automatic Receipt Printing to print automatically after payment.

To reprint a receipt:

  • From the POS interface, click Orders.

  • Use the dropdown to filter by Paid.

  • Select the order and click Print Receipt.

Note: Use the search bar to filter by receipt number, date, or customer.

Invoices

Invoices can be issued for registered customers during payment.

Note: Creating a POS invoice also posts it to the accounting journal configured.

To configure journals:

  • Go to POS settings and scroll to the Accounting section.

  • Set the default journals for orders and invoices.

To invoice a customer:

  • Click Invoice below the customer’s name during payment.

  • Select a payment method and click Validate.

Note: A customer must be selected to issue an invoice.

To retrieve invoices:

  1. Go to Point of Sale > Orders > Orders.

  2. Click an order and then click the Invoice smart button.

Note: Filter invoiced orders using Filters > Invoiced.

QR Code for Invoices

Customers can scan a QR code on receipts to request an invoice:

  • Scanning the code opens a form to fill billing details.

  • The invoice is generated and available for download.

  • The order’s status in Odoo changes to Invoiced.

To enable this feature:

  1. Go to Point of Sale > Configuration > Settings.

  2. Select the POS, scroll to Bills & Receipts.

  3. Enable Use QR code on ticket.

Preparation Display

The preparation display feature allows you to manage POS orders that require preparation:

  • Retail: Notifies staff to prepare purchased items post-payment.

  • Restaurants: Sends orders directly to kitchen or bar for preparation.

Configuration

To enable this feature:

  1. Go to POS > Settings.

  2. Scroll to the Preparation section.

  3. Enable Preparation Display.

To set up a preparation display:

  1. Go to Point of Sale > Orders > Preparation Display.

  2. Click New.

  3. Enter a Name (e.g., Main Kitchen).

  4. Configure:

  • Point of Sale: Assign the POS that sends orders.

  • Product Categories: Filter products sent to the display.

  • Stages: Add processing steps with optional colors and alert timers.

Note: Use the vertical ellipsis (⋮) on a display card to edit an existing configuration.

Practical Application

Visit Point of Sale > Orders > Preparation Display to view all displays. Each card shows:

  • Defined stages

  • Orders in progress

  • Average preparation time

Tip: Use the Kitchen Display app icon on the Odoo Dashboard for quicker access.

Using the Preparation Display

Click Preparation Screen to open the display interface, which includes:

  • Stages and order counts: Track status like "To prepare", "Ready", "Completed"

  • Product categories: View active items grouped by type

  • Order cards: Summarize orders with:

  • Table/order numbers
  • Current status (color coded)
  • Waiting time indicator (turns red if delayed)

Click items to mark them done, or the whole card to move to the next stage. Use Recall to revert a mistakenly completed order.

Customer Display

Click Order Status Screen to view the customer-facing interface. This shows:

  • Orders Ready for pickup

  • Orders In progress

Customers can refer to their receipt’s order number for tracking.

Self-ordering

The self-ordering feature allows customers to browse your menu or product catalog, place an order, and complete payment using their mobile device or a self-ordering kiosk.

Configuration

Feature activation

  1. Access the POS settings.

  2. Scroll down to the Mobile self-order & Kiosk section.

  3. Choose a Self Ordering type:

  • QR menu
  • Kiosk
  • QR menu + Ordering

Click Print QR Codes to download a PDF with QR codes. Click Download QR Codes for a ZIP file with the QR codes.

Note: In restaurants, this generates one QR code per table. In shops, it generates one general QR code.

Tip: To customize QR codes, scan one to get its URL, then use a third-party QR code generator.

Additional Settings

Home Buttons

  1. Click Home buttons in POS settings.

  2. Click New to add a button.

  3. Set the Label.

  4. Enter a full URL (e.g., https://example.com/promo) or "/products" to link to your product catalog.

  5. Assign the button to specific Points of Sale (optional).

  6. Choose a Style from the dropdown.

Service Location and Payment Options

  • Configure if the customer must assign a table.

  • Enable online payment methods (e.g., cards, wallets).

Language

  • Allow customers to switch the interface language.

Splash Screens

  • Add a visual splash screen when the interface loads.

Eat in / Take out

  • Let customers select their dining preference.

Preview

Click Preview Web Interface under the Self Ordering settings to test the customer-facing interface before going live.

Usage Guidelines

QR Menu

  • Customers scan the QR code to access the menu and place an order.

  • They assign a table and complete payment.

Kiosk

  • Customers use a mounted tablet or kiosk to view the catalog and place an order.

Important: A POS session must be open for self-orders to be processed.

Once an order is submitted:

  • It appears in the Preparation Display (if enabled).

  • It is listed in the regular POS order view.

Product Combos

The Product Combos feature allows users to define and manage combination options for a single product.

  • In restaurants, this enables multiple-choice menus where customers select from various options for sides, drinks, or desserts with a main dish.

  • In retail, you can create a product set that includes multiple products for the customer to choose from.

Configuration

Step 1: Create combo choices

  1. Go to Point of Sale ‣ Products ‣ Product Combos and click New.

  2. Name your combo.

  3. Add products by clicking Add a line.

  4. Optionally, define an Extra Price for each choice.

Note: The Original Price of each product is shown for reference.

Step 2: Create the combo product

  1. Go to Point of Sale ‣ Products ‣ Products and click New.

  2. Set the Product Type to Combo.

  3. Fill in the General Information tab.

Note: The combo product has a fixed price, not influenced by the number or base prices of choices. Only defined extra prices affect it.

  1. Open the Combo Choices tab and click Add a line to attach previously created combos.

  2. You can also create a new combo from this popup window.

Practical Application

  • Open a POS session.

  • Select the combo product.

  • Choose options as prompted and click Add to order.

  • Extra prices (if any) are shown under the selected options.

Shop Features

1.Sales Orders

When working in retail, you might need to order products directly from your Point of Sale. Fortunately, Odoo POS is fully integrated with Odoo Sales, allowing you to create a sales order and pay for it directly from the POS interface.

Select a Sales Order

  1. From the POS interface, open a session.

  2. Click Quotations/Orders to access the full list of quotations and sales orders from the Sales app.

Note: To quickly find a specific sales order, filter by customer or reference. Setting the customer before clicking Quotations/Orders also narrows the list.

Apply a Down Payment or Settle the Order

  1. From the list, select a sales order.

  2. Choose one of the following options:

  • Apply a Down Payment: Enter the percentage the customer wishes to pay. Confirm and proceed.

  • Settle the Order: Pay the full balance immediately.

Note: When settling a sales order, any down payment is automatically deducted from the total.

2.Barcodes

Using a barcode scanner to process point-of-sale orders improves your efficiency in providing quicker customer service. Barcode scanners can be used both to scan products or to log employees into a POS session.

Configuration

To use a barcode scanner, you must enable the feature in the Inventory app:

  1. Go to Inventory ‣ Configuration ‣ Settings.

  2. In the Barcode section, check Barcode Scanner.

  3. Click Save.

Activate Barcode Scanners

Once enabled in Inventory, you can use the barcode feature in POS with products that have a barcode number assigned.

Assign Barcodes

  • To Products:
  • Go to Point of Sale ‣ Products ‣ Products.
  • Open a product form and add a barcode in the Barcode field under the General Information tab.
  • To Employees:
  • Go to the Employees app.
  • Open an employee form and set an identification number and PIN Code in the HR Settings tab.

Use Barcodes

  • Scan Products:
  • Use the barcode scanner to scan a product and add it directly to the POS cart.
  • To change quantity, scan the product multiple times or use the Qty option.
  • You may also enter the barcode manually into the search bar to find and select the product.
  • Log Employees:

  • Use barcodes to log employees into a POS session.

  • Restrict POS access so employees must log in using a barcode scanner.

3.Serial Numbers and Lots

Tracking products using serial numbers and lots allows you to monitor their movements and identify their last known location in your inventory.

Enable Traceability

  1. Go to Point of Sale ‣ Products ‣ Products.

  2. Select a product.

  3. In the Inventory tab, check either Tracking By Unique Serial Number or Tracking By Lots.

Serial Number and Lot Importation

  • If a sales order or quotation contains tracked products, you can import serial/lot numbers directly into POS.

  • When prompted, confirm to load the Lots or Serial Numbers linked to the order.

  • The imported tracking numbers appear below each product. You can modify them by clicking the list-view button.

Create Serial and Lot Numbers

  • When a tracked product is added to the POS cart, a popup appears for entering or scanning the serial/lot number.

  • Click Enter after each number to add multiple entries.

If you change the quantity via the numpad, the list-view icon turns red. Click it to enter the missing serial/lot details.

Lot & Serial Number(s) are required for tracked products but not mandatory for completing a sale. You may finalize the transaction without assigning them.

4.Ship Later

The Ship Later feature allows you to sell products and schedule delivery at a later date. This is useful when a product is out of stock, is too large to carry, or when the customer requests later shipment.

Configuration

  1. Go to POS > Settings.

  2. Scroll down to the Inventory section.

  3. Enable Allow Ship Later.

  4. Configure the following:

  • Warehouse: Choose the warehouse from which products will be shipped.

  • Specific Route (optional): Define a custom route or leave blank to use the default.

  • Shipping Policy: Choose between:

  • As soon as possible (partial delivery)
  • When all products are ready (deliver all at once)

Practical Application

  1. Start a POS session and make a sale.

  2. On the payment screen, select a customer.

  3. Click Ship Later.

  4. In the popup, set a shipping date and click Confirm.

The system automatically creates a delivery order from the selected warehouse to the customer’s shipping address.

Note: The customer must have an address recorded in their profile.

5.Customer Display

The customer display feature provides customers with real-time checkout updates on a secondary display.

Configuration

Depending on your POS setup, the feature can be displayed locally on a secondary screen, remotely on another device, or on another monitor connected via IoT Box.

  • Go to POS > Settings.

  • Scroll down to the Connected Devices section.

  • Tick the Customer Display checkbox.

Local Display

  • Connect a second screen to your POS via HDMI or USB-C.

  • Open a POS session.

  • Click the hamburger menu icon.

  • Click the customer screen icon to open a new window to drag to the second screen.

For POS terminals using the Odoo Android app with dual-screen support:

  • Activate the Point of Sale Mobile module.

  • Use the customer screen icon to display the customer view.

Remote Display

  • Access the POS interface from another device.

  • Click the vertical ellipsis (⋮) on a POS card.

  • Select Customer Display.

The two devices do not need to be on the same network.

IoT Display

  • Connect an IoT Box to your database.

  • Connect a monitor to the IoT Box.

  • In POS > Settings, enable IoT Box and select the monitor in the Customer Display field.

Both the IoT Box and the POS device must be on the same local network.

Restaurant Features

1.Floors and Tables

The Floor plan view enables you to manage restaurant floors and tables and monitor real-time status (e.g., occupied, booked, order status).

From Backend

  • Go to POS > Configuration > Floor Plans.

  • Create or edit a floor.

  • Add tables with number, shape, size, and appointment resource.

From Frontend

  • Open a POS session > Click hamburger menu > Edit Plan.

  • Add/edit floors and tables using tool icons.

  • Save changes using the floppy disk icon.

Table Transfer

  • Click Actions > Transfer/Merge to switch or combine table orders.

2.Orders Printing

  • Enable Kitchen Printers in POS settings.

  • Add and configure printers via Printers link.

  • Choose between IoT or Epson IP connection.

  • Assign product categories to be printed.

  • In session, click Order to send to printer.

  • Products ready for print are shown in green.

3.Bills

  • Enable Early Receipt Printing and Allow Bill Splitting in POS settings.

  • Click Bill > Print to generate a provisional bill.

  • Use Split to divide items and pay separately.

4.Tips

  • Enable Tips in POS settings under the Payment section.

  • Assign a Tip Product.

  • Tips can be added on screen, selected from tip product, or managed via Adyen terminals.

  • Tips after payment can be enabled for North American setups.

Pricing Features

1.Discounts

  • Manual Product Discounts: Use the Disc button on the POS interface to apply a discount to a selected product.

  • Global Order Discounts:

  • Enable Global Discounts in POS settings.
  • A new Discount button appears in the POS interface.
  • Apply a percentage discount to the entire order at checkout.
  • Time-Limited Discounts (Pricelists):
  • Enable Pricelists in POS settings.
  • Create pricelists under POS > Products > Pricelists.
  • Set conditions like specific dates, product rules, or customer segments.
  • In POS, select a pricelist using the Pricelist button to apply promotional pricing automatically.

2.Discount Tags (Barcode Scanner)

To apply discounts using barcodes, use discount tags. This is helpful for time-sensitive discounts, such as for products near expiration.

Requirements

  • A barcode scanner is required.

Barcode Nomenclature

  • Go to your POS interface and locate the Default Nomenclature under settings.

  • Discount tags start with a prefix that designates the discount operation:

  • For example: A 50% discount might start with 2250 followed by the original product barcode.

Steps to Use

  1. Scan the product barcode (e.g., lemon).

  2. Scan the discount tag barcode with the prefixed discount code.

  3. The discount is applied automatically to the scanned product.

This enables quick discounting during checkout with minimal manual entry.

3.Loyalty Programs

Encourage repeat purchases by offering points and rewards to your customers with a built-in Loyalty Program in Odoo POS.

Activate Loyalty Program

  • Navigate to Point of Sale > Configuration > Point of Sale.

  • Select the POS session you want to configure.

  • Under the Pricing Features section, enable Loyalty Program.

  • Click on **Create and edit… **to configure the program.

Configure the Loyalty Program

  • Program Name: Assign a name like “Gold Points” or “Summer Rewards”.

  • Points per Currency Unit: Define how many points are earned per ₹ or $ spent (e.g., 1 point per ₹100).

  • Points per Product: Award points per product sold (optional).

  • Points Rounding: Set how to round off accumulated points.

  • Minimum Amount to Get Points: Define a threshold if applicable.

Add Rewards Click Add a Line under the Rewards section to define how customers can redeem points:

  • Reward Name: Example: "₹50 Discount" or "Free Coffee".

  • Reward Type: Choose from:

  • Discount: Apply a fixed or percentage discount.
  • Gift: Offer a specific product for free.
  • Minimum Points: The number of points required to claim the reward.

  • Discount/Product: Define the value or select the gift product.

Add Rules (Optional) Rules define conditions for when points can be earned:

  • Example: Apply only for specific products or categories.

  • You can restrict based on quantity, date, or product.

Use Loyalty in POS

  • Start a POS session.

  • Add a customer to the order (mandatory to track points).

  • The system will display the points earned and total available.

  • When the customer has enough points, click the Rewards button.

  • Choose a reward to apply. The cart and payment total update instantly.

Points Application and History

  • Points earned are automatically added to the customer’s record.

  • You can view loyalty point history in the Sales > Customers > [Customer Profile] under a dedicated smart button or tab.

4.Pricelists

Pricelists allow dynamic pricing based on quantity, dates, customer groups, or discount logic. They are ideal for promotions, loyalty-based pricing, or business-specific discount rules.

Enable Pricelists

  1. Go to Point of Sale > Configuration > Settings.

  2. Under the Pricing section, enable Flexible Pricelists.

  3. Choose one of the two modes:

  • Multiple prices per product: Set different fixed prices for each product.
  • Advanced price rules (discounts, formulas): Use complex rules, formulas, and discounts.
  1. Click Save.

Note: This configuration affects the entire system — including Sales and eCommerce apps.

Create Pricelists

  1. Navigate to Point of Sale > Products > Pricelists.

  2. Click New to create a new pricelist.

Define Pricelist Rules If using "Multiple Prices per Product":

  1. Under the Price Rules tab, click Add a Line.

  2. Choose:

  • Product (or Variant)
  • Minimum Quantity (e.g., offer only if ≥ 5 units)
  • Start Date and End Date (optional)
  • Fixed Price
  1. Click Save.

If using "Advanced Price Rules (Formulas)":

  1. Under Price Rules, click Add a Line.

  2. In the popup:

  • Choose Computation Method:
  • Fixed Price – enter directly.
  • Discount – enter percentage (positive for discount, negative for markup).
  • Formula – configure based on cost, price, or other pricelist.
  1. If using Formula, configure:
  • Based on: Sales Price, Cost, or Other Pricelist.
  • Discount %
  • Extra Fee: Add or subtract fixed amount.
  • Rounding Method (e.g., 1.00 and -0.01 to end price with .99)
  • Profit Margin Min/Max
  1. Specify product scope:
  • All Products
  • Product Category
  • Single Product or Variant
  1. Add conditions:
  • Min. Quantity
  • Validity Dates
  1. Click Save & Close.

Assign Pricelists to POS

  1. Go to Point of Sale > Configuration > Point of Sale.

  2. Choose your POS and scroll to Pricing.

  3. Add desired pricelists under Available Pricelists.

  4. Set a Default Pricelist.

  5. Click Save.

Now your POS session will show the Pricelists button if multiple pricelists are enabled.

Use Pricelists in POS Session

  1. Start a POS session.

  2. Click the Pricelist button at the top of the screen.

  3. Select a desired pricelist.

  4. The prices in the cart will update automatically according to the selected rule.

If the selected pricelist conditions (like minimum quantity or validity period) are not met, the standard price is shown.

Customer-Specific Pricelists

  1. Go to Sales > Customers, open a customer record.

  2. Switch to Sales & Purchase tab.

  3. Set their default pricelist in the Pricelist field.

  4. Click Save.

Now, when this customer is selected in a POS session, the assigned pricelist is applied automatically.

5.Flexible Taxes (Fiscal Positions)

Fiscal Positions in Odoo allow you to map taxes and accounts automatically based on the customer’s location, type (B2B/B2C), or tax eligibility. This ensures tax compliance across different jurisdictions and scenarios.

Enable Flexible Taxes

  1. Navigate to Point of Sale > Configuration > Settings.

  2. Scroll down to the Accounting section.

  3. Enable the Flexible Taxes checkbox.

  4. In the Default Fiscal Position field:

  • Select a fiscal position that should be used by default for this POS.
  1. In the Allowed Fiscal Positions field:
  • Add additional fiscal positions that staff can manually select in the session.
  1. Click Save.

If no fiscal position is set, taxes defined in the product’s tax fields are used by default.

Create Fiscal Positions If you need to define new tax mapping rules:

  1. Go to Accounting > Configuration > Fiscal Positions.

  2. Click Create.

  3. Set the Name of the fiscal position (e.g., “GST Exempt”, “Out of State B2B”).

  4. Under Tax Mapping, click Add a line:

  • Choose a Default Tax (from the product).
  • Choose the Replacement Tax (to apply if this fiscal position is selected).
  1. Optionally, under Account Mapping, map source accounts to alternative destination accounts if required.

  2. Click Save.

Preconfigured fiscal positions may already be available depending on your localization package.

Use Fiscal Positions in POS Session

  1. Launch a POS Session.

  2. Add a customer (recommended for customer-specific fiscal rules).

  3. Click the Tax button (near the book icon) to open the fiscal position selection panel.

  4. Select the appropriate Fiscal Position from the list.

  5. The taxes for all order line items will be instantly updated as per the mappings defined in the selected fiscal position.

If a Default Fiscal Position is set in POS settings, it is automatically applied and displayed on the Tax button.

Assign Fiscal Positions to Customers (Optional) For automatic tax mapping based on customer:

  1. Go to Sales > Customers and open a customer form.

  2. On the Sales & Purchase tab:

  • Set the Fiscal Position field.
  1. Click Save.

When this customer is selected in POS, the fiscal position is applied automatically (unless manually overridden).

6.Cash Rounding

Cash rounding is used in countries where the smallest available coin or currency unit (e.g., 0.05) is larger than the smallest accounting unit (e.g., 0.01). This feature allows Odoo to automatically round total sales amounts to match physical cash payments.

Enable Cash Rounding Globally

  1. Navigate to Point of Sale > Configuration > Settings.

  2. Scroll down to the Accounting section.

  3. Tick the Cash Rounding checkbox.

  4. Click Save.

This enables cash rounding functionality for the system. You’ll still need to configure it per POS.

Configure Cash Rounding in POS

  1. Go to Point of Sale > Configuration > Point of Sale.

  2. Select the POS you want to configure.

  3. Scroll down to the Accounting section.

  4. Enable the Cash Rounding option.

Define the Rounding Method

  1. In the Rounding Method field, click Create and Edit… from the dropdown.

  2. Fill in the form:

  • Name: e.g., “Round to nearest 0.05”
  • Rounding Precision: e.g., 0.05 (for 5 cents)
  • Rounding Strategy: Only Add a rounding line is supported by POS.
  • Profit Account: Select an account to record rounding gains.
  • Loss Account: Select an account to record rounding losses.
  1. Click Save & Close.

Example: If a total is ₹100.02, and rounding is to nearest ₹0.05, it will round down to ₹100.00.

Save POS Configuration

  1. Back in your POS configuration screen, make sure the new rounding method is selected.

  2. Click Save.

Usage in POS

  1. When a customer pays with cash, Odoo automatically rounds the total bill amount based on the rounding method.

  2. The POS interface adds a “Rounding” line item to reflect the rounding adjustment

7.Electronic Shelf Labels (Pricer Integration)

Electronic shelf labels (ESLs) allow you to remotely display and update real-time product information (like name, price, currency, and barcode) directly on store shelves using Pricer tags, eliminating the need for printed labels.

Prepare Your Pricer Account

  1. Contact Pricer to set up an account.

  2. Create your stores in the Pricer dashboard — one per physical store.

  3. Link transceivers to each store for communication between the database and the ESLs.

  4. Create variables in Pricer to sync with Odoo:

  • itemId → Product internal ID
  • itemName → Product name
  • price → Selling price with taxes
  • presentation → Template name used (e.g., NORMAL)
  • currency → e.g., USD, EUR
  • barcode → Product’s barcode

These variable names must match exactly between Pricer and Odoo.

  1. Create a Template in Pricer named NORMAL for displaying product information.

  2. Ensure your Pricer account has API access enabled to allow syncing with Odoo.

Install the Odoo Pricer Module

  1. Go to Apps in Odoo.

  2. Search for POS Pricer (pos_pricer) and click Install.

Configure Pricer Stores in Odoo

  1. Navigate to Point of Sale > Configuration > Pricer Stores.

  2. Click New and fill in:

  • Store Name: Any name you prefer.
  • Pricer Tenant Name: Provided by Pricer (e.g., companyname-IN).
  • Pricer Login and Password: Pricer account credentials.
  • Pricer Store ID: As configured in your Pricer account.
  1. Save.

Tag update status and last update time will be tracked automatically.

Link Pricer Tags to Products

  1. Go to Point of Sale > Products > Products.

  2. Select or create a product.

  3. Once saved, go to the Sales tab.

  4. Scroll to the Pricer section:

  • Select the Pricer Store.
  • Add Pricer Tag ID (from the tag’s barcode or label).
  1. Save.

Use a barcode scanner to quickly input Pricer Tag IDs (Format: 1 letter + 16 digits).

Test and Send Tag Data

Data is automatically sent to Pricer every 12 hours if changes are made.

To manually sync:

  1. Activate Developer Mode.

  2. Go to Point of Sale > Configuration > Pricer Store.

  3. Select the store(s).

  4. Choose:

  • Update Tags: Sync only changed tags.
  • Update All Tags: Force update of all tags.

Successful updates will display: “Update successfully sent to Pricer.”

If failed, Odoo still marks the product as updated—use Update All Tags to retry.

Configure Discount Labels To display PROMO tags (with original + discounted price):

  1. Go to Point of Sale > Products > Product Variants.

  2. Select the desired variant.

  3. Under General Information, set a Pricer Sales Pricelist.

  • This applies a discount for display only.
  • You’ll see the On Sale Price appear automatically.
  1. Save.

Payment Methods

QR Code Payments

QR code payments allow customers to scan a code from the POS screen using their mobile banking apps to initiate an instant or scheduled bank transfer. Odoo POS supports a wide range of country-specific QR formats for accurate compliance.

Enable QR Code Feature

  1. Go to Accounting > Configuration > Settings.

  2. Scroll to Fiscal Localization and:

  • Activate or upgrade your country’s localization package (e.g., Brazil, Switzerland, Singapore, etc.).
  1. Scroll to Customer Payments and enable the QR codes option.

  2. Click Save.

Each country uses a specific QR standard. See supported QR types below.

Country-Specific QR Modules

QR Type | Country | Technical Module | Notes -- | -- | -- | -- Pix | Brazil | l10n_br | Brazilian banking standard QR FPS | Hong Kong | l10n_hk | Hong Kong FPS QR QRIS | Indonesia | l10n_id | Indonesia's universal QR PayNow | Singapore | l10n_sg | Singapore PayNow QR QR-bill | Switzerland | l10n_ch | Swiss QR invoice format PromptPay | Thailand | l10n_th | Thailand's PromptPay QR VietQR | Vietnam | l10n_vn | QR code for local banking in Vietnam EPC/SEPA QR | Eurozone (SEPA) | account_qr_code_sepa | European standard SEPA QR payment > Install the appropriate module via Apps > Update Apps List > Install [Module Name] if not already installed.

Create a QR Code Payment Method in POS

  1. Navigate to Point of Sale > Configuration > Payment Methods.

  2. Click New.

  3. Enter a name like "QR Bank Payment".

  4. Under Journal, select a Bank-type journal.

  • Ensure this journal has a valid bank account configured.
  1. Under Integration:
  • Choose Bank App (QR Code).

  • Select the appropriate QR Code Format:

  • SEPA Credit Transfer QR for SEPA countries.
  • EMV Merchant-Presented QR-code for others (e.g., PromptPay, QRIS, etc.).
  1. Click Save.

At least one valid bank account must be linked for QR payments to work.

Assign Payment Method to POS

  1. Go to Point of Sale > Configuration > Point of Sale.

  2. Open your POS configuration.

  3. Scroll to the Payments section.

  4. In Payment Methods, add the QR Code method you created earlier.

  5. Click Save.

Register Payments Using QR Code (POS Frontend)

  1. Open a POS session.

  2. Create an order and proceed to Payment.

  3. Select the QR Code Payment method.

  4. A QR code will automatically generate on screen.

Customers scan this QR with their mobile banking app to process the payment.

  1. Wait for the customer to complete the transfer.

  2. Click Confirm Payment to finalize the sale.

Important: Odoo does not validate that the bank transfer has occurred. The cashier must manually confirm the payment has been received before completing the order.

Payment Terminals

Razorpay Payment Terminal Integration Razorpay terminals allow seamless card and UPI payments at the point of sale. The integration helps streamline checkout and payment processing in physical stores using Odoo POS.

Get Razorpay Credentials Before configuring Odoo, you need the following from your Razorpay Dashboard:

  • Razorpay API Key

  • Razorpay Username

  • Device Serial Number

  • Printed under the terminal or found in Razorpay’s dashboard.

You must have a Razorpay Merchant Account to access these credentials.

Install the Razorpay POS Module

  1. Go to Apps in Odoo.

  2. Search for POS Razorpay.

  3. Click Install to activate the POS Razorpay module.

This enables Razorpay support in the payment terminal dropdown list.

Create Razorpay Payment Method

  1. Navigate to Point of Sale > Configuration > Payment Methods.

  2. Click New to create a payment method.

  3. Fill in the details:

  • Name: e.g., Razorpay Terminal

  • Journal Type: Bank

  • Use a Payment Terminal: Select Razorpay

  • Razorpay Username: Paste your Razorpay username

  • Razorpay Device Serial No: Enter the serial number of the terminal

  • Razorpay API Key: Paste your Razorpay API key

  • Razorpay Allowed Payment Modes:

  • Choose from: card, upi, netbanking, etc. (as per your setup)
  • (Optional) Enable Razorpay Test Mode for sandbox testing
  1. Click Save.

Link Razorpay to POS

  1. Go to Point of Sale > Configuration > Point of Sale.

  2. Select your POS interface or create one.

  3. Scroll to the Payments section.

  4. Add the newly created Razorpay Payment Method.

  5. Click Save.

Ensure the terminal has at least 10% battery before attempting any payment.

Using Razorpay at Checkout

  1. Start a POS session and create a sale.

  2. At the Payment screen, select Razorpay Terminal.

  3. The terminal will display the payable amount and await customer action.

  4. The customer can pay via:

  • Card (tap/swipe/insert)
  • UPI
  • QR code (if supported by Razorpay device)
  1. Once payment is successful, the POS will automatically confirm it.

  2. Click Validate to complete the order.

Marketing Features

Use your POS system to engage with customers directly by sending them promotional offers via email or WhatsApp.

Storing Contact Details

  • Email addresses are stored automatically when sending receipts by email.

  • Phone numbers are stored when sending receipts via WhatsApp or SMS.

  • Go to POS > Configuration > Settings > Bills & Receipts.
  • Enable **WhatsApp Enabled **and/or SMS Enabled.

From a POS Order, go to Extra Info > Contact Info tab and click the email or WhatsApp icon to send a message.

Email Marketing

  1. Go to Point of Sale > Orders > Orders.

  2. Select orders.

  3. Click Actions > Send Email.

  4. Fill in the email form and click Send.

Use the vertical ellipsis button to Insert Template or Save as Template for reuse.

  • Fill in the **Mass Mailing Name **to track in the Email Marketing app.

  • If an email is not linked to a customer, a new customer is created automatically.

WhatsApp Marketing

Configuration

  1. Go to the WhatsApp app.

  2. Create a new template.

  3. Set:

  • Applies to: Point of Sale Orders
  • Category: Marketing
  • Phone Field: Mobile or Customer > Phone
  1. Click Submit for Approval.

  2. Once approved, click Allow Multi to generate a server action.

If you change the template after approval, it must be approved again.

Sending WhatsApp Messages

  1. Go to Point of Sale > Orders > Orders.

  2. Select orders.

  3. Click Actions > WhatsApp Message.

  4. Choose the approved marketing template.

  5. Click Send Message.

Note: If no valid template is selected, an error appears with an option to configure templates.

UrbanPiper Integration for Online Food Delivery

Fulfill Prerequisites

  • Get a valid UrbanPiper subscription.

  • Ensure Odoo Enterprise (v18+) is active.

  • Have reseller accounts for delivery platforms.

Obtain UrbanPiper API Credentials

  • Go to POS Settings → Food Delivery Connector.

  • Click Fill this form and follow instructions.

  • Go to UrbanPiper Atlas → Settings → API Access.

  • Copy Username and API Key.

Enable UrbanPiper in POS

  • In POS Settings → Food Delivery Connector:
    • Enable Urban Piper.
    • Enter Username and API Key.
    • Select platforms like Zomato, Swiggy, Uber Eats.
    • Click + Create Store to register a location.

Make Products Available for Delivery

  • Go to POS > Products > Products.

  • For each product:

  • Open product form → POS tab.
  • Fill Available on Food Delivery field.
  • Optionally: set Meal Type, enable Is Recommended, Is Alcoholic.
  • For bulk update:
  • Switch to list view.
  • Use Available on Food Delivery column.

Synchronize with UrbanPiper

  • Go to POS Settings → Food Delivery Connector.

  • Click Sync Menu.

  • Wait for sync confirmation (~2-3 minutes).

Go Live with UrbanPiper Store

  • Go to UrbanPiper Atlas → Locations tab.

  • Select location → Click Request to go Live.

  • In popup:

  • Choose platforms.
  • Enter Platform ID and Platform URL.
  • Click Request to Go Live.

Manage Incoming Orders

  • Orders arrive via notification popup or order icon.

  • Order stages:

  • New → click Accept → status becomes Acknowledged.
  • Ongoing → click Mark as Ready → status becomes Paid.
  • To reject:
  • Click Reject, choose a reason.
  • Swiggy/Deliveroo/JustEat/HungerStation do not allow direct rejection.

Reporting

  1. Go to Point of Sale > Reporting > Orders, or from the POS dashboard, click the vertical ellipsis (⋮), choose Reporting, then Orders.

  2. View statistics in Graph or Pivot format.

  3. Apply filters and grouping options to tailor your reports.

⚠️ **GitHub.com Fallback** ⚠️