[IMP] POS: homepage update

task-4472597
This commit is contained in:
Loredana Perazzo
2025-06-20 15:45:13 +02:00
parent c49be08780
commit ab5b23126f
35 changed files with 389 additions and 326 deletions

View File

@@ -295,7 +295,7 @@ Then, click :guilabel:`Print` to download the PDF file with DEP7 data.
Monthly / Yearly closing receipts
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To print monthly/yearly closing receipts, :ref:`start a session <pos/session-start>` from the **POS
To print monthly/yearly closing receipts, :ref:`start a session <pos/open-register>` from the **POS
dashboard** and click :guilabel:`Open Register` on the related point of sale. Click the
:icon:`oi-view-list` :guilabel:`(list view)` icon in the top-right corner and select
:guilabel:`Montly/Yearly Receipts`.

View File

@@ -723,7 +723,7 @@ Generating an NFC-e
To generate an NFC-e, follow these steps:
#. :ref:`Open the relevant point of sale shop and make a sale <pos/session-start>`.
#. :ref:`Open the relevant point of sale shop and make a sale <pos/open-register>`.
#. Validate the payment to calculate taxes and issue an NFC-e. The valid NFC-e appears on the right
side of the screen.

View File

@@ -1423,7 +1423,7 @@ to handle reversals of the sales entries when invoices are requested as well as
account for the new invoices.
.. seealso::
:doc:`../../sales/point_of_sale/receipts_invoices`
:doc:`../../sales/point_of_sale/pos_invoices`
.. _l10n/mx/pos/global-invoice:

View File

