Compare commits

...

12 Commits

Author SHA1 Message Date
samueljlieber 8e7fcfb6d6 [IMP] contributing: documentation macOS make install
closes odoo/documentation#12148

X-original-commit: d4ed263fa2
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2025-02-24 14:15:02 +00:00
xpl-odoo 6909b351ac [MOV] accounting: invoice sequence section on a separate page
closes odoo/documentation#12141

X-original-commit: 009dd70bd3
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2025-02-24 12:49:53 +00:00
jero-odoo b813ac3ba4 [IMP] Purchase: Reordering Rules Update
closes odoo/documentation#12137

X-original-commit: 035e0ec1e8
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: Dina Klarisse Dugar <dikd@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2025-02-21 21:58:07 +00:00
LoredanaLrpz 2280e60c57 [IMP] pos: resize & scale content (table and screenshots)
task-4521596

closes odoo/documentation#12096

X-original-commit: 989f2faf9a
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2025-02-21 12:45:02 +00:00
jero-odoo 654a817572 [IMP] inventory: view empty locations
closes odoo/documentation#12129

X-original-commit: 1262245b53
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
2025-02-21 12:45:00 +00:00
Tiffany Chang (tic) c68ffc0b20 [I18N] *: re-export pot files
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)

closes odoo/documentation#12130

X-original-commit: aad8aa1314
Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2025-02-21 09:42:54 +00:00
dikd-odoo 562b7bf81b [IMP] sales: gelato feedback
Apply suggestions from JERO review

edits

closes odoo/documentation#12122

X-original-commit: e32f4ec766
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: Jess Rogers <104637850+jero-odoo@users.noreply.github.com>
2025-02-21 01:17:58 +00:00
Charles Mutabazi fa0938ed42 [FIX] Use <chatter> instead of <div class="oe_chatter">
closes odoo/documentation#12109

X-original-commit: 0ae856bcf6
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-02-19 12:20:29 +00:00
jero-odoo 840be9d9db [ADD] Purchase: Templates
closes odoo/documentation#12102

X-original-commit: 5bb043bd3b
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: dikd-odoo <dikd@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2025-02-19 03:17:25 +00:00
xpl-odoo 8e6f295510 [IMP] accounting: clarify invoice sequence format
task-4564980

closes odoo/documentation#12098

X-original-commit: d2c610179a
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2025-02-18 23:32:40 +00:00
dikd-odoo 60f98d8fb3 [ADD] sales: gelato integration
edit image sizes

edits

Apply suggestions from FEKU review

edits

Apply suggestions from FEKU review

edits

Apply suggestions from FEKU review

edits

Update content/applications/sales/sales/gelato.rst

edits

Apply suggestions from ZST review

edits

edits

sales file

Apply suggestions from SALI review

Apply suggestions from SALI review2

images

Edits

closes odoo/documentation#12095

