Compare commits

..

1 Commits

Author SHA1 Message Date
fdardenne
3205d211f2 [IMP] create JavaScript howtos
The JavaScript cheatsheet is outdated, we therefore remove it and
replace it by multiple howtos:

- Create a view from scratch
- Extending an existing view
- Create a field from scratch
- Extend an existing field
- Create a client action

There is other subjects to introduce as the web framework is big. Other
future contributions will cover them.
2023-04-04 13:43:46 +02:00
257 changed files with 43960 additions and 13650 deletions

View File

@@ -8,7 +8,6 @@ Bank and cash
:titlesonly:
bank/setup
bank/bank_synchronization
bank/transactions
bank/feeds
bank/reconciliation
bank/interbank

View File

@@ -1,36 +0,0 @@
==============
Enable Banking
==============
**Enable Banking** is a third-party provider aggregating banking information from bank accounts all
in one place. It offers non-intrusive connectivity to ASPSPs' official APIs across Europe without
storing data.
.. image:: enablebanking/enablebanking.png
:align: center
:alt: Enable Banking logo
**Odoo** synchronizes directly with banks to get access to all bank transactions and automatically
import them into your database.
.. seealso::
- :doc:`../bank_synchronization`
- `Enable Banking website <https://enablebanking.com/>`_
Configuration
=============
Link bank accounts with Odoo
----------------------------
#. Start synchronization by clicking on :menuselection:`Accounting --> Configuration -->
Add a Bank Account`;
#. Select your bank;
#. Make sure you give your consent to share your account information with Odoo by clicking
:guilabel:`Continue authentication`;
.. image:: enablebanking/enablebankingauth.png
:align: center
:alt: Enable Banking authentication page
#. Finally, you are redirected to your bank's login page.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,13 @@
:nosearch:
==========
Bank feeds
==========
.. toctree::
:titlesonly:
feeds/transactions
feeds/bank_synchronization
feeds/ponto
feeds/saltedge

View File

@@ -1,8 +1,6 @@
:show-content:
====================
Bank synchronization
====================
======================================
Bank synchronization: automatic import
======================================
Odoo can synchronize directly with your bank institution to get all bank statements imported
automatically into your database.
@@ -17,12 +15,9 @@ To connect to the banks, Odoo uses multiple web-services:
- **Plaid**: United States of America and Canada
- **Yodlee**: Worldwide
- :doc:`Salt Edge <bank_synchronization/saltedge>`: Europe
- :doc:`Ponto <bank_synchronization/ponto>`: Europe
- :doc:`Enable Banking <bank_synchronization/enablebanking>`: Scandinavian countries
.. seealso::
:doc:`transactions`
- **Salt Edge**: Europe (:doc:`more information <saltedge>`)
- **Ponto**: Europe (:doc:`more information <ponto>`)
- **EnableBanking**: Scandinavian countries
Configuration
=============
@@ -201,9 +196,7 @@ You can update your credentials by going to :menuselection:`Accounting Dashboard
Configuration --> Accounting: Online Synchronization`,open the connection you want to update your
credentials and click on the :guilabel:`Update Credentials` button.
.. toctree::
:titlesonly:
bank_synchronization/saltedge
bank_synchronization/ponto
bank_synchronization/enablebanking
.. seealso::
* :doc:`transactions`
* :doc:`ponto`
* :doc:`saltedge`

View File

@@ -1,6 +1,6 @@
=====
Ponto
=====
======================================
Ponto as bank synchronization provider
======================================
**Ponto** is a service that allows companies and professionals to aggregate their accounts in one
place and directly see all their transactions within one app. It is a third-party solution that is
@@ -16,9 +16,9 @@ into your database.
Ponto is a paid third-party provider that can handle the synchronization between your bank accounts
and Odoo. `Its pricing is 4€/month per account/integration <https://myponto.com/en#pricing>`_.
.. seealso::
- :doc:`../bank_synchronization`
- :doc:`../transactions`
.. note::
You can find more information about bank synchronization :doc:`on this page
<bank_synchronization>`.
Configuration
=============
@@ -115,3 +115,10 @@ and we advise you to contact Ponto directly.
.. important::
Using an institution in beta is beneficial for Ponto, it allows them to have real
feedback on the connection with the institution.
.. seealso::
* :doc:`bank_synchronization`
* :doc:`saltedge`
* :doc:`transactions`

View File

@@ -1,6 +1,6 @@
=========
Salt Edge
=========
==========================================
Salt Edge as bank synchronization provider
==========================================
**Salt Edge** is a third-party provider that aggregates banking information
from your bank accounts. It supports ~5000 institutions in more than 50
@@ -8,15 +8,12 @@ countries.
.. image:: saltedge/saltedge-logo.png
:align: center
:width: 50%
:alt: Salt Edge Logo
Odoo can synchronize directly with your bank to get all bank statements imported
automatically into your database.
.. seealso::
- :doc:`../bank_synchronization`
- :doc:`../transactions`
Salt Edge is a free third-party provider.
Configuration
=============
@@ -106,3 +103,9 @@ In case you already have a connection with the same credentials present on your
and this synchronization was created with Odoo, you will normally be able to find it by going to
:menuselection:`Accounting --> Configuration --> Online Synchronization`. Please make sure to do an
*Update Credentials* to reactivate the connection.
.. seealso::
* :doc:`bank_synchronization`
* :doc:`ponto`
* :doc:`transactions`

View File

@@ -0,0 +1,46 @@
============
Transactions
============
Importing transactions from your bank statements allows keeping track of bank account transactions
and reconciling them with the ones recorded in your accounting.
:doc:`Bank synchronization <bank_synchronization>` automates the process. However, if you do not
want to use it or if your bank is not yet supported, other options exist:
- :ref:`Import bank transactions <import-statements>` delivered by your bank;
- :ref:`Register bank transactions <register-transactions>` manually.
.. _import-statements:
Import transactions
===================
Odoo supports multiple file formats to import transactions:
- SEPA recommended Cash Management format (CAMT.053);
- Comma-separated values (.CSV);
- Open Financial Exchange (.OFX);
- Quicken Interchange Format (.QIF);
- Belgium: Coded Statement of Account (.CODA).
To import a file, go to the :guilabel:`Accounting Dashboard`, and in the :guilabel:`Bank` journal,
click on :guilabel:`Import Transactions`.
.. image:: transactions/import-transactions.png
:align: center
:alt: Import bank transactions from bank journal
Next, select the file and upload it.
After setting the necessary formatting options and mapping the needed columns, you can run a
:guilabel:`Test` and :guilabel:`Import` your bank transactions.
.. _register-transactions:
Register bank transactions manually
===================================
You can also record your bank transactions manually. To do so, go to :guilabel:`Accounting
Dashboard`, click on the :guilabel:`Bank` journal, and then on :guilabel:`New`. Make sure to fill
out the :guilabel:`Partner` and :guilabel:`Label` fields to ease the reconciliation process.

View File

