parent
4af7600805
commit
efb6c47e92
@ -17,7 +17,7 @@ You can use a custom domain name to access your Odoo database and websites:
|
||||
``odoo.com`` for both the URL and the emails (e.g., ``https://example.odoo.com``).
|
||||
|
||||
.. important::
|
||||
Odoo offers a :ref:`free custom domain name <domain-name/odoo-register>` to all Odoo Online
|
||||
Odoo offers a :ref:`free custom domain name <domain-name/odoo-register>` to all Odoo Online
|
||||
databases for one year. Visitors can then access your website with an address such as
|
||||
``www.example.com`` rather than the default ``example.odoo.com``.
|
||||
|
||||
|
@ -41,7 +41,7 @@ On Linux, using an installer
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo dpkg -i <path_to_enterprise_deb>
|
||||
|
||||
|
||||
* Update your database to the enterprise packages using
|
||||
|
||||
.. code-block:: console
|
||||
|
@ -123,7 +123,7 @@ server in Odoo. The configuration automatically loads the token in Odoo, and a t
|
||||
:align: center
|
||||
:alt: Configure Outgoing Email Servers in Odoo.
|
||||
|
||||
Finally, save the settings and :guilabel:`Test the Connection`. A confirmation message should
|
||||
Finally, save the settings and :guilabel:`Test the Connection`. A confirmation message should
|
||||
appear. The Odoo database can now send safe, secure emails through Google using OAuth
|
||||
authentication.
|
||||
|
||||
|
@ -259,16 +259,16 @@ This server only keeps one month of backups: 7 daily and 4 weekly backups.
|
||||
Dedicated backup servers keep the same backups, as well as 3 additional monthly backups.
|
||||
To restore or download one of these monthly backups, please `contact us <https://www.odoo.com/help>`_.
|
||||
|
||||
If you merge a commit updating the version of one or several modules (in :file:`__manifest__.py`), or their linked python
|
||||
dependencies (in :file:`requirements.txt`), then Odoo.sh performs a backup automatically (flagged with type Update in the list),
|
||||
as either the container will be changed by the installation of new pip packages, either the database itself will be
|
||||
changed with the module update triggered afterwards. In these two cases, we are doing a backup as it may potentially
|
||||
If you merge a commit updating the version of one or several modules (in :file:`__manifest__.py`), or their linked python
|
||||
dependencies (in :file:`requirements.txt`), then Odoo.sh performs a backup automatically (flagged with type Update in the list),
|
||||
as either the container will be changed by the installation of new pip packages, either the database itself will be
|
||||
changed with the module update triggered afterwards. In these two cases, we are doing a backup as it may potentially
|
||||
break things.
|
||||
|
||||
If you merge a commit that only changes some code without the above-mentioned modifications, then no backup is done
|
||||
by Odoo.sh, as neither the container nor the database is modified so the platform considers this safe enough. Of course,
|
||||
as an extra precaution, you can make a backup manually before making big changes in your production sources in case
|
||||
something goes wrong (those manual backups are available for about one week). To avoid abuse, we limit manual backups
|
||||
If you merge a commit that only changes some code without the above-mentioned modifications, then no backup is done
|
||||
by Odoo.sh, as neither the container nor the database is modified so the platform considers this safe enough. Of course,
|
||||
as an extra precaution, you can make a backup manually before making big changes in your production sources in case
|
||||
something goes wrong (those manual backups are available for about one week). To avoid abuse, we limit manual backups
|
||||
to 5 per day.
|
||||
|
||||
The *import database* feature accepts database archives in the format provided by:
|
||||
|
@ -43,7 +43,7 @@ different columns you want to import.
|
||||
:alt: Register bank statements manually in Odoo Accounting
|
||||
|
||||
.. note::
|
||||
Quicken Interchange Format (.QIF) is an older file format that is no longer supported since 2005.
|
||||
Quicken Interchange Format (.QIF) is an older file format that is no longer supported since 2005.
|
||||
If possible, prefer OFX files over QIF.
|
||||
|
||||
Register bank statements manually
|
||||
|
@ -80,12 +80,12 @@ FAQ
|
||||
I have an error when I try to delete my synchronization within Odoo
|
||||
-------------------------------------------------------------------
|
||||
|
||||
Odoo can't permanently delete the connection you have created with the banking institution. However,
|
||||
it can revoke the consent you gave so that Odoo won't be able to access your account anymore. The
|
||||
error you are seeing is probably a message telling you that the consent was revoked, but the record
|
||||
could not be deleted as it still exists within Salt edge. If you want to remove the connection
|
||||
completely, please connect to your `Salt Edge account <https://www.saltedge.com/dashboard>`_
|
||||
and manually delete your synchronization. Once this is done, you can go back to Odoo to delete the
|
||||
Odoo can't permanently delete the connection you have created with the banking institution. However,
|
||||
it can revoke the consent you gave so that Odoo won't be able to access your account anymore. The
|
||||
error you are seeing is probably a message telling you that the consent was revoked, but the record
|
||||
could not be deleted as it still exists within Salt edge. If you want to remove the connection
|
||||
completely, please connect to your `Salt Edge account <https://www.saltedge.com/dashboard>`_
|
||||
and manually delete your synchronization. Once this is done, you can go back to Odoo to delete the
|
||||
record.
|
||||
|
||||
I have an error saying that I have already synchronized this account
|
||||
|
@ -63,7 +63,7 @@ Log an internal transfer
|
||||
|
||||
The first step is to register the internal payment. To do so go into
|
||||
your accounting dashboard, click on the **more** button of one of your banks
|
||||
and select :menuselection:`New --> Internal transfer`.
|
||||
and select :menuselection:`New --> Internal transfer`.
|
||||
|
||||
.. image:: interbank/interbank01.png
|
||||
:align: center
|
||||
@ -117,7 +117,7 @@ The following window will open:
|
||||
:align: center
|
||||
|
||||
You need to choose counterparts for the payment. Select the correct
|
||||
bank statement line corresponding to the payment and click on the
|
||||
bank statement line corresponding to the payment and click on the
|
||||
**reconcile** button. Close the statement to finish the transaction
|
||||
|
||||
.. image:: interbank/interbank08.png
|
||||
|
@ -11,7 +11,7 @@ Configuration
|
||||
.. image:: manage_cash_register/journal.png
|
||||
:align: center
|
||||
|
||||
1. Configure the Cash journal in :menuselection:`Accounting --> Configuration -->
|
||||
1. Configure the Cash journal in :menuselection:`Accounting --> Configuration -->
|
||||
Journals`.
|
||||
|
||||
2. In the tab Journal Entries, the Default Debit and Credit Account can be
|
||||
|
@ -23,9 +23,9 @@ modules are available:
|
||||
- **l10n_ar_reports**: Add VAT Book report which is a legal requirement in Argentine and that holds
|
||||
the VAT detail info of sales or purchases recorded on the journal entries. This module includes as
|
||||
well the VAT summary report that is used to analyze the invoice
|
||||
|
||||
- **l10n_ar_edi**: This module includes all technical and functional requirements to generate
|
||||
Electronic Invoice via web service, based on the AFIP regulations.
|
||||
|
||||
- **l10n_ar_edi**: This module includes all technical and functional requirements to generate
|
||||
Electronic Invoice via web service, based on the AFIP regulations.
|
||||
|
||||
|
||||
Configuration
|
||||
@ -48,7 +48,7 @@ fiscal obligation and structure of the company:
|
||||
|
||||
.. image:: argentina/argentina02.png
|
||||
:align: center
|
||||
|
||||
|
||||
|
||||
Chart of Account
|
||||
~~~~~~~~~~~~~~~~
|
||||
@ -75,9 +75,9 @@ Environment
|
||||
|
||||
The AFIP infrastructure is replicated in two separate environments, Testing and Production.
|
||||
|
||||
Testing is provided so that the Companies can test their developments until they are ready to move
|
||||
into the Production environment. As these two environments are completely isolated from each other,
|
||||
the digital certificates of one instance are not valid in the other one.
|
||||
Testing is provided so that the Companies can test their developments until they are ready to move
|
||||
into the Production environment. As these two environments are completely isolated from each other,
|
||||
the digital certificates of one instance are not valid in the other one.
|
||||
|
||||
Go to :menuselection:`Accounting --> Settings --> Argentinian Localization` to select the environment:
|
||||
|
||||
@ -87,10 +87,10 @@ Go to :menuselection:`Accounting --> Settings --> Argentinian Localization` to s
|
||||
|
||||
AFIP Certificates
|
||||
*****************
|
||||
The electronic invoice and other afip services work with WebServices (WS) provided by the AFIP.
|
||||
The electronic invoice and other afip services work with WebServices (WS) provided by the AFIP.
|
||||
|
||||
In order to enable communication with the AFIP, the first step is to request a Digital Certificate
|
||||
if you don’t have one already.
|
||||
if you don’t have one already.
|
||||
|
||||
#. Generate certificate Sign Request (Odoo). When this option is selected a file with extension
|
||||
``.csr`` (certificate signing request) is generated to be used the AFIP portal to request the
|
||||
@ -101,7 +101,7 @@ if you don’t have one already.
|
||||
#. Generate Certificate (AFIP). Access the AFIP portal and follow the instructions described in the
|
||||
next document in order to get a certificate. `Get AFIP Certificate
|
||||
<http://www.afip.gob.ar/ws/WSAA/wsaa_obtener_certificado_produccion.pdf>`_.
|
||||
|
||||
|
||||
#. Upload Certificate and Private Key (Odoo). Once the certificate has been generated, it needs to
|
||||
be uploaded in Odoo, using the pencil next in the field “Certificado” and selecting the
|
||||
corresponding file.
|
||||
@ -109,7 +109,7 @@ if you don’t have one already.
|
||||
.. image:: argentina/argentina_edi_03.png
|
||||
|
||||
.. tip::
|
||||
In case you need to configure the Homologation Certificate, please refer to the AFIP official
|
||||
In case you need to configure the Homologation Certificate, please refer to the AFIP official
|
||||
documentation: `Homologation Certificate
|
||||
<http://www.afip.gob.ar/ws/documentacion/certificados.asp>`_.
|
||||
|
||||
@ -244,11 +244,11 @@ defines as well:
|
||||
#. The structure and data of the electronic invoice file.
|
||||
|
||||
Web Services
|
||||
************
|
||||
- ``wsfev1: Electronic Invoice.`` This is the most common service,
|
||||
is used to generated invoices for document types A, B, C, M with no detail per item.
|
||||
- ``wsbfev1: Electronic Fiscal Bond.`` For those who invoice capital goods and wish
|
||||
to access the benefit of the Electronic Tax Bonds granted by the Ministry of Economy. For more
|
||||
************
|
||||
- ``wsfev1: Electronic Invoice.`` This is the most common service,
|
||||
is used to generated invoices for document types A, B, C, M with no detail per item.
|
||||
- ``wsbfev1: Electronic Fiscal Bond.`` For those who invoice capital goods and wish
|
||||
to access the benefit of the Electronic Tax Bonds granted by the Ministry of Economy. For more
|
||||
detail you can refer to the next link: `Fiscal Bond
|
||||
<https://www.argentina.gob.ar/acceder-un-bono-por-fabricar-bienes-de-capital>`_.
|
||||
- ``wsfexv1: Electronic Exportation Invoice.`` Used to generate invoices for international customers
|
||||
@ -282,8 +282,8 @@ can be used:
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
When creating the Purchase journals, it's possible to define if they can be related to document
|
||||
types or not. In case that the option to use documents is selected, there is no need to manually
|
||||
When creating the Purchase journals, it's possible to define if they can be related to document
|
||||
types or not. In case that the option to use documents is selected, there is no need to manually
|
||||
associate the document type sequences as the document number is provided by the vendor.
|
||||
|
||||
|
||||
@ -326,22 +326,22 @@ responsibility type but it can be updated manually by the user.
|
||||
|
||||
Electronic Invoice elements
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
When using electronic invoice, if all the information is correct the Invoice is posted in the
|
||||
standard way, in case that something needs to be addressed (check the section common errors for more
|
||||
detail), an error message is raised indicating the issue/proposed solution and the invoice remains
|
||||
in draft until the related data is corrected.
|
||||
When using electronic invoice, if all the information is correct the Invoice is posted in the
|
||||
standard way, in case that something needs to be addressed (check the section common errors for more
|
||||
detail), an error message is raised indicating the issue/proposed solution and the invoice remains
|
||||
in draft until the related data is corrected.
|
||||
|
||||
Once the invoice is posted, the information related to the AFIP validation and status is displayed
|
||||
in the AFIP Tab, including:
|
||||
Once the invoice is posted, the information related to the AFIP validation and status is displayed
|
||||
in the AFIP Tab, including:
|
||||
|
||||
- AFIP Autorisation: CAE number.
|
||||
- Expiration date: Deadline to deliver the invoice to the customers. Normally 10 days after the
|
||||
CAE is generated.
|
||||
- Expiration date: Deadline to deliver the invoice to the customers. Normally 10 days after the
|
||||
CAE is generated.
|
||||
- Result:
|
||||
|
||||
- Aceptado en AFIP.
|
||||
- Aceptado con Observaciones.
|
||||
|
||||
- Aceptado con Observaciones.
|
||||
|
||||
.. image:: argentina/argentina_edi_15.png
|
||||
:align: center
|
||||
|
||||
@ -378,7 +378,7 @@ Special Use Cases
|
||||
Invoices for Services
|
||||
*********************
|
||||
For electronic invoices that include Services, the AFIP requires to report the service starting
|
||||
and ending date, this information can be filled in the tab “Other Info”:
|
||||
and ending date, this information can be filled in the tab “Other Info”:
|
||||
|
||||
.. image:: argentina/argentina_edi_06.png
|
||||
:align: center
|
||||
@ -392,34 +392,34 @@ filled automatically considering the beginning and day of the invoice month:
|
||||
|
||||
Exportation Invoices
|
||||
********************
|
||||
The invoices related to Exportation transactions required a Journal that used the AFIP POS
|
||||
The invoices related to Exportation transactions required a Journal that used the AFIP POS
|
||||
System “Expo Voucher - Web Service” so the proper document type be associated:
|
||||
|
||||
.. image:: argentina/argentina_edi_08.png
|
||||
:align: center
|
||||
|
||||
When the customer selected in the Invoice has set the AFIP responsibility type as “Cliente /
|
||||
When the customer selected in the Invoice has set the AFIP responsibility type as “Cliente /
|
||||
Proveedor del Exterior” or “IVA Liberado – Ley Nº 19.640”, Odoo automatically assigned:
|
||||
|
||||
- Journal related to the exportation Web Service.
|
||||
- Exportation document type .
|
||||
- Fiscal position: Compras/Ventas al exterior.
|
||||
- Concepto AFIP: Products / Definitive export of goods.
|
||||
- Exempt Taxes.
|
||||
- Exempt Taxes.
|
||||
|
||||
.. image:: argentina/argentina_edi_09.png
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
The Exportation Documents required the Incoterm in :menuselection:`Other Info --> Accounting`:
|
||||
|
||||
|
||||
.. image:: argentina/argentina_edi_13.png
|
||||
:align: center
|
||||
|
||||
|
||||
|
||||
|
||||
Fiscal Bond
|
||||
***********
|
||||
The Electronic Fiscal bond is used for those who invoice capital goods and wish to access
|
||||
The Electronic Fiscal bond is used for those who invoice capital goods and wish to access
|
||||
the benefit of the Electronic Tax Bonds granted by the Ministry of Economy.
|
||||
|
||||
For these transactions it’s important to have into consideration the next requirements:
|
||||
@ -435,77 +435,77 @@ For these transactions it’s important to have into consideration the next requ
|
||||
- Quantity.
|
||||
- Unit of measurement.
|
||||
- Bonus.
|
||||
- VAT rate.
|
||||
- VAT rate.
|
||||
|
||||
|
||||
Electronic Credit Invoice MiPyme (FCE)
|
||||
Electronic Credit Invoice MiPyme (FCE)
|
||||
**************************************
|
||||
|
||||
**Invoices:** There are several document types classified as Mipyme also known as
|
||||
Electronic Credit Invoice (FCE in spanish), which is used to impulse the SME, its purpose is
|
||||
to develop a mechanism that improves the financing conditions of these companies and allows
|
||||
them to increase their productivity, through the early collection of credits and receivables
|
||||
issued to their clients and / or vendors.
|
||||
Electronic Credit Invoice (FCE in spanish), which is used to impulse the SME, its purpose is
|
||||
to develop a mechanism that improves the financing conditions of these companies and allows
|
||||
them to increase their productivity, through the early collection of credits and receivables
|
||||
issued to their clients and / or vendors.
|
||||
|
||||
For these transactions it’s important to have into consideration the next requirements:
|
||||
|
||||
- Specific document types (201, 202, 206, etc).
|
||||
- The emisor should be eligible by the AFIP to MiPyme transactions.
|
||||
- The amount should be bigger than 100,000 ARS.
|
||||
- A bank account type CBU must be related to the emisor, otherwise the invoice can’t
|
||||
be validated, having these errors messages for example:
|
||||
|
||||
- The emisor should be eligible by the AFIP to MiPyme transactions.
|
||||
- The amount should be bigger than 100,000 ARS.
|
||||
- A bank account type CBU must be related to the emisor, otherwise the invoice can’t
|
||||
be validated, having these errors messages for example:
|
||||
|
||||
.. image:: argentina/argentina_edi_10.png
|
||||
:align: center
|
||||
|
||||
**Credit& Debit Notes:** When creating a Credit/Debit note related to a FCE document, it is
|
||||
**Credit& Debit Notes:** When creating a Credit/Debit note related to a FCE document, it is
|
||||
important take the next points into consideration:
|
||||
|
||||
- Use the Credit and Debit Note buttons, so the correct reference of the originator
|
||||
document passed to the note.
|
||||
- Use the Credit and Debit Note buttons, so the correct reference of the originator
|
||||
document passed to the note.
|
||||
|
||||
.. image:: argentina/argentina_edi_11.png
|
||||
:align: center
|
||||
|
||||
|
||||
- The document letter should be the same than the originator document (either A or B).
|
||||
- The same currency as the source document must be used. When using a secondary currency
|
||||
there is an exchange difference if the currency rate is different between the emission day
|
||||
and the payment date, it’s possible to create a credit/debit note to decrease/increase the
|
||||
amount to pay in ARS.
|
||||
- The same currency as the source document must be used. When using a secondary currency
|
||||
there is an exchange difference if the currency rate is different between the emission day
|
||||
and the payment date, it’s possible to create a credit/debit note to decrease/increase the
|
||||
amount to pay in ARS.
|
||||
|
||||
In the workflow we can have two scenarios:
|
||||
|
||||
#. The FCE is rejected so the Credit Note should have the field “FCE, is Cancellation?” as True.
|
||||
#. The Credit Note, is created with the negative amount to annulate the FCE document,
|
||||
in this case the field “FCE, is Cancellation?” must be empty (false).
|
||||
#. The FCE is rejected so the Credit Note should have the field “FCE, is Cancellation?” as True.
|
||||
#. The Credit Note, is created with the negative amount to annulate the FCE document,
|
||||
in this case the field “FCE, is Cancellation?” must be empty (false).
|
||||
|
||||
.. image:: argentina/argentina_edi_12.png
|
||||
:align: center
|
||||
|
||||
|
||||
Invoice printed report
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
The PDF report related to electronic invoices that have been validated by the AFIP includes
|
||||
a barcode at the bottom of the format which represent the CAE number, the Expiration Date is
|
||||
also displayed as it’s legal requirement:
|
||||
|
||||
The PDF report related to electronic invoices that have been validated by the AFIP includes
|
||||
a barcode at the bottom of the format which represent the CAE number, the Expiration Date is
|
||||
also displayed as it’s legal requirement:
|
||||
|
||||
.. image:: argentina/argentina_edi_14.png
|
||||
:align: center
|
||||
|
||||
|
||||
Troubleshooting and Auditing
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
For auditing and troubleshooting purposes you can get the detailed information of an
|
||||
invoice number that has been previously sent to the AFIP,
|
||||
For auditing and troubleshooting purposes you can get the detailed information of an
|
||||
invoice number that has been previously sent to the AFIP,
|
||||
|
||||
.. image:: argentina/argentina_edi_23.png
|
||||
:align: center
|
||||
|
||||
|
||||
.. image:: argentina/argentina_edi_24.png
|
||||
:align: center
|
||||
:align: center
|
||||
|
||||
|
||||
You can also get the last number used in AFIP for a specific Document Type and POS Number
|
||||
as support for any possible issues on the sequence synchronization between Odoo and AFIP.
|
||||
You can also get the last number used in AFIP for a specific Document Type and POS Number
|
||||
as support for any possible issues on the sequence synchronization between Odoo and AFIP.
|
||||
|
||||
.. image:: argentina/argentina_edi_22.png
|
||||
:align: center
|
||||
@ -514,8 +514,8 @@ as support for any possible issues on the sequence synchronization between Odoo
|
||||
Vendor Bills
|
||||
------------
|
||||
|
||||
Based on the purchase journal selected for the vendor bill, the document type is now a required field.
|
||||
This value is auto populated based on the AFIP Responsibility type of Issuer and Customer, but the
|
||||
Based on the purchase journal selected for the vendor bill, the document type is now a required field.
|
||||
This value is auto populated based on the AFIP Responsibility type of Issuer and Customer, but the
|
||||
value can be switched if necessary.
|
||||
|
||||
.. image:: argentina/argentina16.png
|
||||
@ -528,20 +528,20 @@ expected.
|
||||
.. image:: argentina/argentina17.png
|
||||
:align: center
|
||||
|
||||
The vendor bill number is structured in the same way that the invoices with the difference
|
||||
The vendor bill number is structured in the same way that the invoices with the difference
|
||||
that the document sequence is input by the user: “Document Prefix - Letter - Document number".
|
||||
|
||||
|
||||
Validate Vendor Bill number in AFIP
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
As most companies have internal controls to verify that the vendor bill is related to an AFIP
|
||||
valid document, an automatic validation can be set in :menuselection:`Accounting --> Settings -->
|
||||
Argentinian Localization --> Validate document in the AFIP`, considering the following levels:
|
||||
valid document, an automatic validation can be set in :menuselection:`Accounting --> Settings -->
|
||||
Argentinian Localization --> Validate document in the AFIP`, considering the following levels:
|
||||
|
||||
- **Not available:** The verification is not done (this is the default value).
|
||||
- **Available:** The verification is done, in case the number is not valid
|
||||
it only raises a warning but it allows you to post the vendor bill.
|
||||
- **Required:** The verification is done and it doesn't allow the user to
|
||||
- **Available:** The verification is done, in case the number is not valid
|
||||
it only raises a warning but it allows you to post the vendor bill.
|
||||
- **Required:** The verification is done and it doesn't allow the user to
|
||||
post the vendor bill if the document number is not valid.
|
||||
|
||||
.. image:: argentina/argentina_edi_16.png
|
||||
@ -549,13 +549,13 @@ Argentinian Localization --> Validate document in the AFIP`, considering the fol
|
||||
|
||||
How to use it in Odoo
|
||||
*********************
|
||||
This tool incorporates in the vendor bill a new "Verify on AFIP" button located
|
||||
next to the AFIP Authorization code.
|
||||
This tool incorporates in the vendor bill a new "Verify on AFIP" button located
|
||||
next to the AFIP Authorization code.
|
||||
|
||||
.. image:: argentina/argentina_edi_17.png
|
||||
:align: center
|
||||
|
||||
In case it’s not a valid AFIP authorization the value “Rejected” will be
|
||||
In case it’s not a valid AFIP authorization the value “Rejected” will be
|
||||
displayed and the details of the validation will be added to the chatter.
|
||||
|
||||
.. image:: argentina/argentina_edi_18.png
|
||||
@ -566,8 +566,8 @@ Special Use cases
|
||||
~~~~~~~~~~~~~~~~~
|
||||
Untaxed Concepts
|
||||
****************
|
||||
There are some transactions that include items that are not part of the VAT base amount,
|
||||
this is commonly used in fuel and gasoline invoices.
|
||||
There are some transactions that include items that are not part of the VAT base amount,
|
||||
this is commonly used in fuel and gasoline invoices.
|
||||
|
||||
The vendor bill will be registered using 1 item for each product that is part of the VAT
|
||||
base amount and an additional item to register the amount of the Exempt concept:
|
||||
@ -577,23 +577,23 @@ base amount and an additional item to register the amount of the Exempt concept
|
||||
|
||||
Perception Taxes
|
||||
****************
|
||||
The vendor bill will be registered using 1 item for each product that is part of the
|
||||
VAT base amount, the perception tax can be added in any of the product lines, as result
|
||||
we will have one tax group for the VAT and one for the perception, the perception default
|
||||
value is always 1.00.
|
||||
The vendor bill will be registered using 1 item for each product that is part of the
|
||||
VAT base amount, the perception tax can be added in any of the product lines, as result
|
||||
we will have one tax group for the VAT and one for the perception, the perception default
|
||||
value is always 1.00.
|
||||
|
||||
.. image:: argentina/argentina_edi_20.png
|
||||
:align: center
|
||||
|
||||
You should use the pencil that is the next to the Perception amount to edit it
|
||||
and set the correct amount.
|
||||
You should use the pencil that is the next to the Perception amount to edit it
|
||||
and set the correct amount.
|
||||
|
||||
.. image:: argentina/argentina_edi_21.png
|
||||
:align: center
|
||||
|
||||
After this is done the invoice can be validated.
|
||||
|
||||
|
||||
|
||||
After this is done the invoice can be validated.
|
||||
|
||||
|
||||
Reports
|
||||
=======
|
||||
|
||||
|
@ -2,44 +2,44 @@
|
||||
France
|
||||
======
|
||||
|
||||
FEC
|
||||
FEC
|
||||
===
|
||||
|
||||
If you have installed the French Accounting, you will be able to download the FEC.
|
||||
For this, go in :menuselection:`Accounting --> Reporting --> France --> FEC`.
|
||||
For this, go in :menuselection:`Accounting --> Reporting --> France --> FEC`.
|
||||
|
||||
.. tip::
|
||||
If you do not see the submenu **FEC**, go in **Apps** and search for the module
|
||||
called **France-FEC** and verify if it is well installed.
|
||||
called **France-FEC** and verify if it is well installed.
|
||||
|
||||
French Accounting Reports
|
||||
=========================
|
||||
|
||||
If you have installed the French Accounting, you will have access to some accounting reports specific to France:
|
||||
If you have installed the French Accounting, you will have access to some accounting reports specific to France:
|
||||
|
||||
- Bilan comptable
|
||||
- Compte de résultats
|
||||
- Plan de Taxes France
|
||||
- Plan de Taxes France
|
||||
|
||||
Get the VAT anti-fraud certification with Odoo
|
||||
==============================================
|
||||
|
||||
As of January 1st 2018, a new anti-fraud legislation comes into effect
|
||||
in France and DOM-TOM. This new legislation stipulates certain criteria
|
||||
concerning the inalterability, security, storage and archiving of sales data.
|
||||
These legal requirements are implemented in Odoo, version 9 onward,
|
||||
As of January 1st 2018, a new anti-fraud legislation comes into effect
|
||||
in France and DOM-TOM. This new legislation stipulates certain criteria
|
||||
concerning the inalterability, security, storage and archiving of sales data.
|
||||
These legal requirements are implemented in Odoo, version 9 onward,
|
||||
through a module and a certificate of conformity to download.
|
||||
|
||||
Is my company required to use an anti-fraud software?
|
||||
-----------------------------------------------------
|
||||
|
||||
Your company is required to use an anti-fraud cash register software like
|
||||
Your company is required to use an anti-fraud cash register software like
|
||||
Odoo (CGI art. 286, I. 3° bis) if:
|
||||
|
||||
* You are taxable (not VAT exempt) in France or any DOM-TOM,
|
||||
* Some of your customers are private individuals (B2C).
|
||||
|
||||
This rule applies to any company size. Auto-entrepreneurs are exempted from
|
||||
This rule applies to any company size. Auto-entrepreneurs are exempted from
|
||||
VAT and therefore are not affected.
|
||||
|
||||
Get certified with Odoo
|
||||
@ -47,9 +47,9 @@ Get certified with Odoo
|
||||
|
||||
Getting compliant with Odoo is very easy.
|
||||
|
||||
Your company is requested by the tax administration to deliver a certificate
|
||||
of conformity testifying that your software complies with the anti-fraud
|
||||
legislation. This certificate is granted by Odoo SA to Odoo Enterprise users
|
||||
Your company is requested by the tax administration to deliver a certificate
|
||||
of conformity testifying that your software complies with the anti-fraud
|
||||
legislation. This certificate is granted by Odoo SA to Odoo Enterprise users
|
||||
`here <https://www.odoo.com/my/contract/french-certification/>`_.
|
||||
If you use Odoo Community, you should :doc:`upgrade to Odoo Enterprise
|
||||
</administration/maintain/enterprise>` or contact your Odoo service provider.
|
||||
@ -88,52 +88,52 @@ Anti-fraud features
|
||||
|
||||
The anti-fraud module introduces the following features:
|
||||
|
||||
* **Inalterability**: deactivation of all the ways to cancel or modify
|
||||
* **Inalterability**: deactivation of all the ways to cancel or modify
|
||||
key data of POS orders, invoices and journal entries;
|
||||
* **Security**: chaining algorithm to verify the inalterability;
|
||||
* **Storage**: automatic sales closings with computation of both period
|
||||
* **Storage**: automatic sales closings with computation of both period
|
||||
and cumulative totals (daily, monthly, annually).
|
||||
|
||||
Inalterability
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
All the possible ways to cancel and modify key data of paid POS orders,
|
||||
confirmed invoices and journal entries are deactivated,
|
||||
if the company is located in France or in any DOM-TOM.
|
||||
All the possible ways to cancel and modify key data of paid POS orders,
|
||||
confirmed invoices and journal entries are deactivated,
|
||||
if the company is located in France or in any DOM-TOM.
|
||||
|
||||
.. note:: If you run a multi-companies environment, only the documents of
|
||||
.. note:: If you run a multi-companies environment, only the documents of
|
||||
such companies are impacted.
|
||||
|
||||
Security
|
||||
~~~~~~~~
|
||||
|
||||
To ensure the inalterability, every order or journal entry is encrypted
|
||||
upon validation.
|
||||
This number (or hash) is calculated from the key data of the document as
|
||||
To ensure the inalterability, every order or journal entry is encrypted
|
||||
upon validation.
|
||||
This number (or hash) is calculated from the key data of the document as
|
||||
well as from the hash of the precedent documents.
|
||||
|
||||
The module introduces an interface to test the data inalterability.
|
||||
If any information is modified on a document after its validation,
|
||||
the test will fail. The algorithm recomputes all the hashes and compares them
|
||||
against the initial ones. In case of failure, the system points out the first
|
||||
The module introduces an interface to test the data inalterability.
|
||||
If any information is modified on a document after its validation,
|
||||
the test will fail. The algorithm recomputes all the hashes and compares them
|
||||
against the initial ones. In case of failure, the system points out the first
|
||||
corrupted document recorded in the system.
|
||||
|
||||
Users with *Manager* access rights can launch the inalterability check.
|
||||
For POS orders, go to
|
||||
:menuselection:`Point of Sales --> Reporting --> French Statements`.
|
||||
For invoices or journal entries,
|
||||
Users with *Manager* access rights can launch the inalterability check.
|
||||
For POS orders, go to
|
||||
:menuselection:`Point of Sales --> Reporting --> French Statements`.
|
||||
For invoices or journal entries,
|
||||
go to :menuselection:`Invoicing/Accounting --> Reporting --> French Statements`.
|
||||
|
||||
Storage
|
||||
~~~~~~~
|
||||
|
||||
The system also processes automatic sales closings on a daily, monthly
|
||||
The system also processes automatic sales closings on a daily, monthly
|
||||
and annual basis.
|
||||
Such closings distinctly compute the sales total of the period as well as
|
||||
the cumulative grand totals from the very first sales entry recorded
|
||||
Such closings distinctly compute the sales total of the period as well as
|
||||
the cumulative grand totals from the very first sales entry recorded
|
||||
in the system.
|
||||
|
||||
Closings can be found in the *French Statements* menu of Point of Sale,
|
||||
Closings can be found in the *French Statements* menu of Point of Sale,
|
||||
Invoicing and Accounting apps.
|
||||
|
||||
.. note::
|
||||
@ -141,15 +141,15 @@ Invoicing and Accounting apps.
|
||||
|
||||
* For multi-companies environments, such closings are performed by company.
|
||||
|
||||
* POS orders are posted as journal entries at the closing of the POS session.
|
||||
Closing a POS session can be done anytime.
|
||||
To prompt users to do it on a daily basis, the module prevents from resuming
|
||||
a session opened more than 24 hours ago.
|
||||
* POS orders are posted as journal entries at the closing of the POS session.
|
||||
Closing a POS session can be done anytime.
|
||||
To prompt users to do it on a daily basis, the module prevents from resuming
|
||||
a session opened more than 24 hours ago.
|
||||
Such a session must be closed before selling again.
|
||||
|
||||
* A period’s total is computed from all the journal entries posted after the
|
||||
previous closing of the same type, regardless of their posting date.
|
||||
If you record a new sales transaction for a period already closed,
|
||||
* A period’s total is computed from all the journal entries posted after the
|
||||
previous closing of the same type, regardless of their posting date.
|
||||
If you record a new sales transaction for a period already closed,
|
||||
it will be counted in the very next closing.
|
||||
|
||||
.. tip:: For test & audit purposes such closings can be manually generated in the
|
||||
@ -160,14 +160,14 @@ Invoicing and Accounting apps.
|
||||
Responsibilities
|
||||
----------------
|
||||
|
||||
Do not uninstall the module! If you do so, the hashes will be reset and none
|
||||
Do not uninstall the module! If you do so, the hashes will be reset and none
|
||||
of your past data will be longer guaranteed as being inalterable.
|
||||
|
||||
Users remain responsible for their Odoo instance and must use it with
|
||||
due diligence. It is not permitted to modify the source code which guarantees
|
||||
Users remain responsible for their Odoo instance and must use it with
|
||||
due diligence. It is not permitted to modify the source code which guarantees
|
||||
the inalterability of data.
|
||||
|
||||
Odoo absolves itself of all and any responsibility in case of changes
|
||||
|
||||
Odoo absolves itself of all and any responsibility in case of changes
|
||||
in the module’s functions caused by 3rd party applications not certified by Odoo.
|
||||
|
||||
|
||||
|
@ -9,7 +9,7 @@ The chart of accounts SKR03 and SKR04 are both supported in Odoo. You can choose
|
||||
one you want by going in :menuselection:`Accounting --> Configuration` then choose the
|
||||
package you want in the Fiscal Localization section.
|
||||
|
||||
Be careful, you can only change the accounting package as long as you have not created any accounting entry.
|
||||
Be careful, you can only change the accounting package as long as you have not created any accounting entry.
|
||||
|
||||
.. tip::
|
||||
|
||||
@ -20,7 +20,7 @@ German Accounting Reports
|
||||
|
||||
Here is the list of German-specific reports available on Odoo Enterprise:
|
||||
|
||||
- Balance Sheet
|
||||
- Balance Sheet
|
||||
- Profit & Loss
|
||||
- Tax Report (Umsatzsteuervoranmeldung)
|
||||
- Partner VAT Intra
|
||||
|
@ -37,7 +37,7 @@ Give Odoo permission to process files
|
||||
Since the files are transmitted through Odoo's server before being sent to SDICoop or received by
|
||||
your database, you need to authorize Odoo to process your files from your database.
|
||||
|
||||
To do this, go to :menuselection:`Accounting --> Settings --> Electronic Invoicing` and click on
|
||||
To do this, go to :menuselection:`Accounting --> Settings --> Electronic Invoicing` and click on
|
||||
*Register*.
|
||||
|
||||
.. image:: italy/register.png
|
||||
|
@ -5,20 +5,20 @@ Peru
|
||||
Introduction
|
||||
============
|
||||
|
||||
The Peruvian localization has been improved and extended, in this version the next modules are
|
||||
The Peruvian localization has been improved and extended, in this version the next modules are
|
||||
available:
|
||||
|
||||
- **l10n_pe**: Adds accounting features for the Peruvian localization, which represent the minimal
|
||||
configuration required for a company to operate in Peru and under the SUNAT regulations and
|
||||
guidelines. The main elements included in this module are: Chart of account, taxes,
|
||||
document types.
|
||||
configuration required for a company to operate in Peru and under the SUNAT regulations and
|
||||
guidelines. The main elements included in this module are: Chart of account, taxes,
|
||||
document types.
|
||||
|
||||
- **l10n_pe_edi**: includes all technical and functional requirements to generate and validate
|
||||
Electronic Invoice, based on the SUNAT specification to create and process valid electronic
|
||||
documents, for more technical detail you can access the
|
||||
- **l10n_pe_edi**: includes all technical and functional requirements to generate and validate
|
||||
Electronic Invoice, based on the SUNAT specification to create and process valid electronic
|
||||
documents, for more technical detail you can access the
|
||||
`SUNAT EDI specifications <https://cpe.sunat.gob.pe/node/88/>`_,
|
||||
that keeps track of new changes and updates.
|
||||
The features of this module are based on the resolutions published on the
|
||||
that keeps track of new changes and updates.
|
||||
The features of this module are based on the resolutions published on the
|
||||
`SUNAT Legislation <https://www.sunat.gob.pe/legislacion/general/index.html/>`_.
|
||||
|
||||
Configuration
|
||||
@ -27,24 +27,24 @@ Configuration
|
||||
Install the Peruvian localization modules
|
||||
-----------------------------------------
|
||||
|
||||
Go to *Apps* and search for Peru, then click Install in the module Peru EDI. This module has a
|
||||
Go to *Apps* and search for Peru, then click Install in the module Peru EDI. This module has a
|
||||
dependency with *Peru - Accounting*. In case this last one is not installed, Odoo installs it
|
||||
automatically within EDI.
|
||||
|
||||
.. image:: peru/peru-modules.png
|
||||
:align: center
|
||||
:alt: The "Module" filter is set on "Peru"
|
||||
:alt: The "Module" filter is set on "Peru"
|
||||
|
||||
.. note::
|
||||
When you install a database from scratch selecting Peru as country, Odoo automatically
|
||||
When you install a database from scratch selecting Peru as country, Odoo automatically
|
||||
installs the base module: Peru - Accounting.
|
||||
|
||||
|
||||
Configure your company
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
In addition to the basic information in the Company, we need to set Peru as the Country, this is
|
||||
essential for the Electronic Invoice to work properly. The field **Address Type Code** represents
|
||||
the establishment code assigned by the SUNAT when companies register their RUC (Unique Contributor
|
||||
essential for the Electronic Invoice to work properly. The field **Address Type Code** represents
|
||||
the establishment code assigned by the SUNAT when companies register their RUC (Unique Contributor
|
||||
Registration):
|
||||
|
||||
.. image:: peru/peru-company.png
|
||||
@ -53,18 +53,18 @@ Registration):
|
||||
|
||||
|
||||
.. tip::
|
||||
In case the Address type code is unknown, you can set it as the default value: 0000. Be aware
|
||||
that if an incorrect value is entered, the Electronic invoice validation might have errors.
|
||||
|
||||
In case the Address type code is unknown, you can set it as the default value: 0000. Be aware
|
||||
that if an incorrect value is entered, the Electronic invoice validation might have errors.
|
||||
|
||||
.. note::
|
||||
The NIF should be set following the RUC format.
|
||||
|
||||
|
||||
|
||||
Chart of Account
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
The chart of accounts is installed by default as part of the set of data included in the
|
||||
localization module, the accounts are mapped automatically in:
|
||||
The chart of accounts is installed by default as part of the set of data included in the
|
||||
localization module, the accounts are mapped automatically in:
|
||||
|
||||
- Taxes
|
||||
- Default Account Payable.
|
||||
@ -77,20 +77,20 @@ accounting.
|
||||
Accounting Settings
|
||||
-------------------
|
||||
|
||||
Once the modules are installed and the basic information of your company is set, you need to
|
||||
configure the elements required for Electronic Invoice. For this, go to :menuselection:`Accounting
|
||||
Once the modules are installed and the basic information of your company is set, you need to
|
||||
configure the elements required for Electronic Invoice. For this, go to :menuselection:`Accounting
|
||||
--> Settings --> Peruvian Localization`.
|
||||
|
||||
Basic Concepts
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
Here are some terms that are essential on the Peruvian localization:
|
||||
Here are some terms that are essential on the Peruvian localization:
|
||||
|
||||
- **EDI**: Electronic Data Interchange, which in this refers to the Electronic Invoice.
|
||||
- **EDI**: Electronic Data Interchange, which in this refers to the Electronic Invoice.
|
||||
- **SUNAT**: is the organization that enforces customs and taxation in Peru.
|
||||
- **OSE**: Electronic Service Operator, `OSE SUNAT's definition
|
||||
- **OSE**: Electronic Service Operator, `OSE SUNAT's definition
|
||||
<https://cpe.sunat.gob.pe/aliados/ose#:~:text=El%20Operador%20de%20Servicios%20Electr%C3%B3nicos%20(OSE)%20es%20qui%C3%A9n%20se%20encarga,otro%20documento%20que%20se%20emita>`_.
|
||||
- **CDR**: Receipt certificate (Constancia de Recepción).
|
||||
- **CDR**: Receipt certificate (Constancia de Recepción).
|
||||
- **SOL Credentials**: Sunat Operaciones en Línea. User and password are provided by the SUNAT and
|
||||
grant access to Online Operations systems.
|
||||
|
||||
@ -112,12 +112,12 @@ IAP (Odoo In-App Purchase)
|
||||
**************************
|
||||
|
||||
This is the default and the suggested option, considering the digital ceritificate is included as
|
||||
part of the service.
|
||||
part of the service.
|
||||
|
||||
.. image:: peru/peru-IAP.png
|
||||
:align: center
|
||||
:alt: IAP option as signature providers
|
||||
|
||||
|
||||
What is the IAP?
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
@ -146,34 +146,34 @@ Package.
|
||||
| 20,000 | 440 |
|
||||
+---------+-----+
|
||||
|
||||
The credits are consumed per each document that is sent to the OSE.
|
||||
The credits are consumed per each document that is sent to the OSE.
|
||||
|
||||
.. important::
|
||||
If you have a validation error and the document needs to be sent one more time, one additional
|
||||
credit will be charged. Therefore, it is paramount that you verify all information is correct
|
||||
If you have a validation error and the document needs to be sent one more time, one additional
|
||||
credit will be charged. Therefore, it is paramount that you verify all information is correct
|
||||
before sending your document to the OSE.
|
||||
|
||||
What do you need to do?
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- In Odoo, once your enterprise contract is activated and you start working in Production, you
|
||||
- In Odoo, once your enterprise contract is activated and you start working in Production, you
|
||||
need to buy credits once the first 1000 are consumed.
|
||||
- As Digiflow is the OSE used in the IAP, you need to affiliate it as the official OSE for your
|
||||
- As Digiflow is the OSE used in the IAP, you need to affiliate it as the official OSE for your
|
||||
company on the SUNAT website. This is a simple process. For more information, please check
|
||||
`OSE Affiliation guide
|
||||
`OSE Affiliation guide
|
||||
<https://drive.google.com/file/d/1BkrMTZIiJyi5XI0lGMi3rbMzHddOL1pa/view?usp=sharing>`_.
|
||||
- Register Digiflow as the authorized PSE, please check
|
||||
`PSE Affiliation guide
|
||||
`PSE Affiliation guide
|
||||
<https://drive.google.com/file/d/1QZoqWvtQERpS0pqp6LcKmw7EBlm9EroU/view?usp=sharing>`_.
|
||||
|
||||
Digiflow
|
||||
********
|
||||
|
||||
This option can be used as an alternative, instead of using the IAP services you can send your
|
||||
This option can be used as an alternative, instead of using the IAP services you can send your
|
||||
document validation directly to Digiflow. In this case you need to consider:
|
||||
|
||||
- Buy your own digital Certificate: For more detail regarding the official vendor list, and the
|
||||
process to acquire it, please refer to `SUNAT Digital Ceritifcates
|
||||
- Buy your own digital Certificate: For more detail regarding the official vendor list, and the
|
||||
process to acquire it, please refer to `SUNAT Digital Ceritifcates
|
||||
<https://cpe.sunat.gob.pe/informacion_general/certificados_digitales/>`_.
|
||||
- Sign a service agreement directly with `Digiflow <https://www.digiflow.pe/>`_.
|
||||
- Provide your SOL credentials.
|
||||
@ -185,14 +185,14 @@ document validation directly to Digiflow. In this case you need to consider:
|
||||
SUNAT
|
||||
*****
|
||||
|
||||
In case your company wants to sign directly with the SUNAT, it is possible to select this option
|
||||
In case your company wants to sign directly with the SUNAT, it is possible to select this option
|
||||
in your configuration. In this case you need to consider:
|
||||
- Get the SUNAT Certification process accepted.
|
||||
|
||||
- Buy your own digital Certificate: For more detail regarding the official vendor list, and the
|
||||
process to acquire it, please refer to `SUNAT Digital Ceritifcates
|
||||
- Buy your own digital Certificate: For more detail regarding the official vendor list, and the
|
||||
process to acquire it, please refer to `SUNAT Digital Ceritifcates
|
||||
<https://cpe.sunat.gob.pe/informacion_general/certificados_digitales/>`_.
|
||||
|
||||
|
||||
- Provide you SOL credentials.
|
||||
|
||||
.. important::
|
||||
@ -202,14 +202,14 @@ in your configuration. In this case you need to consider:
|
||||
Testing environment
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Odoo provides a testing environment that can be activated before your company goes into production.
|
||||
Odoo provides a testing environment that can be activated before your company goes into production.
|
||||
|
||||
When using the testing environment and the IAP signature, you don’t need to buy testing credits
|
||||
When using the testing environment and the IAP signature, you don’t need to buy testing credits
|
||||
for your transactions as all of them are validated by default.
|
||||
|
||||
.. tip::
|
||||
By default the databases are set to work on production, make sure to enable the testing mode
|
||||
if needed.
|
||||
By default the databases are set to work on production, make sure to enable the testing mode
|
||||
if needed.
|
||||
|
||||
Certificate
|
||||
~~~~~~~~~~~
|
||||
@ -221,17 +221,17 @@ password.
|
||||
.. image:: peru/peru-Certificate.png
|
||||
:align: center
|
||||
:alt: EDI Certificate wizard
|
||||
|
||||
|
||||
Multicurrency
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
The official currency exchange rate in Peru is provided by the Bank of Peru. Odoo can connect
|
||||
The official currency exchange rate in Peru is provided by the Bank of Peru. Odoo can connect
|
||||
directly to its services and get the currency rate either automatically or manually.
|
||||
|
||||
.. image:: peru/peru-multicurrency.png
|
||||
:align: center
|
||||
:alt: Bank of Peru is displayed in Multicurrency Service option
|
||||
|
||||
|
||||
Please refer to the next section in our documentation for more information about :doc:`multicurrency
|
||||
<../../others/multicurrencies/how_it_works>`.
|
||||
|
||||
@ -242,7 +242,7 @@ Configure Master data
|
||||
Taxes
|
||||
~~~~~
|
||||
|
||||
As part of the localization module the taxes are created automatically with their related
|
||||
As part of the localization module the taxes are created automatically with their related
|
||||
financial account and electronic invoice configuration.
|
||||
|
||||
.. image:: peru/peru-taxes.png
|
||||
@ -252,9 +252,9 @@ financial account and electronic invoice configuration.
|
||||
EDI Configuration
|
||||
*****************
|
||||
|
||||
As part of the taxes configuration, there are three new fields required for electronic invoice,
|
||||
the taxes created by default have this data included, but in case you create new taxes make
|
||||
sure you fill in the fields:
|
||||
As part of the taxes configuration, there are three new fields required for electronic invoice,
|
||||
the taxes created by default have this data included, but in case you create new taxes make
|
||||
sure you fill in the fields:
|
||||
|
||||
.. image:: peru/peru-taxes-edi.png
|
||||
:align: center
|
||||
@ -273,15 +273,15 @@ There are two main fiscal positions included by default when you install the Per
|
||||
Document Types
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
In some Latin American countries, including Peru, some accounting transactions like invoices and
|
||||
vendor bills are classified by document types, defined by the government fiscal authorities, in
|
||||
this case by the SUNAT.
|
||||
In some Latin American countries, including Peru, some accounting transactions like invoices and
|
||||
vendor bills are classified by document types, defined by the government fiscal authorities, in
|
||||
this case by the SUNAT.
|
||||
|
||||
Each document type can have a unique sequence per journal where it is assigned. As part of the
|
||||
localization, the Document Type includes the country on which the document is applicable;the data
|
||||
Each document type can have a unique sequence per journal where it is assigned. As part of the
|
||||
localization, the Document Type includes the country on which the document is applicable;the data
|
||||
is created automatically when the localization module is installed.
|
||||
|
||||
The information required for the document types is included by default so the user does not need
|
||||
|
||||
The information required for the document types is included by default so the user does not need
|
||||
to fill anything on this view:
|
||||
|
||||
.. image:: peru/peru-document-type.png
|
||||
@ -289,7 +289,7 @@ to fill anything on this view:
|
||||
:alt: Document Type list
|
||||
|
||||
.. warning::
|
||||
Currently the documents supported on customer invoices are: Invoice, Boleta, Debit Note and
|
||||
Currently the documents supported on customer invoices are: Invoice, Boleta, Debit Note and
|
||||
Credit Note.
|
||||
|
||||
Journals
|
||||
@ -298,17 +298,17 @@ Journals
|
||||
When creating Sales Journals, the following information must be filled, in addition to the standard
|
||||
fields on the Journals:
|
||||
|
||||
Use Documents
|
||||
Use Documents
|
||||
*************
|
||||
|
||||
This field is used to define if the journal uses Document Types. It is only applicable to
|
||||
Purchase and Sales journals, which are the ones that can be related to the different set of
|
||||
document types available in Peru. By default, all the sales journals created use documents.
|
||||
This field is used to define if the journal uses Document Types. It is only applicable to
|
||||
Purchase and Sales journals, which are the ones that can be related to the different set of
|
||||
document types available in Peru. By default, all the sales journals created use documents.
|
||||
|
||||
Electronic Data Interchange
|
||||
***************************
|
||||
|
||||
This section indicates which EDI workflow is used in the invoice, for Peru we must select
|
||||
This section indicates which EDI workflow is used in the invoice, for Peru we must select
|
||||
“Peru UBL 2.1”.
|
||||
|
||||
.. image:: peru/peru-journal-edi.png
|
||||
@ -324,8 +324,8 @@ Partner
|
||||
Identification Type and VAT
|
||||
***************************
|
||||
|
||||
As part of the Peruvian localization, the identification types defined by the SUNAT are now
|
||||
available on the Partner form, this information is essential for most transactions either on
|
||||
As part of the Peruvian localization, the identification types defined by the SUNAT are now
|
||||
available on the Partner form, this information is essential for most transactions either on
|
||||
the sender company and in the customer, make sure you fill in this information in your records.
|
||||
|
||||
.. image:: peru/peru-id-type.png
|
||||
@ -336,8 +336,8 @@ the sender company and in the customer, make sure you fill in this information i
|
||||
Product
|
||||
~~~~~~~
|
||||
|
||||
Additional to the basic information in your products, for the Peruvian localization, the UNSPC
|
||||
Code on the product is a required value to be configured.
|
||||
Additional to the basic information in your products, for the Peruvian localization, the UNSPC
|
||||
Code on the product is a required value to be configured.
|
||||
|
||||
.. image:: peru/peru-unspc-code.png
|
||||
:align: center
|
||||
@ -355,27 +355,27 @@ EDI Elements
|
||||
|
||||
Once you have configured your master data, the invoices can be created from your sales order or
|
||||
manually. Additional to the basic invoice information described on :doc:`our page about the
|
||||
invoicing process <../../receivables/customer_invoices/overview>`, there are a couple of fields
|
||||
invoicing process <../../receivables/customer_invoices/overview>`, there are a couple of fields
|
||||
required as part of the Peru EDI:
|
||||
|
||||
- **Document type**: The default value is “Factura Electronica” but you can manually change the
|
||||
document type if needed and select Boleta for example.
|
||||
- **Document type**: The default value is “Factura Electronica” but you can manually change the
|
||||
document type if needed and select Boleta for example.
|
||||
|
||||
.. image:: peru/peru-invoice-document-type.png
|
||||
:align: center
|
||||
:alt: Invoice document type field on invoices
|
||||
|
||||
- **Operation type**: This value is required for Electronic Invoice and indicates the transaction
|
||||
type, the default value is “Internal Sale” but another value can be selected manually when needed,
|
||||
for example Export of Goods.
|
||||
- **Operation type**: This value is required for Electronic Invoice and indicates the transaction
|
||||
type, the default value is “Internal Sale” but another value can be selected manually when needed,
|
||||
for example Export of Goods.
|
||||
|
||||
.. image:: peru/peru-operation-type.png
|
||||
:align: center
|
||||
:alt: Invoice operation type field on invoices
|
||||
|
||||
- **EDI Affectation Reason**: In the invoice lines, additional to the Tax there is a field “EDI
|
||||
Affectation Reason” that determines the tax scope based on the SUNAT list that is displayed.
|
||||
All the taxes loaded by default are associated with a default EDI affection reason, if needed
|
||||
- **EDI Affectation Reason**: In the invoice lines, additional to the Tax there is a field “EDI
|
||||
Affectation Reason” that determines the tax scope based on the SUNAT list that is displayed.
|
||||
All the taxes loaded by default are associated with a default EDI affection reason, if needed
|
||||
you can manually select another one when creating the invoice.
|
||||
|
||||
.. image:: peru/peru-tax-affectation-reason.png
|
||||
@ -386,70 +386,70 @@ Invoice validation
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Once you check all the information in your invoice is correct, you can proceed to validate it. This
|
||||
action registers the account move and triggers the Electronic invoice workflow to send it to the
|
||||
action registers the account move and triggers the Electronic invoice workflow to send it to the
|
||||
OSE and the SUNAT. The following message is displayed at the top of the invoice:
|
||||
|
||||
.. image:: peru/peru-posted-invoice.png
|
||||
:align: center
|
||||
:alt: Sending of EDI Invoice in blue
|
||||
|
||||
Asynchronous means that the document is not sent automatically after the invoice has been posted.
|
||||
Asynchronous means that the document is not sent automatically after the invoice has been posted.
|
||||
|
||||
Electronic Invoice Status
|
||||
*************************
|
||||
|
||||
**To be Sent**: To be sent: Indicates the document is ready to be sent to the OSE, this can be
|
||||
done either automatically by Odoo with a *cron* that runs every hour, or the user can send it
|
||||
**To be Sent**: To be sent: Indicates the document is ready to be sent to the OSE, this can be
|
||||
done either automatically by Odoo with a *cron* that runs every hour, or the user can send it
|
||||
immediately by clicking on the button “Sent now”.
|
||||
|
||||
.. image:: peru/peru-sent-manual.png
|
||||
:align: center
|
||||
:alt: Send EDI manually
|
||||
|
||||
**Sent**: Indicates the document was sent to the OSE and was successfully validated. As part of
|
||||
the validation a ZIP file is downloaded and a message is logged in the chatter indicating the
|
||||
correct Government validation.
|
||||
**Sent**: Indicates the document was sent to the OSE and was successfully validated. As part of
|
||||
the validation a ZIP file is downloaded and a message is logged in the chatter indicating the
|
||||
correct Government validation.
|
||||
|
||||
.. image:: peru/peru-invoice-sent.png
|
||||
:align: center
|
||||
:alt: Message on chatter when the invoice is valid
|
||||
|
||||
In case there is a validation error the Electronic Invoice status remains in “To be sent” so the
|
||||
corrections can be made and the invoice can be sent again.
|
||||
In case there is a validation error the Electronic Invoice status remains in “To be sent” so the
|
||||
corrections can be made and the invoice can be sent again.
|
||||
|
||||
.. warning::
|
||||
One credit is consumed each time that you send a document for validation, in this sense if an
|
||||
error is detected on an invoice and you send it one more time, two credits are consumed in
|
||||
One credit is consumed each time that you send a document for validation, in this sense if an
|
||||
error is detected on an invoice and you send it one more time, two credits are consumed in
|
||||
total.
|
||||
|
||||
Common Errors
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
There are multiple reasons behind a rejection from the OSE or the SUNAT, when this happens Odoo
|
||||
sends a message at the top of the invoice indicating the error details and in the most common
|
||||
cases a hint to fix the issue.
|
||||
There are multiple reasons behind a rejection from the OSE or the SUNAT, when this happens Odoo
|
||||
sends a message at the top of the invoice indicating the error details and in the most common
|
||||
cases a hint to fix the issue.
|
||||
|
||||
If a validation error is received, you have two options:
|
||||
If a validation error is received, you have two options:
|
||||
|
||||
- In case the error is related to master data on the partner, customer or taxes, you can simply
|
||||
apply the change on the record (example customer identification type) and once it is done click
|
||||
on the Retry button.
|
||||
- If the error is related to some data recorded on the invoice directly (Operation type, missing
|
||||
data on the invoice lines), the correct solution is to reset the invoice to Draft, apply the
|
||||
changes, and then send the invoice again to the SUNAT for another validation.
|
||||
apply the change on the record (example customer identification type) and once it is done click
|
||||
on the Retry button.
|
||||
- If the error is related to some data recorded on the invoice directly (Operation type, missing
|
||||
data on the invoice lines), the correct solution is to reset the invoice to Draft, apply the
|
||||
changes, and then send the invoice again to the SUNAT for another validation.
|
||||
|
||||
.. image:: peru/peru-errors.png
|
||||
:align: center
|
||||
:alt: List of common errors on invoices
|
||||
|
||||
|
||||
For more detail please refert to `Common errors in SUNAT
|
||||
For more detail please refert to `Common errors in SUNAT
|
||||
<https://www.nubefact.com/codigos-error-sunat/>`_.
|
||||
|
||||
Invoice PDF Report
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
After the invoice is accepted and validated by the SUNAT, the invoice PDF report can be printed.
|
||||
After the invoice is accepted and validated by the SUNAT, the invoice PDF report can be printed.
|
||||
The report includes a QR code, indicating the invoice is a valid fiscal document.
|
||||
|
||||
.. image:: peru/peru-PDF.png
|
||||
@ -459,18 +459,18 @@ The report includes a QR code, indicating the invoice is a valid fiscal document
|
||||
IAP Credits
|
||||
~~~~~~~~~~~
|
||||
|
||||
Odoo’s Electronic IAP offers 1000 credits for free, after these credits are consumed in your
|
||||
production database, your company must buy new credits in order to process your transactions.
|
||||
Odoo’s Electronic IAP offers 1000 credits for free, after these credits are consumed in your
|
||||
production database, your company must buy new credits in order to process your transactions.
|
||||
|
||||
Once you run out of credits a red label is displayed at the top of the invoice indicating that
|
||||
additional credits are required, you can easily buy them by accessing the link provided in
|
||||
the message.
|
||||
Once you run out of credits a red label is displayed at the top of the invoice indicating that
|
||||
additional credits are required, you can easily buy them by accessing the link provided in
|
||||
the message.
|
||||
|
||||
.. image:: peru/peru-credits-IAP.png
|
||||
:align: center
|
||||
:alt: Buying credits in the IAP
|
||||
|
||||
In the IAP service includes packages with different pricing based on the number of credits.
|
||||
In the IAP service includes packages with different pricing based on the number of credits.
|
||||
The price list in the IAP is always displayed in EUR.
|
||||
|
||||
Special Use cases
|
||||
@ -479,30 +479,30 @@ Special Use cases
|
||||
Cancellation process
|
||||
********************
|
||||
|
||||
Some scenarios require an invoice cancellation, for example, when an invoice was created by mistake.
|
||||
If the invoice was already sent and validated by the SUNAT, the correct way to proceed is by
|
||||
Some scenarios require an invoice cancellation, for example, when an invoice was created by mistake.
|
||||
If the invoice was already sent and validated by the SUNAT, the correct way to proceed is by
|
||||
clicking on the button Request Cancellation:
|
||||
|
||||
.. image:: peru/peru-cancellation.png
|
||||
:align: center
|
||||
:alt: Request invoice cancellation button
|
||||
|
||||
In order to cancel an invoice, please provide a cancellation Reason.
|
||||
In order to cancel an invoice, please provide a cancellation Reason.
|
||||
|
||||
Electronic Invoice Status
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
**To Cancel**: Indicates the cancellation request is ready to be sent to the OSE, this can be done
|
||||
either automatically by Odoo with a *cron* that runs every hour, or the user can send it
|
||||
immediately by clicking on the button “Send now”. Once it is sent, a cancellation ticket is
|
||||
**To Cancel**: Indicates the cancellation request is ready to be sent to the OSE, this can be done
|
||||
either automatically by Odoo with a *cron* that runs every hour, or the user can send it
|
||||
immediately by clicking on the button “Send now”. Once it is sent, a cancellation ticket is
|
||||
created, as a result the next message and CDR File are logged in the chatter:
|
||||
|
||||
.. image:: peru/peru-cancellation-cdr.png
|
||||
:align: center
|
||||
:alt: Cancellation CDR sent by the SUNAT
|
||||
|
||||
**Cancelled**: Indicates the cancellation request was sent to the OSE and was successfully
|
||||
validated. As part of the validation a ZIP file is downloaded and a message is logged in the
|
||||
|
||||
**Cancelled**: Indicates the cancellation request was sent to the OSE and was successfully
|
||||
validated. As part of the validation a ZIP file is downloaded and a message is logged in the
|
||||
chatter indicating the correct Government validation.
|
||||
|
||||
.. image:: peru/peru-cancelled.png
|
||||
@ -511,14 +511,14 @@ chatter indicating the correct Government validation.
|
||||
|
||||
.. warning::
|
||||
One credit is consumed on each cancellation request.
|
||||
|
||||
|
||||
Cancellation process
|
||||
********************
|
||||
|
||||
When creating exportation invoices, take into account the next considerations:
|
||||
|
||||
- The Identification type on your customer must be Foreign ID.
|
||||
- Operation type in your invoice must be an Exportation one.
|
||||
- The Identification type on your customer must be Foreign ID.
|
||||
- Operation type in your invoice must be an Exportation one.
|
||||
- The taxes included in the invoice lines should be EXP taxes.
|
||||
|
||||
.. image:: peru/peru-exp-invoice.png
|
||||
@ -528,24 +528,24 @@ When creating exportation invoices, take into account the next considerations:
|
||||
Advance Payments
|
||||
****************
|
||||
|
||||
#. Create the advance payment Invoice and apply its related payment.
|
||||
#. Create the final invoice without considering the advance payment.
|
||||
#. Create a credit note for the Final invoice with the advance payment amount.
|
||||
#. Reconcile the Credit note with the final invoice.
|
||||
#. The remaining balance on the final invoice should be paid with a regular payment transaction.
|
||||
#. Create the advance payment Invoice and apply its related payment.
|
||||
#. Create the final invoice without considering the advance payment.
|
||||
#. Create a credit note for the Final invoice with the advance payment amount.
|
||||
#. Reconcile the Credit note with the final invoice.
|
||||
#. The remaining balance on the final invoice should be paid with a regular payment transaction.
|
||||
|
||||
|
||||
Detraction Invoices
|
||||
Detraction Invoices
|
||||
********************
|
||||
|
||||
When creating invoices that is subject to Detractions, take into account the next considerations:
|
||||
When creating invoices that is subject to Detractions, take into account the next considerations:
|
||||
|
||||
#. All the products included in the invoice must have these fields configured:
|
||||
#. All the products included in the invoice must have these fields configured:
|
||||
|
||||
.. image:: peru/peru-detraction.png
|
||||
:align: center
|
||||
:alt: Detraction fields on products
|
||||
|
||||
|
||||
#. Operation type in your invoice must be ``1001``
|
||||
|
||||
.. image:: peru/peru-detraction-invoice.png
|
||||
@ -555,8 +555,8 @@ When creating invoices that is subject to Detractions, take into account the nex
|
||||
Credit Notes
|
||||
------------
|
||||
|
||||
When a correction or refund is needed over a validated invoice, a credit note must be generated,
|
||||
for this just click on the button “Add Credit Note”, a part of the Peruvian localization you need
|
||||
When a correction or refund is needed over a validated invoice, a credit note must be generated,
|
||||
for this just click on the button “Add Credit Note”, a part of the Peruvian localization you need
|
||||
to prove a Credit Reason selecting one of the options in the list.
|
||||
|
||||
.. image:: peru/peru-credit-note.png
|
||||
@ -564,9 +564,9 @@ to prove a Credit Reason selecting one of the options in the list.
|
||||
:alt: Add Credit Note from invoice
|
||||
|
||||
.. tip::
|
||||
When creating your first credit Note, select the Credit Method: Partial Refund, this allows you
|
||||
to define the credit note sequence.
|
||||
|
||||
When creating your first credit Note, select the Credit Method: Partial Refund, this allows you
|
||||
to define the credit note sequence.
|
||||
|
||||
By default the Credit Note is set in the document type:
|
||||
|
||||
.. image:: peru/peru-credit-note-document.png
|
||||
@ -577,13 +577,13 @@ To finish the workflow please follow the instructions on :doc:`our page about Cr
|
||||
<../../receivables/customer_invoices/credit_notes>`.
|
||||
|
||||
.. note::
|
||||
The EDI workflow for the Credit notes works in the same way as the invoices.
|
||||
The EDI workflow for the Credit notes works in the same way as the invoices.
|
||||
|
||||
|
||||
Debit Notes
|
||||
------------
|
||||
|
||||
As part of the Peruvian localization, besides creating credit notes from an existing document
|
||||
As part of the Peruvian localization, besides creating credit notes from an existing document
|
||||
you can also create debit Notes. For this just use the button “Add Debit Note”.
|
||||
|
||||
By default the Debit Note is set in the document type.
|
||||
|
@ -9,12 +9,12 @@ In Odoo, there are several Spanish Chart of Accounts that are available by defau
|
||||
|
||||
- PGCE PYMEs 2008
|
||||
- PGCE Completo 2008
|
||||
- PGCE Entitades
|
||||
- PGCE Entitades
|
||||
|
||||
You can choose the one you want by going in :menuselection:`Accounting --> Configuration`
|
||||
then choose the package you want in the **Fiscal Localization** section.
|
||||
then choose the package you want in the **Fiscal Localization** section.
|
||||
|
||||
Be careful, you can only change the accounting package as long as you have not created any accounting entry.
|
||||
Be careful, you can only change the accounting package as long as you have not created any accounting entry.
|
||||
|
||||
.. tip::
|
||||
When you create a new Odoo Online database, the PGCE PYMEs 2008 is installed by default.
|
||||
@ -24,7 +24,7 @@ Spanish Accounting Reports
|
||||
|
||||
If the Spanish Accounting Localization is installed, you will have access to accounting reports specific to Spain:
|
||||
|
||||
- Balance Sheet
|
||||
- Balance Sheet
|
||||
- Tax Report (Modelo 111)
|
||||
- Tax Report (Modelo 115)
|
||||
- Tax Report (Modelo 303)
|
||||
- Tax Report (Modelo 303)
|
||||
|
@ -12,7 +12,7 @@ called *Print ISR*.
|
||||
.. image:: switzerland/switzerland00.png
|
||||
:align: center
|
||||
|
||||
.. tip::
|
||||
.. tip::
|
||||
The button *Print ISR* only appears there is well a bank account
|
||||
defined on the invoice. You can use CH6309000000250097798 as bank
|
||||
account number and 010391391 as CHF ISR reference.
|
||||
@ -142,4 +142,4 @@ odoo.com/help.
|
||||
.. tip::
|
||||
Don't forget to update your fiscal positions. If you have a version
|
||||
11.1 (or higher), there is nothing to do. Otherwise, you will also
|
||||
have to update your fiscal positions accordingly.
|
||||
have to update your fiscal positions accordingly.
|
||||
|
@ -17,7 +17,7 @@ From Vendor Bill to Payment
|
||||
Record a new vendor bill
|
||||
------------------------
|
||||
|
||||
When a vendor bill is received, you can record it from :menuselection:`Purchases --> Vendor Bills`
|
||||
When a vendor bill is received, you can record it from :menuselection:`Purchases --> Vendor Bills`
|
||||
in the Accounting application. As a shortcut,
|
||||
you can also use the **New Bill** feature on the accounting dashboard.
|
||||
|
||||
@ -36,12 +36,12 @@ Save the invoice to update the pre tax and tax amounts at the bottom of
|
||||
the screen. You will most likely need to configure the prices of your
|
||||
products without taxes as Odoo will compute the tax for you.
|
||||
|
||||
.. note::
|
||||
On the bottom left corner, Odoo shows a summary table of all taxes on the vendor bill.
|
||||
In several countries, different methods are accepted to round the totals (round per line,
|
||||
or round globally). The default rounding method in Odoo is to round the final prices
|
||||
per line (as you may have different taxes per product. E.g. Alcohol and cigarettes).
|
||||
However if your vendor has a different tax amount on their bill, you can change the
|
||||
.. note::
|
||||
On the bottom left corner, Odoo shows a summary table of all taxes on the vendor bill.
|
||||
In several countries, different methods are accepted to round the totals (round per line,
|
||||
or round globally). The default rounding method in Odoo is to round the final prices
|
||||
per line (as you may have different taxes per product. E.g. Alcohol and cigarettes).
|
||||
However if your vendor has a different tax amount on their bill, you can change the
|
||||
amount in the bottom left table to adjust and match.
|
||||
|
||||
Validate The Vendor Bill
|
||||
@ -91,8 +91,8 @@ if set it correctly).
|
||||
|
||||
|
||||
.. note::
|
||||
You can also register a payment to a vendor directly without applying it to a vendor bill.
|
||||
To do that, :menuselection:`Purchases --> Payments`. Then,
|
||||
You can also register a payment to a vendor directly without applying it to a vendor bill.
|
||||
To do that, :menuselection:`Purchases --> Payments`. Then,
|
||||
from the vendor bill you will be able to reconcile this payment with directly.
|
||||
|
||||
Printing vendor Checks
|
||||
|
@ -7,9 +7,9 @@ Overview
|
||||
|
||||
Managing budgets is an essential part of running a business. Budgets help
|
||||
people become more intentional with the way money is spent and direct people
|
||||
to organize and prioritize their work to meet financial goals. They allows
|
||||
you to plan your desired financial outcome and then measure your actual
|
||||
performance against the plan. Odoo manages budgets using both General and Analytic
|
||||
to organize and prioritize their work to meet financial goals. They allows
|
||||
you to plan your desired financial outcome and then measure your actual
|
||||
performance against the plan. Odoo manages budgets using both General and Analytic
|
||||
Accounts.
|
||||
|
||||
We will use the following example to illustrate. We just started a
|
||||
@ -17,7 +17,7 @@ project with Smith&Co and we would like to budget the incomes and
|
||||
expenses of that project. We plan to have a revenue of 1000 and we don't
|
||||
want to spend more than 700.
|
||||
|
||||
Configuration
|
||||
Configuration
|
||||
=============
|
||||
|
||||
First we need to install the relevant apps to use budgeting. The main
|
||||
@ -40,17 +40,17 @@ Budgetary Positions
|
||||
Budgetary positions are lists of accounts for which you want to keep
|
||||
budgets (typically expense or income accounts). They need to be defined
|
||||
so Odoo can know it which accounts he needs to go get the budget
|
||||
information.
|
||||
information.
|
||||
|
||||
The budgetary positions act as a type of restriction on what can be recorded
|
||||
in the 'practical amount' column in a budget.
|
||||
|
||||
Each budgetary position can have any number of accounts from the general
|
||||
ledger (the main chart of accounts) assigned to it, though it must have at least one.
|
||||
Each budgetary position can have any number of accounts from the general
|
||||
ledger (the main chart of accounts) assigned to it, though it must have at least one.
|
||||
|
||||
If you record a transaction that has an analytic account assigned to it that *is*
|
||||
included in a budget line but one of the general ledger accounts *is not* included
|
||||
in the budgetary position for that same budget line, it will not appear within the
|
||||
If you record a transaction that has an analytic account assigned to it that *is*
|
||||
included in a budget line but one of the general ledger accounts *is not* included
|
||||
in the budgetary position for that same budget line, it will not appear within the
|
||||
'practical amount' column of that budget line.
|
||||
|
||||
Some budgetary positions might be already installed with your chart of
|
||||
|
@ -19,7 +19,7 @@ First, install the three applications necessary to use this
|
||||
functionality, namely **Accounting**, **Sales** and **Timesheet**. Enter the apps
|
||||
module name and install them.
|
||||
|
||||
.. image:: timesheets/timesheets14.png
|
||||
.. image:: timesheets/timesheets14.png
|
||||
:align: center
|
||||
|
||||
.. image:: timesheets/timesheets05.png
|
||||
@ -51,14 +51,14 @@ cost of 18 euros / hours. We will thus fill in 18 in this field.
|
||||
.. image:: timesheets/timesheets07.png
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
.. note::
|
||||
If you want the employee to be able to enter timesheets he
|
||||
needs to be related to a User.
|
||||
|
||||
Repeat the operation to create the Cedric Digory employee. Don't forget
|
||||
to specify its related user and **Timesheet Costs**.
|
||||
|
||||
Issue a Sales Order
|
||||
Issue a Sales Order
|
||||
--------------------
|
||||
|
||||
We created two employees called Harry Potter and Cedric Diggory in the
|
||||
@ -121,7 +121,7 @@ Without filters
|
||||
|
||||
If we pointed all our costs and revenues of the project on the correct
|
||||
analytical account we can easily retrieve the cost and revenues related
|
||||
to this analytical account. Enter the *Accounting* app, select
|
||||
to this analytical account. Enter the *Accounting* app, select
|
||||
:menuselection:`Adviser --> Analytic Accounts --> Open Charts`.
|
||||
|
||||
Note : you can specify a period for **Analysis**. If you want to open the
|
||||
|
@ -18,7 +18,7 @@ Configuration
|
||||
Enable multi-currencies
|
||||
-----------------------
|
||||
|
||||
In the accounting module, Go to :menuselection:`Configuration --> Settings`
|
||||
In the accounting module, Go to :menuselection:`Configuration --> Settings`
|
||||
and flag **Allow multi currencies**, then click on **apply**.
|
||||
|
||||
.. image:: exchange/exchange_rate03.png
|
||||
@ -36,9 +36,9 @@ in **Dollars**.
|
||||
.. image:: exchange/exchange_rate08.png
|
||||
:align: center
|
||||
|
||||
.. tip::
|
||||
.. tip::
|
||||
You can automatically fetch the currency rates from the **European
|
||||
Central Bank** or from **Yahoo**. Please read the document :
|
||||
Central Bank** or from **Yahoo**. Please read the document :
|
||||
:doc:`how_it_works`.
|
||||
|
||||
Configure your journal
|
||||
@ -61,7 +61,7 @@ that you can register payments only in this currency.
|
||||
Record a payment in a different currency
|
||||
========================================
|
||||
|
||||
In the **Accounting** application, go to :menuselection:`Sales --> Payments`.
|
||||
In the **Accounting** application, go to :menuselection:`Sales --> Payments`.
|
||||
Register the payment and indicate that it was done in the foreign currency. Then
|
||||
click on **confirm**.
|
||||
|
||||
@ -80,7 +80,7 @@ Record a bank statement in a different currency
|
||||
===============================================
|
||||
|
||||
Create or import the bank statement of your payment. The **Amount** is in
|
||||
the company currency. There are two complementary fields, the **Amount currency**,
|
||||
the company currency. There are two complementary fields, the **Amount currency**,
|
||||
which is the amount that was actually paid and the **Currency** in which it was paid.
|
||||
|
||||
.. image:: exchange/exchange_rate07.png
|
||||
|
@ -63,7 +63,7 @@ Live Currency Rate
|
||||
|
||||
By default, the currencies need to be updated manually. But you can
|
||||
synchronize it with `Yahoo <https://finance.yahoo.com/currency-converter/>`__ or
|
||||
the `European Central Bank <http://www.ecb.europa.eu>`__. In
|
||||
the `European Central Bank <http://www.ecb.europa.eu>`__. In
|
||||
:menuselection:`Configuration --> Settings`, go to the **Live Currency Rate** section.
|
||||
|
||||
Choose the interval : Manually, Daily, Weekly or Monthly. You can always
|
||||
|
@ -13,11 +13,11 @@ Iceland, Norway, Switzerland, Andorra, Monaco and San Marino.
|
||||
With Odoo, once you decide to pay a vendor, you can select to pay the
|
||||
bill with SEPA. Then, at the end of the day, the manager can generate
|
||||
the SEPA file containing all bank wire transfers and send it to the
|
||||
bank.
|
||||
bank.
|
||||
|
||||
By default,the file follows the SEPA Credit Transfer **'pain.001.001.03'**
|
||||
specifications. This is a well-defined standard that makes consensus
|
||||
among banks. However, according to the country set on your company,
|
||||
among banks. However, according to the country set on your company,
|
||||
another format can be used : **'pain.001.001.03.ch.02'** for Switzerland
|
||||
and **'pain.001.003.03'** for Germany.
|
||||
|
||||
|
@ -7,7 +7,7 @@ them and automatically import the data into your database reduces errors and sav
|
||||
|
||||
.. important::
|
||||
`Try it out <https://www.odoo.com/app/invoice-automation>`_! Upload one of your Bills or try one of our samples.
|
||||
|
||||
|
||||
Set up the feature
|
||||
==================
|
||||
|
||||
|
@ -3,11 +3,11 @@ Cash rounding
|
||||
=============
|
||||
|
||||
**Cash rounding** is required when the lowest physical denomination
|
||||
of currency, or the smallest coin, is higher than the minimum unit
|
||||
of currency, or the smallest coin, is higher than the minimum unit
|
||||
of account.
|
||||
|
||||
For example, some countries require their companies to round up or
|
||||
down the total amount of an invoice to the nearest five cents, when
|
||||
For example, some countries require their companies to round up or
|
||||
down the total amount of an invoice to the nearest five cents, when
|
||||
the payment is made in cash.
|
||||
|
||||
Configuration
|
||||
@ -19,22 +19,22 @@ and enable *Cash Rounding*, then click on *Save*.
|
||||
.. image:: cash_rounding/cash_rounding01.png
|
||||
:align: center
|
||||
|
||||
Go to :menuselection:`Accounting --> Configuration --> Cash Roundings`,
|
||||
Go to :menuselection:`Accounting --> Configuration --> Cash Roundings`,
|
||||
and click on *Create*.
|
||||
|
||||
Define here your *Rounding Precision*, *Rounding Strategy*, and
|
||||
Define here your *Rounding Precision*, *Rounding Strategy*, and
|
||||
*Rounding Method*.
|
||||
|
||||
Odoo supports two **rounding strategies**:
|
||||
|
||||
1. **Add a rounding line**: a *rounding* line is added on the invoice.
|
||||
1. **Add a rounding line**: a *rounding* line is added on the invoice.
|
||||
You have to define which account records the cash roundings.
|
||||
|
||||
|
||||
2. **Modify tax amount**: the rounding is applied in the taxes section.
|
||||
|
||||
Apply roundings
|
||||
===============
|
||||
|
||||
When editing a draft invoice, open the *Other Info* tab, go to the
|
||||
*Accounting Information* section, and select the appropriate *Cash
|
||||
*Accounting Information* section, and select the appropriate *Cash
|
||||
Rounding Method*.
|
||||
|
@ -1,8 +1,8 @@
|
||||
========================
|
||||
Credit notes and refunds
|
||||
========================
|
||||
A **credit note**, or **credit memo**, is a document issued
|
||||
to a customer that notifies them that they have been credited
|
||||
A **credit note**, or **credit memo**, is a document issued
|
||||
to a customer that notifies them that they have been credited
|
||||
a certain amount.
|
||||
|
||||
There are several reasons that can lead to a credit note, such as:
|
||||
@ -11,19 +11,19 @@ There are several reasons that can lead to a credit note, such as:
|
||||
* the goods delivered are damaged
|
||||
|
||||
.. note::
|
||||
Issuing a credit note is the only legal way to cancel,
|
||||
refund or modify a validated invoice. Don’t forget to
|
||||
Issuing a credit note is the only legal way to cancel,
|
||||
refund or modify a validated invoice. Don’t forget to
|
||||
*register the payment* afterward if you need to send money
|
||||
back to your customer.
|
||||
|
||||
Issue a Credit Note
|
||||
===================
|
||||
You can create a credit note from scratch by going to
|
||||
:menuselection:`Accounting --> Customers --> Credit Notes`,
|
||||
and by clicking on *Create*. Filling the Credit Note’s form
|
||||
You can create a credit note from scratch by going to
|
||||
:menuselection:`Accounting --> Customers --> Credit Notes`,
|
||||
and by clicking on *Create*. Filling the Credit Note’s form
|
||||
works the same way as the Invoice’s form.
|
||||
|
||||
However, most of the time, credit notes are generated directly
|
||||
However, most of the time, credit notes are generated directly
|
||||
from the invoices they are related to.
|
||||
|
||||
To do so, open the *Customer Invoice*, and click on *Add Credit Note*.
|
||||
@ -37,15 +37,15 @@ You can choose between three options:
|
||||
- Full refund and new draft invoice
|
||||
|
||||
.. note::
|
||||
Credit Notes’ numbers start with “R” and are followed by the
|
||||
number of the document they are related to (e.g., RINV/2019/0004).
|
||||
Credit Notes’ numbers start with “R” and are followed by the
|
||||
number of the document they are related to (e.g., RINV/2019/0004).
|
||||
|
||||
Partial Refund
|
||||
--------------
|
||||
Odoo creates a draft credit note already prefilled with all the
|
||||
Odoo creates a draft credit note already prefilled with all the
|
||||
necessary information from the original invoice.
|
||||
|
||||
This is the option to choose to do a partial refund, or if you
|
||||
This is the option to choose to do a partial refund, or if you
|
||||
want to modify any detail on the credit note.
|
||||
|
||||
.. note::
|
||||
@ -53,19 +53,19 @@ want to modify any detail on the credit note.
|
||||
|
||||
Full Refund
|
||||
-----------
|
||||
Odoo creates a credit note, automatically validates it, and
|
||||
Odoo creates a credit note, automatically validates it, and
|
||||
reconciles the original invoice with it.
|
||||
|
||||
.. image:: credit_notes/credit_notes02.png
|
||||
:align: center
|
||||
|
||||
This is the option to choose to do a full refund or cancel
|
||||
This is the option to choose to do a full refund or cancel
|
||||
a validated invoice.
|
||||
|
||||
Full refund and new draft invoice
|
||||
---------------------------------
|
||||
Odoo creates a credit note, automatically validates it, reconciles
|
||||
the original invoice with it, and open a new draft invoice
|
||||
Odoo creates a credit note, automatically validates it, reconciles
|
||||
the original invoice with it, and open a new draft invoice
|
||||
prefilled with the same details from the original invoice.
|
||||
|
||||
This is the option to choose to modify the content of a validated invoice.
|
||||
@ -74,22 +74,22 @@ Record a Vendor Refund
|
||||
======================
|
||||
**Vendor Refunds** are recorded the same way you would do with invoices’ credit notes:
|
||||
|
||||
You can either create a credit note from scratch by going
|
||||
to :menuselection:`Accounting --> Vendors --> Refund`, and
|
||||
by clicking on *Create*, or by opening the validated *Vendor Bill*,
|
||||
You can either create a credit note from scratch by going
|
||||
to :menuselection:`Accounting --> Vendors --> Refund`, and
|
||||
by clicking on *Create*, or by opening the validated *Vendor Bill*,
|
||||
and clicking on *Add Credit Note*.
|
||||
|
||||
|
||||
Journal Entries
|
||||
===============
|
||||
Issuing a credit note from an invoice creates a **reverse entry**
|
||||
that zeroes out the journal items generated by the original invoice.
|
||||
Issuing a credit note from an invoice creates a **reverse entry**
|
||||
that zeroes out the journal items generated by the original invoice.
|
||||
|
||||
Here is an example of an invoice’s journal entry:
|
||||
|
||||
.. image:: credit_notes/credit_notes03.png
|
||||
:align: center
|
||||
|
||||
And here is the credit note’s journal entry generated to reverse
|
||||
And here is the credit note’s journal entry generated to reverse
|
||||
the original invoice above:
|
||||
|
||||
.. image:: credit_notes/credit_notes04.png
|
||||
|
@ -42,7 +42,7 @@ Configuration --> Chart of Accounts`, click on *Create*, and fill out the form.
|
||||
|
||||
.. note::
|
||||
This account's type must be either *Current Liabilities* or *Non-current Liabilities*
|
||||
|
||||
|
||||
Post an income to the right account
|
||||
-----------------------------------
|
||||
|
||||
@ -64,7 +64,7 @@ save.
|
||||
|
||||
.. image:: deferred_revenues/deferred_revenues03.png
|
||||
:align: center
|
||||
:alt: Change of the Income Account for a product in Odoo
|
||||
:alt: Change of the Income Account for a product in Odoo
|
||||
|
||||
.. tip::
|
||||
It is possible to automate the creation of revenue entries for these products (see:
|
||||
@ -75,11 +75,11 @@ Change the account of a posted journal item
|
||||
|
||||
To do so, open your Sales Journal by going to
|
||||
:menuselection:`Accounting --> Accounting --> Sales`, select the journal item you
|
||||
want to modify, click on the account, and select the right one.
|
||||
want to modify, click on the account, and select the right one.
|
||||
|
||||
.. image:: deferred_revenues/deferred_revenues04.png
|
||||
:align: center
|
||||
:alt: Modification of a posted journal item's account in Odoo Accounting
|
||||
:alt: Modification of a posted journal item's account in Odoo Accounting
|
||||
|
||||
Deferred Revenues entries
|
||||
=========================
|
||||
@ -107,8 +107,8 @@ recognize your revenue, and at which date.
|
||||
|
||||
.. image:: deferred_revenues/deferred_revenues06.png
|
||||
:align: center
|
||||
:alt: Revenue Board in Odoo Accounting
|
||||
|
||||
:alt: Revenue Board in Odoo Accounting
|
||||
|
||||
What does "Prorata Temporis" mean?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@ -126,7 +126,7 @@ Deferred Entry from the Sales Journal
|
||||
|
||||
You can create a deferred entry from a specific journal item in your **Sales Journal**.
|
||||
|
||||
To do so, open your Sales Journal by going to
|
||||
To do so, open your Sales Journal by going to
|
||||
:menuselection:`Accounting --> Accounting --> Sales`, and select the journal item you want to defer.
|
||||
Make sure that it is posted in the right account (see:
|
||||
`Change the account of a posted journal item`_).
|
||||
|
@ -1,36 +1,36 @@
|
||||
============================
|
||||
Add EPC QR Codes to invoices
|
||||
============================
|
||||
European Payments Council Quick Response Code,
|
||||
or **EPC QR Code**, are two-dimensional barcodes
|
||||
that customers can scan with their **mobile banking
|
||||
European Payments Council Quick Response Code,
|
||||
or **EPC QR Code**, are two-dimensional barcodes
|
||||
that customers can scan with their **mobile banking
|
||||
applications** to initiate a **SEPA Credit Transfer
|
||||
(SCT)**, and pay their invoices instantly.
|
||||
|
||||
In addition to bringing ease of use and speed,
|
||||
it greatly reduces typing errors that would potentially
|
||||
make for payment issues.
|
||||
In addition to bringing ease of use and speed,
|
||||
it greatly reduces typing errors that would potentially
|
||||
make for payment issues.
|
||||
|
||||
.. note::
|
||||
This feature is only available in several European
|
||||
countries such as Austria, Belgium, Finland, Germany,
|
||||
This feature is only available in several European
|
||||
countries such as Austria, Belgium, Finland, Germany,
|
||||
and The Netherlands.
|
||||
|
||||
|
||||
Configuration
|
||||
=============
|
||||
Go to :menuselection:`Accounting --> Configuration --> Settings`
|
||||
Go to :menuselection:`Accounting --> Configuration --> Settings`
|
||||
and activate the **SEPA QR Code** feature.
|
||||
|
||||
.. image:: epc_qr_code/epc_qr_code01.png
|
||||
:align: center
|
||||
|
||||
|
||||
Configure your Bank Account’s journal
|
||||
-------------------------------------
|
||||
Make sure that your *Bank Account* is correctly configured
|
||||
Make sure that your *Bank Account* is correctly configured
|
||||
on Odoo with your IBAN and BIC.
|
||||
|
||||
To do so, go to :menuselection:`Accounting --> Configuration
|
||||
--> Journals`, open your *bank journal*, then fill out the
|
||||
To do so, go to :menuselection:`Accounting --> Configuration
|
||||
--> Journals`, open your *bank journal*, then fill out the
|
||||
*Bank Account* and *Bank* under the *Bank Account* tab.
|
||||
|
||||
.. image:: epc_qr_code/epc_qr_code02.png
|
||||
@ -38,26 +38,26 @@ To do so, go to :menuselection:`Accounting --> Configuration
|
||||
|
||||
Issue Invoices with EPC QR Codes
|
||||
================================
|
||||
EPC QR Codes are added automatically to your invoices, as
|
||||
long as you issue them to customers that are located in a
|
||||
EPC QR Codes are added automatically to your invoices, as
|
||||
long as you issue them to customers that are located in a
|
||||
country where this feature is available.
|
||||
|
||||
Go to :menuselection:`Accounting --> Customers --> Invoices`,
|
||||
and create a new invoice.
|
||||
Go to :menuselection:`Accounting --> Customers --> Invoices`,
|
||||
and create a new invoice.
|
||||
|
||||
Before posting it, open the *Other Info* tab. Odoo automatically
|
||||
Before posting it, open the *Other Info* tab. Odoo automatically
|
||||
fills out the *Bank Account* field with your IBAN.
|
||||
|
||||
Make sure that the account indicated is the one you want to use to
|
||||
receive your customer’s payment as Odoo uses this field to generate
|
||||
Make sure that the account indicated is the one you want to use to
|
||||
receive your customer’s payment as Odoo uses this field to generate
|
||||
the EPC QR Code.
|
||||
|
||||
.. image:: epc_qr_code/epc_qr_code03.png
|
||||
:align: center
|
||||
|
||||
|
||||
.. tip::
|
||||
If you want to issue an invoice without an EPC QR Code,
|
||||
remove the IBAN indicated in the *Bank Account* field,
|
||||
If you want to issue an invoice without an EPC QR Code,
|
||||
remove the IBAN indicated in the *Bank Account* field,
|
||||
under the *Other Info* tab of the invoice.
|
||||
|
||||
.. seealso::
|
||||
|
@ -145,5 +145,5 @@ It remains possible to resequence the invoices but with some restrictions:
|
||||
#. The feature does not work if the sequence is inconsistent with the month of the entry.
|
||||
#. It does not work if the sequence leads to a duplicate.
|
||||
#. The order of the invoice remains unchanged.
|
||||
#. It is useful for people who use a numbering from another software and who want to continue the
|
||||
#. It is useful for people who use a numbering from another software and who want to continue the
|
||||
current year without starting over from the beginning.
|
||||
|
@ -72,7 +72,7 @@ their SEPA Direct Debit mandate.
|
||||
.. todo::
|
||||
Add link to future **Payment Acquirer** documentation.
|
||||
|
||||
Close or revoke a mandate
|
||||
Close or revoke a mandate
|
||||
-------------------------
|
||||
|
||||
Direct Debit mandates are closed automatically after their *End Date*. If this field is left blank,
|
||||
@ -95,7 +95,7 @@ included in the next SDD XML file.
|
||||
Get paid with SDD Batch Payments
|
||||
================================
|
||||
|
||||
Customer Invoices
|
||||
Customer Invoices
|
||||
-----------------
|
||||
|
||||
You can register SDD payments for invoices issued to customers who have an active SDD mandate.
|
||||
|
@ -6,14 +6,14 @@ There are two ways to handle payments received by checks. Odoo support
|
||||
both approaches so that you can use the one that better fits your
|
||||
habits.
|
||||
|
||||
1. **Undeposited Funds:**
|
||||
1. **Undeposited Funds:**
|
||||
once you receive the check, you record a payment
|
||||
by check on the invoice. (using a Check journal and posted on the
|
||||
Undeposited Fund account) Then, once the check arrives in your
|
||||
bank account, move money from Undeposited Funds to your bank
|
||||
account.
|
||||
|
||||
2. **One journal entry only:**
|
||||
2. **One journal entry only:**
|
||||
once your receive the check, you record a
|
||||
payment on your bank, paid by check, without going through the
|
||||
**Undeposited Funds**. Once you process your bank statement, you do
|
||||
@ -28,7 +28,7 @@ Even if the first method is cleaner, Odoo support the second approach
|
||||
because some accountants are used to it (quickbooks and peachtree
|
||||
users).
|
||||
|
||||
.. Note::
|
||||
.. Note::
|
||||
You may have a look at the *Deposit Ticket feature* if you deposit
|
||||
several checks to your bank accounts in batch.
|
||||
|
||||
@ -90,7 +90,7 @@ If you use this approach to manage received checks, you get the list of
|
||||
checks that have not been cashed in the **Undeposit Funds** account
|
||||
(accessible, for example, from the general ledger).
|
||||
|
||||
.. Note::
|
||||
.. Note::
|
||||
Both methods will produce the same data in your accounting at the
|
||||
end of the process. But, if you have checks that have not been cashed,
|
||||
this one is cleaner because those checks have not been reported yet on
|
||||
@ -135,7 +135,7 @@ books:
|
||||
| Bank | | 100.00 | |
|
||||
+----------------------+-------------------+----------+----------+
|
||||
|
||||
.. tip::
|
||||
.. tip::
|
||||
You may also record the payment directly without going on the
|
||||
customer invoice, using the menu :menuselection:`Sales --> Payments`. This method may
|
||||
be more convenient if you have a lot of checks to record in a batch but
|
||||
|
@ -20,7 +20,7 @@ Make sure your :ref:`Payment Acquirers are correctly configured <payment_acquire
|
||||
By default, ":doc:`Wire Transfer </applications/finance/payment_acquirers/wire_transfer>`" is the only
|
||||
Payment Acquirer activated, but you still have to fill out the payment details.
|
||||
|
||||
To activate the Invoice Online Payment, go to :menuselection:`Accounting --> Configuration -->
|
||||
To activate the Invoice Online Payment, go to :menuselection:`Accounting --> Configuration -->
|
||||
Settings --> Customer Payments`, enable **Invoice Online Payment**, and click on *Save*.
|
||||
|
||||
Customer Portal
|
||||
|
@ -46,7 +46,7 @@ Add lines in your custom reports
|
||||
=================================
|
||||
|
||||
After you've created the report, you need to fill it with lines. They
|
||||
all need a **name**, a **code** (that is used to refer to the line), a
|
||||
all need a **name**, a **code** (that is used to refer to the line), a
|
||||
**sequence number** and a **level** (Used for the line rendering).
|
||||
|
||||
.. image:: customize/customize04.png
|
||||
|
@ -31,7 +31,7 @@ Balance Sheet
|
||||
The **Balance Sheet** shows a snapshot of the assets, liabilities and equity
|
||||
of your organisation as at a particular date.
|
||||
|
||||
.. image:: main_reports/main_reports09.png
|
||||
.. image:: main_reports/main_reports09.png
|
||||
:align: center
|
||||
|
||||
Profit and Loss
|
||||
@ -41,7 +41,7 @@ The **Profit and Loss** report (or **Income Statement**) shows your
|
||||
organisation's net income, by deducting expenses from revenue for the
|
||||
report period.
|
||||
|
||||
.. image:: main_reports/main_reports10.png
|
||||
.. image:: main_reports/main_reports10.png
|
||||
:align: center
|
||||
|
||||
Executive Summary
|
||||
@ -58,36 +58,36 @@ reporting :
|
||||
The contribution each individual sale made
|
||||
by your business less any direct costs needed to make those sales
|
||||
(things like labour, materials, etc).
|
||||
- **Net profit margin:**
|
||||
- **Net profit margin:**
|
||||
The contribution each individual sale made by
|
||||
your business less any direct costs needed to make those sales,
|
||||
as well as any fixed overheads your company has (things like
|
||||
rent, electricity, taxes you need to pay as a result of those
|
||||
sales).
|
||||
- **Return on investment (p.a.):**
|
||||
- **Return on investment (p.a.):**
|
||||
The ratio of net profit made, to the
|
||||
amount of assets the company used to make those profits.
|
||||
- **Position:**
|
||||
- **Average debtor days:**
|
||||
- **Average debtor days:**
|
||||
The average number of days it takes your
|
||||
customers to pay you (fully), across all your customer invoices.
|
||||
- **Average creditor days:**
|
||||
The average number of days it takes you to
|
||||
pay your suppliers (fully) across all your bills.
|
||||
- **Short term cash forecast:**
|
||||
- **Short term cash forecast:**
|
||||
How much cash is expected in or out of
|
||||
your organisation in the next month i.e. balance of your **Sales
|
||||
account** for the month less the balance of your **Purchases account**
|
||||
for the month.
|
||||
- **Current assets to liabilities:**
|
||||
Also referred to as **current ratio**, this is the ratio
|
||||
- **Current assets to liabilities:**
|
||||
Also referred to as **current ratio**, this is the ratio
|
||||
of current assets (assets that could be
|
||||
turned into cash within a year) to the current liabilities
|
||||
(liabilities which will be due in the next year). This is
|
||||
typically used as as a measure of a company's ability to service
|
||||
its debt.
|
||||
|
||||
.. image:: main_reports/main_reports01.png
|
||||
.. image:: main_reports/main_reports01.png
|
||||
:align: center
|
||||
|
||||
General Ledger
|
||||
@ -99,7 +99,7 @@ account and from there you can view a detailed transaction report or any
|
||||
exceptions. This report is useful for checking every transaction that
|
||||
occurred during a certain period of time.
|
||||
|
||||
.. image:: main_reports/main_reports05.png
|
||||
.. image:: main_reports/main_reports05.png
|
||||
:align: center
|
||||
|
||||
Aged Payable
|
||||
@ -109,7 +109,7 @@ Run the **Aged Payable Details** report to display information on individual
|
||||
bills, credit notes and overpayments owed by you, and how long these
|
||||
have gone unpaid.
|
||||
|
||||
.. image:: main_reports/main_reports02.png
|
||||
.. image:: main_reports/main_reports02.png
|
||||
:align: center
|
||||
|
||||
Aged Receivable
|
||||
@ -118,7 +118,7 @@ Aged Receivable
|
||||
The **Aged Receivables** report shows the sales invoices that were awaiting
|
||||
payment during a selected month and several months prior.
|
||||
|
||||
.. image:: main_reports/main_reports07.png
|
||||
.. image:: main_reports/main_reports07.png
|
||||
:align: center
|
||||
|
||||
Cash Flow Statement
|
||||
@ -128,7 +128,7 @@ The **Cash Flow Statement** shows how changes in balance sheet accounts and
|
||||
income affect cash and cash equivalents, and breaks the analysis down to
|
||||
operating, investing and financing activities.
|
||||
|
||||
.. image:: main_reports/main_reports03.png
|
||||
.. image:: main_reports/main_reports03.png
|
||||
:align: center
|
||||
|
||||
Tax Report
|
||||
@ -137,11 +137,11 @@ Tax Report
|
||||
This report allows you to see the **net** and **tax amounts** for all the taxes
|
||||
grouped by type (sale/purchase).
|
||||
|
||||
.. image:: main_reports/main_reports04.png
|
||||
.. image:: main_reports/main_reports04.png
|
||||
:align: center
|
||||
|
||||
Bank Reconciliation
|
||||
-------------------
|
||||
|
||||
.. image:: main_reports/main_reports06.png
|
||||
.. image:: main_reports/main_reports06.png
|
||||
:align: center
|
||||
|
@ -29,6 +29,6 @@ You can then configure your fiscal years in
|
||||
You only have to create fiscal years if they last more or less
|
||||
than 12 months.
|
||||
|
||||
.. seealso::
|
||||
.. seealso::
|
||||
|
||||
* :doc:`close_fiscal_year`
|
||||
|
@ -11,7 +11,7 @@ Taxes
|
||||
taxes/default_taxes
|
||||
taxes/fiscal_positions
|
||||
taxes/eu_distance_selling
|
||||
taxes/avatax
|
||||
taxes/avatax
|
||||
taxes/taxcloud
|
||||
taxes/retention
|
||||
taxes/B2B_B2C
|
||||
|
@ -98,19 +98,19 @@ Setting your products
|
||||
|
||||
Your company must be configured with tax excluded by default. This is
|
||||
usually the default configuration, but you can check your **Default Sale
|
||||
Tax** from the menu :menuselection:`Configuration --> Settings`
|
||||
Tax** from the menu :menuselection:`Configuration --> Settings`
|
||||
of the Accounting application.
|
||||
|
||||
.. image:: B2B_B2C/price_B2C_B2B01.png
|
||||
:align: center
|
||||
|
||||
Once done, you can create a **B2C** pricelist. You can activate the
|
||||
pricelist feature per customer from the menu:
|
||||
:menuselection:`Configuration --> Settings` of the Sale application.
|
||||
pricelist feature per customer from the menu:
|
||||
:menuselection:`Configuration --> Settings` of the Sale application.
|
||||
Choose the option **different prices per customer segment**.
|
||||
|
||||
Once done, create a B2C pricelist from the menu
|
||||
:menuselection:`Configuration --> Pricelists`.
|
||||
Once done, create a B2C pricelist from the menu
|
||||
:menuselection:`Configuration --> Pricelists`.
|
||||
It's also good to rename the default pricelist into B2B to avoid confusion.
|
||||
|
||||
Then, create a product at 8.26€, with a tax of 21% (defined as tax not
|
||||
@ -125,8 +125,8 @@ Setting the B2C fiscal position
|
||||
-------------------------------
|
||||
|
||||
From the accounting application, create a B2C fiscal position from this
|
||||
menu: :menuselection:`Configuration --> Fiscal Positions`.
|
||||
This fiscal position should map the VAT 21% (tax excluded of price)
|
||||
menu: :menuselection:`Configuration --> Fiscal Positions`.
|
||||
This fiscal position should map the VAT 21% (tax excluded of price)
|
||||
with a VAT 21% (tax included in price)
|
||||
|
||||
.. image:: B2B_B2C/price_B2C_B2B03.png
|
||||
@ -135,8 +135,8 @@ with a VAT 21% (tax included in price)
|
||||
Test by creating a quotation
|
||||
============================
|
||||
|
||||
Create a quotation from the Sale application, using the
|
||||
:menuselection:`Sales --> Quotations` menu. You should have the
|
||||
Create a quotation from the Sale application, using the
|
||||
:menuselection:`Sales --> Quotations` menu. You should have the
|
||||
following result: 8.26€ + 1.73€ = 9.99€.
|
||||
|
||||
.. image:: B2B_B2C/price_B2C_B2B04.png
|
||||
|
@ -12,7 +12,7 @@ receive the payment the 2nd quarter of your fiscal year. Based on the
|
||||
cash basis method, the tax you have to pay to the administration is due
|
||||
for the 2nd quarter.
|
||||
|
||||
How to configure cash basis taxes ?
|
||||
How to configure cash basis taxes ?
|
||||
------------------------------------
|
||||
|
||||
You first have to activate the setting in
|
||||
@ -41,7 +41,7 @@ to post the base tax amount for an accurate tax report.
|
||||
.. image:: cash_basis_taxes/cash_basis_taxes03.png
|
||||
:align: center
|
||||
|
||||
What is the impact of cash basis taxes in my accounting ?
|
||||
What is the impact of cash basis taxes in my accounting ?
|
||||
----------------------------------------------------------
|
||||
|
||||
Let’s take an example. You make a sale of $100 with a 15% cash basis
|
||||
@ -89,7 +89,7 @@ When you reconcile the invoice and the payment, this entry is generated:
|
||||
+--------------------------+----------------------------+
|
||||
|
||||
.. tip::
|
||||
The last two journal items are neutral but they are needed to insure
|
||||
The last two journal items are neutral but they are needed to insure
|
||||
correct tax reports in Odoo with accurate base tax amounts.
|
||||
We advise to use a default revenue account.
|
||||
The balance of this account will then always be at zero.
|
||||
|
@ -40,8 +40,8 @@ Once the tax is defined, you can use it in your products, sales order or
|
||||
invoices.
|
||||
|
||||
.. tip::
|
||||
If the retention is a percentage of a regular tax, create a Tax with a
|
||||
**Tax Computation** as a **Tax Group** and set the two taxes in this group
|
||||
If the retention is a percentage of a regular tax, create a Tax with a
|
||||
**Tax Computation** as a **Tax Group** and set the two taxes in this group
|
||||
(normal tax and retention).
|
||||
|
||||
Applying retention taxes on invoices
|
||||
@ -55,9 +55,9 @@ invoice line.
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
When you see the customer invoice on the screen, you get only a
|
||||
**Taxes line** summarizing all the taxes (normal taxes & retentions).
|
||||
But when you print or send the invoice, Odoo does the correct
|
||||
When you see the customer invoice on the screen, you get only a
|
||||
**Taxes line** summarizing all the taxes (normal taxes & retentions).
|
||||
But when you print or send the invoice, Odoo does the correct
|
||||
grouping amongst all the taxes.
|
||||
|
||||
The printed invoice will show the different amounts in each tax group.
|
||||
|
@ -14,7 +14,7 @@ How to set expense types
|
||||
========================
|
||||
|
||||
The first step to track expenses is to configure the expense types (managed as products in Odoo)
|
||||
that your company allows, from the *Configuration* menu.
|
||||
that your company allows, from the *Configuration* menu.
|
||||
When a specific expense is reimbursed at a fixed price, set a cost on the product.
|
||||
Otherwise keep the cost at 0.0 and employees will report the real cost per expense.
|
||||
|
||||
@ -37,16 +37,16 @@ Here are some examples:
|
||||
|
||||
* Cost: 0.0
|
||||
|
||||
Don't forget to set an expense tax on each expense type
|
||||
(and an account if you use Odoo Accounting).
|
||||
It's usually a good practice to use a tax that is configured
|
||||
Don't forget to set an expense tax on each expense type
|
||||
(and an account if you use Odoo Accounting).
|
||||
It's usually a good practice to use a tax that is configured
|
||||
with :ref:`Tax Included in Price <taxes/included-in-price>`.
|
||||
That way, employees report expenses with
|
||||
That way, employees report expenses with
|
||||
prices including taxes, which is usually the expected behaviour.
|
||||
|
||||
.. tip::
|
||||
The *Sales* app allows you to specify units of measure for your
|
||||
expense types (units, miles, nights, etc.).
|
||||
.. tip::
|
||||
The *Sales* app allows you to specify units of measure for your
|
||||
expense types (units, miles, nights, etc.).
|
||||
Go to :menuselection:`Sales --> Configuration --> Settings` and check
|
||||
*Some products may be sold/purchased in different units of measure (advanced)*.
|
||||
|
||||
@ -57,20 +57,20 @@ How to record expenses
|
||||
Manually
|
||||
--------
|
||||
|
||||
As an employee (Employee in user access rights), you can record
|
||||
As an employee (Employee in user access rights), you can record
|
||||
expenses from :menuselection:`My Expenses --> Expenses to Submit`.
|
||||
|
||||
.. image:: expenses/submit_01.png
|
||||
:align: center
|
||||
|
||||
1. Select the related product and enter either the total amount
|
||||
you paid (with Quantity = 1) or the unit price if Quantity is
|
||||
1. Select the related product and enter either the total amount
|
||||
you paid (with Quantity = 1) or the unit price if Quantity is
|
||||
countable (e.g. number of hotel nights).
|
||||
2. Enter the expense date.
|
||||
3. Choose if you paid the bill on your own (and expect to be reimbursed)
|
||||
3. Choose if you paid the bill on your own (and expect to be reimbursed)
|
||||
or if the company paid directly (e.g. if you used a company's credit card).
|
||||
4. Set the bill reference, add some notes if requested and attach a
|
||||
photo/scan of the receipt from the discussion thread.
|
||||
4. Set the bill reference, add some notes if requested and attach a
|
||||
photo/scan of the receipt from the discussion thread.
|
||||
That will help the manager and the accountant validate it.
|
||||
|
||||
.. image:: expenses/submit_02.png
|
||||
@ -79,56 +79,56 @@ expenses from :menuselection:`My Expenses --> Expenses to Submit`.
|
||||
In one click from emails
|
||||
------------------------
|
||||
|
||||
Let your employees record their expenses from a simple email.
|
||||
Let your employees record their expenses from a simple email.
|
||||
Make a snapshot of the receipt and send it by email, or simply forward a bill!
|
||||
|
||||
The only thing to do is setting up an email alias in
|
||||
:menuselection:`Expenses --> Configuration --> Settings` (e.g. *expenses* @mycompany.odoo.com).
|
||||
For security purposes, only authenticated employee emails
|
||||
The only thing to do is setting up an email alias in
|
||||
:menuselection:`Expenses --> Configuration --> Settings` (e.g. *expenses* @mycompany.odoo.com).
|
||||
For security purposes, only authenticated employee emails
|
||||
(cfr. *Work Email* in employee detail form) are accepted.
|
||||
|
||||
.. tip::
|
||||
The expense product is set automatically if the mail subject contains
|
||||
The expense product is set automatically if the mail subject contains
|
||||
the product's internal reference in first position.
|
||||
Type the expense amount in the mail subject to set it on the expense too (e.g. Ref001 Food 100€).
|
||||
|
||||
How to submit expenses to managers
|
||||
==================================
|
||||
|
||||
When you are ready to submit your expenses to your manager
|
||||
(e.g. at the end of a business trip, or once a month),
|
||||
go to the menu :menuselection:`My Expenses --> Expenses to Submit`. Select all expenses
|
||||
When you are ready to submit your expenses to your manager
|
||||
(e.g. at the end of a business trip, or once a month),
|
||||
go to the menu :menuselection:`My Expenses --> Expenses to Submit`. Select all expenses
|
||||
from the list view and click on :menuselection:`Action --> Submit to Manager`.
|
||||
Save the newly created expense report (i.e. set of expenses),
|
||||
Save the newly created expense report (i.e. set of expenses),
|
||||
and wait for your manager to approve it.
|
||||
|
||||
.. image:: expenses/submit_03.png
|
||||
:align: center
|
||||
|
||||
You can also submit expenses one by one from the *Submit to Manager*
|
||||
You can also submit expenses one by one from the *Submit to Manager*
|
||||
button on the form view of an expense.
|
||||
|
||||
All your submitted expense reports can be found in
|
||||
All your submitted expense reports can be found in
|
||||
:menuselection:`Expenses --> My Expenses --> Expense Reports`.
|
||||
|
||||
|
||||
How to approve expenses
|
||||
=======================
|
||||
|
||||
HR and team managers get an overview of all expense reports to
|
||||
validate from the top menu :menuselection:`To Approve --> Expense Reports to Approve`.
|
||||
HR and team managers get an overview of all expense reports to
|
||||
validate from the top menu :menuselection:`To Approve --> Expense Reports to Approve`.
|
||||
Such users must have at least *Officers* access rights for *Expenses*.
|
||||
|
||||
.. image:: expenses/approval_01.png
|
||||
:align: center
|
||||
|
||||
They can review expense reports, approve or reject them, as well as providing
|
||||
They can review expense reports, approve or reject them, as well as providing
|
||||
feedback thanks to the integrated communication tool.
|
||||
|
||||
.. image:: expenses/approval_02.png
|
||||
:align: center
|
||||
|
||||
As a team manager you can easily find the expense reports of your team members.
|
||||
As a team manager you can easily find the expense reports of your team members.
|
||||
You need to be set as manager in the detail form of those employees.
|
||||
|
||||
.. image:: expenses/approval_03.png
|
||||
@ -138,27 +138,27 @@ You need to be set as manager in the detail form of those employees.
|
||||
How to post expenses in accounting
|
||||
==================================
|
||||
|
||||
Once expense reports approved by managers, the accounting department
|
||||
goes to :menuselection:`Expenses --> Accountant --> Expense Reports To Post` to check
|
||||
accounts, products and taxes. They can click *Post Journal Entries*
|
||||
to post related journal entries into your books.
|
||||
Once expense reports approved by managers, the accounting department
|
||||
goes to :menuselection:`Expenses --> Accountant --> Expense Reports To Post` to check
|
||||
accounts, products and taxes. They can click *Post Journal Entries*
|
||||
to post related journal entries into your books.
|
||||
To do so, the user must have following access rights:
|
||||
|
||||
* Accounting: Accountant or Adviser
|
||||
* Expenses: Manager
|
||||
|
||||
.. note::
|
||||
To post an expense, a *Home Address* must be set on the employee.
|
||||
If you get a related blocking message when posting, click the employee,
|
||||
go to *Personal Information* tab and select/create the contact of your employee
|
||||
in the address book.
|
||||
To post an expense, a *Home Address* must be set on the employee.
|
||||
If you get a related blocking message when posting, click the employee,
|
||||
go to *Personal Information* tab and select/create the contact of your employee
|
||||
in the address book.
|
||||
A contact has been automatically created if this person is using Odoo.
|
||||
|
||||
How to reimburse employees
|
||||
==========================
|
||||
|
||||
You can now see all the expense reports to reimburse in
|
||||
:menuselection:`Expenses --> Accountant --> Expense Reports To Pay`.
|
||||
You can now see all the expense reports to reimburse in
|
||||
:menuselection:`Expenses --> Accountant --> Expense Reports To Pay`.
|
||||
To record the payment or pay by check, click *Register a Payment*.
|
||||
|
||||
See how you can easily manage the payment process in Odoo:
|
||||
@ -223,7 +223,7 @@ Submit, validate and post expenses
|
||||
Invoice expenses
|
||||
----------------
|
||||
|
||||
Now you can invoice the order. It shows up in
|
||||
Now you can invoice the order. It shows up in
|
||||
:menuselection:`Sales --> Invoicing --> Sales`
|
||||
to Invoice. The expenses have been added automatically in the order
|
||||
lines. Such items show up in blue (i.e. to invoice).
|
||||
@ -231,4 +231,4 @@ lines. Such items show up in blue (i.e. to invoice).
|
||||
.. image:: expenses/invoicing_04.png
|
||||
:align: center
|
||||
|
||||
e (i.e. to invoice).
|
||||
e (i.e. to invoice).
|
||||
|
@ -111,7 +111,7 @@ Your Paypal account is ready!
|
||||
.. tip::
|
||||
If you want your customers to pay without creating a Paypal account,
|
||||
*Paypal Account Optional* needs to be turned on.
|
||||
|
||||
|
||||
.. image:: paypal/paypal_account_optional.png
|
||||
|
||||
.. tip::
|
||||
@ -168,7 +168,7 @@ Your configuration is ready to roll. Make sure *Production* mode is
|
||||
on. Then publish the payment method by clicking the *Published* button right next to it.
|
||||
|
||||
.. image:: paypal/paypal11.png
|
||||
:align: center
|
||||
:align: center
|
||||
|
||||
.. image:: paypal/paypal12.png
|
||||
:align: Center
|
||||
|
@ -2,10 +2,10 @@
|
||||
How to get paid with wire transfers
|
||||
=======================================
|
||||
|
||||
**Wire Transfer** is the default payment method available.
|
||||
The aim is providing your customers with your bank details
|
||||
**Wire Transfer** is the default payment method available.
|
||||
The aim is providing your customers with your bank details
|
||||
so they can pay on their own.
|
||||
This is very easy to start with but slow and inefficient process-wise.
|
||||
This is very easy to start with but slow and inefficient process-wise.
|
||||
Opt for payment acquirers as soon as you can!
|
||||
|
||||
|
||||
@ -25,8 +25,8 @@ They will appear to the customers when they place an order.
|
||||
How to manage an order once you get paid
|
||||
========================================
|
||||
|
||||
Whenever a customer pays by wire transfer, the order stays in an
|
||||
intermediary stage **Quotation Sent** (i.e. unpaid order).
|
||||
Whenever a customer pays by wire transfer, the order stays in an
|
||||
intermediary stage **Quotation Sent** (i.e. unpaid order).
|
||||
When you get paid,
|
||||
you confirm the order manually to launch the delivery.
|
||||
|
||||
@ -34,7 +34,7 @@ you confirm the order manually to launch the delivery.
|
||||
How to create other manual payment methods
|
||||
==========================================
|
||||
|
||||
If you manage a B2B business, you can create other manually-processed
|
||||
If you manage a B2B business, you can create other manually-processed
|
||||
payment methods like paying by check.
|
||||
To do so, just rename *Wire Transfer* or duplicate it.
|
||||
|
||||
|
@ -13,4 +13,3 @@ Miscellaneous
|
||||
general/calendars
|
||||
general/in_app_purchase
|
||||
general/developer_mode
|
||||
|
||||
|
@ -70,7 +70,7 @@ Credentials
|
||||
|
||||
#. Select **Web Application** as the Application type. Now configure the allowed pages on which you
|
||||
will be redirected.
|
||||
|
||||
|
||||
In order to achieve this, in the **Authorized redirect URIs** field, enter your database's domain
|
||||
immediately followed by ``/auth_oauth/signin``. For example:
|
||||
``https://mydomain.odoo.com/auth_oauth/signin``, then click on *Create*.
|
||||
@ -106,7 +106,7 @@ Odoo activation
|
||||
|
||||
.. note::
|
||||
You may have to log in again after this step.
|
||||
|
||||
|
||||
#. Go back to :menuselection:`General Settings --> Integrations`, activate **Google
|
||||
Authentication**, then fill out the *Client ID* with the key from the Google API Dashboard, and
|
||||
*Save*.
|
||||
|
@ -20,7 +20,7 @@ If your database is hosted on our cloud (Odoo Online or Odoo.sh), it is not nece
|
||||
outgoing email server to send emails from your custom domain. You can enjoy this feature by using
|
||||
the default Odoo email server.
|
||||
|
||||
.. important::
|
||||
.. important::
|
||||
The Odoo server is subject to a daily email limit to prevent abuse. The default limit is 200
|
||||
emails sent per day for databases with an Enterprise subscription. This limit can be increased
|
||||
under certain conditions. See our :doc:`FAQ <faq>` or contact support for more
|
||||
@ -38,19 +38,19 @@ Be SPF compliant
|
||||
================
|
||||
|
||||
The Sender Policy Framework (SPF) protocol allows the owner of a domain name to specify which
|
||||
servers are allowed to send email from that domain. When a server receives an incoming email,
|
||||
it checks whether the IP address of the sending server is on the list of allowed IPs according
|
||||
servers are allowed to send email from that domain. When a server receives an incoming email,
|
||||
it checks whether the IP address of the sending server is on the list of allowed IPs according
|
||||
to the SPF record of the sender.
|
||||
|
||||
.. note::
|
||||
.. note::
|
||||
The SPF verification is performed on the domain mentioned in the Return-Path field of the email.
|
||||
In the case of an email sent by Odoo, this domain corresponds to the value of the
|
||||
`mail.catchall.domain` key in the database system parameters.
|
||||
|
||||
See the :ref:`documentation on incoming emails <email_communication/inbound_messages>`.
|
||||
|
||||
The SPF policy of a domain is set using a TXT record. How to create or modify a TXT record depends
|
||||
on the provider hosting the DNS zone of your domain name. In order for the verification to work
|
||||
The SPF policy of a domain is set using a TXT record. How to create or modify a TXT record depends
|
||||
on the provider hosting the DNS zone of your domain name. In order for the verification to work
|
||||
properly, each domain can only have one SPF record.
|
||||
|
||||
If your domain name does not yet have an SPF record, the content of the record to create is as
|
||||
@ -66,7 +66,7 @@ new one).
|
||||
If your TXT record is `v=spf1 include:_spf.google.com ~all`, you need to edit it to add
|
||||
`include:_spf.odoo.com`: `v=spf1 include:_spf.odoo.com include:_spf.google.com ~all`
|
||||
|
||||
You can check if your SPF record is valid with a free tool like
|
||||
You can check if your SPF record is valid with a free tool like
|
||||
`MXToolbox SPF <https://mxtoolbox.com/spf.aspx>`_.
|
||||
|
||||
.. _email_communication/DKIM_compliant:
|
||||
@ -86,13 +86,13 @@ To enable DKIM, you must add a CNAME record to the DNS zone of your domain name:
|
||||
``odoo._domainkey IN CNAME odoo._domainkey.odoo.com.``
|
||||
|
||||
.. tip::
|
||||
If your domain name is `mycompany.com`, you need to create a subdomain
|
||||
If your domain name is `mycompany.com`, you need to create a subdomain
|
||||
`odoo._domainkey.mycompany.com` whose canonical name is `odoo._domainkey.odoo.com.`.
|
||||
|
||||
How to create or modify a CNAME record depends on the provider hosting the DNS zone of your domain
|
||||
name. The most common providers are list below.
|
||||
|
||||
You can check if your DKIM record is valid with a free tool like
|
||||
You can check if your DKIM record is valid with a free tool like
|
||||
`DKIM Core <https://dkimcore.org/tools/>`_. If a selector is asked, enter `odoo`.
|
||||
|
||||
Check your DMARC policy
|
||||
@ -110,7 +110,7 @@ There are three DMARC policies:
|
||||
``p=quarantine`` and ``p=reject`` instruct the server that receives an email to quarantine that
|
||||
email or ignore it if the SPF and/or DKIM check fails.
|
||||
|
||||
If your domain name uses DMARC and has defined one of these policies, it is therefore imperative
|
||||
If your domain name uses DMARC and has defined one of these policies, it is therefore imperative
|
||||
to be SPF compliant or to enable DKIM.
|
||||
|
||||
.. danger::
|
||||
@ -118,7 +118,7 @@ to be SPF compliant or to enable DKIM.
|
||||
strongly advise against using an *@yahoo.com* or *@aol.com* address for your users. These emails
|
||||
will never reach their recipient.
|
||||
|
||||
``p=none`` is used for the domain owner to receive reports about entities using their domain. It
|
||||
``p=none`` is used for the domain owner to receive reports about entities using their domain. It
|
||||
should not impact the deliverability if the DMARC check fails.
|
||||
|
||||
You can check the DMARC record of a domain name with a tool like
|
||||
@ -127,12 +127,12 @@ You can check the DMARC record of a domain name with a tool like
|
||||
If one of your partners, customer or vendor, uses DMARC and has defined one of these policies, the
|
||||
Odoo server cannot relay emails from this partner to your users.
|
||||
|
||||
You need to :ref:`handle user notifications in Odoo <discuss_app/notification_preferences>`, or replace the
|
||||
You need to :ref:`handle user notifications in Odoo <discuss_app/notification_preferences>`, or replace the
|
||||
email address of the partner with a default email address.
|
||||
|
||||
.. _email_communication/SPFDKIM_common_providers:
|
||||
|
||||
SPF, DKIM & DMARC documentation of common providers
|
||||
SPF, DKIM & DMARC documentation of common providers
|
||||
===================================================
|
||||
|
||||
- `OVH DNS <https://docs.ovh.com/us/en/domains/web_hosting_how_to_edit_my_dns_zone/>`_
|
||||
@ -145,8 +145,8 @@ SPF, DKIM & DMARC documentation of common providers
|
||||
- `Google Domains <https://support.google.com/domains/answer/3290350?hl=en>`_
|
||||
- `Azure DNS <https://docs.microsoft.com/en-us/azure/dns/dns-getstarted-portal>`_
|
||||
|
||||
To fully test your configuration, the tool `Mail-Tester <https://www.mail-tester.com/>`_ will give
|
||||
you a full overview of the content and configuration you have in one email sent! Mail-Tester can
|
||||
To fully test your configuration, the tool `Mail-Tester <https://www.mail-tester.com/>`_ will give
|
||||
you a full overview of the content and configuration you have in one email sent! Mail-Tester can
|
||||
also be used for other lesser known providers.
|
||||
|
||||
Use a default email address
|
||||
|
@ -36,15 +36,15 @@ the example below, the template would be sent to job applicants.
|
||||
Writing content including placeholder expressions
|
||||
-------------------------------------------------
|
||||
|
||||
A placeholder is a string of characters that temporarily takes the place of the final data. With
|
||||
email templates, for example, placeholders let you put dynamic content in order to personalize
|
||||
A placeholder is a string of characters that temporarily takes the place of the final data. With
|
||||
email templates, for example, placeholders let you put dynamic content in order to personalize
|
||||
the email for the recipient.
|
||||
|
||||
A common use is to use it to indicate the name of the recipient in the newsletter so that each
|
||||
A common use is to use it to indicate the name of the recipient in the newsletter so that each
|
||||
recipient gets a personalized newsletter.
|
||||
|
||||
Placeholders and more specifically fields that are available for a template will depend on the
|
||||
template you modify. One way to see the fields that are available is to check the Dynamic
|
||||
Placeholders and more specifically fields that are available for a template will depend on the
|
||||
template you modify. One way to see the fields that are available is to check the Dynamic
|
||||
Placeholder Generator tab.
|
||||
|
||||
.. _email_communication/dynamic_placeholder_generator:
|
||||
@ -66,27 +66,27 @@ Placeholder Generator tab.
|
||||
.. image:: email_template/preview.png
|
||||
:alt: View of the content with the standard body view in Odoo
|
||||
|
||||
Using functions with placeholders
|
||||
Using functions with placeholders
|
||||
---------------------------------
|
||||
|
||||
Functions can be used along with your placeholders in order to format the data as you'd like within
|
||||
your mail templates, for example, the time format can be changed using a function such
|
||||
your mail templates, for example, the time format can be changed using a function such
|
||||
as ``format_time``.
|
||||
|
||||
In order to use functions, you have to know the available fields to format. To know that, you have
|
||||
to check the fields (the properties) of the object that are available to be used.
|
||||
|
||||
Checking the fields (properties) available on the object
|
||||
Checking the fields (properties) available on the object
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To check the **fields available**, click on the link next to Applies to. For the example we use
|
||||
To check the **fields available**, click on the link next to Applies to. For the example we use
|
||||
the Portal: new user template, so we click on Portal user Config.
|
||||
|
||||
.. image:: email_template/apply-to-model.png
|
||||
:align: center
|
||||
:alt: Template is capable of using the field of the defined Models.
|
||||
|
||||
By clicking on the link, you are redirected to the model, in this case the ``Portal user Config``
|
||||
By clicking on the link, you are redirected to the model, in this case the ``Portal user Config``
|
||||
model that lists all the fields that you can use within your mail template.
|
||||
|
||||
.. image:: email_template/fields-of-model.png
|
||||
@ -96,55 +96,55 @@ model that lists all the fields that you can use within your mail template.
|
||||
As a side note, you can also see the fields that are available by accessing the dynamic placeholder
|
||||
generator, as described :ref:`previously <email_communication/dynamic_placeholder_generator>`.
|
||||
|
||||
See below an example with the email field that was added in the template and its result as well as
|
||||
See below an example with the email field that was added in the template and its result as well as
|
||||
some other placeholders already present by default.
|
||||
|
||||
.. image:: email_template/field-and-rendering.png
|
||||
:align: center
|
||||
:alt: Adding a field on a template and see the result
|
||||
|
||||
Using fields with functions
|
||||
Using fields with functions
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Now that you know the *fields* that can be used, you can use one of them with a function. For this
|
||||
example, we add the creation date, *create_date* field to the body of the template ‘Portal: new user’
|
||||
Now that you know the *fields* that can be used, you can use one of them with a function. For this
|
||||
example, we add the creation date, *create_date* field to the body of the template ‘Portal: new user’
|
||||
along with the ``format_date`` function so that the user knows when he was invited.
|
||||
|
||||
.. image:: email_template/format-date-functions-example.png
|
||||
:align: center
|
||||
:alt: Example of the format_date on a create_date field
|
||||
|
||||
As you can see we use the placeholder `${}` with the ``format_date`` function which uses as a
|
||||
parameter the field create_date available on the current object, this gives the following line
|
||||
As you can see we use the placeholder `${}` with the ``format_date`` function which uses as a
|
||||
parameter the field create_date available on the current object, this gives the following line
|
||||
of code ``${format_date(object.create_date)}``.
|
||||
|
||||
.. warning::
|
||||
It's really important to check that the preview is working, if it's broken your template
|
||||
might appear totally blank when previewing it. We also recommend not changing the content
|
||||
in existing templates unless you have prior knowledge. We highly recommend duplicating the
|
||||
It's really important to check that the preview is working, if it's broken your template
|
||||
might appear totally blank when previewing it. We also recommend not changing the content
|
||||
in existing templates unless you have prior knowledge. We highly recommend duplicating the
|
||||
template and apply your changes within this one.
|
||||
|
||||
Find below the result of the e-mail received in the recipient's mailbox with the modifications
|
||||
Find below the result of the e-mail received in the recipient's mailbox with the modifications
|
||||
applied.
|
||||
|
||||
.. image:: email_template/rendering-format-date-function.png
|
||||
:align: center
|
||||
:alt: Rendering of the format_date function on a create_date field
|
||||
|
||||
Still by using the ``format_date`` function, you have the possibility to adapt the format of the
|
||||
date just in a specific email by specifying the formatting of the date as a second parameter.
|
||||
If not specified, the format used by default is the one defined in the settings of the language.
|
||||
Still by using the ``format_date`` function, you have the possibility to adapt the format of the
|
||||
date just in a specific email by specifying the formatting of the date as a second parameter.
|
||||
If not specified, the format used by default is the one defined in the settings of the language.
|
||||
More information on how to access these parameters can be found :ref:`here <email_communication/usable_functions>`.
|
||||
|
||||
In order to adapt the date format, the piece of code used in the above example
|
||||
``${format_date(object.create_date)}`` becomes ``${format_date(object.create_date, date_format='dd -- MM -- YYYY')}``
|
||||
In order to adapt the date format, the piece of code used in the above example
|
||||
``${format_date(object.create_date)}`` becomes ``${format_date(object.create_date, date_format='dd -- MM -- YYYY')}``
|
||||
here dd is the day, MM the month and YYYY the year.
|
||||
|
||||
Here is the result once the function is adapted in the template.
|
||||
|
||||
.. image:: email_template/adapted-rendering-format-date-function.png
|
||||
:align: center
|
||||
:alt: Adapted rendering of the format_date
|
||||
:alt: Adapted rendering of the format_date
|
||||
|
||||
.. _email_communication/usable_functions:
|
||||
|
||||
@ -154,32 +154,32 @@ Functions used by default within email templates
|
||||
To format your data, many functions can be used, here are some examples.
|
||||
|
||||
.. note::
|
||||
**This list of functions is not exhaustive**, meaning that all functions that are available
|
||||
aren't listed in the below list, for more functions, we invite you to check the `babel <http://babel.pocoo.org/en/latest/api/dates.html>`_
|
||||
documentation, last but not least, modifications on the templates are considered as
|
||||
**This list of functions is not exhaustive**, meaning that all functions that are available
|
||||
aren't listed in the below list, for more functions, we invite you to check the `babel <http://babel.pocoo.org/en/latest/api/dates.html>`_
|
||||
documentation, last but not least, modifications on the templates are considered as
|
||||
customization and isn’t covered by our support.
|
||||
|
||||
For the following examples, we will introduce mostly some date functions. By default, the format
|
||||
of the date used is the one defined in the settings of the language.
|
||||
|
||||
These settings can only be accessed when the :ref:`developer mode <developer-mode>` is enabled.
|
||||
These settings can only be accessed when the :ref:`developer mode <developer-mode>` is enabled.
|
||||
Once developer is enabled go to :menuselection:`Settings --> Translations --> Languages` and click
|
||||
on one of the languages to see all the settings such as the time format or date format used by
|
||||
on one of the languages to see all the settings such as the time format or date format used by
|
||||
the language.
|
||||
|
||||
- **format_date()** - formats the date (without the time).
|
||||
|
||||
Can be found on the template `Purchase Order: Send PO`:
|
||||
|
||||
|
||||
.. image:: email_template/po-template-format-date.png
|
||||
:align: center
|
||||
:alt: Code of the format_date on existing template Purchase
|
||||
:alt: Code of the format_date on existing template Purchase
|
||||
|
||||
The result will look like this:
|
||||
The result will look like this:
|
||||
|
||||
.. image:: email_template/po-template-format-date-rendering.png
|
||||
:align: center
|
||||
:alt: Rendering of the format_date on existing template Purchase
|
||||
:alt: Rendering of the format_date on existing template Purchase
|
||||
|
||||
- **format_datetime()** - formats the datetime, defining a specific timezone, in this case Central
|
||||
European Time (CET).
|
||||
@ -188,20 +188,20 @@ the language.
|
||||
|
||||
.. image:: email_template/event-reg-template-format-datetime.png
|
||||
:align: center
|
||||
:alt: Code of the format_datetime on existing template Event
|
||||
:alt: Code of the format_datetime on existing template Event
|
||||
|
||||
The result will look like this:
|
||||
The result will look like this:
|
||||
|
||||
.. image:: email_template/event-reg-template-format-datetime-rendering.png
|
||||
:align: center
|
||||
:alt: Rendering of the format_datetime on existing template Event
|
||||
:alt: Rendering of the format_datetime on existing template Event
|
||||
|
||||
- **format_time()** - Similar to the format_datetime function except It's used only for the time,
|
||||
- **format_time()** - Similar to the format_datetime function except It's used only for the time,
|
||||
not a date.
|
||||
|
||||
- **format_amount()** - Formats a number, an amount to display the currency depending on the display
|
||||
setting that has been defined on the currency (the :ref:`debug mode <developer-mode>` must be
|
||||
activated to see this feature) :menuselection:`Accounting --> Configuration --> Currencies`
|
||||
- **format_amount()** - Formats a number, an amount to display the currency depending on the display
|
||||
setting that has been defined on the currency (the :ref:`debug mode <developer-mode>` must be
|
||||
activated to see this feature) :menuselection:`Accounting --> Configuration --> Currencies`
|
||||
(before or after the amount depending on the convention).
|
||||
|
||||
.. image:: email_template/so-template-format-amount.png
|
||||
@ -217,10 +217,10 @@ the language.
|
||||
Defining a default reply to on your mail template
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Although the field *reply to* is available within the mail templates, **this field is only used
|
||||
for mass mailing** mode (this means when sending templates on what we call bulk emailing). You
|
||||
can send emails in bulk in almost every app that has a list view. Select the records you want
|
||||
and click on the action button. If you have an option to send an email, you will see a mail
|
||||
Although the field *reply to* is available within the mail templates, **this field is only used
|
||||
for mass mailing** mode (this means when sending templates on what we call bulk emailing). You
|
||||
can send emails in bulk in almost every app that has a list view. Select the records you want
|
||||
and click on the action button. If you have an option to send an email, you will see a mail
|
||||
composer with possible values to define:
|
||||
|
||||
.. image:: email_template/composer-mass-mailing-quotations.png
|
||||
@ -233,12 +233,12 @@ You can also define them by default on the template:
|
||||
:align: center
|
||||
:alt: Reply-to field on template.
|
||||
|
||||
Because of this, setting a value in this field is useless as the value defined will be totally
|
||||
ignored. The default *reply-to* value is the default catchall email address to ensure a
|
||||
Because of this, setting a value in this field is useless as the value defined will be totally
|
||||
ignored. The default *reply-to* value is the default catchall email address to ensure a
|
||||
communication between your customer and your Odoo database. For more information about the way
|
||||
the catchall works, please check :ref:`how to manage inbound messages <email_communication/inbound_messages>`.
|
||||
|
||||
Transactional emails and corresponding URL for each company
|
||||
Transactional emails and corresponding URL for each company
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
When using Odoo, multiple events trigger the sending of automated emails. These emails are known
|
||||
@ -247,36 +247,36 @@ as transactional emails and sometimes contain links pointing to your Odoo databa
|
||||
By default, links generated by the database use the dynamic web.base.url key defined in the system
|
||||
parameters. More information about this :ref:`parameter <domain-name/web-base-url>`.
|
||||
|
||||
If the website application isn't installed, the web.base.url key will always be the default
|
||||
If the website application isn't installed, the web.base.url key will always be the default
|
||||
parameter used to generate all the links.
|
||||
|
||||
It’s important to know that this key can only have a single value, meaning that in a
|
||||
multi-website/company database environment, even if you have a specific domain name for each
|
||||
It’s important to know that this key can only have a single value, meaning that in a
|
||||
multi-website/company database environment, even if you have a specific domain name for each
|
||||
website, the links generated to share a document or within a transactional email might remain the
|
||||
same, whatever the website/company related to the sending of the email/document.
|
||||
|
||||
This is not always the case as some Odoo applications have a link established in the database with
|
||||
the website application, meaning that in this case, if a specific domain is defined for the
|
||||
This is not always the case as some Odoo applications have a link established in the database with
|
||||
the website application, meaning that in this case, if a specific domain is defined for the
|
||||
websites, the URL generated in the email template will use the domain defined on the corresponding
|
||||
website of the company.
|
||||
|
||||
.. caution::
|
||||
A document shared using the documents application will always use the web.base.url key, as the
|
||||
document shared isn't associated with any particular website. Meaning that the URL will always be
|
||||
the same (the web.base.url key value), whatever the company it's shared from, this is a known
|
||||
A document shared using the documents application will always use the web.base.url key, as the
|
||||
document shared isn't associated with any particular website. Meaning that the URL will always be
|
||||
the same (the web.base.url key value), whatever the company it's shared from, this is a known
|
||||
limitation!
|
||||
|
||||
On the other hand, sales orders made by a customer on one of your Odoo e-commerce websites have a
|
||||
link established with the website from which the order was made. As a result, the e-mail sent for
|
||||
On the other hand, sales orders made by a customer on one of your Odoo e-commerce websites have a
|
||||
link established with the website from which the order was made. As a result, the e-mail sent for
|
||||
the sales orders uses the domain name defined for the corresponding website to generate the links.
|
||||
|
||||
For more information about how to configure your domains, we invite you to check :doc:`our domain name
|
||||
For more information about how to configure your domains, we invite you to check :doc:`our domain name
|
||||
documentation </administration/maintain/domain_names>`.
|
||||
|
||||
Updating translations within email templates
|
||||
********************************************
|
||||
|
||||
Email templates are automatically translated. Changing the translations shouldn’t be necessary.
|
||||
Email templates are automatically translated. Changing the translations shouldn’t be necessary.
|
||||
However, if for a specific reason you’d like to change some of the translations, this can be done.
|
||||
|
||||
Like any modification in the code, keep in mind that modifications that aren’t done correctly (for
|
||||
@ -291,7 +291,7 @@ In order to edit your translations, follow these steps from the template.
|
||||
:align: left
|
||||
:alt: Edit the language of a template
|
||||
|
||||
#. A pop-up window with the different languages installed on the database will be displayed. From
|
||||
#. A pop-up window with the different languages installed on the database will be displayed. From
|
||||
here, editing the translations will be possible. Don't forget to hit the save button to preserve
|
||||
your changes.
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
===
|
||||
FAQ
|
||||
FAQ
|
||||
===
|
||||
|
||||
This document contains an explanation of the most recurring mailing concerns.
|
||||
|
||||
We will start by addressing issues of outgoing emails (ex: my client has not received my email),
|
||||
We will start by addressing issues of outgoing emails (ex: my client has not received my email),
|
||||
and then, of incoming emails (ex: I do not receive responses from my customers in the database).
|
||||
|
||||
Outgoing emails
|
||||
@ -27,15 +27,15 @@ Common error messages
|
||||
|
||||
.. _email_communication/daily_limit_mail:
|
||||
|
||||
You reached your daily limit:
|
||||
You reached your daily limit:
|
||||
*****************************
|
||||
|
||||
.. image:: faq/email-limit.png
|
||||
:align: center
|
||||
:alt: Warning in Odoo upon email limit reached
|
||||
|
||||
Each email service provider has its own email sending limits. The limits may be daily, hourly,
|
||||
and sometimes even per minute. This is the same for Odoo, we have to limit our customers to prevent
|
||||
Each email service provider has its own email sending limits. The limits may be daily, hourly,
|
||||
and sometimes even per minute. This is the same for Odoo, we have to limit our customers to prevent
|
||||
our e-mail servers from being blacklisted.
|
||||
|
||||
Here are the default limits for new databases:
|
||||
@ -48,18 +48,18 @@ Here are the default limits for new databases:
|
||||
|
||||
In case you hit the limit, you can:
|
||||
|
||||
- Ask our support team to increase your daily limit. We will analyze the situation of your database
|
||||
- Ask our support team to increase your daily limit. We will analyze the situation of your database
|
||||
depending on (non-exhaustive list):
|
||||
|
||||
- How many users in your database,
|
||||
- How many users in your database,
|
||||
- Which apps are installed,
|
||||
- Your bounce rate: the percentage of email addresses that did not receive your emails because
|
||||
- Your bounce rate: the percentage of email addresses that did not receive your emails because
|
||||
it was returned by a mail server on its way to the final recipient. You can contact the `support
|
||||
<https://www.odoo.com/help>`_.
|
||||
|
||||
- Use your own outgoing email server to be independent of Odoo’s mail limit (please refer
|
||||
- Use your own outgoing email server to be independent of Odoo’s mail limit (please refer
|
||||
to :doc:`the corresponding documentation </applications/general/email_communication/email_servers>`),
|
||||
- Wait until 11pm UTC for the reset and click on the retry button: The :ref:`Developer mode <developer-mode>`
|
||||
- Wait until 11pm UTC for the reset and click on the retry button: The :ref:`Developer mode <developer-mode>`
|
||||
must be activated. Then, go to :menuselection:`Settings --> Technical --> Emails`
|
||||
|
||||
.. image:: faq/email-retry-technical.png
|
||||
@ -70,54 +70,54 @@ In case you hit the limit, you can:
|
||||
The daily limit is global to your database and can rise quickly! By default an internal message,
|
||||
a notification, a note, etc. counts as an email in your daily limit if it notifies someone.
|
||||
|
||||
You can mitigate this by receiving your :ref:`notifications in Odoo <discuss_app/notification_preferences>`
|
||||
instead of by emails.
|
||||
You can mitigate this by receiving your :ref:`notifications in Odoo <discuss_app/notification_preferences>`
|
||||
instead of by emails.
|
||||
|
||||
SMTP Error
|
||||
**********
|
||||
|
||||
You can find out why an email wasn't transmitted successfully by reviewing the Simple Mail
|
||||
Transport Protocol (SMTP) error messages. SMTP is a protocol to describe the email structure
|
||||
and transmit it over the Internet, and the error messages generated by email services are helpful
|
||||
You can find out why an email wasn't transmitted successfully by reviewing the Simple Mail
|
||||
Transport Protocol (SMTP) error messages. SMTP is a protocol to describe the email structure
|
||||
and transmit it over the Internet, and the error messages generated by email services are helpful
|
||||
tools to diagnose and troubleshoot email problems.
|
||||
|
||||
No Error
|
||||
********
|
||||
|
||||
Odoo is not always capable of providing information for the reason it failed. The different
|
||||
providers implement a personalized policy of the bounce emails and it is not always possible
|
||||
Odoo is not always capable of providing information for the reason it failed. The different
|
||||
providers implement a personalized policy of the bounce emails and it is not always possible
|
||||
for Odoo to interpret it correctly.
|
||||
|
||||
If you have this problem on a recurring basis with the same client or the same domain, please
|
||||
If you have this problem on a recurring basis with the same client or the same domain, please
|
||||
do not hesitate to contact `Odoo Support <https://www.odoo.com/help>`_ for help in finding a reason.
|
||||
|
||||
Note: in such case, one of the most common reasons is related to :ref:`SPF <email_communication/spf_compliant>`
|
||||
Note: in such case, one of the most common reasons is related to :ref:`SPF <email_communication/spf_compliant>`
|
||||
and/or :ref:`DKIM <email_communication/DKIM_compliant>` configuration.
|
||||
|
||||
Why is my email sent late?
|
||||
**************************
|
||||
|
||||
It may happen that you schedule an email campaign but it is not sent on time. We know that
|
||||
we use a delayed job to send emails that we consider as not urgent (Newsletters concept
|
||||
such as mass mailing, marketing automation, events). The system utility **cron** can be used
|
||||
to schedule programs to run automatically at predetermined intervals. We use that policy in order
|
||||
to avoid cluttering the mail servers and prioritize the communication.
|
||||
It may happen that you schedule an email campaign but it is not sent on time. We know that
|
||||
we use a delayed job to send emails that we consider as not urgent (Newsletters concept
|
||||
such as mass mailing, marketing automation, events). The system utility **cron** can be used
|
||||
to schedule programs to run automatically at predetermined intervals. We use that policy in order
|
||||
to avoid cluttering the mail servers and prioritize the communication.
|
||||
|
||||
The emails considered urgent (communication from one person to another one such as
|
||||
Sales Orders, Invoices, Purchase Orders, etc.) are sent directly.
|
||||
The emails considered urgent (communication from one person to another one such as
|
||||
Sales Orders, Invoices, Purchase Orders, etc.) are sent directly.
|
||||
|
||||
.. image:: faq/email-scheduled-later.png
|
||||
:align: center
|
||||
:alt: Email scheduled to be sent later.
|
||||
|
||||
By default, the Mass Mailing cron runs every 60 minutes. So, you should wait maximum an hour
|
||||
By default, the Mass Mailing cron runs every 60 minutes. So, you should wait maximum an hour
|
||||
before the campaign is actually sent.
|
||||
|
||||
Incoming emails
|
||||
===============
|
||||
|
||||
When you have an issue with incoming emails, there might not be an indication per se in Odoo.
|
||||
This is the client who tries to contact a database who will get a bounce (most of the
|
||||
When you have an issue with incoming emails, there might not be an indication per se in Odoo.
|
||||
This is the client who tries to contact a database who will get a bounce (most of the
|
||||
time 550: mailbox unavailable).
|
||||
|
||||
Emails are not received
|
||||
@ -127,22 +127,22 @@ Depending on the platform you are using:
|
||||
|
||||
- The **Odoo.sh** users can find their live logs on the folder :file:`~/logs/`.
|
||||
|
||||
- The folder :file:`~/logs/` (preferably accessed by the command line) of an Odoo.sh contains
|
||||
a list of files containing the logs of the database. The log files are created everyday
|
||||
at 5:00 AM UTC. The two last days are not compressed, while the older ones are, in order
|
||||
to gain space. The naming of the files for Today and Yesterday are :file:`odoo.log` and
|
||||
- The folder :file:`~/logs/` (preferably accessed by the command line) of an Odoo.sh contains
|
||||
a list of files containing the logs of the database. The log files are created everyday
|
||||
at 5:00 AM UTC. The two last days are not compressed, while the older ones are, in order
|
||||
to gain space. The naming of the files for Today and Yesterday are :file:`odoo.log` and
|
||||
:file:`odoo.log.1`. For the following, they are named with their dates and compressed.
|
||||
See the Odoo.sh documentation about :ref:`logs <odoosh/logs>`. Use the command ``grep`` and
|
||||
See the Odoo.sh documentation about :ref:`logs <odoosh/logs>`. Use the command ``grep`` and
|
||||
``zgrep`` (for the compressed ones) to search through the files.
|
||||
|
||||
- **Odoo Online** users won’t have access to their logs. However you can still contact
|
||||
`Odoo Support <https://www.odoo.com/help>`_ , if you have a recurring issue
|
||||
`Odoo Support <https://www.odoo.com/help>`_ , if you have a recurring issue
|
||||
with the same client or domain.
|
||||
|
||||
Get help from support
|
||||
---------------------
|
||||
|
||||
In order to get helped efficiently, please provide as much information as possible. Here is a list
|
||||
In order to get helped efficiently, please provide as much information as possible. Here is a list
|
||||
of what can be helpful:
|
||||
|
||||
- The **EML** of the email, stating for *Electronic Mail*, is the file format containing all the
|
||||
|
@ -16,7 +16,7 @@ SET default_tablespace = '';
|
||||
SET default_with_oids = false;
|
||||
|
||||
--
|
||||
-- Name: companies; Type: TABLE; Schema: public; Owner: fp; Tablespace:
|
||||
-- Name: companies; Type: TABLE; Schema: public; Owner: fp; Tablespace:
|
||||
--
|
||||
|
||||
CREATE TABLE companies (
|
||||
@ -56,7 +56,7 @@ SELECT pg_catalog.setval('companies_id_seq', 3, true);
|
||||
|
||||
|
||||
--
|
||||
-- Name: persons; Type: TABLE; Schema: public; Owner: fp; Tablespace:
|
||||
-- Name: persons; Type: TABLE; Schema: public; Owner: fp; Tablespace:
|
||||
--
|
||||
|
||||
CREATE TABLE persons (
|
||||
@ -134,7 +134,7 @@ COPY persons (id, company_id, person_name) FROM stdin;
|
||||
|
||||
|
||||
--
|
||||
-- Name: companies_pkey; Type: CONSTRAINT; Schema: public; Owner: fp; Tablespace:
|
||||
-- Name: companies_pkey; Type: CONSTRAINT; Schema: public; Owner: fp; Tablespace:
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY companies
|
||||
|
@ -29,7 +29,7 @@ Settings --> IAP Account`.
|
||||
|
||||
.. image:: in_app_purchase/image2.png
|
||||
:align: center
|
||||
|
||||
|
||||
IAP Portal
|
||||
==========
|
||||
|
||||
@ -62,7 +62,7 @@ Different services are available depending on the hosting type of your Database:
|
||||
- *Odoo.sh and Odoo Enterprise (on-premise)*: both the services provided by Odoo and by third-party
|
||||
apps can be used.
|
||||
|
||||
Offering my own services
|
||||
Offering my own services
|
||||
========================
|
||||
|
||||
I am more than welcome to offer my own IAP services through Odoo Apps! It is the perfect opportunity
|
||||
|
@ -26,7 +26,7 @@ In order to install libsrtp, follow the instructions below:
|
||||
.. code-block:: console
|
||||
|
||||
cd /usr/local/src/
|
||||
wget http://srtp.sourceforge.net/srtp-1.4.2.tgz
|
||||
wget http://srtp.sourceforge.net/srtp-1.4.2.tgz
|
||||
tar zxvf srtp-1.4.2.tgz
|
||||
cd /usr/local/src/srtp
|
||||
./configure CFLAGS=-fPIC --prefix=/usr/local/lib
|
||||
@ -67,7 +67,7 @@ You also need to install PJSIP, you can download the source `here <http://www.pj
|
||||
# ldconfig -p | grep pj
|
||||
|
||||
- **The result should be:**
|
||||
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
libpjsua.so (libc6,x86-64) => /usr/lib/libpjsua.so
|
||||
@ -90,7 +90,7 @@ Asterisk
|
||||
- Extract Asterisk:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
|
||||
tar zxvf asterisk*
|
||||
|
||||
- Enter the Asterisk directory:
|
||||
@ -99,7 +99,7 @@ Asterisk
|
||||
|
||||
cd ./asterisk*
|
||||
|
||||
- Run the Asterisk configure script:
|
||||
- Run the Asterisk configure script:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
@ -207,14 +207,14 @@ In Odoo, the configuration should be done in the user's preferences.
|
||||
.. image:: asterisk/voip_config01.png
|
||||
:align: center
|
||||
|
||||
- The SIP Login/Browser's Extension is the number you configured previously in the sip.conf file (in our example: 1060).
|
||||
- The SIP Login/Browser's Extension is the number you configured previously in the sip.conf file (in our example: 1060).
|
||||
|
||||
- The SIP Password is the secret you chose in the sip.conf file.
|
||||
- The SIP Password is the secret you chose in the sip.conf file.
|
||||
|
||||
- The extension of your office's phone is not a required field but it is used if you want to transfer your call from Odoo to an external phone also configured in the sip.conf file.
|
||||
|
||||
|
||||
The configuration should also be done in the General Settings under the "Integrations" section.
|
||||
The configuration should also be done in the General Settings under the "Integrations" section.
|
||||
|
||||
.. image:: onsip/onsip02.png
|
||||
:align: center
|
||||
|
@ -18,12 +18,12 @@ warehouse.
|
||||
Points to be Considered while Implementing Drop-Shipping
|
||||
========================================================
|
||||
|
||||
- Use drop-shipping only for the products you can't or don't want to keep in stock.
|
||||
- Use drop-shipping only for the products you can't or don't want to keep in stock.
|
||||
One reason is that you'll always make smaller
|
||||
margins on items that are drop-shipped, so you should keep it
|
||||
only for items that take up a lot of space in your warehouse.
|
||||
|
||||
- Drop-shipping is best for niche products.
|
||||
- Drop-shipping is best for niche products.
|
||||
Chances are that products that are in high demand are being offered by large suppliers at a
|
||||
fraction of the price you'll be able to charge, so using a more
|
||||
costly shipping method won't be financially rewarding. But if
|
||||
@ -32,11 +32,11 @@ Points to be Considered while Implementing Drop-Shipping
|
||||
- To protect your customers from bad experiences.
|
||||
Test drop-shipping companies for yourself beforehand and list the best ones.
|
||||
|
||||
- Make sure time is not against you.
|
||||
- Make sure time is not against you.
|
||||
Drop-shipping should take a reasonable amount of time and surely not more than it would have taken you to handle it all by yourself. It's also nice to be able
|
||||
to provide your customers with a tracking number.
|
||||
|
||||
- Items have to be available from your supplier.
|
||||
- Items have to be available from your supplier.
|
||||
It's good to know if
|
||||
the product you're selling is available upstream. If you don't
|
||||
have that information, inform your customers that you don't hold
|
||||
|
@ -38,7 +38,7 @@ goods in output and then deliver (3 steps)* for *Outgoing Shipments*.
|
||||
:align: center
|
||||
|
||||
Activating this option will lead to the creation of two new locations,
|
||||
*Output* and *Packing Zone*. If you want to rename it go to :menuselection:`Inventory -->
|
||||
*Output* and *Packing Zone*. If you want to rename it go to :menuselection:`Inventory -->
|
||||
Configuration --> Locations`, *Select* the one you want to rename and update its name.
|
||||
|
||||
Create a Sales Order
|
||||
|
@ -19,7 +19,7 @@ provide a mechanism to chain different actions together. In this case,
|
||||
we will chain the picking step to the shipping step.
|
||||
|
||||
To allow *multi-step routes*, go to :menuselection:`Inventory --> Configuration --> Settings` and
|
||||
activate the option. Note that activating *Multi-Step Routes* will also
|
||||
activate the option. Note that activating *Multi-Step Routes* will also
|
||||
activate *Storage Locations*.
|
||||
|
||||
.. image:: two_steps/two_steps_01.png
|
||||
@ -28,7 +28,7 @@ activate *Storage Locations*.
|
||||
Warehouse configuration
|
||||
=======================
|
||||
|
||||
Once *Multi-Step Routes* has been activated, you can go to :menuselection:`Inventory -->
|
||||
Once *Multi-Step Routes* has been activated, you can go to :menuselection:`Inventory -->
|
||||
Configuration --> Warehouse` and enter the warehouse which will use
|
||||
delivery in 2 steps. You can then select the option *Send goods in
|
||||
output and then deliver (2 steps)* for Outgoing Shipments.
|
||||
|
@ -43,10 +43,10 @@ on the dashboard, you can click the *1 TO PROCESS* button under the
|
||||
|
||||
Now, enter the picking that you want to process. You will be able to
|
||||
click on *Validate* to complete the move directly as products coming
|
||||
from suppliers are considered as being always available.
|
||||
from suppliers are considered as being always available.
|
||||
|
||||
.. note::
|
||||
If you have :guilabel:`Storage Locations` activated, you can click the hamburger menu next to
|
||||
If you have :guilabel:`Storage Locations` activated, you can click the hamburger menu next to
|
||||
the :guilabel:`Done quantity` to specify the location(s) where you are storing the received
|
||||
product(s).
|
||||
|
||||
|
@ -7,20 +7,20 @@ chain, it only makes sense that we assess the quality of the products received f
|
||||
To do so, we will add a quality control step.
|
||||
|
||||
Odoo uses routes to define how to handle the different receipt steps.
|
||||
Configuration of those routes is done at the warehouse level. By default, the reception is a
|
||||
Configuration of those routes is done at the warehouse level. By default, the reception is a
|
||||
one-step process, but it can also be configured to have two-steps or three-steps processes.
|
||||
|
||||
The three-steps flow works as follows: you receive the goods in your receiving area, then transfer
|
||||
them into a quality area for quality control (QC). When the quality check is completed, the goods
|
||||
The three-steps flow works as follows: you receive the goods in your receiving area, then transfer
|
||||
them into a quality area for quality control (QC). When the quality check is completed, the goods
|
||||
that match the QC requirements are moved to stock
|
||||
|
||||
Activate Multi-Step Routes
|
||||
==========================
|
||||
|
||||
The first step is to allow the use of *Multi-Step Routes*. Routes provide a mechanism to chain different
|
||||
The first step is to allow the use of *Multi-Step Routes*. Routes provide a mechanism to chain different
|
||||
actions together. In this case, we will chain the picking step to the shipping step.
|
||||
|
||||
To enable *Multi-Step Routes*, go to :menuselection:`Inventory --> Configuration --> Settings` and
|
||||
To enable *Multi-Step Routes*, go to :menuselection:`Inventory --> Configuration --> Settings` and
|
||||
activate the option.
|
||||
|
||||
.. image:: three_steps/three_steps_01.png
|
||||
@ -34,22 +34,22 @@ activate the option.
|
||||
Configure warehouse for receipt in 3-steps
|
||||
==========================================
|
||||
|
||||
Once *Multi-Step Routes* has been activated, go to :menuselection:`Inventory --> Configuration -->
|
||||
Warehouse` and enter the warehouse which should work with the 3-steps reception. Then, select
|
||||
Once *Multi-Step Routes* has been activated, go to :menuselection:`Inventory --> Configuration -->
|
||||
Warehouse` and enter the warehouse which should work with the 3-steps reception. Then, select
|
||||
*Receive goods in input, then quality and then stock (3 steps)* for *Incoming Shipments*.
|
||||
|
||||
.. image:: three_steps/three_steps_02.png
|
||||
:align: center
|
||||
:alt: View of the incoming shipment strategy to choose to receive goods in three steps
|
||||
|
||||
Activating this option leads to the creation of two new locations: *Input* and *Quality Control*.
|
||||
Activating this option leads to the creation of two new locations: *Input* and *Quality Control*.
|
||||
To rename them, go to :menuselection:`Inventory --> Configuration --> Locations` and select
|
||||
the one you want to rename.
|
||||
|
||||
Create a Purchase Order
|
||||
=======================
|
||||
|
||||
To start the 3-steps reception process, create a *Request for Quotation* from the *Purchase* app,
|
||||
To start the 3-steps reception process, create a *Request for Quotation* from the *Purchase* app,
|
||||
add some storable products to it and confirm. Then, three pickings are created with your *Purchase
|
||||
Order* as the source document:
|
||||
|
||||
@ -68,25 +68,25 @@ Order* as the source document:
|
||||
Process the receipt, quality control and entry in stock
|
||||
=======================================================
|
||||
|
||||
As the receipt operation is the first one to be processed, it has a *Ready* status while the others
|
||||
As the receipt operation is the first one to be processed, it has a *Ready* status while the others
|
||||
are *Waiting Another Operation*.
|
||||
|
||||
To access the receipt operation, click on the button from the *Purchase Order* or go back to the
|
||||
To access the receipt operation, click on the button from the *Purchase Order* or go back to the
|
||||
*Inventory* app dashboard and click on *Receipts*.
|
||||
|
||||
.. image:: three_steps/three_steps_04.png
|
||||
:align: center
|
||||
:alt: View of the button to click to see the receipts that need to be processed
|
||||
|
||||
In the receipt order, products are always considered available because they come from the supplier.
|
||||
In the receipt order, products are always considered available because they come from the supplier.
|
||||
Then, the receipt can be validated.
|
||||
|
||||
.. image:: three_steps/three_steps_05.png
|
||||
:align: center
|
||||
:alt: View of the move (internal transfer) from the reception area to the warehouse input area
|
||||
|
||||
Once the receipt has been validated, the transfer to quality becomes *Ready*. And, because the documents
|
||||
are chained to each other, products previously received are automatically reserved on the
|
||||
Once the receipt has been validated, the transfer to quality becomes *Ready*. And, because the documents
|
||||
are chained to each other, products previously received are automatically reserved on the
|
||||
transfer. Then, the transfer can be directly validated.
|
||||
|
||||
.. image:: three_steps/three_steps_06.png
|
||||
@ -97,7 +97,7 @@ transfer. Then, the transfer can be directly validated.
|
||||
:align: center
|
||||
:alt: View of the move (internal transfer) from the input area to the quality control area
|
||||
|
||||
Now, the transfer that enters the products to stock is *Ready*. Here, it is again ready to be
|
||||
Now, the transfer that enters the products to stock is *Ready*. Here, it is again ready to be
|
||||
validated in order to transfer the products to your stock location.
|
||||
|
||||
.. image:: three_steps/three_steps_08.png
|
||||
|
@ -40,7 +40,7 @@ After that, the different transfers that needed to be included in the batch tran
|
||||
to the batch transfer
|
||||
|
||||
To see the products to pick for the different transfers, click on
|
||||
*Select*. If *Multi-locations* has been activated, the document also shows the locations they have
|
||||
*Select*. If *Multi-locations* has been activated, the document also shows the locations they have
|
||||
been reserved from.
|
||||
|
||||
.. image:: batch_transfers/batch_transfers_05.png
|
||||
@ -77,12 +77,12 @@ too.
|
||||
:align: center
|
||||
:alt: View of an in progress batch transfer
|
||||
|
||||
In case all the products cannot be picked, you can create backorders for each individual transfer
|
||||
In case all the products cannot be picked, you can create backorders for each individual transfer
|
||||
which couldn’t be completely processed.
|
||||
|
||||
.. image:: batch_transfers/batch_transfers_09.png
|
||||
:align: center
|
||||
:alt: How to handle batch transfers with unavailable products. Creation of a backorder inside
|
||||
:alt: How to handle batch transfers with unavailable products. Creation of a backorder inside
|
||||
of a batch transfer
|
||||
|
||||
.. image:: batch_transfers/batch_transfers_10.png
|
||||
|
@ -9,7 +9,7 @@ delivery strategies.
|
||||
Terminology
|
||||
===========
|
||||
|
||||
Minimum stock rule
|
||||
Minimum stock rule
|
||||
-------------------
|
||||
|
||||
Minimum Stock rules are used to ensure that you always have the minimum
|
||||
@ -54,7 +54,7 @@ the "Inventory submenu", do not forget to select a supplier.
|
||||
Don't forget to select the right product type. A consumable
|
||||
can not be stocked and will thus not be accounted for in the stock valuation.
|
||||
|
||||
Make to Order
|
||||
Make to Order
|
||||
--------------
|
||||
|
||||
The Make to Order configuration is available on your product form
|
||||
|
@ -40,8 +40,8 @@ can decide to separate the quantity into two different packages. It then
|
||||
allows you to have a report with the quantity of products for each
|
||||
package.
|
||||
|
||||
To separate a delivery into different packages you will have to set the
|
||||
done quantity to the desired package quantity then click on "PUT IN
|
||||
To separate a delivery into different packages you will have to set the
|
||||
done quantity to the desired package quantity then click on "PUT IN
|
||||
PACK", do this for each package.
|
||||
|
||||
.. image:: usage/usage_05.png
|
||||
|
@ -25,7 +25,7 @@ options available. Each of them is explained in detail below.
|
||||
|
||||
.. rst-class:: alternatives doc-aside
|
||||
|
||||
Standard Price
|
||||
Standard Price
|
||||
.. rst-class:: values-table
|
||||
|
||||
.. list-table::
|
||||
@ -110,7 +110,7 @@ Average Price
|
||||
- +2*€6
|
||||
- €36
|
||||
|
||||
In **AVCO (Average Cost)**, each product has the same value and this
|
||||
In **AVCO (Average Cost)**, each product has the same value and this
|
||||
value is the average purchase cost of the product. With this costing method, the
|
||||
cost of the product is recomputed as each receipt.
|
||||
|
||||
@ -157,14 +157,14 @@ FIFO
|
||||
- €44
|
||||
|
||||
In **FIFO (First In First Out)**, the products are valued at their
|
||||
purchase cost. When a product leaves the stock, that’s the “First in,
|
||||
purchase cost. When a product leaves the stock, that’s the “First in,
|
||||
first out” rule that applies.
|
||||
|
||||
Pay attention, that this is a financial FIFO. The first value “in”
|
||||
|
||||
Pay attention, that this is a financial FIFO. The first value “in”
|
||||
is the first value “out”, no matter the storage location, warehouse
|
||||
or serial number.
|
||||
|
||||
FIFO is advised if you manage all your workflows into Odoo (Sales,
|
||||
FIFO is advised if you manage all your workflows into Odoo (Sales,
|
||||
Purchases, Inventory). It suits any kind of users.
|
||||
|
||||
Inventory Valuation: Manual or Automated
|
||||
@ -179,7 +179,7 @@ your accounting mode: it can be continental or anglo-saxon. In
|
||||
continental accounting, the cost of a good is taken into account as soon
|
||||
as the product is received in stock. In anglo-saxon accounting, the cost
|
||||
of a good is only recorded as an expense when this good is invoiced to a
|
||||
final customer. In the tables below, you can easily compare those two
|
||||
final customer. In the tables below, you can easily compare those two
|
||||
accounting modes.
|
||||
|
||||
Usually, based on your country, the correct accounting mode will be
|
||||
@ -195,8 +195,8 @@ on your accounting books. Periodically, you create a manual journal
|
||||
entry representing the value of what you have in stock. To know that
|
||||
value, go in :menuselection:`Inventory --> Reporting --> Inventory Valuation`.
|
||||
|
||||
This is the default configuration in Odoo and it works
|
||||
out-of-the-box. Check following operations and find out how
|
||||
This is the default configuration in Odoo and it works
|
||||
out-of-the-box. Check following operations and find out how
|
||||
Odoo is managing the accounting postings.
|
||||
|
||||
Continental Accounting
|
||||
@ -248,11 +248,11 @@ Manufacturing Orders
|
||||
|
||||
<hr style="float: none; visibility: hidden; margin: 0;">
|
||||
|
||||
At the end of the month/year, your company does a physical inventory
|
||||
At the end of the month/year, your company does a physical inventory
|
||||
or just relies on the inventory in Odoo to value the stock into your books.
|
||||
|
||||
Create a journal entry to move the stock variation value from your
|
||||
Profit&Loss section to your assets.
|
||||
Create a journal entry to move the stock variation value from your
|
||||
Profit&Loss section to your assets.
|
||||
|
||||
.. h:div:: doc-aside
|
||||
|
||||
@ -261,13 +261,13 @@ Profit&Loss section to your assets.
|
||||
===================================== ===== ======
|
||||
\ Debit Credit
|
||||
===================================== ===== ======
|
||||
Assets: Inventory X
|
||||
Expenses: Inventory Variations X
|
||||
Assets: Inventory X
|
||||
Expenses: Inventory Variations X
|
||||
===================================== ===== ======
|
||||
|
||||
If the stock value decreased, the **Inventory** account is credited
|
||||
and the **Inventory Variations** debited.
|
||||
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<hr style="float: none; visibility: hidden; margin: 0;">
|
||||
@ -289,7 +289,7 @@ Vendor Bill
|
||||
============================= ===== ======
|
||||
|
||||
Configuration:
|
||||
* Purchased Goods: defined on the product or on the internal category of related product
|
||||
* Purchased Goods: defined on the product or on the internal category of related product
|
||||
(Expense Account field)
|
||||
* Deferred Tax Assets: defined on the tax used on the purchase order line
|
||||
* Accounts Payable: defined on the vendor related to the bill
|
||||
@ -307,7 +307,7 @@ Customer Invoice
|
||||
===================================== ===== ======
|
||||
|
||||
Configuration:
|
||||
* Revenues: defined on the product or on the internal category of related
|
||||
* Revenues: defined on the product or on the internal category of related
|
||||
product (Income Account field)
|
||||
* Deferred Tax Liabilities: defined on the tax used on the invoice line
|
||||
* Accounts Receivable: defined on the customer (Receivable Account)
|
||||
@ -322,11 +322,11 @@ Manufacturing Orders
|
||||
.. raw:: html
|
||||
|
||||
<hr style="float: none; visibility: hidden; margin: 0;">
|
||||
|
||||
At the end of the month/year, your company does a physical inventory
|
||||
|
||||
At the end of the month/year, your company does a physical inventory
|
||||
or just relies on the inventory in Odoo to value the stock into your books.
|
||||
|
||||
Then you need to break down the purchase balance into both the inventory and
|
||||
Then you need to break down the purchase balance into both the inventory and
|
||||
the cost of goods sold using the following formula:
|
||||
|
||||
Cost of goods sold (COGS) = Starting inventory value + Purchases – Closing inventory value
|
||||
@ -340,10 +340,10 @@ To update the stock valuation in your books, record such an entry:
|
||||
===================================== ===== ======
|
||||
\ Debit Credit
|
||||
===================================== ===== ======
|
||||
Assets: Inventory (closing value) X
|
||||
Assets: Inventory (closing value) X
|
||||
Expenses: Cost of Good Sold X
|
||||
Expenses: Purchased Goods X
|
||||
Assets: Inventory (starting value) X
|
||||
Assets: Inventory (starting value) X
|
||||
===================================== ===== ======
|
||||
|
||||
Automated Inventory Valuation
|
||||
@ -370,19 +370,19 @@ Continental Accounting
|
||||
<hr style="float: none; visibility: hidden; margin: 0;">
|
||||
|
||||
.. h:div:: doc-aside
|
||||
|
||||
|
||||
**Configuration:**
|
||||
|
||||
- Accounts Receivable/Payable: defined on the partner (Accounting tab)
|
||||
|
||||
- Deferred Tax Assets/Liabilities: defined on the tax used on the invoice line
|
||||
|
||||
- Revenues/Expenses: defined by default on product's internal category; can be
|
||||
- Revenues/Expenses: defined by default on product's internal category; can be
|
||||
also set in product form (Accounting tab) as a replacement value.
|
||||
|
||||
- Inventory Variations: to set as Stock Input/Output Account in product's internal
|
||||
- Inventory Variations: to set as Stock Input/Output Account in product's internal
|
||||
category
|
||||
|
||||
|
||||
- Inventory: to set as Stock Valuation Account in product's internal category
|
||||
|
||||
Anglo-Saxon Accounting
|
||||
@ -402,7 +402,7 @@ Anglo-Saxon Accounting
|
||||
|
||||
- Accounts Receivable/Payable: defined on the partner (Accounting tab)
|
||||
|
||||
- Deferred Tax Assets/Liabilities: defined on the tax used on the
|
||||
- Deferred Tax Assets/Liabilities: defined on the tax used on the
|
||||
invoice line
|
||||
|
||||
- Revenues: defined on the product category as a default, or specifically
|
||||
@ -412,13 +412,13 @@ Anglo-Saxon Accounting
|
||||
Defined on the product category as a default value, or specifically on
|
||||
the product form.
|
||||
|
||||
- Goods Received Not Purchased: to set as Stock Input Account in product's
|
||||
- Goods Received Not Purchased: to set as Stock Input Account in product's
|
||||
internal category
|
||||
|
||||
- Goods Issued Not Invoiced: to set as Stock Output Account in product's
|
||||
- Goods Issued Not Invoiced: to set as Stock Output Account in product's
|
||||
internal category
|
||||
|
||||
- Inventory: to set as Stock Valuation Account in product's internal category
|
||||
|
||||
- Price Difference: to set in product's internal category or in product
|
||||
- Price Difference: to set in product's internal category or in product
|
||||
form as a specific replacement value
|
||||
|
@ -23,7 +23,7 @@ Now, you have to make sure that the main stock locations of warehouse A and ware
|
||||
Sell a product from the virtual warehouse
|
||||
==========================================
|
||||
|
||||
Let’s say you have two products, one stored in warehouse A and one stored in warehouse B. Now, you can create a new quotation for one of each product. Go to other information and choose Warehouse A+B in the shipping information.
|
||||
Let’s say you have two products, one stored in warehouse A and one stored in warehouse B. Now, you can create a new quotation for one of each product. Go to other information and choose Warehouse A+B in the shipping information.
|
||||
|
||||
.. image:: stock_warehouses/ware3.png
|
||||
:align: center
|
||||
|
@ -24,8 +24,8 @@ through all these locations, which also trigger all the route's rules.
|
||||
:align: center
|
||||
:alt: view of a generic warehouse with stock and quality control area
|
||||
|
||||
In this example, vendor trucks unload pallets of ordered goods at receiving docks.
|
||||
Operators then scan the products in the receiving area. Some of these products are sent to a
|
||||
In this example, vendor trucks unload pallets of ordered goods at receiving docks.
|
||||
Operators then scan the products in the receiving area. Some of these products are sent to a
|
||||
quality control area (those devoted to being used during the manufacturing process, for
|
||||
example), while others are directly stored in their respective locations.
|
||||
|
||||
@ -70,7 +70,7 @@ Area* is created.
|
||||
|
||||
.. note::
|
||||
All these transfers are pre-generated by Odoo, starting from the end and going backwards.
|
||||
While working, the operator process these transfers in the opposite order: first the picking,
|
||||
While working, the operator process these transfers in the opposite order: first the picking,
|
||||
then the packing, then the delivery order.
|
||||
|
||||
Push Rules
|
||||
@ -150,7 +150,7 @@ Configuration --> Routes` to see the routes Odoo generated for you.
|
||||
:align: center
|
||||
:alt: view of all the preconfigured routes Odoo offers
|
||||
|
||||
Opening one of those routes allows you to see on what you can apply the route.
|
||||
Opening one of those routes allows you to see on what you can apply the route.
|
||||
Here, all the selected product categories in the
|
||||
*YourCompany* warehouse are set up to follow the 3-steps route.
|
||||
|
||||
@ -158,7 +158,7 @@ Here, all the selected product categories in the
|
||||
:align: center
|
||||
:alt: view of a route example applicable on category and warehouse
|
||||
|
||||
Easier for many businesses, this process might not fit yours. Thus,
|
||||
Easier for many businesses, this process might not fit yours. Thus,
|
||||
you can configure custom routes in which you can define your own
|
||||
rules, but also the source and destination location of each action. As
|
||||
an example, here are the rules for the pre-configured route.
|
||||
@ -245,7 +245,7 @@ Rules
|
||||
~~~~~
|
||||
|
||||
The rules are to be defined on the routes. To do so, go to
|
||||
:menuselection:`Inventory --> Configuration --> Routes`, then to the *Rules* section,
|
||||
:menuselection:`Inventory --> Configuration --> Routes`, then to the *Rules* section,
|
||||
and click on *Add a line* button.
|
||||
|
||||
.. image:: use-routes/add-new-rules.png
|
||||
@ -267,8 +267,8 @@ all of them:
|
||||
those products to the destination location.
|
||||
- **Pull & Push**: this rule allows generating pickings in the two
|
||||
situations explained above. This means that when products are
|
||||
required at a specific location, a transfer is created from the previous location to fulfill
|
||||
that need. This creates a need in the previous location and a rule is triggered to fulfill
|
||||
required at a specific location, a transfer is created from the previous location to fulfill
|
||||
that need. This creates a need in the previous location and a rule is triggered to fulfill
|
||||
it. Once the second need is fulfilled, the products are pushed to the destination location and all the
|
||||
needs are fulfilled.
|
||||
- **Buy**: when products are needed at the destination location, a
|
||||
@ -301,7 +301,7 @@ the source location:
|
||||
In the *Scheduling* section, you can determine how Odoo behaves when
|
||||
one of the chain's pickings is rescheduled. In case you decide to
|
||||
**Propagate Rescheduling**, the next move is also to be rescheduled.
|
||||
If you prefer having the choice to reschedule the next move,
|
||||
If you prefer having the choice to reschedule the next move,
|
||||
you can decide to receive an alert in the form of a
|
||||
*next activity*.
|
||||
|
||||
|
@ -18,7 +18,7 @@ In the *Inventory* app, go to :menuselection:`Configuration --> Settings` and ac
|
||||
Setting up a Putaway Rule
|
||||
==========================
|
||||
|
||||
In some cases, like for a retail shop storing vegetables and fruits, we have to store products in different locations to maintain product quality.
|
||||
In some cases, like for a retail shop storing vegetables and fruits, we have to store products in different locations to maintain product quality.
|
||||
|
||||
Let’s suppose there are one warehouse location *WH/Stock* and two sub-locations *WH/Stock/Vegetables* and *WH/Stock/Fruits*.
|
||||
|
||||
|
@ -2,36 +2,36 @@
|
||||
What is a Removal Strategy (FIFO, LIFO, and FEFO)?
|
||||
==================================================
|
||||
|
||||
Usually, *Removal Strategies* are defined in picking operations to select the best products to
|
||||
optimize the distance for the worker, for quality control purposes, or to first move the products
|
||||
Usually, *Removal Strategies* are defined in picking operations to select the best products to
|
||||
optimize the distance for the worker, for quality control purposes, or to first move the products
|
||||
with the closest expiration date.
|
||||
|
||||
When a product movement needs to be done, Odoo finds available products that can be assigned to
|
||||
the transfer. The way Odoo assigns these products depends on the *Removal Strategy* defined in
|
||||
When a product movement needs to be done, Odoo finds available products that can be assigned to
|
||||
the transfer. The way Odoo assigns these products depends on the *Removal Strategy* defined in
|
||||
the *Product Category* or on the *Location*.
|
||||
|
||||
What happens inside the warehouse?
|
||||
==================================
|
||||
|
||||
Imagine a generic warehouse plan, with receiving docks and area, storage locations, picking and
|
||||
packing areas, and shipping docks. All products go through all these locations, but some rules,
|
||||
Imagine a generic warehouse plan, with receiving docks and area, storage locations, picking and
|
||||
packing areas, and shipping docks. All products go through all these locations, but some rules,
|
||||
such as removal strategies, can have an effect on which products are taken for the pickings.
|
||||
|
||||
.. image:: removal/empty-dock.png
|
||||
:align: center
|
||||
:alt: empty stock waiting for deliveries at the docks.
|
||||
|
||||
Here, vendor trucks unload pallets of goods at the docks. Then, operators scan the products in the
|
||||
receiving area, with the receiving date and, if the product has an expiration date, the expiration
|
||||
Here, vendor trucks unload pallets of goods at the docks. Then, operators scan the products in the
|
||||
receiving area, with the receiving date and, if the product has an expiration date, the expiration
|
||||
date. After that, products are stored in their respective locations.
|
||||
|
||||
.. image:: removal/entering-stocks.png
|
||||
:align: center
|
||||
:alt: products entering stock via the receiving area.
|
||||
|
||||
Next, several orders for the same product are made, but you didn’t receive the goods the same day
|
||||
and they don’t have the same expiration date. In that situation, you logically prefer sending those
|
||||
with the closest date first. Depending on the removal strategy you chose, Odoo generates a transfer
|
||||
Next, several orders for the same product are made, but you didn’t receive the goods the same day
|
||||
and they don’t have the same expiration date. In that situation, you logically prefer sending those
|
||||
with the closest date first. Depending on the removal strategy you chose, Odoo generates a transfer
|
||||
with the products fitting your settings the best.
|
||||
|
||||
.. image:: removal/packing-products.png
|
||||
@ -47,62 +47,62 @@ How does it work?
|
||||
First In, First Out (FIFO)
|
||||
--------------------------
|
||||
|
||||
When using a **First In, First Out** strategy, a demand for some products triggers a removal rule
|
||||
When using a **First In, First Out** strategy, a demand for some products triggers a removal rule
|
||||
which requests a transfer for the lot/serial number that has entered your stock the first.
|
||||
|
||||
To be clearer, let’s imagine that you have three lots of nails in your warehouse. Those three have
|
||||
the following lot numbers: 00001, 00002, 00003, each with 5 nails boxes in it. 00001 entered the
|
||||
stock on the 23rd of May, 00002 on the 25th of May, and 00003 on the 1st of June. A customer orders
|
||||
you 6 boxes on the 11th of June. With the *FIFO* strategy selected, a transfer is requested for the
|
||||
five boxes of 00001 and one of the boxes in 00002 because 00001 has entered your stock before the
|
||||
To be clearer, let’s imagine that you have three lots of nails in your warehouse. Those three have
|
||||
the following lot numbers: 00001, 00002, 00003, each with 5 nails boxes in it. 00001 entered the
|
||||
stock on the 23rd of May, 00002 on the 25th of May, and 00003 on the 1st of June. A customer orders
|
||||
you 6 boxes on the 11th of June. With the *FIFO* strategy selected, a transfer is requested for the
|
||||
five boxes of 00001 and one of the boxes in 00002 because 00001 has entered your stock before the
|
||||
others. The box from 00002 is taken because it has the oldest enter date after 00001.
|
||||
|
||||
So, for every order of a product with the *FIFO* strategy selected, Odoo requests a transfer for the
|
||||
So, for every order of a product with the *FIFO* strategy selected, Odoo requests a transfer for the
|
||||
good that has been in your stock for the longest period.
|
||||
|
||||
Last In, First Out (LIFO)
|
||||
-------------------------
|
||||
|
||||
The same way as for FIFO, the **Last In, First Out** strategy is based on moving products based on the
|
||||
date they entered the stock. Here, a demand for some products triggers a removal rule that requests a
|
||||
The same way as for FIFO, the **Last In, First Out** strategy is based on moving products based on the
|
||||
date they entered the stock. Here, a demand for some products triggers a removal rule that requests a
|
||||
transfer for the lot/serial number that has entered your stock the last.
|
||||
|
||||
To better understand, let’s imagine three lots of screws in your warehouse. Those three have the
|
||||
following numbers: 10001, 10002, 10003, each with 10 screw boxes in it. 10001 has entered the stock
|
||||
on the 1st of June, 10002 on the 3rd of June, and 10003 on the 6th of June. A customer orders
|
||||
7 boxes on the 8th of June. With the *LIFO* strategy selected, a transfer is requested for seven
|
||||
To better understand, let’s imagine three lots of screws in your warehouse. Those three have the
|
||||
following numbers: 10001, 10002, 10003, each with 10 screw boxes in it. 10001 has entered the stock
|
||||
on the 1st of June, 10002 on the 3rd of June, and 10003 on the 6th of June. A customer orders
|
||||
7 boxes on the 8th of June. With the *LIFO* strategy selected, a transfer is requested for seven
|
||||
boxes of 10003 because that lot is the last one to have entered the stock.
|
||||
|
||||
So, basically, for every order of a product with the *LIFO* strategy used, a transfer for the last
|
||||
So, basically, for every order of a product with the *LIFO* strategy used, a transfer for the last
|
||||
one to have entered the stock is requested.
|
||||
|
||||
.. note::
|
||||
This strategy is banned in many countries and can lead to only have old or obsolete products
|
||||
This strategy is banned in many countries and can lead to only have old or obsolete products
|
||||
in your stock.
|
||||
|
||||
First Expire, First Out (FEFO)
|
||||
------------------------------
|
||||
|
||||
The **First Expire, First Out** strategy is a bit different from the two others. Here, it is the
|
||||
The **First Expire, First Out** strategy is a bit different from the two others. Here, it is the
|
||||
expiration date that is important and not the date the product entered the stock.
|
||||
|
||||
Let’s imagine three lots of 6-eggs boxes (in this specific case, don’t forget to use
|
||||
:doc:`units of measure <../../management/products/uom>`). Those three have the following numbers:
|
||||
20001, 20002, and 20003, each with 5 boxes in it. 20001 has entered the stock on the 1st of July
|
||||
and expires on the 15th of July, 20002 on the 2nd and expires on the 14th of July, and 20003 on
|
||||
the 4th and expires on the 21st of July. A customer orders 6 boxes on the 5th of July. With the
|
||||
*FEFO* strategy selected, a transfer is requested for the five boxes of 20002 and one from 20001.
|
||||
The transfer for all the boxes of the lot 20002 is because they have the closest expiration date.
|
||||
Let’s imagine three lots of 6-eggs boxes (in this specific case, don’t forget to use
|
||||
:doc:`units of measure <../../management/products/uom>`). Those three have the following numbers:
|
||||
20001, 20002, and 20003, each with 5 boxes in it. 20001 has entered the stock on the 1st of July
|
||||
and expires on the 15th of July, 20002 on the 2nd and expires on the 14th of July, and 20003 on
|
||||
the 4th and expires on the 21st of July. A customer orders 6 boxes on the 5th of July. With the
|
||||
*FEFO* strategy selected, a transfer is requested for the five boxes of 20002 and one from 20001.
|
||||
The transfer for all the boxes of the lot 20002 is because they have the closest expiration date.
|
||||
The transfer also requests one box from 20001 because it’s the lot that expires the sooner after 20002.
|
||||
|
||||
Then, you can remember that for every order of a product with the *FEFO* strategy, a transfer is
|
||||
Then, you can remember that for every order of a product with the *FEFO* strategy, a transfer is
|
||||
requested for the product that has the nearest expiration date from the order date.
|
||||
|
||||
Use Removal Strategies
|
||||
======================
|
||||
|
||||
To identify some units from other ones, you need to track them, either by *lot* or by *serial number*.
|
||||
To do so, go to :menuselection:`Configuration --> Settings`. Then, activate *Storage Location*,
|
||||
To identify some units from other ones, you need to track them, either by *lot* or by *serial number*.
|
||||
To do so, go to :menuselection:`Configuration --> Settings`. Then, activate *Storage Location*,
|
||||
*Multi-Steps Routes*, and *Lots & Serial Numbers*.
|
||||
|
||||
.. image:: removal/enabled-features.png
|
||||
@ -112,7 +112,7 @@ To do so, go to :menuselection:`Configuration --> Settings`. Then, activate *Sto
|
||||
.. note::
|
||||
To work with the *FEFO* strategy, activate the *Expiration Dates* feature.
|
||||
|
||||
Next, you need to define your removal strategy, on *Product Categories* via
|
||||
Next, you need to define your removal strategy, on *Product Categories* via
|
||||
:menuselection:`Inventory --> Configuration --> Product Categories`.
|
||||
|
||||
.. image:: removal/first-in-first-out.png
|
||||
@ -122,23 +122,23 @@ Next, you need to define your removal strategy, on *Product Categories* via
|
||||
FIFO (First In, First Out)
|
||||
--------------------------
|
||||
|
||||
As said, a *FIFO* strategy implies that products stocked first move out first. Companies should use
|
||||
that method if they are selling products with short demand cycles, such as clothes, and to ensure
|
||||
As said, a *FIFO* strategy implies that products stocked first move out first. Companies should use
|
||||
that method if they are selling products with short demand cycles, such as clothes, and to ensure
|
||||
they are not stuck with outdated styles in stock.
|
||||
|
||||
For this example, we created three lots of white shirts. Those are from the All/Clothes category,
|
||||
where we put *FIFO* as the removal strategy. In our stock location (WH/Stock), we now find the
|
||||
For this example, we created three lots of white shirts. Those are from the All/Clothes category,
|
||||
where we put *FIFO* as the removal strategy. In our stock location (WH/Stock), we now find the
|
||||
three lots available.
|
||||
|
||||
.. image:: removal/inventory-valuation.png
|
||||
:align: center
|
||||
:alt: view of the white shirt lots inventory valuation.
|
||||
|
||||
The lot 000001 contains 5 shirts, 000002 contains 3 shirts, and 000003 contains 2. As it can be
|
||||
seen above, 000001 has entered the stock first. Let’s create a sale order of six white shirts
|
||||
The lot 000001 contains 5 shirts, 000002 contains 3 shirts, and 000003 contains 2. As it can be
|
||||
seen above, 000001 has entered the stock first. Let’s create a sale order of six white shirts
|
||||
to check that products from that lot are the first ones to move out.
|
||||
|
||||
On the delivery order linked to the picking, you can see that the oldest lot numbers have been
|
||||
On the delivery order linked to the picking, you can see that the oldest lot numbers have been
|
||||
reserved thanks to the *FIFO* strategy.
|
||||
|
||||
.. image:: removal/reserved-lots-FIFO.png
|
||||
@ -148,18 +148,18 @@ reserved thanks to the *FIFO* strategy.
|
||||
LIFO (Last In, First Out)
|
||||
-------------------------
|
||||
|
||||
With a *LIFO* strategy, that’s quite the opposite. In fact, the products that are brought the
|
||||
With a *LIFO* strategy, that’s quite the opposite. In fact, the products that are brought the
|
||||
last move out the first. It is mostly used in case of products without a shelf life.
|
||||
|
||||
Even if our white shirts are clothes, we can say that they are timeless. So, let’s use them to
|
||||
test our *LIFO* strategy. Once again, open the product category via :menuselection:`Inventory
|
||||
Even if our white shirts are clothes, we can say that they are timeless. So, let’s use them to
|
||||
test our *LIFO* strategy. Once again, open the product category via :menuselection:`Inventory
|
||||
--> Configuration --> Product Categories` and change the removal strategy to *LIFO*.
|
||||
|
||||
.. image:: removal/last-in-first-out.png
|
||||
:align: center
|
||||
:alt: last in first out strategy set up as forced removal strategy.
|
||||
|
||||
Now, create a sale order for 4 white shirts and check that the reserved products are from lots
|
||||
Now, create a sale order for 4 white shirts and check that the reserved products are from lots
|
||||
000003 and 000002.
|
||||
|
||||
.. image:: removal/reserved-lots-LIFO.png
|
||||
@ -172,29 +172,29 @@ Now, create a sale order for 4 white shirts and check that the reserved products
|
||||
FEFO (First Expiry, First Out)
|
||||
------------------------------
|
||||
|
||||
With the *FEFO* strategy, the way products are picked is not based on the reception date. In this
|
||||
With the *FEFO* strategy, the way products are picked is not based on the reception date. In this
|
||||
particular case, they are dispatched according to their expiration date.
|
||||
|
||||
.. note::
|
||||
To have more information about Expiration date, please have a look at
|
||||
To have more information about Expiration date, please have a look at
|
||||
:doc:`the related doc <../../management/lots_serial_numbers/expiration_dates>`.
|
||||
|
||||
By activating *Expiration Dates*, it becomes possible to define different dates on the serial/lot
|
||||
numbers to be used in *FEFO*. These dates can be set by going to :menuselection:`Inventory -->
|
||||
By activating *Expiration Dates*, it becomes possible to define different dates on the serial/lot
|
||||
numbers to be used in *FEFO*. These dates can be set by going to :menuselection:`Inventory -->
|
||||
Master Data --> Lots/Serial Numbers`.
|
||||
|
||||
.. image:: removal/removal-date.png
|
||||
:align: center
|
||||
:alt: view of the removal date for 0000001.
|
||||
|
||||
Lots are picked based on their removal date, from earliest to latest. Lots without a removal date
|
||||
Lots are picked based on their removal date, from earliest to latest. Lots without a removal date
|
||||
defined are picked after lots with removal dates.
|
||||
|
||||
.. note::
|
||||
Other dates are for informational and reporting purposes only. If not removed from the stock,
|
||||
Other dates are for informational and reporting purposes only. If not removed from the stock,
|
||||
lots that are past the expiration dates may still be picked for delivery orders!
|
||||
|
||||
To use the *FEFO* strategy, once again go to :menuselection:`Inventory --> Configuration -->
|
||||
To use the *FEFO* strategy, once again go to :menuselection:`Inventory --> Configuration -->
|
||||
Product Categories` and choose *FEFO* as the *Force Removal Strategy*.
|
||||
|
||||
.. image:: removal/first-expiry-first-out.png
|
||||
@ -213,8 +213,8 @@ For this particular case, let’s use hand cream. As usual, we have three lots o
|
||||
| 0000003 | Hand Cream | 10/31/2019 |
|
||||
+-----------------------+---------------+-----------------------+
|
||||
|
||||
When we realize a sale for 25 units of Hand Cream, we can see that the lot numbers which have been
|
||||
automatically reserved by Odoo are the ones with the closest expiration date, meaning 0000001 and
|
||||
When we realize a sale for 25 units of Hand Cream, we can see that the lot numbers which have been
|
||||
automatically reserved by Odoo are the ones with the closest expiration date, meaning 0000001 and
|
||||
0000003.
|
||||
|
||||
.. image:: removal/reserved-hand-cream.png
|
||||
|
@ -14,7 +14,7 @@ the destination.
|
||||
|
||||
You can easily cancel the request made to the carrier system.
|
||||
|
||||
How to cancel a shipping request?
|
||||
How to cancel a shipping request?
|
||||
=================================
|
||||
|
||||
- If the delivery order is not **Validated**, then the request hasn't been
|
||||
@ -36,7 +36,7 @@ You will now see that the shipment has been cancelled.
|
||||
|
||||
You can now change the carrier if you wish.
|
||||
|
||||
How to send a shipping request after cancelling one?
|
||||
How to send a shipping request after cancelling one?
|
||||
====================================================
|
||||
|
||||
After cancelling the shipping request, you can change the carrier you
|
||||
|
@ -81,7 +81,7 @@ Open the products you want to ship and set a weight on it.
|
||||
Don't forget to do the conversion if you are used to the imperial
|
||||
measurement system.
|
||||
|
||||
How to print shipping labels ?
|
||||
How to print shipping labels ?
|
||||
===============================
|
||||
|
||||
The delivery order created from the sale order will take the shipping
|
||||
|
@ -13,7 +13,7 @@ Configuration
|
||||
=============
|
||||
|
||||
To configure the use of packages, go to the menu
|
||||
:menuselection:`Inventory --> Configuration --> Settings`.
|
||||
:menuselection:`Inventory --> Configuration --> Settings`.
|
||||
Locate the **Packages** section and tick **Record
|
||||
packages used on packing: pallets, boxes,...**
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
===============================
|
||||
How to setup a delivery method?
|
||||
How to setup a delivery method?
|
||||
===============================
|
||||
|
||||
Overview
|
||||
@ -33,7 +33,7 @@ order to see it :
|
||||
Configure the delivery method
|
||||
-----------------------------
|
||||
|
||||
To configure your delivery methods, go to the **Inventory** module,
|
||||
To configure your delivery methods, go to the **Inventory** module,
|
||||
click on :menuselection:`Configuration --> Delivery Methods`.
|
||||
|
||||
First set a name and a transporter company.
|
||||
@ -65,9 +65,9 @@ feature limits the list of countries on your e-commerce.
|
||||
.. image:: delivery_method/setup02.png
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
.. note::
|
||||
You can integrate Odoo with external shippers in order to compute the
|
||||
real price and packagings, and handle the printing the shipping labels.
|
||||
real price and packagings, and handle the printing the shipping labels.
|
||||
See :doc:`third_party_shipper`
|
||||
|
||||
Delivery process
|
||||
|
@ -16,7 +16,7 @@ Configuration
|
||||
Install the shipper company connector module
|
||||
--------------------------------------------
|
||||
|
||||
In the inventory module, click on :menuselection:`Configuration --> Settings`.
|
||||
In the inventory module, click on :menuselection:`Configuration --> Settings`.
|
||||
Under **Shipping Connectors**, flag the transportation companies you want to
|
||||
integrate :
|
||||
|
||||
@ -26,7 +26,7 @@ integrate :
|
||||
Then click on **Apply**.
|
||||
|
||||
.. note::
|
||||
If you want to integrate delivery methods in your e-commerce,
|
||||
If you want to integrate delivery methods in your e-commerce,
|
||||
you'll have to install the **eCommerce Delivery** module.
|
||||
|
||||
Configure the delivery method
|
||||
|
@ -16,15 +16,15 @@ the UPS Developer Kit API Development and Production servers.
|
||||
Create a UPS Account
|
||||
=====================
|
||||
|
||||
Note that only customers located in the US can open a UPS account online.
|
||||
If you are located outside the US, you will need to contact UPS Customer
|
||||
Note that only customers located in the US can open a UPS account online.
|
||||
If you are located outside the US, you will need to contact UPS Customer
|
||||
Service in order to to open an account.
|
||||
|
||||
You can read additional information about opening a UPS account on the
|
||||
their website, on the page,
|
||||
`How to Open a UPS Account Online <https://www.ups.com/content/us/en/resources/sri/openaccountonline.html?srch_pos=2&srch_phr=open+ups+account>`_
|
||||
You can read additional information about opening a UPS account on the
|
||||
their website, on the page,
|
||||
`How to Open a UPS Account Online <https://www.ups.com/content/us/en/resources/sri/openaccountonline.html?srch_pos=2&srch_phr=open+ups+account>`_
|
||||
|
||||
If you don't already have a UPS account, you can create one along with
|
||||
If you don't already have a UPS account, you can create one along with
|
||||
your online profile by following these steps:
|
||||
|
||||
1. Access the UPS.com web site at
|
||||
@ -34,7 +34,7 @@ at the top of the page.
|
||||
2. Click the **Register for MyUPS** button, and follow the prompts to
|
||||
complete the registration process.
|
||||
|
||||
If you already have a UPS account, you can add it to your online profile as follows:
|
||||
If you already have a UPS account, you can add it to your online profile as follows:
|
||||
|
||||
1. Log in to the `UPS.com website <http://www.ups.com/>`_) using your UPS.com User ID and Password.
|
||||
|
||||
@ -45,7 +45,7 @@ If you already have a UPS account, you can add it to your online profile as foll
|
||||
4. Click the **Add an Existing UPS Account** link in the **UPS Account Details**
|
||||
section of the page.
|
||||
|
||||
5. In the **Add New Account** screen, enter the **UPS Account Number**,
|
||||
5. In the **Add New Account** screen, enter the **UPS Account Number**,
|
||||
**Account Name**, and **Postal Code** fields. The country defaults to
|
||||
United States.q
|
||||
|
||||
|
@ -35,7 +35,7 @@ type, which is *Manufacture this Product*.
|
||||
|
||||
.. warning::
|
||||
The destination location should **not** be a scrap location. A scrap location is where you put
|
||||
products that you don't need.
|
||||
products that you don't need.
|
||||
|
||||
Using the same BoM to describe Variants
|
||||
---------------------------------------
|
||||
|
@ -18,7 +18,7 @@ produced out of raw materials “A” and “B”.
|
||||
|
||||
.. image:: subcontracting/subcontracting_01.png
|
||||
:align: center
|
||||
:alt:
|
||||
:alt:
|
||||
|
||||
With its subcontracting feature, Odoo helps you handle this flow easily.
|
||||
|
||||
@ -30,7 +30,7 @@ To use the subcontracting feature, go to :menuselection:`Manufacturing
|
||||
|
||||
.. image:: subcontracting/subcontracting_02.png
|
||||
:align: center
|
||||
:alt:
|
||||
:alt:
|
||||
|
||||
To define if a product must be subcontracted, use a *Bill of Materials
|
||||
(BoM)* of type *Subcontracting*.
|
||||
@ -46,7 +46,7 @@ several subcontractors.
|
||||
|
||||
.. image:: subcontracting/subcontracting_03.png
|
||||
:align: center
|
||||
:alt:
|
||||
:alt:
|
||||
|
||||
Basic Subcontracting Flow
|
||||
=========================
|
||||
@ -58,7 +58,7 @@ a subcontractor on the *BoM*.
|
||||
|
||||
.. image:: subcontracting/subcontracting_04.png
|
||||
:align: center
|
||||
:alt:
|
||||
:alt:
|
||||
|
||||
Once the *PO* is validated (1), a pending receipt is created. When the
|
||||
products are received, validate the receipt (2), with the actual
|
||||
@ -131,14 +131,14 @@ also tracked, its serial/lot number can be registered here too.
|
||||
|
||||
.. image:: subcontracting/subcontracting_05.png
|
||||
:align: center
|
||||
:alt:
|
||||
:alt:
|
||||
|
||||
For audit purposes, it is possible to check the lot numbers recorded on
|
||||
a receipt by using the icon on the right of the finished products:
|
||||
|
||||
.. image:: subcontracting/subcontracting_06.png
|
||||
:align: center
|
||||
:alt:
|
||||
:alt:
|
||||
|
||||
Automate Replenishment of Subcontractors
|
||||
========================================
|
||||
@ -172,7 +172,7 @@ components to the subcontractor.
|
||||
|
||||
.. image:: subcontracting/subcontracting_07.png
|
||||
:align: center
|
||||
:alt:
|
||||
:alt:
|
||||
|
||||
The second approach is to use a “pull” flow. Here, the demand in the
|
||||
finished product (real demand or forecasted one through the Master
|
||||
@ -182,7 +182,7 @@ wanted components.
|
||||
|
||||
.. image:: subcontracting/subcontracting_08.png
|
||||
:align: center
|
||||
:alt:
|
||||
:alt:
|
||||
|
||||
Replenishment from another supplier
|
||||
-----------------------------------
|
||||
@ -198,7 +198,7 @@ subcontractor for the shipping.
|
||||
|
||||
.. image:: subcontracting/subcontracting_09.png
|
||||
:align: center
|
||||
:alt:
|
||||
:alt:
|
||||
|
||||
That way, the supplier can ship items directly and you simply receive
|
||||
and pay the bill. However, it is still required to validate receipts for
|
||||
@ -206,7 +206,7 @@ the subcontractor.
|
||||
|
||||
.. image:: subcontracting/subcontracting_10.png
|
||||
:align: center
|
||||
:alt:
|
||||
:alt:
|
||||
|
||||
Quality Control
|
||||
---------------
|
||||
@ -219,14 +219,14 @@ reception.
|
||||
|
||||
.. image:: subcontracting/subcontracting_11.png
|
||||
:align: center
|
||||
:alt:
|
||||
:alt:
|
||||
|
||||
To create a quality check at the receipt, open the *Quality* app and
|
||||
create a new *Control Point* on the reception.
|
||||
|
||||
.. image:: subcontracting/subcontracting_12.png
|
||||
:align: center
|
||||
:alt:
|
||||
:alt:
|
||||
|
||||
By doing so, a quality check is automatically created each time a
|
||||
finished product is received.
|
||||
|
@ -16,7 +16,7 @@ will be saved.
|
||||
|
||||
.. note::
|
||||
This process can take more than 30 minutes. Do not turn off or unplug
|
||||
the IoT Box as it would leave it in an inconsistent state.
|
||||
the IoT Box as it would leave it in an inconsistent state.
|
||||
|
||||
.. image:: flash_sdcard/flash_sdcard01.png
|
||||
:align: center
|
||||
|
@ -26,7 +26,7 @@ Before starting, make sure you have the following:
|
||||
The list of supported hardware can be found on the `POS Hardware
|
||||
page <https://www.odoo.com/page/point-of-sale-hardware>`__
|
||||
|
||||
Set Up
|
||||
Set Up
|
||||
~~~~~~~
|
||||
|
||||
To connect hardware to the PoS, the first step is to connect an IoT Box
|
||||
|
@ -8,7 +8,7 @@ connected, the screen can be used to display a :abbr:`PoS (Point of Sale)` order
|
||||
.. image:: screen/screen-pos-client-display.png
|
||||
:align: center
|
||||
:alt: An example of a PoS (point of sale) order on a screen display.
|
||||
|
||||
|
||||
.. note::
|
||||
Access the customer display from any other computer by going to the :abbr:`IoT (Internet of Things)`
|
||||
Box homepage and clicking on the :guilabel:`POS Display` button.
|
||||
@ -47,21 +47,21 @@ screen.
|
||||
:align: center
|
||||
:alt: The default "POS Client Display" screen that appears when a screen display is successfully
|
||||
connected to an IoT Box.
|
||||
|
||||
|
||||
The screen should also appear in the list of :guilabel:`Displays` on the :abbr:`IoT (Internet of
|
||||
Things)` Box homepage.
|
||||
|
||||
.. image:: screen/screen-screen-name-example.png
|
||||
:align: center
|
||||
:alt: An example of a screen display name shown on the IoT Box homepage.
|
||||
|
||||
|
||||
.. note::
|
||||
If no screen is detected, a default display named :guilabel:`Distant Display` will be used instead.
|
||||
|
||||
.. image:: screen/screen-no-screen.png
|
||||
:align: center
|
||||
:alt: The "Distant Display" screen name will be used if no screen is detected.
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
@ -78,7 +78,7 @@ Now, select :guilabel:`IoT Box` in the drop-down menu and choose the screen in t
|
||||
.. image:: screen/screen-pos-screen-config.png
|
||||
:align: center
|
||||
:alt: Connect the screen display to the Point of Sale app.
|
||||
|
||||
|
||||
The screen is now available for :abbr:`PoS (Point of Sale)` sessions. A "screen" icon will appear
|
||||
in the top bar to inform the connection status with the screen.
|
||||
|
||||
|
@ -4,7 +4,7 @@ Convert leads into opportunities
|
||||
|
||||
The system can generate leads instead of opportunities, in order to add
|
||||
a qualification step before converting a *Lead* into an
|
||||
*Opportunity* and assigning to the right sales people.
|
||||
*Opportunity* and assigning to the right sales people.
|
||||
|
||||
You can activate this mode from the CRM Settings. It applies to all your sales
|
||||
channels by default. But you can make it specific for specific channels
|
||||
@ -46,7 +46,7 @@ Merge opportunities
|
||||
Odoo will also automatically propose to merge opportunities if they have
|
||||
the same email address. When merging opportunities, Odoo merges the
|
||||
information into the opportunity which was created first, giving
|
||||
priority to the information present on the first opportunity.
|
||||
priority to the information present on the first opportunity.
|
||||
|
||||
No information is lost: data from the other opportunity is logged in the
|
||||
chatter and the information fields for easy access.
|
||||
|
@ -8,7 +8,7 @@ Configuration
|
||||
==============
|
||||
|
||||
For this feature to work, go to :menuselection:`CRM --> Configuration --> Settings` and activate the **Lead Mining** feature.
|
||||
|
||||
|
||||
.. image:: lead_mining/LM1.png
|
||||
:align: center
|
||||
|
||||
@ -31,16 +31,16 @@ From there, click on the **Generate Leads** button, a window where you will be a
|
||||
:align: center
|
||||
|
||||
|
||||
When choosing to target Companied and their contacts you can choose the contacts you are getting based on Role or Seniority.
|
||||
When choosing to target Companied and their contacts you can choose the contacts you are getting based on Role or Seniority.
|
||||
When getting contact information make sure to be aware of the latest EU regulation, get more information about General Data Protection Regulation on
|
||||
`Odoo GDPR <http://odoo.com/gdpr>`__,
|
||||
`Odoo GDPR <http://odoo.com/gdpr>`__,
|
||||
|
||||
|
||||
You can decide to filter the leads you are getting depending on the size (number of employees) of the companies.
|
||||
You can pick the countries your leads are coming from. It is possible to pick multiple countries.
|
||||
You can pick the industries your leads are coming from. It is possible to pick multiple industries.
|
||||
|
||||
You can choose the salesperson and the Salesteam the lead will be assigned to.
|
||||
You can choose the salesperson and the Salesteam the lead will be assigned to.
|
||||
You can also add tags to track your generated leads.
|
||||
|
||||
.. tip::
|
||||
@ -50,7 +50,7 @@ Pricing
|
||||
==================
|
||||
This is an In-App Purchase feature, each generated lead will cost you one credit.
|
||||
If you choose to get contact information each contact will also cost us one additional credit.
|
||||
Here is the pricing for this `feature <https://iap.odoo.com/iap/in-app-services/167?>`__,
|
||||
Here is the pricing for this `feature <https://iap.odoo.com/iap/in-app-services/167?>`__,
|
||||
To buy credits you can either go to :menuselection:`CRM --> Configuration --> Settings --> Buy
|
||||
Credits`; or go to :menuselection:`Settings --> In-App Purchases --> View my Services`.
|
||||
|
||||
@ -70,4 +70,3 @@ Credits`; or go to :menuselection:`Settings --> In-App Purchases --> View my Ser
|
||||
|
||||
.. seealso::
|
||||
* :doc:`In-App Purchases (IAP) </applications/general/in_app_purchase>`
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
:nosearch:
|
||||
|
||||
===================
|
||||
Analyze performance
|
||||
Analyze performance
|
||||
===================
|
||||
|
||||
.. toctree::
|
||||
|
@ -16,15 +16,15 @@ convenient.
|
||||
Set up Pricelists
|
||||
=================
|
||||
|
||||
To set up a *Pricelist*, go to :menuselection:`Point of Sale --> Configuration --> Configuration`
|
||||
and enable the *Pricelist* feature. Then, go to :menuselection:`Point of Sale --> Configuration
|
||||
To set up a *Pricelist*, go to :menuselection:`Point of Sale --> Configuration --> Configuration`
|
||||
and enable the *Pricelist* feature. Then, go to :menuselection:`Point of Sale --> Configuration
|
||||
--> Point of Sale` and enable *Pricelist* for the *PoS*.
|
||||
|
||||
.. image:: pricelists/pricelists_01.png
|
||||
:align: center
|
||||
|
||||
Now, you can create *Pricelists* by clicking on the *Pricelists* link.
|
||||
Then, set it up by choosing the product category you want to include in your happy hour
|
||||
Now, you can create *Pricelists* by clicking on the *Pricelists* link.
|
||||
Then, set it up by choosing the product category you want to include in your happy hour
|
||||
and the discount.
|
||||
|
||||
.. image:: pricelists/pricelists_02.png
|
||||
|
@ -6,7 +6,7 @@ When working with a Point of Sale application, employees want a
|
||||
simple, and user-friendly solution. A solution that works online or
|
||||
offline and with any device.
|
||||
|
||||
A Point of Sale system is a fully integrated application that allows any transaction,
|
||||
A Point of Sale system is a fully integrated application that allows any transaction,
|
||||
automatically registers product moves in your stock, and gives you
|
||||
real-time statistics and consolidations across all shops.
|
||||
|
||||
@ -84,10 +84,10 @@ payment.
|
||||
Return and refund products
|
||||
--------------------------
|
||||
|
||||
Having a well-thought-out return policy is key to keep customers satisfied and make the process
|
||||
Having a well-thought-out return policy is key to keep customers satisfied and make the process
|
||||
of accepting returns and refunds easy for you.
|
||||
|
||||
To do that, from the PoS interface, select the product and quantity (with the +/- button) that the
|
||||
To do that, from the PoS interface, select the product and quantity (with the +/- button) that the
|
||||
customer wants to return. For multiple products, repeat the process individually.
|
||||
|
||||
.. image:: getting_started/getting_started_06.png
|
||||
@ -104,7 +104,7 @@ process the payment and validate it.
|
||||
Close the PoS session
|
||||
---------------------
|
||||
|
||||
To close your session at the end of the day, click on the close button on the upper right corner
|
||||
To close your session at the end of the day, click on the close button on the upper right corner
|
||||
of your screen and confirm. Now, close the session on the dashboard view.
|
||||
|
||||
.. image:: getting_started/getting_started_08.png
|
||||
@ -114,8 +114,8 @@ of your screen and confirm. Now, close the session on the dashboard view.
|
||||
.. tip::
|
||||
It’s strongly advised to close your PoS session at the end of each day.
|
||||
|
||||
Once a session is closed, you can see a summary of all transactions per payment method.
|
||||
Then, click on a line to see all orders that were paid during your PoS session.
|
||||
Once a session is closed, you can see a summary of all transactions per payment method.
|
||||
Then, click on a line to see all orders that were paid during your PoS session.
|
||||
If everything is correct, validate the session and post the closing entries.
|
||||
|
||||
.. image:: getting_started/getting_started_09.png
|
||||
|
@ -10,7 +10,7 @@ takes away.
|
||||
Set up fiscal positions for PoS
|
||||
===============================
|
||||
|
||||
To enable this feature, go to :menuselection:`Point of Sale --> Configuration --> Point of Sale`
|
||||
To enable this feature, go to :menuselection:`Point of Sale --> Configuration --> Point of Sale`
|
||||
and check *Fiscal Position per Order*. Now, you can choose the fiscal positions
|
||||
you want for your *PoS*.
|
||||
|
||||
@ -32,8 +32,8 @@ Now, choose the fiscal position you need for the current order.
|
||||
Set up a default fiscal position
|
||||
================================
|
||||
|
||||
If you want to use a default fiscal position, meaning that a preexisting value is always
|
||||
automatically assigned, go to :menuselection:`Point of Sale --> Configuration
|
||||
If you want to use a default fiscal position, meaning that a preexisting value is always
|
||||
automatically assigned, go to :menuselection:`Point of Sale --> Configuration
|
||||
--> Point of Sale` and enable *Fiscal Position*. Now, choose one to set as the default one.
|
||||
|
||||
.. image:: fiscal_position/fiscal_position_03.png
|
||||
|
@ -96,7 +96,7 @@ customer.
|
||||
|
||||
.. image:: restaurant/restaurant_09.png
|
||||
:align: center
|
||||
:alt: View of the pos interface and transfer button. How to transfer customers from one table
|
||||
:alt: View of the pos interface and transfer button. How to transfer customers from one table
|
||||
to another
|
||||
|
||||
Register an additional order
|
||||
|
@ -2,12 +2,12 @@
|
||||
Cash Rounding
|
||||
=============
|
||||
|
||||
**Cash rounding** is required when the lowest physical denomination
|
||||
of currency, or the smallest coin, is higher than the minimum unit
|
||||
**Cash rounding** is required when the lowest physical denomination
|
||||
of currency, or the smallest coin, is higher than the minimum unit
|
||||
of account.
|
||||
|
||||
For example, some countries require their companies to round up or
|
||||
down the total amount of an invoice to the nearest five cents, when
|
||||
For example, some countries require their companies to round up or
|
||||
down the total amount of an invoice to the nearest five cents, when
|
||||
the payment is made in cash.
|
||||
|
||||
Each point of sale in Odoo can be configured to apply cash rounding
|
||||
@ -16,20 +16,20 @@ to the totals of its bills or receipts.
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Go to :menuselection:`Point of Sale --> Configuration --> Settings`
|
||||
Go to :menuselection:`Point of Sale --> Configuration --> Settings`
|
||||
and enable *Cash Rounding*, then click on *Save*.
|
||||
|
||||
.. image:: cash_rounding/cash_rounding01.png
|
||||
:align: center
|
||||
|
||||
Go to :menuselection:`Point of Sale --> Configuration --> Point of
|
||||
Go to :menuselection:`Point of Sale --> Configuration --> Point of
|
||||
Sale`, open the point of sale you want to configure, and enable the
|
||||
*Cash Rounding* option.
|
||||
|
||||
To define the **Rounding Method**, open the drop-down list and click
|
||||
on *Create and Edit...*.
|
||||
|
||||
Define here your *Rounding Precision*, *Profit Account*, and
|
||||
Define here your *Rounding Precision*, *Profit Account*, and
|
||||
*Loss Account*, then save both the Rounding Method and your Point
|
||||
of Sale settings.
|
||||
|
||||
@ -43,5 +43,5 @@ rounding according to your settings.
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
Odoo Point of Sale only support the *Add a rounding line*
|
||||
Odoo Point of Sale only support the *Add a rounding line*
|
||||
rounding strategies and *Half-up* rounding methods.
|
||||
|
@ -39,7 +39,7 @@ turn, notify the customer that the order (or a part of it) is on its way.
|
||||
.. important::
|
||||
Starting from July 2021, Amazon requires that deliveries be provided with a tracking
|
||||
reference. This concerns all marketplaces.
|
||||
|
||||
|
||||
If this is not already done, you need to :ref:`install <general/install>` the **Delivery Costs**
|
||||
module in order to provide the tracking reference. There is unfortunately no workaround to comply
|
||||
with this new Amazon policy.
|
||||
|
@ -19,14 +19,14 @@ Choose your pricing strategy from :menuselection:`Sales --> Settings`.
|
||||
* *Different prices per customer segment :* you will set several prices per products ;
|
||||
* *Advanced pricing based on formula :* will let you apply discounts, margins and roundings.
|
||||
|
||||
Several prices per product
|
||||
Several prices per product
|
||||
==========================
|
||||
|
||||
To apply several prices per product, select *Different prices per customer
|
||||
segment* in :menuselection:`Sales --> Settings`. Then open the *Sales* tab
|
||||
in the product detail form. You can settle following strategies.
|
||||
|
||||
Prices per customer segment
|
||||
Prices per customer segment
|
||||
---------------------------
|
||||
|
||||
Create pricelists for your customer segments: e.g. registered, premium, etc.
|
||||
@ -88,10 +88,10 @@ Each pricelist item can be associated to either all products, to a product inter
|
||||
|
||||
.. note::
|
||||
|
||||
* Once again the system is smart. If a rule is set for a particular item and another one for its category, Odoo will take the rule of the item.
|
||||
* Once again the system is smart. If a rule is set for a particular item and another one for its category, Odoo will take the rule of the item.
|
||||
|
||||
* Make sure at least one pricelist item covers all your products.
|
||||
|
||||
|
||||
There are 3 modes of computation: fix price, discount & formula.
|
||||
|
||||
.. image:: pricing/price_computation.png
|
||||
@ -122,7 +122,7 @@ Any new customer recorded in Odoo gets a default pricelist, i.e. the first one i
|
||||
|
||||
The default pricelist can be replaced when creating a sales order.
|
||||
|
||||
.. tip:: You can change the pricelists sequence by drag & drop in list view.
|
||||
.. tip:: You can change the pricelists sequence by drag & drop in list view.
|
||||
|
||||
Compute and show discount % to customers
|
||||
========================================
|
||||
|
@ -4,7 +4,7 @@ How to import Products with Categories and Variants
|
||||
|
||||
Import templates are provided in the **Import Tool** of the most common data to
|
||||
import (contacts, products, bank statements, etc.).
|
||||
You can open them with any spreadsheet software (Microsoft Office,
|
||||
You can open them with any spreadsheet software (Microsoft Office,
|
||||
OpenOffice, Google Drive, etc.).
|
||||
|
||||
How to customize the file
|
||||
|
@ -22,7 +22,7 @@ Go to :menuselection:`Accounting --> Configuration --> Settings` and activate
|
||||
:align: center
|
||||
:class: img-thumbnail
|
||||
:alt: How to enable Default Terms & Conditions on Odoo Sales?
|
||||
|
||||
|
||||
.. note::
|
||||
Please note that this feature is activated via the settings of the **Invoicing App** and **not**
|
||||
via the settings of the **Sales App**. Moreover, you don't need to install the invoicing
|
||||
@ -55,7 +55,7 @@ templates. This is interesting if you have different terms and conditions within
|
||||
.. important::
|
||||
Be sure to check out our documentation about quotation templates: :doc:`quote_template`,
|
||||
to master each step of this amazing feature.
|
||||
|
||||
|
||||
General Terms & Conditions
|
||||
==========================
|
||||
|
||||
|
@ -11,7 +11,7 @@ Run a modern open-source online store with Odoo eCommerce. Learn how to sell onl
|
||||
products and increase your average cart sizes.
|
||||
|
||||
.. important::
|
||||
Odoo offers a :ref:`free custom domain name <domain-name/odoo-register>` to all Odoo Online
|
||||
Odoo offers a :ref:`free custom domain name <domain-name/odoo-register>` to all Odoo Online
|
||||
databases for one year. Visitors can then access your website with an address such as
|
||||
``www.example.com`` rather than the default ``example.odoo.com``.
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
==================================
|
||||
How to customize my catalog page
|
||||
How to customize my catalog page
|
||||
==================================
|
||||
|
||||
Product Catalog
|
||||
|
@ -15,5 +15,5 @@ If you like to show your products under several angles, you can turn the image i
|
||||
.. image:: multi_images/multi_images02.png
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
.. note::
|
||||
Such extra image are common to all the product variants (if any).
|
||||
|
@ -3,7 +3,7 @@ How to sell accessories and optional products (cross-selling)
|
||||
=============================================================
|
||||
|
||||
You sell computers. Why not stimulating your customers to buy a top-notch
|
||||
screen or an extra-warranty? That's the goal of cross-selling functionalities:
|
||||
screen or an extra-warranty? That's the goal of cross-selling functionalities:
|
||||
|
||||
* Accessory products on checkout page,
|
||||
* Optional products on a new *Add to Cart* screen (not installed by default).
|
||||
|
@ -46,7 +46,7 @@ You can easily moderate by using the chatter, either in the product detail form
|
||||
or on the web page.
|
||||
|
||||
To unpublish the post, open the product web page and click the *Published* button
|
||||
to turn it red (*Unpublished*).
|
||||
to turn it red (*Unpublished*).
|
||||
|
||||
.. image:: reviews/comment_unpublish.png
|
||||
:align: center
|
||||
|
@ -2,10 +2,10 @@
|
||||
How customers can access their customer account
|
||||
=================================================
|
||||
|
||||
It has never been so easy for your customers to access their
|
||||
customer account. Forget endless signup forms,
|
||||
Odoo makes it as easy as ABC.
|
||||
They are suggested to sign up (name, email, password) when the order
|
||||
It has never been so easy for your customers to access their
|
||||
customer account. Forget endless signup forms,
|
||||
Odoo makes it as easy as ABC.
|
||||
They are suggested to sign up (name, email, password) when the order
|
||||
is placed, and not before.
|
||||
Indeed, nothing is more annoying than going through a signup process
|
||||
before buying something.
|
||||
|
@ -11,7 +11,7 @@ Discover the best **Open-Source Website Builder** and learn how to build beautif
|
||||
convert visitors into leads or revenues.
|
||||
|
||||
.. important::
|
||||
Odoo offers a :ref:`free custom domain name <domain-name/odoo-register>` to all Odoo Online
|
||||
Odoo offers a :ref:`free custom domain name <domain-name/odoo-register>` to all Odoo Online
|
||||
databases for one year. Visitors can then access your website with an address such as
|
||||
``www.example.com`` rather than the default ``example.odoo.com``.
|
||||
|
||||
|
@ -18,10 +18,10 @@ How to track your website's traffic in Google Analytics
|
||||
|
||||
To follow your website's traffic with Google Analytics:
|
||||
|
||||
- `Create a Google Analytics account <https://www.google.com/analytics/>`__ if
|
||||
- `Create a Google Analytics account <https://www.google.com/analytics/>`__ if
|
||||
you don't have any.
|
||||
|
||||
- Go through the creation form and accept the conditions to get the tracking ID.
|
||||
- Go through the creation form and accept the conditions to get the tracking ID.
|
||||
|
||||
.. image:: google_analytics/google_analytics_account.png
|
||||
:align: center
|
||||
|
@ -20,14 +20,14 @@ How to track your website traffic from your Odoo Dashboard
|
||||
dashboard on external website until the official end of support `around mid
|
||||
2023 <https://developers.googleblog.com/2022/03/gis-jsweb-authz-migration.html>`_.
|
||||
|
||||
You can follow your traffic statistics straight from your Odoo Website
|
||||
You can follow your traffic statistics straight from your Odoo Website
|
||||
Dashboard thanks to Google Analytics.
|
||||
|
||||
- A preliminary step is creating a Google Analytics account and entering the
|
||||
- A preliminary step is creating a Google Analytics account and entering the
|
||||
tracking ID in your Website's settings (see :doc:`google_analytics`).
|
||||
|
||||
- Go to `Google APIs platform <https://console.developers.google.com>`__
|
||||
to generate Analytics API credentials. Log in with your Google account.
|
||||
- Go to `Google APIs platform <https://console.developers.google.com>`__
|
||||
to generate Analytics API credentials. Log in with your Google account.
|
||||
|
||||
- Select Analytics API.
|
||||
|
||||
@ -50,25 +50,25 @@ Dashboard thanks to Google Analytics.
|
||||
.. image:: google_analytics_dashboard/google_analytics_create_credentials.png
|
||||
:align: center
|
||||
|
||||
- Select *Web browser (Javascript)*
|
||||
- Select *Web browser (Javascript)*
|
||||
as calling source and *User data* as kind of data.
|
||||
|
||||
.. image:: google_analytics_dashboard/google_analytics_get_credentials.png
|
||||
:align: center
|
||||
|
||||
- Then you can create a Client ID.
|
||||
Enter the name of the application (e.g. Odoo) and the allowed pages on
|
||||
which you will be redirected. The *Authorized JavaScript origin* is your
|
||||
Odoo's instance URL. The *Authorized redirect URI* is your Odoo's instance
|
||||
Enter the name of the application (e.g. Odoo) and the allowed pages on
|
||||
which you will be redirected. The *Authorized JavaScript origin* is your
|
||||
Odoo's instance URL. The *Authorized redirect URI* is your Odoo's instance
|
||||
URL followed by '/google_account/authentication'.
|
||||
|
||||
.. image:: google_analytics_dashboard/google_analytics_authorization.png
|
||||
:align: center
|
||||
|
||||
|
||||
- Go through the Consent Screen step by entering a product name
|
||||
(e.g. Google Analytics in Odoo). Feel free to check the customizations options
|
||||
but this is not mandatory. The Consent Screen will only show up when you enter
|
||||
- Go through the Consent Screen step by entering a product name
|
||||
(e.g. Google Analytics in Odoo). Feel free to check the customizations options
|
||||
but this is not mandatory. The Consent Screen will only show up when you enter
|
||||
the Client ID in Odoo for the first time.
|
||||
|
||||
- Finally you are provided with your Client ID. Copy and paste it in Odoo.
|
||||
|
@ -29,7 +29,7 @@ Title, Description
|
||||
Every web page should define the ``<title>`` and ``<description>`` meta data.
|
||||
These information elements are used by search engines to promote your website.
|
||||
They are automatically generated based on page title & content, but you can
|
||||
finetune them. Make sure they fit the content of the page, otherwise you will
|
||||
finetune them. Make sure they fit the content of the page, otherwise you will
|
||||
be downgraded by search engines.
|
||||
|
||||
.. image:: seo/seo01.png
|
||||
@ -40,15 +40,15 @@ Keywords
|
||||
In order to write quality content and boost your traffic, Odoo provides
|
||||
a ``<keyword>`` finder. Those keywords are the searches you want to head
|
||||
towards your website. For each keyword, you see how it is used in the content
|
||||
(H1, H2, page title, page description, page content) and what are the related
|
||||
(H1, H2, page title, page description, page content) and what are the related
|
||||
searches in Google. The more keywords are used the better.
|
||||
|
||||
.. image:: seo/seo02.png
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
.. note::
|
||||
If your website is in multiple languages, you can use the Promote
|
||||
tool for every language of a single page and set specific title,
|
||||
tool for every language of a single page and set specific title,
|
||||
description and search tags.
|
||||
|
||||
Content is King
|
||||
@ -80,8 +80,8 @@ modules to help you build your website content:
|
||||
Use Social Networks
|
||||
===================
|
||||
|
||||
Social media is built for mass sharing. If lots of people share your content
|
||||
on social media, then it's likely more people will link to it,
|
||||
Social media is built for mass sharing. If lots of people share your content
|
||||
on social media, then it's likely more people will link to it,
|
||||
and links are a huge factor for SEO ranking.
|
||||
|
||||
Odoo embeds several tools to share content through social media:
|
||||
@ -94,7 +94,7 @@ All you have to do is to refer all your accounts in your company settings.
|
||||
|
||||
.. image:: seo/seo03.png
|
||||
:align: center
|
||||
|
||||
|
||||
Social Share
|
||||
------------
|
||||
|
||||
@ -106,17 +106,17 @@ wall.
|
||||
:align: center
|
||||
|
||||
Most social media use a picture of the picture to decorate the share post.
|
||||
Odoo uses the website logo by default but you can choose any other image
|
||||
Odoo uses the website logo by default but you can choose any other image
|
||||
of your page in the Promote tool.
|
||||
|
||||
.. image:: seo/seo05.png
|
||||
:align: center
|
||||
|
||||
|
||||
Facebook Page
|
||||
-------------
|
||||
|
||||
Drop the building block *Facebook Page* to display a widget of your Facebook
|
||||
business page and encourage visitors to follow it.
|
||||
Drop the building block *Facebook Page* to display a widget of your Facebook
|
||||
business page and encourage visitors to follow it.
|
||||
You can display the timeline, the next events and the messages.
|
||||
|
||||
Twitter Scroller
|
||||
@ -179,7 +179,7 @@ an example, the following URLs all do a 301 redirect to the above URL:
|
||||
product name)
|
||||
|
||||
Some URLs have several dynamic parts, like this one (a blog category and
|
||||
a post):
|
||||
a post):
|
||||
|
||||
- https://www.odoo.com/blog/company-news-5/post/the-odoo-story-56
|
||||
|
||||
@ -191,7 +191,7 @@ In the above example:
|
||||
|
||||
When an Odoo page has a pager, the page number is set directly in the
|
||||
URL (does not have a GET argument). This allows every page to be indexed
|
||||
by search engines. Example:
|
||||
by search engines. Example:
|
||||
|
||||
- https://www.odoo.com/blog/page/3
|
||||
|
||||
@ -222,7 +222,7 @@ maintaining the SEO link juice.
|
||||
HTTPS
|
||||
-----
|
||||
|
||||
Search engines boost ranking of secure HTTPS/SSL websites.
|
||||
Search engines boost ranking of secure HTTPS/SSL websites.
|
||||
So, by default all Odoo Online instances are fully
|
||||
based on HTTPS. If the visitor accesses your website through a non HTTPS
|
||||
url, it gets a 301 redirect to its HTTPS equivalent.
|
||||
@ -230,7 +230,7 @@ url, it gets a 301 redirect to its HTTPS equivalent.
|
||||
Links: Nofollow Strategy
|
||||
------------------------
|
||||
|
||||
The more a page is linked from external and quality websites,
|
||||
The more a page is linked from external and quality websites,
|
||||
the better it is for your SEO.
|
||||
|
||||
Here are Odoo strategies to manage links:
|
||||
@ -296,7 +296,7 @@ yourwebsite.com/shop), they may automatically be redirected to a
|
||||
translated version according to their browser language preference (e.g.
|
||||
yourwebsite.com/fr\_FR/shop).
|
||||
|
||||
Next time, it keeps a cookie of the current language to
|
||||
Next time, it keeps a cookie of the current language to
|
||||
avoid any redirection.
|
||||
|
||||
To force a visitor to stick to the default language, you can use the
|
||||
@ -409,18 +409,18 @@ CSS is shared amongst all pages, when the visitor clicks on another
|
||||
page, the browser does not even have to load a new CSS file!
|
||||
|
||||
================================= =============================================
|
||||
**Both files in the <head>** **What the visitor gets (only one file)**
|
||||
**Both files in the <head>** **What the visitor gets (only one file)**
|
||||
================================= =============================================
|
||||
/\* From bootstrap.css \*/ .text-muted {
|
||||
.text-muted { color: #666;
|
||||
color: #777; background: yellow
|
||||
background: yellow; }
|
||||
/\* From bootstrap.css \*/ .text-muted {
|
||||
.text-muted { color: #666;
|
||||
color: #777; background: yellow
|
||||
background: yellow; }
|
||||
}
|
||||
|
||||
/\* From my-theme.css \*/
|
||||
.text-muted {
|
||||
color: #666;
|
||||
}
|
||||
/\* From my-theme.css \*/
|
||||
.text-muted {
|
||||
color: #666;
|
||||
}
|
||||
================================= =============================================
|
||||
|
||||
The CSS sent by Odoo includes all CSS / Less / Sass of all pages /
|
||||
@ -432,28 +432,28 @@ into a second bundle that is loaded only when the page using it is
|
||||
requested. An example of this is the backend that is only loaded when
|
||||
the visitor logs in and accesses the backend (/web).
|
||||
|
||||
.. note::
|
||||
.. note::
|
||||
If the CSS file is very big, Odoo will split it into two smaller
|
||||
files to avoid the 4095 selectors limit per sheet of Internet Explorer.
|
||||
files to avoid the 4095 selectors limit per sheet of Internet Explorer.
|
||||
But most themes fit below this limit.
|
||||
|
||||
**Minified:** After being pre-processed and concatenated, the resulting
|
||||
CSS is minified to reduce its size.
|
||||
|
||||
============================ ==============================
|
||||
**Before minification** **After minification**
|
||||
**Before minification** **After minification**
|
||||
============================ ==============================
|
||||
/\* some comments \*/ .text-muted {color: #666}
|
||||
.text-muted {
|
||||
color: #666;
|
||||
}
|
||||
/\* some comments \*/ .text-muted {color: #666}
|
||||
.text-muted {
|
||||
color: #666;
|
||||
}
|
||||
============================ ==============================
|
||||
|
||||
The final result is then compressed, before being delivered to the
|
||||
browser.
|
||||
|
||||
Then, a cached version is stored server-side (so we do not have
|
||||
to pre-process, concatenate, minify at every request) and browser-side
|
||||
to pre-process, concatenate, minify at every request) and browser-side
|
||||
(so the same visitor will load the CSS only once for all pages they
|
||||
visit).
|
||||
|
||||
|
@ -185,7 +185,7 @@ Publish a page in all websites
|
||||
------------------------------
|
||||
|
||||
A new static page is created and only made available in the current
|
||||
website. You can duplicate it to other websites from
|
||||
website. You can duplicate it to other websites from
|
||||
:menuselection:`Website --> Configuration --> Pages`. To do so, leave the *Website* field empty.
|
||||
|
||||
If you want to duplicate it in just one other website, duplicate the
|
||||
@ -198,7 +198,7 @@ When you edit the page again, the change only affects the current
|
||||
website. A new page is duplicated and tied up to the website.
|
||||
The original page still being linked to all websites.
|
||||
|
||||
.. tip::
|
||||
.. tip::
|
||||
By grouping pages by URL in the page manager, you quickly find
|
||||
the original page behind each edited page.
|
||||
|
||||
|
@ -976,7 +976,7 @@ The convention is to organize the code according to the following structure:
|
||||
- *static/src/js*
|
||||
|
||||
- *static/src/js/tours*: end user tour files (tutorials, not tests)
|
||||
|
||||
|
||||
- *static/src/scss*: scss files
|
||||
- *static/src/xml*: all qweb templates that will be rendered in JS
|
||||
|
||||
|
@ -33,9 +33,9 @@ A tool called *gprof2dot* will produce a graph with this result:
|
||||
A tool called *xdot* will display the resulting graph:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
|
||||
xdot /temp/prof.xdot
|
||||
|
||||
|
||||
Log a method
|
||||
============
|
||||
|
||||
|
@ -233,7 +233,7 @@ An example of a view inheritance extension can be found
|
||||
Add the ``property_ids`` field to the ``base.view_users_form`` in a new notebook page.
|
||||
|
||||
Tip: an example an inheritance of the users' view can be found
|
||||
`here <https://github.com/odoo/odoo/blob/691d1f087040f1ec7066e485d19ce3662dfc6501/addons/gamification/views/res_users_views.xml#L5-L14>`__.
|
||||
`here <https://github.com/odoo/odoo/blob/691d1f087040f1ec7066e485d19ce3662dfc6501/addons/gamification/views/res_users_views.xml#L5-L14>`__.
|
||||
|
||||
Inheritance is extensively used in Odoo due to its modular concept. Do not hesitate to read
|
||||
the corresponding documentation for more info!
|
||||
|
@ -136,7 +136,7 @@ to link a line to an invoice is to include all lines at invoice creation. To do
|
||||
:class:`~odoo.fields.One2many`. One2many and Many2many use special 'commands' described in
|
||||
:ref:`reference/orm/models/crud`. This format is a list of triplets executed sequentially, where
|
||||
each triplet is a command to execute on the set of records. Here is a simple example to include
|
||||
a One2many field ``line_ids`` at creation of a ``test.model``::
|
||||
a One2many field ``line_ids`` at creation of a ``test.model``::
|
||||
|
||||
def inherited_action(self):
|
||||
self.env["test.model"].create(
|
||||
|
@ -277,7 +277,7 @@ the template, such as data from additional models:
|
||||
|
||||
Custom fonts
|
||||
============
|
||||
If you want to use custom fonts you will need to add your custom font and the related less/CSS to the ``web.reports_assets_common`` assets bundle.
|
||||
If you want to use custom fonts you will need to add your custom font and the related less/CSS to the ``web.reports_assets_common`` assets bundle.
|
||||
Adding your custom font(s) to ``web.assets_common`` or ``web.assets_backend`` will not make your font available in QWeb reports.
|
||||
|
||||
Example::
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user