@@ -5,94 +5,254 @@
Point of Sale
=============
With **Odoo Point of Sale**, run your shops and restaurants easily. The app works on any device with
a web browser, even if you are temporarily offline. Product moves are automatically registered in
your stock, you get real-time statistics, and your data is consolidated across all shops.
Odoo **Point of Sale** is designed for managing shops and restaurants. It is web-browser-based,
allowing it to run on any device, and is built to maintain functionality even during temporary
network outages.
Beyond traditional :doc:`stores <point_of_sale/shop>` and :doc:`restaurants
<point_of_sale/restaurant>` settings, Odoo :abbr:`POS (Point of Sale)` also supports a
:doc:`self-ordering <point_of_sale/self_order>` feature, enabling customers to place orders and make
payments using a dedicated kiosk or their own mobile devices.
As with all Odoo applications, Odoo Point of Sale is fully integrated with the entire Odoo
ecosystem. This integration primarily ensures that:
- Product movements are automatically tracked and registered in the :doc:`Inventory
<../inventory_and_mrp/inventory>` application.
- All POS transactions are recorded in the :doc:`Invoicing <../finance/accounting>` or, if
installed, :doc:`Accounting <../finance/accounting>` application.
- :doc:`Sales orders <point_of_sale/shop/sales_order>` created from the :doc:`Sales <sales>` or
:doc:`Website <../websites>` application can be retrieved and settled in Point of Sale.
Odoo :abbr:`POS (Point of Sale)` integrates with all essential point-of-sale hardware, including:
- :doc:`Payment terminals <point_of_sale/payment_methods/terminals>`;
- Cash drawers;
- :doc:`Cash machines <point_of_sale/payment_methods/cash_machines>`;
- :ref:`Weighing scales <pos/scale>`;
- :doc:`Barcode scanners <point_of_sale/shop/barcode>`;
- :ref:`Customer displays <pos/display>`;
- :doc:`Preparation displays <point_of_sale/preparation>`;
- :doc:`Electronic shelf labels <point_of_sale/pricing/electronic_labels>`.
This hardware can be connected directly or through an :doc:`IoT system <../general/iot>`, ensuring a
comprehensive and connected retail environment.
.. seealso::
- `Odoo Tutorials: Point of Sale Tutorials <https://www.odoo.com/slides/point-of-sale-28>`_
- :doc:`IoT Boxes Documentations </applications/general/iot>`
`Odoo Tutorials: Point of Sale tutorials <https://www.odoo.com/slides/point-of-sale-28>`_
.. _pos/session-start:
Configuration
=============
Start a session
===============
.. _pos/create-pos:
Create a POS
------------
To create the initial POS of a database, go to :menuselection:`Point of Sale --> Dashboard` and
choose from one of the POS card to generate a POS preconfigured to suit your business type.
To create additional POS or to create one from scratch, go to :menuselection:`Point of Sale -->
Configuration --> Point of Sales` and select :guilabel:`New`. Then, configure the :ref:`POS settings
<configuration/settings>` to meet the specific business requirements.
.. important::
Ensure each POS has a dedicated :doc:`cash payment method <point_of_sale/payment_methods>`,
associated with a dedicated :ref:`cash journal <accounting/journals/cash>`.
.. _pos/receipts:
Receipts
--------
POS receipts display the following elements:
- The company logo
- The receipt and order number
- The customizable header and footer
- The cashier and customer names
- The complete order, discounts, prices, payment methods
- Optionally, a QR code or URL link for customer to generate invoices
To set up POS receipts, navigate to the :ref:`POS settings <configuration/settings>` and scroll down
to the :guilabel:`Bills & Receipts` section.
- To **customize** the **header** and **footer**, activate the :guilabel:`Header & Footer` setting and
fill in both fields with the information to be printed on the receipts.
- To **print receipts** automatically once a payment is registered, enable the :guilabel:`Automatic
Receipt Printing` setting.
- To print receipts that don't display product prices, enable the :guilabel:`Basic Receipt` setting.
- Receipts can be sent by email by default, but also by SMS or through WhatsApp. To do so, activate
the :guilabel:`SMS Enabled` or :guilabel:`WhatsApp Enabled` option(s).
.. note::
If the :guilabel:`WhatsApp Enabled` setting is not available, :ref:`install <general/install>`
the :guilabel:`WhatsApp Messaging` module.
.. seealso::
- :ref:`pos/restaurant/bills`
- :doc:`point_of_sale/configuration/epos_printers`
Reprint a receipt
~~~~~~~~~~~~~~~~~
To reprint a receipt, navigate to the :ref:`POS interface <pos_open-register>`, click
:guilabel:`Orders`, open the dropdown selection menu next to the search bar, and change the default
:guilabel:`All active orders` filter to :guilabel:`Paid`. Then, select the order and click
:guilabel:`Print Receipt`.
.. tip::
Filter the list of orders using the search bar: type in your reference and select
:guilabel:`Receipt Number`, :guilabel:`Date`, or :guilabel:`Customer`.
Store contact details
~~~~~~~~~~~~~~~~~~~~~
Customers' contact details, such as their phone number or email addresses, are stored
automatically when sending receipts by email, SMS or Whatsapp. Once stored, contact details can be
used for :doc:`marketing <../marketing>` purposes.
.. seealso::
- :doc:`../marketing/email_marketing`
- :doc:`../marketing/sms_marketing`
- :doc:`../productivity/whatsapp`
.. tip::
From a POS order form, navigate to the :guilabel:`Contact Info` category under the
:guilabel:`Extra Info` tab, then click the email icon or whatsapp icon to send standalone
marketing messages.
To access the POS interface, open the register? The POS interface is composed of a POS register and a POS orders overview screen
.. _pos/open-register:
Use
===
Once the POS is fully :doc:`configured <point_of_sale/configuration>`, access the POS interface by
opening the register. Navigate to :menuselection:`Point of Sale --> Dashboard` and:
#. Click :guilabel:`Open Register`.
#. At the :guilabel:`Opening Control` screen, ensure the :guilabel:`Opening cash` amount is correct.
#. Click :guilabel:`Open Register` again.
From the **POS dashboard**, click :guilabel:`New Session`, and at the :guilabel:`Opening Cash
Control` screen, click :guilabel:`Open Session` to start a POS session, or click :guilabel:`Continue
Selling` if the session is already opened.
.. note::
:doc:`Multiple users <point_of_sale/employee_login>` can be logged into the same session at the
same time. However, the session can only be opened once on the same browser.
- Once the register is open, :guilabel:`Open Register` is replaced by :guilabel:`Continue
Selling`.
- :doc:`Multiple users <point_of_sale/employee_login>` can be logged into the same register at
the same time. However, the register can only be opened once on the same browser.
The POS interface is composed of a register for daily POS actions such as :ref:`sales <pos/sell>`,
:ref:`refunds <pos/refund>`, etc., and a POS :ref:`orders <pos/orders>` overview screen to retrieve
past or ongoing orders.
Users can also create more orders by clicking the :icon:`fa-plus-circle` (:guilabel:`plus`) icon,
jump between ongoing orders by clicking their order number, search for products using the search bar
or click the :icon:`fa-bars` (:guilabel:`hamburger menu`) icon to access more advanced options, such
as :ref:`closing the register <pos/register-close>`.
.. _pos/orders:
Orders overview
===============
The :guilabel:`Orders` overview allows for viewing, searching, and retrieving orders from the POS
interface. Access this view by clicking :guilabel:`Orders` on the interface top bar.
Then, search for orders in the search bar using their:
- :guilabel:`Reference`
- :guilabel:`Receipt Number`
- :guilabel:`Date`
- :guilabel:`Customer`
- :guilabel:`Delivery Channel`
- :guilabel:`Delivery Order Status`
To filter orders based on their status, click the :guilabel:`Active` dropdown menu and select one of
the following options:
- :guilabel:`Active`: Orders in progress, either marked as :guilabel:`Ongoing`, in the
:guilabel:`Payment` stage or the :guilabel:`Receipt` stage, meaning orders for which the receipt
has been emailed to the customer.
- :guilabel:`Paid`: Paid orders.
To navigate between pages, click the :icon:`fa-caret-left` or :icon:`fa-caret-right`
(:guilabel:`caret`) icon.
To access an order in the register, click it, then click :guilabel:`Load Order`.
.. note::
Paid orders can be :ref:`refunded <pos/refund>`.
.. tip::
- To define the number of orders visible on a page, click `1-x / x`. Enter a number lower than
the total number of pages, and click :guilabel:`Ok`.
- Click the :icon:`fa-trash` (:guilabel:`trash`) icon next to an :guilabel:`Active` order to
delete it.
- If using :ref:`presets <pos/restaurant/orders/preset>`, click one to view to view the related
orders. Click it again to return to the main overview.
.. _pos/sell:
Sell products
=============
Click on products to add them to the cart. To change the **quantity**, click :guilabel:`Qty` and
enter the number of products using the keypad. To add a **discount** or modify the product
**price**, click respectively :guilabel:`% Disc` or :guilabel:`Price` and enter the amounts.
The POS register can be divided in three distinctive sections: the cart, a numpad to adjust cart
items, apply discounts, set customers, etc., and the list of products. To make sales:
Once an order is completed, proceed to checkout by clicking :guilabel:`Payment`. Select the
**payment method**, enter the received amount, and click :guilabel:`Validate`. Click
:guilabel:`New Order` to move on to the next customer.
#. Click on products to add them to the cart.
.. image:: point_of_sale/pos-interface.png
:alt: POS session interface.
#. To change the **quantity**, click :guilabel:`Qty` and enter the number of products using the
keypad.
#. To add a **discount**, click :guilabel:`% Disc` and enter the discount value using the keypad.
#. To modify the product **price**, click :guilabel:`Price` and enter new product price using the
keypad.
#. Once an order is completed, proceed to checkout by clicking :guilabel:`Payment`.
#. Select the **payment method**.
#. Enter the received amount.
#. Click :guilabel:`Validate`.
#. Finally, click :guilabel:`New Order` to move on to the next customer.
.. image:: point_of_sale/pos-register.png
:alt: POS register
:scale: 45 %
.. tip::
- You can use both `,` and `.` on your keyboard as decimal separators.
- **Cash** is selected by default if you enter the amount without choosing a payment method.
- Use both `,` and `.` on the keyboard as decimal separators.
- **Cash** is selected by default if no payment method is manually selected.
.. note::
The system can only load a limited number of products for effective opening. Click
:guilabel:`Search more` if the desired product is not loaded automatically.
Click the :icon:`fa-plus-circle` :guilabel:`(plus)` icon to put an order aside and start a new
one.
.. _pos/customers:
Set customers
=============
Registering your customer is necessary to :doc:`collect their loyalty points and grant them rewards
<point_of_sale/pricing/loyalty>`, automatically apply the :doc:`attributed pricelist
<point_of_sale/pricing/pricelists>`, or :ref:`generate and print an invoice
<receipts-invoices/invoices>`.
Registering customers is necessary to :doc:`collect their loyalty points and grant them rewards
<point_of_sale/pricing/loyalty>`, automatically apply an :doc:`attributed pricelist
<point_of_sale/pricing/pricelists>`, or :ref:`generate and print invoices
<pos_invoices/invoices>`.
You can create customers from an :ref:`open POS session <pos/session-start>` by clicking
:menuselection:`Customer --> Create`, and filling in the contact information. You can also create
customers from the backend by going to :menuselection:`Point of Sale --> Orders --> Customers` and
clicking :guilabel:`New`. Then, fill in the information and save.
To create customers from an :ref:`the POS register <pos/open-register>`:
To set a customer during an order, access the list of customers by clicking :guilabel:`Customer` on
the POS interface. You can also set a customer at the payment screen by clicking
:guilabel:`Customer`.
#. Click :guilabel:`Customer`.
#. Click :guilabel:`Create`.
#. Then, complete the contact information.
.. _pos/customer-notes:
To create customers from the backend:
Customer notes
==============
#. Go to :menuselection:`Point of Sale --> Orders --> Customers`.
#. Click :guilabel:`New`.
#. Then, fill in the information and save.
You can add **customer notes** about specific products directly from an open :ref:`POS session
<pos/session-start>`. For instance, to provide cleaning and maintenance tips. They can also be used
to track a customer's particular request, such as not wanting the product to be assembled for them.
To do so, select a product and click :guilabel:`Customer Note` on the pad. Doing so opens a pop-up
window in which you can add or modify content for the note.
To assign a customer to an order, click :guilabel:`Customer` to access the customer list on the POS
register or at the payment screen, and select the desired customer.
.. note::
Product notes from an :doc:`imported SO <point_of_sale/shop/sales_order>` are displayed
identically in the cart.
.. image:: point_of_sale/customer-notes.png
:alt: Customer note button and notes (SO and POS session) on products in the cart
Customer notes appear on customers' receipts and invoices similarly to how they appear in the cart,
under the related product.
.. image:: point_of_sale/notes-receipt.png
:alt: Customer receipt with notes from an SO and from the customer note feature
Creating a new customer assign them automatically to the order upon saving.
.. _pos/refund:
@@ -101,112 +261,134 @@ Return and refund products
To refund a returned product, follow these steps:
#. :ref:`Start a session <pos/session-start>` from the **POS dashboard**.
#. Click the :icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` icon, then :icon:`fa-undo`
:guilabel:`Refund`, and select the corresponding order.
#. Select items, use the keypad to set the quantity to refund, then click :guilabel:`Refund`.
#. :ref:`Open the register <pos/open-register>` from the **POS dashboard**.
#. Click :guilabel:`Actions`, then :icon:`fa-undo` :guilabel:`Refund`, and select the corresponding
order.
#. Select items and use the keypad to set the quantity to refund, then click :guilabel:`Refund`.
#. Click :guilabel:`Payment` and select the appropriate refund payment method.
#. Click :guilabel:`Validate` and print the receipt if needed.
#. Click :guilabel:`New Order` to proceed to the next customer.
.. tip::
- To filter the **orders list** by :guilabel:`Reference`, :guilabel:`Receipt Number`,
- To filter the **orders list** by :guilabel:`Order number`, :guilabel:`Receipt Number`,
:guilabel:`Date`, or :guilabel:`Customer`, enter a value in the search bar and choose the
relevant filter from the dropdown menu.
- When the total amount is negative, adding a gift card to the cart automatically adjusts the
gift card balance to match that amount.
.. note::
Alternatively, a refund can be processed by selecting the returned product(s) from an open
session and setting a negative quantity equal to the number of returned items. To do so, click
Alternatively, a refund can be processed by selecting the returned product(s) from the POS
register and setting a negative quantity equal to the number of returned items. To do so, click
:guilabel:`Qty` and :guilabel:`+/-`, and update the quantity accordingly.
Once the return payment is validated, Odoo generates the required credit note, referencing the
original receipt or invoice and partially or fully canceling the document.
original receipt or invoice and partially or fully canceling the entry.
.. _pos/customer-notes:
Notes
=====
Customer and general notes
--------------------------
Notes for customers appear on receipts and invoices. These notes come in two forms: customer notes
for specific products and general notes for the entire order. To add a **customer note** from the
:ref:`POS register <pos/open-register>`:
#. Select a product from the cart.
#. Click :guilabel:`Actions`.
#. Select :guilabel:`Customer Note`, which opens a pop-up window to add or modify the note's
content.
.. note::
Product notes from an :doc:`imported SO <point_of_sale/shop/sales_order>` are displayed
identically in the cart.
To add a **general note** for the complete order:
#. Click :guilabel:`Actions`, and
#. :guilabel:`General Note`, which opens a pop-up window. To add or modify the note's content:
- Type the note directly into the window, or
- Use a configured note model to save time if the same content is frequently used. Click on the
desired note model to insert its text.
To set up note models:
#. Navigate to :menuselection:`Configuration --> Note Models`.
#. Click :guilabel:`New` and enter the desired text for your note model. Then, save it.
Internal notes
--------------
In parallel, **internal notes** attach to items similarly but are destined to other users. For
example, an additional information about an order for a cook, such as `no tomato`. That information,
while useful, shouldn't be printed on the customer receipt. To add an **internal note**:
#. Select an item from the cart.
#. Click :guilabel:`Internal Note`, which opens a pop-up window to add or modify the note's content.
.. image:: point_of_sale/customer-notes.png
:alt: Customer note button and notes (SO and POS register) on products in the cart
:scale: 50 %
.. _pos/cash-register:
Manage the cash register
========================
To add or take out cash from the register, click the **menu icon** in the upper right corner of your
screen and :guilabel:`Cash In/Out`.
Odoo POS allows you to determine which coins and bills are accepted. To set up the allowed coins and
bills:
.. image:: point_of_sale/menu-button.png
:alt: Dropdown menu to close a POS session, reach the backend, add or take cash out or check
orders
#. Navigate to :menuselection:`Configuration --> Coins/Bills`.
#. Click :guilabel:`New` to add a new value.
#. Select the POS where this value is available in the :guilabel:`Point of Sale` column.
Doing so opens a pop-up window on which you can select :guilabel:`Cash In` or :guilabel:`Cash Out`,
enter the amount and the reason, and click :guilabel:`Confirm`.
To record a cash in or cash out transaction not associated with a sale:
.. _pos/session-close:
Close the POS session
=====================
To close your session, click the **menu icon** in the upper right corner of your screen and
:guilabel:`Close Session`.
Doing so opens the :guilabel:`Closing Control` pop-up screen. From this screen, you can retrieve
various information:
- the number of orders made and the total amount made during the session;
- the expected amounts grouped by payment method.
Before closing this window, count your cash using the calculator icon. Doing so opens a pop-up
window that computes the total amount in the cash drawer depending on the coins and bills counted
and added manually. Then, click :guilabel:`Confirm` or :guilabel:`Discard` to close the window. The
computed amount is set in the :guilabel:`Counted` column, and the :guilabel:`Money Details` are
specified in the **Notes** section.
.. image:: point_of_sale/closing-control.png
:alt: How to close a POS session.
Once you are done controlling the amounts, click :guilabel:`Close Session` to close and go back to
the **POS dashboard**.
#. Click :icon:`fa-bars` (:guilabel:`hamburger menu`) on the POS interface.
#. Click :guilabel:`Cash In/Out`, which opens a pop-up window.
#. Select :guilabel:`Cash In` or :guilabel:`Cash Out`.
#. Enter the amount.
#. Specify the reason for this addition or removal of cash, and :guilabel:`Confirm`.
.. note::
- To reach the backend without closing the session, click :guilabel:`Backend` on the dropdown
menu.
- To abort, click :guilabel:`Discard` on the pop-up window.
- Depending on your setup, you might only be allowed to close a session if the expected cash
revenue equals the counted cash. To close it anyway, click :guilabel:`Ok` on the
:guilabel:`Payments Difference` screen.
Some users might not be allowed to do cash in or out actions depending on their :doc:`POS access
rights <point_of_sale/employee_login>`.
.. _pos/register-close:
Close the POS register
======================
To close the POS register, click :icon:`fa-bars` (:guilabel:`hamburger menu`) and :guilabel:`Close
Register`.
Doing so opens the :guilabel:`Closing Register` pop-up screen. From this screen, you can retrieve:
- The number of orders and the total amount made during the session.
- The expected amounts grouped by payment method.
#. Click :icon:`fa-money` (:guilabel:`money`) to specify the number of each coin and bill.
#. Click :guilabel:`Confirm` to return to the previous pop-up window. The computed amount is set in
the :guilabel:`Cash Count` field, and the :guilabel:`Closing Details` are specified in the
:guilabel:`Closing Note` section.
#. Click :guilabel:`Close Register` to close the register and post accounting entries.
.. tip::
- It is strongly advised to close your POS session at the end of each day.
- To look at all your previous sessions, go to :menuselection:`Point of Sale --> Orders -->
Sessions`.
Click :icon:`fa-clone` (:guilabel:`clone`) to automatically fill in the field with the expected
cash amount.
.. _pos/analytics:
Analytics
=========
Once you :ref:`close and post the POS session <pos/session-close>`, access the comprehensive report
to review all session activities, including who initiated the session and who handled specific
orders. To access the session's report:
#. Click :icon:`fa-ellipsis-v` (:guilabel:`vertical ellipsis`) on the POS card.
#. Click :guilabel:`Sessions` under the :guilabel:`View` section.
#. From that list view, you can see all the sessions and who initiated them under the
:guilabel:`Opened By` column.
#. Select a POS session to open a detailed session report.
#. Click the :guilabel:`Orders` smart button to display a list of all orders placed during that
session.
#. From that view, you can retrieve the following information:
- The :guilabel:`Order Ref`
- The :guilabel:`Date` of the order.
- The :guilabel:`Point of Sale` where that order was made.
- The :guilabel:`Receipt Number`.
- The :guilabel:`Customer`.
- The :guilabel:`Employee` that placed this order.
- The :guilabel:`Total` paid amount.
- The order :guilabel:`Status`.
To get an overview of all orders, regardless of the session, click the vertical ellipsis button
(:guilabel:`⋮`) on the POS card and select :guilabel:`Orders` from the :guilabel:`View` section.
.. note::
- To abort, click :guilabel:`Discard` on the pop-up window.
- When the money counted does **not** match the expected amount, a :guilabel:`Payments
Difference` window automatically pops up. Click :guilabel:`Proceed Anyway` to log the
difference for the books.
- In restaurant, closing the register when orders are still in draft is not allowed and opens a
pop-up window. Proceed with the remaining orders by clicking :guilabel:`Review Orders` or click
:guilabel:`Cancel Orders` to cancel all of them.
- It is strongly advised to close your POS register at the end of each day.
.. toctree::
:titlesonly:
@@ -214,7 +396,7 @@ To get an overview of all orders, regardless of the session, click the vertical
point_of_sale/configuration
point_of_sale/pos_hardware
point_of_sale/employee_login
point_of_sale/receipts_invoices
point_of_sale/pos_invoices
point_of_sale/preparation
point_of_sale/self_order
point_of_sale/combos
@@ -222,6 +404,5 @@ To get an overview of all orders, regardless of the session, click the vertical
point_of_sale/restaurant
point_of_sale/pricing
point_of_sale/payment_methods
point_of_sale/pos_based_marketing
point_of_sale/online_food_delivery
point_of_sale/reporting

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -53,8 +53,9 @@ store or restaurant.
Practical application
=====================
:ref:`Open a POS session <pos/session-start>` and select the combo product. Choose the options and
click :guilabel:`Add to order`. As a reminder, the extra price appears under the related choices.
:ref:`Open the POS register <pos/open-register>` and select the combo product. Choose the options
and click :guilabel:`Add to order`. As a reminder, the extra price appears under the related
choices.
.. image:: combos/combo-select.png
:scale: 75%

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -3,7 +3,7 @@ Multi-employee management
=========================
Odoo Point of Sale (POS) offers a **Log in with Employees** feature, allowing multiple users to
:ref:`log into a POS session <pos/employee_login/use>`. Activating this feature enables the
:ref:`log into the POS register <pos/employee_login/use>`. Activating this feature enables the
following actions:
- Select specific users who can :ref:`log into the POS <pos/employee_login/use>`.
@@ -66,7 +66,7 @@ settings <configuration/settings>`. Then,
**Session management:**
- :ref:`Open a POS session <pos/session-start>`.
- :ref:`Open the POS register <pos/open-register>`.
- :ref:`Perform cash-in and cash-out operations <pos/cash-register>`.
**Sales transactions:**
@@ -91,7 +91,7 @@ settings <configuration/settings>`. Then,
- Create products.
- Access the Odoo backend interface.
- :ref:`Close the current POS session <pos/session-close>`.
- :ref:`Close the current POS register <pos/register-close>`.
.. note::
An employee with advanced POS rights who is not a database user cannot access the backend.
@@ -104,16 +104,16 @@ Usage guidelines
Logging in
----------
Once the **Log in with Employees** feature is enabled, employees must log in to :ref:`open a POS
session <pos/session-start>` and access the POS interface. They can :ref:`scan their employee badge
Once the **Log in with Employees** feature is enabled, employees must log in to :ref:`open the POS
register <pos/open-register>` and access the POS interface. They can :ref:`scan their employee badge
<pos/employee_login/badge>`, click the :icon:`fa-users` icon (:guilabel:`users`) to select their
name from the list of authorized users, or by entering :ref:`their PIN code
<pos/employee_login/pin>` in the :guilabel:`Enter your PIN` field.
.. image:: employee_login/log-in.png
:alt: Login window to open a session when the multiple cashiers feature is active
:alt: Login window to open a register when the multiple cashiers feature is active
To switch between users during an :ref:`active session <pos/session-start>`, click on the currently
To switch between users from the :ref:`register <pos/open-register>`, click on the currently
logged-in employee's name at the top right of the POS screen and select the user to switch to.
.. tip::
@@ -137,7 +137,7 @@ the employee's profile in the **Employees** module:
- Click :guilabel:`Generate` to create a unique badge ID automatically.
#. Click :guilabel:`Print Badge` to generate a barcode representation of the assigned badge ID.
To switch users within an open POS session using a badge, you must first lock the session. To do so,
To switch users within an open POS register using a badge, you must first lock the register. To do so,
click the :icon:`fa-lg fa-lock` icon (:guilabel:`lock`) to return to the login screen. Then, the new
employee can scan their badge to log in.
@@ -146,8 +146,8 @@ employee can scan their badge to log in.
Adding a PIN Code
-----------------
For enhanced security, employees may be forced to enter a PIN code each time they log into a POS
session. To set up a PIN code for an employee:
For enhanced security, employees may be forced to enter a PIN code each time they log into the POS
register. To set up a PIN code for an employee:
#. Navigate to the **Employees** module.
#. Open the form view of the relevant employee.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -4,7 +4,7 @@
Cash machines
=============
Connecting and integrating a cash machine with a :ref:`POS system <pos/session-start>` enables
Connecting and integrating a cash machine with a :ref:`POS system <pos/open-register>` enables
automation of cash transactions, cash counting, and change return.
.. _pos/cash_machines/configuration:

View File

@@ -60,7 +60,7 @@ To use the customer account as a payment method for a purchase from the POS paym
.. important::
To effectively monitor and manage the customers unpaid debt, either :doc:`create an invoice
<../receipts_invoices>` for the order or install the :doc:`Accounting application
<../pos_invoices>` for the order or install the :doc:`Accounting application
<../../../finance/accounting>`.
Debt tracking

View File

@@ -4,7 +4,7 @@
Payment terminals
=================
Connect and integrate a payment terminal to a :ref:`POS system <pos/session-start>` to accept
Connect and integrate a payment terminal to a :ref:`POS system <pos/open-register>` to accept
multiple payment options, including credit and debit cards.
.. _pos/terminals/configuration:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

View File

@@ -1,120 +0,0 @@
==================
Marketing features
==================
Use your POS system to engage with customers directly by sending them promotional offers via email
or WhatsApp.
Storing contact details
=======================
This feature requires your customer's contact details, either their email address or phone number.
- **Email addresses**: automatically collected and saved in POS orders when sending a receipt by
email.
- **Phone numbers**: to store phone numbers when sending receipts on WhatsApp or by SMS,
#. Go to :menuselection:`Configuration --> Settings` and scroll to the :guilabel:`Bills &
Receipts` section;
#. Activate the :guilabel:`WhatsApp Enabled` or :guilabel:`SMS Enabled` option(s).
.. image:: pos_based_marketing/sms-whatsapp-enabled.png
:alt: setting to enable to store phone numbers when sending receipts
If a customers contact information is missing, it will be automatically saved in POS orders when
the receipt is sent via email, SMS, or WhatsApp.
.. tip::
From a POS order form, navigate to the :guilabel:`Contact Info` category under the
:guilabel:`Extra Info` tab, then click the email icon or whatsapp icon to send standalone
marketing messages.
.. image:: pos_based_marketing/standalone-marketing-from-pos.png
:alt: pos orders form's standalone marketing message option
Email marketing
===============
To send marketing emails to your customers from POS orders,
#. Go to :menuselection:`Point of Sale --> Orders --> Orders`;
#. Select the orders;
#. Click :guilabel:`Actions`, then :guilabel:`Send Email` from the dropdown menu.
Doing so opens an email composing form. Fill it in and hit :guilabel:`Send`.
.. image:: pos_based_marketing/mail-composer.png
:alt: mail composer view
:scale: 50 %
.. tip::
- Save some time by saving your content as a template. Click the vertical ellipsis button and
select your template under the :guilabel:`Insert Template` section.
- You can also save your content as template for later use. Click the vertical ellipsis button
and select :guilabel:`Save as Template`.
.. note::
- Fill in the :guilabel:`Mass Mailing Name` field to create a mass mailing and track its results
in the :doc:`Email Marketing app <../../marketing/email_marketing>`.
- If an email address is not related to an existing customer, a new customer is automatically
created when sending marketing emails.
.. seealso::
:doc:`Use the email marketing app for more advanced marketing features
<../../marketing/email_marketing>`.
Whatsapp marketing
==================
.. _pos_based_marketing/whatsapp_config:
Configuration
-------------
You first need to enable the related server action to send WhatsApp marketing messages from your POS
using the phone numbers collected from POS orders. To do so,
#. Go to the WhatsApp application;
#. Create a new :ref:`WhatsApp template <WhatsApp/templates>`;
#. Configure the fields:
- :guilabel:`Applies to` field set to :guilabel:`Point of Sale Orders`;
- :guilabel:`Category` field to :guilabel:`Marketing`;
- :guilabel:`Phone Field` to either :guilabel:`Mobile` or :guilabel:`Customer > Phone`.
#. Click :guilabel:`Submit for Approval`;
#. Once approved, click the :guilabel:`Allow Multi` button to create a server action in the POS
orders list view.
.. image:: pos_based_marketing/whatsapp-template.png
:alt: approved and configured for marketing uses whatsapp template
.. warning::
If you modify the template's content, you must request for approval again, as its status returns
to the :guilabel:`Draft` state.
.. seealso::
:doc:`WhatsApp configuration <../../productivity/whatsapp>`
Send WhatsApp marketing messages
--------------------------------
#. Go to :menuselection:`Point of Sale --> Orders --> Orders`;
#. Select the orders;
#. Click :guilabel:`Actions`, then :guilabel:`WhatsApp Message` from the dropdown menu.
Doing so opens a WhatsApp message composing form. Select the desired marketing template in the
:guilabel:`Template` field and hit :guilabel:`Send Message`.
.. image:: pos_based_marketing/whatsapp-composer.png
:alt: whatsapp composer view
.. note::
- To use WhatsApp marketing in the Point of Sale, approved marketing templates must have the
:guilabel:`Allow Multi` option enabled and :guilabel:`Point of Sale Orders` selected in the
:guilabel:`Applies to` field.
- If the server action is displayed without a properly configured template, an error message
appears. Click :guilabel:`Configure Templates` and complete the :ref:`WhatsApp setup
<pos_based_marketing/whatsapp_config>` steps.
.. seealso::
:doc:`../../productivity/whatsapp`

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -52,7 +52,7 @@ Opening the customer display
To open the customer display, follow these steps:
#. :ref:`Open the POS register <pos/session-start>`.
#. :ref:`Open the POS register <pos/open-register>`.
#. Click the :icon:`fa-bars` (:guilabel:`hamburger menu`) icon.
#. Click the :icon:`fa-desktop` (:guilabel:`Customer Display`) icon, which opens the customer
display either in a new window to drag onto the second screen or directly onto the IoT-connected
@@ -71,7 +71,7 @@ support, follow these steps:
#. :doc:`Activate the Point of Sale Mobile module <../../general/apps_modules>` to enable the
customer display.
#. :ref:`Open the POS register <pos/session-start>`.
#. :ref:`Open the POS register <pos/open-register>`.
#. Click the :icon:`fa-bars` (:guilabel:`hamburger menu`) icon.
#. Click the :icon:`fa-desktop` (:guilabel:`Customer Display`) icon, which opens the customer
display on the terminal's secondary screen.
@@ -162,7 +162,7 @@ turns green.
Using a scale in PoS
--------------------
#. :ref:`Open the POS register <pos/session-start>`.
#. :ref:`Open the POS register <pos/open-register>`.
#. Select the product to weigh on the order screen or scan its barcode.
#. Place the product on the scale and wait for the weight to be displayed in the popup window.
#. Once the weight is determined, the price is automatically computed.

View File

@@ -1,42 +1,8 @@
=====================
Receipts and invoices
=====================
Receipts
========
Invoices
========
Set up receipts by going to :menuselection:`Point of Sale --> Configuration --> Point of Sale`,
selecting a POS, and scrolling down to the :guilabel:`Bills & Receipts` section.
To **customize** the **header** and **footer**, activate :guilabel:`Header & Footer` and fill in
both fields with the information to be printed on the receipts.
To **print receipts** automatically once the payment is registered, enable the :guilabel:`Automatic
Receipt Printing` setting.
.. image:: receipts_invoices/receipt.png
:scale: 75%
:alt: POS receipt
.. seealso::
- :ref:`pos/restaurant/bills`
- :doc:`configuration/epos_printers`
Reprint a receipt
-----------------
From the POS interface, click :guilabel:`Orders`, open the dropdown selection menu next to the
search bar, and change the default :guilabel:`All active orders` filter to :guilabel:`Paid`. Then,
select the corresponding order and click :guilabel:`Print Receipt`.
.. image:: receipts_invoices/print-receipt.png
:alt: Print receipt button from the backend
.. note::
You can filter the list of orders using the search bar. Type in your reference and click
:guilabel:`Receipt Number`, :guilabel:`Date`, or :guilabel:`Customer`.
.. _receipts-invoices/invoices:
.. _pos_invoices/invoices:
Invoices
========
@@ -46,9 +12,9 @@ upon payment and retrieve all past invoiced orders.
.. note::
An invoice created in a POS creates an entry into the corresponding :ref:`accounting journal
<cheat_sheet/journals>`, previously :ref:`set up <receipts_invoices/invoice_configuration>`.
<cheat_sheet/journals>`, previously :ref:`set up <pos_invoices/invoice_configuration>`.
.. _receipts_invoices/invoice_configuration:
.. _pos_invoices/invoice_configuration:
Configuration
-------------
@@ -58,7 +24,7 @@ To define what journals will be used for a specific POS, go to the :ref:`POS' se
accounting journals used by default for orders and invoices in the :guilabel:`Default Journals`
section.
.. image:: receipts_invoices/invoice-config.png
.. image:: pos_invoices/invoice-config.png
:alt: accounting section in the POS settings
Invoice a customer
@@ -83,7 +49,7 @@ To retrieve invoices from the **POS dashboard**,
#. to access an order's invoice, open the **order form** by selecting the order, then click
:guilabel:`Invoice`.
.. image:: receipts_invoices/invoice-smart-button.png
.. image:: pos_invoices/invoice-smart-button.png
:alt: invoice smart button from an order form
.. note::
@@ -101,7 +67,7 @@ invoice`. On the one hand, doing so generates an invoice available for download.
the order status goes from :guilabel:`Paid` or :guilabel:`Posted` to :guilabel:`Invoiced` in the
Odoo backend.
.. image:: receipts_invoices/order-status.png
.. image:: pos_invoices/order-status.png
:alt: order status change
To use this feature, you have to enable QR codes on receipts by going to :menuselection:`Point of

View File

@@ -36,7 +36,7 @@ can also :ref:`create new fiscal positions <fiscal_positions/configuration>`.
Use fiscal positions
====================
Open a :ref:`POS session <pos/session-start>` to use one of the allowed fiscal positions. Then,
Open the :ref:`POS register <pos/open-register>` to use one of the allowed fiscal positions. Then,
click the :guilabel:`Tax` button next to the **book-shaped** icon and select a fiscal position from
the list. Doing so applies the defined rules automatically to all the products subject to the chosen
fiscal position's regulations.

View File

@@ -110,8 +110,8 @@ Go to the :ref:`specific POS settings <configuration/settings>` and add all the
pricelists in the :guilabel:`Available` field. Then, set its **default pricelist** in the
:guilabel:`Default` field.
When you :ref:`open a POS session <pos/session-start>`, click the **pricelists** button, and select
the desired pricelist from the list.
When you :ref:`open the POS register <pos/open-register>`, click the **pricelists** button, and
select the desired pricelist from the list.
.. image:: pricelists/pricelist-button.png
:alt: Button to select a pricelist on the POS frontend

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -11,3 +11,33 @@ and :guilabel:`Orders`.
These statistics are available in a graph or pivot view that you can filter or group depending on
your needs.
.. _pos/analytics:
Analytics
=========
Once you :ref:`close and post the POS register <pos/register-close>`, access the comprehensive
report to review all session activities, including who initiated the session and who handled
specific orders. To access the session's report:
#. Click :icon:`fa-ellipsis-v` (:guilabel:`vertical ellipsis`) on the POS card.
#. Click :guilabel:`Sessions` under the :guilabel:`View` section.
#. From that list view, you can see all the sessions and who initiated them under the
:guilabel:`Opened By` column.
#. Select a POS session to open a detailed session report.
#. Click the :guilabel:`Orders` smart button to display a list of all orders placed during that
session.
#. From that view, you can retrieve the following information:
- The :guilabel:`Order Ref`
- The :guilabel:`Date` of the order.
- The :guilabel:`Point of Sale` where that order was made.
- The :guilabel:`Receipt Number`.
- The :guilabel:`Customer`.
- The :guilabel:`Employee` that placed this order.
- The :guilabel:`Total` paid amount.
- The order :guilabel:`Status`.
To get an overview of all orders, regardless of the session, click the vertical ellipsis button
(:guilabel:`⋮`) on the POS card and select :guilabel:`Orders` from the :guilabel:`View` section.

View File

@@ -123,7 +123,7 @@ plan`:
From the POS frontend
~~~~~~~~~~~~~~~~~~~~~
To create floors and tables from the frontend, :ref:`open the POS register <pos/session-start>`,
To create floors and tables from the frontend, :ref:`open the POS register <pos/open-register>`,
click the :icon:`fa-bars` (:guilabel:`hamburger menu`) icon in the top right corner of the
:guilabel:`Floor plan` view, then :guilabel:`Edit Plan`. To configure the :guilabel:`Floor plan`,
follow the next steps:
@@ -424,7 +424,7 @@ After a successful :ref:`order payment <pos/restaurant/bills/payment>`, click :i
the receipt is automatically printed upon payment confirmation.
.. seealso::
:doc:`/applications/sales/point_of_sale/receipts_invoices`
:doc:`/applications/sales/point_of_sale/pos_invoices`
.. _pos/restaurant/tips:

View File

@@ -31,7 +31,7 @@ Once activated, you can:
Practical application
=====================
#. :ref:`Open a session <pos/session-start>` and make a sale.
#. :ref:`Open the POS register <pos/open-register>` and make a sale.
#. On the payment screen, set a customer and select :guilabel:`Ship Later`.
#. On the popup window, set a shipping date and click :guilabel:`Confirm` to proceed to payment.

View File

@@ -14,3 +14,8 @@ applications/inventory_and_mrp/inventory/warehouses_storage/reporting/aging.rst
applications/finance/payment_providers/wire_transfer.rst applications/finance/payment_providers/bank_payments.rst
applications/finance/payment_providers/sdd.rst applications/finance/payment_providers/bank_payments.rst
# application/sales/point_of_sale
applications/sales/point_of_sale/receipts_invoices.rst applications/sales/point_of_sale/pos_invoices.rst # receipts_invoices renamed because of content move
applications/sales/point_of_sale/pos_based_marketing.rst applications/sales/point_of_sale.rst # page deleted only info kept is contact details storage and is available on the pos homepage