@@ -91,7 +91,7 @@ Manage and reconcile bank statements
------------------------------------
The next step is to book the bank statements to finalize the transaction by creating,
:doc:`importing <transactions>`, or :doc:`synchronizing <bank_synchronization>` your
:doc:`importing <feeds/transactions>`, or :doc:`synchronizing <feeds/bank_synchronization>` your
:guilabel:`Transactions lines`. Fill in the :guilabel:`Ending balance` and click on the
:guilabel:`Reconcile` button.

View File

@@ -125,5 +125,5 @@ line*.
.. seealso::
- :doc:`use_cases`
- :doc:`../bank_synchronization`
- :doc:`../feeds/bank_synchronization`
- :doc:`../../receivables/customer_invoices/cash_discounts`

View File

@@ -102,4 +102,4 @@ right and validate all related payments :
:align: center
.. seealso::
:doc:`../bank_synchronization`
* :doc:`../feeds/bank_synchronization`

View File

@@ -4,7 +4,7 @@ Bank and cash accounts
You can manage as many bank or cash accounts as needed on your database. Configuring them well
allows you to have all your banking data up-to-date and ready for :doc:`reconciliation
<../reconciliation/use_cases>` with your journal entries.
<../../bank/reconciliation/use_cases>` with your journal entries.
In Odoo Accounting, each bank account has a dedicated journal set to post all entries in a dedicated
account. Both the journal and the account are automatically created and configured whenever you add
@@ -33,7 +33,7 @@ To connect your bank account to your database, go to :menuselection:`Accounting
follow the instructions.
.. seealso::
:doc:`../bank_synchronization`
:doc:`../../bank/feeds/bank_synchronization`
Create a bank account
---------------------
@@ -83,7 +83,7 @@ You can edit the accounting information and bank account number according to you
.. seealso::
- :doc:`../../others/multi_currency`
- :doc:`../transactions`
- :doc:`../../bank/feeds/transactions`
- :doc:`../../bank/setup/outstanding_accounts`
Suspense account
@@ -132,5 +132,5 @@ Bank feeds
with your database.
.. seealso::
- :doc:`../bank_synchronization`
- :doc:`../transactions`
- :doc:`../../bank/feeds/bank_synchronization`
- :doc:`../../bank/feeds/transactions`

View File

@@ -1,94 +0,0 @@
============
Transactions
============
Importing transactions from your bank statements allows keeping track of bank account transactions
and reconciling them with the ones recorded in your accounting.
:doc:`Bank synchronization <bank_synchronization>` automates the process. However, if you do not
want to use it or if your bank is not yet supported, other options exist:
- :ref:`Import bank transactions <transactions/import>` delivered by your bank;
- :ref:`Register bank transactions <transactions/register>` manually.
.. note::
:ref:`Grouping transactions by statement <transactions/statements>` is optional.
.. _transactions/import:
Import transactions
===================
Odoo supports multiple file formats to import transactions:
- SEPA recommended Cash Management format (CAMT.053);
- Comma-separated values (.CSV);
- Open Financial Exchange (.OFX);
- Quicken Interchange Format (.QIF);
- Belgium: Coded Statement of Account (.CODA).
To import a file, go to the :guilabel:`Accounting Dashboard`, and in the :guilabel:`Bank` journal,
click on :guilabel:`Import Transactions`.
.. image:: transactions/import-transactions.png
:alt: Import bank transactions from the bank journal
Next, select the file and upload it.
After setting the necessary formatting options and mapping the file columns with their related Odoo
fields, you can run a :guilabel:`Test` and :guilabel:`Import` your bank transactions.
.. seealso::
:doc:`/applications/general/export_import_data`
.. _transactions/register:
Register bank transactions manually
===================================
You can also record your bank transactions manually. To do so, go to :guilabel:`Accounting
Dashboard`, click on the :guilabel:`Bank` journal, and then on :guilabel:`New`. Make sure to fill
out the :guilabel:`Partner` and :guilabel:`Label` fields to ease the reconciliation process.
.. _transactions/statements:
Statements
==========
A **bank statement** is a document provided by a bank or financial institution that lists the
transactions that have occurred in a particular bank account over a specified period of time.
In Odoo Accounting, it is optional to group transactions by their related statement, but depending
on your business flow, you may want to record them for control purposes.
.. important::
If you want to compare the ending balances of your bank statements with the ending balances of
your financial records, *don't forget to create an opening transaction* to record the bank
account balance as of the date you begin synchronizing or importing transactions. This is
necessary to ensure the accuracy of your accounting.
To access a list of statements, go to your :guilabel:`Accounting Dashboard`, click on the vertical
ellipsis (:guilabel:`⋮`) button next to the bank or cash journal you want to check, then on
:guilabel:`Statements`
Statement creation from the kanban view
---------------------------------------
Open the bank reconciliation view by clicking on the name of the bank journal, and identify the
transaction corresponding to the last transaction of your bank statement. Click on the
:guilabel:`STATEMENT` button when hovering on the upper separator line.
.. image:: transactions/statements-kanban.png
:alt: A "STATEMENT" button is visible when hovering on the line separating two transactions.
Fill out the statement's details and save. The newly created statement includes the previous
transactions following the last statement.
Statement creation from the list view
-------------------------------------
Open the list of transactions by clicking on the name of the bank journal and switching to the list
view. Select all the transactions corresponding to the bank statement, and, in the
:guilabel:`Statement` column, select an existing statement or create a new one by typing its
reference, clicking on :guilabel:`Create and edit...`, filling out the statement's details, and
saving.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -55,7 +55,7 @@ Connect your bank account to your database and have your bank statements synced
so, find your bank in the list, click on *Connect*, and follow the instructions on-screen.
.. note::
:doc:`Click here <../../bank/bank_synchronization>` for more information about this feature.
:doc:`Click here <../../bank/feeds/bank_synchronization>` for more information about this feature.
If your Bank Institution cant be synchronized automatically, or if you prefer not to sync it with
your database, you may also configure your bank account manually by clicking on *Create it*, and
@@ -188,6 +188,6 @@ Send yourself a sample invoice by email to make sure everything is correctly con
.. seealso::
* :doc:`../../bank/setup/bank_accounts`
* :doc:`chart_of_accounts`
* :doc:`../../bank/bank_synchronization`
* :doc:`../../bank/feeds/bank_synchronization`
* :doc:`../../../fiscal_localizations`
* `Odoo Tutorials: Accounting Basics <https://www.odoo.com/r/lsZ>`_

View File

@@ -103,7 +103,7 @@ The frequency of the invoicing and the services/products invoiced are
defined on the contract.
.. seealso::
- :doc:`/applications/sales/subscriptions`
- :doc:`/applications/sales/sales/invoicing/subscriptions`
Others
======

View File

