Skip to content
Closed
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: 2 additions & 0 deletions content/applications/essentials/contacts.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ Contacts are created in the **Contacts** application for customers the company d
through Odoo. A contact record is a repository of vital business information, facilitating
communication and business transactions.

.. _contacts/contact-form:

Contact form
============

Expand Down
1 change: 1 addition & 0 deletions content/applications/sales/point_of_sale/extra.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ Extra features
extra/employee_login
extra/preparation
extra/self_order
extra/presets
extra/pricing
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ for employees, shows:
- **Order cards**: Summarizes individual orders, including:

- Associated tables and order numbers.
- :doc:`Preset <presets>` service types, if configured.
- Status, such as `Ready`, highlighted with the defined colors.
- Waiting time, with visual indicators.

Expand Down
184 changes: 184 additions & 0 deletions content/applications/sales/point_of_sale/extra/presets.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
=======
Presets
=======

Presets are preconfigured settings used to quickly apply predefined configurations to POS orders,
such as the fiscal position, pricelist, opening hours, order capacity limit, etc. They are
particularly useful for businesses that need different configurations depending on the type of sale.

.. example::
- Restaurants can use presets to adjust pricelists and capacities based on the order type, such
as :guilabel:`Dine In`, :guilabel:`Takeout`, or :guilabel:`Delivery`.

- Flower shops can use presets to apply different taxes when selling flowers and plants (taxed as
goods) versus creating arrangements for funerals or weddings (taxed as services). Presets can
also help streamline returns and apply different pricelists (with discounts) for loyal
customers and/or members.

.. seealso::
`Odoo Presets Tutorial <https://www.odoo.com/slides/slide/manage-presets-12827>`_

.. _pos/presets/configuration:

Comment thread
lman-odoo marked this conversation as resolved.
Configuration
=============

.. note::
If a :doc:`restaurant POS <../../point_of_sale/restaurant>` exists in the database, preconfigured
presets are automatically available.

To enable and set presets for a POS, follow these steps:

#. Go to the :ref:`POS settings <pos/use/settings>`.
#. Under :guilabel:`Point of Sale`, enable :guilabel:`Take out / Delivery / Members`.
#. In the :guilabel:`Available` field:

- If preconfigured presets are available, select the relevant one(s) or click :guilabel:`Search
more`, then :guilabel:`New` to create and :ref:`configure <pos/presets/preset-form>` a new
preset.
- If no preconfigured presets are available, click :guilabel:`Create ...`, then :ref:`configure
<pos/presets/preset-form>` the preset.

#. Define a default preset in the :guilabel:`Default` field.
#. Click :guilabel:`Save`.
#. If necessary, click :icon:`oi-arrow-right` :guilabel:`Configure Presets`, then select the desired
preset and edit it, or click :guilabel:`New` to create a new one.

.. tip::
- Once presets exist in the database, they can be accessed from :menuselection:`Point of Sale -->
Configuration --> Presets`.
- Presets are automatically enabled when creating a new restaurant point of sale :ref:`through the
onboarding screen <pos/use/create-pos>` and selecting the :guilabel:`Restaurant` card.

.. _pos/presets/preset-form:

On the relevant :guilabel:`Presets` form, apply or edit the following options:

Comment thread
lman-odoo marked this conversation as resolved.
- Enter a preset :guilabel:`Label`.
- If needed, add an image by clicking the :icon:`fa-pencil` (:guilabel:`Edit`) button when hovering
over the camera image. This image is displayed in :ref:`kiosk mode <extra/presets/apply-presets>`.
- :guilabel:`Pricelist`: Select or :doc:`configure a pricelist
<../../sales/products_prices/prices/pricing>`.
- :guilabel:`Fiscal Position`: Select or :doc:`configure a fiscal position
</applications/finance/accounting/taxes/fiscal_positions>`. Fiscal positions are especially
important in environments where customers must pay different tax rates depending on the type of
order.
- :guilabel:`Manage orders by time`: Enable this option to define time slots for scheduling orders.
Then,

