Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[IMP] pos/restaurant: Update Restaurant features page with child pages #14048

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: 18.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/applications/general/iot/devices/printer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ device. Click the :guilabel:`Unlink` button next to each report to remove the li
:alt: A list of reports currently linked to a printer in the IoT app.

.. seealso::
:doc:`POS Order Printing <../../../sales/point_of_sale/restaurant/kitchen_printing>`
:ref:`POS Order Printing <restaurant/orders-printing>`

Potential issues
================
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ To connect the POS with an :doc:`IoT system </applications/general/iot>`:
- Instructions
* - Printer
- Connect a supported receipt printer to a :abbr:`USB (Universal Serial Bus)` port or
to the network, and power it on. Refer to :doc:`../restaurant/kitchen_printing`.
to the network, and power it on. Refer to :ref:`Order printing
<restaurant/orders-printing>`.
* - Cash drawer
- The cash drawer should be connected to the printer with an RJ25 cable.
* - Barcode scanner
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Receipt Printing` setting.
:alt: POS receipt

.. seealso::
- :doc:`restaurant/bill_printing`
- :ref:`Bills <restaurant/bills>`
- :doc:`configuration/epos_printers`

Reprint a receipt
Expand Down
323 changes: 290 additions & 33 deletions content/applications/sales/point_of_sale/restaurant.rst
Original file line number Diff line number Diff line change
@@ -1,55 +1,312 @@
:show-content:

===================
Restaurant features
===================

Managing a restaurant or a bar comes with specific needs. The Point of Sale application provides
various features that allow performing all the required tasks in such businesses.

Once the POS is set to be used in a restaurant or a bar, you can:
Odoo Point of Sale provides various features to manage a restaurant or a bar:

- :doc:`organize your floors and tables to reflect your interior <restaurant/floors_tables>`;
- :ref:`take orders <restaurant/orders>`;
- :doc:`communicate with the kitchen or the bar through the POS <restaurant/kitchen_printing>`;
- :doc:`print bills in advance and split them <restaurant/bill_printing>`;
- :doc:`collect tips <restaurant/tips>`; and
- :doc:`set different taxes for takeaway food <pricing/fiscal_position>`.
- :ref:`organizing the floors and tables <restaurant/floors>`;
- :ref:`taking orders <restaurant/orders>`;
- :ref:`communicating with the kitchen or bar through the POS <restaurant/orders-printing>`;
- :ref:`printing and splitting bills <restaurant/bills>`;
- :ref:`collecting tips <restaurant/tips>`;
- :doc:`setting different taxes for takeaway food <pricing/fiscal_position>`.

.. _restaurant/configuration:

Configuration
=============

To enable the restaurant and bar-specific features, go to :menuselection:`Point of Sale -->
Configuration --> Settings`, select the POS, and activate :guilabel:`Is a Bar/Restaurant`.
To enable the restaurant and bar-specific features, follow these steps:

#. Go to :menuselection:`Point of Sale --> Configuration --> Settings`.
#. Select the Point of Sale in the top-left dropdown menu.
#. Activate :guilabel:`Is a Bar/Restaurant` under the :guilabel:`Restaurant Mode` section.

.. _restaurant/floors:

Floors and tables
=================

The :guilabel:`Plan` view enables managing restaurant floors and tables, and monitoring
table status in real time, including occupancy, reservations, and kitchen orders.

Configuration
-------------

.. _restaurant/floors/backend:

From the POS backend
~~~~~~~~~~~~~~~~~~~~

To create floors and tables from the backend, go to :menuselection:`Point of Sale --> Configuration
--> Floor Plans`, and click :guilabel:`New`. Follow the next steps to configure the floor plan:

#. Enter a :guilabel:`Floor Name`.
#. Select the related :guilabel:`Point of Sales`.
#. Hover the mouse over the placeholder image and click the :icon:`fa-pencil` (:guilabel:`Edit`)
icon to add a background image to the restaurant layout.
#. Click :guilabel:`Add a line` to create and set a table:

- Enter a :guilabel:`Table Number`.
- Fill in the number of :guilabel:`Seats`.
- Select a :guilabel:`Square` or :guilabel:`Round` table shape.
#. (Optional) Activate additional settings by clicking the :icon:`oi-settings-adjust`
(:guilabel:`settings`) icon:

- Assign an :guilabel:`Appointment resource` to make the table bookable.
- Adjust the :guilabel:`Height`, :guilabel:`Width`, and :guilabel:`Color`.
- Tick the :guilabel:`Active` box to make a table available or not.
#. Click the :icon:`fa-trash-o` (:guilabel:`trash`) icon to delete a table.

.. tip::
To create a floor plan quickly, go to the :guilabel:`Floors & Tables Map` section in the POS
settings. Type the floor name in the :guilabel:`Floors` field, press `Enter`, or click
:guilabel:`Create and edit`.

.. _restaurant/floors/frontend:

From the POS front end
~~~~~~~~~~~~~~~~~~~~~~

To create floors and tables from the front end, :ref:`open a POS session <pos/session-start>`, click
the :icon:`fa-bars` (:guilabel:`hamburger menu`) icon in the top right corner, then :guilabel:`Edit
Plan`. Follow the next steps to configure the floor plan:

#. Click the :icon:`fa-plus` (:guilabel:`Add Floor`) icon to add a floor
#. Enter a :guilabel:`Floor name` and click :guilabel:`Apply`.
#. Click the :icon:`fa-paint-brush` (:guilabel:`paintbrush`) icon to perform one of the following
editing actions:

- Select a background color.
- Click :icon:`fa-camera` :guilabel:`File` to upload an image.
#. Click :icon:`fa-plus-circle` :guilabel:`Table` to add a new table.
#. (Optional) Click a table, then click one of the following icons to edit the table:

These features are displayed in the :guilabel:`Restaurant & Bar` section.
- The :icon:`fa-user` (:guilabel:`Seats`) icon adds or changes the number of seats.
- The :icon:`fa-square-o` (:guilabel:`Square`) or :icon:`fa-circle-o` (:guilabel:`Round`)
icon switches the shape of the table.
- The :icon:`fa-paint-brush` (:guilabel:`Change Floor Background`) icon changes the table's
color.
- The :icon:`fa-pencil-square-o` (:guilabel:`Rename`) icon changes the table number.
- The :icon:`fa-copy` (:guilabel:`Clone`) icon adds a table.
- The :icon:`fa-trash` (:guilabel:`Delete`) icon removes the table.
#. Click :guilabel:`Save`.

.. image:: restaurant/restaurant-bar-section.png
:align: center
:alt: restaurant and bar-specific features
.. warning::
Removing a table or a floor is permanent.

.. _restaurant/floors/transfer:

Table transfer
--------------

To transfer an order to another table from the :guilabel:`Plan` view, follow these steps:

#. Select a table to go to the POS interface.
#. Start an order.
#. Click :menuselection:`Actions --> Transfer/Merge`.
#. In the :guilabel:`Plan` view, choose the target table:

- Select a free table to transfer customers and their orders.
- Select an occupied table to merge customers and their orders.

.. _restaurant/orders:

Take orders
===========
Order management
================

To take an order, open the register and follow these steps:

#. Select a :guilabel:`Plan` view.
#. Click a table to access the POS interface.
#. Start taking the order. The system automatically associates the order with the table.
#. Click :guilabel:`Order` to validate the order.
#. Click :guilabel:`Plan` to return to the :guilabel:`Plan` view.

To proceed with the order payment, click on the related table in the :guilabel:`Plan` view, then
follow these steps:

#. Click :guilabel:`Payment`.
#. Select a payment method, such as :guilabel:`Cash`, :guilabel:`Card`, and :guilabel:`Customer
Account`.
#. (Optional) Select a customer and/or send an invoice to customers:

- Click :icon:`fa-user` :guilabel:`Customer` to select or create a customer account.
- Tick the :icon:`fa-file-text-o` :guilabel:`Invoice` checkbox to send an invoice to a customer.
#. Click :guilabel:`Validate`.

.. note::
Clicking a table sets the guest count to one. If the wrong table is selected, click
:guilabel:`Release table` to free it or :ref:`transfer the customer <restaurant/floors/transfer>`
to another table.

.. _restaurant/orders-printing:

Order printing
==============

Configuration
-------------

To enable sending orders to a kitchen or bar printer, follow these steps:

#. Go to :menuselection:`Point of Sale --> Configuration --> Settings`.
#. Scroll down to the :guilabel:`Preparation` section, and enable the :guilabel:`Preparation
Printers` feature.
#. Type in the printer's name in the :guilabel:`Printers` field.
#. Press `Enter` or click :guilabel:`Create and edit` to open the :ref:`printer setup form
<restaurant/orders-printing/setup>`.

.. _restaurant/orders-printing/setup:

Printer setup form
------------------

Click a table to access the POS interface and start taking your customer's order. The system
automatically associates the orders and the table, allowing you to add more items later and generate
a bill specifically for that table's orders.
To access the printer setup form, click :guilabel:`--> Printers` under the :guilabel:`Preparation
Printers` feature of the :guilabel:`Preparation` section.

Once you have taken an order, click :guilabel:`Change table` to return to the floor plan view.
To create a printer, click :guilabel:`New`, add a :guilabel:`Printer Name`, and select the
:guilabel:`Printer Type`:

- If the printer is connected to an IoT system, select :guilabel:`Use a printer connected to the
IoT Box` and add the hostname of the IoT device in the :guilabel:`Proxy IP Address` field.
- If using an Epson printer that does not require an IoT system, select :guilabel:`Use an Epson
printer` and enter the printer's IP address in the :guilabel:`Epson Printer IP Address` field.

.. seealso::
- :doc:`/applications/general/iot/connect`
- :doc:`/applications/general/iot/devices/printer`

Set the printer to print specific products based on their POS category. To do so, click
:guilabel:`Add a line` in the :guilabel:`Printed Product Categories` field. Select a category or
click :guilabel:`New` to create a new one.

When creating a :guilabel:`Printed Product Category`, follow these steps:

#. Type a name.
#. Click the :icon:`fa-pencil` (:guilabel:`Edit`) icon to add an image.
#. Select a :guilabel:`Parent Category`.
#. Choose a preferred :guilabel:`Color`.
#. Determine the product availability.
#. Click :guilabel:`Save & Close` or :guilabel:`Save & New`.

Kitchen preparation
-------------------

From an open POS session, start :ref:`taking an order <restaurant/orders>`, then click
:guilabel:`Order` to send it to the bar or the kitchen.

.. _restaurant/bills:

Bills
=====

There are two features to request or split a bill before payment: :ref:`Receipt printing
<restaurant/bills/printing>` and :ref:`Bill splitting <restaurant/bills/splitting>`.

Configuration
-------------

To allow bill printing and splitting, go to :menuselection:`Point of Sale --> Configuration -->
Settings`, select the POS, and enable the :guilabel:`Early Receipt Printing` and :guilabel:`Allow
Bill Splitting` features in the :guilabel:`Restaurant Mode` section.

.. _restaurant/bills/printing:

Receipt printing
----------------

From an open POS session, follow the :ref:`order process <restaurant/orders>` until the payment
is successful, then click :icon:`fa-print` :guilabel:`Print Full Receipt` to generate and print a
bill.

.. note::
Any change to the order is reflected in the bill.

.. _restaurant/bills/splitting:

Bill splitting
--------------

From an open POS session, start :ref:`selecting items <restaurant/orders>` and follow these steps:

#. Click :menuselection:`Actions --> Split`.
#. Select the items to split.
#. Click :guilabel:`Split Order`.
#. Proceed with the payment.
#. Click :icon:`fa-chevron-right` :guilabel:`Continue` and repeat the process for each guest.

.. note::
The :icon:`fa-files-o` :guilabel:`Split` button is available when at least two items are ordered.

.. _restaurant/tips:

Tips
====

Point of Sale allows tipping in :ref:`shops <pos/sell>`, bars, and restaurants.

Configuration
-------------

To allow tipping in a POS, follow these steps:

#. Go to :menuselection:`Point of Sale --> Configuration --> Settings`.
#. Enable the :guilabel:`Tips` feature under the :guilabel:`Payment` section.
#. Add a :guilabel:`Tip Product` in the corresponding field:

- Enter a product's name in the field and press `Enter` or click :guilabel:`Create`.
- To select a tip product in a POS session, enter a product's name, click :guilabel:`Create and
edit`, tick the :guilabel:`Point of Sale` checkbox, and click :guilabel:`Save & Close`.
#. (Optional) Tick the :guilabel:`Add tip after payment` and/or :guilabel:`Add tip through payment
terminal (Adyen)` checkboxes for additional tipping configuration:

- :guilabel:`Add tip after payment` generates a bill that indicates the tip value that the
customer gives after the payment.
- :guilabel:`Add tip through payment terminal (Adyen)` enables tipping with an :doc:`Adyen
<../../../applications/sales/point_of_sale/payment_methods/terminals/adyen>` payment terminal.
#. Click :guilabel:`Save`.

.. important::
- To use the :guilabel:`Add tip after payment` feature, the selected payment method must have a
bank journal attributed to it.
- To use the :guilabel:`Add tip through payment terminal (Adyen)` feature, select
:guilabel:`Adyen` under the :guilabel:`Payment Terminals` section in the settings.

.. note::
As soon as you click a table, the number of guests is automatically set to one. If you
mistakenly select a table, click :guilabel:`Release table` to free it or :ref:`transfer the
customer <pos/floors_tables/transfer>` to another table.
- When you create a product to use as a tip, leave the **product type** as :guilabel:`Consumable`
to avoid unnecessary inventory movements.
- You can only select one tip product per POS, but you can choose a different one for each.

.. _restaurant/tips/add-tips:

Add tips during checkout
------------------------

Tip after payment
~~~~~~~~~~~~~~~~~

To tip after payment, follow these steps:

#. :ref:`Process an order <restaurant/orders>` until payment.
#. In the **Payment** view, select a payment method.
#. Click :icon:`fa-heart` :guilabel:`Tip` to open a popover.
#. Add the tip amount to the popover and click :guilabel:`Ok`.
#. Click :guilabel:`Close Tab` to validate the payment and the tip.

Tip using an Adyen terminal
~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. toctree::
:titlesonly:
To tip using an Adyen terminal, follow these steps:

restaurant/floors_tables
restaurant/kitchen_printing
restaurant/bill_printing
restaurant/tips
#. Create an :ref:`Adyen payment method <adyen/method-creation>`.
#. Go to :menuselection:`Configuration --> Settings --> Payment` and add the created
:guilabel:`Adyen` payment method to the :guilabel:`Payment Methods` field.
#. Click :guilabel:`Save`.
#. Go to the POS and :ref:`process an order <restaurant/orders>`.
#. Select the :guilabel:`Adyen` payment method during checkout. The :guilabel:`Adyen` terminal
displays the transaction and suggests adding tips.
#. Add a tip amount in the terminal and validate.
#. Click :icon:`fa-heart` :guilabel:`Tip` to open a popover in Odoo POS.
#. Add the same tip amount to the popover and click :guilabel:`Ok`.
#. Click :guilabel:`Close Tab` to validate the payment and the tip.
Loading