@@ -1,71 +1,99 @@
==============================
Batch payments by bank deposit
==============================
==================================================
Batch payments: Batch deposits (checks, cash etc.)
==================================================
A **batch deposit** is a convenient way to group customer payments and deposit them into your bank
account. The feature lets you list multiple payments and generate a detailed deposit slip with a
batch reference. This reference can be used when reconciling to match bank statement lines with
transactions in the batch deposit.
A **Batch Deposit** groups multiple payments in a single batch. This allows you to deposit several
payments into your bank account with a single transaction. This is particularly useful to deposit
cash and checks.
This feature allows you to list several customer payments and print a **deposit slip**. This ticket
contains the details of the transactions and a reference to the batch deposit. You can then select
this reference during a bank reconciliation to match the single bank statement line with all the
transactions listed in the batch deposit.
Configuration
=============
Go to :menuselection:`Accounting --> Configuration --> Settings --> Customer Payments` and tick
:guilabel:`Batch Payments` to activate the feature.
To activate the feature, go to :menuselection:`Accounting --> Configuration --> Settings -->
Customer Payments`, activate **Batch Payments**, and click on *Save*.
Payment Method Types
--------------------
To record new payments as part of a Batch Deposit, you have to configure first the Journal on which
you record them.
To do so, go to :menuselection:`Accounting --> Configuration --> Journals`, open the Journal
you want to edit, click on *Edit*, and open the *Advanced Settings* tab. In the *Payment Method
Types* section, enable **Batch Deposit**, and click on *Save*.
.. image:: batch/batch-journal-settings.png
:align: center
:alt: Payment Method Types in a journal's advanced settings
.. note::
Your main bank accounts are automatically configured to process batch payments when you activate
the feature.
Deposit multiple payments in batch
==================================
Register payments
-----------------
Record payments to deposit in batch
-----------------------------------
Before performing a batch deposit, it is necessary to register each transaction's payment. To do so,
open the corresponding customer invoice and click :guilabel:`Register Payment`. In the pop-up
window, select the :guilabel:`Journal` linked to your bank account and :guilabel:`Batch Deposit` as
the :guilabel:`Payment Method`, and click :guilabel:`Create Payment`.
:doc:`Register the payments <recording>` on the bank account on which you plan to deposit them by
opening the *Customer Invoice* for which you received a payment, and clicking on *Register Payment*.
There, select the appropriate Journal linked to your bank account and select *Batch Deposit* as
Payment Method.
.. image:: batch/batch-payments.png
.. image:: batch/batch-register-payment.png
:align: center
:alt: Registering a customer payment as part of a batch deposit
:alt: Registering a customer payment as part of a Batch Deposit in Odoo Accounting
Add payments to a batch deposit
-------------------------------
To add payments to a batch deposit, go to :menuselection:`Accounting --> Customers --> Batch
Payments`, and click :guilabel:`New`. Next, select the :guilabel:`Bank` and choose :guilabel:`Batch
Deposit` as the :guilabel:`Payment Method`.
.. image:: batch/batch-customer-payment.png
:align: center
:alt: Filling out a new inbound batch payment form
Click :guilabel:`Add a line`. In the pop-up window, tick all payments to include in the batch
deposit, then click :guilabel:`Select`.
.. image:: batch/batch-lines-selection.png
:align: center
:alt: Selecting all payments to include in the batch deposit
Once done, click :guilabel:`Validate` to finalize the batch deposit.
.. tip::
Click :guilabel:`Print` to download a PDF file to include with the deposit slip.
Bank reconciliation
-------------------
Once the bank transactions are on your database, you can reconcile bank statement lines with the
batch payment. To do so, go to the :guilabel:`Accounting Dashboard` and click :guilabel:`Reconcile
Items` on the related bank account. Go to the :guilabel:`Batch Payments` tab to select a specific
batch and click :guilabel:`Validate` to finalize the process.
.. image:: batch/batch-reconciliation.png
:align: center
:alt: Reconciling the batch payment with all its transactions
Do this step for all checks or payments you want to process in batch.
.. note::
If a specific payment could not be processed by the bank or is missing, remove the related
payment before reconciling.
Make sure to write the payment reference in the **Memo** field.
Add payments to a Batch Deposit
-------------------------------
To add the payments to a Batch Deposit, go to :menuselection:`Accounting --> Customers --> Batch
Payments`, and click on *Create*. Next, select the Bank and Payment Method, then click on *Add a
line*.
.. image:: batch/batch-new-inbound.png
:align: center
:alt: Filling out a new Inbound Batch Payment form on Odoo Accounting
Select all payments to include in the current Batch Deposit and click on *Select*. You can also
record a new payment and add it to the list by clicking on *Create*.
.. image:: batch/batch-payments-selection.png
:align: center
:alt: Selection of all payments to include in the Batch Deposit
Once done, click on *Validate* to finalize your Batch Deposit. You can then click on *Print* to
download a PDF file to include with the deposit slip that the bank usually requires to fill out.
Bank Reconciliation
-------------------
Once the bank statements are on your database, you can reconcile the bank statement line with the
*Batch Payment* reference. To do so, start your **Bank Reconciliation** by going to your Accounting
dashboard and clicking on *Reconcile Items* on the related bank account. At the bank statement line,
click on *Choose counterpart or Create Write-off* to display more options, open the *Batch Payments*
tab, and select your Batch Payment. All related payments are automatically added.
.. note::
The *Batch Payments* tab won't appear if a Partner is selected for this bank statement line.
.. image:: batch/batch-bank-reconciliation.png
:align: center
:alt: Reconciliation of the Batch Payment with all its transactions
If a check, or a payment, couldn't be processed by the bank and is missing, remove the related
payment before validating the bank reconciliation.
.. seealso::
- :doc:`recording`

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@@ -17,12 +17,9 @@ Configuration on Flutterwave Dashboard
`/payment/flutterwave/webhook` in the :guilabel:`URL` text field.
| For example: `https://yourcompany.odoo.com/payment/flutterwave/webhook`.
#. Fill the :guilabel:`Secret hash` with a password that you generate and save its value for later.
#. Make sure *all* the remaining checkboxes are ticked.
#. Make sure all the remaining checkboxes are ticked.
#. Click on **Save** to finalize the configuration.
.. image:: flutterwave/flutterwave-settings.png
:alt: Flutterwave settings
.. _payment_providers/flutterwave/configure_odoo:
Configuration on Odoo

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -10,6 +10,7 @@ Warehouse Management
management/products
management/warehouses
management/replenishment_strategies
management/inventory_adjustments
management/delivery
management/incoming

View File

@@ -0,0 +1,11 @@
:nosearch:
========================
Replenishment strategies
========================
.. toctree::
:titlesonly:
:glob:
replenishment_strategies/virtual_warehouses

View File