- choose a working time in the :guilabel:`Schedule based on` field;
- define the :guilabel:`Preparation capacity` to indicate how many orders can be handled in a
given time frame;
- configure the working hours in the :guilabel:`Schedule` tab.

- :guilabel:`Identification`: Specify whether order identification details (such as a
:guilabel:`Name` or an :guilabel:`Address`) are required.
- :guilabel:`Return mode`: Select this mode only to process returns. All items added to the cart
are entered as negative quantities.
- :guilabel:`Color`: Define the preset button's color in the :ref:`register
<pos/restaurant/orders>`.
- In the :guilabel:`Self Ordering` tab, enable :guilabel:`Available in self` to display presets in
the :doc:`self-order interface <self_order>`. Then, select a service zone in the
:guilabel:`Service at` field and select or :doc:`configure an email template
</applications/general/companies/email_template>` in the :guilabel:`Email Confirmation` field.
- In the :guilabel:`Options` tab, enable :guilabel:`Guest` to require users to enter the number of
guests when :ref:`taking an order <pos/restaurant/orders>`.

.. tip::
On the preset form, click the :icon:`fa-shopping-cart` :guilabel:`Order(s)` smart button to
access the list of all orders created with the selected preset.

.. _extra/presets/apply-presets:

Apply presets to POS orders
===========================

Presets are available in both the :ref:`POS register <pos/restaurant/orders>` and the :doc:`kiosk
<self_order>` (provided the :guilabel:`Available in self-order` feature is :ref:`enabled
<pos/presets/preset-form>`). The workflow varies based on the :ref:`preset configuration
<pos/presets/preset-form>`.

Comment thread
lman-odoo marked this conversation as resolved.
.. tabs::

.. tab:: POS register

Presets are displayed in the :ref:`POS register <pos/restaurant/orders>` with the default
preset selected. To change the preset, click the default preset button and select an available
alternative. The default preset is automatically restored for the next order.

.. image:: presets/presets-button.png
:alt: Default presets "Dine In" button.

.. image:: presets/register-select-preset.png
:alt: Select a preset in the POS register.
:scale: 70%

The features :ref:`configured for presets <pos/presets/configuration>` trigger specific
actions in the POS register:

- If :guilabel:`Identification` is required for the selected preset, you must enter specific
information (depending on the selected option) before proceeding to checkout:

- :guilabel:`Name`: Select an order name or enter a new one (only for :doc:`restaurant
points of sale <../restaurant>`). To modify it, click the :icon:`fa-ellipsis-v`
(:guilabel:`Actions`) menu and select :icon:`fa-pencil-square-o` :guilabel:`Edit Order
Name`.
- :guilabel:`Address`: Choose an existing customer or :guilabel:`Create` a new one, and make
sure they have an address assigned. The customer's name is :ref:`displayed in the pad
<pos/use/customers>`. Click it to select a different customer or :ref:`edit
<pos/use/customers>` the :ref:`customer's details <contacts/contact-form>` if needed.

.. tip::
Use the :icon:`fa-search` search bar to find a customer.


- If the :guilabel:`Manage orders by time` option is enabled for the selected preset, select a
date and time (displayed in green). The selected time is displayed in the header of the POS
interface. Click it to modify the time.

.. image:: presets/select-time-date.png
:alt: Choose a time for a takeout order.

- If the :guilabel:`Guest` feature is enabled for the selected preset, a pop-up appears
prompting you to enter the number of guests, and the amount per guest is displayed (the
total amount divided by the number of guests).

.. image:: presets/guest-count.png
:alt: Enter the number of guests in the POS register.
:scale: 70%

.. tab:: Kiosk

Presets can be used in the :ref:`kiosk of the self-ordering mode
<extra/self_order/usage-guidelines>`. Once the customer taps the :guilabel:`Order Now` button,
all available preset options, along with their respective images, are displayed.

.. image:: presets/kiosk-presets.png
:alt: Presets in kiosk mode.
:scale: 60%

The features :ref:`configured for presets <pos/presets/configuration>` trigger specific
actions in the kiosk:

- Customers may need to enter specific information in the :guilabel:`We need more info`
pop-up:

- If :guilabel:`Identification` is required:

- :guilabel:`Name`: Customers must enter their :guilabel:`Name`. The :guilabel:`Phone`
field is optional.
- :guilabel:`Address`: Customers must enter their :guilabel:`Name`, :guilabel:`Phone`
number, and address details.

- If the :guilabel:`Manage orders by time` option is enabled: Customers must select a time
on a specific date from the dropdown menu.
- If the :guilabel:`Email confirmation` field is set: Customers must enter their
:guilabel:`Email` to proceed.

- If :guilabel:`Table` is selected in the :guilabel:`Service at` field for :guilabel:`Self
ordering` mode, customers must enter their tracker number at the end of the ordering
process.

Comment thread
lman-odoo marked this conversation as resolved.
.. seealso::
- :doc:`preparation`
- :doc:`../restaurant/online_food_delivery`
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -82,13 +82,17 @@ Additional settings

.. note::
- Leaving the :guilabel:`Points of Sale` field empty shares the button with all POS.
- The :guilabel:`Preview` column automatically updates, giving you a glimpse of the
- The :guilabel:`Preview` column automatically updates, giving you a glimpse of the
button's appearance based on its configuration.

.. tab:: Service location and payment options

- Set where the service occurs by selecting :guilabel:`Table` or :guilabel:`Pickup zone`
under the :guilabel:`Service` field.

.. note::
Service zones can also be defined for :doc:`presets <presets>` used for self-ordering.

- Define when and how customers pay in the :guilabel:`Pay after` field. Customers can pay
after :guilabel:`Each meal` or for :guilabel:`Each order`.
- The service location and payment options available depend on the type of self-ordering
Expand Down Expand Up @@ -179,6 +183,8 @@ settings are applied correctly. Click :icon:`fa-arrow-right` :guilabel:`Preview
under the :guilabel:`Self Ordering` field to ensure all :ref:`additional settings
<pos/self_order/add-settings>` are correctly applied.

.. _extra/self_order/usage-guidelines:

Usage guidelines
================

Expand Down Expand Up @@ -211,6 +217,7 @@ Usage guidelines
POS card.
- Click :guilabel:`Open Kiosk` on the POS card to reopen the self-ordering interface in a new
tab or to refresh the kiosk's IoT Box touchscreen display if it is already running.
- Configure :doc:`presets <presets>` to streamline the ordering process.

On the customers' end,

Expand Down
46 changes: 13 additions & 33 deletions content/applications/sales/point_of_sale/restaurant.rst
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ Order management
================

The POS register allows for :ref:`processing <pos/restaurant/orders/process>` and :ref:`transferring
<pos/restaurant/floors/transfer>` orders, defining :ref:`presets <pos/restaurant/orders/preset>`,
<pos/restaurant/floors/transfer>` orders, defining :doc:`presets <extra/presets>`,
and managing :ref:`courses <pos/restaurant/orders/courses>`.

.. _pos/restaurant/orders/process:
Expand All @@ -229,12 +229,12 @@ To process an order from the POS register, follow these steps:
- Click :guilabel:`Set Table` to link the order to a table. Enter a table number and click
:guilabel:`Assign`.
- Click :guilabel:`Set Tab` to enter the open order's name and click :guilabel:`Apply`.
#. Click :guilabel:`Order` to validate the order.

When ready, :ref:`process the order payment <pos/restaurant/bills/payment>`.
#. Click :guilabel:`Send` to validate the order.
Comment thread
lman-odoo marked this conversation as resolved.
#. When ready, :ref:`process the order payment <pos/restaurant/bills/payment>`.

.. note::
Clicking :guilabel:`Order` redirects to the :ref:`Floor plan <pos/restaurant/floors>` view if
Clicking :guilabel:`Send` redirects to the :ref:`Floor plan <pos/restaurant/floors>` view if
:guilabel:`Tables` is selected as the :ref:`default start screen <pos/restaurant/default>`.