X-original-commit: c0dd6b7d1c
Signed-off-by: Dina Klarisse Dugar (dikd) <dikd@odoo.com>
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2025-02-17 14:58:50 +00:00
Christophe Monniez 123c654b01 [REL] saas-18.2 2025-02-17 13:43:05 +00:00
42 changed files with 10493 additions and 7660 deletions
+1 -1
View File
@@ -27,7 +27,7 @@ SOURCE_DIR = content
HTML_BUILD_DIR = $(BUILD_DIR)/html
ifdef VERSIONS
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/master
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/saas-18.2
endif
ifneq ($(CURRENT_LANG),en)
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/$(CURRENT_LANG)
+2 -1
View File
@@ -22,7 +22,7 @@ copyright = 'Odoo S.A.'
# `version` is the version info for the project being documented, acts as replacement for |version|,
# also used in various other places throughout the built documents.
# `release` is the full version, including a/b/rc tags. Acts as replacement for |release|.
version = release = 'master'
version = release = 'saas-18.2'
# `current_branch` is the technical name of the current branch.
# E.g., saas-15.4 -> saas-15.4; 12.0 -> 12.0, master -> master (*).
@@ -231,6 +231,7 @@ sphinx.transforms.i18n.docname_to_domain = (
# is populated. If a version is passed to `versions` but is not listed here, it will not be shown.
versions_names = {
'master': "Master",
'saas-18.2': "Odoo Online",
'saas-18.1': "Odoo Online",
'18.0': "Odoo 18",
'saas-17.4': "Odoo Online",
@@ -7,8 +7,7 @@ Customer invoices
A customer invoice is a document issued by a company for products and/or services sold to a
customer. It records receivables as they are sent to customers. Customer invoices can include
amounts due for the goods and/or services provided, applicable sales taxes, shipping and handling
fees, and other charges.
Odoo supports multiple invoicing and payment workflows.
fees, and other charges. Odoo supports multiple invoicing and payment workflows.
.. seealso::
:doc:`/applications/finance/accounting/customer_invoices/overview`
@@ -84,14 +83,14 @@ Invoice confirmation
Click :guilabel:`Confirm` when the invoice is completed. The invoice's status changes to
:guilabel:`Posted`, and a journal entry is generated based on the invoice configuration. On
confirmation, Odoo assigns each invoice a unique number from a defined
:ref:`sequence <accounting/invoice/sequence>`.
confirmation, Odoo assigns each invoice a unique number from a defined :doc:`sequence
<customer_invoices/sequence>`.
.. note::
- Once confirmed, an invoice can no longer be updated. Click :guilabel:`Reset to draft` if
changes are needed.
- If required, invoices and other journal entries can be locked once posted
using the :ref:`Secure posted entries with hash <data-inalterability/restricted>` feature.
- If required, invoices and other journal entries can be locked once posted using the
:ref:`Secure posted entries with hash <data-inalterability/restricted>` feature.
.. _accounting/invoice/sending:
@@ -172,81 +171,6 @@ how much the customer is overdue. These actions are bundled into follow-up level
an invoice is overdue by a certain number of days. If there are multiple overdue invoices for the
same customer, the actions are performed on the most overdue invoice.
.. _accounting/invoice/sequence:
Sequence
========
Odoo assigns each document a unique sequence made up of a prefix and a number. The prefix combines
the journal code and the entry date and groups entries by period. The number is unique for each
period and is used to identify the entry. The default sequence on customer invoices is
INV/YYYY/number. In some specific cases, :ref:`resequencing <accounting/invoice/resequencing>`
invoices might be necessary.
.. _accounting/invoice/resequencing:
Resequencing
------------
Resequencing is not possible:
- When entries are before a lock date.
- When the sequence leads to a duplicate.
- When the :guilabel:`Invoice Date` doesn't match the date contained in the new sequence number,
e.g., if the sequence is changed to INV/2023/XXXXX for a document with an :guilabel:`Invoice Date`
of 2024.
To change the invoice sequence with the structure INV/YYYY/MM/number, add `/MM` with the number of
the month of the :guilabel:`Invoice date`. Odoo will recognize the "/" term as a month and update
the future invoice sequence appropriately with the month of the :guilabel:`Invoice date`. For
example, if the invoice date is January, change the sequence to `INV/2024/01/XXXXX`.
In this case, if the :guilabel:`Invoice date` isn't aligned with the sequence number, a
:guilabel:`Validation Error` message appears.
.. note::
- All sequence changes are logged in the chatter to keep the information.
- Sequence changes also affect the format of future invoices' sequences.
.. _accounting/invoice/resequencing-one-invoice:
Resequencing a single invoice
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To resequence the last confirmed invoice, click :guilabel:`Reset to Draft`, then change the
sequence. The invoice now appears in red on the :guilabel:`Customer Invoices` list.
.. _accounting/invoice/mass-resequencing:
Mass-resequencing invoices
~~~~~~~~~~~~~~~~~~~~~~~~~~
It can be helpful to resequence multiple invoice numbers. For example, when importing invoices from
another invoicing or accounting system and the reference originates from the previous software,
continuity for the current year must be maintained without restarting from the beginning.
.. note::
This feature is only available to users with administrator or advisor access.
Follow these steps to resequence invoice numbers:
#. Activate the :ref:`developer mode <developer-mode>`.
#. From the :guilabel:`Accounting Dashboard`, open the :guilabel:`Customer Invoices` journal.
#. Select the invoices that need a new sequence.
#. Click the :icon:`fa-cog` :guilabel:`Actions` menu and select :guilabel:`Resequence`.
#. In the :guilabel:`Ordering` field, choose to
- :guilabel:`Keep current order`: The order of the numbers remains the same.
- :guilabel:`Reorder by accounting date`: The number is reordered by accounting date.
#. Set the :guilabel:`First New Sequence`.
#. :guilabel:`Preview Modifications` and click :guilabel:`Confirm`.
The first invoice using the new sequence appears in red in the :guilabel:`Customer Invoices` list.
.. image:: customer_invoices/invoice-sequencing.png
:alt: Resequence options window
.. _accounting/invoice/reporting:
Reporting
@@ -270,18 +194,18 @@ go to :menuselection:`Accounting --> Reporting --> Partner Ledger`.
Aged Receivable
~~~~~~~~~~~~~~~
To review outstanding customer invoices and their related due dates, use the
:ref:`Aged Receivable <accounting/reporting/aged-receivable>` report. To access it, go to
:menuselection:`Accounting --> Reporting --> Aged Receivable`.
To review outstanding customer invoices and their related due dates, use the :ref:`Aged Receivable
<accounting/reporting/aged-receivable>` report. To access it, go to :menuselection:`Accounting -->
Reporting --> Aged Receivable`.
.. _accounting/invoices/aged-payable:
Aged Payable
~~~~~~~~~~~~
To review outstanding vendor bills and their related due dates, use the
:ref:`Aged Payable <accounting/reporting/aged-payable>` report. To access it, go to
:menuselection:`Accounting --> Reporting --> Aged Payable`.
To review outstanding vendor bills and their related due dates, use the :ref:`Aged Payable
<accounting/reporting/aged-payable>` report. To access it, go to :menuselection:`Accounting -->
Reporting --> Aged Payable`.
.. _accounting/invoices/profit-and-loss:
@@ -311,6 +235,7 @@ liabilities, and equity at a specific time.
customer_invoices/cash_rounding
customer_invoices/deferred_revenues
customer_invoices/electronic_invoicing
customer_invoices/sequence
customer_invoices/snailmail
customer_invoices/epc_qr_code
customer_invoices/incoterms
@@ -0,0 +1,66 @@
================
Invoice sequence
================
When confirming an invoice, Odoo generates a unique invoice reference number. By default, Odoo uses
the following sequence format `INV/year/incrementing-number` (e.g., `INV/2025/00001`), which
restarts from `00001` each year.
However, it is possible to :ref:`change the sequence format <accounting/invoice/resequencing>` and
its periodicity, and to :ref:`mass-resequence invoices <accounting/invoice/mass-resequencing>`.
.. note::
Changes made to reference numbers are logged in the chatter.
.. _accounting/invoice/resequencing:
Changing the default sequence
=============================
To customize the default sequence, open the last confirmed invoice, click :guilabel:`Reset to
Draft`, and edit the invoice's reference number.
.. image:: sequence/reference-number.png
:alt: Editing the reference number of an invoice.
Odoo then explains how the detected format will be applied to all future invoices. For example, if
the current invoice's month is added, the sequence's periodicity will change to every month instead
of every year.
.. image:: sequence/sequence-dialog.png
:alt: Editing the reference number of an invoice.
.. tip::
The sequence format can be edited directly when creating the first invoice of a given sequence
period.
.. _accounting/invoice/mass-resequencing:
Mass-resequencing invoices
==========================
It can be helpful to resequence multiple invoice numbers. For example, when importing invoices from
another invoicing or accounting system and the reference originates from the previous software,
continuity for the current year must be maintained without restarting from the beginning.
.. note::
This feature is only available to users with administrator or advisor access.
Follow these steps to resequence invoice numbers:
#. Activate the :ref:`developer mode <developer-mode>`.
#. From the :guilabel:`Accounting Dashboard`, open the :guilabel:`Customer Invoices` journal.
#. Select the invoices that need a new sequence.
#. Click the :icon:`fa-cog` :guilabel:`Actions` menu and select :guilabel:`Resequence`.
#. In the :guilabel:`Ordering` field, choose to
- :guilabel:`Keep current order`: The order of the numbers remains the same.
- :guilabel:`Reorder by accounting date`: The number is reordered by accounting date.
#. Set the :guilabel:`First New Sequence`.
#. :guilabel:`Preview Modifications` and click :guilabel:`Confirm`.
The first invoice using the new sequence appears in red in the :guilabel:`Customer Invoices` list.
.. image:: sequence/invoice-sequencing.png
:alt: Resequence options window
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

@@ -2,22 +2,20 @@
Locations dashboard
===================
.. |down| replace:: :icon:`fa-caret-down` :guilabel:`(caret down)`
The *Locations* dashboard in the *Inventory* application provides an overview of on-hand storage
The *Locations* dashboard in the **Inventory** application provides an overview of on-hand storage
locations for company products. Use this report to see where stock is stored, identify
:ref:`misplaced items <inventory/warehouse_storage/stranded>`, or view past inventory to see product
locations on specific dates.
.. note::
The *Reporting* menu in *Inventory* is only accessible to users with :doc:`admin access
<../../../../general/users/access_rights>`.
To access the locations report, the *Storage Locations* feature must be enabled. To do that, go to
:menuselection:`Inventory app --> Configuration --> Settings`. In the :guilabel:`Warehouse` section,
tick the checkbox for :guilabel:`Storage Locations`, and click :guilabel:`Save`. Then, access the
locations dashboard by navigating to :menuselection:`Inventory app --> Reporting --> Locations`.
.. note::
The *Reporting* menu in **Inventory** is only accessible to users with :doc:`admin access
<../../../../general/users/access_rights>`.
.. _inventory/warehouses_storage/locations-report:
Navigate the locations dashboard
@@ -31,7 +29,7 @@ By default, the :guilabel:`Locations` dashboard lists all on-hand products in st
- :guilabel:`Package`: the package that the product is stored in, if any.
- :guilabel:`Lot/Serial Number`: if the product has a lot or serial number, it is specified here.
- :guilabel:`On Hand Quantity`: current quantity of products. Click the :icon:`fa-pencil`
:guilabel:`(pencil)` icon to :doc:`modify the on-hand quantity
:guilabel:`(edit)` icon to :doc:`modify the on-hand quantity
<../inventory_management/count_products>`.
- :guilabel:`Reserved Quantity`: on-hand quantity reserved for operations, such as pickings,
delivery orders, or manufacturings.
@@ -47,25 +45,35 @@ Click the buttons to the right of each row item to access additional information
View what the product is reserved for, by clicking the :icon:`fa-history` :guilabel:`History`
button on the far-right of the product line.
On the :guilabel:`Moves History` page, remove the :icon:`fa-filter` :guilabel:`Done` filter.
Then, click the |down| icon to the right of the :guilabel:`Search...` bar to reveal filter
options, and select the :guilabel:`To Do` filter.
On the :guilabel:`Moves History` page, remove the :icon:`fa-filter` :guilabel:`Done` filter
from the search bar to reveal filter options, and select the :guilabel:`To Do` filter.
.. image:: locations/reserved-products.png
:align: center
:alt: Display *Moves History* page of to-do deliveries that reserved the product.
- :icon:`fa-refresh` :guilabel:`Replenishment`: access the :doc:`reordering rules
<../replenishment/reordering_rules>` page to replenish products at the specific location.
In the upper-left corner of the page, click the the :guilabel:`New` button to make an
:doc:`inventory adjustment <../inventory_management/count_products>` to record quantities of a
certain product at a specific :guilabel:`Location`.
In the upper-left corner of the page, click the :guilabel:`New` button to make an :doc:`inventory
adjustment <../inventory_management/count_products>` to record quantities of a certain product at a
specific :guilabel:`Location`.
To view products, quantities, and their locations for a specified date, click the
:guilabel:`Inventory At Date` button (also located in the upper-left corner of the page). Select a
date and time in the :guilabel:`Inventory at Date` field, then click :guilabel:`Confirm`.
View empty locations
--------------------
To view which locations are currently empty, navigate to :menuselection:`Inventory --> Configuration
--> Locations`.
Empty locations are designated by the checkbox in the :guilabel:`Is Empty` column. To show only
empty locations, click into the search bar and select the :guilabel:`Empty Locations` filter.
.. image:: locations/empty-locations.png
:alt: A list of the empty locations in the Inventory app.
Generate reports
================
@@ -82,8 +90,8 @@ Dead stock report
To get list of expired items, also referred to as *dead stock*, follow these steps:
#. Go to :menuselection:`Inventory app --> Reporting --> Locations`.
#. Then, click the |down| icon to the right of the :guilabel:`Search...` bar to reveal a drop-down
list of :guilabel:`Filters`, :guilabel:`Group By`, and :guilabel:`Favorite` options.
#. Then, click into the search bar to reveal a drop-down list of :guilabel:`Filters`,
:guilabel:`Group By`, and :guilabel:`Favorite` options.
#. Enable the :guilabel:`Internal Locations` and :guilabel:`Expiration Alerts` option under the
:guilabel:`Filters` section.
@@ -95,7 +103,6 @@ The report now displays a list of expired products.
:menuselection:`Inventory app --> Products --> Lots/Serial Numbers`.
.. image:: locations/dead-stock.png
:align: center
:alt: Show a list of products whose expiration dates have exceeded today.
.. _inventory/warehouse_storage/stranded:
@@ -103,21 +110,20 @@ The report now displays a list of expired products.
Stranded inventory report
-------------------------
Businesses using multi-step flows in the *Inventory* or *Manufacturing* apps, may have *stranded*
items, which are products not in their proper storage locations, due to human error. Use this report
to periodically check transfer locations (e.g. *WH/Input*, *WH/Pre-Processing*) to ensure items are
moved to their intended storage locations, and accurately recorded in the database.
Businesses using multi-step flows in the **Inventory** or **Manufacturing** apps, may have
*stranded* items, which are products not in their proper storage locations, due to human error. Use
this report to periodically check transfer locations (e.g. *WH/Input*, *WH/Pre-Processing*) to
ensure items are moved to their intended storage locations, and accurately recorded in the database.
To get a list of items that might be sitting idly in storage, follow these steps:
#. Go to :menuselection:`Inventory app --> Reporting --> Locations`.
#. In the :guilabel:`Search...` bar, begin typing the name of the location where products are
intended to be moved to, such as `WH/Input`, or `WH/Packing`.
#. In the search bar, begin typing the name of the location where products are intended to be moved
to, such as `WH/Input`, or `WH/Packing`.
#. Select the :guilabel:`Search Location for:` [location name] option from the resulting drop-down
menu that appears beneath the :guilabel:`Search...` bar.
menu that appears beneath the search bar.
.. image:: locations/search-input-location.png
:align: center
:alt: Show search result for the location.
The report now displays a list of products at the transit location.
@@ -130,7 +136,6 @@ The report now displays a list of products at the transit location.
non-storage locations.
.. image:: locations/stranded-inventory.png
:align: center
:alt: Show items stored at a specific location.
Inventory discrepancy report
@@ -140,20 +145,17 @@ To generate a report of items that have been moved since the last :doc:`inventor
<../inventory_management/cycle_counts>`, follow these steps:
#. Go to :menuselection:`Inventory app --> Reporting --> Locations`.
#. Then, click the |down| icon to the right of the :guilabel:`Search...` bar to reveal a drop-down
list of :guilabel:`Filters`, :guilabel:`Group By`, and :guilabel:`Favorite` options.
#. Then, click into the search bar to reveal a drop-down list of :guilabel:`Filters`,
:guilabel:`Group By`, and :guilabel:`Favorite` options.
#. Enable the :guilabel:`Internal Locations` and :guilabel:`Conflicts` option from the
:guilabel:`Filters` section.
#. The report now displays items whose quantities have changed since the last cycle count.
.. image:: locations/discrepancy.png
:align: center
:alt: Show items from the *Conflicts* filter in the report.
#. Click the :icon:`fa-history` :guilabel:`History` button to view inventory transfers, including
receipts and deliveries, that have occurred since the inventory adjustment.
.. image:: locations/history.png
:align: center
:alt: Show *Moves History*, showing a delivery that occurred after an inventory adjustment.
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

@@ -10,5 +10,6 @@ Manage deals
manage_deals/rfq
manage_deals/blanket_orders
manage_deals/calls_for_tenders
manage_deals/purchase_templates
manage_deals/control_bills
manage_deals/manage
@@ -0,0 +1,80 @@
==================
Purchase templates
==================
.. |Pts| replace:: Purchase templates
.. |pt| replace:: purchase template
.. |RFQ| replace:: :abbr:`RFQ (request for quotation)`
.. |RFQs| replace:: :abbr:`RFQs (requests for quotation)`
*Purchase templates* are an agreement type that allow for the repeated creation of requests for
quotations (RFQs) for recurring purchases. Products can then be added and quantities can be changed,
as needed. |Pts| can be used for multiple vendors, saving time and simplifying the |RFQ| process.
|Pts| differ from *blanket orders* in that a :doc:`blanket order <blanket_orders>` is a large order
split into several deliveries, therefore all |RFQs| must be for the same vendor. |PTs| can be
replicated for multiple vendors, and can copy over quantities, which is useful when placing frequent
orders.
Configuration
-------------
First, navigate to :menuselection:`Purchase app --> Configuration --> Settings`. Under the
:guilabel:`Orders` section, tick the :guilabel:`Purchase Agreements` checkbox. Click
:guilabel:`Save` to save the changes.
.. image:: purchase_templates/purchase-agreements-setting.png
:alt: The Purchase agreements setting in the Purchase app.
Create a new template
---------------------
Navigate :menuselection:`Purchase app --> Orders --> Purchase Agreements` and click :guilabel:`New`.
Select a :guilabel:`Vendor` from the drop-down list.
.. tip::
To make this template available to use with multiple vendors, leave the :guilabel:`Vendor` field
blank.
In the :guilabel:`Agreement Type` field, select :guilabel:`Purchase Template` from the drop-down.
Confirm the information in the remaining fields is correct, or update as needed.
On the :guilabel:`Products` tab, click :guilabel:`Add a line`, and select the desired product.
Update the :guilabel:`Quantity`, and set the :guilabel:`Unit Price`.
.. important::
When adding products to a new blanket order, the pre-existing prices of products are not
automatically added to the product lines. Instead, the prices **must** be manually assigned, by
changing the value in the :guilabel:`Unit Price` column to an agreed-upon price with the listed
vendor. Otherwise, the price will remain `0`.
After adding all necessary products, click :guilabel:`Confirm`.
Create a new RFQ from a purchase template
=========================================
After confirming a |pt|, new quotations can be created directly from the |pt| form. |RFQs| using
this form are pre-populated with information based on the rules set in the form. Additionally, new
quotations are automatically linked to this |pt| form, via the :icon:`fa-list-alt`
:guilabel:`RFQs/Orders` smart button at the top of the form.
To :ref:`create a new quotation <purchase/manage_deals/create-new-rfq>`, click :guilabel:`New
Quotation`. This opens a new |RFQ|, that is pre-populated with the correct information, depending on
the settings configured on the |pt| form.
If there was no vendor identified on the |pt|, choose a :guilabel:`Vendor` from the drop-down list.
Products can be added to the |RFQ| by clicking :guilabel:`Add a product` in the :guilabel:`Products`
tab. To remove a product, click the :icon:`fa-trash-o` :guilabel:`(trash)` icon at the far-right of
the product line.
From the new |RFQ| form, click :guilabel:`Send by Email` to compose and send an email to the listed
vendor. Click :guilabel:`Print RFQ` to generate a printable PDF of the quotation; or, once ready,
click :guilabel:`Confirm Order` to confirm the purchase order.
After confirming the order, return to the |pt| via the breadcrumbs. The :icon:`fa-list-alt`
:guilabel:`RFQs/Orders` smart button has been updated to list the confirmed order.
.. image:: purchase_templates/rfq-smart-button.png
:alt: The RFQ smart button on a purchase template.
Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

@@ -91,6 +91,8 @@ In addition to various view options, the :guilabel:`Requests for Quotation` dash
.. seealso::
:doc:`../../../essentials/search`
.. _purchase/manage_deals/create-new-rfq:
Create new |RFQ|
----------------
@@ -3,12 +3,20 @@ Configure reordering rules
==========================
For certain products, it is necessary to ensure that there is always a minimum amount available on
hand at any given time. By adding a reordering rule to a product, it is possible to automate the
reordering process so that a purchase order is automatically created whenever the amount on hand
falls below a set threshold.
hand at any given time. Maintaining a minimum stock level ensures that businesses can meet customer
demand without delays, and keep operations running smoothly. It also helps buffer against supply
chain disruptions and unexpected spikes in demand. Inefficiencies may arise from inaccurate demand
forecasting, supply chain delays, and warehouse mismanagement, all of which can lead to increased
operational costs and wasted resources.
Keep highly demanded products in-stock at all times using reordering rules, that trigger a RFQ
(Request for Quotation) each time the forecasted stock quantities fall below the minimum.
:abbr:`RFQs (Requests for Quotation)` generated from reordering rules have the vendor, price,
quantity needed to reorder, which makes things faster and more convenient.
.. important::
The *Inventory* module must be installed to use reordering rules.
The **Inventory** app must be installed to use reordering rules, as it keeps track of stock
quantity.
Configure products for reordering
=================================
@@ -16,28 +24,29 @@ Configure products for reordering
Products must be configured in a specific way before a reordering rule can be added to them.
Starting from the :menuselection:`Inventory`, :menuselection:`Manufacturing`,
:menuselection:`Purchase`, or :menuselection:`Sales` module, navigate to :menuselection:`Products
--> Products` and then click :guilabel:`Create` to make a new product. Alternatively, find a product
that already exists in the database and click into it's product form.
:menuselection:`Purchase`, or :menuselection:`Sales` app, navigate to :menuselection:`Products -->
Products` and then click :guilabel:`New` to make a new product. Alternatively, find a product that
already exists in the database and click into it's product form.
Next, on the product form, enable reordering by checking the :guilabel:`Can be Purchased` option
underneathe the :guilabel:`Product Name` field. Finally, set the :guilabel:`Product Type` to
`Storable Product` under the :guilabel:`General Information` tab.
Next, on the product form, enable reordering by ticking the :guilabel:`Purchase` checkbox
underneath the :guilabel:`Product` name field. Then, under the :guilabel:`General Information` tab,
set the :guilabel:`Product Type` to :guilabel:`Goods`. Finally, tick the checkbox labeled
:guilabel:`Track Inventory`, and select an :doc:`option
<../../inventory/product_management/product_tracking>` from the drop-down.
.. image:: reordering/product-configured-for-reordering.png
:align: center
:alt: Configure a product for reordering in Odoo.
Add a reordering rule to a product
==================================
After properly configuring a product, a reordering rule can be added to it by selecting the now
visible :guilabel:`Reordering Rules` tab at the top of that product's form, and then clicking
:guilabel:`Create` on the :guilabel:`Reordering Rules` dashboard.
visible :icon:`fa-refresh` :guilabel:`Reordering Rules` smart button at the top of that product's
form, then clicking :guilabel:`Create` on the :guilabel:`Reordering Rules` dashboard.
.. image:: reordering/reordering-rules-tab.png
:align: center
:alt: Access reordering rules for a product from the product page in Odoo.
.. tip::
If the :icon:`fa-refresh` :guilabel:`Reordering Rules` smart button is not visible, click
:guilabel:`More`.
Once created, the reordering rule can be configured to generate purchase orders automatically by
defining the following fields:
@@ -46,11 +55,11 @@ defining the following fields:
received and entered into stock.
- :guilabel:`Min Quantity` sets the lower threshold for the reordering rule while :guilabel:`Max
Quantity` sets the upper threshold. If the stock on hand falls below the minimum quantity, a new
purchase order will be created to replenish it up to the maximum quantity.
purchase order is then created to replenish it up to the maximum quantity.
.. example::
If :guilabel:`Min Quantity` is set to `5` and :guilabel:`Max Quantity` is set to `25` and the
stock on hand falls to four, a purchase order will be created for 21 units of the product.
stock on hand falls to four, a purchase order is then created for 21 units of the product.
- :guilabel:`Multiple Quantity` can be configured so that products are only ordered in batches of a
certain quantity. Depending on the number entered, this can result in the creation of a purchase
@@ -59,24 +68,26 @@ defining the following fields:
.. example::
If :guilabel:`Max Quantity` is set to `100` but :guilabel:`Multiple Quantity` is set to order
the product in batches of `200`, a purchase order will be created for 200 units of the
the product in batches of `200`, a purchase order is then created for 200 units of the
product.
- :guilabel:`UoM` specifies the unit of measurement by which the quantity will be ordered. For
- :guilabel:`Unit` specifies the unit of measurement by which the quantity is to be ordered. For
discrete products, this should be set to `Units`. However, it can also be set to units of
measurement like `Volume` or `Weight` for non-discrete products like water or bricks.
.. image:: reordering/reordering-rule-configuration.png
:align: center
:alt: Configure the reordering rule in Odoo.
.. seealso::
:doc:`../../inventory/warehouses_storage/replenishment/reordering_rules`
Manually trigger reordering rules using the scheduler
=====================================================
Reordering rules will be automatically triggered by the scheduler, which runs once a day by
default. To trigger reordering rules manually, navigate to :menuselection:`Inventory --> Operations
--> Run Scheduler`. On the pop-up window, confirm the manual action by clicking :guilabel:`Run
Scheduler`.
Reordering rules are automatically triggered by the scheduler, which runs once a day by default. To
trigger reordering rules manually, turn on developer mode, navigate to :menuselection:`Inventory app
--> Operations --> Procurement: Run Scheduler`. On the pop-up window, confirm the manual action by
clicking :guilabel:`Run Scheduler`.
.. note::
Manually triggering reordering rules will also trigger any other scheduled actions.
@@ -85,10 +96,10 @@ Manage reordering rules
=======================
To manage the reordering rules for a single product, navigate to that product page's form and select
the :guilabel:`Reordering Rules` tab at the top of the form.
the :guilabel:`Reordering Rules` smart button at the top of the form.
To manage all reordering rules for every product, go to :menuselection:`Inventory --> Configuration
--> Reordering Rules`. From this dashboard, typical bulk actions in Odoo can be performed such as
To manage all reordering rules for every product, go to :menuselection:`Inventory app --> Operations
--> Replenishment`. From this dashboard, typical bulk actions in Odoo can be performed such as
exporting data or archiving rules that are no longer needed. As well, the :guilabel:`Filters`,
:guilabel:`Group By` or triple-dotted menu on the form are available to search for and/or organize
the reordering rules as desired.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

@@ -21,6 +21,7 @@ Then, as the QR code type differs depending on your country, follow the correspo
page from the following table to set them up.
.. list-table::
:widths: 20 20 20 40
:header-rows: 1
* - QR code types
@@ -75,6 +76,7 @@ Create the payment method
.. image:: qr_code_payment/qr-payment-methods-setting.png
:alt: QR code payment method configuration
:scale: 85 %
.. important::
At least one bank account must be defined in the journal to allow QR code payments to be
@@ -85,6 +87,7 @@ the payment method to your POS under the :guilabel:`Payment` section.
.. image:: qr_code_payment/qr-configuration-setting.png
:alt: Enable QR code payment method
:scale: 85 %
Register payments using QR codes
================================
@@ -94,6 +97,7 @@ and displayed on the screen for the customer to scan and pay with their mobile b
.. image:: qr_code_payment/qr-payment-example.png
:alt: QR code payment example
:scale: 75 %
Hit :guilabel:`Confirm Payment` to validate the transaction.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 18 KiB

+1
View File
@@ -21,3 +21,4 @@ deliver and invoice what has been sold.
sales/products_prices
sales/amazon_connector
sales/shopee_connector
sales/gelato
+160 -3
View File
@@ -1,7 +1,164 @@
:orphan:
======
Gelato
======
The documentation for Gelato will be added soon.
Gelato is a global print-on-demand platform that integrates with Odoo to sync product catalogs and
automate order fulfillment.
Connecting Gelato's services with Odoo's **Sales** and **eCommerce** apps enables the following:
- Sync Odoo sales orders with Gelato for automated order fulfillment
- Create and manage Gelato products within Odoo; supports product variant and image sync
- Configure delivery options in Odoo and receive order updates via webhooks.
Configuration
=============
.. important::
The company information (*Company name* and *Billing address*) in the Gelato account *must* match
the company information in the Odoo database in order for sales orders to be confirmed and sent
to Gelato for fulfillment.
.. image:: gelato/gelato-company.png
:alt: Company information in Gelato.
.. image:: gelato/odoo-company.png
:alt: Company information in Odoo.
Configure API keys and webhooks in Gelato
-----------------------------------------
Before configuring the Gelato connector in Odoo, first obtain API credentials and webhooks from the
Gelato account.
API connectors enable Odoo **Sales** to send and receive data from Gelato for order processing,
while webhooks provide real-time updates on order status and shipment tracking.
API Key
~~~~~~~
An API Key is a unique authentication token that allows Odoo to securely communicate with Gelato's
API, enabling order transmission, status updates, and data synchronization.
After logging into Gelato, click :icon:`fa-code` :guilabel:`Developer` in the left menu bar. From
here, click on :guilabel:`API keys`. In the new page, click the :guilabel:`Add API Key` button to
open a new API key form. Type in a name, then click :guilabel:`Create Key`.
Copy the generated API key using :guilabel:`Copy to Clipboard`.
.. image:: gelato/gelato-api-key.png
:alt: Newly generated API key in the Gelato platform.
.. important::
Copy the API key and store it somewhere safe and secure before leaving this page. Once the page
is refreshed or exited, the key will not be available to copy.
If the key cannot be copied or is lost, return to the :guilabel:`API key` page and start over,
creating a new API key.
Webhook
~~~~~~~
A webhook is an automated notification system that instantly updates Odoo when Gelato processes,
ships, or delivers an order, ensuring real-time tracking and minimal manual intervention.
To create a webhook, go to :menuselection:`Developer --> Webhooks` under the :guilabel:`Developer`
drop-down menu in the left menu bar. In the new page, click :guilabel:`Add Webhook` to open a
:guilabel:`Create Webhook` form.
The webhook form requires several specific configurations:
- :guilabel:`URL`: This tells Gelato where to send the order updates in Odoo. Copy and paste the
Odoo database URL with the additional suffix `/gelato/webhook`.
.. example::
`https://stealthywood.odoo.com/gelato/webhook`
- :guilabel:`Events`: Click into the field and select :guilabel:`order_status_updated`. Selecting
:guilabel:`order_status_updated` ensures Odoo receives order changes automatically.
- :guilabel:`Method`: Click into the field and select the :guilabel:`HTTP Post` option, as this is
the request method used to send data from Gelato to Odoo.
- Tick the checkbox next to :guilabel:`I want to take Authorization to this webhook`.
- :guilabel:`Header Name`: In this field, type in `signature` to match the field in Odoo.
- Click :guilabel:`Generate Key` to generate a :guilabel:`Header Value`.
- Click :guilabel:`Create` to complete this webhook configuration.
.. image:: gelato/gelato-webhook.png
:alt: Newly configured webhook in the Gelato platform.
.. tip::
Copy and paste the API key and webhook on a notepad before tabbing out of the Gelato webpage as
backup.
Configure Gelato connector in Odoo
----------------------------------
In Odoo, navigate to :menuselection:`Sales app --> Configuration --> Settings`, then scroll to the
:guilabel:`Connectors` section. Enable the :guilabel:`Gelato` connector by ticking the checkbox.
Next, paste the newly generated API keys and webhook secret key into their respective fields. Once
saved, Gelato is available in Odoo **Sales** and **eCommerce** products.
Synchronizing Gelato products with Odoo Sales
=============================================
It is recommended to have products already configured in Gelato before configuring them in Odoo. To
get the product ID in Gelato, navigate to the :guilabel:`Templates` page from the side bar menu.
Select which product to synchronize in Odoo, then hover over the product card to reveal the
:icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` menu icon. Click the menu icon, then click
:guilabel:`Copy Template ID` to copy the product template ID to the clipboard.
.. seealso::
`Start selling products with Gelato: Quick & easy setup
<https://www.gelato.com/blog/get-started-with-gelato-creating-products>`_
Odoo Sales product
------------------
To create a product in Odoo that matches the Gelato product, navigate to :menuselection:`Sales app
--> Products --> Products`, select :guilabel:`New` to create a new product form. Type in the product
:guilabel:`Name`, then navigate to the :guilabel:`Sales` tab. Find the :guilabel:`Gelato` section,
then click into the :guilabel:`Template Reference` field and paste the copied template ID from the
Gelato product. Finally, click :guilabel:`Synchronize`.
Successful synchronization pulls the Gelato product variant options into the newly configured Odoo
product.
In the new :guilabel:`Print Images` field, click the :guilabel:`default` marker to set a default
product image. Click the :icon:`fa-pencil` :guilabel:`(edit)` icon and select the product image file
to upload, then :guilabel:`Save & Close`.
.. important::
The :guilabel:`Print Images` field *must* be configured on all Gelato products and their
respective product variations before they can be ordered.
Product variants
----------------
To view and edit the newly synchronized product variants, navigate to the :guilabel:`Attributes &
Variants` tab, which will have the variants pulled from the Gelato product configuration. Click the
:guilabel:`Configure` button to edit and configure the variant images, delivery methods, additional
pricing, etc.
Order a Gelato product from Odoo
--------------------------------
Once synchronized, Gelato products are available to order in Odoo through :doc:`sales quotations
<send_quotations>` or on the **eCommerce** store. Gelato delivery options are automatically
synchronized upon API and webhook configuration.
To add Gelato delivery, click :guilabel:`Add shipping` on the sales order. Select
:guilabel:`Standard Delivery` or :guilabel:`Express Delivery` in the :guilabel:`Shipping Method`
field, then click :guilabel:`Get rate`.
Once the quotation is confirmed, it becomes an active sales order, and the order is sent to Gelato
for fulfillment. Once a sales order is sent from Odoo to Gelato, Gelato processes the order,
produces the product at the nearest fulfillment center, and ships it directly to the end-customer.
.. seealso::
:doc:`send_quotations/create_quotations`
.. important::
When creating a sales order for Gelato products in the database, only Gelato products can be
added to the same sales order. Multivendor orders are not available with the Gelato connector at
this time.
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

+5 -1
View File
@@ -132,12 +132,16 @@ to make changes from the GitHub interface.
.. tabs::
.. group-tab:: Linux and macOS
.. group-tab:: Linux
.. code-block:: console
$ sudo apt install make -y
.. group-tab:: macOS
Follow the `guide to install Make on macOS <https://formulae.brew.sh/formula/make>`_
.. group-tab:: Windows
Follow the `guide to install Make on Windows
@@ -766,11 +766,11 @@ widgets, respectively).
<field name="arch" type="xml">
<form string="Business Trip">
<!-- Your usual form view goes here -->
<div class="oe_chatter">
<chatter>
<field name="message_follower_ids" widget="mail_followers"/>
<field name="activity_ids" widget="mail_activity"/>
<field name="message_ids" widget="mail_thread"/>
</div>
</chatter>
</form>
</field>
</record>
+3 -3
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo 18.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-28 12:25+0000\n"
"POT-Creation-Date: 2025-02-20 16:01+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -341,7 +341,7 @@ msgid "The iOS app cannot be updated and will be deprecated at some point in the
msgstr ""
#: ../../content/administration/mobile.rst:67
msgid "While the store apps support multi-accounts, they are not compatible with SS0 authentication."
msgid "While the store apps support multi-accounts, they are not compatible with SSO authentication."
msgstr ""
#: ../../content/administration/neutralized_database.rst:3
@@ -4392,7 +4392,7 @@ msgid "The `num2words` Python package - needed to render textual amounts - does
msgstr ""
#: ../../content/administration/on_premise/packages.rst:135
msgid "Odoo 18 'rpm' package supports Fedora 36."
msgid "Odoo 18 'rpm' package supports Fedora 38."
msgstr ""
#: ../../content/administration/on_premise/packages.rst:137
+4009 -2497
View File
File diff suppressed because it is too large Load Diff
+1681 -2208
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+55 -59
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo 18.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-28 12:25+0000\n"
"POT-Creation-Date: 2025-02-20 16:01+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -4465,11 +4465,11 @@ msgid "Marketing Automation"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:7
msgid "The Odoo *Marketing Automation* application enables users to create dynamic campaigns with actions that automatically occur within a defined duration, such as sending a series of timed mass emails or engaging with leads based on their interactions with marketing campaigns."
msgid "Use the Odoo **Marketing Automation** application to create dynamic campaigns with actions that automatically occur within a defined duration, such as sending a series of timed mass emails or engaging with leads based on their interactions with marketing campaigns."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:11
msgid "While the application is designed to be user-friendly for quickly creating, launching, and reviewing marketing campaigns, it also provides advanced features to automate repetitive tasks throughout the database."
msgid "While the application is designed to be user-friendly for creating, launching, and reviewing marketing campaigns, it also provides advanced features to automate repetitive tasks throughout the database."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:15
@@ -4483,57 +4483,53 @@ msgid "`Odoo Tutorials: Marketing <https://www.odoo.com/slides/marketing-27>`_"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:46
msgid "To install the *Marketing Automation* application, navigate to the :menuselection:`Apps application` and search for `Marketing Automation`."
msgid "To begin, make sure the **Marketing Automation** application is :ref:`installed <general/install>`."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:49
msgid "In the list of results, click the :guilabel:`Activate` button on the :guilabel:`Marketing Automation` application to install it."
msgid "Installing the **Marketing Automation** application also installs the :doc:`Email Marketing <email_marketing>` app, as most features of Odoo **Marketing Automation** are dependent on that specific application."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:53
msgid "Installing the *Marketing Automation* application also installs the :doc:`Email Marketing <email_marketing>` app, as most features of Odoo *Marketing Automation* are dependent on that specific application."
msgid "Additionally, install the :doc:`CRM <../sales/crm>` and :doc:`SMS Marketing <sms_marketing>` applications to access *all* of the features available in **Marketing Automation**."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:57
msgid "Additionally, install the :doc:`CRM <../sales/crm>` and :doc:`SMS Marketing <sms_marketing>` applications to access *all* of the features available in *Marketing Automation*."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:60
#: ../../content/applications/marketing/marketing_automation.rst:56
msgid "The following documentation assumes that all three of these dependent applications are installed on the database."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:66
#: ../../content/applications/marketing/marketing_automation.rst:62
msgid "Campaigns"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:68
#: ../../content/applications/marketing/marketing_automation.rst:64
msgid "A *campaign* refers to a workflow of activities that are automatically executed to a target audience, based on predefined filters, triggers, and durations of activities."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:71
#: ../../content/applications/marketing/marketing_automation.rst:67
msgid "A new campaign can be created from scratch or from a :ref:`template <marketing_automation/campaign-templates>`."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:74
msgid "To create a campaign, navigate to the :menuselection:`Marketing Automation` application, from the main Odoo dashboard, to open the :guilabel:`Campaigns` dashboard. From here, click the :guilabel:`New` button to reveal a new campaign form."
#: ../../content/applications/marketing/marketing_automation.rst:70
msgid "To create a campaign, navigate to the :menuselection:`Marketing Automation` application and click the :guilabel:`New` button to reveal a new campaign form."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:81
#: ../../content/applications/marketing/marketing_automation.rst:76
#: ../../content/applications/marketing/marketing_automation/campaign_templates.rst:5
#: ../../content/applications/marketing/sms_marketing/marketing_campaigns.rst:82
msgid "Campaign templates"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:83
#: ../../content/applications/marketing/marketing_automation.rst:78
msgid "Odoo provides six campaign templates to help users get started. The campaign template cards **only** display when there are no existing campaigns in the database. Once a campaign has been created, the template cards on the *Campaigns* dashboard are replaced with a Kanban view of the existing campaigns."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:88
#: ../../content/applications/marketing/marketing_automation.rst:83
msgid "To get started with a template, navigate to the :menuselection:`Marketing Automation` application, from the main Odoo dashboard, to open the :guilabel:`Campaigns` dashboard, which displays six :doc:`campaign template <marketing_automation/campaign_templates>` cards:"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:0
msgid ":guilabel:`🏷️ Tag Hot Contacts`"
msgid ":icon:`fa-tag` :guilabel:`Tag Hot Contacts`"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:0
@@ -4541,7 +4537,7 @@ msgid ":guilabel:`Send a welcome email to contacts and tag them if they click it
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:0
msgid ":guilabel:`✌️ Welcome Flow`"
msgid ":icon:`fa-hand-peace-o` :guilabel:`Welcome Flow`"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:0
@@ -4557,7 +4553,7 @@ msgid ":guilabel:`Send an email to new recipients to confirm their consent.`"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:0
msgid ":guilabel:`🔍 Commercial prospection`"
msgid ":icon:`fa-search` :guilabel:`Commercial prospection`"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:0
@@ -4565,7 +4561,7 @@ msgid ":guilabel:`Send a free catalog and follow-up according to reactions.`"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:0
msgid ":guilabel:`📞 Schedule Calls`"
msgid ":icon:`fa-phone` :guilabel:`Schedule Calls`"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:0
@@ -4573,7 +4569,7 @@ msgid ":guilabel:`If a lead is created for existing contact, schedule a call wit
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:0
msgid ":guilabel:`⭐️ Prioritize Hot leads`"
msgid ":icon:`fa-star` :guilabel:`Prioritize Hot leads`"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:0
@@ -4584,145 +4580,145 @@ msgstr ""
msgid "Six campaign template cards on the Campaigns dashboard of the Marketing Automation app."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:110
#: ../../content/applications/marketing/marketing_automation.rst:104
msgid "These templates are designed to be used as starting points for creating new campaigns. Click one of the template cards to open the campaign form."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:114
msgid "To display the campaign template cards again after a campaign has been created, type the name of a campaign that does **not** exist in the database into the :guilabel:`Search...` bar, then press :kbd:`Enter`."
#: ../../content/applications/marketing/marketing_automation.rst:108
msgid "To display the campaign template cards again after a campaign has been created, type the name of a campaign that does **not** exist in the database into the search bar, then press :kbd:`Enter`."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:118
#: ../../content/applications/marketing/marketing_automation.rst:111
#: ../../content/applications/marketing/marketing_automation/campaign_templates/double_optin.rst:33
msgid "For example, searching for `empty` displays the campaign template cards again, as long as there is not a campaign with the name \"empty\" in the database."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:122
#: ../../content/applications/marketing/marketing_automation.rst:115
msgid "Targets and filters"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:124
#: ../../content/applications/marketing/marketing_automation.rst:117
msgid "On the campaign form, the :guilabel:`Target` and :guilabel:`Filter` section, also referred to as the domain, contains the fields used to define the target audience for the campaign's reach (i.e., the unique contact records in the database)."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:128
#: ../../content/applications/marketing/marketing_automation.rst:121
msgid "The target audience specifies the type of records available for use in the campaign, such as *Lead/Opportunity*, *Event Registration*, *Contact*, and more."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:132
#: ../../content/applications/marketing/marketing_automation.rst:125
msgid "Records"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:134
#: ../../content/applications/marketing/marketing_automation.rst:127
msgid "The contacts in the system that fit the specified criteria for a campaign are referred to as *records*."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:137
#: ../../content/applications/marketing/marketing_automation.rst:130
msgid "The number of records that are displayed next to the campaign :guilabel:`Filter` represent the total number of records the campaign is targeting."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:141
#: ../../content/applications/marketing/marketing_automation.rst:134
#: ../../content/applications/marketing/marketing_automation/understanding_metrics.rst:157
msgid "Participants"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:143
#: ../../content/applications/marketing/marketing_automation.rst:136
msgid "The records that are engaged by the campaign are referred to as *participants*."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:145
#: ../../content/applications/marketing/marketing_automation.rst:138
msgid "The number of participants engaged in a test run are shown in the *Tests* smart button, which displays on the top of the campaign form after a test has been run."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:148
#: ../../content/applications/marketing/marketing_automation.rst:141
msgid "The number of participants engaged in a running, or stopped, campaign are shown in the *Participants* smart button at the top of the campaign form."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:152
#: ../../content/applications/marketing/marketing_automation.rst:145
msgid ":doc:`Audience targeting <marketing_automation/target_audience>`"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:155
#: ../../content/applications/marketing/marketing_automation.rst:148
msgid "Workflow"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:157
#: ../../content/applications/marketing/marketing_automation.rst:150
msgid "A *workflow* consists of an activity, many activities, or a sequence of activities organized in a campaign. A campaign's workflow is defined in the :guilabel:`Workflow` section of the campaign form."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:161
#: ../../content/applications/marketing/marketing_automation.rst:154
#: ../../content/applications/marketing/marketing_automation/workflow_activities.rst:19
msgid "Activities"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:163
#: ../../content/applications/marketing/marketing_automation.rst:156
msgid "*Activities* are the methods of communication or server actions, organized in a workflow, that are executed within a campaign. Once running, each activity displays the number of participants that are engaged by the activity as *Success* and *Rejected* counts."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:167
#: ../../content/applications/marketing/marketing_automation.rst:160
msgid "To create one of the following activities, click :guilabel:`Add new activity` in the :guilabel:`Workflow` section of the campaign form:"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:170
#: ../../content/applications/marketing/marketing_automation.rst:163
#: ../../content/applications/marketing/marketing_automation/workflow_activities.rst:53
msgid ":ref:`Email <marketing_automation/email-activity-type>`: an email that is sent to the target audience."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:172
#: ../../content/applications/marketing/marketing_automation.rst:165
#: ../../content/applications/marketing/marketing_automation/workflow_activities.rst:55
msgid ":ref:`Server action <marketing_automation/sa-activity-type>`: an internal action within the database that is executed."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:174
#: ../../content/applications/marketing/marketing_automation.rst:167
#: ../../content/applications/marketing/marketing_automation/workflow_activities.rst:57
msgid ":ref:`SMS <marketing_automation/sms-activity-type>`: a text message that is sent to the target audience."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:178
#: ../../content/applications/marketing/marketing_automation.rst:171
msgid ":doc:`marketing_automation/workflow_activities`"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:181
#: ../../content/applications/marketing/marketing_automation.rst:174
msgid "Testing and running"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:183
#: ../../content/applications/marketing/marketing_automation.rst:176
msgid "Once a campaign has been created, it can be tested to ensure the workflow is functioning as expected, to check for errors, and correct any mistakes before it reaches its target audience."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:186
#: ../../content/applications/marketing/marketing_automation.rst:179
msgid "After testing, the campaign can be launched to start engaging the target audience. The campaign can also be launched *without* testing, if the user is confident in the workflow."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:190
#: ../../content/applications/marketing/marketing_automation.rst:183
msgid ":doc:`marketing_automation/testing_running`"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:193
#: ../../content/applications/marketing/marketing_automation.rst:186
msgid "Reporting"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:195
#: ../../content/applications/marketing/marketing_automation.rst:188
msgid "A range of reporting metrics are available to measure the success of each campaign. Navigate to :menuselection:`Marketing Automation app --> Reporting` to access the following menu options:"
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:198
#: ../../content/applications/marketing/marketing_automation.rst:191
msgid ":guilabel:`Link Tracker`: displays the metrics of links to track the number of clicks."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:199
#: ../../content/applications/marketing/marketing_automation.rst:192
msgid ":guilabel:`Traces`: displays the results of all activities from all campaigns."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:200
#: ../../content/applications/marketing/marketing_automation.rst:193
msgid ":guilabel:`Participants`: displays an overview of the participants of all campaigns."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:202
#: ../../content/applications/marketing/marketing_automation.rst:195
msgid "Additionally, each activity within the workflow of a campaign displays its engagement metrics."
msgstr ""
#: ../../content/applications/marketing/marketing_automation.rst:205
#: ../../content/applications/marketing/marketing_automation.rst:198
msgid ":doc:`marketing_automation/understanding_metrics`"
msgstr ""
File diff suppressed because it is too large Load Diff
+1500 -746
View File
File diff suppressed because it is too large Load Diff
+52 -44
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo 18.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-28 12:25+0000\n"
"POT-Creation-Date: 2025-02-20 16:01+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -3446,110 +3446,118 @@ msgid "Using the project dashboard"
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:15
msgid "To access the project dashboard, open the **Project** app and hover over the desired projects card. Then, click the :icon:`fa-vertical-ellipsis` (:guilabel:`vertical ellipsis`) icon and select :guilabel:`Dashboard`."
msgid "To access the project dashboard, open the **Project** app and hover over the desired projects card. Then, click the :icon:`fa-vertical-ellipsis` (:guilabel:`vertical ellipsis`) icon and select :guilabel:`Dashboard`. Alternatively, you can access the project dashboard from the projects :ref:`top bar <project/project-management/top-bar>`."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:19
#: ../../content/applications/services/project/project_dashboard.rst:20
msgid "The left side of the dashboard displays a list of existing :ref:`project updates <project/project-dashboard/updates>`, and the right side provides :ref:`detailed information about records linked to the project <project/project-dashboard/smart-buttons>`, as well as :ref:`milestones <project/project-dashboard/milestones>`, :ref:`profitability <project/project-dashboard/profitability>`, and :ref:`budgets <project/project-dashboard/budgets>`."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:26
#: ../../content/applications/services/project/project_dashboard.rst:27
msgid "The information displayed on the project dashboard varies depending on the applications installed on your database. For example, you will not see information about **Timesheets**, **Planning**, or **Purchase Orders** if the corresponding applications are not installed."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:33
#: ../../content/applications/services/project/project_dashboard.rst:34
msgid "Totals smart buttons"
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:35
msgid "The following smart buttons are displayed on the top left of the project dashboard:"
#: ../../content/applications/services/project/project_dashboard.rst:36
msgid "The following smart buttons are displayed on the top right of the project dashboard:"
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:37
#: ../../content/applications/services/project/project_dashboard.rst:38
msgid ":guilabel:`Tasks`: the number of completed (i.e., :guilabel:`Done` or :guilabel:`Canceled` :ref:`tasks <project/tasks/task_stages_statuses/statuses>`) and all tasks, in format completed/all, as well as the entire project's completion percentage estimation."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:40
msgid ":guilabel:`Timesheets`: the number of hours or days (depending on the **Timesheets** app configuration) linked to the project. This includes all :doc:`timesheets <../timesheets>`, whether or not they have been validated."
#: ../../content/applications/services/project/project_dashboard.rst:41
msgid ":guilabel:`Timesheets`: the number of hours or days (depending on the **Timesheets** app configuration) allocated in the projects **settings**. This includes all :doc:`timesheets <../timesheets>`, whether or not they have been validated."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:43
#: ../../content/applications/services/project/project_dashboard.rst:44
msgid ":guilabel:`Planned`: the number of hours that have been planned for shifts in the **Planning** app. This includes all :doc:`planned shifts <../planning>`, including past shifts and shifts that have not yet been published."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:46
#: ../../content/applications/services/project/project_dashboard.rst:47
msgid ":guilabel:`Documents`: number of :doc:`documents <../../productivity/documents>` in the projects workspace."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:48
#: ../../content/applications/services/project/project_dashboard.rst:49
msgid ":guilabel:`Burndown Chart`: click the smart button to access a :doc:`report </applications/essentials/reporting>` on the status of the projects tasks over time."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:50
msgid ":guilabel:`Timesheets and Planning`: click the smart button to access a :doc:`report </applications/essentials/reporting>` on the projects timesheets and shifts."
#: ../../content/applications/services/project/project_dashboard.rst:51
msgid ":guilabel:`Timesheets and Planning`: click the smart button to access a :doc:`report </applications/essentials/reporting>` on the projects timesheets and shifts. This allows you to easily compare planned and effective hours of work on the project."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:52
#: ../../content/applications/services/project/project_dashboard.rst:54
msgid "**Additional fields**, such as :guilabel:`Sales Orders`, :guilabel:`Sales Order Items`, :guilabel:`Purchase Orders`, and more, represent the number of records linked to the project."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:56
#: ../../content/applications/services/project/project_dashboard.rst:58
msgid "Use the project dashboard smart buttons to update the project records easily. Click :guilabel:`Timesheets` to validate timesheets, :guilabel:`Planned` to create project planning, :guilabel:`Documents` to view and validate documents, etc."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:63
#: ../../content/applications/services/project/project_dashboard.rst:65
msgid "Milestones"
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:65
msgid "This section is only visible if :doc:`milestones </applications/sales/sales/invoicing/milestone>` have been created for this project. Click :guilabel:`Add Milestone` to create a new milestone. Click a milestone in the checklist to edit it, enable its checkbox to mark it as completed, or click the :icon:`fa-trash` (:guilabel:`trash`) icon to remove it."
#: ../../content/applications/services/project/project_dashboard.rst:67
msgid "This section is only visible if :doc:`milestones </applications/sales/sales/invoicing/milestone>` have been enabled in the Projects app settings. Click :guilabel:`Add Milestone` to create a new milestone. Click a milestone in the checklist to edit it, enable its checkbox to mark it as completed, or click the :icon:`fa-trash` (:guilabel:`trash`) icon to remove it."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:73
#: ../../content/applications/services/project/project_dashboard.rst:72
msgid "The milestones are displayed in red if theyre past their deadline, or in green if they are ready to be marked as reached (i.e. tasks linked to the milestone that have been marked with :guilabel:`done` or :guilabel:`canceled` :ref:`status <project/tasks/task_stages_statuses/statuses>`)."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:79
msgid "Profitability"
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:75
msgid "This section only applies to billable projects and provides a breakdown of project costs and revenues."
#: ../../content/applications/services/project/project_dashboard.rst:81
msgid "This section provides a breakdown of project costs and revenues, which are impacted by all records linked to the project and its :doc:`Analytic account </applications/finance/accounting/reporting/analytic_accounting>`."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:81
#: ../../content/applications/services/project/project_dashboard.rst:85
msgid "The profitability report is only displayed for billable projects."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:90
msgid "Budgets"
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:83
#: ../../content/applications/services/project/project_dashboard.rst:92
msgid "If a budget has been set for the project, its status and related details are displayed in this section. Click :guilabel:`Add Budget` to create a new budget for the project."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:87
msgid ":doc:`Analytic accounting </applications/finance/accounting/reporting/analytic_accounting>` must be enabled in your databases **Accounting** application in order for this section to be displayed."
#: ../../content/applications/services/project/project_dashboard.rst:96
msgid ":doc:`Budgets </applications/finance/accounting/reporting/budget>` must be enabled in your databases **Accounting** application in order for this section to be displayed."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:94
#: ../../content/applications/services/project/project_dashboard.rst:102
msgid "Project updates"
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:96
#: ../../content/applications/services/project/project_dashboard.rst:104
msgid "Project updates allow you to take a snapshot of the projects overall status at a given point in time, for example, during a periodic (weekly, bi-weekly, or monthly) review. This allows you to compare specific data points, note any aspects of the project that need improvement, and estimate if the project is on or off track."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:101
#: ../../content/applications/services/project/project_dashboard.rst:109
msgid "To create a new project update, go to the project dashboard, click :guilabel:`New`, and fill in the following fields:"
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:104
#: ../../content/applications/services/project/project_dashboard.rst:112
msgid ":guilabel:`Status`: Choose between :guilabel:`On Track`, :guilabel:`At Risk`, :guilabel:`Off Track`, :guilabel:`On Hold`, and :guilabel:`Done`. Once the status is set, a color-coded dot is displayed on the projects Kanban card, allowing the project manager to easily identify which projects need attention."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:108
#: ../../content/applications/services/project/project_dashboard.rst:116
msgid ":guilabel:`Progress`: Manually input the completion percentage based on the project's progress."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:109
#: ../../content/applications/services/project/project_dashboard.rst:117
msgid ":guilabel:`Date` and :guilabel:`Author`: These fields are automatically filled in with appropriate information based on the user who created the update and the current date."
msgstr ""
#: ../../content/applications/services/project/project_dashboard.rst:111
#: ../../content/applications/services/project/project_dashboard.rst:119
msgid ":guilabel:`Description`: Use this rich-text field to gather notes. Depending on the project configuration (e.g., if the project is billable), this field may be pre-filled with current information on aspects such as profitability, budget, milestones, etc."
msgstr ""
@@ -3665,19 +3673,19 @@ msgstr ""
msgid "If an activity is **already** scheduled, the icon may change to a **phone**, **group of people**, or other."
msgstr ""
#: ../../content/applications/services/project/project_management.rst:81
#: ../../content/applications/services/project/project_management.rst:83
msgid "Top bar"
msgstr ""
#: ../../content/applications/services/project/project_management.rst:83
#: ../../content/applications/services/project/project_management.rst:85
msgid "In project management, reviewing the various records and documents related to a project is often necessary. Odoo Projects **top bar** provides quick access to these essential resources. You can customize each project's top bar to match its specific needs."
msgstr ""
#: ../../content/applications/services/project/project_management.rst:87
#: ../../content/applications/services/project/project_management.rst:89
msgid "To set up the top bar for a project, go to the :guilabel:`Project` app, click the project's card, then click the top bar :icon:`fa-sliders` :guilabel:`(sliders)` button. In the bar that appears above the search bar, click the :icon:`fa-sliders` :guilabel:`(sliders)` button to select the records you want to display, such as timesheets, sales orders, invoices, documents, dashboards, etc."
msgstr ""
#: ../../content/applications/services/project/project_management.rst:92
#: ../../content/applications/services/project/project_management.rst:94
msgid "You can then click the buttons to access the related records without leaving the Project app. To return to your project tasks' Kanban view, click the :guilabel:`Tasks` button in the top bar."
msgstr ""
@@ -3685,27 +3693,27 @@ msgstr ""
msgid "Top bar selection menu"
msgstr ""
#: ../../content/applications/services/project/project_management.rst:99
#: ../../content/applications/services/project/project_management.rst:101
msgid "Custom top bar buttons"
msgstr ""
#: ../../content/applications/services/project/project_management.rst:101
#: ../../content/applications/services/project/project_management.rst:103
msgid "You can also create your own buttons to access more specific views:"
msgstr ""
#: ../../content/applications/services/project/project_management.rst:103
#: ../../content/applications/services/project/project_management.rst:105
msgid "Click an existing top bar button to access the view."
msgstr ""
#: ../../content/applications/services/project/project_management.rst:104
#: ../../content/applications/services/project/project_management.rst:106
msgid "Customize the view with keywords, filters, and grouping options using the search bar."
msgstr ""
#: ../../content/applications/services/project/project_management.rst:105
#: ../../content/applications/services/project/project_management.rst:107
msgid "Click the :icon:`fa-sliders` :guilabel:`(sliders)` button in the top bar and select :guilabel:`Save View`."
msgstr ""
#: ../../content/applications/services/project/project_management.rst:107
#: ../../content/applications/services/project/project_management.rst:109
msgid "Edit the default button name if necessary, then enable :guilabel:`Shared` if you want to share the button with other users."
msgstr ""
+42 -30
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo 18.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-05 09:20+0000\n"
"POT-Creation-Date: 2025-02-20 16:01+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -37,7 +37,7 @@ msgid ":doc:`Models <studio/models_modules_apps>`"
msgstr ""
#: ../../content/applications/studio.rst:24
msgid ":doc:`Automated actions <studio/automated_actions>`"
msgid ":doc:`Automation rules <studio/automated_actions>`"
msgstr ""
#: ../../content/applications/studio.rst:25
@@ -73,7 +73,7 @@ msgid "Approval rules"
msgstr ""
#: ../../content/applications/studio/approval_rules.rst:5
msgid "Studio approval rules allow you to require the approval of one or several users before an action can be performed using a button."
msgid "Approval rules are used to automate approval processes for actions. They allow you to define the criteria for when an approval is required before an action can be performed using a button."
msgstr ""
#: ../../content/applications/studio/approval_rules.rst:9
@@ -81,7 +81,7 @@ msgid "Configuration"
msgstr ""
#: ../../content/applications/studio/approval_rules.rst:11
msgid "To add an approval rule:"
msgid "To add approval rules with Studio, proceed as follows:"
msgstr ""
#: ../../content/applications/studio/approval_rules.rst:13
@@ -213,7 +213,7 @@ msgid "To create an automation rule with Studio, proceed as follows:"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:11
msgid "Open Studio and click :guilabel:`Automations`, then :guilabel:`New`."
msgid ":ref:`Open Studio <studio/access>` and click :guilabel:`Automations`, then :guilabel:`New`."
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:12
@@ -521,106 +521,118 @@ msgid ":guilabel:`Note only`: to only post the message as an internal note in th
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:277
msgid "Send WhatsApp"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:280
msgid "To automate the sending of WhatsApp messages, one or more :ref:`WhatsApp templates <productivity/whatsapp/templates>` must be created."
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:283
msgid "This action is used to send a WhatsApp message to a contact linked to a specific record. To do so, select the appropriate :guilabel:`WhatsApp Template` from the drop-down menu."
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:289
msgid "Add Followers and Remove Followers"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:279
#: ../../content/applications/studio/automated_actions.rst:291
msgid "Use these actions to (un)subscribe existing contacts to/from the record."
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:282
#: ../../content/applications/studio/automated_actions.rst:294
msgid "Create Record"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:284
#: ../../content/applications/studio/automated_actions.rst:296
msgid "This action is used to create a new record on any model."
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:286
#: ../../content/applications/studio/automated_actions.rst:298
msgid "Select the required model in the :guilabel:`Record to Create` field; it contains the current model by default. Specify a :guilabel:`Name` for the record, and then, if you want to create the record on another model, select a field in the :guilabel:`Link Field` field to link the record that triggered the creation of the new record."
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:292
#: ../../content/applications/studio/automated_actions.rst:304
msgid "The dropdown list related to the :guilabel:`Link Field` field only contains :ref:`one2many fields <studio/fields/relational-fields/one2many>` existing on the current model that are linked to a :ref:`many2one field <studio/fields/relational-fields/many2one>` on the target model."
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:297
#: ../../content/applications/studio/automated_actions.rst:309
msgid "You can create another automation rule with :ref:`studio/automated-actions/action/update-record` actions to update the fields of the new record if necessary. For example, you can use a :guilabel:`Create Record` action to create a new project task and then assign it to a specific user using an :guilabel:`Update Record` action."
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:305
#: ../../content/applications/studio/automated_actions.rst:317
msgid "Execute Code"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:307
#: ../../content/applications/studio/automated_actions.rst:319
msgid "This action is used to execute Python code. You can write your code into the :guilabel:`Code` tab using the following variables:"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:310
#: ../../content/applications/studio/automated_actions.rst:322
msgid "`env`: environment on which the action is triggered"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:311
#: ../../content/applications/studio/automated_actions.rst:323
msgid "`model`: model of the record on which the action is triggered; is a void recordset"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:312
#: ../../content/applications/studio/automated_actions.rst:324
msgid "`record`: record on which the action is triggered; may be void"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:313
#: ../../content/applications/studio/automated_actions.rst:325
msgid "`records`: recordset of all records on which the action is triggered in multi-mode; this may be left empty"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:315
#: ../../content/applications/studio/automated_actions.rst:327
msgid "`time`, `datetime`, `dateutil`, `timezone`: useful Python libraries"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:316
#: ../../content/applications/studio/automated_actions.rst:328
msgid "`float_compare`: utility function to compare floats based on specific precision"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:317
#: ../../content/applications/studio/automated_actions.rst:329
msgid "`log(message, level='info')`: logging function to record debug information in ir.logging table"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:319
#: ../../content/applications/studio/automated_actions.rst:331
msgid "`_logger.info(message)`: logger to emit messages in server logs"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:320
#: ../../content/applications/studio/automated_actions.rst:332
msgid "`UserError`: exception class for raising user-facing warning messages"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:321
#: ../../content/applications/studio/automated_actions.rst:333
msgid "`Command`: x2many commands namespace"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:322
#: ../../content/applications/studio/automated_actions.rst:334
msgid "`action = {...}`: to return an action"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:325
#: ../../content/applications/studio/automated_actions.rst:337
msgid "The available variables are described both in the :guilabel:`Code` and :guilabel:`Help` tabs."
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:328
#: ../../content/applications/studio/automated_actions.rst:340
msgid "Send Webhook Notification"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:330
#: ../../content/applications/studio/automated_actions.rst:342
msgid "This action allows to send a POST request with the values of the :guilabel:`Fields` to the URL specified in the :guilabel:`URL` field."
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:333
#: ../../content/applications/studio/automated_actions.rst:345
msgid "The :guilabel:`Sample Payload` provides a preview of the data included in the request using a random record's data or dummy data if no record is available."
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:339
#: ../../content/applications/studio/automated_actions.rst:351
msgid "Execute Existing Actions"
msgstr ""
#: ../../content/applications/studio/automated_actions.rst:341
#: ../../content/applications/studio/automated_actions.rst:353
msgid "The action is used to trigger multiple actions (linked to the current model) at the same time. To do so, click on :guilabel:`Add a line`, then, in the :guilabel:`Add: Child Actions` pop-up, select an existing action or click :guilabel:`New` to create a new one."
msgstr ""
File diff suppressed because it is too large Load Diff