@@ -0,0 +1,53 @@
===============================
Resupply from another Warehouse
===============================
Configuration
=============
In order to be able to resupply from another warehouse, you need to
activate \*multi-step routes\*.
.. image:: virtual_warehouses/virtual-warehouses-settings.png
:align: center
:alt: Enable Multi-Step Routes in an Odoo database's settings
You can then access your warehouses via :menuselection:`Inventory --> Configuration -->
Warehouses`.
Enter the warehouse which should be resupplied by another one. You will
have the possibility to directly indicate through which warehouse it
gets resupplied.
.. image:: virtual_warehouses/virtual_warehouses_02.png
:align: center
By activating this option, a new route will now be available on your
products \*Supply Product from Second warehouse\*. It can now be
selected, along with either a \*reordering rule\* or a \*make to
order\*.
.. image:: virtual_warehouses/virtual_warehouses_03.png
:align: center
For the demonstration, I set a reordering rule with a minimum of 5 units
in stock and a maximum of 10 units in stock, having currently 0 units on
hand. I will run the scheduler by going to :menuselection:`Inventory --> Operations -->
Run scheduler`.
.. image:: virtual_warehouses/virtual_warehouses_04.png
:align: center
The system automatically creates two pickings, one \*delivery order\*
from my Second Warehouse which contains the necessary products, and a
receipt in my main warehouse WH/Stock for the same products. The source
document is the \*reordering rule\* which triggered the route \*Supply
Product from Second warehouse\*.
.. image:: virtual_warehouses/virtual_warehouses_05.png
:align: center
.. image:: virtual_warehouses/virtual_warehouses_06.png
:align: center
.. image:: virtual_warehouses/virtual_warehouses_07.png
:align: center

View File

@@ -11,3 +11,4 @@ Valuation Methods
reporting/inventory_valuation_config
reporting/using_inventory_valuation
reporting/integrating_landed_costs
/applications/finance/accounting/others/inventory/avg_price_valuation

View File