.. tip::
Expand All @@ -247,6 +247,15 @@ When ready, :ref:`process the order payment <pos/restaurant/bills/payment>`.
available when the cart is empty.
- :ref:`Configure a printer <pos/restaurant/orders-printing>` to send an order to the kitchen
printer when clicking :guilabel:`Order`.
- Use :doc:`presets <extra/presets>` when offering different service types, e.g., :guilabel:`Dine
In`, :guilabel:`Takeout`, or :guilabel:`Delivery`.
- If the order is a direct sale not linked to any table, its name can be modified by clicking the
:icon:`fa-ellipsis-v` (:guilabel:`Actions`) menu and selecting :icon:`fa-pencil-square-o`
:guilabel:`Edit Order Name`.

.. seealso::
- :doc:`extra/preparation`
- :doc:`restaurant/online_food_delivery`

.. _pos/restaurant/floors/transfer:

Expand All @@ -260,35 +269,6 @@ the target table in the :ref:`Floor plan <pos/restaurant/floors>` view:
- Select an available table to transfer customers and their orders.
- Select an occupied table to merge customers and their orders.

.. _pos/restaurant/orders/preset:

Presets
-------

Presets are used to apply preconfigured settings to orders and determine whether an order is for
:guilabel:`Dine In`, :guilabel:`Takeout`, or :guilabel:`Delivery`. They also control whether
customer contact information is required and apply capacity limits based on opening hours and order
quantity.

To use preconfigured presets, go to the :ref:`POS settings <pos/use/settings>` and enable the
:guilabel:`Take out / Delivery / Members` setting under the :guilabel:`Point of Sale` section. Set
the :guilabel:`Default` field to the preferred preset, then save. From the :ref:`register
<pos/restaurant/orders>`, select the relevant preset, and :ref:`process the order
<pos/restaurant/orders/process>`:

- :guilabel:`Dine In`: Assign a :ref:`table or open a tab <pos/restaurant/orders/process>`.
- :guilabel:`Takeout`: Enter the order's name and click :guilabel:`Apply`, then select a date
and a time slot.
- :guilabel:`Delivery`: Select an existing customer, or click :guilabel:`Create` to add one. Then,
select a time slot.

.. tip::
Click the preset button to switch to another one.

.. seealso::
- :doc:`extra/preparation`
- :doc:`restaurant/online_food_delivery`

.. _pos/restaurant/orders/courses:

Courses
Expand Down
18 changes: 12 additions & 6 deletions content/applications/sales/point_of_sale/use.rst
Original file line number Diff line number Diff line change
Expand Up @@ -128,8 +128,14 @@ To create customers from the backend:
#. Click :guilabel:`New`.
#. Fill in the customer form information.

To assign a customer to an order, click :guilabel:`Customer` to access the customer list on the POS
register or the payment screen, and select the desired customer.
To assign a customer to an order, click :guilabel:`Customer` to open the :guilabel:`Choose customer`
pop-up on the POS register or the payment screen, and select the desired customer. To change the
customer, click their name in the pad, then select another one.

.. tip::
To edit the customer's details, click the customer's name in the pad, then click the
:icon:`fa-bars` (:guilabel:`hamburger menu`) icon next to the relevant customer and select
:guilabel:`Edit Details`.

.. note::
Creating a new customer from the POS register or the payment screen assigns them automatically to
Expand Down Expand Up @@ -190,8 +196,8 @@ To access an order in the register, click it, then click :guilabel:`Load Order`.
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 the related orders.
Click it again to return to the main overview.
- If using :doc:`presets <extra/presets>`, click one to view the related orders. Click it again
to return to the main overview.

.. _pos/use/refund:

Expand Down Expand Up @@ -227,8 +233,8 @@ To refund a returned product, follow these steps:
- 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.
- Selecting the returned product(s) from the POS register and a :ref:`preset
<pos/restaurant/orders/preset>` set up for the return mode.
- Selecting the returned product(s) from the POS register and a :doc:`preset
<extra/presets>` set up for the return mode.
- Accessing the POS dashboard, navigating to :menuselection:`Point of Sale --> Orders -->
Orders`, selecting an order, and clicking :guilabel:`Return Products`.

Expand Down