@@ -1,9 +1,7 @@
=================================
Inventory valuation configuration
Inventory Valuation Configuration
=================================
.. _inventory/inventory_valuation_config:
All of a company's stock on-hand contributes to the valuation of its inventory. That value should
be reflected in the company's accounting records to accurately show the value of the company and
all of its assets.
@@ -29,32 +27,32 @@ between locations in a company's inventory.
need to be periodically checked to ensure accuracy, and adjustments may be needed on an ongoing
basis depending on the needs and priorities of the business.
Types of accounting
Types of Accounting
-------------------
Accounting entries will depend on the accounting mode: *Continental* or *Anglo-Saxon*.
Accounting entries will depend on the accounting mode: Continental or Anglo-Saxon.
.. tip::
Verify the accounting mode by activating the :ref:`developer-mode` and navigating to
:menuselection:`Accounting --> Configuration --> Settings`.
Verify the accounting mode by activating the :ref:`developer-mode`
and navigating to :menuselection:`Accounting --> Configuration --> Settings`.
In *Anglo-Saxon* accounting, the costs of goods sold (COGS) are reported when products are sold or
In Anglo-Saxon accounting, the costs of goods sold (COGS) are reported when products are sold or
delivered. This means that the cost of a good is only recorded as an expense when a customer is
invoiced for a product. *Interim Stock Accounts* are used for the input and output accounts, and are
both *Asset Accounts* in the balance sheet.
invoiced for a product. Interim Stock Accounts are used for the input and output accounts, and are
both Asset Accounts in the Balance Sheet.
In *Continental* accounting, the cost of a good is reported as soon as a product is received into
stock. Additionally, a single *Expense* account is used for both input and output accounts in
the balance sheet.
In Continental accounting, the cost of a good is reported as soon as a product is received into
stock. Additionally, a *single* Expense account is used for both input and output accounts in
the Balance Sheet.
Costing methods
Costing Methods
---------------
Below are the three costing methods that can be used in Odoo for inventory valuation.
- **Standard Price**: is the default costing method in Odoo. The cost of the product is manually
defined on the product form, and this cost is used to compute the valuation. Even if the purchase
price on a purchase order differs, the valuation will still use the cost defined on the product
price on a Purchase Order differs, the valuation will still use the cost defined on the product
form.
- **Average Cost (AVCO)**: calculates the valuation of a product based on the average cost of that
product, divided by the total number of available stock on-hand. With this costing method,
@@ -83,11 +81,10 @@ valuation method should apply.
Under the :guilabel:`Inventory Valuation` heading are two labels: :guilabel:`Costing Method` and
:guilabel:`Inventory Valuation`. Pick the desired :guilabel:`Costing Method` using the drop-down
menu (e.g. :guilabel:`Standard`, :guilabel:`Average Cost (AVCO)`, or :guilabel:`First In First Out
(FIFO)`) and switch the :guilabel:`Inventory Valuation` to :guilabel:`Automated`.
(FIFO)` and switch the :guilabel:`Inventory Valuation` to :guilabel:`Automated`.
.. seealso::
:doc:`Using the inventory valuation
</applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation>`
:doc:`Using the inventory valuation <using_inventory_valuation>`
.. note::
When choosing :guilabel:`Average Cost (AVCO)` as the :guilabel:`Costing Method`, the numerical

View File

@@ -1,130 +1,77 @@
=========================
Using inventory valuation
=========================
=============================
Using the inventory valuation
=============================
*Inventory valuation* is a quintessential accounting procedure that calculates the value of on-hand
stock. Once determined, the inventory valuation amount is then incorporated into a company's overall
value.
Inventory valuation refers to how you value your stock. Its a very
important aspect of a business as the inventory can be the biggest asset
of a company.
In Odoo, this process can be conducted manually— by warehouse employees physically counting the
products— or automatically through the database.
In this documentation, we will explain how the inventory valuation works
in Odoo.
.. seealso::
:ref:`Inventory valuation configuration <inventory/inventory_valuation_config>`
Understand the basics of inventory valuation
============================================
In order to understand how moving products in and out of stock affects the company's overall value,
consider the following product and stock moves scenario below.
Inventory valuation: the basics
===============================
Receive a product
-----------------
For example, consider an physical product, a simple *table*, which is categorized as `Office
Furniture` in the product form's :guilabel:`Product Category` field.
Each time a product enters or leaves your stock, the value of your
inventory is impacted. The way it is impacted depends on the
configuration of your product (more info here).
Navigate to the the product category itself by going to :menuselection:`Inventory app -->
Configuration --> Product Categories`, and on the form, set the :guilabel:`Costing Method` as `First
In First Out (FIFO)` and the :guilabel:`Inventory Valuation` field as `Automated`.
Lets take an example with a product - a table - configured with a
*FIFO costing method* and an automated inventory valuation.
I purchase 10 tables at a cost of $10.
.. image:: using_inventory_valuation/use_inventory_valuation_01.png
:align: center
When Ill confirm the receipt of the products, the value of my inventory
will be impacted. If I want to know what this impact is, I can click on
the valuation stat button.
.. tip::
Alternatively access the :guilabel:`Product Categories` dashboard by clicking on the
:guilabel:`internal link` arrow on the individual product's form, by hovering over the
:guilabel:`Product Category` field.
The consignment feature allows you to set owners on your stock (discover
more about the consignment feature). When you receive products that are
owned by another company, they are not taken into account in your
inventory valuation.
Next, assume 10 tables are purchased at a price of $10.00, each. The :abbr:`PO (Purchase Order)` for
those tables will show the subtotal of the purchase as $100, plus any additional costs or taxes.
.. image:: using_inventory_valuation/use_inventory_valuation_02.png
:align: center
.. image:: using_inventory_valuation/purchase-order.png
:align: center
:alt: Purchase order with 10 tables products valued at $10 each.
.. note::
You need access rights on the accounting module to see that button.
After selecting :guilabel:`Validate` on the :abbr:`PO (Purchase Order)`, use the
:guilabel:`Valuation` smart button to view how the value of inventory was impacted.
In this case, I can see that the 10 tables entered the stock for a total
value of $100.
.. image:: using_inventory_valuation/valuation-smart-button.png
:align: center
:alt: Valuation smart button on a receipt.
.. image:: using_inventory_valuation/use_inventory_valuation_03.png
:align: center
.. important::
:ref:`Developer mode <developer-mode>` must be turned on to see the *Valuation* smart button.
I can also easily access the accounting entry that has been generated
(in case of automated inventory valuation).
.. tip::
The :doc:`consignment </applications/inventory_and_mrp/inventory/management/misc/owned_stock>`
feature allows ownership to items in stock. Thus, products owned by other companies are not
accounted for in the host company's inventory valuation.
The :guilabel:`Stock Valuation` dashboard then displays valuation of all products in the shipment,
along with their quantities and valuation. In the example of 10 tables being purchased, the
:guilabel:`Total Value` column of the dashboard would display a calculated valuation of $100.
.. image:: using_inventory_valuation/stock-valuation-product.png
:align: center
:alt: Stock valuation page depicting the products within a shipment.
In Odoo, automatic inventory valuation records are also recorded in the *Accounting* app. To access
these accounting entries, navigate to :menuselection:`Accounting --> Journal Entries`, and look for
inventory valuation entries with the `STJ` prefix in the :guilabel:`Journal` and :guilabel:`Number`
columns, respectively.
.. image:: using_inventory_valuation/inventory-valuation-entry.png
:align: center
:alt: Accounting entry for the inventory valuation of 10 tables.
.. image:: using_inventory_valuation/use_inventory_valuation_04.png
:align: center
Deliver a product
-----------------
In the same logic, when a table is shipped to a customer and leaves the warehouse, the stock
valuation decreases. The :guilabel:`Valuation` smart button on the :abbr:`DO (Delivery Order)`,
likewise, displays the stock valuation record as it does on a :abbr:`PO (Purchase Order)`
In the same logic, when a table will be delivered, the stock valuation
will be impacted and you will have access to a similar information.
.. image:: using_inventory_valuation/decreased-stock-valuation.png
:align: center
:alt: Decreased stock valuation after a product is shipped.
.. image:: using_inventory_valuation/use_inventory_valuation_05.png
:align: center
The inventory valuation report
------------------------------
To view the current value of all products in the warehouse, go to :menuselection:`Inventory app -->
Reporting --> Inventory Valuation`. The records in the table are organized by product, and selecting
a product's drop-down menu displays detailed records with the :guilabel:`Date`,
:guilabel:`Quantity`, and :guilabel:`Total Value` of the inventory.
The summary of this is accessible via the inventory valuation report
(accessible from :menuselection:`Inventory --> Reporting --> Inventory Valuation`). It gives
you, product per product, the value of your stock. By clicking on the
button *Inventory At Date*, you can have the same information for a
past date.
.. image:: using_inventory_valuation/inventory-valuation-products.png
:align: center
:alt: Inventory valuation report showing multiple products.
.. note::
The :guilabel:`Inventory At Date` button, located in the top-left corner of the :guilabel:`Stock
Valuation` dashboard, shows the inventory valuation of products available during a prior
specified date.
Update product unit price
~~~~~~~~~~~~~~~~~~~~~~~~~
For any company: lead times, supply chain failures, and other risk factors can contribute to
invisible costs. Although Odoo attempts to accurately represent the stock value, *manual valuation*
serves as an additional tool to update the unit price of products.
.. important::
Manual valuation is intended for products that can be purchased and received for a cost greater
than 0, or have product categories set with :guilabel:`Costing Method` set as either `Average
Cost (AVCO)` or `First In First Out (FIFO)`.
.. image:: using_inventory_valuation/add-manual-valuation.png
:align: center
:alt: Add manual valuation of stock value to a product.
Create manual valuation entries on the :guilabel:`Stock Valuation` dashboard by first navigating to
:menuselection:`Inventory app --> Reporting --> Inventory Valuation`, and then click the little gray
drop-down icon to the left of a product's name, to then reveal stock valuation line items below as
well as a teal :guilabel:`+ (plus)` button on the right.
Click the teal :guilabel:`+ (plus)` button to open up the :guilabel:`Product Revaluation` form,
where updates to the calculation of inventory valuation can be made, by increasing or decreasing the
unit price of each product.
.. image:: using_inventory_valuation/product-revaluation.png
:align: center
:alt: Product revaluation form adding a value of $1.00 with the reason being inflation.
.. image:: using_inventory_valuation/use_inventory_valuation_06.png
:align: center

View File

@@ -8,6 +8,5 @@ Warehouses
:titlesonly:
:glob:
warehouses/resupply_warehouses
warehouses/warehouse_replenishment_transfer
warehouses/warehouses_locations
warehouses/resupply_warehouses

View File

@@ -1,150 +0,0 @@
========================================================
Transfer products between warehouses using replenishment
========================================================
For companies that use multiple warehouses, it is often necessary to transfer items between them.
This is referred to as an *inter-warehouse transfer*. Odoo *Inventory* handles the administrative
process of inter-warehouse transfers to ensure that inventory counts remain accurate during and
after the transfer. This document will detail the method for conducting an inter-warehouse transfer
using replenishment.
Configure warehouses for inter-warehouse replenishment
======================================================
First, ensure the :guilabel:`Multi-Step Routes` setting is enabled by navigating to
:menuselection:`Inventory --> Configuration --> Settings`, and then check the box under the
:guilabel:`Warehouse` tab. This will provide additional configuration options when creating a second
warehouse that are needed for inter-warehouse replenishment.
By default, Odoo comes with a main warehouse already configured. If an additional warehouse has not
already been created, do so now from the :guilabel:`Inventory` module by selecting
:menuselection:`Configuration --> Warehouses --> Create`. Otherwise, select the warehouse that
products will be transferred to from the :guilabel:`Warehouses` page and then click :guilabel:`Edit`
to change its settings. Configure the warehouse as follows:
- :guilabel:`Warehouse`: choose a name that is not already being used for another warehouse (e.g.
`Alternative Warehouse`)
- :guilabel:`Short Name`: choose a short name by which the warehouse will be identified (e.g.
`ALT_WH`)
Click :guilabel:`Save` and the new warehouse will be created. In addition, a new :guilabel:`Resupply
From` field will appear on the warehouse's form. Click :guilabel:`Edit` and then check the box next
to the warehouse that will be used to resupply the warehouse that is currently being configured.
.. image:: warehouse_replenishment_transfer/new-warehouse-configuration.png
:align: center
:alt: A warehouse settings form configured to allow resupplying between warehouses.
.. note::
For the purposes of this demonstration, the warehouse that products are transferred from
(outgoing) will be titled "San Francisco", and the warehouse that products are transferred to
(incoming) will be titled "San Francisco 2".
Configure products for inter-warehouse replenishment
====================================================
Products must also be configured properly in order for them to be transferred between warehouses.
Navigate to :menuselection:`Inventory --> Products --> Products` and select an existing product or
:guilabel:`Create` a new one, if necessary.
Then, on the product form, go to the :guilabel:`Inventory` tab and enable the checkbox for
:guilabel:`X: Supply Product from Y`, with *X* being the warehouse receiving the transferred
products and *Y* being the warehouse that products are transferred from.
.. image:: warehouse_replenishment_transfer/product-transfer-configuration.png
:align: center
:alt: Enable the checkbox to resupply one warehouse from another.
Replenish one warehouse from another
====================================
Starting in the :menuselection:`Inventory` module, select :menuselection:`Products --> Products` and
then choose the product that will be replenished. Click the :guilabel:`Replenish` button on the top
left of the product page and fill out the pop-up form as follows:
- :guilabel:`Quantity`: the number of units that will be sent to the warehouse being replenished
- :guilabel:`Scheduled Date`: the date that the replenishment is scheduled to take place
- :guilabel:`Warehouse`: the warehouse that will be replenished
- :guilabel:`Preferred Routes`: select `X: Supply Product from Y`, with *X* being the warehouse to
be replenished and *Y* being the warehouse that the product will be transferred from
.. image:: warehouse_replenishment_transfer/product-replenishment-form.png
:align: center
:alt: The form for replenishing a product.
Click :guilabel:`Confirm` and a delivery order will be created for the outgoing warehouse along with
a receipt for the warehouse that will receive the product. Depending on the configuration settings
for the outgoing and incoming warehouses, processing delivery orders and receipts will require
between one and three steps. This document will detail how to process one-step deliveries and
receipts.
Process the delivery order
--------------------------
The first stage of a replenishment order is processing the delivery from the warehouse that the
product is being transferred from. On the :menuselection:`Inventory` dashboard, select the
:guilabel:`X to Process` button on the :guilabel:`Delivery Orders` card for the outgoing warehouse,
then the delivery order created for the replenishment. On the delivery order page, click the
:guilabel:`Check Availability` button in the top left to reserve the quantity of the product to be
transferred. Once the delivery has been dispatched, click the :guilabel:`Validate` button to
register the quantities shipped.
.. image:: warehouse_replenishment_transfer/delivery-orders-card.png
:align: center
:alt: The delivery orders card for the outgoing warehouse.
Process the receipt
-------------------
Once the goods arrive at the incoming warehouse, the receipt created for that warehouse must be
processed as well. Return to the :menuselection:`Inventory` dashboard and select the :guilabel:`X to
Process` button on the :guilabel:`Receipts` card for the incoming warehouse, then the receipt
created for the replenishment. On the receipt page, click the :guilabel:`Validate` button in the top
left of the page to register the quantities received.
.. image:: warehouse_replenishment_transfer/receipts-card.png
:align: center
:alt: The delivery orders card for the outgoing warehouse.
After processing the receipt, the products transferred will now appear in the inventory of the
incoming warehouse. The stock numbers for both warehouses can be viewed by returning to the product
page and selecting the :guilabel:`X Units On Hand` button at the top of the screen.
Automate inter-warehouse replenishment
======================================
Using reordering rules, it is possible to automate the process of replenishing one warehouse from
another.
To get started, navigate to :menuselection:`Inventory --> Products --> Products`, and then
choose the product that will be replenished. From the product page, select the :guilabel:`Reordering
Rules` smart button at the top of the form, and then on the next page, click :guilabel:`Create` to
configure the form as follows:
- :guilabel:`Location`: the location that the reordering rule will replenish when triggered, in this
case, the incoming warehouse
- :guilabel:`Min Quantity`: when the quantity on hand at the incoming warehouse falls below this
number, the reordering rule will be triggered
- :guilabel:`Max Quantity`: when the reordering rule is triggered, the product will be replenished
at the incoming warehouse up to this quantity
- :guilabel:`Multiple Quantity`: specify if the product should be replenished in batches of a
certain quantity; for example, a product could be replenished in batches of 20
- :guilabel:`UoM`: the unit of measure used for reordering the product; this value can simply be
`Units`, or a specific unit of measurement for weight, length, etc.
.. image:: warehouse_replenishment_transfer/reordering-rule-configuration.png
:align: center
:alt: A fully configured reordering rule.
Finish by clicking :guilabel:`Save` and the reordering rule will be created. Now, when the scheduler
runs automatically each day, a transfer will be created for each reordering rule that has been
triggered.
.. tip::
To manually trigger reordering rules, start from the :menuselection:`Inventory` module and select
:menuselection:`Operation --> Run Scheduler`, then click the green :guilabel:`Run Scheduler`
button in the pop-up that appears.
After the scheduler runs, a delivery order and receipt will be created for the outgoing and incoming
warehouses, respectively. Both the delivery order and receipt should be processed using the same
method as detailed above.

View File

@@ -9,5 +9,6 @@ Concepts
:glob:
concepts/use_routes
concepts/inter_warehouse
concepts/cross_dock
concepts/stock_warehouses

View File

@@ -0,0 +1,71 @@
=========================
Inter-warehouse transfers
=========================
When owning several warehouses, goods might need to be transferred from one warehouse to another.
This type of transfer is called an *inter-warehouse transfer*. While physically performing the
inter-warehouse transfer might be simple, the administrative part can be complex. Fortunately, Odoo
comes with an intuitive flow that helps save time when registering inter-warehouse transfers.
Create an internal transfer
===========================
The following paragraphs detail a sample inter-warehouse transfer, referred to as an *internal
transfer*, use case. The sample use case assumes that the user has already configured their second
warehouse.
To transfer eight units of a product from the first warehouse to another one, proceed as follows:
From the :guilabel:`Inventory` dashboard, select an internal movement operation of one of the two
warehouses. To do so, click on the three vertical dots icon on the top right corner of the
operation card and select :guilabel:`Planned Transfer`.
.. image:: inter_warehouse/internal-transfer-choice.png
:align: center
:alt: View of the choice between planned transfer and immediate transfer.
On the new planned transfer form, select the :guilabel:`Source Location` (in this case, the first
warehouse) and the :guilabel:`Destination Location` (in this case, the second warehouse).
Next, add the products that will be transferred by clicking on :guilabel:`Add a line`, then click
on :guilabel:`Save` and :guilabel:`Mark as ToDo` once done. After that, Odoo puts the transfer in
the :guilabel:`Waiting` status. Then, click on :guilabel:`Reserve` to reserve the number of
products in the source warehouse.
.. image:: inter_warehouse/planned-internal-transfer.png
:align: center
:alt: View of the internal transfer form.
.. note::
If :guilabel:`Immediate Transfer` was selected instead of :guilabel:`Planned Transfer`, Odoo
processes the transfer automatically after the :guilabel:`Validate` button is clicked on the
internal transfer form.
It is also possible to manually transfer each product:
#. On the :guilabel:`Inventory` dashboard, open the souce location's internal transfer operation
page.
.. image:: inter_warehouse/in-progress-internal-transfer.png
:align: center
:alt: View of the dashboard with a zoom of the pending internal transfer.
#. Open the desired transfer order form.
.. image:: inter_warehouse/internal-transfers-list.png
:align: center
:alt: View of the pending internal transfers list.
#. Click on the pencil icon in the lower right corner to open the operation details window. In this
new window, the quantity of products can be manually set.
.. image:: inter_warehouse/backorder.png
:align: center
:alt: View of a backorder pop-up window because all products are not moved at the same time.
.. note::
To process the transfer order partially (e.g., a part of the products can't be shipped yet due
to an unexpected event), Odoo automatically asks if a *backorder* should be created.
- Create a backorder if it is expected that the remaining products will be processed later.
- Do not create a backorder if the remaining products will not be supplied/received.

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -89,8 +89,6 @@ Area*. Then, once the quality check is done, move them to their *Storage Locatio
orders and their products are grouped in one transfer, whereas the packing operation respects the
grouping per customer order.
.. _use-routes/routes-rules:
Use routes and rules
====================

View File

@@ -13,5 +13,4 @@ SMS Marketing
.. toctree::
:titlesonly:
sms_marketing/essentials
sms_marketing/pricing

View File

@@ -1,12 +0,0 @@
:nosearch:
==========
Essentials
==========
.. toctree::
:titlesonly:
essentials/sms_essentials
essentials/sms_campaign_settings
essentials/mailing_lists_blacklists

View File

@@ -1,145 +0,0 @@
============================
Mailing lists and blacklists
============================
Creating or importing mailing lists in Odoo is very useful when curating content to specific groups
of people that already share similar demographics or interests. Mailing lists are also a great way
to get started if a company is migrating from another system, and already has a established
audience.
Moreover, providing an audience with the option to 'unsubscribe' from mailings, helps businesses
maintain good customer relations, by giving recipients the power to control what they are (and
aren't) sent.
Mailing lists
=============
In the :guilabel:`SMS Marketing` app, there's an option on the header menu called :guilabel:`Mailing
Lists`. When clicked, a sub-menu is revealed with options for :guilabel:`Mailing Lists` and
:guilabel:`Mailing List Contacts`.
Click :menuselection:`Mailing Lists --> Mailing Lists` to see an overview of all mailing lists in
the database.
.. image:: mailing_lists_blacklists/mailing-list-main-page.png
:align: center
:alt: View of the main SMS mailing list page on the Odoo SMS Marketing application.
To edit any existing list, select the desired list from the :guilabel:`Mailing Lists` page, and
proceed to modify it in a number of ways.
To create a new mailing list, click :guilabel:`Create` in the upper left corner of the
:guilabel:`Mailing Lists` page. Doing so, will reveal a blank mailing list template form.
.. image:: mailing_lists_blacklists/sms-mailing-list-popup.png
:align: center
:alt: View of the mailing list pop-up window in Odoo SMS Marketing.
First, choose a name for the :guilabel:`Mailing List`, and activate the option :guilabel:`Is
Public`, to make the mailing list accessible to recipients on the :guilabel:`Subscription Management
page`. Doing so allows users to update their subscription preferences at any time.
.. note::
Checking the :guilabel:`Is Public` box is not required, but is recommended to maintain good
customer relations.
When those fields are filled in, click :guilabel:`Create` to finalize the form. Then on the main
:guilabel:`Mailing Lists` dashboard, the new mailing list that was just created will be accessible.
To edit or customize the mailing list further, select the mailing list from the main
:guilabel:`Mailing Lists` page to reveal the mailing list detail form.
Along the top of the mailing list detail form, there are various analytical smart buttons displaying
statistics for different metrics related to the mailing list (e.g. :guilabel:`Recipients`,
:guilabel:`Mailings`, etc.).
To review or edit any of those elements, click the desired smart button to reveal a separate page
with in-depth data associated with the mailing list.
To make changes to the mailing list itself, click the :guilabel:`Edit` button in the upper-left
corner of the mailing list detail form.
.. image:: mailing_lists_blacklists/sms-mailing-list.png
:align: center
:alt: View of the mailing list template form in Odoo SMS Marketing.
.. note::
Don't forget to hit the :guilabel:`Save` button once changes have been made.
Mailing lists contacts
======================
Access contacts information from one or more mailing lists navigate to :menuselection:`Mailing Lists
--> Mailing List Contacts` to reveal a dashboard with with all the contacts associated with one or
more of the configured mailing lists in the database.
.. image:: mailing_lists_blacklists/mailing-list-contacts-page.png
:align: center
:alt: View of the mailing lists contact page in the Odoo SMS Marketing application.
.. note::
By default, Odoo reveals the :guilabel:`Mailing List Contacts` page with the :guilabel:`Exclude
Blacklisted Phone` filter in the search bar. Therefore only showing contact information for
recipients who still want to receive communications and mailings.
Communication history in the Chatter
------------------------------------
An accessible record of every sent mailing(s) is kept on each recipient's *chatter* section, located
beneath a recipient's contact form (in the *Contacts* application).
Database users can reference the chatter to easily keep track of communications, and see a history
of interactions with contacts and prospects.
For example, sales representatives can use the chatter to quickly find out which :abbr:`SMS (Short
Message Service)` mailing promotions a certain customer has received (or not received).
.. image:: mailing_lists_blacklists/sms-marketing-chatter.png
:align: center
:alt: View of what the chatter looks like in the Odoo Contacts app.
Blacklist
=========
Odoo *SMS Marketing* has a :guilabel:`Blacklist` feature that provides recipients with the power to
add their phone number to a list of people who no longer want to receieve communications or
mailings.
This is also known as the unsubscribe process: customers will automatically be added onto a
*blacklist*, if they click :guilabel:`Unsubscribe`, via their :guilabel:`Subscription Management`
page. Customers can also be added manually to the blacklist, if necessary.
To see a complete collection of blacklisted numbers, navigate to the :menuselection:`SMS Marketing
app --> Configuration --> Blacklisted Phone Numbers` to reveal a dashboard containing every
blacklisted phone number in the database.
.. image:: mailing_lists_blacklists/sms-blacklist-menu.png
:align: center
:alt: SMS Blacklist menu in the application.
To manually add a number to a blacklist, click the :guilabel:`Create` button in the upper-left
corner of the dashboard and enter the phone number on the next page's form. There's also a
checkbox to indicate whether that particular phone numnber is :guilabel:`Active` (or not).
.. image:: mailing_lists_blacklists/sms-blacklist-create.png
:align: center
:alt: SMS Blacklist menu in the application.
Once the form is completed, click :guilabel:`Save` to add it to the :guilabel:`Blacklisted Phone
Numbers` list. To remove any number from the blacklist, select the desired number on the dashboard,
and then, on the phone number's form, click :guilabel:`Unblacklist`.
Importing blacklists
--------------------
During a software/platform migration, it is possible to import an already existing blacklist of
contacts. This would include customers, who have already asked to be blacklisted` on :abbr:`SMS
(Short Message Service)` mailings.
To do that, navigate to :menuselection:`SMS Marketing app --> Configuration --> Blacklisted Phone
Numbers`, and then select the :guilabel:`Favorites` drop-down menu (beneath the search bar), and
click :guilabel:`Import records`.
.. image:: mailing_lists_blacklists/import-blacklist.png
:align: center
:alt: View of how to import a blacklist in Odoo SMS Marketing.

View File

@@ -1,158 +0,0 @@
=====================
SMS campaign settings
=====================
Utilizing :abbr:`SMS (Short Message Service)` campaigns with Odoo *SMS Marketing* isn't just an
effective advertisement strategy, it's also a great way to remind people about upcoming events,
issued invoices, and so much more.
But, before :abbr:`SMS (Short Message Service)` campaigns can be created (and sent), a few specific
settings and features must be enabled first.
SMS campaign setting
====================
To enable :abbr:`SMS (Short Message Service)` campaigns in Odoo, make sure the *Mailing Campaigns*
feature is activated by going to :menuselection:`Email Marketing --> Configuration --> Settings`,
and then enable :guilabel:`Mailing Campaigns` and :guilabel:`Save` the changes.
.. image:: sms_campaign_settings/sms-mailing-campaigns.png
:align: center
:alt: View of the mailing campaigns setting in Odoo.
.. note::
Activating the *Mailing Campaigns* feature in the *General Settings* also enables the *A/B Test*
feature.
Once the setting is enabled, navigate back to the :menuselection:`SMS Marketing` app, and notice the
:guilabel:`Campaigns` header menu is now available for use. Similarly, the :guilabel:`A/B Test` tab
is now also available on every :abbr:`SMS (Short Message Service)` template form.
A/B tests
=========
:guilabel:`A/B Tests` allows any :abbr:`SMS (Short Message Service)` mailings to be tested against
other versions within the same campaign, in order to compare which version is the most successful in
producing engagement and/or conversion outcomes.
On an :abbr:`SMS (Short Message Service)` template form, under the :guilabel:`A/B Tests` tab,
initially, there's only a single checkbox labeled: :guilabel:`Allow A/B Testing.`
When clicked, a series of other options appear.
.. image:: sms_campaign_settings/ab-tests-sms.png
:align: center
:alt: The A/B Test tab is located on an Odoo SMS Marketing app campaign form.
In the first field, enter a desired percentage of recipients to conduct the A/B Test on.
Beneath the percentage field is the :guilabel:`Winner Selection` field. This is what Odoo will use
to determine the successful result of an A/B Test. In other words, this tells Odoo how to pick a
winning A/B test.
The following sections are available: :guilabel:`Manual`, :guilabel:`Highest Click Rate`,
:guilabel:`Leads`, :guilabel:`Quotations`, or :guilabel:`Revenues`.
Finally, the :guilabel:`Send Final On` field is listed. This represents the date-time that Odoo uses
as a deadline to determine the winning mailing variation. Then, Odoo sends that winning mailing
variation to the remaining recipients, who weren't involved in the test, at that prior date and
time.
.. tip::
Quickly create different versions of the mailing to add to the A/B Test by clicking the
:guilabel:`Create an Alternate Version` button.
.. note::
Remember, the winning mailing variation is based on the criteria selected in the
:guilabel:`Winner Selection` field.
Campaigns page
==============
To create, edit, or analyze any campaign, click :menuselection:`Campaigns` in the header menu of the
:guilabel:`SMS Marketing` app. On the :guilabel:`Campaigns` page, each campaign displays various
information related to the mailings associated with that campaign (e.g. number of emails, social
posts, SMSs, and push notifications).
.. image:: sms_campaign_settings/campaigns-page.png
:align: center
:alt: Dasbhoard view of different Campaigns in the Odoo SMS Marketing app, separated by stage.
Campaign templates
==================
Click :guilabel:`Create` to create a new campaign, and Odoo reveals a blank campaign template form
to fill out. Alternatively, select any previously-made campaign in order to duplicate, review, or
edit its campaign template form.
.. image:: sms_campaign_settings/sms-campaign-template.png
:align: center
:alt: View of an SMS campaign template in Odoo SMS marketing.
With each campaign, the options to :guilabel:`Send New Mailing`, :guilabel:`Send SMS`,
:guilabel:`Send Social Post`, and :guilabel:`Push Notifications` are available above the template
form.
Whenever one of those communication options is added to the campaign, Odoo will create a new
corresponding tab on the template form, where those types of messages can be reviewed or edited,
along with various data sets related to each specific mailing.
At the top of the template, there are various analytical smart buttons. When clicked, Odoo reveals
in-depth metrics related to that specific topic (e.g. :guilabel:`Engagement`,
:guilabel:`Opportunities`, etc.) on a separate page.
Beneath the smart buttons, are fields for :guilabel:`Campaign Name` and :guilabel:`Responsible`.
Odoo also allows for various :guilabel:`Tags` to be added, as well (if necessary).
Sending SMSs through the Contacts app
=====================================
Sending :abbr:`SMS (Short Message Service)` mailings directly through a contact's form is available
by default.
In order to send an :abbr:`SMS (Short Message Service)` in this fashion, navigate to the
:menuselection:`Contacts` app, select the desired contact in the database, and click on the
:guilabel:`SMS` icon on the contact form (next to the :guilabel:`Phone Number` field).
.. image:: sms_campaign_settings/sms-contact-form.png
:align: center
:alt: The SMS icon is located on an individual's contact form in Odoo Contacts.
To send a message to multiple contacts at once, navigate to the main :menuselection:`Contacts` app
main dashboard, choose the :guilabel:`List View`, and select all the desired contacts to whom the
message should be sent. Then, under :guilabel:`Action`, select :guilabel:`Send SMS`.
.. image:: sms_campaign_settings/sms-contacts-action-send-message.png
:align: center
:alt: Select a number of contacts, click action, and select send multiple SMSs.
Set up SMS templates for future use
===================================
In order to set up :guilabel:`SMS Templates` for future use, activate :ref:`developer mode
<developer-mode>`, by navigating to the main Odoo dashboard that is full of apps, and select the
:menuselection:`Settings app`. Then, scroll down to the :guilabel:`Developer Tools` section, and
click :guilabel:`Activate the Developer Mode`.
Once *developer mode* is activated, the main Odoo dashboard appears once more, with a now-visible
bug icon, which is located at the top-right corner of the dashboard; this bug icon indicates that
developer mode is currently active.
Next return to the :menuselection:`Settings app` and, in the now-visible header menus at the top,
choose :menuselection:`Technical --> SMS Templates` to begin setting up :abbr:`SMS (Short Message
Service)` templates for future marketing campaigns.
.. image:: sms_campaign_settings/sms-template-setting.png
:align: center
:alt: Select the SMS Template option in the Technical dropdown on the Settings app.
Inside of the :guilabel:`SMS Templates` dashboard, Odoo reveals an entire page of :abbr:`SMS (Short
Message Service)` templates. The default :guilabel:`List` view showcases each template's name, and
to which recipients it applies.
On this page, :abbr:`SMS (Short Message Service)` templates can be edited or created from scratch.
.. image:: sms_campaign_settings/sms-template.png
:align: center
:alt: The SMS Templates page in Odoo is available after enabling developer mode in the General
Settings

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Some files were not shown because too many files have changed in this diff Show More