584 lines
4.8 MiB
584 lines
4.8 MiB
{"url": "https://www.odoo.com/documentation/18.0/administration.html", "title": "Database management", "module": "install", "section": "Database management", "text": "# Database management\n\nThese guides provide instructions on how to install, maintain and upgrade Odoo databases.\n\n## Installation\n\nDepending on the intended use case, there are multiple ways to install Odoo - or not install it at\nall.\n- Online is the easiest way to use Odoo in production or to try it.\nOnline is the easiest way to use Odoo in production or to try it.\n- Packaged installers are suitable for testing Odoo and\ndeveloping modules. They can be used for long-term production with additional deployment and\nmaintenance work.\nPackaged installers are suitable for testing Odoo and\ndeveloping modules. They can be used for long-term production with additional deployment and\nmaintenance work.\n- Source install provides greater flexibility, as it\nallows, for example, running multiple Odoo versions on the same system. It is adequate to develop\nmodules and can be used as a base for production deployment.\nSource install provides greater flexibility, as it\nallows, for example, running multiple Odoo versions on the same system. It is adequate to develop\nmodules and can be used as a base for production deployment.\n- A Docker base image is available for development or\ndeployment.\nA Docker base image is available for development or\ndeployment.\n\n## Editions\n\nThere are two different editions.\nOdoo Community is the free and open-source version of the software, licensed under the GNU\nLGPLv3 . It is the core upon which Odoo\nEnterprise is built.\nOdoo Enterprise is the shared source version of the software, giving access to more\nfunctionalities, including functional support, upgrades, and hosting. Pricing starts from one app free.\nSwitch from Community to Enterprise at\nany time (except for the source install).", "headings": ["Installation", "Editions"], "doc_id": "15644c444ed3d3b9"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/hosting.html", "title": "Hosting", "module": "install", "section": "Hosting", "text": "# Hosting\n\n## Change hosting solution\n\nThe instructions to change the hosting type of a database depend on the current solution used and to\nwhich solution the database should be moved.\n\n## Transferring an on-premise database\n\n### To Odoo Online\n\n- Odoo Online is not compatible with non-standard apps .\nOdoo Online is not compatible with non-standard apps .\n- The databaseâs current version must be supported .\nThe databaseâs current version must be supported .\n- Create a duplicate of the database .\nCreate a duplicate of the database .\n- In this duplicate, uninstall all non-standard apps .\nIn this duplicate, uninstall all non-standard apps .\n- Use the database manager to grab a dump with filestore .\nUse the database manager to grab a dump with filestore .\n- Create a support ticket including the following: your subscription number , the URL you want to use for the database (e.g., company.odoo.com ), and the dump as an attachment or as a link to the file (required for 60 MB+ files).\nCreate a support ticket including the following:\n- your subscription number ,\nyour subscription number ,\n- the URL you want to use for the database (e.g., company.odoo.com ), and\nthe URL you want to use for the database (e.g., company.odoo.com ), and\n`company.odoo.com`\n- the dump as an attachment or as a link to the file (required for 60 MB+ files).\nthe dump as an attachment or as a link to the file (required for 60 MB+ files).\n- Odoo then makes sure the database is compatible before putting it online. In case of technical\nissues during the process, Odoo might contact you.\nOdoo then makes sure the database is compatible before putting it online. In case of technical\nissues during the process, Odoo might contact you.\nIf you have time constraints, create a support ticket as soon\nas possible to schedule the transfer.\n\n### To Odoo.sh\n\nFollow the instructions found in the Import a database section of the\nOdoo.sh Create a project documentation.\n\n## Transferring an Odoo Online database\n\nOdoo Onlineâs intermediary versions are not supported by\nOdoo.sh or on-premise. Therefore, if the database to transfer is running an intermediary version,\nit must be upgraded first to the next major version , waiting\nfor its release if necessary.\nTransferring an online database running on Odoo 16.3 would require first upgrading it to Odoo\n17.0.\nClick the ( gear ) button next to the database name on the Odoo\nOnline database manager to display its version number.\nIf there is an active Odoo subscription linked to the database being migrated, reach out to\nthe Customer Service Manager or contact Odoo support to\ncomplete the subscription transfer.\n\n### To on-premise\n\n- Download a database backup by signing in to the Odoo Online database manager , clicking the ( gear ) button\nnext to the database name, then selecting Download . If the\ndownload fails due to the file being too large, contact Odoo support .\nDownload a database backup by signing in to the Odoo Online database manager , clicking the ( gear ) button\nnext to the database name, then selecting Download . If the\ndownload fails due to the file being too large, contact Odoo support .\n- Restore the database from the database manager on your local server using the backup.\nRestore the database from the database manager on your local server using the backup.\n\n### To Odoo.sh\n\n- Download a database backup by signing in to the Odoo Online database manager , clicking the ( gear ) button\nnext to the database name, then selecting Download . If the\ndownload fails due to the file being too large, contact Odoo support .\nDownload a database backup by signing in to the Odoo Online database manager , clicking the ( gear ) button\nnext to the database name, then selecting Download . If the\ndownload fails due to the file being too large, contact Odoo support .\n- Follow the instructions found in the Import a database section of\nthe Odoo.sh Create a project documentation.\nFollow the instructions found in the Import a database section of\nthe Odoo.sh Create a project documentation.\n\n## Transferring an Odoo.sh database\n\n### To Odoo Online\n\nOdoo Online is not compatible with non-standard apps .\n- Uninstall all non-standard apps in a staging build before doing it in the production build.\nUninstall all non-standard apps in a staging build before doing it in the production build.\n- Create a support ticket including the following: your subscription number , the URL you want to use for the database (e.g., company.odoo.com ), which branch should be migrated, in which region you want the database to be hosted (Americas, Europe, or Asia), which user(s) will be the administrator(s) , and when (and in which timezone) you want the database to be up and running.\nCreate a support ticket including the following:\n- your subscription number ,\nyour subscription number ,\n- the URL you want to use for the database (e.g., company.odoo.com ),\nthe URL you want to use for the database (e.g., company.odoo.com ),\n`company.odoo.com`\n- which branch should be migrated,\nwhich branch should be migrated,\n- in which region you want the database to be hosted (Americas, Europe, or Asia),\nin which region you want the database to be hosted (Americas, Europe, or Asia),\n- which user(s) will be the administrator(s) , and\nwhich user(s) will be the administrator(s) , and\n- when (and in which timezone) you want the database to be up and running.\nwhen (and in which timezone) you want the database to be up and running.\n- Odoo then makes sure the database is compatible before putting it online. In case of technical\nissues during the process, Odoo might contact you.\nOdoo then makes sure the database is compatible before putting it online. In case of technical\nissues during the process, Odoo might contact you.\n- If you have time constraints, create a support ticket as\nsoon as possible to schedule the transfer.\nIf you have time constraints, create a support ticket as\nsoon as possible to schedule the transfer.\n- Select the region closest to most of your users to reduce latency.\nSelect the region closest to most of your users to reduce latency.\n- Future administrator(s) must have an Odoo.com account.\nFuture administrator(s) must have an Odoo.com account.\n- The date and time you want the database to be up and running are helpful to organize the\nswitch from the Odoo.sh server to the Odoo Online servers.\nThe date and time you want the database to be up and running are helpful to organize the\nswitch from the Odoo.sh server to the Odoo Online servers.\n- Databases are not reachable during their migration.\nDatabases are not reachable during their migration.\n\n### To on-premise\n\n- Download a backup of your Odoo.sh production database .\nDownload a backup of your Odoo.sh production database .\n- Restore the database from the database manager on your local server using the backup.\nRestore the database from the database manager on your local server using the backup.", "headings": ["Change hosting solution", "Transferring an on-premise database", "To Odoo Online", "To Odoo.sh", "Transferring an Odoo Online database", "To on-premise", "To Odoo.sh", "Transferring an Odoo.sh database", "To Odoo Online", "To on-premise"], "doc_id": "b7f23fd921069bf1"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/mobile.html", "title": "Odoo mobile apps", "module": "install", "section": "Odoo mobile apps", "text": "# Odoo mobile apps\n\nTwo kind of Odoo mobile app exist: the progressive web app (PWA) and store apps. Using the PWA is\nrecommended.\n\n## Progressive web app (PWA)\n\nPWAs are web-based applications designed to function across different devices and platforms,\nleveraging web browsers to deliver user experiences similar to native apps.\nThe Odoo PWA features include:\n- Quick access by adding the PWA to a deviceâs home screen\nQuick access by adding the PWA to a deviceâs home screen\n- Seamless and borderless navigation experience\nSeamless and borderless navigation experience\n- Push notifications\n- SSO authentication\nTo install the Odoo PWA, launch a browser supporting PWAs, and sign in to an Odoo database. The\ninstructions to install a PWA depend on the platform and browser used.\nChrome : open Chromeâs menu ( â® ), select Install app , and tap Install .\nFirefox : open Firefoxâs menu ( â® ), select Install , and either touch\nand hold the Odoo icon or tap Add automatically .\nThe PWA can also be installed with Samsung Internet , Edge , and Opera .\nSafari : open the Share menu by tapping the square with an arrow pointing upwards icon,\nselect Add to Home Screen , edit the PWA details if desired, and tap Add .\nOn iOS 16.4 and above, the PWA can also be installed with Chrome , Firefox , and Edge .\nChrome and Edge : click the installation icon at the right of the address bar and click Install .\n- Google Chrome Help: Use progressive web apps\nGoogle Chrome Help: Use progressive web apps\n- MDN Web Docs: Installing and uninstalling web apps\nMDN Web Docs: Installing and uninstalling web apps\n- Microsoft Support: Install, manage, or uninstall apps in Microsoft Edge\nMicrosoft Support: Install, manage, or uninstall apps in Microsoft Edge\n\n## Store apps\n\nThe Odoo mobile apps are available for download on the Google Play Store and Apple App Store .\nWhile the store apps support multi-accounts, they are not compatible with SSO authentication.", "headings": ["Progressive web app (PWA)", "Store apps"], "doc_id": "631cb29fc9cd25f1"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/neutralized_database.html", "title": "Neutralized database", "module": "install", "section": "Neutralized database", "text": "# Neutralized database\n\nA neutralized database is a non-production database on which several parameters are deactivated.\nThis enables one to carry out tests without the risk of launching specific automated processes that\ncould impact production data (e.g., sending emails to customers). Live access is removed and\nturned into a testing environment.\nAny testing database created is a neutralized database:\n- testing backup databases\ntesting backup databases\n- duplicate databases\n- for Odoo.sh: staging and development databases\nfor Odoo.sh: staging and development databases\nA database can also be neutralized when upgrading, as it is vital to do some tests before\nswitching to a new version.\n\n## Deactivated features\n\nHere is a non-exhaustive list of the deactivated features:\n- all planned actions (e.g., automatic invoicing of subscriptions, mass mailing, etc.)\nall planned actions (e.g., automatic invoicing of subscriptions, mass mailing, etc.)\n- outgoing emails\n- bank synchronization\n- payment providers\n- delivery methods\n- IAP tokens\n- website visibility (prevent search engines from indexing your site)\nwebsite visibility (prevent search engines from indexing your site)\nA red banner at the top of the screen is displayed on the neutralized database so that it can\nbe seen immediately.", "headings": ["Deactivated features"], "doc_id": "1fbba9ecd239527b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/odoo_accounts.html", "title": "Odoo.com account", "module": "install", "section": "Odoo.com account", "text": "# Odoo.com account\n\nOpen the Connection & Security page on your Odoo.com account\nportal to:\n- Change your Password . Note When you create a database, a user linked to your Odoo.com account is generated on the\ndatabase. Changing your Odoo.com accountâs password will also modify the password used to\nsign in with that user to the database. You can set a database-specific password for that user by going to the databaseâs\nsettings . However, you will still be able to sign in with your\nOdoo.com accountâs password.\nChange your Password .\n- When you create a database, a user linked to your Odoo.com account is generated on the\ndatabase. Changing your Odoo.com accountâs password will also modify the password used to\nsign in with that user to the database.\nWhen you create a database, a user linked to your Odoo.com account is generated on the\ndatabase. Changing your Odoo.com accountâs password will also modify the password used to\nsign in with that user to the database.\n- You can set a database-specific password for that user by going to the databaseâs\nsettings . However, you will still be able to sign in with your\nOdoo.com accountâs password.\nYou can set a database-specific password for that user by going to the databaseâs\nsettings . However, you will still be able to sign in with your\nOdoo.com accountâs password.\n- Enable Two-factor authentication using an authenticator app. See also Refer to the Two-factor authentication documentation for more information. The process to enable it for a database user and for your Odoo.com\naccount is similar.\nEnable Two-factor authentication using an authenticator app.\nRefer to the Two-factor authentication documentation for more information. The process to enable it for a database user and for your Odoo.com\naccount is similar.\n- Log out from all devices signed in to your Odoo.com account, except for the current\nsession. Tip To log out from the current session, click the ( user )\nicon in the top right and select Logout .\nLog out from all devices signed in to your Odoo.com account, except for the current\nsession.\nTo log out from the current session, click the ( user )\nicon in the top right and select Logout .\n- Enable developer mode to add a developer API key .\nEnable developer mode to add a developer API key .\n- Delete your account. Danger Deleting your Odoo.com account is irreversible . Once deleted, your account cannot be\nretrieved .\nDeleting your Odoo.com account is irreversible . Once deleted, your account cannot be\nretrieved .\nOpen the Account Information page to edit your account details,\nincluding your email address .\n- When you create a database, a user linked to your Odoo.com account is generated on the\ndatabase. Changing your Odoo.com accountâs email address does not modify the email address used\nto sign in with that user.\nWhen you create a database, a user linked to your Odoo.com account is generated on the\ndatabase. Changing your Odoo.com accountâs email address does not modify the email address used\nto sign in with that user.\n- You can set a database-specific email address for that user by clicking your avatar in the\ntop-right corner of the database and selecting My Preferences . You will still need\nto sign in to the database using the email address used at the time of the database creation.\nYou can set a database-specific email address for that user by clicking your avatar in the\ntop-right corner of the database and selecting My Preferences . You will still need\nto sign in to the database using the email address used at the time of the database creation.\n- To change the email address used to sign in to a database, contact Odoo Support .\nTo change the email address used to sign in to a database, contact Odoo Support .\nIn addition to the database you create, all databases you are invited to join with your Odoo.com accountâs email address will be displayed under the database manager .", "headings": [], "doc_id": "98d2f2063c4c2e58"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/odoo_online.html", "title": "Odoo Online", "module": "install", "section": "Odoo Online", "text": "# Odoo Online\n\nOdoo Online offers private databases hosted and managed by Odoo.\nOdoo Online databases can be accessed using any web browser and do not require a local installation.\nThey can be used for long-term production or to thoroughly test Odoo, including customizations that\ndo not require custom code.\nTo quickly try out Odoo, shared demo databases are available for\ntesting. No registration is required; however, each database is only available for a few hours.\nOdoo Online is incompatible with custom modules or modules from the Odoo Apps Store .\n\n## Database manager\n\nTo manage an Odoo Online database, open to the database manager and sign in as the database administrator.\n\n### Domain names\n\nConfigure a custom domain name by selecting a database and clicking Domain Names .\nRegister a domain name for free .\n\n### Tags\n\nAdd tags to identify and sort databases by selecting a database and clicking Tags . In the dialog box, enter a tag, click the ( plus ) button, and click Save .\nSearch for tags in the search bar at the top right.\n\n### Hide\n\nPermanently hide the database from the database manager by selecting it and clicking Hide . In the dialog box, click Yes, I donât need it\nanymore .\nIt is possible to access a hidden database through its URL.\n\n### Manage\n\nAccess all other database management options by selecting it and clicking Manage .\n\n#### Switch plans\n\nSwitch pricing plans by clicking Switch under the\ndesired plan.\n\n#### Upgrade\n\nLaunch a database upgrade by clicking Upgrade .\nThis option is only displayed when an upgrade is available.\n\n#### Rename\n\nRename and change the URL of a database by clicking Rename . In the dialog box, enter a New name and click Rename .\n\n#### Duplicate\n\nCreate a copy of the database by clicking Duplicate . In the dialog box, enter a New name and click Duplicate .\n- By default, the For testing purposes option is enabled. It disables all external\nactions (emails, payments, delivery orders, etc.) on the duplicated database.\nBy default, the For testing purposes option is enabled. It disables all external\nactions (emails, payments, delivery orders, etc.) on the duplicated database.\n- Duplicates expire after 15 days.\nDuplicates expire after 15 days.\n- A maximum of five duplicates can be created per database. Under extraordinary circumstances,\ncontact Odoo Support to extend the limit.\nA maximum of five duplicates can be created per database. Under extraordinary circumstances,\ncontact Odoo Support to extend the limit.\n\n#### Download a backup\n\nDownload a ZIP file containing a database backup by clicking Download Backup .\n- Databases are backed up daily as per the Odoo Cloud Hosting SLA .\nDatabases are backed up daily as per the Odoo Cloud Hosting SLA .\n- If the Download Backup option is disabled, it means the database is too large to be\ndownloaded using the database manager. Contact Odoo Support to\nrequest an alternative download solution.\nIf the Download Backup option is disabled, it means the database is too large to be\ndownloaded using the database manager. Contact Odoo Support to\nrequest an alternative download solution.\n\n#### View admin activity logs\n\nView the logs of all actions taken by Odoo employees or the database administrator on the database\nby clicking View Admin Activity Logs .\nActions taken by Odoo employees are typically the result of requests submitted to Odoo support,\ndone within the context of a quick start project, or necessary to maintain the database.\n\n#### Transfer ownership\n\nCreate a support ticket to request a database ownership transfer by clicking Transfer\nOwnership .\n\n#### Delete\n\nDelete the database and close its related subscription by clicking Delete . In the dialog\nbox, click Delete .\nAll the databaseâs data will be deleted instaneously for all users and cannot be restored . It\nis recommended to download a backup before deleting a database.\nAfter deletion, the databaseâs name becomes available to anyone.\n\n## Web services\n\nTo retrieve a list of all databases displayed under the database manager programmatically, call the list method of the odoo.database model via an web service call.\n`list`\n`odoo.database`\nTo retrieve this list with the xmlrpc.client library:\n`xmlrpc.client`\nThe equivalent example with JSON-RPC:", "headings": ["Database manager", "Domain names", "Tags", "Hide", "Manage", "Web services"], "doc_id": "47640ceac48719af"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/odoo_sh.html", "title": "Odoo.sh", "module": "install", "section": "Odoo.sh", "text": "# Odoo.sh\n\nOdoo.sh is the official cloud platform for hosting and managing Odoo applications. It offers a\nrange of features such as web shell, module dependencies, continuous integration, and SSH access.", "headings": [], "doc_id": "cd9039b01978e9db"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/odoo_sh/advanced/containers.html", "title": "Containers", "module": "install", "section": "Containers", "text": "# Containers\n\n## Overview\n\nEach build is isolated within its own container (Linux namespaced container).\nThe base is an Ubuntu system, where all of Odooâs required dependencies,\nas well as common useful packages, are installed.\nIf your project requires additional Python dependencies, or more recent releases,\nyou can define a requirements.txt file in the root of your branches listing them.\nThe platform will take care to install these dependencies in your containers. The pip requirements specifiers documentation can help you write a requirements.txt file.\nTo have a concrete example,\ncheck out the requirements.txt file of Odoo .\n`requirements.txt`\n`requirements.txt`\nThe requirements.txt files of submodules are taken into account as well. The platform\nlooks for requirements.txt files in each folder containing Odoo modules: Not in the module folder itself,\nbut in their parent folder.\n`requirements.txt`\n`requirements.txt`\n\n## Directory structure\n\nAs the containers are Ubuntu based, their directory structure follows the linux Filesystem Hierarchy Standard. Ubuntuâs filesystem tree overview explains the main directories.\nHere are the Odoo.sh pertinent directories:\nBoth Python 2.7 and 3.5 are installed in the containers. However:\n- If your project is configured to use Odoo 10.0, the Odoo server runs with Python 2.7.\nIf your project is configured to use Odoo 10.0, the Odoo server runs with Python 2.7.\n- If your project is configured to use Odoo 11.0 or above, the Odoo server runs with Python 3.5.\nIf your project is configured to use Odoo 11.0 or above, the Odoo server runs with Python 3.5.\n\n## Database shell\n\nWhile accessing a container with the shell, you can access the database using psql .\nBe careful ! Use transactions ( BEGINâ¦COMMIT/ROLLBACK )\nfor every sql statements leading to changes\n( UPDATE , DELETE , ALTER , â¦), especially for your production database.\nThe transaction mechanism is your safety net in case of mistake.\nYou simply have to rollback your changes to revert your database to its previous state.\nFor example, it may happen that you forget to set your WHERE condition.\nIn such a case, you can rollback to revert the unwanted changes that you just mistakenly did, and rewrite the statement:\nHowever, do not forget to either commit or rollback your transaction after having done it.\nOpen transactions may lock records in your tables\nand your running database may wait for them to be released. It can cause a server to hang indefinitely.\nIn addition, when possible, use your staging databases to test your statements first. It gives you an extra safety net.\n\n## Run an Odoo server\n\nYou can start an Odoo server instance from a container shell. You wonât be able to access it from the outside world\nwith a browser, but you can for instance:\n- use the Odoo shell,\n- install a module,\n- update a module,\n- run the tests for a module,\nrun the tests for a module,\nIn the above commands, the argument:\n- --without-demo=all prevents demo data to be loaded for all modules\n--without-demo=all prevents demo data to be loaded for all modules\n`--without-demo=all`\n- --stop-after-init will immediately shutdown the server instance after it completed the operations you asked.\n--stop-after-init will immediately shutdown the server instance after it completed the operations you asked.\n`--stop-after-init`\nMore options are available and detailed in the CLI documentation .\nYou can find in the logs ( ~/logs/odoo.log ) the addons path used by Odoo.sh to run your server.\nLook for â odoo: addons paths â:\nBe careful , especially with your production database.\nOperations that you perform running this Odoo server instance are not isolated:\nChanges will be effective in the database. Always, make your tests in your staging databases.\n\n## Debugging in Odoo.sh\n\nDebugging an Odoo.sh build is not really different than another Python app. This article only explains the specificities and limitations of the Odoo.sh platform, and assumes that you already know how to use a debugger.\nIf you donât know how to debug a Python application yet, there are multiple introductory courses that can be easily found on the Internet.\nYou can use pdb , pudb or ipdb to debug your code on Odoo.sh.\nAs the server is run outside a shell, you cannot launch the debugger directly from your Odoo instance backend as the debugger needs a shell to operate.\n`pdb`\n`pudb`\n`ipdb`\n- pdb is installed by default in every container.\npdb is installed by default in every container.\n- If you want to use pudb or ipdb you have to install it before. To do so, you have two options: temporary (only in the current build): $ pip install pudb --user or $ pip install ipdb --user permanent: add pudb or ipdb to your project requirements.txt file.\nIf you want to use pudb or ipdb you have to install it before.\nTo do so, you have two options:\n- temporary (only in the current build): $ pip install pudb --user or $ pip install ipdb --user\ntemporary (only in the current build):\n- permanent: add pudb or ipdb to your project requirements.txt file.\npermanent: add pudb or ipdb to your project requirements.txt file.\n`pudb`\n`ipdb`\n`requirements.txt`\nThen edit the code where you want to trigger the debugger and add this:\nThe condition sys.__stdin__.isatty() is a hack that detects if you run Odoo from a shell.\n`sys.__stdin__.isatty()`\nSave the file and then run the Odoo Shell:\nFinally, via the Odoo Shell, you can trigger the piece of code/function/method\nyou want to debug.", "headings": ["Overview", "Directory structure", "Database shell", "Run an Odoo server", "Debugging in Odoo.sh"], "doc_id": "035d5bd76bf43e8f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/odoo_sh/advanced/frequent_technical_questions.html", "title": "Frequent Technical Questions", "module": "install", "section": "Frequent Technical Questions", "text": "# Frequent Technical Questions\n\n## âScheduled actions do not run at the exact time they were expectedâ\n\nOn the Odoo.sh platform, we cannot guarantee an exact running time for scheduled actions.\nThis is due to the fact that there might be multiple customers on the same server, and we must guarantee a fair share of the server for every customer. Scheduled actions are therefore implemented slightly differently than on a regular Odoo server, and are run on a best effort policy.\nDo not expect any scheduled action to be run more often than every 5 min.\n\n## Are there âbest practicesâ regarding scheduled actions?\n\nOdoo.sh always limits the execution time of scheduled actions (*aka* crons). Therefore, you must keep this fact in mind when developing your own crons.\n- Your scheduled actions should work on small batches of records.\nYour scheduled actions should work on small batches of records.\n- Your scheduled actions should commit their work after processing each batch;\nthis way, if they get interrupted by the time-limit, there is no need to start over.\nYour scheduled actions should commit their work after processing each batch;\nthis way, if they get interrupted by the time-limit, there is no need to start over.\n- Your scheduled actions should be idempotent : they must not\ncause side-effects if they are started more often than expected.\nYour scheduled actions should be idempotent : they must not\ncause side-effects if they are started more often than expected.\n\n## How can I automate tasks when an IP address change occurs?\n\nOdoo.sh notifies project administrators of IP address changes. Additionally, when the IP address of a production instance changes, an HTTP GET request is made\nto the path /_odoo.sh/ip-change with the new IP address included as a query string parameter\n( new ), along with the previous IP address as an additional parameter ( old ).\n`GET`\n`/_odoo.sh/ip-change`\n`new`\n`old`\nThis mechanism allows custom actions to be applied in response to the IP address change\n(e.g., sending an email, contacting a firewall API, configuring database objects, etc.)\nFor security reasons, the /_odoo.sh/ip-change route is accessible only internally by the platform\nitself and returns a 403 response if accessed through any other means.\n`/_odoo.sh/ip-change`\n`403`\nHere is a pseudo-implementation example:", "headings": ["âScheduled actions do not run at the exact time they were expectedâ", "Are there âbest practicesâ regarding scheduled actions?", "How can I automate tasks when an IP address change occurs?"], "doc_id": "6ca147a06b8cd035"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/odoo_sh/advanced/submodules.html", "title": "Submodules", "module": "install", "section": "Submodules", "text": "# Submodules\n\n## Overview\n\nA Git submodule allows you to integrate other Git projects\ninto your code, without the need to copy-paste all their code.\nIndeed, your custom modules can depend on modules from other repositories.\nRegarding Odoo, this feature allows you to add modules from other Git repositories into the branches of your repository.\nAdding these dependencies in your branch through submodules makes the deployment of your code and servers easier,\nas you can clone the repositories added as submodules at the same time you clone your own repository.\nBesides, you can choose the branch of the repository added as submodule\nand you have the control of the revision you want.\nItâs up to you to decide whether you want to pin the submodule to a specific revision and when you want to update\nto a newer revision.\nIn Odoo.sh, the submodules give you the possibility to use and depend on modules available in other repositories.\nThe platform will detect that you added modules through submodules in your branches\nand add them to your addons path automatically so you can install them in your databases.\nIf you add private repositories as submodules in your branches,\nyou need to configure a deploy key in your Odoo.sh project settings and in your repository settings.\nOtherwise Odoo.sh wonât be allowed to download them.\nThe procedure is detailed in the chapter Settings > Submodules .\n\n## Adding a submodule\n\n### With Odoo.sh (simple)\n\nFor now it is not possible to add private repositories with this method. You can nevertheless\ndo so with Git .\nOn Odoo.sh, in the branches view of your project, choose the branch in which you want to add a submodule.\nIn the upper right corner, click on the Submodule button, and then on Run .\nA dialog with a form is shown. Fill the inputs as follows:\n- Repository URL: The SSH URL of the repository.\nRepository URL: The SSH URL of the repository.\n- Branch: The branch you want to use.\nBranch: The branch you want to use.\n- Path: The folder in which you want to add this submodule in your branch.\nPath: The folder in which you want to add this submodule in your branch.\nOn Github, you can get the repository URL with the Clone or download button of the repository. Make sure to use SSH .\n\n### With Git (advanced)\n\nIn a terminal, in the folder where your Git repository is cloned,\ncheckout the branch in which you want to add a submodule:\nThen, add the submodule using the command below:\n- <git@yourprovider.com>:<username/repository.git> by the SSH URL of the repository you want to add as submodule,\n<git@yourprovider.com>:<username/repository.git> by the SSH URL of the repository you want to add as submodule,\n- <branch> by the branch you want to use in the above repository,\n<branch> by the branch you want to use in the above repository,\n- <path> by the folder in which you want to add this submodule.\n<path> by the folder in which you want to add this submodule.\nCommit and push your changes:\n- <remote> by the repository on which you want to push your changes. For a standard Git setup, this is origin .\n<remote> by the repository on which you want to push your changes. For a standard Git setup, this is origin .\n- <branch> by the branch on which you want to push your changes.\nMost likely the branch you used git checkout on in the first step.\n<branch> by the branch on which you want to push your changes.\nMost likely the branch you used git checkout on in the first step.\n`gitcheckout`\nYou can read the git-scm.com documentation for more details about the Git submodules.\nFor instance, if you would like to update your submodules to have their latest revision,\nyou can follow the chapter Pulling in Upstream changes .\n\n## Ignore modules\n\nIf youâre adding a repository that contains a lot of modules, you may want to ignore some of them in case there are any\nthat are installed automatically. To do so, you can prefix your submodule folder with a . . The platform will\nignore this folder and you can hand pick your modules by creating symlinks to them from another folder.\n`.`", "headings": ["Overview", "Adding a submodule", "With Odoo.sh (simple)", "With Git (advanced)", "Ignore modules"], "doc_id": "1edf1641d5860b36"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/odoo_sh/first_module.html", "title": "Your first module", "module": "install", "section": "Your first module", "text": "# Your first module\n\n## Overview\n\nThis chapter helps you to create your first Odoo module and deploy it in your Odoo.sh project.\nThis tutorial requires you created a project on Odoo.sh, and\nyou know your Github repositoryâs URL.\nBasic use of Git and Github is explained.\nThe below assumptions are made:\n- ~/src is the directory where are located the Git repositories related to your Odoo projects,\n~/src is the directory where are located the Git repositories related to your Odoo projects,\n- odoo is the Github user,\nodoo is the Github user,\n- odoo-addons is the Github repository,\nodoo-addons is the Github repository,\n- feature-1 is the name of a development branch,\nfeature-1 is the name of a development branch,\n- master is the name of the production branch,\nmaster is the name of the production branch,\n- my_module is the name of the module.\nmy_module is the name of the module.\nReplace these by the values of your choice.\n\n## Create the development branch\n\n### From Odoo.sh\n\nIn the branches view:\n- hit the + button next to the development stage,\nhit the + button next to the development stage,\n`+`\n- choose the branch master in the Fork selection,\nchoose the branch master in the Fork selection,\n- type feature-1 in the To input.\ntype feature-1 in the To input.\nOnce the build created, you can access the editor and browse to the folder ~/src/user to access\nto the code of your development branch.\n\n### From your computer\n\nClone your Github repository on your computer:\n\n## Create the module structure\n\n### Scaffolding the module\n\nWhile not necessary, scaffolding avoids the tedium of setting the basic Odoo module structure.\nYou can scaffold a new module using the executable odoo-bin .\nFrom the Odoo.sh editor, in a terminal:\nOr, from your computer, if you have an installation of Odoo:\nIf you do not want to bother installing Odoo on your computer,\nyou can also download this module structure template in\nwhich you replace every occurrences of my_module to the name of your choice.\n`downloadthismodulestructuretemplate`\nThe below structure will be generated:\nDo not use special characters other than the underscore ( _ ) for your module name, not even an\nhyphen ( - ). This name is used for the Python classes of your module, and having classes name\nwith special characters other than the underscore is not valid in Python.\nUncomment the content of the files:\n- models/models.py ,\nan example of model with its fields,\nmodels/models.py ,\nan example of model with its fields,\n- views/views.xml ,\na tree and a form view, with the menus opening them,\nviews/views.xml ,\na tree and a form view, with the menus opening them,\n- demo/demo.xml ,\ndemo records for the above example model,\ndemo/demo.xml ,\ndemo records for the above example model,\n- controllers/controllers.py ,\nan example of controller implementing some routes,\ncontrollers/controllers.py ,\nan example of controller implementing some routes,\n- views/templates.xml ,\ntwo example qweb views used by the above controller routes,\nviews/templates.xml ,\ntwo example qweb views used by the above controller routes,\n- __manifest__.py ,\nthe manifest of your module, including for instance its title, description and data files to load.\nYou just need to uncomment the access control list data file: # 'security/ir.model.access.csv',\n__manifest__.py ,\nthe manifest of your module, including for instance its title, description and data files to load.\nYou just need to uncomment the access control list data file:\n\n### Manually\n\nIf you want to create your module structure manually,\nyou can follow the Server framework 101 tutorial to understand\nthe structure of a module and the content of each file.\n\n## Push the development branch\n\nStage the changes to be committed\nPush your changes to your remote repository\nFrom an Odoo.sh editor terminal:\nThe above command is explained in the section Commit and push changes of the Online editor page .\nIt includes the explanation regarding the fact you will be prompted to type your username and\npassword, and what to do if you use the two-factor authentication.\nOr, from your computer terminal:\nYou need to specify -u origin feature-1 for the first push only.\nFrom that point, to push your future changes from your computer, you can simply use\n\n## Test your module\n\nYour branch should appear in your development branches in your project.\nIn the branches view of your project,\nyou can click on your branch name in the left navigation panel to access its history.\nYou can see here the changes you just pushed, including the comment you set.\nOnce the database ready, you can access it by clicking the Connect button.\nIf your Odoo.sh project is configured to install your module automatically,\nyou will directly see it amongst the database apps. Otherwise, it will be available in the apps to\ninstall.\nYou can then play around with your module, create new records and test your features and buttons.\n\n## Test with the production data\n\nYou need to have a production database for this step. You can create it if you do not have it yet.\nOnce you tested your module in a development build with the demo data and believe it is ready,\nyou can test it with the production data using a staging branch.\n- Make your development branch a staging branch, by drag and dropping it onto the staging section\ntitle.\nMake your development branch a staging branch, by drag and dropping it onto the staging section\ntitle.\n- Merge it in an existing staging branch, by drag and dropping it onto the given staging branch.\nMerge it in an existing staging branch, by drag and dropping it onto the given staging branch.\nYou can also use the git merge command to merge your branches.\n`gitmerge`\nThis will create a new staging build, which will duplicate the production database and make it run\nusing a server updated with your latest changes of your branch.\nOnce the database ready, you can access it using the Connect button.\n\n### Install your module\n\nYour module will not be installed automatically, you have to install it from the apps menu. Indeed,\nthe purpose of the staging build is to test the behavior of your changes as it would be on your\nproduction, and on your production you would not like your module to be installed automatically, but\non demand.\nYour module may not appear directly in your apps to install either, you need to update your apps\nlist first:\n- Activate the developer mode\nActivate the developer mode\n- in the apps menu, click the Update Apps List button,\nin the apps menu, click the Update Apps List button,\n- in the dialog that appears, click the Update button.\nin the dialog that appears, click the Update button.\nYour module will then appear in the list of available apps.\n\n## Deploy in production\n\nOnce you tested your module in a staging branch with your production data,\nand believe it is ready for production, you can merge your branch in the production branch.\nDrag and drop your staging branch on the production branch.\nYou can also use the git merge command to merge your branches.\n`gitmerge`\nThis will merge the latest changes of your staging branch in the production branch,\nand update your production server with these latest changes.\nOnce the database ready, you can access it using the Connect button.\n\n### Install your module\n\nYour module will not be installed automatically,\nyou have to install it manually as explained in the above section about installing your module in staging databases .\n\n## Add a change\n\nThis section explains how to add a change in your module by adding a new field in a model and deploy\nit.\n- browse to your module folder ~/src/user/my_module ,\nbrowse to your module folder ~/src/user/my_module ,\n- then, open the file models/models.py .\nthen, open the file models/models.py .\n- use the file browser of your choice to browse to your module folder ~/src/odoo-addons/my_module ,\nuse the file browser of your choice to browse to your module folder ~/src/odoo-addons/my_module ,\n- then, open the file models/models.py using the editor of your choice,\nsuch as Atom , Sublime Text , PyCharm , vim , â¦\nthen, open the file models/models.py using the editor of your choice,\nsuch as Atom , Sublime Text , PyCharm , vim , â¦\nThen, after the description field\nThen, open the file views/views.xml .\nThese changes alter the database structure by adding a column in a table,\nand modify a view stored in database.\nIn order to be applied in existing databases, such as your production database,\nthese changes requires the module to be updated.\nIf you would like the update to be performed automatically by the Odoo.sh platform when you push\nyour changes, increase your module version in its manifest.\nOpen the module manifest __manifest__.py .\nThe platform will detect the change of version and trigger the update of the module upon the new\nrevision deployment.\nBrowse to your Git folder.\nThen, from an Odoo.sh terminal:\nOr, from your computer terminal:\nThen, stage your changes to be committed\nFrom an Odoo.sh terminal:\nOr, from your computer terminal:\nThe platform will then create a new build for the branch feature-1 .\nOnce you tested your changes, you can merge your changes in the production branch, for instance by\ndrag-and-dropping the branch on the production branch in the Odoo.sh interface. As you increased the\nmodule version in the manifest, the platform will update the module automatically and your new field\nwill be directly available. Otherwise you can manually update the module within the apps list.\n\n## Use an external Python library\n\nIf you would like to use an external Python library which is not installed by default,\nyou can define a requirements.txt file listing the external libraries your modules depends on.\n- It is not possible to install or upgrade system packages on an Odoo.sh database (e.g., apt\npackages). However, under specific conditions, packages can be considered for installation.\nThis also applies to Python modules requiring system packages for their compilation, and third-party Odoo modules .\nIt is not possible to install or upgrade system packages on an Odoo.sh database (e.g., apt\npackages). However, under specific conditions, packages can be considered for installation.\nThis also applies to Python modules requiring system packages for their compilation, and third-party Odoo modules .\n- PostgreSQL extensions are not supported on Odoo.sh.\nPostgreSQL extensions are not supported on Odoo.sh.\n- For more information, consult our FAQ .\nFor more information, consult our FAQ .\nThe platform will use this file to automatically install the Python libraries your project needs.\nThe feature is explained in this section by using the Unidecode library in your module.\nCreate a file requirements.txt in the root folder of your repository\nFrom the Odoo.sh editor, create and open the file ~/src/user/requirements.txt.\nOr, from your computer, create and open the file ~/src/odoo-addons/requirements.txt.\nThen use the library in your module, for instance to remove accents from characters in the name\nfield of your model.\nOpen the file models/models.py .\nAdding a Python dependency requires a module version increase for the platform to install it.\nEdit the module manifest __manifest__.py\nStage and commit your changes:\nThen, push your changes:\nIn an Odoo.sh terminal:\nIn your computer terminal:", "headings": ["Overview", "Create the development branch", "From Odoo.sh", "From your computer", "Create the module structure", "Scaffolding the module", "Manually", "Push the development branch", "Test your module", "Test with the production data", "Install your module", "Deploy in production", "Install your module", "Add a change", "Use an external Python library"], "doc_id": "4c586273fc6470b6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/odoo_sh/getting_started.html", "title": "Getting started", "module": "install", "section": "Getting started", "text": "# Getting started\n\n## Main components\n\nWhen working with Odoo.sh, it is important to understand the main components involved. While they\nare all interconnected, each one plays a distinct role in the development and deployment of Odoo\napplications:\n- GitHub repository : a version-controlled space where the Odoo applicationsâ source code is\nstored. It tracks every change, supports collaboration, and can be either public or private.\nGitHub repository : a version-controlled space where the Odoo applicationsâ source code is\nstored. It tracks every change, supports collaboration, and can be either public or private.\n- Odoo.sh project : a Platform as a Service (PaaS) that integrates with GitHub and enables\nstreamlined development, testing, and deployment of Odoo applications. It includes tools such as\nautomated backups, staging environments, and continuous integration pipelines.\nOdoo.sh project : a Platform as a Service (PaaS) that integrates with GitHub and enables\nstreamlined development, testing, and deployment of Odoo applications. It includes tools such as\nautomated backups, staging environments, and continuous integration pipelines.\n- Odoo database : a database stores all the operational data used and generated by Odoo\napplications, such as business records, configurations, and user data.\nOdoo database : a database stores all the operational data used and generated by Odoo\napplications, such as business records, configurations, and user data.\nTogether, they form a cohesive pipeline from code development to a live business use.\n\n## User types\n\nOdoo.sh involves different types of users, each with a specific role in the project lifecycle:\n- GitHub users: developers with access to the GitHub repository linked to the Odoo.sh project.\nAccess to the repository does not automatically make someone a collaborator on the Odoo.sh\nproject.\nGitHub users: developers with access to the GitHub repository linked to the Odoo.sh project.\nAccess to the repository does not automatically make someone a collaborator on the Odoo.sh\nproject.\n- Odoo.sh collaborators: individuals managing the Odoo.sh project. Each collaborator must be\nlinked to a GitHub user. However, collaborators are not the same as database users.\nOdoo.sh collaborators: individuals managing the Odoo.sh project. Each collaborator must be\nlinked to a GitHub user. However, collaborators are not the same as database users.\n- Database users: end-users of the deployed Odoo database. They interact with the live system but\nare not involved in development or project management.\nDatabase users: end-users of the deployed Odoo database. They interact with the live system but\nare not involved in development or project management.", "headings": ["Main components", "User types"], "doc_id": "efcc02fd722ed14a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/odoo_sh/getting_started/branches.html", "title": "Branches", "module": "install", "section": "Branches", "text": "# Branches\n\nThe Branches view provides an overview of the different branches in your repository.\n\n## Stages\n\nOdoo.sh offers three different branch stages:\n- Production\n- Staging\n- Development\nYou can change the stage of a branch by dragging and dropping it under the desired stage.\n- Development branches can be moved under Staging . If you try to move a development\nbranch under Production , a warning message will be displayed explaining that you\ncan only have one production branch per project.\nDevelopment branches can be moved under Staging . If you try to move a development\nbranch under Production , a warning message will be displayed explaining that you\ncan only have one production branch per project.\n- Staging branches can be moved under Development , but it is not possible to move\nthem under Production .\nStaging branches can be moved under Development , but it is not possible to move\nthem under Production .\n- The production branch can only be moved under Development . If you try to move it\nunder Staging , you can only perform a merge. Refer to the merging section for a detailed explanation of this\nprocess.\nThe production branch can only be moved under Development . If you try to move it\nunder Staging , you can only perform a merge. Refer to the merging section for a detailed explanation of this\nprocess.\n\n### Production\n\nThe production branch contains the code used to run the production database. There can be only one\nproduction branch.\nWhen you push a new commit to this branch, the production server is updated with the revised code\nand restarted.\nIf the changes require a module update, such as changing a form view, and you want the update to\nbe performed automatically, you can increase the moduleâs version number in its manifest file\n( __manifest__.py ). The platform then performs the update, during which the instance will be\nheld temporarily unavailable for maintenance reasons.\n`__manifest__.py`\nThis method is equivalent to upgrading the module using the Apps menu or the -u switch\non the command line .\n`-u`\n- If the changes prevent the server from restarting or if the module update fails, the server is\nautomatically reverted to the previous successful code revision, and the database is rolled\nback to its previous state. Access to the failed updateâs log to troubleshoot it.\nIf the changes prevent the server from restarting or if the module update fails, the server is\nautomatically reverted to the previous successful code revision, and the database is rolled\nback to its previous state. Access to the failed updateâs log to troubleshoot it.\n- The demo data is not loaded, as it is not intended for use on a production database. The unit\ntests are not performed, as it would increase\nthe unavailability time of the production database during the update.\nThe demo data is not loaded, as it is not intended for use on a production database. The unit\ntests are not performed, as it would increase\nthe unavailability time of the production database during the update.\nOdoo.sh automatically backs up the production database. It keeps seven daily, four weekly, and three\nmonthly backups. Each backup includes the database dump, the filestore (attachments and binary\nfields), logs, and sessions.\nWhen using trial projects , the production branch and all staging branches are automatically\nset back to the development stage after 30 days .\n\n### Staging\n\nStaging branches are meant to test new features using production data without compromising the\nactual production database with test records. They create neutralized duplicates of the production\ndatabase.\nThe neutralization disables:\n- Scheduled actions Note To test them, trigger them manually or re-enable them. Be aware that the platform will trigger\nthem less often if no one is using the database in order to save resources.\nTo test them, trigger them manually or re-enable them. Be aware that the platform will trigger\nthem less often if no one is using the database in order to save resources.\n- Outgoing emails Note They are instead intercepted using a mail catcher. An interface to view the emails sent by the database is provided in your Odoo.sh project.\nThat way, no emails are sent to your contacts.\nThey are instead intercepted using a mail catcher. An interface to view the emails sent by the database is provided in your Odoo.sh project.\nThat way, no emails are sent to your contacts.\n- IAP services\n- Payment providers and shipping connectors Note They are put into test mode.\nPayment providers and shipping connectors\nThey are put into test mode.\nIf you configure or view changes in a staging database, make sure to record them (noting them step\nby step, reproducing in production, etc.) or write them directly in the branchâs modules, using XML\ndata files to override the default configuration or views. Check the first module\ndocumentation to view examples.\nUnit tests are not performed. They rely on demo data, which is not loaded into the production and\nstaging databases. If Odoo starts supporting running the units without demo data, Odoo.sh will\nthen consider running the tests on staging databases.\nStaging databases are not automatically backed up. Nevertheless, you can restore a backup of the\nproduction database in a staging branch for testing purposes or to manually recover data that has\nbeen accidentally deleted from the production database. It is possible to create manual backups of\nstaging databases.\nDatabases created for staging branches are automatically deleted after one month. To use the\nbranch again, you must rebuild it.\n\n### Development\n\nDevelopment branches create new databases using demo data to run the unit tests. The installed\nmodules are those included in the branch. You can change this list of modules to install in the project settings .\nWhen pushing a commit to a development branch, a new server is started, with a database created from\nscratch, and the branch is updated. The demo data is loaded, and the unit tests are performed by\ndefault to verify that the changes do not break any of the features being tested. You can disable\nthe tests or allow specific tests to be run with custom tags by going to the branchâs settings .\nSimilarly to staging branches, emails are not sent but are intercepted by a mail catcher, and\nscheduled actions are not triggered as long as the database is not in use.\nDevelopment databases are not automatically backed up, and manual backups are not possible.\nDatabases created for development branches are intended to last approximately three days. After\nthat, they can be automatically garbage-collected to make room for new databases without prior\nnotice.\n\n### Merging branches\n\nYou can merge your branches by dragging and dropping them into each other.\nTo test the changes of development branches with the production data, you can either:\n- Merge the development branch into a staging branch by dragging and dropping it onto the desired\nbranch; or\nMerge the development branch into a staging branch by dragging and dropping it onto the desired\nbranch; or\n- Drag and drop the development branch under the Staging section to make it a staging\nbranch.\nDrag and drop the development branch under the Staging section to make it a staging\nbranch.\nWhen the changes are ready for production, drag and drop the staging branch into the production\nbranch to merge and deploy them.\n- You can merge development branches into the production branch directly. However, changes will\nnot be validated against the production data through a staging branch, so there is a higher\nrisk of encountering issues in the production database.\nYou can merge development branches into the production branch directly. However, changes will\nnot be validated against the production data through a staging branch, so there is a higher\nrisk of encountering issues in the production database.\n- You can merge development branches into each other, and staging branches into each other.\nYou can merge development branches into each other, and staging branches into each other.\n- You can also use git merge directly on your workstation to merge your branches. Odoo.sh is\nnotified when new revisions are pushed to your branches.\nYou can also use git merge directly on your workstation to merge your branches. Odoo.sh is\nnotified when new revisions are pushed to your branches.\n`gitmerge`\nMerging a staging branch into the production branch only merges the source code. Any changes made to\nthe staging database are not passed to the production database. However, if you modify the code in\nthe repository, it will be passed to the production branch when merging.\nIf you test configuration changes in staging branches, and want them to be applied to the production\nbranch, you have to, either:\n- Write the configuration changes in XML data files to overide the default configuration or views in\nthe branch, and then increase the version of the module in its manifest ( __manifest__.py )\nto trigger the module update when merging the staging branch in the production branch. Note This method is recommended for better scalability of your developments, as you will use the Git\nversioning features for all configuration changes, thereby ensuring traceability of your\nchanges.\nWrite the configuration changes in XML data files to overide the default configuration or views in\nthe branch, and then increase the version of the module in its manifest ( __manifest__.py )\nto trigger the module update when merging the staging branch in the production branch.\n`__manifest__.py`\nThis method is recommended for better scalability of your developments, as you will use the Git\nversioning features for all configuration changes, thereby ensuring traceability of your\nchanges.\n- Pass them manually from the staging database to the production one by copying and pasting them.\nPass them manually from the staging database to the production one by copying and pasting them.\n\n## Tabs\n\n### History\n\nThe History tab gives an overview of the branch history:\n- The commit messages and their authors\nThe commit messages and their authors\n- The various events linked to the platform, such as stage changes, database imports, and backup\nrestores\nThe various events linked to the platform, such as stage changes, database imports, and backup\nrestores\nA status in the top right corner of each event indicates the current operation on the database\n(e.g., installation, update, backup import) or its outcome (e.g., test feedback, successful backup\nimport). If an operation is successful, a Connect button appears, allowing you to access\nthe database.\n\n### Mails\n\nThe Mails tab contains the mail catcher, which provides an overview of emails sent by\nthe database.\nThe mail catcher is available for development and staging branches. Emails from the production\ndatabase are actually sent and are not intercepted by the mail catcher.\n\n### Shell\n\nThe Shell tab provides shell access to the container.\nClicking Shell opens a new browser tab where you can run basic Linux commands ( ls , top ). You can open a shell on the database by running psql .\n`ls`\n`top`\n`psql`\nYou can open multiple shell tabs at once and arrange their layout by dragging and dropping them.\n- Production instance shells are highlighted in red to emphasize the danger of manipulating\nproduction instances directly, while staging/development instance shells are highlighted in\nyellow.\nProduction instance shells are highlighted in red to emphasize the danger of manipulating\nproduction instances directly, while staging/development instance shells are highlighted in\nyellow.\n- Long-running shell instances/idle shell sessions can be terminated at any time to free up\nresources.\nLong-running shell instances/idle shell sessions can be terminated at any time to free up\nresources.\n\n#### Commands\n\nHere is an overview of useful commands that you can run an Odoo.sh database terminal:\n- odoo-bin shell : to open an Odoo shell\nodoo-bin shell : to open an Odoo shell\n`odoo-binshell`\n- odoo-update : to update modules in the database\nodoo-update : to update modules in the database\n`odoo-update`\n- odoosh-restart : to restart Odoo.sh services (http or cron)\nodoosh-restart : to restart Odoo.sh services (http or cron)\n`odoosh-restart`\n- odoosh-storage : to check the storage usage of your instanceâs container filesystem\nodoosh-storage : to check the storage usage of your instanceâs container filesystem\n`odoosh-storage`\n- psql : to open a database shell\npsql : to open a database shell\n`psql`\n- mutt : to check how emails appear on text clients (staging and development instances)\nmutt : to check how emails appear on text clients (staging and development instances)\n`mutt`\n- lnav ~/logs/odoo.log : to navigate in your instanceâs odoo.log file\nlnav ~/logs/odoo.log : to navigate in your instanceâs odoo.log file\n`lnav~/logs/odoo.log`\n`odoo.log`\n- ncdu : to launch the disk usage analyzer with an interactive interface\nncdu : to launch the disk usage analyzer with an interactive interface\n`ncdu`\n- grep : to filter and find information in log or configuration files\ngrep : to filter and find information in log or configuration files\n`grep`\n\n### Editor\n\nClicking Editor opens a new browser tab to access an online integrated development\nenvironment (IDE) to edit the source code. You can also open terminals, Python consoles, and Odoo\nshell consoles.\nYou can open multiple tabs and drag and drop them to arrange the layout as you wish.\nOnline editor documentation .\n\n### Monitor\n\nThe Monitor tab displays various performance monitoring metrics of the current build.\nZoom in with your cursor to adjust the time range or select it manually from the time range\nselector. It is also possible to change the time zone.\n- Technical logs always use the UTC . To analyze these logs\ntogether with your monitoring metrics, ensure UTC is\nselected in the monitoring tool.\nTechnical logs always use the UTC . To analyze these logs\ntogether with your monitoring metrics, ensure UTC is\nselected in the monitoring tool.\n- Similarly, when sending a support ticket, ensure the information you share is based on UTC , as Odoo uses this time zone to investigate\nperformance issues.\nSimilarly, when sending a support ticket, ensure the information you share is based on UTC , as Odoo uses this time zone to investigate\nperformance issues.\nThe information is aggregated periodically. When this is the case, a blue dotted line is displayed,\nalong with the tag Aggregate Date . This means that the data before this date will appear\nflattened when compared to the data after this date. Therefore, when using the monitoring tool, it\nis recommended to focus on recent events to get the most detailed information possible.\nDotted Lines of other colors help you relate to other changes on the build (database import,\ngit push, etc.).\nOn each graph, an ð ( information ) icon is displayed in the top-left corner. Hover\nyour mouse over it to get more details about what the graph represents.\n\n#### Metrics\n\nThe Memory graph displays information about memory consumption:\n- Memory container represents Odoo workers and container processes.\nMemory container represents Odoo workers and container processes.\n- Memory postgresql represents the database.\nMemory postgresql represents the database.\nThe CPU graph displays information about CPU consumption:\n- CPU http represents Odoo workers.\nCPU http represents Odoo workers.\n- CPU cron/mail represents scheduled actions and incoming emails.\nCPU cron/mail represents scheduled actions and incoming emails.\n- CPU postgresql (database processes)\nCPU postgresql (database processes)\n- CPU other represents webshells, the editor, etc.\nCPU other represents webshells, the editor, etc.\nThe Storage graph displays information about the storage used:\n- Container represents the filestore, log files, and user files.\nContainer represents the filestore, log files, and user files.\n- Postgresql represents the database and indexes.\nPostgresql represents the database and indexes.\nThe Requests graph displays information about the number of HTTP requests per second:\n- HTTP successes represents successful requests.\nHTTP successes represents successful requests.\n- HTTP errors represents failed requests (check odoo.log ).\nHTTP errors represents failed requests (check odoo.log ).\n`odoo.log`\n- HTTP rate limited represents declined requests, possibly due to lack of workers.\nHTTP rate limited represents declined requests, possibly due to lack of workers.\nThe Concurrent requests (max) graph displays the maximum number of concurrent HTTP\nrequests per second.\nDatabase workers determine the number of concurrent requests that can be managed simultaneously.\nIt is essential to have enough workers to handle all incoming requests as they arrive. However,\nhaving additional workers beyond this does not improve the speed at which requests are processed.\nThe Average Response time displays the average response time to HTTP requests (in\nmilliseconds).\nThe Incoming graph displays data about the daily number of incoming emails:\n- Received Emails represents emails successfuly received.\nReceived Emails represents emails successfuly received.\n- Received Emails bounced represents emails unsuccessfully received.\nReceived Emails bounced represents emails unsuccessfully received.\nThe Outgoing graph displays data about the daily number of outgoing emails:\n- Sent Emails represents emails successfully sent.\nSent Emails represents emails successfully sent.\n- Sent Emails bounced represents emails unsuccessfully sent.\nSent Emails bounced represents emails unsuccessfully sent.\n\n### Logs\n\nThe Logs tab offers a real-time view of your serverâs logs.\nDifferent logs are available:\n- pip.log : the Python dependencies installation\npip.log : the Python dependencies installation\n`pip.log`\n- install.log : the database installation (for development branches, tests are included)\ninstall.log : the database installation (for development branches, tests are included)\n`install.log`\n- odoosh-import-database.log : the last imported dump process\nodoosh-import-database.log : the last imported dump process\n`odoosh-import-database.log`\n- odoo.log : the running server\nodoo.log : the running server\n`odoo.log`\n- update.log : the database updates\nupdate.log : the database updates\n`update.log`\n- pg_slow_queries.log : psql queries that take an unusual amount of time\npg_slow_queries.log : psql queries that take an unusual amount of time\n`pg_slow_queries.log`\n- sh_webshell.log : the actions taken in the webshell\nsh_webshell.log : the actions taken in the webshell\n`sh_webshell.log`\n- sh_editor.log : the actions taken in the editor\nsh_editor.log : the actions taken in the editor\n`sh_editor.log`\n- neutralize.log : the neutralization of the database (only staging)\nneutralize.log : the neutralization of the database (only staging)\n`neutralize.log`\nWhen new lines are added to the logs, they are displayed automatically. If you scroll to the bottom,\nthe browser scrolls automatically each time a new line is added.\nYou can pause the logs fetching process by clicking the ( pause ) button\nin the upper right corner. Otherwise, the process stops after five minutes. You can restart it by\nclicking the ( play ) button.\n\n### Backups\n\nThe Backups tab lists the available backups to download and restore, lets you perform a\nmanual backup and import a database.\nThe production database is automatically backed up daily. Seven daily, four weekly, and three\nmonthly backups are kept. Each backup includes the database dump, the filestore (attachments and\nbinary fields), logs, and sessions.\nYou can refer to the estimated scheduling of automatic backups to gain a better understanding of how the system works. This file is updated daily, taking the\ncurrent day as the departure point.\nStaging and development databases are not automatically backed up. However, you can restore a backup\nof the production database in your staging branches, for testing purposes, or manually recover data\nthat has been accidentally deleted from the production database.\nThe list contains the backups kept on the server of your production database. This server only keeps\none month of backups: seven daily and four weekly backups.\nDedicated backup servers keep the same backups, as well as three additional monthly backups. To\nrestore or download one of these monthly backups, contact Odoo Support .\nWhen merging a commit updating the version of one or several modules (in __manifest__.py ),\nor their linked Python dependencies (in requirements.txt ), then Odoo.sh performs an\nautomatic backup (flagged with type Update in the list), as either the container will be changed\nby the installation of new pip packages, either the database itself will be changed with the module\nupdate triggered afterwards. In these two cases, a backup is triggered as it may break something.\n`__manifest__.py`\n`requirements.txt`\n`Update`\nIf the merged commit does not update the version of a module or linked dependencies, then no backup\nis triggered by Odoo.sh, as neither the container nor the database is modified; therefore, the\nplatform considers this safe enough. As an extra precaution, you can make a manual backup before\nmodifiyng production sources.\nThe purpose of manual backups is to create a specific snapshot of production or staging databases\n(not available for development). These remain available for seven days. However, there is a limit of\nfive daily manual backups.\nThe Import Database feature accepts database archives from:\n- the standard Odoo database manager (available for on-premise Odoo servers under /web/database/manager )\nthe standard Odoo database manager (available for on-premise Odoo servers under /web/database/manager )\n`/web/database/manager`\n- the Odoo Online databases manager\nthe Odoo Online databases manager\n- the Odoo.sh Backups tab (using the ( Download Options )\nbutton)\nthe Odoo.sh Backups tab (using the ( Download Options )\nbutton)\n- the Odoo.sh Builds view (by clicking Download DB dump )\nthe Odoo.sh Builds view (by clicking Download DB dump )\n\n### Upgrade\n\nThe Upgrade tab can be used to upgrade production and staging branches of valid\nprojects. For more information about the upgrade process, refer to the Upgrade documentation .\n\n### Tools\n\nThe Tools tab contains the code profiler. It is used to start a profiling session,\nrecording the activities of Odoo workers running in the instance for a maximum of five minutes. You\ncan choose to terminate the session earlier, as running the tool for a shorter duration reduces the\namount of noise in the report.\nAfter each session, an interactive flame graph is created to help you visualize how the Odoo workers\nallocate their time.\nRunning the profiler consumes a lot of server resources, so avoid letting it run for too long.\nThe goal is to record a specific action in your database.\n\n### Settings\n\nThe Settings tab lists the configuration options available for the currently selected\nbranch. The options vary for each stage.\n\n#### Behavior upon new commits\n\nYou can change the branchâs behavior upon receiving a new commit for development and staging branches.\nBy default, a development branch creates a new build and a staging branch updates the previous\nbuild. This is useful if the feature you are working on requires a specific configuration, as you\nwould not need to manually configure it again after every commit.\nIf you select New build for a staging branch, a fresh copy of the production build\nis created every time a commit is pushed.\nA branch that is moved from staging to development is set automatically to Do\nnothing .\n\n#### Module installation\n\nYou can choose which modules should be installed automatically for development branches.\nTo change the default behavior, untick the Use Default option under Development build behavior and select one of the following options under Module Installation :\n- Install only my modules (does not include submodules) : only installs the branchâs\nmodules, excluding submodules . This is the default option.\nInstall only my modules (does not include submodules) : only installs the branchâs\nmodules, excluding submodules . This is the default option.\n- Full installation (no test suite) : installs the branchâs modules, submodules, and all\nstandard Odoo modules. When running the full installation, the test suite is disabled.\nFull installation (no test suite) : installs the branchâs modules, submodules, and all\nstandard Odoo modules. When running the full installation, the test suite is disabled.\n- Install a list of modules : installs the specified modules. To do so, enter their\ntechnical name, and separate them using commas (e.g., sale_management,website,accountant ).\nInstall a list of modules : installs the specified modules. To do so, enter their\ntechnical name, and separate them using commas (e.g., sale_management,website,accountant ).\n`sale_management,website,accountant`\nIf the test suite is enabled, installing all standard Odoo modules can take up to one hour.\n\n#### Test suite\n\nBy default, the test suite for development branches is enabled. You can restrict which tests are\nrun by entering test tags and separating them using\ncommas (e.g., custom_tags,at_install,post_install ).\n`custom_tags,at_install,post_install`\nTo disable the test suite entirely, untick Validate the test suite on new builds .\n\n#### Odoo version\n\nYou can change the version of Odoo for development branches, for example, to test upgraded code\nor develop features while your production database is in the process of being upgraded to a newer\nversion, by selecting another Version .\nBy default, Latest is selected as the Revision , and the sources of your Odoo\nserver are updated weekly automatically to benefit from the latest bug, security, and performance\nfixes.\nTo choose a specific revision instead, select it using the Revision field.\nRevisions expire after three months. You will be notified by email when the revisionâs expiration\ndate approaches. If you have not taken any action when it expires, the Revision field\nis automatically set back to Latest .\n\n#### Custom domains\n\nYou can configure additional <name>.odoo.com domains or your own custom domains for all branch\ntypes.\n`<name>.odoo.com`\nTo use your own custom domain, it is necessary to:\n- Own or purchase the domain name.\nOwn or purchase the domain name.\n- Enter the domain name under Custom domains (e.g., www.mycompany.com ), then click Add domain .\nEnter the domain name under Custom domains (e.g., www.mycompany.com ), then click Add domain .\n`www.mycompany.com`\n- Configure the domain name (e.g., www.mycompany.com ) using your registrarâs domain name manager\nwith a CNAME record value set to your production database domain name (e.g., mycompany.odoo.com ).\nConfigure the domain name (e.g., www.mycompany.com ) using your registrarâs domain name manager\nwith a CNAME record value set to your production database domain name (e.g., mycompany.odoo.com ).\n`www.mycompany.com`\n`mycompany.odoo.com`\nBare domains (e.g., mycompany.com ) are not accepted. They can only be configured using A records, which only accept IP addresses as their value. Therefore, a bare domain could suddenly\ncease to function, as the IP address of a database can change (e.g., following an upgrade, a\nhardware failure, a change of database hosting location).\n`mycompany.com`\nTo have both your bare domain (e.g., mycompany.com ) and www domain (e.g., www.mycompany.com )\nworking, it is necessary to redirect the bare domain to the www domain. .com. Most domain managers\nprovide a way to configure this redirection, commonly referred to as a web redirection.\n`mycompany.com`\n`www.mycompany.com`\nIf the redirection is correctly set up, an SSL certificate is automatically generated using Letâs\nEncrypt within the hour, meaning your domain will be accessible\nthrough HTTPS.\nIf the domain of your email addresses uses the SPF or DKIM authentication protocol, it is necessary to authorize Odoo as a\nsending host in the domain name settings to increase the deliverability of outgoing emails. For more\ninformation, refer to the Configure DNS records to send emails in Odoo documentation .\nIf Odoo is not authorized as a sending host, your outgoing emails may be flagged as spam.\n\n## Shell commands\n\nIn the top right corner of the view, several shell commands are displayed. The commands can be\ncopied using the clipboard button and then used in a terminal. In addition, some of them can be used\ndirectly from Odoo.shâs interface.\n\n### Clone\n\nThe clone command is used to create a local copy of your Git repository.\n- --recurse-submodules to download the submodules of your repository\n--recurse-submodules to download the submodules of your repository\n`--recurse-submodules`\n- --branch main to check out to a specific branch of the repository (e.g., development )\n--branch main to check out to a specific branch of the repository (e.g., development )\n`--branchmain`\n`development`\nThe run button is not available as the command is used to create a local copy on your machine.\n\n### Fork\n\nThe fork command is used to create a new branch based on the current one.\n- git checkout -b main-1 main a command to create a new branch (e.g., development-1 )\nbased on the current branch (e.g., development )\ngit checkout -b main-1 main a command to create a new branch (e.g., development-1 )\nbased on the current branch (e.g., development )\n`gitcheckout-bmain-1main`\n`development-1`\n`development`\n- git push -u origin development-1 a command to upload the new branch (e.g., development-1 ) to the remote repository\ngit push -u origin development-1 a command to upload the new branch (e.g., development-1 ) to the remote repository\n`gitpush-uorigindevelopment-1`\n`development-1`\n\n### Merge\n\nThe merge command is used to combine changes on one branch into another branch.\n- git merge staging-1 a command to merge the changes of the current branch into\nanother branch (e.g., staging-1 )\ngit merge staging-1 a command to merge the changes of the current branch into\nanother branch (e.g., staging-1 )\n`gitmergestaging-1`\n`staging-1`\n- git push -u origin staging a command to upload the merged changes to the remote\nrepository branch (e.g., staging )\ngit push -u origin staging a command to upload the merged changes to the remote\nrepository branch (e.g., staging )\n`gitpush-uoriginstaging`\n`staging`\n\n### SSH\n\nThe SSH command is used to connect to a build using SSH.\nTo use the SSH command, it is necessary to set up an SSH key first. To do so:\n- Generate a new SSH key .\nGenerate a new SSH key .\n- Copy the SSH key to your clipboard .\nCopy the SSH key to your clipboard .\n- On Odoo.sh, click your GitHub user in the top-right corner and select Profile .\nOn Odoo.sh, click your GitHub user in the top-right corner and select Profile .\n- Paste the SSH key under the Add a key manually field and click Add .\nPaste the SSH key under the Add a key manually field and click Add .\n- 25004381 the build ID\n25004381 the build ID\n`25004381`\n- my-user-my-repository-staging-25004381.dev.odoo.com the domain used to connect to the build\nmy-user-my-repository-staging-25004381.dev.odoo.com the domain used to connect to the build\n`my-user-my-repository-staging-25004381.dev.odoo.com`\nProvided you have the necessary access rights on the\nproject, you will be granted SSH access to the build.\nLong-running SSH connections are not guaranteed. Idle connections can be disconnected to free up\nresources.\n\n### Submodule\n\nThe submodule command is used to add a branch from another repository to your current branch as a\nsubmodule.\nSubmodules documentation\n- git submodule add -b master <URL> <PATH> a command to add a specific branch (e.g., master ) of a repository ( <URL> ) as a submodule under the specified path ( <PATH> ) in\nyour current branch.\ngit submodule add -b master <URL> <PATH> a command to add a specific branch (e.g., master ) of a repository ( <URL> ) as a submodule under the specified path ( <PATH> ) in\nyour current branch.\n`gitsubmoduleadd-bmaster<URL><PATH>`\n`master`\n`<URL>`\n`<PATH>`\n- git commit -a a command to commit all current changes\ngit commit -a a command to commit all current changes\n`gitcommit-a`\n- git push -u origin staging a command to upload the changes of the current branch\n(e.g., staging ) to the remote repository.\ngit push -u origin staging a command to upload the changes of the current branch\n(e.g., staging ) to the remote repository.\n`gitpush-uoriginstaging`\n`staging`\n\n### Delete\n\nThe delete command is used to delete a branch from your repository.\nOnce you delete a branch, there is no way to retrieve it unless a backup exists. Staging branches\nare not automatically backed up, but can be manually. Development branches cannot be backed up.\n- git push origin :staging a command to delete a specific branch (e.g., staging ) on\nthe remote repository\ngit push origin :staging a command to delete a specific branch (e.g., staging ) on\nthe remote repository\n`gitpushorigin:staging`\n`staging`\n- git branch -D staging a command to delete the specific branch on your local copy of\nthe repository\ngit branch -D staging a command to delete the specific branch on your local copy of\nthe repository\n`gitbranch-Dstaging`\nBefore deleting a branch, refer to the Backups section to\nbetter understand how they work and when you should create a manual backup.", "headings": ["Stages", "Production", "Staging", "Development", "Merging branches", "Tabs", "History", "Mails", "Shell", "Editor", "Monitor", "Logs", "Backups", "Upgrade", "Tools", "Settings", "Shell commands", "Clone", "Fork", "Merge", "SSH", "Submodule", "Delete"], "doc_id": "b89f8410605e874e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/odoo_sh/getting_started/builds.html", "title": "Builds", "module": "install", "section": "Builds", "text": "# Builds\n\nIn Odoo.sh, a build is a database loaded by an Odoo server ( odoo/odoo and odoo/enterprise )\nrunning on a specific revision of your project repository in a containerized environment. Its\npurpose is to test the proper behavior of the server, the database, and the features associated with\nthat revision.\n\n## Overview\n\nIn the Builds view, a row represents a branch, and a cell within that row represents\na build of that branch.\nMost builds are created after pushes to your GitHub repository branches. They can also be created\nthrough other operations, such as importing a database on Odoo.sh or requesting a rebuild for a\nbranch in your project.\nBuilds can have three possible statuses:\n- A build is considered successful if no errors or warnings occur during its creation.\nSuccessful builds are highlighted in green .\nA build is considered successful if no errors or warnings occur during its creation.\nSuccessful builds are highlighted in green .\n- A build is considered almost successful if warnings occur, but there are no errors. Almost\nsuccessful builds are highlighted in yellow .\nA build is considered almost successful if warnings occur, but there are no errors. Almost\nsuccessful builds are highlighted in yellow .\n- A build is considered failed if errors occur during its creation. Failed builds are\nhighlighted in red .\nA build is considered failed if errors occur during its creation. Failed builds are\nhighlighted in red .\nBuilds do not always create a database from scratch. For instance, when pushing a change on the\nproduction branch, the created build starts the server with your new revision and tries to load\nthe current production database on it.\n\n## Stages\n\n### Production\n\nThe first build of a production branch creates a database from scratch. If this build is successful,\nthis database will become the production database of your project.\nFrom then on, pushes to the production branch will create new builds that attempt to load the\ndatabase using a server running the new revision.\nIf the build is successful or almost successful, the production database will run with this build\nand its associated revision.\nIf the build fails to load or update the database, the previous successful build is reused to load\nthe database. In that case, the database continues to run using the previous successful revision.\nThe build used to run the production database is always the first in the builds list. If a build\nfails, it is placed after the build currently running the production database.\n\n### Staging\n\nStaging builds duplicate the production database and attempt to load this copy using the revisions\nof the staging branches.\nEach time you push a new revision to a staging branch, the resulting build uses a fresh copy of the\nproduction database. Databases are not reused between builds of the same branch. This ensures that:\n- Staging builds use databases that closely match the current production state, so your tests are\nnot performed on outdated data.\nStaging builds use databases that closely match the current production state, so your tests are\nnot performed on outdated data.\n- You can freely experiment within a staging database. When you want to start over with a new copy\nof the production database, you can request a rebuild.\nYou can freely experiment within a staging database. When you want to start over with a new copy\nof the production database, you can request a rebuild.\nHowever, this also means that if you make configuration changes in a staging database and do not\napply them in production, those changes will not be present in the next build of the same staging\nbranch.\n\n### Development\n\nDevelopment builds create new databases, load the demo data, and run the unit tests.\nA build will be considered failed if tests fail during installation, as they are designed to raise\nerrors when something is wrong.\nIf all tests pass and no errors occur, the build is considered successful.\nDepending on the list of modules to install and test, a development build can take up to one hour\nto be ready. This is due to the large number of tests included in the default Odoo module suite.\n\n## Features\n\nThe production branch always appears first. Other branches are ordered by the time of their last\ncreated build. The stage highlighted in purple corresponds to the stage selected in the Branches menu.\nYou can filter branches using the search bar.\nFor each branch, you can:\n- Access the latest buildâs database by clicking Connect .\nAccess the latest buildâs database by clicking Connect .\n- Jump to the branchâs code by clicking Github .\nJump to the branchâs code by clicking Github .\n- Create a new build by clicking Rebuild . It uses the latest revision of the branch (it\nis not available if a build is already in progress for that branch).\nCreate a new build by clicking Rebuild . It uses the latest revision of the branch (it\nis not available if a build is already in progress for that branch).\nFor each build, you can:\n- View the revision changes by clicking the ( GitHub ) icon.\nView the revision changes by clicking the ( GitHub ) icon.\n- Access the buildâs database as the administrator by clicking Connect or as another\nuser by clicking the ( More Actions ) button next to Connect and selecting Connect as .\nAccess the buildâs database as the administrator by clicking Connect or as another\nuser by clicking the ( More Actions ) button next to Connect and selecting Connect as .\n- Access the same tools as in the branches view by clicking the ( More Actions ) button next to Connect and selecting Logs , Web Shell , Editor , Outgoing e-mails (for the staging and\ndevelopment stages), Monitoring , and Download DB dump (for the production\nand staging stages).\nAccess the same tools as in the branches view by clicking the ( More Actions ) button next to Connect and selecting Logs , Web Shell , Editor , Outgoing e-mails (for the staging and\ndevelopment stages), Monitoring , and Download DB dump (for the production\nand staging stages).", "headings": ["Overview", "Stages", "Production", "Staging", "Development", "Features"], "doc_id": "bb585803c01c9b0e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/odoo_sh/getting_started/create.html", "title": "Create a project", "module": "install", "section": "Create a project", "text": "# Create a project\n\n## Deploy a platform\n\n- Visit Odoo.sh and click Deploy your platform .\nVisit Odoo.sh and click Deploy your platform .\n- Sign in with a GitHub account.\nSign in with a GitHub account.\n- Authorize Odoo.sh by clicking Authorize odoo twice. Note Odoo.sh requests GitHub to: Access your GitHub login and email. Create a new repository, in case you start from scratch. Access existing repositories, including organization ones, in case you start from an\nexisting repository. Create a webhook to notify you each time changes are pushed. Commit changes for easier deployment.\nAuthorize Odoo.sh by clicking Authorize odoo twice.\nOdoo.sh requests GitHub to:\n- Access your GitHub login and email.\nAccess your GitHub login and email.\n- Create a new repository, in case you start from scratch.\nCreate a new repository, in case you start from scratch.\n- Access existing repositories, including organization ones, in case you start from an\nexisting repository.\nAccess existing repositories, including organization ones, in case you start from an\nexisting repository.\n- Create a webhook to notify you each time changes are pushed.\nCreate a webhook to notify you each time changes are pushed.\n- Commit changes for easier deployment.\nCommit changes for easier deployment.\n- Fill in the Deploy your platform form and click Deploy : Github repository : to create a new repository, choose New repository and enter a name; to use an existing one, choose Existing repository and select it. Odoo Version : select the major version of Odoo you want to use. Tip Use the latest major version of Odoo version when creating a new repository. If you are\nplanning to import an existing database or applications, it might be required that their\nversions match. If you are starting on Odoo Online and plan to migrate to Odoo.sh later, create your\ndatabase using odoo.com/start-lts to ensure\ncompatibility, as minor versions are not supported by Odoo.sh. Subscription Code : enter your Odoo Enterprise subscription code that includes\nOdoo.sh. It is also sometimes called the subscription referral , contract number , or activation code . Tip Partners can use their partnership codes to initiate a trial (trial builds are limited to 1\nGB storage and two staging). If a client proceeds to start a project, they must subscribe\nto an Odoo Enterprise plan that includes Odoo.sh hosting and use their subscription code. Hosting location : select the region where your platform will be hosted.\nFill in the Deploy your platform form and click Deploy :\n- Github repository : to create a new repository, choose New repository and enter a name; to use an existing one, choose Existing repository and select it.\nGithub repository : to create a new repository, choose New repository and enter a name; to use an existing one, choose Existing repository and select it.\n- Odoo Version : select the major version of Odoo you want to use. Tip Use the latest major version of Odoo version when creating a new repository. If you are\nplanning to import an existing database or applications, it might be required that their\nversions match. If you are starting on Odoo Online and plan to migrate to Odoo.sh later, create your\ndatabase using odoo.com/start-lts to ensure\ncompatibility, as minor versions are not supported by Odoo.sh.\nOdoo Version : select the major version of Odoo you want to use.\n- Use the latest major version of Odoo version when creating a new repository. If you are\nplanning to import an existing database or applications, it might be required that their\nversions match.\nUse the latest major version of Odoo version when creating a new repository. If you are\nplanning to import an existing database or applications, it might be required that their\nversions match.\n- If you are starting on Odoo Online and plan to migrate to Odoo.sh later, create your\ndatabase using odoo.com/start-lts to ensure\ncompatibility, as minor versions are not supported by Odoo.sh.\nIf you are starting on Odoo Online and plan to migrate to Odoo.sh later, create your\ndatabase using odoo.com/start-lts to ensure\ncompatibility, as minor versions are not supported by Odoo.sh.\n- Subscription Code : enter your Odoo Enterprise subscription code that includes\nOdoo.sh. It is also sometimes called the subscription referral , contract number , or activation code . Tip Partners can use their partnership codes to initiate a trial (trial builds are limited to 1\nGB storage and two staging). If a client proceeds to start a project, they must subscribe\nto an Odoo Enterprise plan that includes Odoo.sh hosting and use their subscription code.\nSubscription Code : enter your Odoo Enterprise subscription code that includes\nOdoo.sh. It is also sometimes called the subscription referral , contract number , or activation code .\nPartners can use their partnership codes to initiate a trial (trial builds are limited to 1\nGB storage and two staging). If a client proceeds to start a project, they must subscribe\nto an Odoo Enterprise plan that includes Odoo.sh hosting and use their subscription code.\n- Hosting location : select the region where your platform will be hosted.\nHosting location : select the region where your platform will be hosted.\n\n## Import a database\n\nOnce your platform is deployed, you can import a database into your Odoo.sh project, provided it\nuses a supported version of Odoo.\nDue to Odooâs backup policy , the import process requires four times the size of your database dump in available storage. For example, a 10 GB dump\nfile will require at least 40 GB of available space. We recommend allocating more than four\ntimesà the dump size temporarily, then reducing storage after the import is complete.\nIf your project is a trial created with a partnership code, you can only import database dumps up\nto 1 GB in size.\n\n### Push modules in production\n\nIf you are using community or custom modules, add them to a branch in your GitHub repository.\nDatabases hosted on Odoo Online do not support custom modules.\nOdoo.sh automatically detects folders containing Odoo modules. You can organize them however you\nprefer. For example, you can place them directly in the root directory of your repository or group\nthem by category (e.g., accounting , project , etc.).\n`accounting`\n`project`\nFor publicly available community modules, you may also consider using submodules .\n\n### Download a backup\n\nGo to /web/database/manager on your on-premise Odoo instance and click Backup .\n`/web/database/manager`\nSelect zip (includes filestore) as the Backup Format .\n- You will need the Master Password of your Odoo server. If you do not have it,\ncontact your system administrator.\nYou will need the Master Password of your Odoo server. If you do not have it,\ncontact your system administrator.\n- If you cannot access the database manager, it may have been disabled by your system\nadministrator. Refer to the database manager security documentation .\nIf you cannot access the database manager, it may have been disabled by your system\nadministrator. Refer to the database manager security documentation .\nLog in to your portal account and navigate to the My Databases page , and download a backup by clicking the ( gear ) icon, then Download .\nOnly major versions of Odoo are compatible with Odoo.sh.\n\n### Upload the backup\n\nIn your Odoo.sh project, navigate to the Backups tab of your Production branch, and click Import Database to upload the backup you previously downloaded.\nOnce the import is complete, you can access the database using the Connect button in the\nbranchâs History tab.\nImporting a backup overwrites all data currently in the branch. Consider downloading a manual\nbackup beforehand if you want to preserve the existing data.\n\n### Check outgoing email servers\n\nOdoo.sh provides a default email server. To use it, ensure that no outgoing mail server is\nenabled in your database by enabling developer mode and navigating to Settings ⣠Technical ⣠Email: Outgoing Mail Servers\nAfter importing your database, all configured outgoing mail servers are disabled , and the\ndefault Odoo.sh server is used.\nPort 25 is and will remain closed. If connecting to an external SMTP server, use port 465 or 587 .\n\n### Check scheduled actions\n\nScheduled actions are disabled by default after importing your database. This prevents your\nnewly imported database from performing potentially disruptive operations such as:\n- sending queued emails,\nsending queued emails,\n- triggering mass mailings, or\ntriggering mass mailings, or\n- syncing with third-party services (e.g., calendars, cloud storage).\nsyncing with third-party services (e.g., calendars, cloud storage).\nIf you intend to use this imported database in production, re-enable only the scheduled actions\nyou need by enabling developer mode and going to Settings\n⣠Technical ⣠Automation: Scheduled Actions .\n\n### Register the subscription\n\nAfter import, the database is considered a duplicate and will be unlinked from your enterprise\nsubscription.\nYou are allowed only one active database per subscription.\nIf you intend to make the imported database your production environment:\n- Unlink your previous database from the subscription.\nUnlink your previous database from the subscription.\n- Register the new one.\nRegister the new one.\nRefer to the database registration documentation for step-by-step\ninstructions.", "headings": ["Deploy a platform", "Import a database", "Push modules in production", "Download a backup", "Upload the backup", "Check outgoing email servers", "Check scheduled actions", "Register the subscription"], "doc_id": "15094a12f98ec705"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/odoo_sh/getting_started/online_editor.html", "title": "Online editor", "module": "install", "section": "Online editor", "text": "# Online editor\n\nThe Online Editor view allows editing the source code of your builds from a web browser.\nIt also gives you the possibility to open terminals, Python consoles, Odoo shell consoles, and Jupyter Notebooks .\nYou can access the editor of a build through the branches tab , the builds dropdown menu , or by adding /odoo-sh/editor to\nthe buildâs URL (e.g., https://odoo-addons-master-1.dev.odoo.com/odoo-sh/editor ).\n`/odoo-sh/editor`\n`https://odoo-addons-master-1.dev.odoo.com/odoo-sh/editor`\n\n## Editing the source code\n\nThe working directory is composed of the following:\nYou can edit the source code (files under /src ) of development and staging builds. For production\nbuilds, the source code is read-only, because applying local changes on a production server is not a\ngood practice.\n`/src`\n- Your changes wonât be propagated to new builds. It is necessary to commit them to the\nsource code if you want them to persist.\nYour changes wonât be propagated to new builds. It is necessary to commit them to the\nsource code if you want them to persist.\n- The source code of your GitHub repository is located under /src/user .\nThe source code of your GitHub repository is located under /src/user .\n`/src/user`\n- The source code of Odoo is located under: /src/odoo ( https://github.com/odoo/odoo ) /src/enterprise ( https://github.com/odoo/enterprise ) /src/themes ( https://github.com/odoo/design-themes )\nThe source code of Odoo is located under:\n- /src/odoo ( https://github.com/odoo/odoo )\n/src/odoo ( https://github.com/odoo/odoo )\n`/src/odoo`\n- /src/enterprise ( https://github.com/odoo/enterprise )\n/src/enterprise ( https://github.com/odoo/enterprise )\n`/src/enterprise`\n- /src/themes ( https://github.com/odoo/design-themes )\n/src/themes ( https://github.com/odoo/design-themes )\n`/src/themes`\nTo open a file in the editor, double-click it in the file browser panel. You can then edit the file.\nTo save your changes, go to File ⣠Save or use the Ctrl + S keyboard\nshortcut.\nIf you save a Python file in your Odoo serverâs addons path, Odoo will detect it and reload\nautomatically, meaning your changes are immediately visible.\nHowever, if your changes are stored in the database, such as a fieldâs label or a view, it is\nnecessary to update the related module to apply the changes. To update the module of the currently1\nopen file, go to Odoo ⣠Update current module .\nYou can also execute the following command in a terminal to update a module:\n\n## Committing and pushing changes\n\nTo commit and push changes to your GitHub repository:\n- Open a terminal by going to File ⣠New ⣠Terminal .\nOpen a terminal by going to File ⣠New ⣠Terminal .\n- Change the directory to ~/src/user . cd ~/src/user\nChange the directory to ~/src/user .\n`~/src/user`\n- State your identity. git config --global user.email \"you@example.com\" && git config --global user.name \"Your Name\"\n- Stage your changes. git add\n- Commit your changes. git commit\n- Push your changes. git push https HEAD:<branch> In this command: https is the name of your HTTPS GitHub remote repository (e.g., https://github.com/username/repository.git ). HEAD is the reference to the latest revision you committed. <branch> must be replaced by the name of the branch to which you want to push the changes,\nmost likely the current branch if you work on a development build.\n- https is the name of your HTTPS GitHub remote repository (e.g., https://github.com/username/repository.git ).\nhttps is the name of your HTTPS GitHub remote repository (e.g., https://github.com/username/repository.git ).\n`https`\n`https://github.com/username/repository.git`\n- HEAD is the reference to the latest revision you committed.\nHEAD is the reference to the latest revision you committed.\n`HEAD`\n- <branch> must be replaced by the name of the branch to which you want to push the changes,\nmost likely the current branch if you work on a development build.\n<branch> must be replaced by the name of the branch to which you want to push the changes,\nmost likely the current branch if you work on a development build.\n`<branch>`\nYou will be prompted to input your GitHub username and password. After inputting your credentials,\npress enter.\nIf you activate two-factor authentication for your GitHub account, you can create a personal\naccess token and use it as a password. Granting the repo permission suffices.\n- It is not possible to authenticate yourself using SSH, as your private SSH key is not hosted in\nyour build containers for security reasons, nor forwarded through an SSH agent, as you access\nthe editor through a web browser.\nIt is not possible to authenticate yourself using SSH, as your private SSH key is not hosted in\nyour build containers for security reasons, nor forwarded through an SSH agent, as you access\nthe editor through a web browser.\n- The source folder ~/src/user is not checked out on a branch but rather on a detached\nrevision. This is because builds work on specific revisions rather than branches, meaning you\ncan have multiple builds on the same branch, but on different revisions.\nThe source folder ~/src/user is not checked out on a branch but rather on a detached\nrevision. This is because builds work on specific revisions rather than branches, meaning you\ncan have multiple builds on the same branch, but on different revisions.\n`~/src/user`\nOnce your changes are pushed, according to your branch push behavior , a new build may be created. You can continue to work in the editor\nyou pushed from, as it will have the same revision as the new build that was created. However,\nalways make sure to be in the editor of a build using the latest revision of your branch.\n\n## Consoles\n\nYou can open Python consoles, which are IPython interactive shells . Using these Python consoles\n(rather than IPython shells within a terminal) allows you to utilize their rich display\ncapabilities to\ndisplay objects in HTML.\nThe Pretty class displays lists in a legible way.\n`Pretty`\nUsing pandas you\ncan display:\n- Cells of a CSV file\n- Graphs\nYou can open Odoo shell consoles to experiment with the Odoo registry and model methods of your\ndatabase. You can also read or write directly on your records.\nIn an Odoo shell console, transactions are automatically committed. This means that changes made\nto records are applied to the database. For example, if you change a userâs name, it will be\nupdated in your database as well. Therefore, use Odoo shell consoles carefully on production\ndatabases.\nYou can use env to invoke models of your database registry, e.g., env['res.users'] .\n`env`\n`env['res.users']`", "headings": ["Editing the source code", "Committing and pushing changes", "Consoles"], "doc_id": "99b8101c854ecb4d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/odoo_sh/getting_started/settings.html", "title": "Settings", "module": "install", "section": "Settings", "text": "# Settings\n\nThe Settings view allow you to manage the configuration of your project.\n\n## Project name\n\nThe name of your project defines the address used to access your production database. The addresses\nof your staging and development builds are automatically derived from this name. If you change the\nproject name, only future builds will use the new name.\n\n## Collaborators\n\nTo grant access to a GitHub user, enter their username and click Add . By default, the\nuser is is granted the Developer role. Click the dropdown menu to select another one:\n- Admin : full access to all Odoo.sh features and tools. This role is dedicated to\nproject management and has exclusive access to the projectâs settings.\nAdmin : full access to all Odoo.sh features and tools. This role is dedicated to\nproject management and has exclusive access to the projectâs settings.\n- Tester : access to staging and development databases and their tools. This role is\nintended for users performing user acceptance testing (UAT). Testers can work with copies of\nproduction data, but they cannot access the production database through Odoo.shâs tools.\nTester : access to staging and development databases and their tools. This role is\nintended for users performing user acceptance testing (UAT). Testers can work with copies of\nproduction data, but they cannot access the production database through Odoo.shâs tools.\n- Developer : no access to the production and staging databases. This role is intended\nfor users who modify the code but should not access production data. Developers cannot connect to\nthe production or staging databases and do not have access to the web shell or server logs.\nDeveloper : no access to the production and staging databases. This role is intended\nfor users who modify the code but should not access production data. Developers cannot connect to\nthe production or staging databases and do not have access to the web shell or server logs.\n\n### Feature access by stage and role\n\nConnect + / Connect as\nConnect + / Connect as\nConnect + / Connect as\n- Only admins can access the audit logs and the project settings.\nOnly admins can access the audit logs and the project settings.\n- All roles can access the builds page , but the features available are specific\nto each role.\nAll roles can access the builds page , but the features available are specific\nto each role.\n\n## Public access\n\nWhen enabling Allow public access , the builds page becomes publicly\naccessible, allowing visitors to connect to development builds. Visitors can also access logs , the shell , and mails for development builds. Production and staging builds remain private;\nvisitors can only view their status.\n\n## GitHub commit statuses\n\nYou can add a GitHub token to allow Odoo.sh to push commit statuses back to GitHub. The token must\nhave the commit statuses (write) repository permission.\nFor more information, refer to GitHubâs documentation on managing access tokens .\n\n## GitHub key and webhook\n\nA deploy key and a webhook are automatically created on your GitHub repository to allow Odoo.sh to\nfetch code and receive commit notifications. As they can be unintentionally modified or deleted,\nyou can use the Verify Deploy Key and Verify Webhook buttons below to verify\ntheir configuration.\nAdministrative rights on the GitHub repository are necessary.\n\n## Submodules\n\nThe git submodule command allows you to integrate other Git projects into your codebase without copying the code\ndirectly.\n`gitsubmodule`\nA Git repository containing Odoo modules, for example from the Odoo Apps Store or community modules , is necessary.\nBefore adding private GitHub repository as a submodule, it is\nnecessary to add a deploy key:\n- Paste the SSH URL of the sub-repository (e.g., git@github.com:USERNAME/REPOSITORY.git ) and\nclick Add .\nPaste the SSH URL of the sub-repository (e.g., git@github.com:USERNAME/REPOSITORY.git ) and\nclick Add .\n`git@github.com:USERNAME/REPOSITORY.git`\n- Copy the generated Public Key .\nCopy the generated Public Key .\n- On the sub-repositoryâs GitHub, go to Settings ⣠Deploy keys .\nOn the sub-repositoryâs GitHub, go to Settings ⣠Deploy keys .\n- Click Add deploy key , enter a Title , paste the public key into\nthe Key field, and click Add key .\nClick Add deploy key , enter a Title , paste the public key into\nthe Key field, and click Add key .\nTo add a public repository or private repository with a deploy key as a submodule:\n- Add the submodule to your project. git submodule add -b BRANCH git@github.com:USERNAME/REPOSITORY.git PATH\nAdd the submodule to your project.\n- Commit and push the change. git commit -a && git push -u origin master\nCommit and push the change.\n- Wait for Odoo.sh to rebuild the project.\nWait for Odoo.sh to rebuild the project.\n\n## Production database size\n\nThis section displays the total storage used by the project. It includes the PostgreSQL database\nsize and disk files in your container (database filestore, session storage, etc.). If the production\ndatabase exceeds the storage included in your subscription, the plan will be automatically adjusted.\nTo analyze disk usage, run the Ncdu tool in the web\nshell .\n\n## Database workers\n\nAdditional database workers can be configured to allow your production database to handle higher\nconcurrent loads.\nTo add more workers, contact your account manager. After payment, the new worker(s) will be added to\nyour project.\nAdding more workers does not automatically fix performance issues. It only increases the number\nof concurrent connections the server can handle. If some operations remain slow, the issue is\nlikely code-related. If it is not due to your customizations, contact Odoo Support .\n\n## Staging branches\n\nAdditional staging branches allow you to develop and test multiple features simultaneously. To add\nmore staging branches, request a product increase directly from your Odoo.sh project. A widget will\nguide you to the subscription portal to complete the purchase. After payment, synchronization with\nOdoo.sh will occur automatically, and the number of available staging branches will be updated.\n\n## Activation\n\nThis section shows the activation status of the project. You can change the activation code if\nnecessary, provided the new code is not already assigned to another project.\nYou cannot change the activation code to:\n- A code already used in another project\nA code already used in another project\n- A trial code (downgrading from paid to trial is not allowed)\nA trial code (downgrading from paid to trial is not allowed)\n- An invalid code (not linked to an Odoo.sh custom plan)\nAn invalid code (not linked to an Odoo.sh custom plan)\nFor any other issue, contact Odoo Support .", "headings": ["Project name", "Collaborators", "Feature access by stage and role", "Public access", "GitHub commit statuses", "GitHub key and webhook", "Submodules", "Production database size", "Database workers", "Staging branches", "Activation"], "doc_id": "236e1ca9aad87c1f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/on_premise.html", "title": "On-premise", "module": "install", "section": "On-premise", "text": "# On-premise\n\n## Register a database\n\nTo register your database, enter your subscription code in the banner in the app dashboard. If the\nregistration is successful, the banner will turn green and display the database expiration date.\nThe expiration date is also displayed at the bottom of the Settings page.\n\n## Duplicate a database\n\nDuplicate a database by accessing the database manager on your server\n( <odoo-server>/web/database/manager ). Typically, you want to duplicate your production database\ninto a neutralized testing database. It can be done by checking the neutralize box when prompted,\nwhich executes all neutralize.sql scripts for every installed module.\n`<odoo-server>/web/database/manager`\n`neutralize.sql`\n\n## Common error messages and solutions\n\n### Registration error\n\nIn case of a registration error, the following message should be displayed.\nTo resolve the issue:\n- Check the validity of your Odoo Enterprise subscription by verifying if your subscription\ndetails have the tag In Progress on your Odoo Account or contact your Account Manager.\nCheck the validity of your Odoo Enterprise subscription by verifying if your subscription\ndetails have the tag In Progress on your Odoo Account or contact your Account Manager.\n- Ensure that no other database is linked to the subscription code, as only one database can be\nlinked per subscription. Tip If a test or a development database is needed, you can duplicate a database .\nEnsure that no other database is linked to the subscription code, as only one database can be\nlinked per subscription.\nIf a test or a development database is needed, you can duplicate a database .\n- Verify that no databases share the same UUID (Universally Unique Identifier) by opening your Odoo Contract . If two or more databases share the\nsame UUID, their name will be displayed. If that is the case, manually change the database(s) UUID or send a support ticket .\nVerify that no databases share the same UUID (Universally Unique Identifier) by opening your Odoo Contract . If two or more databases share the\nsame UUID, their name will be displayed.\nIf that is the case, manually change the database(s) UUID or send a support ticket .\n- As the update notification must be able to reach Odooâs subscription validation servers, ensure\nyour network and firewall settings allow the Odoo server to open outgoing connections\ntowards: Odoo 18.0 and above: services.odoo.com on port 80 Odoo 17.0 and below: services.openerp.com on port 80 These ports must be kept open even after registering a database, as the update notification runs\nonce a week.\nAs the update notification must be able to reach Odooâs subscription validation servers, ensure\nyour network and firewall settings allow the Odoo server to open outgoing connections\ntowards:\n- Odoo 18.0 and above: services.odoo.com on port 80\nOdoo 18.0 and above: services.odoo.com on port 80\n`services.odoo.com`\n`80`\n- Odoo 17.0 and below: services.openerp.com on port 80\nOdoo 17.0 and below: services.openerp.com on port 80\n`services.openerp.com`\n`80`\nThese ports must be kept open even after registering a database, as the update notification runs\nonce a week.\n\n### Too many users error\n\nIf you have more users in a local database than provisioned in your Odoo Enterprise subscription,\nthe following message should be displayed.\nWhen the message appears, you have 30 days to act before the database expires. The countdown is\nupdated every day.\nTo resolve the issue, either:\n- Add more users to your subscription by clicking the Upgrade your subscription link\ndisplayed in the message to validate the upsell quotation and pay for the extra users.\nAdd more users to your subscription by clicking the Upgrade your subscription link\ndisplayed in the message to validate the upsell quotation and pay for the extra users.\n- Deactivate users and reject the upsell quotation.\nDeactivate users and reject the upsell quotation.\nOnce your database has the correct number of users, the expiration message disappears automatically\nafter a few days, when the next verification occurs.\n\n### Database expired error\n\nIf your database expires before you renew your subscription, the following message should be\ndisplayed.\nThis message appears if you fail to act before the end of the 30-day countdown.\nTo resolve the issue, either:\n- Click the Renew your subscription link displayed in the message and complete the\nprocess. If you pay by wire transfer, your subscription will be renewed when the payment arrives\nwhich can take a few days. Credit card payments are processed immediately.\nClick the Renew your subscription link displayed in the message and complete the\nprocess. If you pay by wire transfer, your subscription will be renewed when the payment arrives\nwhich can take a few days. Credit card payments are processed immediately.\n- Send a support ticket .\nSend a support ticket .", "headings": ["Register a database", "Duplicate a database", "Common error messages and solutions", "Registration error", "Too many users error", "Database expired error"], "doc_id": "9848b1bc4266edf4"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/on_premise/community_to_enterprise.html", "title": "Switch from Community to Enterprise", "module": "install", "section": "Switch from Community to Enterprise", "text": "# Switch from Community to Enterprise\n\nDepending on your current installation, there are multiple ways to upgrade\nyour community version.\nIn any case the basic guidelines are:\n- Backup your community database\nBackup your community database\n- Shutdown your server\n- Install the web_enterprise module\nInstall the web_enterprise module\n- Restart your server\n- Enter your Odoo Enterprise Subscription code\nEnter your Odoo Enterprise Subscription code\n\n## On Linux, using an installer\n\n- Backup your community database\nBackup your community database\n- Stop the odoo service $ sudo service odoo stop\nStop the odoo service\n- Install the enterprise .deb (it should install over the community package) $ sudo dpkg -i <path_to_enterprise_deb>\nInstall the enterprise .deb (it should install over the community package)\n- Update your database to the enterprise packages using $ python3 /usr/bin/odoo-bin -d <database_name> -i web_enterprise --stop-after-init\nUpdate your database to the enterprise packages using\n- You should be able to connect to your Odoo Enterprise instance using your usual mean of identification.\nYou can then link your database with your Odoo Enterprise Subscription by entering the code you received\nby e-mail in the form input\nYou should be able to connect to your Odoo Enterprise instance using your usual mean of identification.\nYou can then link your database with your Odoo Enterprise Subscription by entering the code you received\nby e-mail in the form input\n\n## On Linux, using the source code\n\nThere are many ways to launch your server when using sources, and you probably\nhave your own favourite. You may need to adapt sections to your usual workflow.\n- Shutdown your server\n- Backup your community database\nBackup your community database\n- Update the --addons-path parameter of your launch command (see Source install )\nUpdate the --addons-path parameter of your launch command (see Source install )\n`--addons-path`\n- Install the web_enterprise module by using $ -d <database_name> -i web_enterprise --stop-after-init Depending on the size of your database, this may take some time.\nInstall the web_enterprise module by using\nDepending on the size of your database, this may take some time.\n- Restart your server with the updated addons path of point 3.\nYou should be able to connect to your instance. You can then link your database with your\nOdoo Enterprise Subscription by entering the code you received by e-mail in the form input\nRestart your server with the updated addons path of point 3.\nYou should be able to connect to your instance. You can then link your database with your\nOdoo Enterprise Subscription by entering the code you received by e-mail in the form input\n\n## On Windows\n\n- Backup your community database\nBackup your community database\n- Uninstall Odoo Community (using the Uninstall executable in the installation folder) -\nPostgreSQL will remain installed\nUninstall Odoo Community (using the Uninstall executable in the installation folder) -\nPostgreSQL will remain installed\n- Launch the Odoo Enterprise Installer and follow the steps normally. When choosing\nthe installation path, you can set the folder of the Community installation\n(this folder still contains the PostgreSQL installation).\nUncheck Start Odoo at the end of the installation\nLaunch the Odoo Enterprise Installer and follow the steps normally. When choosing\nthe installation path, you can set the folder of the Community installation\n(this folder still contains the PostgreSQL installation).\nUncheck Start Odoo at the end of the installation\n`StartOdoo`\n- Using a command window, update your Odoo Database using this command (from the Odoo\ninstallation path, in the server subfolder) $ .. \\p ython \\p ython.exe odoo-bin -d <database_name> -i web_enterprise --stop-after-init\nUsing a command window, update your Odoo Database using this command (from the Odoo\ninstallation path, in the server subfolder)\n- No need to manually launch the server, the service is running.\nYou should be able to connect to your Odoo Enterprise instance using your usual\nmean of identification. You can then link your database with your Odoo Enterprise\nSubscription by entering the code you received by e-mail in the form input\nNo need to manually launch the server, the service is running.\nYou should be able to connect to your Odoo Enterprise instance using your usual\nmean of identification. You can then link your database with your Odoo Enterprise\nSubscription by entering the code you received by e-mail in the form input", "headings": ["On Linux, using an installer", "On Linux, using the source code", "On Windows"], "doc_id": "eec99a3f029f35ea"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/on_premise/deploy.html", "title": "System configuration", "module": "install", "section": "System configuration", "text": "# System configuration\n\nThis document describes basic steps to set up Odoo in production or on an\ninternet-facing server. It follows installation , and is\nnot generally necessary for a development systems that is not exposed on the\ninternet.\nIf you are setting up a public server, be sure to check our Security recommendations!\n\n## dbfilter\n\nOdoo is a multi-tenant system: a single Odoo system may run and serve a number\nof database instances. It is also highly customizable, with customizations\n(starting from the modules being loaded) depending on the âcurrent databaseâ.\nThis is not an issue when working with the backend (web client) as a logged-in\ncompany user: the database can be selected when logging in, and customizations\nloaded afterwards.\nHowever it is an issue for non-logged users (portal, website) which arenât\nbound to a database: Odoo needs to know which database should be used to load\nthe website page or perform the operation. If multi-tenancy is not used that is not an\nissue, thereâs only one database to use, but if there are multiple databases\naccessible Odoo needs a rule to know which one it should use.\nThat is one of the purposes of --db-filter :\nit specifies how the database should be selected based on the hostname (domain)\nthat is being requested. The value is a regular expression , possibly\nincluding the dynamically injected hostname ( %h ) or the first subdomain\n( %d ) through which the system is being accessed.\n`--db-filter`\n`%h`\n`%d`\nFor servers hosting multiple databases in production, especially if website is used, dbfilter must be set, otherwise a number of features will not work\ncorrectly.\n`website`\n\n### Configuration samples\n\n- Show only databases with names beginning with âmycompanyâ\nShow only databases with names beginning with âmycompanyâ\nin the configuration file set:\n- Show only databases matching the first subdomain after www : for example\nthe database âmycompanyâ will be shown if the incoming request\nwas sent to www.mycompany.com or mycompany.co.uk , but not\nfor www2.mycompany.com or helpdesk.mycompany.com .\nShow only databases matching the first subdomain after www : for example\nthe database âmycompanyâ will be shown if the incoming request\nwas sent to www.mycompany.com or mycompany.co.uk , but not\nfor www2.mycompany.com or helpdesk.mycompany.com .\n`www`\n`www.mycompany.com`\n`mycompany.co.uk`\n`www2.mycompany.com`\n`helpdesk.mycompany.com`\nin the configuration file set:\nSetting a proper --db-filter is an important part\nof securing your deployment.\nOnce it is correctly working and only matching a single database per hostname, it\nis strongly recommended to block access to the database manager screens,\nand to use the --no-database-list startup parameter to prevent listing\nyour databases, and to block access to the database management screens.\nSee also security .\n`--db-filter`\n`--no-database-list`\n\n## PostgreSQL\n\nBy default, PostgreSQL only allows connection over UNIX sockets and loopback\nconnections (from âlocalhostâ, the same machine the PostgreSQL server is\ninstalled on).\nUNIX socket is fine if you want Odoo and PostgreSQL to execute on the same\nmachine, and is the default when no host is provided, but if you want Odoo and\nPostgreSQL to execute on different machines 1 it will\nneed to listen to network interfaces 2 , either:\n- Only accept loopback connections and use an SSH tunnel between the\nmachine on which Odoo runs and the one on which PostgreSQL runs, then\nconfigure Odoo to connect to its end of the tunnel\nOnly accept loopback connections and use an SSH tunnel between the\nmachine on which Odoo runs and the one on which PostgreSQL runs, then\nconfigure Odoo to connect to its end of the tunnel\n- Accept connections to the machine on which Odoo is installed, possibly\nover ssl (see PostgreSQL connection settings for details), then configure\nOdoo to connect over the network\nAccept connections to the machine on which Odoo is installed, possibly\nover ssl (see PostgreSQL connection settings for details), then configure\nOdoo to connect over the network\n\n### Configuration sample\n\n- Allow tcp connection on localhost\nAllow tcp connection on localhost\n- Allow tcp connection from 192.168.1.x network\nAllow tcp connection from 192.168.1.x network\nin /etc/postgresql/<YOUR POSTGRESQL VERSION>/main/pg_hba.conf set:\n`/etc/postgresql/<YOURPOSTGRESQLVERSION>/main/pg_hba.conf`\nin /etc/postgresql/<YOUR POSTGRESQL VERSION>/main/postgresql.conf set:\n`/etc/postgresql/<YOURPOSTGRESQLVERSION>/main/postgresql.conf`\n\n### Configuring Odoo\n\nOut of the box, Odoo connects to a local postgres over UNIX socket via port\n5432. This can be overridden using the database options when your Postgres deployment is not\nlocal and/or does not use the installation defaults.\nThe packaged installers will automatically\ncreate a new user ( odoo ) and set it as the database user.\n`odoo`\n- The database management screens are protected by the admin_passwd setting. This setting can only be set using configuration files, and is\nsimply checked before performing database alterations. It should be set to\na randomly generated value to ensure third parties can not use this\ninterface.\nThe database management screens are protected by the admin_passwd setting. This setting can only be set using configuration files, and is\nsimply checked before performing database alterations. It should be set to\na randomly generated value to ensure third parties can not use this\ninterface.\n`admin_passwd`\n- All database operations use the database options , including the database management\nscreen. For the database management screen to work requires that the PostgreSQL user\nhave createdb right.\nAll database operations use the database options , including the database management\nscreen. For the database management screen to work requires that the PostgreSQL user\nhave createdb right.\n`createdb`\n- Users can always drop databases they own. For the database management screen\nto be completely non-functional, the PostgreSQL user needs to be created with no-createdb and the database must be owned by a different PostgreSQL user. Warning the PostgreSQL user must not be a superuser\nUsers can always drop databases they own. For the database management screen\nto be completely non-functional, the PostgreSQL user needs to be created with no-createdb and the database must be owned by a different PostgreSQL user.\n`no-createdb`\nthe PostgreSQL user must not be a superuser\n\n#### Configuration sample\n\n- connect to a PostgreSQL server on 192.168.1.2\nconnect to a PostgreSQL server on 192.168.1.2\n- port 5432\n- using an âodooâ user account,\nusing an âodooâ user account,\n- with âpwdâ as a password\nwith âpwdâ as a password\n- filtering only db with a name beginning with âmycompanyâ\nfiltering only db with a name beginning with âmycompanyâ\nin the configuration file set:\n\n### SSL Between Odoo and PostgreSQL\n\nSince Odoo 11.0, you can enforce ssl connection between Odoo and PostgreSQL.\nin Odoo the db_sslmode control the ssl security of the connection\nwith value chosen out of âdisableâ, âallowâ, âpreferâ, ârequireâ, âverify-caâ\nor âverify-fullâ\n\n## Builtin server\n\nOdoo includes built-in HTTP, cron, and live-chat servers, using either multi-threading or\nmulti-processing.\nThe multi-threaded server is a simpler server primarily used for development, demonstrations,\nand its compatibility with various operating systems (including Windows). A new thread is spawned\nfor every new HTTP request, even for long-lived connections such as websocket. Extra daemonic cron\nthreads are spawned too. Due to a Python limitation (GIL), it doesnât make the best use of the\nhardware.\nThe multi-threaded server is the default server, also for docker containers. It is selected by\nleaving the --workers option out or setting it to 0 .\n`--workers`\n`0`\nThe multi-processing server is a full-blown server primarily used for production. It is not\nliable to the same Python limitation (GIL) on resource usage and hence makes the best use of the\nhardware. A pool of workers is created upon server startup. New HTTP requests are queued by the OS\nuntil there are workers ready to process them. An extra event-driven HTTP worker for the live chat\nis spawned on an alternative port. Extra cron workers are spawned too. A configurable process\nreaper monitors resource usage and can kill/restart failed workers.\nThe multi-processing server is opt-in. It is selected by setting the --workers option to a non-null integer.\n`--workers`\nBecause it is highly customized for Linux servers, the multi-processing server is not available\non Windows.\n\n### Worker number calculation\n\n- Rule of thumb : (#CPU * 2) + 1\nRule of thumb : (#CPU * 2) + 1\n- Cron workers need CPU\nCron workers need CPU\n- 1 worker ~= 6 concurrent users\n1 worker ~= 6 concurrent users\n\n### memory size calculation\n\n- We consider 20% of the requests are heavy requests, while 80% are simpler ones\nWe consider 20% of the requests are heavy requests, while 80% are simpler ones\n- A heavy worker, when all computed field are well designed, SQL requests are well designed, ⦠is estimated to consume around 1GB of RAM\nA heavy worker, when all computed field are well designed, SQL requests are well designed, ⦠is estimated to consume around 1GB of RAM\n- A lighter worker, in the same scenario, is estimated to consume around 150MB of RAM\nA lighter worker, in the same scenario, is estimated to consume around 150MB of RAM\nNeeded RAM = #worker * ( (light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation) )\n\n### LiveChat\n\nIn multi-processing, a dedicated LiveChat worker is automatically started and listens on\nthe --gevent-port . By default, the HTTP requests will keep\naccessing the normal HTTP workers instead of the LiveChat one. You must deploy a proxy in front of\nOdoo and redirect incoming requests whose path starts with /websocket/ to the LiveChat worker.\nYou must also start Odoo in --proxy-mode so it uses the real\nclient headers (such as hostname, scheme, and IP) instead of the proxy ones.\n`--gevent-port`\n`/websocket/`\n`--proxy-mode`\n\n### Configuration sample\n\n- Server with 4 CPU, 8 Thread\nServer with 4 CPU, 8 Thread\n- 60 concurrent users\n- 60 users / 6 = 10 <- theoretical number of worker needed\n60 users / 6 = 10 <- theoretical number of worker needed\n- (4 * 2) + 1 = 9 <- theoretical maximal number of worker\n(4 * 2) + 1 = 9 <- theoretical maximal number of worker\n- Weâll use 8 workers + 1 for cron. Weâll also use a monitoring system to measure cpu load, and check if itâs between 7 and 7.5 .\nWeâll use 8 workers + 1 for cron. Weâll also use a monitoring system to measure cpu load, and check if itâs between 7 and 7.5 .\n- RAM = 9 * ((0.8*150) + (0.2*1024)) ~= 3GB RAM for Odoo\nRAM = 9 * ((0.8*150) + (0.2*1024)) ~= 3GB RAM for Odoo\nin the configuration file :\n\n## HTTPS\n\nWhether itâs accessed via website/web client or web service, Odoo transmits\nauthentication information in cleartext. This means a secure deployment of\nOdoo must use HTTPS 3 . SSL termination can be implemented via\njust about any SSL termination proxy, but requires the following setup:\n- Enable Odooâs proxy mode . This should only be enabled when Odoo is behind a reverse proxy\nEnable Odooâs proxy mode . This should only be enabled when Odoo is behind a reverse proxy\n`proxymode`\n- Set up the SSL termination proxy ( Nginx termination example )\nSet up the SSL termination proxy ( Nginx termination example )\n- Set up the proxying itself ( Nginx proxying example )\nSet up the proxying itself ( Nginx proxying example )\n- Your SSL termination proxy should also automatically redirect non-secure\nconnections to the secure port\nYour SSL termination proxy should also automatically redirect non-secure\nconnections to the secure port\n\n### Configuration sample\n\n- Redirect http requests to https\nRedirect http requests to https\n- Proxy requests to odoo\nProxy requests to odoo\nin the configuration file set:\nin /etc/nginx/sites-enabled/odoo.conf set:\n`/etc/nginx/sites-enabled/odoo.conf`\n\n### HTTPS Hardening\n\nAdd the Strict-Transport-Security header to all requests, in order to prevent\nbrowsers from ever sending a plain HTTP request to this domain. You will need\nto maintain a working HTTPS service with a valid certificate on this domain at\nall times, otherwise your users will see security alerts or be entirely unable\nto access it.\n`Strict-Transport-Security`\nForce HTTPS connections during a year for every visitor in NGINX with the line:\nAdditional configuration can be defined for the session_id cookie. The Secure flag can be added to ensure it is never transmitted over HTTP and SameSite=Lax to prevent authenticated CSRF .\n`session_id`\n`Secure`\n`SameSite=Lax`\n\n## Odoo as a WSGI Application\n\nIt is also possible to mount Odoo as a standard WSGI application. Odoo\nprovides the base for a WSGI launcher script as odoo-wsgi.example.py . That\nscript should be customized (possibly after copying it from the setup directory) to correctly set the\nconfiguration directly in odoo.tools.config rather than through the\ncommand-line or a configuration file.\n`odoo-wsgi.example.py`\n`odoo.tools.config`\nHowever the WSGI server will only expose the main HTTP endpoint for the web\nclient, website and webservice API. Because Odoo does not control the creation\nof workers anymore it can not setup cron or livechat workers\n\n### Cron Workers\n\nStarting one of the built-in Odoo servers next to the WSGI server is required to process cron jobs.\nThat server must be configured to only process crons and not HTTP requests using the --no-http cli option or the http_enable = False configuration\nfile setting.\n`--no-http`\n`http_enable=False`\nOn Linux-like systems, using the multi-processing server over the multi-threading one is recommended\nto benefit from better hardware usage and increased stability, i.e., using\nthe --workers=-1 and --max-cron-threads=n cli options.\n`--workers=-1`\n`--max-cron-threads=n`\n\n### LiveChat\n\nUsing a gevent-compatible WSGI server is required for the correct operation of the live chat\nfeature. That server should be able to handle many simultaneous long-lived connections but doesnât\nneed a lot of processing power. All requests whose path starts with /websocket/ should be\ndirected to that server. A regular (thread/process-based) WSGI server should be used for all other\nrequests.\n`/websocket/`\nThe Odoo cron server can also be used to serve the live chat requests. Just drop\nthe --no-http cli option from the cron server and make sure requests\nwhose path starts with /websocket/ are directed to this server, either on\nthe --http-port (multi-threading server) or on\nthe --gevent-port (multi-processing server).\n`--no-http`\n`/websocket/`\n`--http-port`\n`--gevent-port`\n\n## Serving static files and attachments\n\nFor development convenience, Odoo directly serves all static files and attachments in its modules.\nThis may not be ideal when it comes to performances, and static files should generally be served by\na static HTTP server.\n\n### Serving static files\n\nOdoo static files are located in each moduleâs static/ folder, so static files can be served\nby intercepting all requests to / MODULE /static/ FILE , and looking up the right module\n(and file) in the various addons paths.\n`static/`\n`/MODULE/static/FILE`\nIt is recommended to set the Content-Security-Policy: default-src 'none' header on all images\ndelivered by the web server. It is not strictly necessary as users cannot modify/inject content\ninside of modulesâ static/ folder and existing images are final (they do not fetch new\nresources by themselves). However, it is good practice.\n`Content-Security-Policy:default-src'none'`\n`static/`\nUsing the above NGINX (https) configuration, the following map and location blocks should be\nadded to serve static files via NGINX.\n`map`\n`location`\nThe actual root and try_files directives are dependant on your installation, specifically on\nyour --addons-path .\n`root`\n`try_files`\n`--addons-path`\nSay Odoo has been installed via the debian packages for Community and Enterprise, and\nthat the --addons-path is '/usr/lib/python3/dist-packages/odoo/addons' .\n`--addons-path`\n`'/usr/lib/python3/dist-packages/odoo/addons'`\nThe root and try_files should be:\n`root`\n`try_files`\nSay Odoo has been installed via the sources , that both the Community and Enterprise git\nrepositories were cloned in /opt/odoo/community and /opt/odoo/enterprise respectively, and that the --addons-path is '/opt/odoo/community/odoo/addons,/opt/odoo/community/addons,/opt/odoo/enterprise' .\n`/opt/odoo/community`\n`/opt/odoo/enterprise`\n`--addons-path`\n`'/opt/odoo/community/odoo/addons,/opt/odoo/community/addons,/opt/odoo/enterprise'`\nThe root and try_files should be:\n`root`\n`try_files`\n\n### Serving attachments\n\nAttachments are files stored in the filestore which access is regulated by Odoo. They cannot be\ndirectly accessed via a static web server as accessing them requires multiple lookups in the\ndatabase to determine where the files are stored and whether the current user can access them or\nnot.\nNevertheless, once the file has been located and the access rights verified by Odoo, it is a good\nidea to serve the file using the static web server instead of Odoo. For Odoo to delegate serving\nfiles to the static web server, the X-Sendfile (apache) or X-Accel (nginx) extensions\nmust be enabled and configured on the static web server. Once it is set up, start Odoo with the --x-sendfile CLI flag (this unique flag is used for both\nX-Sendfile and X-Accel).\n`--x-sendfile`\n- The X-Sendfile extension for apache (and compatible web servers) does not require any\nsupplementary configuration.\nThe X-Sendfile extension for apache (and compatible web servers) does not require any\nsupplementary configuration.\n- The X-Accel extension for NGINX does require the following additionnal configuration: location /web/filestore { internal ; alias /path/to/odoo/data-dir/filestore ; add_header Content-Security-Policy $upstream_http_content_security_policy ; add_header X-Content-Type-Options nosniff ; } In case you donât know what is the path to your filestore, start Odoo with the --x-sendfile option and navigate to the /web/filestore URL\ndirectly via Odoo (donât navigate to the URL via NGINX). This logs a warnings, the message\ncontains the configuration you need.\nThe X-Accel extension for NGINX does require the following additionnal configuration:\nIn case you donât know what is the path to your filestore, start Odoo with the --x-sendfile option and navigate to the /web/filestore URL\ndirectly via Odoo (donât navigate to the URL via NGINX). This logs a warnings, the message\ncontains the configuration you need.\n`--x-sendfile`\n`/web/filestore`\n\n## Security\n\nFor starters, keep in mind that securing an information system is a continuous process,\nnot a one-shot operation. At any moment, you will only be as secure as the weakest link\nin your environment.\nSo please do not take this section as the ultimate list of measures that will prevent\nall security problems. Itâs only intended as a summary of the first important things\nyou should be sure to include in your security action plan. The rest will come\nfrom best security practices for your operating system and distribution,\nbest practices in terms of users, passwords, and access control management, etc.\nWhen deploying an internet-facing server, please be sure to consider the following\nsecurity-related topics:\n- Always set a strong super-admin admin password, and restrict access to the database\nmanagement pages as soon as the system is set up. See Database Manager Security .\nAlways set a strong super-admin admin password, and restrict access to the database\nmanagement pages as soon as the system is set up. See Database Manager Security .\n- Choose unique logins and strong passwords for all administrator accounts on all databases.\nDo not use âadminâ as the login. Do not use those logins for day-to-day operations,\nonly for controlling/managing the installation. Never use any default passwords like admin/admin, even for test/staging databases.\nChoose unique logins and strong passwords for all administrator accounts on all databases.\nDo not use âadminâ as the login. Do not use those logins for day-to-day operations,\nonly for controlling/managing the installation. Never use any default passwords like admin/admin, even for test/staging databases.\n- Do not install demo data on internet-facing servers. Databases with demo data contain\ndefault logins and passwords that can be used to get into your systems and cause significant\ntrouble, even on staging/dev systems.\nDo not install demo data on internet-facing servers. Databases with demo data contain\ndefault logins and passwords that can be used to get into your systems and cause significant\ntrouble, even on staging/dev systems.\n- Use appropriate database filters ( --db-filter )\nto restrict the visibility of your databases according to the hostname.\nSee dbfilter .\nYou may also use -d to provide your own (comma-separated)\nlist of available databases to filter from, instead of letting the system fetch\nthem all from the database backend.\nUse appropriate database filters ( --db-filter )\nto restrict the visibility of your databases according to the hostname.\nSee dbfilter .\nYou may also use -d to provide your own (comma-separated)\nlist of available databases to filter from, instead of letting the system fetch\nthem all from the database backend.\n`--db-filter`\n`-d`\n- Once your db_name and dbfilter are configured and only match a single database\nper hostname, you should set list_db configuration option to False , to prevent\nlisting databases entirely, and to block access to the database management screens\n(this is also exposed as the --no-database-list command-line option)\nOnce your db_name and dbfilter are configured and only match a single database\nper hostname, you should set list_db configuration option to False , to prevent\nlisting databases entirely, and to block access to the database management screens\n(this is also exposed as the --no-database-list command-line option)\n`db_name`\n`dbfilter`\n`list_db`\n`False`\n`--no-database-list`\n- Make sure the PostgreSQL user ( --db_user ) is not a super-user,\nand that your databases are owned by a different user. For example they could be owned by\nthe postgres super-user if you are using a dedicated non-privileged db_user .\nSee also Configuring Odoo .\nMake sure the PostgreSQL user ( --db_user ) is not a super-user,\nand that your databases are owned by a different user. For example they could be owned by\nthe postgres super-user if you are using a dedicated non-privileged db_user .\nSee also Configuring Odoo .\n`--db_user`\n`postgres`\n`db_user`\n- Keep installations updated by regularly installing the latest builds,\neither via GitHub or by downloading the latest version from https://www.odoo.com/page/download or http://nightly.odoo.com\nKeep installations updated by regularly installing the latest builds,\neither via GitHub or by downloading the latest version from https://www.odoo.com/page/download or http://nightly.odoo.com\n- Configure your server in multi-process mode with proper limits matching your typical\nusage (memory/CPU/timeouts). See also Builtin server .\nConfigure your server in multi-process mode with proper limits matching your typical\nusage (memory/CPU/timeouts). See also Builtin server .\n- Run Odoo behind a web server providing HTTPS termination with a valid SSL certificate,\nin order to prevent eavesdropping on cleartext communications. SSL certificates are\ncheap, and many free options exist.\nConfigure the web proxy to limit the size of requests, set appropriate timeouts,\nand then enable the proxy mode option.\nSee also HTTPS .\nRun Odoo behind a web server providing HTTPS termination with a valid SSL certificate,\nin order to prevent eavesdropping on cleartext communications. SSL certificates are\ncheap, and many free options exist.\nConfigure the web proxy to limit the size of requests, set appropriate timeouts,\nand then enable the proxy mode option.\nSee also HTTPS .\n`proxymode`\n- If you need to allow remote SSH access to your servers, make sure to set a strong password\nfor all accounts, not just root . It is strongly recommended to entirely disable\npassword-based authentication, and only allow public key authentication. Also consider\nrestricting access via a VPN, allowing only trusted IPs in the firewall, and/or\nrunning a brute-force detection system such as fail2ban or equivalent.\nIf you need to allow remote SSH access to your servers, make sure to set a strong password\nfor all accounts, not just root . It is strongly recommended to entirely disable\npassword-based authentication, and only allow public key authentication. Also consider\nrestricting access via a VPN, allowing only trusted IPs in the firewall, and/or\nrunning a brute-force detection system such as fail2ban or equivalent.\n`root`\n`fail2ban`\n- Consider installing appropriate rate-limiting on your proxy or firewall, to prevent\nbrute-force attacks and denial of service attacks. See also Blocking Brute Force Attacks for specific measures. Many network providers provide automatic mitigation for Distributed Denial of\nService attacks (DDOS), but this is often an optional service, so you should consult\nwith them.\nConsider installing appropriate rate-limiting on your proxy or firewall, to prevent\nbrute-force attacks and denial of service attacks. See also Blocking Brute Force Attacks for specific measures.\nMany network providers provide automatic mitigation for Distributed Denial of\nService attacks (DDOS), but this is often an optional service, so you should consult\nwith them.\n- Whenever possible, host your public-facing demo/test/staging instances on different\nmachines than the production ones. And apply the same security precautions as for\nproduction.\nWhenever possible, host your public-facing demo/test/staging instances on different\nmachines than the production ones. And apply the same security precautions as for\nproduction.\n- If your public-facing Odoo server has access to sensitive internal network resources\nor services (e.g. via a private VLAN), implement appropriate firewall rules to\nprotect those internal resources. This will ensure that the Odoo server cannot\nbe used accidentally (or as a result of malicious user actions) to access or disrupt\nthose internal resources.\nTypically this can be done by applying an outbound default DENY rule on the firewall,\nthen only explicitly authorizing access to internal resources that the Odoo server\nneeds to access. Systemd IP traffic access control may also be useful to implement per-process network access control.\nIf your public-facing Odoo server has access to sensitive internal network resources\nor services (e.g. via a private VLAN), implement appropriate firewall rules to\nprotect those internal resources. This will ensure that the Odoo server cannot\nbe used accidentally (or as a result of malicious user actions) to access or disrupt\nthose internal resources.\nTypically this can be done by applying an outbound default DENY rule on the firewall,\nthen only explicitly authorizing access to internal resources that the Odoo server\nneeds to access. Systemd IP traffic access control may also be useful to implement per-process network access control.\n- If your public-facing Odoo server is behind a Web Application Firewall, a load-balancer,\na transparent DDoS protection service (like CloudFlare) or a similar network-level\ndevice, you may wish to avoid direct access to the Odoo system. It is generally\ndifficult to keep the endpoint IP addresses of your Odoo servers secret. For example\nthey can appear in web server logs when querying public systems, or in the headers\nof emails posted from Odoo.\nIn such a situation you may want to configure your firewall so that the endpoints\nare not accessible publicly except from the specific IP addresses of your WAF,\nload-balancer or proxy service. Service providers like CloudFlare usually maintain\na public list of their IP address ranges for this purpose.\nIf your public-facing Odoo server is behind a Web Application Firewall, a load-balancer,\na transparent DDoS protection service (like CloudFlare) or a similar network-level\ndevice, you may wish to avoid direct access to the Odoo system. It is generally\ndifficult to keep the endpoint IP addresses of your Odoo servers secret. For example\nthey can appear in web server logs when querying public systems, or in the headers\nof emails posted from Odoo.\nIn such a situation you may want to configure your firewall so that the endpoints\nare not accessible publicly except from the specific IP addresses of your WAF,\nload-balancer or proxy service. Service providers like CloudFlare usually maintain\na public list of their IP address ranges for this purpose.\n- If you are hosting multiple customers, isolate customer data and files from each other\nusing containers or appropriate âjailâ techniques.\nIf you are hosting multiple customers, isolate customer data and files from each other\nusing containers or appropriate âjailâ techniques.\n- Setup daily backups of your databases and filestore data, and copy them to a remote\narchiving server that is not accessible from the server itself.\nSetup daily backups of your databases and filestore data, and copy them to a remote\narchiving server that is not accessible from the server itself.\n- Deploying Odoo on Linux is strongly recommended over Windows. Should you choose nevertheless\nto deploy on a Windows platform, a thorough security hardening review of the server should be\nconducted and is outside of the scope of this guide.\nDeploying Odoo on Linux is strongly recommended over Windows. Should you choose nevertheless\nto deploy on a Windows platform, a thorough security hardening review of the server should be\nconducted and is outside of the scope of this guide.\n\n### Blocking Brute Force Attacks\n\nFor internet-facing deployments, brute force attacks on user passwords are very common, and this\nthreat should not be neglected for Odoo servers. Odoo emits a log entry whenever a login attempt\nis performed, and reports the result: success or failure, along with the target login and source IP.\nThe log entries will have the following form.\nThese logs can be easily analyzed by an intrusion prevention system such as fail2ban .\n`fail2ban`\nFor example, the following fail2ban filter definition should match a\nfailed login:\nThis could be used with a jail definition to block the attacking IP on HTTP(S).\nHere is what it could look like for blocking the IP for 15 minutes when\n10 failed login attempts are detected from the same IP within 1 minute:\n\n### Database Manager Security\n\nConfiguring Odoo mentioned admin_passwd in passing.\n`admin_passwd`\nThis setting is used on all database management screens (to create, delete,\ndump or restore databases).\nIf the management screens must not be accessible at all, you should set list_db configuration option to False , to block access to all the database selection and\nmanagement screens.\n`list_db`\n`False`\nIt is strongly recommended to disable the Database Manager for any internet-facing\nsystem! It is meant as a development/demo tool, to make it easy to quickly create\nand manage databases. It is not designed for use in production, and may even expose\ndangerous features to attackers. It is also not designed to handle large databases,\nand may trigger memory limits.\nOn production systems, database management operations should always be performed by\nthe system administrator, including provisioning of new databases and automated backups.\nBe sure to setup an appropriate db_name parameter\n(and optionally, dbfilter too) so that the system can determine the target database\nfor each request, otherwise users will be blocked as they wonât be allowed to choose the\ndatabase themselves.\n`db_name`\n`dbfilter`\nIf the management screens must only be accessible from a selected set of machines,\nuse the proxy serverâs features to block access to all routes starting with /web/database except (maybe) /web/database/selector which displays the database-selection screen.\n`/web/database`\n`/web/database/selector`\nIf the database-management screen should be left accessible, the admin_passwd setting must be changed from its admin default: this\npassword is checked before allowing database-alteration operations.\n`admin_passwd`\n`admin`\nIt should be stored securely, and should be generated randomly e.g.\nwhich generates a 32-character pseudorandom printable string.\n\n### Reset the master password\n\nThere may be instances where the master password is misplaced, or compromised, and needs to be\nreset. The following process is for system administrators of an Odoo on-premise database detailing\nhow to manually reset and re-encrypt the master password.\nWhen creating a new on-premise database, a random master password is generated. Odoo recommends\nusing this password to secure the database. This password is implemented by default, so there is a\nsecure master password for any Odoo on-premise deployment.\nWhen creating an Odoo on-premise database the installation is accessible to anyone on the\ninternet, until this password is set to secure the database.\nThe master password is specified in the Odoo configuration file ( odoo.conf or odoorc (hidden\nfile)). The Odoo master password is needed to modify, create, or delete a database through the\ngraphical user interface (GUI).\n`odoo.conf`\n`odoorc`\n\n#### Locate configuration file\n\nFirst, open the Odoo configuration file ( odoo.conf or odoorc (hidden file)).\n`odoo.conf`\n`odoorc`\nThe configuration file is located at: c:\\ProgramFiles\\Odoo{VERSION}\\server\\odoo.conf\n`c:\\ProgramFiles\\Odoo{VERSION}\\server\\odoo.conf`\nDepending on how Odoo is installed on the Linux machine, the configuration file is located in\none of two different places:\n- Package installation: /etc/odoo.conf\nPackage installation: /etc/odoo.conf\n`/etc/odoo.conf`\n- Source installation: ~/.odoorc\nSource installation: ~/.odoorc\n`~/.odoorc`\n\n#### Change old password\n\nOnce the appropriate file has been opened, proceed to modify the old password in the configuration\nfile to a temporary password.\nAfter locating the configuration file, open it using a ( GUI ). This can be achieved by simply double clicking on the file. Then, the device\nshould have a default GUI to open the file with.\nNext, modify the master password line admin_passwd = $pbkdf2-sha⦠to admin_passwd = newpassword1234 , for example. This password can be anything, as long as it is saved\ntemporarily. Make sure to modify all characters after the = .\n`admin_passwd=$pbkdf2-shaâ¦`\n`admin_passwd=newpassword1234`\n`=`\nThe line appears like this: admin_passwd = $pbkdf2-sh39dji295.59mptrfW.9z6HkA$w9j9AMVmKAP17OosCqDxDv2hjsvzlLpF8Rra8I7p/b573hji540mk/.3ek0lg%kvkol6k983mkf/40fjki79m\n`admin_passwd=$pbkdf2-sh39dji295.59mptrfW.9z6HkA$w9j9AMVmKAP17OosCqDxDv2hjsvzlLpF8Rra8I7p/b573hji540mk/.3ek0lg%kvkol6k983mkf/40fjki79m`\nThe modified line appears like this: admin_passwd = newpassword1234\n`admin_passwd=newpassword1234`\nModify the master password line using the following Unix command detailed below.\nConnect to the Odoo serverâs terminal via Secure Shell (SSH) protocol, and edit the\nconfiguration file. To modify the configuration file, enter the following command: sudo nano /etc/odoo.conf\nAfter opening the configuration file, modify the master password line admin_passwd = $pbkdf2-sha⦠to admin_passwd = newpassword1234 . This password can be anything, as long as\nit is saved temporarily. Make sure to modify all characters after the = .\n`admin_passwd=$pbkdf2-shaâ¦`\n`admin_passwd=newpassword1234`\n`=`\nThe line appears like this: admin_passwd = $pbkdf2-sh39dji295.59mptrfW.9z6HkA$w9j9AMVmKAP17OosCqDxDv2hjsvzlLpF8Rra8I7p/b573hji540mk/.3ek0lg%kvkol6k983mkf/40fjki79m\n`admin_passwd=$pbkdf2-sh39dji295.59mptrfW.9z6HkA$w9j9AMVmKAP17OosCqDxDv2hjsvzlLpF8Rra8I7p/b573hji540mk/.3ek0lg%kvkol6k983mkf/40fjki79m`\nThe modified line appears like this: admin_passwd = newpassword1234\n`admin_passwd=newpassword1234`\nIt is essential that the password is changed to something else, rather than triggering a new\npassword reset by adding a semicolon ; at the beginning of the line. This ensures the database\nis secure throughout the entire password reset process.\n`;`\n\n#### Restart Odoo server\n\nAfter setting the temporary password, a restart of the Odoo server is required .\nTo restart the Odoo server, first, type services into the Windows Search bar.\nThen, select the Services application, and scroll down to the Odoo service.\n`services`\nNext, right click on Odoo , and select Start or Restart .\nThis action manually restarts the Odoo server.\nRestart the Odoo server by typing the command: sudo service odoo15 restart\nChange the number after odoo to fit the specific version the server is running on.\n`odoo`\n\n#### Use web interface to re-encrypt password\n\nFirst, navigate to /web/database/manager or http://server_ip:port/web/database/manager in a\nbrowser.\n`/web/database/manager`\n`http://server_ip:port/web/database/manager`\nReplace server_ip with the IP address of the database. Replace port with the numbered port\nthe database is accessible from.\n`server_ip`\n`port`\nNext, click Set Master Password , and type in the previously-selected temporary password\ninto the Master Password field. Following this step, type in a New Master\nPassword . The New Master Password is hashed (or encrypted), once the Continue button is clicked.\nAt this point, the password has been successfully reset, and a hashed version of the new password\nnow appears in the configuration file.\nFor more information on Odoo database security, see this documentation: Database Manager Security .\n\n## Supported Browsers\n\nOdoo supports the latest version of the following browsers.\n- Google Chrome\n- Mozilla Firefox\n- Microsoft Edge\n- Apple Safari\nto have multiple Odoo installations use the same PostgreSQL database,\nor to provide more computing resources to both software.\ntechnically a tool like socat can be used to proxy UNIX sockets across\nnetworks, but that is mostly for software which can only be used over\nUNIX sockets\nor be accessible only over an internal packet-switched network, but that\nrequires secured switches, protections against ARP spoofing and\nprecludes usage of WiFi. Even over secure packet-switched networks,\ndeployment over HTTPS is recommended, and possible costs are lowered as\nâself-signedâ certificates are easier to deploy on a controlled\nenvironment than over the internet.", "headings": ["dbfilter", "Configuration samples", "PostgreSQL", "Configuration sample", "Configuring Odoo", "SSL Between Odoo and PostgreSQL", "Builtin server", "Worker number calculation", "memory size calculation", "LiveChat", "Configuration sample", "HTTPS", "Configuration sample", "HTTPS Hardening", "Odoo as a WSGI Application", "Cron Workers", "LiveChat", "Serving static files and attachments", "Serving static files", "Serving attachments", "Security", "Blocking Brute Force Attacks", "Database Manager Security", "Reset the master password", "Supported Browsers"], "doc_id": "0d5c4570b3e43611"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/on_premise/email_gateway.html", "title": "Email gateway", "module": "install", "section": "Email gateway", "text": "# Email gateway\n\nThe Odoo mail gateway allows you to inject directly all the received emails in Odoo.\nIts principle is straightforward: your SMTP server executes the âmailgateâ script for every new\nincoming email.\nThe script takes care of connecting to your Odoo database through XML-RPC, and send the emails via\nthe MailThread.message_process() feature.\n`MailThread.message_process()`\n\n## Prerequisites\n\n- Administrator access to the Odoo database.\nAdministrator access to the Odoo database.\n- Your own mail server such as Postfix or Exim.\nYour own mail server such as Postfix or Exim.\n- Technical knowledge on how to configure an email server.\nTechnical knowledge on how to configure an email server.\n\n## For Postfix\n\nIn you alias config ( /etc/aliases ):\n`/etc/aliases`\n- Postfix\n- Postfix aliases\n- Postfix virtual\n\n## For Exim\n\nIf you do not have access/manage your email server, use incoming mail servers .", "headings": ["Prerequisites", "For Postfix", "For Exim"], "doc_id": "2e3c94f1ed682566"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/on_premise/geo_ip.html", "title": "Geo IP", "module": "install", "section": "Geo IP", "text": "# Geo IP\n\nThis documentation only applies to On-premise databases.\n\n## Installation\n\n- Download both the GeoLite2 City and Country databases . You should end up with two files\ncalled GeoLite2-City.mmdb and GeoLite2-Country.mmdb .\nDownload both the GeoLite2 City and Country databases . You should end up with two files\ncalled GeoLite2-City.mmdb and GeoLite2-Country.mmdb .\n`GeoLite2-City.mmdb`\n`GeoLite2-Country.mmdb`\n- Move the files to the folder /usr/share/GeoIP/ . mv ~/Downloads/GeoLite2-City.mmdb /usr/share/GeoIP/\nmv ~/Downloads/GeoLite2-Country.mmdb /usr/share/GeoIP/\nMove the files to the folder /usr/share/GeoIP/ .\n`/usr/share/GeoIP/`\n- Restart the server\nIf you donât want to locate the geoip database in /usr/share/GeoIP/ , use the --geoip-city-db and --geoip-country-db options of the Odoo command line\ninterface. These options take the absolute path to the GeoIP database file and use it as the\nGeoIP database. For example:\n`/usr/share/GeoIP/`\n`--geoip-city-db`\n`--geoip-country-db`\n- CLI documentation .\n\n## Test GeoIP geolocation in your Odoo website\n\nEdit a web page to include some geo-ip information such as the country name of the current\nrequest IP address. To do so:\n- Go to your website. Open the web page that you want to test GeoIP .\nGo to your website. Open the web page that you want to test GeoIP .\n`GeoIP`\n- Choose Customize ⣠HTML/CSS/JS Editor .\nChoose Customize ⣠HTML/CSS/JS Editor .\n- Add the following piece of XML in the page : <h1 class= \"text-center\" t-esc= \"request.geoip.country.name or 'geoip failure'\" />\nAdd the following piece of XML in the page :\n- Save and refresh the page.\nSave and refresh the page.\nGeo-ip is working if you read your country name displayed in bold in the middle of the page.\nIn case you read â geoip failure â instead then the geolocalization failed. The common causes are:\n- The browsing IP address is the localhost ( 127.0.0.1 ) or a local area network one. If you\ndonât know, you can access your website using mobile data.\nThe browsing IP address is the localhost ( 127.0.0.1 ) or a local area network one. If you\ndonât know, you can access your website using mobile data.\n`127.0.0.1`\n- You are using a reverse-proxy (apache, nginx) in front of Odoo but didnât start Odoo with the\nproxy-mode enabled. See proxy mode .\nYou are using a reverse-proxy (apache, nginx) in front of Odoo but didnât start Odoo with the\nproxy-mode enabled. See proxy mode .\n`proxymode`\n- The GeoIP database is corrupt, missing or unaccessible. In such case a warning was logged in the\nserver logs.\nThe GeoIP database is corrupt, missing or unaccessible. In such case a warning was logged in the\nserver logs.", "headings": ["Installation", "Test GeoIP geolocation in your Odoo website"], "doc_id": "e25da42af392ce02"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/on_premise/packages.html", "title": "Packaged installers", "module": "install", "section": "Packaged installers", "text": "# Packaged installers\n\nOdoo provides packaged installers for Debian-based Linux distributions (Debian, Ubuntu, etc.),\nRPM-based Linux distributions (Fedora, CentOS, RHEL, etc.), and Windows for the Community and\nEnterprise editions.\nOfficial Community nightly packages with all relevant dependency requirements are available on\nthe nightly server .\nNightly packages may be difficult to keep up to date.\nOfficial Community and Enterprise packages can be downloaded from the Odoo download page .\nIt is required to be logged in as a paying on-premise customer or partner to download the\nEnterprise packages.\n\n## Linux\n\n### Prepare\n\nOdoo needs a PostgreSQL server to run properly.\nThe default configuration for the Odoo âdebâ package is to use the PostgreSQL server on the\nsame host as the Odoo instance. Execute the following command to install the PostgreSQL\nserver:\nMake sure that the sudo command is available and well configured and, only then, execute the\nfollowing command to install the PostgreSQL server:\n`sudo`\nwkhtmltopdf is not installed through pip and must be installed manually in version 0.12.6 for it to support headers\nand footers. Check out the wkhtmltopdf wiki for more details on the various versions.\n`wkhtmltopdf`\n\n### Repository\n\nOdoo S.A. provides a repository that can be used to install the Community edition by executing\nthe following commands:\nUse the usual apt-get upgrade command to keep the installation up-to-date.\n`apt-getupgrade`\nCurrently, there is no nightly repository for the Enterprise edition.\n\n### Distribution package\n\nInstead of using the repository, packages for both the Community and Enterprise editions can\nbe downloaded from the Odoo download page .\nOdoo 18 âdebâ package currently supports Debian Bookworm (12) and Ubuntu Jammy (22.04LTS) or above.\nOnce downloaded, execute the following commands as root to install Odoo as a service,\ncreate the necessary PostgreSQL user, and automatically start the server:\n- The python3-xlwt Debian package, needed to export into the XLS format, does not exist\nin Debian Buster nor Ubuntu 18.04. If needed, install it manually with the following: $ sudo pip3 install xlwt\nThe python3-xlwt Debian package, needed to export into the XLS format, does not exist\nin Debian Buster nor Ubuntu 18.04. If needed, install it manually with the following:\n`python3-xlwt`\n- The num2words Python package - needed to render textual amounts - does not exist in\nDebian Buster nor Ubuntu 18.04, which could cause problems with the l10n_mx_edi module.\nIf needed, install it manually with the following: $ sudo pip3 install num2words\nThe num2words Python package - needed to render textual amounts - does not exist in\nDebian Buster nor Ubuntu 18.04, which could cause problems with the l10n_mx_edi module.\nIf needed, install it manually with the following:\n`num2words`\n`l10n_mx_edi`\nOdoo 18 ârpmâ package supports Fedora 38.\nOnce downloaded, the package can be installed using the âdnfâ package manager:\n\n## Windows\n\nWindows packaging is offered for the convenience of testing or running single-user local\ninstances but production deployment is discouraged due to a number of limitations and risks\nassociated with deploying Odoo on a Windows platform.\n- Download the installer from the nightly server (Community only) or\nthe Windows installer from the Odoo download page (any\nedition.\nDownload the installer from the nightly server (Community only) or\nthe Windows installer from the Odoo download page (any\nedition.\n- Execute the downloaded file. Warning On Windows 8 and later, a warning titled Windows protected your PC may be displayed. Click More Info and then Run anyway to proceed.\nExecute the downloaded file.\nOn Windows 8 and later, a warning titled Windows protected your PC may be displayed. Click More Info and then Run anyway to proceed.\n- Accept the UAC prompt.\nAccept the UAC prompt.\n- Go through the installation steps.\nGo through the installation steps.\nOdoo launches automatically at the end of the installation.", "headings": ["Linux", "Prepare", "Repository", "Distribution package", "Windows"], "doc_id": "0140e20f52a6c822"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/on_premise/source.html", "title": "Source install", "module": "install", "section": "Source install", "text": "# Source install\n\nThe source âinstallationâ is not about installing Odoo but running it directly from the source\ninstead.\nUsing the Odoo source can be more convenient for module developers as it is more easily accessible\nthan using packaged installers.\nIt makes starting and stopping Odoo more flexible and explicit than the services set up by the\npackaged installers. Also, it allows overriding settings using command-line parameters without needing to edit a configuration file.\nFinally, it provides greater control over the systemâs setup and allows to more easily keep (and\nrun) multiple versions of Odoo side-by-side.\n\n## Fetch the sources\n\nThere are two ways to obtain the source code of Odoo: as a ZIP archive or through Git .\n\n### Archive\n\n- Odoo download page\n- GitHub Community repository\nGitHub Community repository\n- Nightly server\n- Odoo download page\n- GitHub Enterprise repository\nGitHub Enterprise repository\n\n### Git\n\nIt is required to have Git installed, and it is recommended to have a\nbasic knowledge of Git commands to proceed.\nTo clone a Git repository, choose between cloning with HTTPS or SSH. In most cases, the best option\nis HTTPS. However, choose SSH to contribute to Odoo source code or when following the Getting\nStarted developer tutorial .\nThe Enterprise git repository does not contain the full Odoo source code . It is only a\ncollection of extra add-ons. The main server code is in the Community edition. Running the\nEnterprise version means running the server from the Community version with the addons-path option set to the folder with the Enterprise edition. It is required to clone both the Community\nand Enterprise repositories to have a working Odoo Enterprise installation.\n`addons-path`\n\n## Prepare\n\n### Python\n\nOdoo requires Python 3.10 or later to run.\nChanged in version 17: Minimum requirement updated from Python 3.7 to Python 3.10.\nUse a package manager to download and install Python 3 if needed.\nDownload the latest version of Python 3 and\ninstall it.\nDuring installation, check Add Python 3 to PATH , then click Customize Installation and\nmake sure that pip is checked.\nUse a package manager ( Homebrew , MacPorts )\nto download and install Python 3 if needed.\nIf Python 3 is already installed, make sure that the version is 3.10 or above, as previous\nversions are not compatible with Odoo.\nVerify that pip is also installed for this version.\n\n### PostgreSQL\n\nOdoo uses PostgreSQL as its database management system.\nUse a package manager to download and install PostgreSQL (supported versions: 12.0 or above).\nIt can be achieved by executing the following:\nDownload PostgreSQL (supported versions: 12.0\nor above) and install it.\nUse Postgres.app to download and install PostgreSQL (supported\nversion: 12.0 or above).\nTo make the command line tools bundled with Postgres.app available, make sure to set up the $PATH variable by following the Postgres.app CLI tools instructions .\n`$PATH`\nBy default, the only user is postgres . As Odoo forbids connecting as postgres , create a new\nPostgreSQL user.\n`postgres`\n`postgres`\nBecause the PostgreSQL user has the same name as the Unix login, it is possible to connect\nto the database without a password.\n- Add PostgreSQLâs bin directory (by default: C:\\Program Files\\PostgreSQL\\<version>\\bin ) to the PATH .\nAdd PostgreSQLâs bin directory (by default: C:\\Program Files\\PostgreSQL\\<version>\\bin ) to the PATH .\n`bin`\n`C:\\ProgramFiles\\PostgreSQL\\<version>\\bin`\n`PATH`\n- Create a postgres user with a password using the pg admin gui: Open pgAdmin . Double-click the server to create a connection. Select Object ⣠Create ⣠Login/Group Role . Enter the username in the Role Name field (e.g., odoo ). Open the Definition tab, enter a password (e.g., odoo ), and click Save . Open the Privileges tab and switch Can login? to Yes and Create database? to Yes .\nCreate a postgres user with a password using the pg admin gui:\n- Open pgAdmin .\n- Double-click the server to create a connection.\nDouble-click the server to create a connection.\n- Select Object ⣠Create ⣠Login/Group Role .\nSelect Object ⣠Create ⣠Login/Group Role .\n- Enter the username in the Role Name field (e.g., odoo ).\nEnter the username in the Role Name field (e.g., odoo ).\n`odoo`\n- Open the Definition tab, enter a password (e.g., odoo ), and click Save .\nOpen the Definition tab, enter a password (e.g., odoo ), and click Save .\n`odoo`\n- Open the Privileges tab and switch Can login? to Yes and Create database? to Yes .\nOpen the Privileges tab and switch Can login? to Yes and Create database? to Yes .\n`Yes`\n`Yes`\nBecause the PostgreSQL user has the same name as the Unix login, it is possible to connect\nto the database without a password.\n\n### Dependencies\n\nUsing distribution packages is the preferred way of installing dependencies.\nAlternatively, install the Python dependencies with pip .\nOn Debian/Ubuntu, the following commands should install the required packages:\nThe setup/debinstall.sh script will parse the debian/control file and install the found packages.\n`setup/debinstall.sh`\nUsing pip may lead to security issues and broken dependencies; only do this if you\nknow what you are doing.\nAs some of the Python packages need a compilation step, they require system libraries to\nbe installed.\nOn Debian/Ubuntu, the following command should install these required libraries:\nOdoo dependencies are listed in the requirements.txt file located at the root of\nthe Odoo Community directory.\n`requirements.txt`\nThe Python packages in requirements.txt are based on their stable/LTS\nDebian/Ubuntu corresponding version at the moment of the Odoo release. For example,\nfor Odoo 15.0, the python3-babel package version is 2.8.0 in Debian Bullseye and\n2.6.0 in Ubuntu Focal. The lowest version is then chosen in the requirements.txt .\n`requirements.txt`\n`python3-babel`\n`requirements.txt`\nIt can be preferable not to mix Python module packages between different instances of\nOdoo or with the system. However, it is possible to use virtualenv to create isolated Python environments.\nNavigate to the path of the Odoo Community installation ( CommunityPath ) and run pip on the requirements file to install the requirements for the current user.\n`CommunityPath`\nBefore installing the dependencies, download and install the Build Tools for Visual\nStudio . Select C++ build tools in the Workloads tab and install them when prompted.\nOdoo dependencies are listed in the requirements.txt file located at the root of the Odoo\nCommunity directory.\n`requirements.txt`\nIt can be preferable not to mix Python module packages between different instances of\nOdoo or with the system. However, it is possible to use virtualenv to create isolated Python environments.\nNavigate to the path of the Odoo Community installation ( CommunityPath ) and run pip on\nthe requirements file in a terminal with Administrator privileges :\n`CommunityPath`\nOdoo dependencies are listed in the requirements.txt file located at the root of the Odoo\nCommunity directory.\n`requirements.txt`\nIt can be preferable not to mix Python module packages between different instances of\nOdoo or with the system. However, it is possible to use virtualenv to create isolated Python environments.\nNavigate to the path of the Odoo Community installation ( CommunityPath ) and run pip on\nthe requirements file:\n`CommunityPath`\nNon-Python dependencies must be installed with a package manager ( Homebrew , MacPorts ).\n- Download and install the Command Line Tools : $ xcode-select --install\nDownload and install the Command Line Tools :\n- Use the package manager to install non-Python dependencies.\nUse the package manager to install non-Python dependencies.\nFor languages using a right-to-left interface (such as Arabic or Hebrew), the rtlcss package is required.\n`rtlcss`\n- Download and install nodejs and npm with a package manager.\nDownload and install nodejs and npm with a package manager.\n- Install rtlcss : $ sudo npm install -g rtlcss\n`rtlcss`\n- Download and install nodejs .\nDownload and install nodejs .\n- Install rtlcss : C:\\> npm install -g rtlcss\n`rtlcss`\n- Edit the system environmentâs variable PATH to add the folder where rtlcss.cmd is\nlocated (typically: C:\\Users\\<user>\\AppData\\Roaming\\npm\\ ).\nEdit the system environmentâs variable PATH to add the folder where rtlcss.cmd is\nlocated (typically: C:\\Users\\<user>\\AppData\\Roaming\\npm\\ ).\n`PATH`\n`rtlcss.cmd`\n`C:\\Users\\<user>\\AppData\\Roaming\\npm\\`\n- Download and install nodejs with a package manager ( Homebrew , MacPorts ).\nDownload and install nodejs with a package manager ( Homebrew , MacPorts ).\n- Install rtlcss : $ sudo npm install -g rtlcss\n`rtlcss`\nwkhtmltopdf is not installed through pip and must be installed manually in version 0.12.6 for it to support headers\nand footers. Check out the wkhtmltopdf wiki for more details on the various versions.\n`wkhtmltopdf`\n\n## Running Odoo\n\nOnce all dependencies are set up, Odoo can be launched by running odoo-bin , the command-line\ninterface of the server. It is located at the root of the Odoo Community directory.\n`odoo-bin`\nTo configure the server, either specify command-line arguments or\na configuration file .\nFor the Enterprise edition, add the path to the enterprise add-ons to the addons-path argument. Note that it must come before the other paths in addons-path for add-ons to be loaded\ncorrectly.\n`enterprise`\n`addons-path`\n`addons-path`\nCommon necessary configurations are:\n- PostgreSQL user and password.\nPostgreSQL user and password.\n- Custom addon paths beyond the defaults to load custom modules.\nCustom addon paths beyond the defaults to load custom modules.\nA typical way to run the server would be:\nWhere CommunityPath is the path of the Odoo Community installation, and mydb is the name\nof the PostgreSQL database.\n`CommunityPath`\n`mydb`\nWhere CommunityPath is the path of the Odoo Community installation, dbuser is the\nPostgreSQL login, dbpassword is the PostgreSQL password, and mydb is the name of the\nPostgreSQL database.\n`CommunityPath`\n`dbuser`\n`dbpassword`\n`mydb`\nWhere CommunityPath is the path of the Odoo Community installation, and mydb is the name\nof the PostgreSQL database.\n`CommunityPath`\n`mydb`\nAfter the server has started (the INFO log odoo.modules.loading: Modules loaded. is printed), open http://localhost:8069 in a web browser and log into the Odoo database with the base administrator\naccount: use admin as the email and, again, admin as the password.\n`odoo.modules.loading:Modulesloaded.`\n`admin`\n`admin`\n- From there, create and manage new users .\nFrom there, create and manage new users .\n- The user account used to log into Odooâs web interface differs from the --db_user CLI argument.\nThe user account used to log into Odooâs web interface differs from the --db_user CLI argument.\n`--db_user`\nThe list of CLI arguments for odoo-bin", "headings": ["Fetch the sources", "Archive", "Git", "Prepare", "Python", "PostgreSQL", "Dependencies", "Running Odoo"], "doc_id": "24795e2bb37295bf"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/on_premise/update.html", "title": "Bugfix updates", "module": "install", "section": "Bugfix updates", "text": "# Bugfix updates\n\n## Introduction\n\nIn order to benefit from the latest improvements, security fixes, bug corrections and\nperformance boosts, you may need to update your Odoo installation from time to time.\nThis guide only applies when are using Odoo on your own hosting infrastructure.\nIf you are using one of the Odoo Cloud solutions, updates are automatically performed for you.\nThe terminology surrounding software updates is often confusing, so here are some preliminary\ndefinitions:\nRefers to the process of obtaining the latest revision of the source code for\nyour current Odoo Edition. For example, updating your Odoo Enterprise 13.0 to the\nlatest revision.\nThis does not directly cause any change to the contents of your Odoo database, and\ncan be undone by reinstalling the previous revision of the source code.\nRefers to a complex data processing operation where the structure and contents of your\ndatabase is permanently altered to make it compatible with a new release of Odoo.\nThis operation is irreversible and typically accomplished via Odooâs database upgrade service , when you decide to\nswitch to a newer release of Odoo.\nHistorically, this process has also been known as a âmigrationâ because it involves moving data\naround inside the database, even though the database may end up at the same physical location\nafter the upgrade.\nThis page describes the typical steps needed to update an Odoo installation to the latest\nversion. If youâd like more information about upgrading a database, please visit the Odoo Upgrade page instead.\n\n## In a nutshell\n\nUpdating Odoo is accomplished by simply reinstalling the latest version of your Odoo\nEdition on top of your current installation. This will preserve your data without any alteration,\nas long as you do not uninstall PostgreSQL (the database engine that comes with Odoo).\nThe main reference for updating is logically our installation guide ,\nwhich explains the common installation methods.\nUpdating is also most appropriately accomplished by the person who deployed Odoo initially,\nbecause the procedure is very similar.\nWe always recommend to download a complete new up-to-date Odoo version, rather than\nmanually applying patches, such as the security patches that come with Security\nAdvisories.\nThe patches are mainly provided for installations that are heavily customized, or for\ntechnical personnel who prefer to apply minimal changes temporarily while testing a\ncomplete update.\n\n## Step 1: Download an updated Odoo version\n\nThe central download page is https://www.odoo.com/page/download . If you see a âBuyâ link for the\nOdoo Enterprise download, make sure you are logged into Odoo.com with the same login that is\nlinked to your Odoo Enterprise subscription.\nAlternatively, you can use the unique download link that was included with your Odoo Enterprise\npurchase confirmation email.\nDownloading an updated version is not necessary if you installed via Github (see below)\n\n## Step 2: Make a backup of your database\n\nThe update procedure is quite safe and should not alter you data. However itâs always best to take\na full database backup before performing any change on your installation, and to store it somewhere\nsafe, on a different computer.\nIf you have not disabled the database manager screen (see here why you should), you\ncan use it (link at bottom of your database selection screen) to download a backup of your\ndatabase(s). If you disabled it, use the same procedure than for your usual backups.\n\n## Step 3: Install the updated version\n\nChoose the method that matches your current installation:\n\n### Packaged Installers\n\nIf you installed Odoo with an installation package downloaded on our website (the recommended method),\nupdating is very simple.\nAll you have to do is download the installation package corresponding to your system (see step #1)\nand install it on your server. They are updated daily and include the latest security fixes.\nUsually, you can simply double-click the package to install it on top of the current installation.\nAfter installing the package, be sure to restart the Odoo service or reboot your server,\nand youâre all set.\n\n### Source Install (Tarball)\n\nIf you have originally installed Odoo with the âtarballâ version (source code archive), you have\nto replace the installation directory with a newer version. First download the latest tarball\nfrom Odoo.com. They are updated daily and include the latest security fixes (see step #1)\nAfter downloading the package, extract it to a temporary location on your server.\nYou will get a folder labeled with the version of the source code, for example âodoo-13.0+e.20190719â,\nthat contains a folder âodoo.egg-infoâ and the actual source code folder named âodooâ (for Odoo 10\nand later) or âopenerpâ for older versions.\nYou can ignore the odoo.egg-info folder. Locate the folder where your current installation is deployed,\nand replace it with the newer âodooâ or âopenerpâ folder that was in the archive you just extracted.\nBe sure to match the folder layout, for example the new âaddonsâ folder included in the source code\nshould end up exactly at the same path it was before. Next, watch out for any specific configuration\nfiles that you may have manually copied or modified in the old folder, and copy them over to the\nnew folder.\nFinally, restart the Odoo service or reboot the machine, and you are all set.\n\n### Source Install (Github)\n\nIf you have originally installed Odoo with a full Github clone of the official repositories, the\nupdate procedure requires you to pull the latest source code via git.\nChange into the directory for each repository (the main Odoo repository, and the Enterprise\nrepository), and run the following commands:\nThe last command may encounter source code conflicts if you had edited the Odoo source code locally.\nThe error message will give you the list of files with conflicts, and you will need to resolve\nthe conflicts manually, by editing them and deciding which part of the code to keep.\nAlternatively, if you prefer to simply discard the conflicting changes and restore the official\nversion, you can use the following command:\nFinally, restart the Odoo service or reboot the machine, and you should be done.\n\n### Docker\n\nPlease refer to our Docker image documentation for\nspecific update instructions.", "headings": ["Introduction", "In a nutshell", "Step 1: Download an updated Odoo version", "Step 2: Make a backup of your database", "Step 3: Install the updated version", "Packaged Installers", "Source Install (Tarball)", "Source Install (Github)", "Docker"], "doc_id": "7e02916135576317"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/standard_extended_support.html", "title": "Standard and extended support", "module": "install", "section": "Standard and extended support", "text": "# Standard and extended support\n\nThe information presented on this page is not intended to amend, modify, or replace any terms of\nthe Odoo Enterprise Subscription Agreement . In the event of\nany inconsistency or conflict, the Subscription Agreement shall govern.\nOdoo provides standard support for all major versions for three years. It includes helpdesk\nsupport, bug fixing, and security updates.\nBeyond those three years, extended support is subject to a mandatory additional fee and includes\nhelpdesk support and bug fixes (depending on feasibility).\n- Odoo releases intermediary versions, called online or SaaS versions, every two to three months.\nThese versions are only available on Odoo Online and are not eligible for extended support.\nOdoo releases intermediary versions, called online or SaaS versions, every two to three months.\nThese versions are only available on Odoo Online and are not eligible for extended support.\n- You can upgrade from any version.\nYou can upgrade from any version.\nThe table below shows the support status of every version. Major releases are highlighted in bold.\nEnd of standard support\nSeptember 2028 (planned)\nSeptember 2027 (planned)\nSeptember 2026 (planned)\nâ : Standard support\nâ : Extended support (mandatory extra fee)\nN/A : Never released for this platform", "headings": [], "doc_id": "7f50e4e5abcb0c81"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/administration/upgrade.html", "title": "Upgrade", "module": "install", "section": "Upgrade", "text": "# Upgrade\n\nAn upgrade involves moving a database from an older version to a newer supported version (e.g., from\nOdoo 16.0 to Odoo 18.0). Regular upgrades are crucial as each version offers new features, bug\nfixes, and security patches. Using a supported version is\nstrongly recommended. Each major version is supported for three years.\nDepending on the hosting type and Odoo version used, a database upgrade can be mandatory .\n- If a database is on a major version (e.g., 16.0, 17.0, 18.0), an upgrade is mandatory\nevery two years.\nIf a database is on a major version (e.g., 16.0, 17.0, 18.0), an upgrade is mandatory\nevery two years.\n- If a database is on a minor version (e.g., 17.1, 17.2, 17.4), an upgrade is mandatory\na few weeks after the next version is released. Minor versions are usually released every\ntwo months.\nIf a database is on a minor version (e.g., 17.1, 17.2, 17.4), an upgrade is mandatory\na few weeks after the next version is released. Minor versions are usually released every\ntwo months.\nAfter the initial three years of support, you will have another two years to complete the\nupgrade. You will be notified when an upgrade is required.\nYou can stay on the same version indefinitely, even if it is not recommended. Note that the\nsmaller the version gap, the easier the upgrade should be.\nYou will receive a notification in your database a few weeks before a mandatory upgrade will be\nautomatically carried out. You are in control of the process as long as the deadline is not\nreached.\nConcretely, Odooâs Upgrade Team performs a silent test upgrade of every database that should be\nupgraded. If the test is successful and lasts less than 20 minutes, you can directly trigger the\nupgrade from the database. If the test fails, you can test an upgrade using the database manager .\nWhen you are invited to upgrade, it is strongly recommended to request an upgraded test\ndatabase first and spend time testing it.\nAn automatic upgrade to the next version will be triggered if no action is taken before the\nspecified due date.\nAn upgrade does not cover:\n- Downgrading to a previous version of Odoo\nDowngrading to a previous version of Odoo\n- Switching editions (e.g., from Community to\nEnterprise)\nSwitching editions (e.g., from Community to\nEnterprise)\n- Changing hosting type (e.g., from on-premise to Odoo Online)\nChanging hosting type (e.g., from on-premise to Odoo Online)\n- Migrating from another ERP to Odoo\nMigrating from another ERP to Odoo\nIf your database contains custom modules, it cannot be upgraded until a version of your custom\nmodules is available for the target version of Odoo. For customers maintaining their own custom\nmodules, we recommend to parallelize the process by requesting an upgraded database while also upgrading the source code of your custom\nmodules .\n\n## Upgrading in a nutshell\n\n- Request an upgraded test database (see obtaining an upgraded test database ).\nRequest an upgraded test database (see obtaining an upgraded test database ).\n- If applicable, upgrade the source code of your custom module to be compatible with the new\nversion of Odoo (see Upgrade a customized database ).\nIf applicable, upgrade the source code of your custom module to be compatible with the new\nversion of Odoo (see Upgrade a customized database ).\n- Thoroughly test the upgraded database (see testing the new version of the database ).\nThoroughly test the upgraded database (see testing the new version of the database ).\n- Report any issue encountered during the testing to Odoo by going to the Support page and\nselecting âAn issue related to my future upgrade (I am testing an upgrade)â .\nReport any issue encountered during the testing to Odoo by going to the Support page and\nselecting âAn issue related to my future upgrade (I am testing an upgrade)â .\n- Once all issues are resolved and you are confident that the upgraded database can be used as\nyour main database without any issues, plan the upgrade of your production database.\nOnce all issues are resolved and you are confident that the upgraded database can be used as\nyour main database without any issues, plan the upgrade of your production database.\n- Request the upgrade for the production database, rendering it unavailable for the time it takes\nto complete the process (see upgrading the production database ).\nRequest the upgrade for the production database, rendering it unavailable for the time it takes\nto complete the process (see upgrading the production database ).\n- Report any issue encountered during the upgrade to Odoo by going to the Support page and\nselecting âAn issue related to my upgrade (production)â .\nReport any issue encountered during the upgrade to Odoo by going to the Support page and\nselecting âAn issue related to my upgrade (production)â .\n\n## Obtaining an upgraded test database\n\nThe Upgrade page is the main platform for requesting an upgraded\ndatabase. However, depending on the hosting type, you can upgrade from the command line\n(on-premise), the Odoo Online database manager , or your Odoo.sh project .\nThe Upgrade platform follows the same Privacy Policy as the\nother Odoo.com services. Visit the General Data Protection Regulation page to learn more about how Odoo handles your data and privacy.\nTo upgrade an Odoo Online database:\n- Open the database manager .\nOpen the database manager .\n- Select the database and click Manage .\nSelect the database and click Manage .\n- Click Upgrade in the Database section.\nClick Upgrade in the Database section.\n- In the popup: Select the version of Odoo you want to upgrade to, usually the latest version. Enter the Email to notify , which will receive a link to the upgraded\ndatabase. Select the Purpose of the upgrade, which is automatically set to Test for your first upgrade request. Click Upgrade .\n- Select the version of Odoo you want to upgrade to, usually the latest version.\nSelect the version of Odoo you want to upgrade to, usually the latest version.\n- Enter the Email to notify , which will receive a link to the upgraded\ndatabase.\nEnter the Email to notify , which will receive a link to the upgraded\ndatabase.\n- Select the Purpose of the upgrade, which is automatically set to Test for your first upgrade request.\nSelect the Purpose of the upgrade, which is automatically set to Test for your first upgrade request.\n- Click Upgrade .\nIn the database manager, the Connect button will be replaced by an unclickable Upgrading⦠button until completion. Once the process is successful, an email\ncontaining a link to the upgraded test database is sent to the address provided. The test\ndatabase can also be accessed from the database manager by clicking the ( caret down ) button before the database name to display the test database, then\nclicking Connect .\nOdoo.sh is integrated with the upgrade platform to simplify the upgrade process.\nThe latest production daily automatic backup is then sent to the Upgrade platform.\nOnce the upgrade platform is done upgrading the backup and uploading it on the branch, it is\nput in a special mode : each time a commit is pushed on the branch, a restore\noperation of the upgraded backup and an update of all the custom modules occur. This\nallows you to test your custom modules on a pristine copy of the upgraded database. The log\nfile of the upgrade process can be found in your newly upgraded staging build by going to ~/logs/upgrade.log .\n`~/logs/upgrade.log`\nIn databases where custom modules are installed, their source code must be up-to-date with\nthe target version of Odoo before the upgrade can be performed. If there are none, the\nâupdate on commitâ mode is skipped, the upgraded database is built as soon as it is\ntransferred from the upgrade platform, and the upgrade mode is exited.\nCheck out the Upgrade a customized database page for more information.\nThe standard upgrade process can be initiated by entering the following command line on the\nmachine where the database is hosted:\nThis command has some requirements on the environment it runs in:\n- Some external commands that must be provided by the operating system, normally found in\nany Linux distribution (including WSL). An error will be displayed if one or several of\nthem are missing.\nSome external commands that must be provided by the operating system, normally found in\nany Linux distribution (including WSL). An error will be displayed if one or several of\nthem are missing.\n- The system user that executes the command needs to be configured with access to the\ndatabase. Please refer to the PostgreSQL documentation of the client environment or the client password\nfile for this requirement.\nThe system user that executes the command needs to be configured with access to the\ndatabase. Please refer to the PostgreSQL documentation of the client environment or the client password\nfile for this requirement.\n- The script needs to be able to reach one or multiple servers of the upgrade platform\nboth on TCP port 443 and to any random TCP port in the range between 32768 and 60999.\nThis can be in conflict with your restrictive firewall and may need an exception added\nto the firewall configuration.\nThe script needs to be able to reach one or multiple servers of the upgrade platform\nboth on TCP port 443 and to any random TCP port in the range between 32768 and 60999.\nThis can be in conflict with your restrictive firewall and may need an exception added\nto the firewall configuration.\nThe following command can be used to display the general help and the main commands:\nAn upgraded test database can also be requested via the Upgrade page .\nIn databases where custom modules are installed, their source code must be up-to-date with\nthe target version of Odoo before the upgrade can be performed. Check out the Upgrade a customized database page for more information.\n- For security reasons, only the person who submitted the upgrade request can download it.\nFor security reasons, only the person who submitted the upgrade request can download it.\n- For storage reasons, the databaseâs copy is submitted without a filestore to the upgrade\nserver. Therefore, the upgraded database does not contain the production filestore.\nFor storage reasons, the databaseâs copy is submitted without a filestore to the upgrade\nserver. Therefore, the upgraded database does not contain the production filestore.\n- Before restoring the upgraded database, its filestore must be merged with the production\nfilestore to be able to perform tests in the same conditions as it would be in the new\nversion.\nBefore restoring the upgraded database, its filestore must be merged with the production\nfilestore to be able to perform tests in the same conditions as it would be in the new\nversion.\n- The upgraded database contains: A dump.sql file containing the upgraded database A filestore folder containing files extracted from in-database records into\nattachments (if there are any) and new standard Odoo files from the targeted Odoo\nversion (e.g., new images, icons, payment providerâs logos, etc.).\nThis is the folder that should be merged with the production filestore\nin order to get the full upgraded filestore.\nThe upgraded database contains:\n- A dump.sql file containing the upgraded database\nA dump.sql file containing the upgraded database\n`dump.sql`\n- A filestore folder containing files extracted from in-database records into\nattachments (if there are any) and new standard Odoo files from the targeted Odoo\nversion (e.g., new images, icons, payment providerâs logos, etc.).\nThis is the folder that should be merged with the production filestore\nin order to get the full upgraded filestore.\nA filestore folder containing files extracted from in-database records into\nattachments (if there are any) and new standard Odoo files from the targeted Odoo\nversion (e.g., new images, icons, payment providerâs logos, etc.).\nThis is the folder that should be merged with the production filestore\nin order to get the full upgraded filestore.\n`filestore`\nYou can request multiple test databases if you wish to test an upgrade more than once.\nWhen an upgrade request is completed, an upgrade report is attached to the successful upgrade\nemail, and it becomes available in the Discuss app for users who are part of the âAdministration\n/ Settingsâ group. This report provides important information about the changes introduced by\nthe new version.\n\n## Testing the new version of the database\n\nIt is essential to test the upgraded test database to ensure that you are not stuck in your\nday-to-day activities by a change in views, behavior, or an error message once the upgrade goes\nlive.\nTest databases are neutralized, and some features are disabled to prevent them from impacting the\nproduction database:\n- Scheduled actions are disabled.\nScheduled actions are disabled.\n- Outgoing mail servers are disabled by archiving the existing ones and adding a fake one.\nOutgoing mail servers are disabled by archiving the existing ones and adding a fake one.\n- Payment providers and delivery carriers are reset to the test environment.\nPayment providers and delivery carriers are reset to the test environment.\n- Bank synchronization is disabled. Should you want to test the synchronization, contact your\nbank synchronization provider to get sandbox credentials.\nBank synchronization is disabled. Should you want to test the synchronization, contact your\nbank synchronization provider to get sandbox credentials.\nTesting as many of your business flows as possible is strongly recommended to ensure they are\nworking correctly and to get more familiar with the new version.\n- Are there views that are deactivated in your test database but active in your production\ndatabase?\nAre there views that are deactivated in your test database but active in your production\ndatabase?\n- Are your usual views still displayed correctly?\nAre your usual views still displayed correctly?\n- Are your reports (invoice, sales order, etc.) correctly generated?\nAre your reports (invoice, sales order, etc.) correctly generated?\n- Are your website pages working correctly?\nAre your website pages working correctly?\n- Are you able to create and modify records? (sales orders, invoices, purchases, users, contacts,\ncompanies, etc.)\nAre you able to create and modify records? (sales orders, invoices, purchases, users, contacts,\ncompanies, etc.)\n- Are there any issues with your mail templates?\nAre there any issues with your mail templates?\n- Are there any issues with saved translations?\nAre there any issues with saved translations?\n- Are your search filters still present?\nAre your search filters still present?\n- Can you export your data?\nCan you export your data?\n- Checking a random product in your product catalog and comparing its test and production data to\nverify everything is the same (product category, selling price, cost price, vendor, accounts,\nroutes, etc.).\nChecking a random product in your product catalog and comparing its test and production data to\nverify everything is the same (product category, selling price, cost price, vendor, accounts,\nroutes, etc.).\n- Buying this product (Purchase app).\nBuying this product (Purchase app).\n- Confirming the reception of this product (Inventory app).\nConfirming the reception of this product (Inventory app).\n- Checking if the route to receive this product is the same in your production database\n(Inventory app).\nChecking if the route to receive this product is the same in your production database\n(Inventory app).\n- Selling this product (Sales app) to a random customer.\nSelling this product (Sales app) to a random customer.\n- Opening your customer database (Contacts app), selecting a customer (or company), and checking\nits data.\nOpening your customer database (Contacts app), selecting a customer (or company), and checking\nits data.\n- Shipping this product (Inventory app).\nShipping this product (Inventory app).\n- Checking if the route to ship this product is the same as in your production database\n(Inventory app).\nChecking if the route to ship this product is the same as in your production database\n(Inventory app).\n- Validating a customer invoice (Invoicing or Accounting app).\nValidating a customer invoice (Invoicing or Accounting app).\n- Crediting the invoice (issuing a credit note) and checking if it behaves as in your production\ndatabase.\nCrediting the invoice (issuing a credit note) and checking if it behaves as in your production\ndatabase.\n- Checking your reportsâ results (Accounting app).\nChecking your reportsâ results (Accounting app).\n- Randomly checking your taxes, currencies, bank accounts, and fiscal year (Accounting app).\nRandomly checking your taxes, currencies, bank accounts, and fiscal year (Accounting app).\n- Making an online order (Website apps) from the product selection in your shop until the\ncheckout process and checking if everything behaves as in your production database.\nMaking an online order (Website apps) from the product selection in your shop until the\ncheckout process and checking if everything behaves as in your production database.\nThis list is not exhaustive. Extend the example to your other apps based on your use of Odoo.\nIf you face an issue while testing your upgraded test database, you can request the assistance of\nOdoo by going to the Support page and selecting âAn issue related to my future upgrade (I am\ntesting an upgrade)â . In any case, it is essential to\nreport any problem encountered during the testing to fix it before upgrading your production\ndatabase.\nYou might encounter significant differences with standard views, features, fields, and models during\ntesting. Those changes cannot be reverted on a case-by-case basis. However, if a change introduced\nby a new version breaks a customization, it is the responsibility of the maintainer of your custom\nmodule to make it compatible with the new version of Odoo.\nDo not forget to test:\n- Integrations with external software (EDI, APIs, etc.)\nIntegrations with external software (EDI, APIs, etc.)\n- Workflows between different apps (online sales with eCommerce, converting a lead all the way to\na sales order, delivery of products, etc.)\nWorkflows between different apps (online sales with eCommerce, converting a lead all the way to\na sales order, delivery of products, etc.)\n- Data exports\n- Automated actions\n- Server actions in the action menu on form views, as well as by selecting multiple records on\nlist views\nServer actions in the action menu on form views, as well as by selecting multiple records on\nlist views\n\n## Upgrading the production database\n\nOnce the tests are completed and you are confident that the upgraded\ndatabase can be used as your main database without any issues, it is time to plan the go-live day.\nYour production database will be unavailable during its upgrade. Therefore, we recommend planning\nthe upgrade at a time when the use of the database is minimal.\nAs the standard upgrade scripts and your database are constantly evolving, it is also recommended\nto frequently request another upgraded test database to ensure that the upgrade process is still\nsuccessful, especially if it takes a long time to finish. Fully rehearsing the upgrade process the\nday before upgrading the production database is also recommended.\nGoing into production without first testing may lead to:\n- Users failing to adjust to the changes and new features\nUsers failing to adjust to the changes and new features\n- Business interruptions (e.g., no longer having the possibility to validate an action)\nBusiness interruptions (e.g., no longer having the possibility to validate an action)\n- Poor customer experience (e.g., an eCommerce website that does not work correctly)\nPoor customer experience (e.g., an eCommerce website that does not work correctly)\nThe process of upgrading a production database is similar to upgrading a test database, but with a\nfew exceptions.\nThe process is similar to obtaining an upgraded test database , except for the purpose option, which must be set to Production instead of Test .\nOnce the upgrade is requested, the database will be unavailable until the upgrade is\nfinished. Once the process is completed, it is impossible to revert to the previous\nversion.\nThe process is similar to obtaining an upgraded test database on\nthe Production branch.\nThe process is triggered as soon as a new commit is made on the branch. This\nallows the upgrade process to be synchronized with the deployment of the custom modulesâ\nupgraded source code.\nIf there are no custom modules, the upgrade process is triggered immediately.\nThe database is unavailable throughout the process. If anything goes wrong, the platform\nautomatically reverts the upgrade, as it would be for a regular update. In case of success,\na backup of the database before the upgrade is created.\nThe update of your custom modules must be successful to complete the entire upgrade process.\nMake sure the status of your staging upgrade is successful before trying it in\nproduction. More information on how to upgrade your custom modules can be found on Upgrade a customized database .\nThe command to upgrade a database to production is similar to the one of upgrading a test\ndatabase except for the argument test , which must be replaced by production :\n`test`\n`production`\nAn upgraded production database can also be requested via the Upgrade page .\nOnce the database is uploaded, any modification to your production database will not be\npresent on your upgraded database. This is why we recommend not using it during the upgrade\nprocess.\nWhen requesting an upgraded database for production purposes, the copy is submitted without\na filestore. Therefore, the upgraded database filestore must be merged with the production\nfilestore before deploying the new version.\nIn case of an issue with your production database, you can request the assistance of Odoo by going\nto the Support page and selecting âAn issue related to my upgrade (production)â .\n\n## Service-level agreement (SLA)\n\nWith Odoo Enterprise, upgrading a database to the most recent version of Odoo is free , including\nany support required to rectify potential discrepancies in the upgraded database.\nInformation about the upgrade services included in the Enterprise Licence is available in the Odoo Enterprise Subscription Agreement . However, this section clarifies what\nupgrade services you can expect.\n\n### Upgrade services covered by the SLA\n\nDatabases hosted on Odooâs cloud platforms (Odoo Online and Odoo.sh) or self-hosted (On-Premise) can\nbenefit from upgrade services at all times for:\n- the upgrade of all standard applications ;\nthe upgrade of all standard applications ;\n- the upgrade of all customizations created with the Studio app , as long as Studio is still\ninstalled and the respective subscription is still active; and\nthe upgrade of all customizations created with the Studio app , as long as Studio is still\ninstalled and the respective subscription is still active; and\n- the upgrade of all developments and customizations covered by a maintenance of customizations\nsubscription .\nthe upgrade of all developments and customizations covered by a maintenance of customizations\nsubscription .\nUpgrade services are limited to the technical conversion and adaptation of a database (standard\nmodules and data) to make it compatible with the version targeted by the upgrade.\n\n### Upgrade services not covered by the SLA\n\nThe following upgrade-related services are not included:\n- the cleaning of pre-existing data and configurations while upgrading;\nthe cleaning of pre-existing data and configurations while upgrading;\n- the upgrade of additional modules not covered by a maintenance contract that are created\nin-house or by third parties, including Odoo partners; and\nthe upgrade of additional modules not covered by a maintenance contract that are created\nin-house or by third parties, including Odoo partners; and\n- training on using the upgraded versionâs features and workflows.\ntraining on using the upgraded versionâs features and workflows.\n- Odoo.sh documentation\nOdoo.sh documentation\n- Supported Odoo versions\nSupported Odoo versions", "headings": ["Upgrading in a nutshell", "Obtaining an upgraded test database", "Testing the new version of the database", "Upgrading the production database", "Service-level agreement (SLA)", "Upgrade services covered by the SLA", "Upgrade services not covered by the SLA"], "doc_id": "5beb4daf19c61781"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting.html", "title": "Accounting and Invoicing", "module": "accounting", "section": "Accounting and Invoicing", "text": "# Accounting and Invoicing\n\nOdoo Invoicing is a standalone app designed to create invoices, send them to customers, and manage\npayments. It also handles flows involving vendor bills. On the other hand, the Accounting app is a\ncomprehensive accounting solution that allows the same actions and includes additional features such\nas standard financial reports, bank reconciliation, budgets, asset management, and more.\nOdoo Tutorials: Accounting\n\n#### Get started\n\nBasic concepts of accounting and initial setup of your accounting\n\n#### Taxes\n\nTaxes, fiscal positions, and integrations\n\n#### Customer invoices\n\nCustomer invoices, payment terms, and electronic invoicing\n\n#### Vendor bills\n\nVendor bills, assets, and invoice digitization (OCR)\n\n#### Payments\n\nInvoices and bills payments (online, checks, batches) and follow-up on invoices\n\n#### Bank and cash accounts\n\nBank synchronization, reconciliation, and cash registers\n\n#### Reporting\n\nReporting, declarations, and analytic accounting\n\n## Double-entry bookkeeping\n\nOdoo automatically creates all the underlying journal entries for all accounting transactions (e.g.,\ncustomer invoices, vendor bills, point-of-sales orders, expenses, inventory valuations, etc.).\nOdoo uses the double-entry bookkeeping system, whereby every entry needs a corresponding and\nopposite counterpart in a different account, with one account debited and the other credited.\nIt ensures that all transactions are recorded accurately and consistently and that the accounts\nalways balance.\nAccounting Cheat Sheet\n\n## Accrual and cash basis\n\nBoth accrual and cash basis accounting are supported in Odoo. This allows reporting income and\nexpense either when the transaction occurs (accrual basis) or when the payment is made or received\n(cash basis).\n\n## Multi-company\n\nMultiple companies can be managed within the same\ndatabase. Each company has its own chart of accounts , but accounts can be shared , which is useful when viewing consolidation reports. Users can view\nrecords and reports from multiple companies simultaneously but can only work on a single companyâs\naccounting at a time.\n- Multi-company\n- Inter-company transactions\nInter-company transactions\n\n## Multi-currency environment\n\nA multi-currency environment with an automated\nexchange rate to ease international transactions is available in Odoo. Every transaction is recorded\nin the companyâs default currency; for transactions occurring in another currency, Odoo stores both\nthe value in the companyâs currency and the transactionsâ currency value. Odoo generates currency\ngains and losses after reconciling the journal items.\nManage a bank in a foreign currency\n\n## Branches\n\nParent companies and their branches can be managed within a single database, operating under shared\naccounting and reporting rules, including the following:\n- The parent companyâs chart of accounts , main currency , and taxes apply to all branches.\nThe parent companyâs chart of accounts , main currency , and taxes apply to all branches.\n- Branches can manage their own dedicated journals and related records.\nBranches can manage their own dedicated journals and related records.\n- The parent company manages a common fiscal period , so its lock and closing dates apply across all branches. However,\nbranches may set earlier lock dates if needed.\nThe parent company manages a common fiscal period , so its lock and closing dates apply across all branches. However,\nbranches may set earlier lock dates if needed.\n- The parent company can access all reports , invoices , bills , etc., from its branches,\nwhile each branch can only view its own data.\nThe parent company can access all reports , invoices , bills , etc., from its branches,\nwhile each branch can only view its own data.\nThe Fiscal localization package is set on the parent company.\nAdding a branch to a company enables multi-company functions .\nFor more information, refer to Odooâs pricing page or\ncontact your Odoo account manager.\n\n### Reporting\n\nThe parent company consolidates accounting operations from all branches, providing a centralized\nview of financial reports , such as profit and loss or balance sheets.\n\n### VAT\n\nEach company and branch must be configured with its own legal information, including a VAT number\nwhen applicable. Depending on the structure, branches may share the parent companyâs VAT number or\nhave their own, resulting in a common or separate VAT return .\nThis flexible setup allows users to generate individual reports and tax returns for each entity if\nneeded.\n\n## International standards\n\nOdoo Accounting supports over 100 countries and provides standardized features and mechanisms\napplicable across all regions. Country-specific modules are included to comply with local accounting\nregulations. Fiscal localizations handle regional requirements, such\nas charts of accounts, taxes, or any other legal obligations.\n\n## Accounts receivable and payable\n\nBy default, one account is designated for accounts receivable entries and another for accounts\npayable entries. As transactions are linked to contacts , it is possible to run a report per\ncustomer, vendor, or supplier.\nThe Partner Ledger report displays the balance of customers and suppliers. To access it, go to Accounting ⣠Reporting ⣠Partner Ledger .\n\n## Reporting\n\nThe following financial reports are available and updated in\nreal-time:\nUnrealized currency gains/losses\nDepreciation schedule\nCreate and customize reports with Odooâs report engine.\n\n### Tax return\n\nIn the Tax return , Odoo computes all accounting transactions for the\nspecific tax period and uses these totals to calculate the tax obligation.\nDepending on the countryâs localization, an XML version of the tax report can be generated to be\nuploaded to the VAT platform of the relevant taxation authority.\n\n## Bank synchronization\n\nThe bank synchronization system directly connects with banking institutions to automatically\nimport all transactions into the database. It gives an overview of the cash flow without logging\ninto an online banking system or waiting for paper bank statements.\n\n## Inventory valuation\n\nBoth periodic (manual) and perpetual (automated) inventory valuations are supported in Odoo. The\navailable methods are Standard Price, Average Cost (AVCO), and First In First Out (FIFO).\nAutomatic inventory valuation\n\n## Retained earnings\n\nRetained earnings are the portion of income retained by a business. Odoo calculates current year\nearnings in real-time, so no year-end journal or rollover is required. The profit\nand loss balance is automatically reported on the balance sheet report.\nAccounting Cheat Sheet\n\n## Fiduciaries\n\nThe Accounting Firms mode can be activated by going to Accounting â£\nConfiguration ⣠Settings . When enabled:\n- The documentâs sequence becomes editable on all documents;\nThe documentâs sequence becomes editable on all documents;\n- The Total (tax incl.) field appears to speed up and control the encoding by automating\nline creation with the right account and tax;\nThe Total (tax incl.) field appears to speed up and control the encoding by automating\nline creation with the right account and tax;\n- Invoice Date and Bill Date are pre-filled when encoding a transaction.\nInvoice Date and Bill Date are pre-filled when encoding a transaction.\n- A Quick encoding option is available for customer invoices and vendor bills.\nA Quick encoding option is available for customer invoices and vendor bills.\n\n## Share invoices with external accountants\n\nOdoo offers multiple ways to share invoices and bills with an external accountant, including\nthe abilities to grant access rights to your database\nand to download ZIP files containing all invoices and all bills.\n\n### Accountant access rights\n\nTo grant access to the companyâs accountant, add the accountant as a new user and configure the appropriate access rights in the Accounting section to enable access to the\ncompanyâs financial data:\n- Accounting : Select Accountant .\nAccounting : Select Accountant .\n- Bank : Allow bank account validation.\nBank : Allow bank account validation.\nAdding an accountant as a new user in Odoo Online is\nfree if the accountant has an Odoo account registered with the same email address as the one\nlisted for the company user. However, Odoo.sh and Odoo On-premise may involve extra charges for each\nadditional user. For more pricing information, see Odooâs pricing .\nFor a multi-company environment, set the appropriate access .\n\n### ZIP file export\n\nGroups of invoices and bills can be exported in ZIP files. To export invoices or bills in ZIP files,\nfollow these steps:\n- Navigate to Accounting ⣠Customers ⣠Invoices or Accounting\n⣠Vendors ⣠Bills .\nNavigate to Accounting ⣠Customers ⣠Invoices or Accounting\n⣠Vendors ⣠Bills .\n- Select the invoices or bills to be included in the ZIP file.\nSelect the invoices or bills to be included in the ZIP file.\n- Click Actions menu, and click Export ZIP .\nClick Actions menu, and click Export ZIP .\nOnce the ZIP file is exported, it can be sent to an external accountant to provide them with all the\ninformation of your invoices and bills.", "headings": ["Double-entry bookkeeping", "Accrual and cash basis", "Multi-company", "Multi-currency environment", "Branches", "Reporting", "VAT", "International standards", "Accounts receivable and payable", "Reporting", "Tax return", "Bank synchronization", "Inventory valuation", "Retained earnings", "Fiduciaries", "Share invoices with external accountants", "Accountant access rights", "ZIP file export"], "doc_id": "b289996e2940d2e7"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/bank.html", "title": "Bank and cash accounts", "module": "accounting", "section": "Bank and cash accounts", "text": "# Bank and cash accounts\n\nYou can manage as many bank or cash accounts as needed on your database. Configuring them correctly\nallows you to have all your banking data up-to-date and ready for reconciliation with your journal entries.\nIn Odoo Accounting, each bank account has a dedicated journal set to post all entries in a dedicated\naccount. Both the journal and the account are automatically created and configured whenever you add\na bank account.\nCash journals and accounts must be configured manually.\nBank journals are displayed by default on the Accounting Dashboard in the form of cards\nwhich include action buttons.\n\n## Manage bank and cash accounts\n\n### Connect a bank for automatic synchronization\n\nTo connect your bank account to your database, go to the Accounting Dashboard and on the\nkanban card of an unconnected bank, click Search over 26000 banks . Select your bank from\nthe list, click on Connect , and follow the instructions.\n\n### Create a bank account\n\nIf your banking institution is not available in Odoo, or if you donât want to connect your bank\naccount to your database, you can configure your bank account manually.\nTo manually add a bank account, go to the Accounting Dashboard and on the kanban card of\nan unconnected bank, click Search over 26000 banks . Then, click on Record\ntransactions manually (at the bottom right), fill out the bank information, and click Create .\n- Odoo automatically detects the bank account type (e.g., IBAN) and enables some features\naccordingly.\nOdoo automatically detects the bank account type (e.g., IBAN) and enables some features\naccordingly.\n- A default bank journal is available and can be used to\nconfigure your bank account by going to Accounting ⣠Configuration â£\nAccounting: Journals ⣠Bank . Open it and edit the different fields to match your bank\naccount information.\nA default bank journal is available and can be used to\nconfigure your bank account by going to Accounting ⣠Configuration â£\nAccounting: Journals ⣠Bank . Open it and edit the different fields to match your bank\naccount information.", "headings": ["Manage bank and cash accounts", "Connect a bank for automatic synchronization", "Create a bank account"], "doc_id": "6ed00f7ce7a03819"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/bank/bank_synchronization.html", "title": "Bank synchronization", "module": "accounting", "section": "Bank synchronization", "text": "# Bank synchronization\n\nOdoo synchronizes directly with your bank institution to automatically import all bank transactions\ninto the database. It supports over 26,000 financial institutions worldwide and relies on multiple third-party providers to connect with\nbanks.\nTo use this service, a valid Odoo Enterprise subscription is required.\nTo check if your bank is compatible with Odoo, go to Odoo Accounting Features , and click See list of\nsupported institutions in the Bank & Cash section.\n\n## Configuration\n\n### First synchronization\n\nTo synchronize the database with a bank, go to the Accounting Dashboard, click the (vertical ellipsis) icon of the Bank journal, and Connect bank . In the Search for an institution window, select the relevant\nbank and click Connect .\n- Alternatively, go to Accounting ⣠Configuration ⣠Add a Bank Account or\nclick Search over 26000 banks in the Accounting dashboard.\nAlternatively, go to Accounting ⣠Configuration ⣠Add a Bank Account or\nclick Search over 26000 banks in the Accounting dashboard.\n- Depending on your bank and country, you can select the Type of account and/or\nchoose another third-party provider to connect with the bank if needed before clicking Connect .\nDepending on your bank and country, you can select the Type of account and/or\nchoose another third-party provider to connect with the bank if needed before clicking Connect .\n- If your bank is not listed in the Search for an institution window, scroll down the\nlist and click Add new bank to create a bank account manually. Fill\nin the Account Number , Bank , and SWIFT Code and click Connect . A bank journal is then created and named using the account number. Note\nthat in this case, the bank is not synchronized.\nIf your bank is not listed in the Search for an institution window, scroll down the\nlist and click Add new bank to create a bank account manually. Fill\nin the Account Number , Bank , and SWIFT Code and click Connect . A bank journal is then created and named using the account number. Note\nthat in this case, the bank is not synchronized.\n- If issues occur during the first synchronization, check that no firewall or proxy is blocking\nthe address https://production.odoofin.com/ . Make sure your web browser allows pop-ups and that\nany ad-blocker is disabled.\nIf issues occur during the first synchronization, check that no firewall or proxy is blocking\nthe address https://production.odoofin.com/ . Make sure your web browser allows pop-ups and that\nany ad-blocker is disabled.\nWhen setting up bank synchronization, accounting transactions are automatically recorded from the\ndate of the last transaction +1 day (e.g., if the last transaction date is 31/12/2025, the\nrecording starts on 01/01/2026). If the journal contains no transactions, all available past\ntransactions are retrieved. To limit the retrieval period, go to Accounting â£\nAccounting ⣠Lock Dates , and set a date in the Lock Everything field.\n- Some banks are in a Beta status, meaning theyâre not yet fully supported by\nthird-party providers. This may lead to bugs or other issues. Although they can be used, Odoo\ndoes not provide technical support in this case.\nSome banks are in a Beta status, meaning theyâre not yet fully supported by\nthird-party providers. This may lead to bugs or other issues. Although they can be used, Odoo\ndoes not provide technical support in this case.\n- The third-party provider may\nrequest more information to connect with a bank. This information is not stored on Odooâs\nservers.\nThe third-party provider may\nrequest more information to connect with a bank. This information is not stored on Odooâs\nservers.\n- To view all past synchronizations, activate the developer mode and go to Accounting ⣠Configuration ⣠Online Synchronization .\nTo view all past synchronizations, activate the developer mode and go to Accounting ⣠Configuration ⣠Online Synchronization .\n\n### Manual synchronization\n\nAfter the first synchronization , bank\njournals are synchronized by default every twelve hours. To manually trigger synchronization, go to\nthe Accounting dashboard and click Fetch Transactions on the relevant bank journal.\nAlternatively, activate the developer mode , go to Accounting ⣠Configuration ⣠Online Synchronization , select the relevant\nbank, and click Fetch transactions .\n- Some banks do not support automatic transaction fetching. For these institutions, an error\nmessage appears during the automatic account synchronization, prompting the user to disable the\nautomatic synchronization. This message is also logged in the chatter of the online\nsynchronization. In such cases, disable the Automatic synchronization option in the\ncorresponding bankâs Online Synchronization and make sure to perform manual\nsynchronizations by clicking Fetch Transactions on the relevant bank journal.\nSome banks do not support automatic transaction fetching. For these institutions, an error\nmessage appears during the automatic account synchronization, prompting the user to disable the\nautomatic synchronization. This message is also logged in the chatter of the online\nsynchronization. In such cases, disable the Automatic synchronization option in the\ncorresponding bankâs Online Synchronization and make sure to perform manual\nsynchronizations by clicking Fetch Transactions on the relevant bank journal.\n- For some bank institutions, transactions can only be fetched up to three months in the past. If\nolder transactions are needed, they can be imported .\nFor some bank institutions, transactions can only be fetched up to three months in the past. If\nolder transactions are needed, they can be imported .\n\n### Update synchronization credentials\n\nTo update bank credentials, activate the developer mode , and go to Accounting ⣠Configuration ⣠Online Synchronization . Open the connection that\nneeds to be updated, click Update Credentials , and follow the steps.\n- The steps may vary depending on the third-party provider, as each provider follows its own\nprocess.\nThe steps may vary depending on the third-party provider, as each provider follows its own\nprocess.\n- When updating bank credentials, make sure all accounts are selected for synchronization,\nincluding those from other banking institutions if applicable.\nWhen updating bank credentials, make sure all accounts are selected for synchronization,\nincluding those from other banking institutions if applicable.\n\n### Third-party providers\n\nOdoo relies on third-party providers to securely connect to your bank accounts and automatically\nimport transactions and financial data into the database. The following providers are used:\n- Plaid (supported in the United States of America and Canada )\nPlaid (supported in the United States of America and Canada )\n- Yodlee (supported in Europe)\nYodlee (supported in Europe)\n- Salt Edge (supported worldwide )\nSalt Edge (supported worldwide )\n- Ponto (supported in Europe)\nPonto (supported in Europe)\n- Enable Banking (supported in Scandinavian countries )\nEnable Banking (supported in Scandinavian countries )\nWhen connecting a bank to Odoo :\n- Depending on your bank and country, change the default third-party provider when selecting the\nbank, if necessary.\nDepending on your bank and country, change the default third-party provider when selecting the\nbank, if necessary.\n- Make sure to check the consent checkbox to allow information to be shared with Odoo.\nMake sure to check the consent checkbox to allow information to be shared with Odoo.\n- Select all accounts that need access and synchronization, including those from other banking\ninstitutions.\nSelect all accounts that need access and synchronization, including those from other banking\ninstitutions.\n- Bank synchronization troubleshooting\nBank synchronization troubleshooting\n- Salt Edge bank synchronization troubleshooting\nSalt Edge bank synchronization troubleshooting\n- Ponto bank synchronization troubleshooting\nPonto bank synchronization troubleshooting\n\n## Duplicate transactions\n\nWhen importing transactions, some may appear duplicated due to the same online transaction\nidentifier or the same currency, amount, account number, and date.\nTo search for duplicate transactions, access the bank reconciliation view , then follow these steps:\n- Click the (gear) icon, and select Find Duplicate\nTransactions .\nClick the (gear) icon, and select Find Duplicate\nTransactions .\n- All duplicate transactions from the starting date are displayed in the Transactions tab. Update the Starting Date if needed.\nAll duplicate transactions from the starting date are displayed in the Transactions tab. Update the Starting Date if needed.\n- To delete a transaction, select it, click Delete Selected , and confirm.\nTo delete a transaction, select it, click Delete Selected , and confirm.\nJournal entries can only be deleted if they have not been reconciled.\n\n## Missing transactions\n\nMissing or pending transactions are entries that the bank has not yet validated.\nTo find missing and pending transactions, access the bank reconciliation view , click the (gear) icon, and select Find Missing Transactions .\nTo import a posted missing transaction, select it and click Import Transactions .\n- Make sure the connection with the bank is active to find missing transactions.\nMake sure the connection with the bank is active to find missing transactions.\n- Pending transactions cannot be imported.\nPending transactions cannot be imported.\n\n## Troubleshooting\n\nBank synchronization troubleshooting - Ponto\n\n### Synchronization errors or disconnections\n\nTo report a connection error to Odoo support , activate the developer mode , go to Accounting ⣠Configuration â£\nOnline Synchronization , select the failed connection, and copy the error description and the\nreference.\nIf the connection with the proxy is lost and reconnection using the Reconnect option\nisnât successful, contact support directly. Provide the client ID or\nthe error reference from the chatter.\n\n### Why is the synchronization not working in real-time?\n\nSynchronization is not designed to work in real time, as third-party providers synchronize accounts\nat different intervals. To manually trigger synchronization and retrieve bank transactions, go to\nthe Accounting Dashboard , and click Fetch Transactions .\nAlternatively, to synchronize and fetch transactions, activate the developer mode and go to Accounting ⣠Configuration ⣠Online\nSynchronization .\nSome providers restrict refreshes to once per day. If transactions have already been fetched,\nclicking Fetch Transactions again may not retrieve the latest data.\nTransactions may appear on a bank account, but cannot be fetched if they have a Pending status; only transactions with a Posted status are retrieved.\n\n### Why do my transactions only synchronize when I refresh manually?\n\nSome banks implement additional security measures and require extra steps, such as an SMS or email\nauthentication code, or another type of MFA . As a result,\nthe third-party provider cannot retrieve transactions until the security code is provided.\n\n### Why are no transactions visible?\n\nThere are a few possible reasons for this issue:\n- No bank accounts were synchronized during the first synchronization .\nNo bank accounts were synchronized during the first synchronization .\n- There may be no new transactions available to fetch.\nThere may be no new transactions available to fetch.\nIf the bank account is correctly linked to a journal, but posted transactions still arenât visible\nin the database, contact support .\n\n### Why are no accounts shown after synchronization?\n\nDuring the synchronization process, a bank institution was selected, but no bank accounts from this\ninstitution were authorized during the first synchronization .\n\n### Saltedge troubleshooting\n\n#### Why is there an error when deleting a synchronization in Odoo?\n\nOdoo canât permanently delete the connection established with the banking institution. However,\nit revokes consent, which prevents Odoo from accessing the account. The error message indicates that\nthe consent has been revoked, but the record could not be deleted as it remains in Salt Edge.\nTo delete the connection, connect to the Salt Edge account and manually remove the synchronization. Once this is done, the record can be deleted in Odoo.\n\n#### I have an error saying that this account has already been synchronized\n\nThe bank account has already been synchronized with Salt Edge. Access the Salt Edge dashboard to check if a connection with the same credentials exists.\nThere are two options:\n- If a connection with the same credentials exists in Salt Edge but has not been synchronized with\nOdoo, delete the existing connection and create a new one from the Odoo database.\nIf a connection with the same credentials exists in Salt Edge but has not been synchronized with\nOdoo, delete the existing connection and create a new one from the Odoo database.\n- If a connection with the same credentials exists in Salt Edge and has already been synchronized\nwith Odoo, update the synchronization credentials to reactivate the connection.\nIf a connection with the same credentials exists in Salt Edge and has already been synchronized\nwith Odoo, update the synchronization credentials to reactivate the connection.", "headings": ["Configuration", "First synchronization", "Manual synchronization", "Update synchronization credentials", "Third-party providers", "Duplicate transactions", "Missing transactions", "Troubleshooting", "Synchronization errors or disconnections", "Why is the synchronization not working in real-time?", "Why do my transactions only synchronize when I refresh manually?", "Why are no transactions visible?", "Why are no accounts shown after synchronization?", "Saltedge troubleshooting"], "doc_id": "e75fc40bf2be3fce"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/bank/bank_synchronization/ponto.html", "title": "Ponto", "module": "accounting", "section": "Ponto", "text": "# Ponto\n\nPonto is a paid third-party service that enables companies and\nprofessionals to connect multiple bank accounts to a single platform. It provides a unified view of\nall transactions within a single interface. When integrated with Odoo, it automatically synchronizes\nbank transactions directly into its database.\nUsing Ponto is subject to applicable fees.\n- Bank synchronization\n- Financial institutions connected to Ponto\nFinancial institutions connected to Ponto\n\n## Configuration\n\nTo connect a bank with Odoo using Ponto as the third-party provider, follow these steps:\n- Set up your email address: Click the profile icon in the upper-right corner, select My profile , and fill in the Email field.\nSet up your email address: Click the profile icon in the upper-right corner, select My profile , and fill in the Email field.\n- Create a Ponto account if\nneeded.\nCreate a Ponto account if\nneeded.\n- Connect Odoo to your bank .\nConnect Odoo to your bank .\n\n### Ponto account creation\n\n- Access the Ponto website .\nAccess the Ponto website .\n- Click Login , then Not a user yet? and follow the instructions to create a\nnew account. Note Use the same email address as the one used for your Odoo profile .\nClick Login , then Not a user yet? and follow the instructions to create a\nnew account.\nUse the same email address as the one used for your Odoo profile .\n- After logging in, create an Organization and provide the necessary contact details.\nAfter logging in, create an Organization and provide the necessary contact details.\n- Give consent to Ponto to access the bank account data.\nGive consent to Ponto to access the bank account data.\n- Click Accounts , Add account , then Choose your bank , enter the\nbank account reference, and follow the on-screen steps to complete the linking process.\nClick Accounts , Add account , then Choose your bank , enter the\nbank account reference, and follow the on-screen steps to complete the linking process.\n- Add all relevant bank accounts that need to be synchronized with Odoo, then proceed to the next\nsteps.\nAdd all relevant bank accounts that need to be synchronized with Odoo, then proceed to the next\nsteps.\n\n### Connection with Odoo\n\nWhen connecting a bank to Odoo using\nPonto as the third-party provider, follow these steps:\n- When connecting to the desired bank, make sure Ponto is selected as the third-party Provider .\nWhen connecting to the desired bank, make sure Ponto is selected as the third-party Provider .\n- Select the account(s) to grant Ponto access to account balances and transactions, then confirm\nthe selection.\nSelect the account(s) to grant Ponto access to account balances and transactions, then confirm\nthe selection.\n- Authorize Odoo to request account information and initiate payment orders.\nAuthorize Odoo to request account information and initiate payment orders.\n- Select the specific bank account to connect.\nSelect the specific bank account to connect.\n- Make sure to check the consent checkbox to allow information to be shared with Odoo.\nMake sure to check the consent checkbox to allow information to be shared with Odoo.\n- Select all accounts that need access and synchronization, including those from other banking\ninstitutions.\nSelect all accounts that need access and synchronization, including those from other banking\ninstitutions.\nUpdate synchronization credentials\n\n## Vendor payments with Ponto\n\nBefore managing vendor payments with Ponto, make sure the following steps are completed:\n- SEPA Credit Transfer is activated (SCT) .\nSEPA Credit Transfer is activated (SCT) .\n- The SEPA Credit Transfer payment method has been added to the bank journal .\nThe SEPA Credit Transfer payment method has been added to the bank journal .\n- The vendorâs bank account has been marked as trusted .\nThe vendorâs bank account has been marked as trusted .\n- The Account Online Payment ( account_online_payment ) module is installed .\nThe Account Online Payment ( account_online_payment ) module is installed .\n`account_online_payment`\nTo register a vendor payment using Ponto, follow these steps:\n- Go to Accounting ⣠Vendors ⣠Payments and create the payment. Fill in the\nrelevant bank Journal field, select SEPA Credit Transfer as the Payment Method , and enter the Vendor Bank Account . Then click Confirm .\nGo to Accounting ⣠Vendors ⣠Payments and create the payment. Fill in the\nrelevant bank Journal field, select SEPA Credit Transfer as the Payment Method , and enter the Vendor Bank Account . Then click Confirm .\n- Go to Accounting ⣠Vendors ⣠Batch Payments and create a batch . Select the same bank Journal and Payment\nMethod , and click Add a line to select the payment created in the previous step.\nGo to Accounting ⣠Vendors ⣠Batch Payments and create a batch . Select the same bank Journal and Payment\nMethod , and click Add a line to select the payment created in the previous step.\n- Click Initiate Payment to connect to Ponto and follow the steps to sign the payment.\nClick Initiate Payment to connect to Ponto and follow the steps to sign the payment.\n\n## Troubleshooting\n\nBank synchronization troubleshooting\n\n### Why has the authorization expired?\n\nEvery six months (180 days), the connection between a bank account and Ponto must be re-authorized\nvia the Ponto website . Failure to do so will result in synchronization\nstopping for those accounts.", "headings": ["Configuration", "Ponto account creation", "Connection with Odoo", "Vendor payments with Ponto", "Troubleshooting", "Why has the authorization expired?"], "doc_id": "ce3e8a822b5b154a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/bank/foreign_currency.html", "title": "Manage a bank account in a foreign currency", "module": "accounting", "section": "Manage a bank account in a foreign currency", "text": "# Manage a bank account in a foreign currency\n\nIn Odoo, every transaction is recorded in the default currency of the company, and reports are all\nbased on that default currency. When you have a bank account in a foreign currency, for every\ntransaction, Odoo stores two values:\n- The debit/credit in the currency of the company ;\nThe debit/credit in the currency of the company ;\n- The debit/credit in the currency of the bank account .\nThe debit/credit in the currency of the bank account .\nCurrency rates are updated automatically using the web services of a banking institution. By\ndefault, Odoo uses the European Central Bankâs web services but other options are available.\n\n## Configuration\n\n### Activate multi-currencies\n\nTo work with multiple currencies, go to Accounting ⣠Configuration ⣠Settings\n⣠Currencies and tick Multi-Currencies . Under Post Exchange difference\nentries in: , provide a Journal , a Gain Account , a Loss Account ,\nand then click on Save .\n\n### Configure currencies\n\nOnce Odoo is configured to support multiple currencies, they are all created by default, but not\nnecessarily active. To activate the new currencies, click on Activate Other Currencies under the Multi-Currencies setting or go to Accounting ⣠Configuration\n⣠Accounting: Currencies .\nWhen the currencies are activated, you can choose to automate the currency rate update, or leave\nit on manual . To configure the rate update, go back to Accounting â£\nConfiguration ⣠Settings ⣠Currencies , check Automatic Currency Rates , set Interval to your desired frequency, and then click on Save . You also have\nthe option to choose the Service you wish to obtain currency rates from.\nClick on the Update now button ( ð ) besides the Next Run field to update\nthe currency rates manually.\n\n### Create a new bank account\n\nIn the accounting application, go to Accounting ⣠Configuration ⣠Journals and\ncreate a new one. Enter a Journal Name and set the Type to Bank . In the Journal Entries tab, enter a short code , a currency , and then finally click on\nthe Bank Account field to create a new account. In the pop-up window of the account\ncreation, enter a name, a code (ex.: 550007), set its type to Bank and Cash , set a currency type,\nand save. When you are back on the journal , click on the Account Number field, and\nin the pop-up window, fill out the Account Number , Bank of your account, and\nsave.\n`Bank`\n`BankandCash`\nUpon creation of the journal, Odoo automatically links the bank account to the journal. It can be\nfound under Accounting ⣠Configuration ⣠Accounting: Chart of Accounts .\n\n## Vendor bill in a foreign currency\n\nTo pay a bill in a foreign currency, simply select the currency next to the Journal field and register the payment. Odoo automatically creates and posts the foreign exchange gain or\nloss as a new journal entry.\nNote that you can pay a foreign bill with another currency. In that case, Odoo automatically\nconverts between the two currencies.\n\n## Unrealized Currency Gains/Losses Report\n\nThis report gives an overview of all unrealized amounts in a foreign currency on your balance sheet,\nand allows you to adjust an entry or manually set an exchange rate. To access this report, go to Reporting ⣠Management: Unrealized Currency Gains/Losses . From here, you have\naccess to all open entries in your balance sheet .\nIf you wish to use a different currency rate than the one set in Accounting â£\nConfiguration ⣠Settings ⣠Currencies , click the Exchange Rates button and change\nthe rate of the foreign currencies in the report.\nWhen manually changing exchange rates , a yellow banner appears allowing you to reset back to\nOdooâs rate. To do so, simply click on Reset to Odooâs Rate .\nIn order to update your balance sheet with the amount of the adjustment column,\nclick on the Adjustment Entry button. In the pop-up window, select a Journal , Expense Account and Income Account to calculate and\nprocess the unrealized gains and losses .\nYou can set the date of the report in the Date field. Odoo automatically reverses the\nbooking entry to the date set in Reversal Date .\nOnce posted, the adjustment column should indicate 0.00 , meaning all unrealized\ngains/losses have been adjusted.\n`0.00`", "headings": ["Configuration", "Activate multi-currencies", "Configure currencies", "Create a new bank account", "Vendor bill in a foreign currency", "Unrealized Currency Gains/Losses Report"], "doc_id": "fa9a37c42c44a4f4"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/bank/internal_transfers.html", "title": "Internal transfers", "module": "accounting", "section": "Internal transfers", "text": "# Internal transfers\n\nInternal money transfers can be handled in Odoo. At least two bank or cash accounts are needed to\nmake internal transfers.\nHow to add an additional bank account\n\n## Configuration\n\nAn internal transfer account is automatically created on your database based on your companyâs localization and depending on your countryâs legislation. To\nmodify the default Internal Transfer account, go to Accounting â£\nConfiguration ⣠Settings and scroll down to the Default Accounts section.\n\n## Register an internal transfer from one bank to another\n\nWhen money is transferred from one bank or cash account to another, that amount appears as two\ntransactions on the corresponding journals, whether the transactions are created manually, via\nimport, or via bank synchronization . When reconciling the transaction,\nselect the Internal Transfers reconciliation model button. This reconciliation model button writes the transaction off to the Internal\nTransfer account.\nRemember to reconcile the transaction for both the outgoing transaction on the journal that sends\nthe payment and the incoming transaction on the journal that receives the payment.\nTake, for example, a transfer of $1000 from Bank A to Bank B:\n- Bank journal (Bank A) Account Debit Credit Bank A account $1,000 Internal transfer account $1,000\nBank journal (Bank A)\nInternal transfer account\n- Bank journal (Bank B) Account Debit Credit Bank B account $1,000 Internal transfer account $1,000\nBank journal (Bank B)\nInternal transfer account\n- Bank reconciliation\n- Reconciliation models\nReconciliation models", "headings": ["Configuration", "Register an internal transfer from one bank to another"], "doc_id": "9020374e20f6cf2a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/bank/loans.html", "title": "Loans management", "module": "accounting", "section": "Loans management", "text": "# Loans management\n\nOdooâs loan management gives a comprehensive list of all loans undertaken by your company in order\nto maintain a holistic and forecasted view of upcoming due dates (e.g., cash forecast). Set up\namortization schedulesâor import themâand let Odoo automatically handle monthly interest and\nprincipal adjustments so that your financial reports are always accurate with minimal effort.\n\n## Create a new loan\n\nCreate a new loan by going to Accounting ⣠Accounting ⣠Loans . When creating a\nnew loan, there are three options for how to create amortization schedules:\n- importing it from a supported file;\nimporting it from a supported file;\n- calculating it from multiple input values (e.g., the Amount Borrowed , the Duration , etc.) using the Compute button;\ncalculating it from multiple input values (e.g., the Amount Borrowed , the Duration , etc.) using the Compute button;\n- manually filling in the lines of the schedule.\nmanually filling in the lines of the schedule.\nIn each case, three different fields are required for each line of the amortization schedule: the Date , the Principal , and the Interest .\nThe Amount Borrowed , Interest , and Duration fields will be red\nif the sum of the lines does not match the total of the amortization schedule lines.\n\n## Loan entries mechanism\n\nWhen the amount borrowed is credited to a bank account, it should be transferred to a long-term\naccount (defined in the Loan Settings tab). Then, upon the validation of the loan, Odoo\ncreates the necessary journal entries so that there is always a holistic and forecasted view of\nupcoming due dates. The entire process is completely automated with a long-term and short-term\nprincipal reclassification mechanism.\nFor each line of the amortization schedule, Odoo creates the following entries:\n- debits the principal amount to the long-term account;\ndebits the principal amount to the long-term account;\n- debits the interest amount to the expense account;\ndebits the interest amount to the expense account;\n- credits the payment amount to the short-term account: this is the amount that will be\nwithdrawn by the bank.\ncredits the payment amount to the short-term account: this is the amount that will be\nwithdrawn by the bank.\n- debits the sum of the principal amounts of the next 12 months to the long-term account;\ndebits the sum of the principal amounts of the next 12 months to the long-term account;\n- credits the sum of the principal amounts of the next 12 months to the short-term account.\ncredits the sum of the principal amounts of the next 12 months to the short-term account.\nA reversed entry of the reclassification entry on the next day that simply reverses the previous\none.\nWith this mechanism, month after month, the short-term account is always up to date with the\ncurrent short-term due amounts.\n\n## Closing a loan\n\nBy default, a loan will be closed whenever its last payment entry is posted. However, it can also\nbe manually closed (e.g., because it is being paid off early) by clicking on the Close button. A wizard will appear asking from which date the loan should be closed. All draft entries\nafter this date will be deleted too.\nA loan can also be cancelled. In that case, all entries will be deleted even if they were already\nposted.\n\n## Loans Analysis Report\n\nBy going to Accounting ⣠Reporting ⣠Loans Analysis , you can access a\nreport with a pivot view of your ongoing loans. By default, the report shows the principal,\ninterest, and total payment for each year for the loan duration.", "headings": ["Create a new loan", "Loan entries mechanism", "Closing a loan", "Loans Analysis Report"], "doc_id": "75ca7bd3a6ea7277"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/bank/reconciliation.html", "title": "Bank reconciliation", "module": "accounting", "section": "Bank reconciliation", "text": "# Bank reconciliation\n\nBank reconciliation is the process of matching your bank transactions with\nyour business records, such as customer invoices , vendor bills , and payments . Not only is this compulsory for most\nbusinesses, but it also offers several benefits, such as reduced risk of errors in financial\nreports, detection of fraudulent activities, and improved cash flow management.\nThanks to the bank reconciliation models , Odoo pre-selects the\nmatching entries automatically.\n- Odoo Tutorials: Bank reconciliation\nOdoo Tutorials: Bank reconciliation\n- Bank synchronization\n- Transactions\n\n## Bank reconciliation view\n\nTo access a bank journalâs reconciliation view , go to your Accounting Dashboard and\neither:\n- click the journal name (e.g., Bank ) to display all transactions, including those\npreviously reconciled or\nclick the journal name (e.g., Bank ) to display all transactions, including those\npreviously reconciled or\n- click the Reconcile items button to display all transactions Odoo pre-selected for\nreconciliation. You can remove the Not Matched filter from the search bar to include\npreviously reconciled transactions.\nclick the Reconcile items button to display all transactions Odoo pre-selected for\nreconciliation. You can remove the Not Matched filter from the search bar to include\npreviously reconciled transactions.\nThe bank reconciliation view is structured into three distinct sections: transactions, counterpart\nentries, and resulting entry.\nThe transactions section on the left shows all bank transactions, with the newest displayed\nfirst. Click a transaction to select it.\n- Duplicate transactions\nDuplicate transactions\n- Missing transactions\nThe counterpart entries section on the bottom right displays the options to match the selected\nbank transaction. Multiple tabs are available, including Match existing entries , Batch payments , Manual operations , and Discuss , which contains the chatter for\nthe selected bank transaction.\nThe resulting entry section on the top right displays the selected bank transaction matched with\nthe counterpart entries and includes any remaining debits or credits. In this section, you can\nvalidate the reconciliation or mark it as To Check . Any reconciliation model\nbuttons are also available in the resulting entry section.\n\n## Reconcile transactions\n\nTransactions can be matched automatically with the use of reconciliation models , or they can be matched with existing entries , batch payments , manual operations , and reconciliation model buttons .\n- Select a transaction among unmatched bank transactions.\nSelect a transaction among unmatched bank transactions.\n- Define the counterpart. There are several options for defining a counterpart, including matching existing entries , manual operations , batch payments , and reconciliation model buttons .\nDefine the counterpart. There are several options for defining a counterpart, including matching existing entries , manual operations , batch payments , and reconciliation model buttons .\n- If the resulting entry is not fully balanced, balance it by adding another existing counterpart\nentry or writing it off with a manual operation .\nIf the resulting entry is not fully balanced, balance it by adding another existing counterpart\nentry or writing it off with a manual operation .\n- Click the Validate button to confirm the reconciliation and move to the next\ntransaction.\nClick the Validate button to confirm the reconciliation and move to the next\ntransaction.\nIf you are not sure how to reconcile a particular transaction and would like to deal with it\nlater, use the To Check button instead. All transactions marked as To\nCheck can be displayed using the To Check filter.\nBank transactions are posted on the journalâs suspense account until reconciliation. At this\npoint, reconciliation modifies the transaction journal entry by replacing the bank suspense\naccount with the corresponding receivable, payable, or outstanding account.\n\n### Match existing entries\n\nThis tab contains matching entries Odoo automatically pre-selects according to the reconciliation\nmodels. The entry order is based on reconciliation models , with\nsuggested entries appearing first.\nThe search bar within the Match Existing Entries tab allows you to search for\nspecific journal items.\n\n### Batch payments\n\nBatch payments allow you to group different payments to ease\nreconciliation. Use the Batch Payments tab to find batch payments for customers and\nvendors. Similarly to the Match Existing Entries tab, the Batch Payments tab\nhas a search bar that allows you to search for specific batch payments.\n\n### Manual operations\n\nIf there is not an existing entry to match the selected transaction, you may instead wish to\nreconcile the transaction manually by choosing the correct account and amount. Then, complete any\nof the relevant optional fields.\nYou can use the fully paid option to reconcile a payment, even in cases where only a\npartial payment is received. A new line appears in the resulting entry section to reflect the\nopen balance registered on the Account Receivable by default. You can choose another\naccount by clicking on the new line in the resulting entry section and selecting the Account to record the open balance.\nLines are silently reconciled unless a write-off entry is required, which launches a\nreconciliation wizard.\n\n### Reconciliation model buttons\n\nUse a reconciliation model button for manual operations that are\nfrequently used. These custom buttons allow you to quickly reconcile bank transactions manually and\ncan also be used in combination with existing entries.", "headings": ["Bank reconciliation view", "Reconcile transactions", "Match existing entries", "Batch payments", "Manual operations", "Reconciliation model buttons"], "doc_id": "ac0cc8abe8341eed"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/bank/reconciliation_models.html", "title": "Reconciliation models", "module": "accounting", "section": "Reconciliation models", "text": "# Reconciliation models\n\nReconciliation models are used to automate the bank reconciliation process,\nwhich is especially handy when dealing with recurring entries like bank fees. Reconciliation models\ncan also be helpful in handling cash discounts .\nEach model is created based on a model type and bank transaction\nconditions .\n- Bank synchronization\n- Odoo Tutorials: Reconciliation models\nOdoo Tutorials: Reconciliation models\n\n## Reconciliation model types\n\nThe reconciliation models are available by going to Accounting ⣠Configuration\n⣠Banks: Reconciliation Models . For each reconciliation model, a Type must be set.\nThree types of models exist:\n- Button to generate counterpart entry : a button is created in the resulting entry\nsection of the bank reconciliation view. If clicked, this button generates a counterpart entry to\nreconcile with the active transaction based on the rules set in the model. The rules specified in\nthe model determine the counterpart entryâs account(s), amount(s), label(s), and analytic\ndistribution;\nButton to generate counterpart entry : a button is created in the resulting entry\nsection of the bank reconciliation view. If clicked, this button generates a counterpart entry to\nreconcile with the active transaction based on the rules set in the model. The rules specified in\nthe model determine the counterpart entryâs account(s), amount(s), label(s), and analytic\ndistribution;\n- Rule to suggest counterpart entry : used for recurring transactions to match the\ntransaction to a new entry based on conditions that must match the information on the transaction;\nRule to suggest counterpart entry : used for recurring transactions to match the\ntransaction to a new entry based on conditions that must match the information on the transaction;\n- Rule to match invoices/bills : used for recurring transactions to match the transaction\nto existing invoices, bills, or payments based on conditions that must match the information on\nthe transaction.\nRule to match invoices/bills : used for recurring transactions to match the transaction\nto existing invoices, bills, or payments based on conditions that must match the information on\nthe transaction.\n\n## Default reconciliation models\n\nIn Odoo, different models are available by default depending on the companyâs fiscal localization.\nThese can be updated if needed. Users can also create their own reconciliation models by clicking New .\nIf a record matches with several reconciliation models, the first one in the sequence of models\nis applied. You can rearrange the order by dragging and dropping the handle next to the name.\n\n### Invoices/Bills perfect match\n\nThis model should be at the top of the sequence of models, as it enables Odoo to suggest matching\nexisting invoices or bills with a bank transaction based on set conditions.\nOdoo automatically reconciles the payment when the Auto-validate option is selected, and\nthe model conditions are perfectly met. In this case, it expects to find on the bank statementâs\nline the invoice/paymentâs reference (as Label is selected) and the partnerâs name\n(as Partner is set is selected) to suggest the correct counterpart entry and reconcile\nthe payment automatically.\n\n### Invoices/Bills partial match if underpaid\n\nThis model suggests a customer invoice or vendor bill that partially matches the payment when the\namount received is slightly lower than the invoice amount, for example in the case of cash discounts . The difference is reconciled with the account indicated in the counterpart entries tab.\nThe reconciliation model Type is Rule to match invoices/bills , and the Payment tolerance should be set.\nThe Payment tolerance is only applicable to lower payments. It is disregarded when an\noverpayment is received.\nCash discounts and tax reduction\n\n### Line with bank fees\n\nThis model suggests a counterpart entry according to the rules set in the model. In this case, the\nreconciliation model Type is Rule to suggest counterpart entry , and the Label can be used for example, to identify the information referring to the Bank fees in the label of the transaction.\nRegular expressions , often abbreviated as Regex , can be used in\nOdoo in various ways to search, validate, and manipulate data within the system. Regex can be\npowerful but also complex, so itâs essential to use it judiciously and with a good understanding\nof the patterns youâre working with.\nTo use regular expressions in your reconciliation models, set the Transaction Type to Match Regex and add your expression. Odoo automatically retrieves the\ntransactions that match your Regex expression and the conditions specified in your model.\n\n## Partner mapping\n\nPartner mapping allows you to establish rules for automatically matching transactions to the correct\npartner account, saving time and reducing the risk of errors that can occur during manual\nreconciliation. For example, you can create a partner mapping rule for incoming payments with\nspecific reference numbers or keywords in the transaction description. When an incoming payment\nmeets these criteria, Odoo automatically maps it to the corresponding customerâs account.\nTo create a partner mapping rule, go to the Partner Mapping tab and enter the Find Text in Label , Find Text in Notes , and Partner .", "headings": ["Reconciliation model types", "Default reconciliation models", "Invoices/Bills perfect match", "Invoices/Bills partial match if underpaid", "Line with bank fees", "Partner mapping"], "doc_id": "28e5a71bbca71b47"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/bank/transactions.html", "title": "Transactions", "module": "accounting", "section": "Transactions", "text": "# Transactions\n\nImporting transactions from your bank statements allows keeping track of bank account transactions\nand reconciling them with the ones recorded in your accounting.\nBank synchronization automates the process. However, if you do not\nwant to use it or if your bank is not yet supported, other options exist:\n- Import bank transactions delivered by your bank;\nImport bank transactions delivered by your bank;\n- Register bank transactions manually.\nRegister bank transactions manually.\nGrouping transactions by statement is optional.\n\n## Import transactions\n\nOdoo supports multiple file formats to import transactions:\n- SEPA recommended Cash Management format (CAMT.053)\nSEPA recommended Cash Management format (CAMT.053)\n- Comma-separated values (CSV)\nComma-separated values (CSV)\n- Open Financial Exchange (OFX)\nOpen Financial Exchange (OFX)\n- Quicken Interchange Format (QIF)\nQuicken Interchange Format (QIF)\n- Belgium: Coded Statement of Account (CODA)\nBelgium: Coded Statement of Account (CODA)\nTo import a file, go to the Accounting Dashboard , and in the Bank journal,\nclick on Import File .\nAlternatively, you can also:\n- click the (ellipsis) icon on the Bank journal and select Import file ;\nclick the (ellipsis) icon on the Bank journal and select Import file ;\n- or access the transaction list by clicking the (ellipsis) icon on the Bank journal and selecting Transactions , then click\nthe (gear) icon and select Import records .\nor access the transaction list by clicking the (ellipsis) icon on the Bank journal and selecting Transactions , then click\nthe (gear) icon and select Import records .\nNext, select the file and upload it.\nAfter setting the necessary formatting options and mapping the file columns with their related Odoo\nfields, you can run a Test and Import your bank transactions.\nExport and import data\n\n## Register bank transactions manually\n\nYou can also record your bank transactions manually. To do so, go to Accounting\nDashboard , click on the Bank journal, and then on New . Make sure to fill\nout the Partner and Label fields to ease the reconciliation process.\n\n## Statements\n\nA bank statement is a document provided by a bank or financial institution that lists the\ntransactions that have occurred in a particular bank account over a specified period of time.\nIn Odoo Accounting, it is optional to group transactions by their related statement, but depending\non your business flow, you may want to record them for control purposes.\nIf you want to compare the ending balances of your bank statements with the ending balances of\nyour financial records, donât forget to create an opening transaction to record the bank\naccount balance as of the date you begin synchronizing or importing transactions. This is\nnecessary to ensure the accuracy of your accounting.\nTo access a list of existing statements, go to the Accounting Dashboard , click the (ellipsis) icon next to the bank or cash journal you want to\ncheck, then click Statements .\n\n### Statement creation from the kanban view\n\nOpen the bank reconciliation (kanban) view from the Accounting Dashboard by clicking on\nthe name of the bank journal and identify the transaction corresponding to the last (most recent)\ntransaction of your bank statement. Click on the Statement button when hovering on the\nupper separator line to create a statement from that transaction down to the oldest transaction that\nis not yet part of a statement.\nIn the Create Statement window, fill out the statementâs Reference , verify\nits Starting Balance and Ending Balance , and click Save .\n\n### Statement creation from the list view\n\nOpen the list of transactions by clicking on the name of the bank journal and switching to the list\nview. Select all the transactions corresponding to the bank statement, and, in the Statement column, select an existing statement or create a new one by typing its\nreference, clicking on Create and edit⦠, filling out the statementâs details, and\nsaving.\n\n### Statement viewing, editing, and printing\n\nTo view an existing statement, click on the statement amount in the reconciliation (kanban) view or\nclick on the statement name in the bank transaction list view. From here, you can edit the Reference , Starting Balance , or Ending Balance .\nManually updating the Starting Balance automatically updates the Ending\nBalance based on the new value of the Starting Balance and the value of the\nstatementâs transactions.\nIf the Starting Balance doesnât equal the previous statementâs Ending\nBalance , or if the Ending Balance doesnât equal the running balance\n( Starting Balance plus the statementâs transactions), a warning appears explaining\nthe issue. To maintain flexibility, it is still possible to save without first resolving the\nissue.\nTo attach a digital copy (i.e., JPEG, PNG, or PDF) of the bank statement for enhanced recordkeeping,\nclick the Attachments button and select the file to attach.\nTo generate and print a PDF of the bank statement, click the Print button (if accessed\nvia the reconciliation view) or click on the (gear) icon and click Statement (if accessed via the list view).\nWhen a bank statement is generated to be printed, it is automatically added to the Attachments .", "headings": ["Import transactions", "Register bank transactions manually", "Statements", "Statement creation from the kanban view", "Statement creation from the list view", "Statement viewing, editing, and printing"], "doc_id": "211f75daec0b23f3"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/customer_invoices.html", "title": "Customer invoices", "module": "accounting", "section": "Customer invoices", "text": "# Customer invoices\n\nA customer invoice is a document issued by a company for products and/or services sold to a\ncustomer. It records receivables as they are sent to customers. Customer invoices can include\namounts due for the goods and/or services provided, applicable sales taxes, shipping and handling\nfees, and other charges. Odoo supports multiple invoicing and payment workflows.\nFrom draft invoice to profit and loss report, the process involves several steps once the goods (or\nservices) have been ordered/shipped (or rendered) to a customer, depending on the invoicing policy:\n- Invoice creation\n- Invoice confirmation\n- Invoice sending\n- Payment and reconciliation\nPayment and reconciliation\n- Payment follow-up\n- Reporting\n\n## Invoice creation\n\nDraft invoices can be created directly from documents like sales orders or purchase orders or\nmanually from the Customer Invoices journal in the Accounting Dashboard .\nAn invoice must include the required information to enable the customer to pay promptly for their\ngoods and services. Make sure the following fields are appropriately completed:\n- Customer : When a customer is selected, Odoo automatically pulls information from the\ncustomer record like the invoice address, preferred payment terms , fiscal positions , receivable account, and more onto the invoice.\nTo change these values for this specific invoice, edit them directly on the invoice. To change\nthem for future invoices, change the values on the contact record.\nCustomer : When a customer is selected, Odoo automatically pulls information from the\ncustomer record like the invoice address, preferred payment terms , fiscal positions , receivable account, and more onto the invoice.\nTo change these values for this specific invoice, edit them directly on the invoice. To change\nthem for future invoices, change the values on the contact record.\n- Invoice Date : If not set manually, this field is automatically set as the current date\nupon confirmation.\nInvoice Date : If not set manually, this field is automatically set as the current date\nupon confirmation.\n- Due Date or payment terms : To specify when\nthe customer has to pay the invoice.\nDue Date or payment terms : To specify when\nthe customer has to pay the invoice.\n- Journal : Automatically set and can be changed if needed.\nJournal : Automatically set and can be changed if needed.\n- Currency . If the invoiceâs currency differs from the\ncompanyâs currency, the currency exchange rate is automatically displayed.\nCurrency . If the invoiceâs currency differs from the\ncompanyâs currency, the currency exchange rate is automatically displayed.\nIn the Invoice Lines tab:\n- Product : Click Add a line , then search for and select the product.\nProduct : Click Add a line , then search for and select the product.\n- Quantity\n- Taxes (if applicable)\nTaxes (if applicable)\nTo access the product catalog and view all items in an organized display, click Catalog .\nWhen the products and quantities are selected, click Back to Invoice to return to the\ninvoice; the selected catalog items will appear in the invoice lines.\nTo display the total amount of the invoice in words, go to Accounting â£\nConfiguration ⣠Settings and activate the Total amount of invoice in letters option.\nThe Journal Items tab displays the accounting entries created. Additional invoice\ninformation such as the Customer Reference , Payment Reference , Fiscal\nPositions , Incoterms , and more can be\nadded or modified in the Other Info tab.\nOdoo initially creates invoices in Draft status. Draft invoices have no accounting\nimpact until they are confirmed .\n\n## Invoice confirmation\n\nClick Confirm when the invoice is completed. The invoiceâs status changes to Posted , and a journal entry is generated based on the invoice configuration. On\nconfirmation, Odoo assigns each invoice a unique number from a defined sequence .\n- Once confirmed, an invoice can no longer be updated. Click Reset to draft if\nchanges are needed.\nOnce confirmed, an invoice can no longer be updated. Click Reset to draft if\nchanges are needed.\n- If required, invoices and other journal entries can be locked once posted using the Secure posted entries with hash feature.\nIf required, invoices and other journal entries can be locked once posted using the Secure posted entries with hash feature.\n\n## Invoice sending\n\nTo set a preferred Invoice sending method for a customer, go to Accounting ⣠Customers ⣠Customers and select the customer. In the Accounting tab of the contact form, select the preferred Invoice sending method in the Customer Invoices section.\nSending letters in Odoo requires In-App Purchase (IAP) credit or tokens.\nTo send the invoice to the customer, navigate back to the invoice record and follow these steps:\n- Click Send .\n- If the default invoice layout has not been customized\nyet, a Configure your document layout pop-up window appears. Configure the layout and\nclick Continue . Note The document layout can be changed at any time in the general settings. To add a QR code for banking app payments to the invoice, enable the QR Code option in the Configure Your Document Layout window. To modify this option, go\nto Accounting ⣠Configuration ⣠Settings , scroll down to the Customer Payments section, and enable/disable the QR Codes option.\nIf the default invoice layout has not been customized\nyet, a Configure your document layout pop-up window appears. Configure the layout and\nclick Continue .\n- The document layout can be changed at any time in the general settings.\nThe document layout can be changed at any time in the general settings.\n- To add a QR code for banking app payments to the invoice, enable the QR Code option in the Configure Your Document Layout window. To modify this option, go\nto Accounting ⣠Configuration ⣠Settings , scroll down to the Customer Payments section, and enable/disable the QR Codes option.\nTo add a QR code for banking app payments to the invoice, enable the QR Code option in the Configure Your Document Layout window. To modify this option, go\nto Accounting ⣠Configuration ⣠Settings , scroll down to the Customer Payments section, and enable/disable the QR Codes option.\n- In the Send window: If a preferred Invoice sending method was set in the contact form, it is selected\nby default. Select another one if needed. If no preferred Invoice sending method was set in the contact form, select the\nmethod to use for sending the invoice to the customer.\n- If a preferred Invoice sending method was set in the contact form, it is selected\nby default. Select another one if needed.\nIf a preferred Invoice sending method was set in the contact form, it is selected\nby default. Select another one if needed.\n- If no preferred Invoice sending method was set in the contact form, select the\nmethod to use for sending the invoice to the customer.\nIf no preferred Invoice sending method was set in the contact form, select the\nmethod to use for sending the invoice to the customer.\n- Click Send if the by Email option is selected, or click Download .\nClick Send if the by Email option is selected, or click Download .\n\n### Sending multiple invoices\n\nTo send multiple invoices, go to Accounting ⣠Customers ⣠Invoices ,\nselect them in the Invoices list view and click Send . The Send window displays the number of selected invoice to send by email.\nAfter clicking Send , a banner is added to the selected invoices to indicate they are\npart of an ongoing send batch. This helps prevent the process from being triggered manually again,\nas it may take some time to complete for exceptionally large batches.\nTo check all invoices that have not yet been sent, go to Accounting ⣠Customers\n⣠Invoices . In the Invoices list view, click into the search bar and filter on Not Sent .\n\n## Payment and reconciliation\n\nIn Odoo, an invoice is considered Paid when the associated accounting entry has been\nreconciled with a corresponding bank transaction.\n- Payments\n- Bank reconciliation\n\n## Payment follow-up\n\nOdooâs follow-up actions help companies follow up on customer invoices.\nDifferent actions can be set up to remind customers to pay their outstanding invoices, depending on\nhow much the customer is overdue. These actions are bundled into follow-up levels that trigger when\nan invoice is overdue by a certain number of days. If there are multiple overdue invoices for the\nsame customer, the actions are performed on the most overdue invoice.\n\n## Reporting\n\n### Partner reports\n\n#### Partner Ledger\n\nThe Partner Ledger report shows the balance of customers and suppliers. To access it,\ngo to Accounting ⣠Reporting ⣠Partner Ledger .\n\n#### Aged Receivable\n\nTo review outstanding customer invoices and their related due dates, use the Aged Receivable report. To access it, go to Accounting â£\nReporting ⣠Aged Receivable .\n\n#### Aged Payable\n\nTo review outstanding vendor bills and their related due dates, use the Aged Payable report. To access it, go to Accounting â£\nReporting ⣠Aged Payable .\n\n### Profit and Loss\n\nThe Profit and Loss statement shows details of income\nand expenses.\n\n### Balance sheet\n\nThe Balance Sheet summarizes the companyâs assets,\nliabilities, and equity at a specific time.", "headings": ["Invoice creation", "Invoice confirmation", "Invoice sending", "Sending multiple invoices", "Payment and reconciliation", "Payment follow-up", "Reporting", "Partner reports", "Profit and Loss", "Balance sheet"], "doc_id": "993986619a9511f7"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/customer_invoices/cash_discounts.html", "title": "Cash discounts and tax reduction", "module": "accounting", "section": "Cash discounts and tax reduction", "text": "# Cash discounts and tax reduction\n\nCash discounts are reductions in the amount a customer must pay for goods or services offered as\nan incentive for paying their invoice promptly. These discounts are typically a percentage of the\ntotal invoice amount and are applied if the customer pays within a specified time. Cash discounts\ncan help a company maintain a steady cash flow.\nYou issue a â¬100 invoice on the 1st of January. The full payment is due within 30 days, and you\nalso offer a 2% discount if your customer pays you within seven days.\nThe customer can pay â¬98 up to the 8th of January. After that date, they would have to pay â¬100\nby the 31st of January.\nA tax reduction can also be applied depending on the country\nor region.\n- Payment terms and installment plans\nPayment terms and installment plans\n- Payments\n\n## Configuration\n\nTo grant cash discounts to customers, you must first verify the gain and loss accounts . Then, configure payment terms and add a cash discount by checking the Early Discount checkbox and filling in the discount percentage, discount days, and tax\nreduction fields.\n\n### Cash discount gain/loss accounts\n\nWith a cash discount, the amount you earn depends on whether the customer benefits from the cash\ndiscount or not. This inevitably leads to gains and losses, which are recorded on default accounts.\nTo modify these accounts, go to Accounting ⣠Configuration ⣠Settings , and, in\nthe Default Accounts section, select the accounts you want to use for the Cash Discount Gain account and Cash Discount Loss account .\n\n### Payment terms\n\nCash discounts are defined on payment terms . Configure them to your liking by\ngoing to Accounting ⣠Configuration ⣠Payment Terms , and make sure to fill out\nthe discount percentage, discount days, and tax reduction fields.\n\n### Tax reductions\n\nDepending on the country or region, the base amount used to compute the tax can vary, which can lead\nto a tax reduction . Since tax reductions are set on individual payment terms, each term can use\na specific tax reduction.\nTo configure how the tax reduction is applied, go to a payment term with the Early\nDiscount checkbox enabled, and select one of the three following options:\n- Always (upon invoice) The tax is always reduced. The base amount used to compute the tax is the discounted amount,\nwhether the customer benefits from the discount or not.\nThe tax is always reduced. The base amount used to compute the tax is the discounted amount,\nwhether the customer benefits from the discount or not.\n- On early payment The tax is reduced only if the customer pays early. The base amount used to compute the tax is the\nsame as the sale: if the customer benefits from the reduction, then the tax is reduced. This means\nthat, depending on the customer, the tax amount can vary after the invoice is issued.\nThe tax is reduced only if the customer pays early. The base amount used to compute the tax is the\nsame as the sale: if the customer benefits from the reduction, then the tax is reduced. This means\nthat, depending on the customer, the tax amount can vary after the invoice is issued.\n- Never The tax is never reduced. The base amount used to compute the tax is the full amount, whether the\ncustomer benefits from the discount or not.\nThe tax is never reduced. The base amount used to compute the tax is the full amount, whether the\ncustomer benefits from the discount or not.\nYou issue a â¬100 invoice (tax-excluded) on the 1st of January, with a 21% tax rate. The full\npayment is due within 30 days, and you also offer a 2% discount if your customer pays you within\nseven days.\nâ¬98 + (21% of â¬98)\nâ¬100 + (21% of â¬98)\nâ¬98 + (21% of â¬98)\nâ¬100 + (21% of â¬100)\nâ¬98 + (21% of â¬100)\nâ¬100 + (21% of â¬100)\n- Tax grids , which are used for the tax report, are correctly\ncomputed according to the type of tax reduction you\nconfigured.\nTax grids , which are used for the tax report, are correctly\ncomputed according to the type of tax reduction you\nconfigured.\n- The type of cash discount tax reduction may be correctly pre-configured, depending on your fiscal localization package .\nThe type of cash discount tax reduction may be correctly pre-configured, depending on your fiscal localization package .\n\n## Apply a cash discount to a customer invoice\n\nOn a customer invoice, apply a cash discount by selecting the payment terms you created . Odoo automatically computes the correct amounts, tax amounts, due\ndates, and accounting records.\nUnder the Journal Items tab, you can display the discount details by clicking on the\nâtoggleâ button and adding the Discount Date and Discount Amount columns.\nThe discount amount and due date are also displayed on the generated invoice report sent to the\ncustomer if the Show installment dates option is checked on the payment terms.\n\n### Payment reconciliation\n\nWhen you record a payment or reconcile your bank transactions , Odoo takes the customer paymentâs date into account to determine if the\ncustomer can benefit from the cash discount or not.\nIf your customer pays the discount amount after the discount date, you can always decide to\nmark the invoice as fully paid with a write-off or as partially paid.", "headings": ["Configuration", "Cash discount gain/loss accounts", "Payment terms", "Tax reductions", "Apply a cash discount to a customer invoice", "Payment reconciliation"], "doc_id": "dd97b5fc89a14e59"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/customer_invoices/cash_rounding.html", "title": "Cash rounding", "module": "accounting", "section": "Cash rounding", "text": "# Cash rounding\n\nCash rounding is required when the lowest physical denomination\nof currency, or the smallest coin, is higher than the minimum unit\nof account.\nFor example, some countries require their companies to round up or\ndown the total amount of an invoice to the nearest five cents, when\nthe payment is made in cash.\n\n## Configuration\n\nGo to Accounting ⣠Configuration ⣠Settings and enable Cash Rounding , then click on Save .\nGo to Accounting ⣠Configuration ⣠Cash Roundings ,\nand click on Create .\nDefine here your Rounding Precision , Rounding Strategy , and Rounding Method .\nOdoo supports two rounding strategies :\n- Add a rounding line : a rounding line is added on the invoice.\nYou have to define which account records the cash roundings.\nAdd a rounding line : a rounding line is added on the invoice.\nYou have to define which account records the cash roundings.\n- Modify tax amount : the rounding is applied in the taxes section.\nModify tax amount : the rounding is applied in the taxes section.\n\n## Apply roundings\n\nWhen editing a draft invoice, open the Other Info tab, go to the Accounting Information section, and select the appropriate Cash\nRounding Method .", "headings": ["Configuration", "Apply roundings"], "doc_id": "ac25472ee74fd275"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/customer_invoices/credit_notes.html", "title": "Credit notes and refunds", "module": "accounting", "section": "Credit notes and refunds", "text": "# Credit notes and refunds\n\nA credit/debit note, or credit/debit memo, is a document sent to a customer to inform them that they\nhave been credited/debited a certain amount.\nSeveral use cases can lead to a credit note, such as:\n- a mistake in the invoice\na mistake in the invoice\n- a return of the goods, or a rejection of the services\na return of the goods, or a rejection of the services\n- the goods delivered are damaged\nthe goods delivered are damaged\nDebit notes are less common but are most frequently used to track debts owed by customers or to\nvendors because of modifications to confirmed customer invoices or vendor bills.\nIssuing a credit/debit note is the only legal method for canceling, refunding, or modifying a\nvalidated invoice. Make sure to register the payment afterward if money is being refunded to\nthe customer and/or validate the return if a storable product is being\nreturned.\n\n## Issue a customer credit note\n\nIn most cases, credit notes are created directly from the corresponding invoices. To do so,\ngo to Accounting ⣠Customers ⣠Invoices , open the relevant Invoice ,\nand click Credit Note .\nIn the Credit Note window, fill in the Reason and update the Journal and Reversal date if needed. There are two options:\n- Click Reverse to open a draft credit note prefilled with the exact details from the\noriginal invoice. Update the Product and Quantity and click Confirm . This option allows for a partial refund or modifications to the credit note.\nClick Reverse to open a draft credit note prefilled with the exact details from the\noriginal invoice. Update the Product and Quantity and click Confirm . This option allows for a partial refund or modifications to the credit note.\n- Click Reverse and Create invoice to create a credit note that is automatically\nvalidated and reconciled with the related invoice, and to open a new draft invoice prefilled with\nthe exact details from the original invoice.\nClick Reverse and Create invoice to create a credit note that is automatically\nvalidated and reconciled with the related invoice, and to open a new draft invoice prefilled with\nthe exact details from the original invoice.\nTo create a credit note from scratch, go to Accounting ⣠Customers ⣠Credit\nNotes , and click New . Filling out a credit note follows the same process as completing\nan invoice .\nA credit note sequence starts with R and is followed by the related document number (e.g.,\nRINV/2025/0004 is associated with the invoice INV/2025/0004).\n`R`\n\n## Issue a customer debit note\n\nTo create a debit note, go to Accounting ⣠Customers ⣠Invoices and follow\nthese steps:\n- Select the desired invoice(s), click Actions and select Create Debit Note .\nSelect the desired invoice(s), click Actions and select Create Debit Note .\n- In the Create Debit Note window, fill in the Reason and update the Use Specific Journal and Debit Note Date fields.\nIn the Create Debit Note window, fill in the Reason and update the Use Specific Journal and Debit Note Date fields.\n- Enable the Copy Lines option to copy the invoice lines and click Create\nDebit Note .\nEnable the Copy Lines option to copy the invoice lines and click Create\nDebit Note .\n- In the debit note, update the Product and Quantity and click Confirm .\nIn the debit note, update the Product and Quantity and click Confirm .\nTo create a debit note from the invoice form view, click the (gear) icon and select Debit Note .\n\n## Record a vendor refund\n\nVendor refunds or vendor credit notes are recorded the same way as credit notes :\nTo record a vendor refund or a vendor credit note directly from the corresponding vendor bill, go to Accounting ⣠Vendors ⣠Bills , open the relevant vendor bill, and click Credit Note .\nTo record it from scratch, go to Accounting ⣠Vendors ⣠Refunds , and click on New .\n\n## Record a vendor debit note\n\nDebit notes from vendors are recorded the same way debit notes are issued to customers .\nTo record a debit note, go to Accounting ⣠Vendors ⣠Bills and select the\ndesired bill(s). Click Actions and select Create Debit Note .\nTo create a debit note from the vendor bill form view, click the (gear) icon and select Debit Note .\n\n## Journal entries\n\nCreating a credit/debit note from an invoice/bill generates a reverse entry that cancels out the\njournal items from the original invoice.\nThe journal entry of an invoice:\nThe credit noteâs journal entry generated to reverse the original invoice above:", "headings": ["Issue a customer credit note", "Issue a customer debit note", "Record a vendor refund", "Record a vendor debit note", "Journal entries"], "doc_id": "7434444f389dbe10"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/customer_invoices/customer_addresses.html", "title": "Delivery and invoice addresses", "module": "accounting", "section": "Delivery and invoice addresses", "text": "# Delivery and invoice addresses\n\nCompanies often have multiple locations, and it is common that a customer invoice should be sent to\none address and the delivery should be sent to another. Odooâs Customer Addresses feature is\ndesigned to handle this scenario by making it easy to specify which address to use for each case.\n\n## Configuration\n\nTo specify a sales orderâs invoice and delivery addresses, first go to Accounting\n⣠Configuration ⣠Settings . In the Customer Invoices section, enable Customer Addresses and click Save .\nOn quotations and sales orders, there are now fields for Invoice Address and Delivery Address . If the customer has an invoice or delivery address listed on their contact record , the corresponding field uses that\naddress, by default, but any contactâs address can be used instead.\nFor more information, refer to the documentation on Contact Form Configuration .\n\n## Invoice and deliver to different addresses\n\nDelivery orders and their delivery slip reports use the address set as the Delivery\nAddress on the sales order. By default, invoice reports show both the shipping address and the\ninvoice address to assure the customer that the delivery is going to the correct location.\nEmails also go to different addresses. The quotation and sales order are sent to the main contactâs\nemail, as usual, but the invoice is sent to the email of the address set as the Invoice Address on the sales order.\n- Reports, such as the delivery slip and invoice report, can be customized using Studio .\nReports, such as the delivery slip and invoice report, can be customized using Studio .\n- If Send by Post is checked when you click Send , the\ninvoice will be mailed to the invoice address.\nIf Send by Post is checked when you click Send , the\ninvoice will be mailed to the invoice address.", "headings": ["Configuration", "Invoice and deliver to different addresses"], "doc_id": "17386a20607236f0"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/customer_invoices/deferred_revenues.html", "title": "Deferred revenues", "module": "accounting", "section": "Deferred revenues", "text": "# Deferred revenues\n\nDeferred revenues , or unearned revenues , are invoices addressed to customers\nfor goods yet to be delivered or services yet to be rendered.\nThe company cannot report them on the current profit and loss statement , or income statement ,\nsince the goods and services will be effectively delivered/rendered in the future.\nThese future revenues must be deferred on the companyâs balance sheet among the current liabilities\nuntil they can be recognized , at once or over a defined period, on the profit and loss\nstatement.\nFor example, letâs say a business sells a software license of $1200 for 1 year. They immediately\ninvoice it to the customer but canât consider it earned yet, as the future months of licensing have\nnot yet been delivered. Therefore, they post this new revenue in a deferred revenue account and\nrecognize it on a monthly basis. Each month, for the next 12 months, $100 will be recognized as\nrevenue.\nOdoo Accounting handles deferred revenues by spreading them in multiple entries that are posted\nperiodically.\nThe server checks once a day if an entry must be posted. It might then take up to 24 hours before\nyou see a change from Draft to Posted .\n\n## Configuration\n\nMake sure the default settings are correctly configured for your business. To do so, go to Accounting ⣠Configuration ⣠Settings . The following options are available:\nThe deferral entries are posted in this journal.\nRevenues are deferred on this Current Liability account until they are recognized.\nBy default, Odoo automatically generates the deferral entries when you post a customer invoice. However, you can also choose to generate them manually by selecting the Manually & Grouped option instead.\nSuppose an invoice of $1200 must be deferred over 12 months.\n- The Months option accounts for $100 each month prorated to the number of days in\nthat month (e.g., $50 for the first month if the Start Date is set to the 15th of\nthe month).\nThe Months option accounts for $100 each month prorated to the number of days in\nthat month (e.g., $50 for the first month if the Start Date is set to the 15th of\nthe month).\n- The Full Months option considers each month started to be full (e.g., $100 for the\nfirst month even if the Start Date is set to the 15th of the month); this means that\nwith the Full Months option, a full $100 is recognized in the first partial month,\neliminating the need for a 13th month to recognize any remainder as would be the case when using\nthe Months option.\nThe Full Months option considers each month started to be full (e.g., $100 for the\nfirst month even if the Start Date is set to the 15th of the month); this means that\nwith the Full Months option, a full $100 is recognized in the first partial month,\neliminating the need for a 13th month to recognize any remainder as would be the case when using\nthe Months option.\n- The Days option accounts for different amounts depending on the number of days in\neach month (e.g., ~$102 for January and ~$92 for February).\nThe Days option accounts for different amounts depending on the number of days in\neach month (e.g., ~$102 for January and ~$92 for February).\n\n## Generate deferral entries on validation\n\nMake sure the Start Date and End Date fields are visible in the Invoice Lines tab. In most cases, the Start Date should be in the same\nmonth as the Invoice Date . Deferred revenue entries are posted from the invoice\ndate and are displayed in the report accordingly.\nFor each line of the invoice that should be deferred, specify the start and end dates of the\ndeferral period.\nIf the Generate Entries field in the Settings is set to On invoice/bill\nvalidation , Odoo automatically generates the deferral entries when the invoice is validated. Click\nthe Deferred Entries smart button to see them.\nOne entry, dated on the same day as the invoiceâs accounting date, moves the invoice amounts from\nthe income account to the deferred account. The other entries are deferral entries which, month\nafter month, move the invoice amounts from the deferred account to the income account to recognize\nthe revenue.\nYou can defer a January invoice of $1200 over 12 months by specifying a start date of 01/01/2023\nand an end date of 12/31/2023. At the end of August, $800 is recognized as an income,\nwhereas $400 remains on the deferred account.\n\n## Reporting\n\nThe deferred revenue report computes an overview of the necessary deferral entries for each account.\nTo access it, go to Accounting ⣠Reporting ⣠Deferred Revenue .\nTo view the journal items of each account, click on the account name and then Journal\nItems .\nOnly invoices whose accounting date is before the end of the period of the report\nare taken into account.\n\n## Generate grouped deferral entries manually\n\nIf you have a lot of deferred revenues and wish to reduce the number of journal entries created, you\ncan generate deferral entries manually. To do so, set the Generate Entries field in the Settings to Manually & Grouped . Odoo then aggregates the deferred amounts in a\nsingle entry.\nAt the end of each month, go to Accounting ⣠Reporting ⣠Deferred Revenue and\nclick the Generate Entries button. This generates two deferral entries:\n- One dated at the end of the month which aggregates, for each account, all the deferred amounts\nof that month. This means that a part of the deferred revenue is recognized at the end of that\nperiod.\nOne dated at the end of the month which aggregates, for each account, all the deferred amounts\nof that month. This means that a part of the deferred revenue is recognized at the end of that\nperiod.\n- The reversal of this created entry, dated on the following day (i.e., the first day of the\nnext month) to cancel the previous entry.\nThe reversal of this created entry, dated on the following day (i.e., the first day of the\nnext month) to cancel the previous entry.\nThere are two invoices:\n- Invoice A: $1200 to be deferred from 01/01/2023 to 12/31/2023\nInvoice A: $1200 to be deferred from 01/01/2023 to 12/31/2023\n- Invoice B: $600 to be deferred from 01/01/2023 to 12/31/2023\nInvoice B: $600 to be deferred from 01/01/2023 to 12/31/2023\nAt the end of January, after clicking the Generate Entries button, there are the\nfollowing entries:\n- Entry 1 dated on the 31st January: Line 1: Expense account -1200 -600 = -1800 (cancelling the total of both invoices) Line 2: Expense account 100 + 50 = 150 (recognizing 1/12 of invoice A and invoice B) Line 3: Deferred account 1800 - 150 = 1650 (amount that has yet to be deferred later\non)\nEntry 1 dated on the 31st January:\n- Line 1: Expense account -1200 -600 = -1800 (cancelling the total of both invoices)\nLine 1: Expense account -1200 -600 = -1800 (cancelling the total of both invoices)\n- Line 2: Expense account 100 + 50 = 150 (recognizing 1/12 of invoice A and invoice B)\nLine 2: Expense account 100 + 50 = 150 (recognizing 1/12 of invoice A and invoice B)\n- Line 3: Deferred account 1800 - 150 = 1650 (amount that has yet to be deferred later\non)\nLine 3: Deferred account 1800 - 150 = 1650 (amount that has yet to be deferred later\non)\n- Entry 2 dated on the 1st February, the reversal of the previous entry: Line 1: Expense account 1800 Line 2: Deferred account -150 Line 3: Expense account -1650\nEntry 2 dated on the 1st February, the reversal of the previous entry:\n- Line 1: Expense account 1800\nLine 1: Expense account 1800\n- Line 2: Deferred account -150\nLine 2: Deferred account -150\n- Line 3: Expense account -1650\nLine 3: Expense account -1650\nAt the end of February, after clicking the Generate Entries button, there are the\nfollowing entries:\n- Entry 1 dated on the 28th February: Line 1: Expense account -1200 -600 = -1800 (cancelling the total of both invoices) Line 2: Expense account 200 + 100 = 300 (recognizing 2/12 of invoice A and invoice B) Line 3: Deferred account 1800 - 300 = 1500 (amount that has yet to be deferred later\non)\nEntry 1 dated on the 28th February:\n- Line 1: Expense account -1200 -600 = -1800 (cancelling the total of both invoices)\nLine 1: Expense account -1200 -600 = -1800 (cancelling the total of both invoices)\n- Line 2: Expense account 200 + 100 = 300 (recognizing 2/12 of invoice A and invoice B)\nLine 2: Expense account 200 + 100 = 300 (recognizing 2/12 of invoice A and invoice B)\n- Line 3: Deferred account 1800 - 300 = 1500 (amount that has yet to be deferred later\non)\nLine 3: Deferred account 1800 - 300 = 1500 (amount that has yet to be deferred later\non)\n- Entry 2 dated on the 1st March, the reversal of the previous entry.\nEntry 2 dated on the 1st March, the reversal of the previous entry.\nThe same computation is done for each month until October.\nAt the end of November, after clicking the Generate Entries button, there are the\nfollowing entries:\n- Entry 1 dated on the 30th November: Line 1: Expense account -1200 -600 = -1800 (cancelling the total of both invoices) Line 2: Expense account 1100 + 550 = 1650 (recognizing 11/12 of invoice A and invoice\nB) Line 3: Deferred account 1800 - 1650 = 150 (amount that has yet to be deferred later\non)\nEntry 1 dated on the 30th November:\n- Line 1: Expense account -1200 -600 = -1800 (cancelling the total of both invoices)\nLine 1: Expense account -1200 -600 = -1800 (cancelling the total of both invoices)\n- Line 2: Expense account 1100 + 550 = 1650 (recognizing 11/12 of invoice A and invoice\nB)\nLine 2: Expense account 1100 + 550 = 1650 (recognizing 11/12 of invoice A and invoice\nB)\n- Line 3: Deferred account 1800 - 1650 = 150 (amount that has yet to be deferred later\non)\nLine 3: Deferred account 1800 - 1650 = 150 (amount that has yet to be deferred later\non)\n- Entry 2 dated on the 1st December, the reversal of the previous entry.\nEntry 2 dated on the 1st December, the reversal of the previous entry.\nThere is no need to generate entries in December. Indeed, if we do the computation for\nDecember, we have an amount of 0 to be deferred.\nIf we aggregate everything, we would have:\n- invoice A and invoice B\ninvoice A and invoice B\n- two entries (one for the deferral and one for the reversal) for each month from January to\nNovember\ntwo entries (one for the deferral and one for the reversal) for each month from January to\nNovember\nTherefore, at the end of December, invoices A and B are fully recognized as income\nonly once in spite of all the created entries thanks to the reversal mechanism.", "headings": ["Configuration", "Generate deferral entries on validation", "Reporting", "Generate grouped deferral entries manually"], "doc_id": "c5f3a49b770d66ce"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/customer_invoices/electronic_invoicing.html", "title": "Electronic invoicing (EDI)", "module": "accounting", "section": "Electronic invoicing (EDI)", "text": "# Electronic invoicing (EDI)\n\nEDI, or electronic data interchange, is the inter-company communication of business documents, such\nas purchase orders and invoices, in a standard format. Sending documents according to an EDI\nstandard ensures that the system receiving the message can interpret the information correctly.\nVarious EDI file formats are available depending on your companyâs country.\nThe EDI feature allows companies to automate administrative processes. It may also be required by\nsome governments for fiscal control or to support administrative procedures. Electronic sending of\ndocuments such as customer invoices, credit notes, or vendor bills is one application of EDI.\nOdoo supports e-invoicing in many countries. Refer to the countryâs page for more details.\nFiscal localizations documentation\n\n## Configuration\n\nBy default, the format available in the send window depends on the customerâs country.\nTo define a specific e-invoicing format for a customer, go to Accounting â£\nCustomers ⣠Customers , access the customer form, go to the Accounting tab, and select\nthe appropriate Format in the Customer invoices section.\n\n## E-invoice generation\n\nFrom a confirmed invoice, click Send . In the Print & Send window, enable the\nrelevant e-invoicing format option (e.g., by Peppol ), then click Send to\ngenerate and attach the corresponding e-invoicing XML file.\n\n## Peppol\n\nThe Peppol network ensures the exchange of documents and information\nbetween companies and governmental authorities. It is primarily used for electronic invoicing, and\nits access points (connectors to the Peppol network) allow companies to send electronic documents\nsuch as customer invoices and credit notes and receive documents like vendor bills and refunds.\nIn this case, Odoo acts as both an access point and an SMP and enables electronic invoicing transactions without the need to send invoices or bills by email or\npost.\n- Peppol registration is free and available in Odoo Community.\nPeppol registration is free and available in Odoo Community.\n- Supported formats for sending documents include BIS Billing 3.0, XRechnung CIUS, and\nNLCIUS .\nSupported formats for sending documents include BIS Billing 3.0, XRechnung CIUS, and\nNLCIUS .\n- The following countries are eligible for Peppol registration in Odoo : Andorra, Albania, Austria, Bosnia and Herzegovina, Belgium, Bulgaria, Switzerland, Cyprus,\nCzech Republic, Germany, Denmark, Estonia, Spain, Finland, France, United Kingdom, Greece,\nCroatia, Hungary, Ireland, Iceland, Italy, Liechtenstein, Lithuania, Luxembourg, Latvia,\nMonaco, Montenegro, North Macedonia, Malta, Netherlands, Norway, Poland, Portugal, Romania,\nSerbia, Sweden, Slovenia, Slovakia, San Marino, Turkey, Holy See (Vatican City State).\n\n### Registration\n\nTo register on Peppol, go to Accounting ⣠Configuration ⣠Settings and scroll\nto the PEPPOL Electronic Invoicing section. Then, follow these steps:\n- Click Activate Electronic Invoicing in the PEPPOL Electronic Invoicing section and fill in the following fields: Using the (down arrow) icon, make sure the relevant\ncountry-specific Peppol endpoint identifier is selected in the dropdown list, then enter your\nPeppol endpoint (usually a Company Registry or VAT number). Email Phone , including the country code (e.g., +32 in Belgium)\nClick Activate Electronic Invoicing in the PEPPOL Electronic Invoicing section and fill in the following fields:\n- Using the (down arrow) icon, make sure the relevant\ncountry-specific Peppol endpoint identifier is selected in the dropdown list, then enter your\nPeppol endpoint (usually a Company Registry or VAT number).\nUsing the (down arrow) icon, make sure the relevant\ncountry-specific Peppol endpoint identifier is selected in the dropdown list, then enter your\nPeppol endpoint (usually a Company Registry or VAT number).\n- Phone , including the country code (e.g., +32 in Belgium)\nPhone , including the country code (e.g., +32 in Belgium)\n`+32`\n- Click Activate Peppol . The registration is then pending activation. See also Peppol endpoint - OpenPeppol eDEC Code Lists (open the âParticipant Identifier Schemesâ as HTML page)\nClick Activate Peppol . The registration is then pending activation.\nPeppol endpoint - OpenPeppol eDEC Code Lists (open the âParticipant Identifier Schemesâ as HTML page)\n- Select another purchase journal in the Incoming Invoices Journal field if necessary,\nor a folder name in the Document Workspace field if multiple purchase\njournals are used, and Save .\nSelect another purchase journal in the Incoming Invoices Journal field if necessary,\nor a folder name in the Document Workspace field if multiple purchase\njournals are used, and Save .\n- The registration should be automatically activated within a day.\nThe registration should be automatically activated within a day.\nAll invoices and vendor bills can then be sent directly using Peppol.\n- To update the Primary contact email , modify it and click Update .\nTo update the Primary contact email , modify it and click Update .\n- If you are using an access point from a previous provider, make sure to deregister from it\nfirst, then register with your new access point, unless itâs Hermes (BOSA). If using Hermes\n(BOSA), no action is needed; the migration is handled automatically.\nIf you are using an access point from a previous provider, make sure to deregister from it\nfirst, then register with your new access point, unless itâs Hermes (BOSA). If using Hermes\n(BOSA), no action is needed; the migration is handled automatically.\n- To manually trigger the scheduled action used to check the Peppol registration status, enable developer mode , open the Settings app, go to Settings\n⣠Technical ⣠Scheduled actions , and search for Peppol: update participant\nstatus . Open the scheduled action, then click Run Manually .\nTo manually trigger the scheduled action used to check the Peppol registration status, enable developer mode , open the Settings app, go to Settings\n⣠Technical ⣠Scheduled actions , and search for Peppol: update participant\nstatus . Open the scheduled action, then click Run Manually .\n- To try Peppol without sending real data, enable demo mode by selecting Odoo Demo\nID as the Peppol endpoint identifier. To switch back to production mode, change the account_peppol.edi.mode system parameter to prod mode before activating Peppol in\nproduction.\nTo try Peppol without sending real data, enable demo mode by selecting Odoo Demo\nID as the Peppol endpoint identifier. To switch back to production mode, change the account_peppol.edi.mode system parameter to prod mode before activating Peppol in\nproduction.\n`prod`\n- For advanced testing on Peppolâs dedicated test network, use the test mode by setting the account_peppol.edi.mode system parameter to test . This option is intended for\nexperienced users only.\nFor advanced testing on Peppolâs dedicated test network, use the test mode by setting the account_peppol.edi.mode system parameter to test . This option is intended for\nexperienced users only.\n`test`\n\n### Contact verification\n\nBefore sending an invoice to a contact using Peppol, make sure the contact is registered as a Peppol\nparticipant. To do so, follow these steps:\n- Go to Accounting ⣠Customers ⣠Customers and access the customerâs form.\nGo to Accounting ⣠Customers ⣠Customers and access the customerâs form.\n- In the Accounting tab , check the following information in the Customer\ninvoices section: eInvoice format : Select the relevant format. Using the (down arrow) icon, make sure the relevant\ncountry-specific Peppol endpoint identifier is selected in the dropdown list, then enter the\ncustomerâs endpoint identifier, usually a Company Registry or VAT number.\nIn the Accounting tab , check the following information in the Customer\ninvoices section:\n- eInvoice format : Select the relevant format.\neInvoice format : Select the relevant format.\n- Using the (down arrow) icon, make sure the relevant\ncountry-specific Peppol endpoint identifier is selected in the dropdown list, then enter the\ncustomerâs endpoint identifier, usually a Company Registry or VAT number.\nUsing the (down arrow) icon, make sure the relevant\ncountry-specific Peppol endpoint identifier is selected in the dropdown list, then enter the\ncustomerâs endpoint identifier, usually a Company Registry or VAT number.\n- To verify the contact, enable developer mode and click Verify . Its Peppol endpoint verification is marked as Valid if the contact is found on the Peppol network.\nTo verify the contact, enable developer mode and click Verify . Its Peppol endpoint verification is marked as Valid if the contact is found on the Peppol network.\nWhile Odoo prefills the endpoint number based on the information available for a contact,\nverifying these details with the contact is recommended.\n\n### Send invoices\n\nPosted invoices to be sent via Peppol are marked as Ready to send in the invoiceâs Peppol status field.\nAll invoices that are ready to be sent via Peppol can be viewed in the following ways:\n- In the Invoices list view, use the ( adjust\nsettings ) button to add the Peppol status column or apply the Peppol\nReady filter in the search bar.\nIn the Invoices list view, use the ( adjust\nsettings ) button to add the Peppol status column or apply the Peppol\nReady filter in the search bar.\n- In the Accounting dashboard, click Peppol ready invoices on the relevant sales\njournal.\nIn the Accounting dashboard, click Peppol ready invoices on the relevant sales\njournal.\nTo send the invoice to the customer via Peppol, click Send on the confirmed invoice\nform. In the Print & Send window, enable the by Peppol option and click Send .\n- Multiple invoices can also be sent in\nbatches via Peppol.\nMultiple invoices can also be sent in\nbatches via Peppol.\n- Set the preferred Invoice sending method for a customer to by Peppol in the Customer Invoices section of the customer formâs Accounting tab.\nSet the preferred Invoice sending method for a customer to by Peppol in the Customer Invoices section of the customer formâs Accounting tab.\nThe status is updated to Done once the invoices have been successfully delivered to the\ncontactâs access point.\nTo manually trigger the scheduled action used to check the invoicesâ status, go to the\nAccounting dashboard and click Fetch Peppol invoice status on the corresponding sales\njournal.\n\n### Receive vendor bills\n\nNew documents received via Peppol are checked multiple times a day. Received documents are\nautomatically imported into the purchase journal set in the PEPPOL Electronic Invoicing section, and corresponding vendor bills are created as drafts and appear in the vendor bills list\nview.\nTo manually trigger the scheduled action to retrieve incoming Peppol documents, go to the\nAccounting dashboard and click Fetch from Peppol on the main Peppol purchase journal.\n\n#### Multiple purchase journals\n\nMake sure the Documents - Import from Peppol ( documents_account_peppol ) module is installed .\n`documents_account_peppol`\nWhen using multiple purchase journals, new vendor bills can be received via the Documents app . To do so, follow these steps:\n- In the Documents app, create a specific folder or enable file\ncentralization for Accounting documents.\nIn the Documents app, create a specific folder or enable file\ncentralization for Accounting documents.\n- Open the Accounting app, go to Accounting ⣠Configuration ⣠Settings , and\nscroll to the PEPPOL Electronic Invoicing section.\nOpen the Accounting app, go to Accounting ⣠Configuration ⣠Settings , and\nscroll to the PEPPOL Electronic Invoicing section.\n- In the Document Workspace field, choose the relevant folder.\nIn the Document Workspace field, choose the relevant folder.\n- Use the Document Tags field to add tags to incoming Peppol documents for easy\nidentification.\nUse the Document Tags field to add tags to incoming Peppol documents for easy\nidentification.\n- Click Save .\nThen, open the Documents app, navigate to the appropriate folder, select the relevant vendor bills,\nand click Create Vendor Bill . The corresponding vendor bill is then created.\n\n### Add extra fields\n\nAdding fields requires the Studio app.\nOdoo supports the most common Peppol fields by default, but additional Peppol data can be included\nwhen sending e-invoices via Peppol by adding extra fields to the invoice\nusing Studio.\nThe table below shows:\n- the extra Peppol fields that can be added. Fields in the: Main invoice section are added to the form view of the invoice Invoice lines section are added to the list view of the invoice line\nthe extra Peppol fields that can be added. Fields in the:\n- Main invoice section are added to the form view of the invoice\nMain invoice section are added to the form view of the invoice\n- Invoice lines section are added to the list view of the invoice line\nInvoice lines section are added to the list view of the invoice line\n- the data type, which must match the field type when adding\nthe field using Studio\nthe data type, which must match the field type when adding\nthe field using Studio\n- the exact field label that must be entered when adding the field using Studio\nthe exact field label that must be entered when adding the field using Studio\nOdoo uses a new fieldâs label to automatically generate the technical name of the field. To\nensure the fieldâs technical name is formatted correctly, it is crucial to use the exact text\nfrom the Studio field label column below.\nPeppol technical name (XML)\nPeppol tax point date\n`Peppoltaxpointdate`\nContractDocumentReference.ID\nPeppol contract document reference ID\n`PeppolcontractdocumentreferenceID`\nDespatchDocumentReference.ID\nPeppol despatch document reference ID\n`PeppoldespatchdocumentreferenceID`\nPeppol accounting cost\n`Peppolaccountingcost`\nPeppol project reference ID\n`PeppolprojectreferenceID`\nInvoicePeriodStartDate\nPeppol Invoice period Start Date\n`PeppolInvoiceperiodStartDate`\nPeppol Invoice period End Date\n`PeppolInvoiceperiodEndDate`\nPeppol Order Reference ID\n`PeppolOrderReferenceID`\nOrderLineReference/LineID\nPeppol order line reference ID\n`PeppolorderlinereferenceID`\nitem.buyersItemIdentification\nPeppol buyers item ID\n`PeppolbuyersitemID`\nTo add a new field to the invoice form view or invoice line list view, as relevant, follow these\nsteps:\n- Activate developer mode .\nActivate developer mode .\n- Navigate to Accounting ⣠Customers ⣠Invoices (or Invoicing\n⣠Customers ⣠Invoices for Invoicing users).\nNavigate to Accounting ⣠Customers ⣠Invoices (or Invoicing\n⣠Customers ⣠Invoices for Invoicing users).\n- Open an existing invoice, or click New .\nOpen an existing invoice, or click New .\n- Open Studio by clicking the ( Toggle Studio ) icon.\nOpen Studio by clicking the ( Toggle Studio ) icon.\n- If adding a field to invoice line list view, click in the Invoice Lines tab and click Edit List view .\nIf adding a field to invoice line list view, click in the Invoice Lines tab and click Edit List view .\n- Click and drag a Text or Date field from the panel on the left to the\ndesired location in the view on the right.\nClick and drag a Text or Date field from the panel on the left to the\ndesired location in the view on the right.\n- Enter the Label exactly as it appears in the Studio field label column in\nthe table above, then click outside the field label to see the Technical Name update\nautomatically.\nEnter the Label exactly as it appears in the Studio field label column in\nthe table above, then click outside the field label to see the Technical Name update\nautomatically.\n- Click Close to save all changes.\nClick Close to save all changes.\nThe Technical Name in Odoo should match the format of x_studio_peppol_tax_point_date . If a mistake is made and the technical name is incorrect, edit the technical name .\n`x_studio_peppol_tax_point_date`\nAfter a new field has been created as explained above, it can be added to other views such as the invoice list view.\n\n### Peppol deregistration from Odoo\n\nOnly one Peppol receiver registration can be active for each Peppol endpoint identifier at a time.\nTo stop using Odoo as the Peppol access point, e.g., to switch to another provider or reconfigure\nthe registration for a new database, you must first deregister from Peppol. To do so, go to Accounting ⣠Configuration ⣠Settings , scroll down to the PEPPOL\nElectronic Invoicing section, click Remove from Peppol , and confirm.\nOnce removed, the Peppol registration is deleted from the database, and documents can no longer be\nsent or received via Peppol in Odoo.\n\n## Country-specific e-invoicing details\n\nRefer to the following pages for detailed, country-specific information:\n- Argentina\n- Austria\n- Belgium\n- Brazil\n- Colombia\n- Croatia\n- Ecuador\n- Estonia\n- Finland\n- Guatemala\n- Hungary\n- Ireland\n- Latvia\n- Lithuania\n- Luxembourg\n- Mexico\n- Netherlands\n- Norway\n- Romania\n- Spain - Basque Country\nSpain - Basque Country\n- Uruguay", "headings": ["Configuration", "E-invoice generation", "Peppol", "Registration", "Contact verification", "Send invoices", "Receive vendor bills", "Add extra fields", "Peppol deregistration from Odoo", "Country-specific e-invoicing details"], "doc_id": "4d9536509e577a54"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/customer_invoices/epc_qr_code.html", "title": "EPC QR codes", "module": "accounting", "section": "EPC QR codes", "text": "# EPC QR codes\n\nEuropean Payments Council quick response codes, or EPC QR codes , are two-dimensional barcodes\nthat customers can scan with their mobile banking applications to initiate a SEPA credit\ntransfer (SCT) and pay their invoices instantly.\nIn addition to bringing ease of use and speed, it greatly reduces typing errors that would\npotentially make for payment issues.\nThis feature is only available for companies in several European countries such as Austria,\nBelgium, Finland, Germany, and the Netherlands.\n- Bank and cash accounts\nBank and cash accounts\n\n## Configuration\n\nGo to Accounting ⣠Configuration ⣠Settings and activate the QR\nCodes feature in the Customer Payments section.\n\n### Configure your bank accountâs journal\n\nMake sure that your Bank Account is correctly configured in Odoo with your IBAN and BIC.\nTo do so, go to Accounting ⣠Configuration ⣠Journals , open your bank journal,\nthen fill out the Account Number and Bank under the Bank Account\nNumber column.\n\n## Issue invoices with EPC QR codes\n\nEPC QR codes are added automatically to your invoices. Customers whose bank supports making payments\nvia EPC QR codes will be able to scan the code and pay the invoice.\nGo to Accounting ⣠Customers ⣠Invoices , and create a new invoice.\nBefore posting it, open the Other Info tab. Odoo automatically fills out the Recipient Bank field with your IBAN.\nIn the Other Info tab, the account indicated in the Recipient Bank field\nis used to receive your customerâs payment. Odoo automatically populates this field with your\nIBAN by default and uses it to generate the EPC QR code.\nWhen the invoice is printed or previewed, the QR code is included at the bottom.\nIf you want to issue an invoice without an EPC QR code, remove the IBAN indicated in the Recipient Bank field, under the Other Info tab of the invoice.", "headings": ["Configuration", "Configure your bank accountâs journal", "Issue invoices with EPC QR codes"], "doc_id": "59bde93bf0f77937"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/customer_invoices/incoterms.html", "title": "Incoterms", "module": "accounting", "section": "Incoterms", "text": "# Incoterms\n\nIncoterms are standardized trade terms used in\ninternational transactions to define the rights and responsibilities of buyers and sellers. They\nestablish the obligations related to the delivery of goods, the transfer of risks, and the\ndistribution of costs between the parties involved. Incoterms specify important details, such as the\npoint at which the risk and costs transfer from the seller to the buyer, the responsibility for\ntransportation, insurance, customs clearance, and other relevant aspects of the transaction.\nBy default, all 11 Incoterms are available in Odoo:\n- EXW : Ex works\n- FCA : Free carrier\n- FAS : Free alongside ship\nFAS : Free alongside ship\n- FOB : Free on board\n- CFR : Cost and freight\nCFR : Cost and freight\n- CIF : Cost, insurance and freight\nCIF : Cost, insurance and freight\n- CPT : Carriage paid to\nCPT : Carriage paid to\n- CIP : Carriage and insurance paid to\nCIP : Carriage and insurance paid to\n- DPU : Delivered at place unloaded\nDPU : Delivered at place unloaded\n- DAP : Delivered at place\nDAP : Delivered at place\n- DDP : Delivered duty paid\nDDP : Delivered duty paid\n- Intrastat\n- Customer invoices\n- Vendor bills\n\n## Define an Incoterm\n\nTo define an Incoterm manually, create an invoice or bill, click the Other Info tab, and\nselect the Incoterm .\n\n### Incoterm location\n\nA location relevant to the chosen Incoterm can be added to the invoice or bill under Other Info in the Incoterm Location field.\nIf the chosen Incoterm code is CIF (Cost, Insurance, Freight), the associated location might be\nthe destination port where the goods will be delivered.\n`CIF`\n\n## Default Incoterm configuration\n\nYou can set a default Incoterm rule to automatically populate the Incoterm field on all newly\ncreated invoices and bills. Under Accounting/Invoicing ⣠Configuration â£\nSettings , scroll down to the Customer Invoices section, and select an Incoterm in the Default Incoterm field.", "headings": ["Define an Incoterm", "Incoterm location", "Default Incoterm configuration"], "doc_id": "ca2d3e78447030ba"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/customer_invoices/overview.html", "title": "Invoicing processes", "module": "accounting", "section": "Invoicing processes", "text": "# Invoicing processes\n\nDepending on your business and the application you use, there are\ndifferent ways to automate the customer invoice creation in Odoo.\nUsually, draft invoices are created by the system (with information\ncoming from other documents like sales order or contracts) and\naccountant just have to validate draft invoices and send the invoices in\nbatch (by regular mail or email).\nDepending on your business, you may opt for one of the following way to\ncreate draft invoices:\n\n## Sales\n\n### Sales Order ⣠Invoice\n\nIn most companies, salespeople create quotations that become sales order\nonce they are validated. Then, draft invoices are created based on the\nsales order. You have different options like:\n- Invoice manually: use a button on the sale order to trigger the draft\ninvoice\nInvoice manually: use a button on the sale order to trigger the draft\ninvoice\n- Invoice before delivery: invoice the full order before triggering the\ndelivery order\nInvoice before delivery: invoice the full order before triggering the\ndelivery order\n- Invoice based on delivery order: see next section\nInvoice based on delivery order: see next section\nInvoice before delivery is usually used by the eCommerce application\nwhen the customer pays at the order and we deliver afterwards.\n(pre-paid)\nFor most other use cases, itâs recommended to invoice manually. It\nallows the salesperson to trigger the invoice on demand with options:\ninvoice the whole order, invoice a percentage (advance), invoice some\nlines, invoice a fixed advance.\nThis process is good for both services and physical products.\n- Pro-forma invoices\n\n### Sales Order ⣠Delivery Order ⣠Invoice\n\nRetailers and eCommerce usually invoice based on delivery orders,\ninstead of sales order. This approach is suitable for businesses where\nthe quantities you deliver may differs from the ordered quantities:\nfoods (invoice based on actual Kg).\nThis way, if you deliver a partial order, you only invoice for what you\nreally delivered. If you do back orders (deliver partially and the rest\nlater), the customer will receive two invoices, one for each delivery\norder.\n- Invoicing policies\n\n### eCommerce Order ⣠Invoice\n\nAn eCommerce order will also trigger the creation of the order when it\nis fully paid. If you allow paying orders by check or wire transfer,\nOdoo only creates an order and the invoice will be triggered once the\npayment is received.\n\n## Contracts\n\n### Regular Contracts ⣠Invoices\n\nIf you use contracts, you can trigger invoice based on time and material\nspent, expenses or fixed lines of services/products. Every month, the\nsalesperson will trigger invoice based on activities on the contract.\n- fixed products/services, coming from a sale order linked to this contract\nfixed products/services, coming from a sale order linked to this contract\n- materials purchased (that you will re-invoice)\nmaterials purchased (that you will re-invoice)\n- time and material based on timesheets or purchases (subcontracting)\ntime and material based on timesheets or purchases (subcontracting)\n- expenses like travel and accommodation that you re-invoice to the customer\nexpenses like travel and accommodation that you re-invoice to the customer\nYou can invoice at the end of the contract or trigger intermediate\ninvoices. This approach is used by services companies that invoice\nmostly based on time and material. For services companies that invoice\non fix price, they use a regular sales order.\n- Invoicing based on time and materials\nInvoicing based on time and materials\n- Invoicing processes\n- Invoice project milestones\nInvoice project milestones\n\n### Recurring Contracts ⣠Invoices\n\nFor subscriptions, an invoice is triggered periodically, automatically.\nThe frequency of the invoicing and the services/products invoiced are\ndefined on the contract.\n- Subscriptions\n\n## Others\n\n### Creating an invoice manually\n\nUsers can also create invoices manually without using contracts or a\nsales order. Itâs a recommended approach if you do not need to manage\nthe sales process (quotations), or the delivery of the products or\nservices.\nEven if you generate the invoice from a sales order, you may need to\ncreate invoices manually in exceptional use cases:\n- if you need to create a refund\nif you need to create a refund\n- If you need to give a discount\nIf you need to give a discount\n- if you need to change an invoice created from a sales order\nif you need to change an invoice created from a sales order\n- if you need to invoice something not related to your core business\nif you need to invoice something not related to your core business\n\n### Specific modules\n\nSome specific modules are also able to generate draft invoices:\n- membership : invoice your members every year\nmembership : invoice your members every year\n- repairs : invoice your after-sale services\nrepairs : invoice your after-sale services\n\n### Resequencing of the invoices\n\nIt remains possible to resequence the invoices but with some restrictions:\n- The feature does not work when entries are previous to a lock date.\nThe feature does not work when entries are previous to a lock date.\n- The feature does not work if the sequence is inconsistent with the month of the entry.\nThe feature does not work if the sequence is inconsistent with the month of the entry.\n- It does not work if the sequence leads to a duplicate.\nIt does not work if the sequence leads to a duplicate.\n- The order of the invoice remains unchanged.\nThe order of the invoice remains unchanged.\n- It is useful for people who use a numbering from another software and who want to continue the\ncurrent year without starting over from the beginning.\nIt is useful for people who use a numbering from another software and who want to continue the\ncurrent year without starting over from the beginning.\n\n### Invoice digitization with optical character recognition (OCR)\n\nInvoice digitization is the process of automatically encoding traditional paper invoices into\ninvoices forms in your accounting.\nOdoo uses OCR and artificial intelligence technologies to recognize the content of the documents.\nVendor bills and customer invoices forms are automatically created and populated based on scanned\ninvoices.\n- Document digitization\nDocument digitization", "headings": ["Sales", "Sales Order ⣠Invoice", "Sales Order ⣠Delivery Order ⣠Invoice", "eCommerce Order ⣠Invoice", "Contracts", "Regular Contracts ⣠Invoices", "Recurring Contracts ⣠Invoices", "Others", "Creating an invoice manually", "Specific modules", "Resequencing of the invoices", "Invoice digitization with optical character recognition (OCR)"], "doc_id": "b9be71f05f6a2048"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/customer_invoices/payment_terms.html", "title": "Payment terms and installment plans", "module": "accounting", "section": "Payment terms and installment plans", "text": "# Payment terms and installment plans\n\nPayment terms specify all the conditions of a saleâs payment to help ensure customers pay their\ninvoices correctly and on time.\nPayment terms are generally defined on documents such as sales orders, customer invoices, and\nvendor bills. Payment terms cover:\n- The due date(s)\n- Early payment discounts\nEarly payment discounts\n- Any other conditions on the payment\nAny other conditions on the payment\nAn installment plan allows the customers to pay an invoice in parts, with the amounts and\npayment dates defined beforehand by the seller.\nThe full payment is due on the day of the invoiceâs issuance.\nThe full payment is due 15 days after the invoice date.\nThe full payment is due by the 21st of the month following the invoice date.\n30% is due on the day of the invoiceâs issuance. The remaining balance is due at the end of the\nfollowing month.\nA 2% cash discount if the payment is received within ten days.\nOtherwise, the full payment is due at the end of the month following the invoice date.\n- Payment terms are not to be confused with down payment invoices . If, for a specific order, you issue\nmultiple invoices to your customer, that is neither a payment term nor an installment plan but\nan invoicing policy.\nPayment terms are not to be confused with down payment invoices . If, for a specific order, you issue\nmultiple invoices to your customer, that is neither a payment term nor an installment plan but\nan invoicing policy.\n- This page is about the payment terms feature, not terms & conditions , which can be used to declare contractual obligations regarding content\nuse, return policies, and other policies surrounding the sale of goods and services.\nThis page is about the payment terms feature, not terms & conditions , which can be used to declare contractual obligations regarding content\nuse, return policies, and other policies surrounding the sale of goods and services.\n- Odoo Tutorials: payment terms\nOdoo Tutorials: payment terms\n- Cash discounts and tax reduction\nCash discounts and tax reduction\n\n## Configuration\n\nTo create new payment terms, follow these steps:\n- Go to Accounting ⣠Configuration ⣠Payment Terms and click on New .\nGo to Accounting ⣠Configuration ⣠Payment Terms and click on New .\n- Enter a name in the Payment Terms field. This field is the name displayed both\ninternally and on sales orders.\nEnter a name in the Payment Terms field. This field is the name displayed both\ninternally and on sales orders.\n- Tick the Early Discount checkbox and fill out the discount percentage, discount days,\nand tax reduction fields to add a cash discount , if desired.\nTick the Early Discount checkbox and fill out the discount percentage, discount days,\nand tax reduction fields to add a cash discount , if desired.\n- In the Due Terms section, add a set of rules (terms) to define what needs to be paid\nand by which due date(s). Defining terms automatically calculates the paymentsâ due date(s). This\nis particularly helpful for managing installment plans ( payment terms with multiple\nterms ). To add a term, click on Add a line , define the discountâs value and type in the Due fields, then fill out the After fields to determine the due date. Tip The Days end of the month on the option allows you to add a buffer period so that an invoice registered at the end of the month isnât\ndue at the beginning of the month that immediately follows.\nIn the Due Terms section, add a set of rules (terms) to define what needs to be paid\nand by which due date(s). Defining terms automatically calculates the paymentsâ due date(s). This\nis particularly helpful for managing installment plans ( payment terms with multiple\nterms ).\nTo add a term, click on Add a line , define the discountâs value and type in the Due fields, then fill out the After fields to determine the due date.\nThe Days end of the month on the option allows you to add a buffer period so that an invoice registered at the end of the month isnât\ndue at the beginning of the month that immediately follows.\n- Enter the text to be displayed on the document (sales order, invoice, etc.) in the gray textbox\nin the Preview column.\nEnter the text to be displayed on the document (sales order, invoice, etc.) in the gray textbox\nin the Preview column.\n- Tick the Show installment dates checkbox to display a breakdown of each payment and\nits due date on the invoice report, if desired.\nTick the Show installment dates checkbox to display a breakdown of each payment and\nits due date on the invoice report, if desired.\nTo instead specify a number of days before the end of the month , use a negative value in the After field.\nTo test that your payment terms are configured correctly, enter an invoice date on the Example line to generate the payments that would be due and their due dates\nusing these payment terms.\nTerms are computed in the order of their due dates.\nIn the following example, 30% is due on the day of issuance, and the remaining 70% is due at the\nend of the following month.\n\n### End of the month buffer\n\nThe Days end of the month on the option allows users to add a buffer period so that an\ninvoice registered at the end of the month isnât due at the beginning of the month that immediately\nfollows.\nWhen using this option, Odoo calculates the due date by taking the invoice date, adding the integer\nin the After field, going to the end of the resulting month, and then adding the integer\nfrom the Days on the next month field.\nFor example, take two invoices, one dated 5 March and the other dated 28 March. Both use the same\npayment terms with a single Due Terms line for 100% of the due amount, due 5 Days end of the month on the 1 .\n`5`\n`1`\nFor the invoice dated 5 March, the due date is computed as 1 April with the following\ncalculations:\n- 5 March + 5 days = 10 March\n5 March + 5 days = 10 March\n- 10 March + end of the month = 31 March\n10 March + end of the month = 31 March\n- 31 March + on the 1 = 1 April\n31 March + on the 1 = 1 April\nFor the invoice dated 28 March, the due date is computed as 1 May with the following\ncalculations:\n- 28 March + 5 days = 2 April\n28 March + 5 days = 2 April\n- 2 April + end of the month = 30 April\n2 April + end of the month = 30 April\n- 30 April + on the 1 = 1 May\n30 April + on the 1 = 1 May\n\n## Using payment terms\n\nPayment terms can be defined using the Payment Terms field on:\n- Contacts: To automatically set default payment terms on a contactâs new sales orders,\ninvoices, and bills. This can be modified in the contact form, under the Sales &\nPurchase tab.\nContacts: To automatically set default payment terms on a contactâs new sales orders,\ninvoices, and bills. This can be modified in the contact form, under the Sales &\nPurchase tab.\n- Quotations/Sales Orders: To set specific payment terms automatically on all invoices generated\nfrom a quotation or sales order.\nQuotations/Sales Orders: To set specific payment terms automatically on all invoices generated\nfrom a quotation or sales order.\nPayment terms can be defined using the Due Date field, with the Terms drop-down list on:\n- Customer invoices: To set specific payment terms on an invoice.\nCustomer invoices: To set specific payment terms on an invoice.\n- Vendor bills: To set specific payment terms on a bill.\nVendor bills: To set specific payment terms on a bill.\nSetting payment terms on a vendor bill is mostly useful for managing vendor terms with multiple\ninstallments or cash discounts. Otherwise, manually setting the due date is enough. If\npayment terms are already defined, empty the field to select a date.\n\n## Journal entries\n\nInvoices with specific payment terms generate different journal entries , with one journal item for every computed due date .\nThis makes for easier follow-ups and reconciliation since Odoo takes each\ndue date into account, rather than just the balance due date. It also helps to get an accurate aged receivable report .\nIn this example, an invoice of $1000 has been issued with the following payment terms: 30% is\ndue on the day of issuance, and the remaining 70% is due at the end of the following month.\nThe $1000 debited to the account receivable is split into two distinct journal items. Both of\nthem have their own due date.", "headings": ["Configuration", "End of the month buffer", "Using payment terms", "Journal entries"], "doc_id": "7463ed454c92e029"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/customer_invoices/sequence.html", "title": "Invoice sequence", "module": "accounting", "section": "Invoice sequence", "text": "# Invoice sequence\n\nWhen confirming an invoice, Odoo generates a unique invoice reference number. By default, it uses\nthe sequence format INV/year/incrementing-number (e.g., INV/2025/00001 ), which restarts from 00001 each year.\n`INV/year/incrementing-number`\n`INV/2025/00001`\n`00001`\nHowever, it is possible to change the sequence format and\nits periodicity, and to mass-resequence invoices .\nChanges made to reference numbers are logged in the chatter.\n\n## Changing the default sequence\n\nTo customize the default sequence, open the last confirmed invoice, click Reset to\nDraft , and edit the invoiceâs reference number.\nOdoo then explains how the detected format will be applied to all future invoices. For example, if\nthe current invoiceâs month is added, the sequenceâs periodicity will change to every month instead\nof every year.\nThe sequence format can be edited directly when creating the first invoice of a given sequence\nperiod.\n\n## Mass-resequencing invoices\n\nIt can be helpful to resequence multiple invoice numbers. For example, when importing invoices from\nanother invoicing or accounting system and the reference originates from the previous software,\ncontinuity for the current year must be maintained without restarting from the beginning.\nThis feature is only available to users with administrator or advisor access.\nFollow these steps to resequence invoice numbers:\n- Activate the developer mode .\nActivate the developer mode .\n- From the Accounting Dashboard , open the Customer Invoices journal.\nFrom the Accounting Dashboard , open the Customer Invoices journal.\n- Select the invoices that need a new sequence.\nSelect the invoices that need a new sequence.\n- Click the Actions menu and select Resequence .\nClick the Actions menu and select Resequence .\n- In the Ordering field, choose to Keep current order : The order of the numbers remains the same. Reorder by accounting date : The number is reordered by accounting date.\nIn the Ordering field, choose to\n- Keep current order : The order of the numbers remains the same.\nKeep current order : The order of the numbers remains the same.\n- Reorder by accounting date : The number is reordered by accounting date.\nReorder by accounting date : The number is reordered by accounting date.\n- Set the First New Sequence .\nSet the First New Sequence .\n- Preview Modifications and click Confirm .\nPreview Modifications and click Confirm .\n- To indicate where the sequence change began, the first invoice in the new sequence is\nhighlighted in red in the Customer Invoices list. This visual marker is permanent\nand purely informational.\nTo indicate where the sequence change began, the first invoice in the new sequence is\nhighlighted in red in the Customer Invoices list. This visual marker is permanent\nand purely informational.\n- If there are any irregularities in the new sequence, such as gaps, cancelled, or deleted\nentries within the open period, a Gaps in the sequence message appears in the Customer Invoices journal on the Accounting dashboard. To view more details about\nthe related invoice(s), click Gaps in the sequence . This visual marker is temporary\nand will disappear once the entryâs accounting date is on or after the lock date.\nIf there are any irregularities in the new sequence, such as gaps, cancelled, or deleted\nentries within the open period, a Gaps in the sequence message appears in the Customer Invoices journal on the Accounting dashboard. To view more details about\nthe related invoice(s), click Gaps in the sequence . This visual marker is temporary\nand will disappear once the entryâs accounting date is on or after the lock date.\nResequencing is not possible:\n- When entries are before a lock date.\nWhen entries are before a lock date.\n- When the sequence leads to a duplicate.\nWhen the sequence leads to a duplicate.\n- When the range is invalid. For example, if the Invoice Date doesnât align with the\ndate in the new sequence, such as using a 2024 sequence (INV/2024/XXXXX) for an invoice dated\nin 2025.\nWhen the range is invalid. For example, if the Invoice Date doesnât align with the\ndate in the new sequence, such as using a 2024 sequence (INV/2024/XXXXX) for an invoice dated\nin 2025.\nIn these cases, a Validation Error message appears.", "headings": ["Changing the default sequence", "Mass-resequencing invoices"], "doc_id": "0e8c02cf7d893adf"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/customer_invoices/snailmail.html", "title": "Snailmail", "module": "accounting", "section": "Snailmail", "text": "# Snailmail\n\nSending direct mail can be an effective strategy for grabbing peopleâs attention, especially when\ntheir email inboxes are overflowing. With Odoo, you have the ability to send invoices and follow-up\nreports through postal mail worldwide, all from within your database.\n\n## Configuration\n\nGo to Accounting ⣠Configuration ⣠Settings and scroll down to the Customer Invoices section to activate Snailmail .\nSet a preferred invoice sending method in the Accounting tab of a contact to use it by default.\n\n## Sending invoices by post\n\nIn the invoice form view, ensure the Customer address is correct and has the country\nset. Click Send , select by Post , then Send the letter.\nDocuments sent via snailmail must respect the following rules:\n- The paper format must be A4 .\nThe paper format must be A4 .\n- Margins must be at least 5 mm on all sides. To configure margins, activate the developer mode and go to Settings ⣠Technical â£\nPaper Format .\nMargins must be at least 5 mm on all sides. To configure margins, activate the developer mode and go to Settings ⣠Technical â£\nPaper Format .\n- A square of 15mm by 15mm on the bottom left corner must remain clear.\nA square of 15mm by 15mm on the bottom left corner must remain clear.\n- Odoo fills these areas with white before sending the letter; any overflowing content will be\ncut.\nOdoo fills these areas with white before sending the letter; any overflowing content will be\ncut.\n- The postage area must remain clear (download the snailmail PDF template for details).\nThe postage area must remain clear (download the snailmail PDF template for details).\n`snailmailPDFtemplate`\n- Pingen (Odooâs snailmail service provider) scans the address area to obtain the address.\nAny text outside the address area is not considered part of the address.\nPingen (Odooâs snailmail service provider) scans the address area to obtain the address.\nAny text outside the address area is not considered part of the address.\n\n## Pricing\n\nSnailmail is an In-app purchases (IAP) service that requires prepaid stamps\n(credits) to work. Sending one document consumes one stamp.\nTo buy stamps, go to Accounting ⣠Configuration ⣠Settings , scroll down to the Snailmail section, and click Buy credits .\n- Invoice sending\n- Odooâs IAP Privacy Policy\nOdooâs IAP Privacy Policy\n- Pingenâs layout requirements\nPingenâs layout requirements", "headings": ["Configuration", "Sending invoices by post", "Pricing"], "doc_id": "9b71d0790f9434d3"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/customer_invoices/terms_conditions.html", "title": "Default terms and conditions (T&C)", "module": "accounting", "section": "Default terms and conditions (T&C)", "text": "# Default terms and conditions (T&C)\n\nSpecifying terms and conditions is essential to establish important contractual points, such as\nreturn and refunds, warranty, and after-sale services.\nYou can add default terms and conditions at the bottom of all customer invoices, sales orders, and\nquotations, either as text or a link to a web page.\nOdoo Tutorial: Terms & Conditions\n\n## Configuration\n\nGo to Accounting ⣠Configuration ⣠Settings . Under the Customer\nInvoices , enable Default Terms & Conditions . By default, the Add a Note option is selected, and the terms and conditions are displayed at the bottom of the document. Enter\nthe terms and conditions in the text box below.\nYou can also add a PDF version of your terms and conditions as an attachment when sending the\ndocument via email. Edit the email templates if you want to include them by default.\nAlternatively, to display the terms and conditions on a web page, select the Add a link\nto a Web Page option and click Save . Click Update Terms , edit the\ncontent, and click Save . The link to that page is then added as a note in your document.\nYou can edit the layout and content of the page using the Website app. If the Website app is activated, the Edit in\nWebsite Builder option then replaces Update Terms .", "headings": ["Configuration"], "doc_id": "6c525ba1030802f8"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/get_started.html", "title": "Get started", "module": "accounting", "section": "Get started", "text": "# Get started\n\nWhen you first open your Odoo Accounting app, the Accounting Dashboard welcomes you with\na step-by-step onboarding banner, a wizard that helps you get started. This onboarding banner is\ndisplayed until you choose to close it.\nThe settings visible in the onboarding banner can still be modified later by going to Accounting ⣠Configuration ⣠Settings .\nOdoo Accounting automatically installs the appropriate Fiscal Localization Package for your\ncompany, according to the country selected at the creation of the database. This way, the right\naccounts, reports, and taxes are ready-to-go. Click here for more information about Fiscal Localization Packages.\n\n## Accounting onboarding banner\n\nThe step-by-step Accounting onboarding banner is composed of four steps:\n- Accounting Periods\n- Bank Account\n- Chart of Accounts\n\n### Accounting Periods\n\nDefine the Fiscal Years â opening and closing dates, which are used to generate reports\nautomatically, and set your Tax Return Periodicity , along with a reminder to never miss a tax\nreturn deadline.\nBy default, the opening date is set on the 1st of January and the closing date on the 31st of\nDecember, as this is the most common use.\nYou can also change these settings by going to Accounting ⣠Configuration â£\nSettings ⣠Fiscal Periods and updating the values.\n\n### Bank Account\n\nConnect your bank account to your database and have your bank statements synced automatically. To do\nso, find your bank in the list, click Connect , and follow the instructions on-screen.\nClick here for more information about this feature.\nIf your Bank Institution canât be synchronized automatically, or if you prefer not to sync it with\nyour database, you can also configure your bank account manually by typing its name, clicking Create your Bank Account , and filling out the form.\n- Name : the bank accountâs name, as displayed in Odoo.\nName : the bank accountâs name, as displayed in Odoo.\n- Account Number : your bank account number (IBAN in Europe).\nAccount Number : your bank account number (IBAN in Europe).\n- Bank : click Create and edit to configure the bankâs details. Add the\nbank institutionâs Name and its Identifier Code (BIC or SWIFT).\nBank : click Create and edit to configure the bankâs details. Add the\nbank institutionâs Name and its Identifier Code (BIC or SWIFT).\n- Code : this code is your Journalâs Short Code , as displayed in Odoo.\nBy default, Odoo creates a new Journal with this short code.\nCode : this code is your Journalâs Short Code , as displayed in Odoo.\nBy default, Odoo creates a new Journal with this short code.\n- Journal : This field is displayed if you have an existing bank journal that is not\nlinked yet to a bank account. If so, then select the Journal you want to use to record\nthe financial transactions linked to this bank account or create a new one by clicking Create and Edit .\nJournal : This field is displayed if you have an existing bank journal that is not\nlinked yet to a bank account. If so, then select the Journal you want to use to record\nthe financial transactions linked to this bank account or create a new one by clicking Create and Edit .\n- You can add as many bank accounts as needed with this tool by going to Accounting ⣠Configuration ⣠Add a Bank Account .\nYou can add as many bank accounts as needed with this tool by going to Accounting ⣠Configuration ⣠Add a Bank Account .\n- Click here for more information about Bank Accounts.\nClick here for more information about Bank Accounts.\n\n### Taxes\n\nThis menu allows you to create new taxes, (de)activate, or modify existing taxes. Depending on the localization package installed on your database, taxes required for\nyour country are already configured.\nClick here for more information about taxes.\n\n### Chart of Accounts\n\nWith this menu, you can add accounts to your Chart of Accounts and indicate their initial\nopening balances.\nBasic settings are displayed on this page to help you review your Chart of Accounts. To access all\nthe settings of an account, click on the Setup button at the end of the line.\nClick here for more information on how to configure your\nChart of Accounts.\n\n## Invoicing onboarding banner\n\nThere is another step-by-step onboarding banner that helps you take advantage of your Odoo Invoicing\nand Accounting apps. The Invoicing onboarding banner is the one that welcomes you if you use the\nInvoicing app rather than the Accounting app.\nIf you have Odoo Accounting installed on your database, you can reach it by going to Accounting ⣠Customers ⣠Invoices .\nThe Invoicing onboarding banner consists of four main steps:\n- Company Data\n- Documents Layout\n- Create Invoice\n- Online Payments\n\n### Company Data\n\nAdd your companyâs details, such as the name, address, logo, website, phone number, email address,\nand Tax ID or VAT number. These details are then displayed on your documents, such as invoices.\nYou can also change the companyâs details by going to Settings ⣠General\nSettings , scrolling down to the Companies section, and Update Info .\n\n### Documents Layout\n\nCustomize the default invoice layout .\nYou can also change the invoice layout by going to Settings ⣠General\nSettings , scrolling down to the Companies section, and clicking Configure\nDocument Layout .\n\n### Create Invoice\n\nCreate your first invoice.\nAdd your bank account number and a link to your General Terms & Condition in the footer.\nThis way, your contacts can find the full content of your GT&C online without having to print\nthem on the invoices you issue.\n\n### Online Payments\n\nGet started with Stripe and enable secure integrated credit and debit card payments within Odoo.\nTo use other payment providers, go to Invoicing â> Configuration â> Payment Providers and enable the desired providers .\n- Bank and cash accounts\nBank and cash accounts\n- Chart of accounts\n- Consolidation\n- Bank synchronization\n- Fiscal localizations\n- Odoo Tutorials: Accounting and Invoicing - Getting started [video]\nOdoo Tutorials: Accounting and Invoicing - Getting started [video]", "headings": ["Accounting onboarding banner", "Accounting Periods", "Bank Account", "Taxes", "Chart of Accounts", "Invoicing onboarding banner", "Company Data", "Documents Layout", "Create Invoice", "Online Payments"], "doc_id": "0ea326f8d0254890"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/get_started/avg_price_valuation.html", "title": "Average price on returned goods", "module": "accounting", "section": "Average price on returned goods", "text": "# Average price on returned goods\n\nAverage cost valuation (AVCO) is an inventory valuation method that evaluates cost based on the\ntotal cost of goods bought or produced during a period, divided by the total number of items\non-hand. Inventory valuation is used to:\n- reflect the value of a companyâs assets;\nreflect the value of a companyâs assets;\n- keep track of the amount of unsold goods;\nkeep track of the amount of unsold goods;\n- account for monetary value in goods that have yet to generate profit;\naccount for monetary value in goods that have yet to generate profit;\n- report on flow of goods throughout the quarter.\nreport on flow of goods throughout the quarter.\nBecause AVCO uses the weighted average to evaluate the cost, it is a good fit for companies that\nsell only a few different products in large quantities. In Odoo, this costing analysis is automatically updated each time products are received.\nThus, when shipments are returned to their supplier, Odoo automatically generates accounting entries\nto reflect the change in inventory valuation. However, Odoo does not automatically update the AVCO calculation, because this can potentially create inconsistencies with inventory\nvaluation .\nThis document addresses a specific use case for theoretical purposes. For instructions on how to\nset up and use AVCO , refer to the inventory valuation configuration doc.\n- Using inventory valuation\nUsing inventory valuation\n- Other inventory valuation methods\nOther inventory valuation methods\n\n## Configuration\n\nTo use average cost inventory valuation on a product, navigate to Inventory â£\nConfiguration ⣠Product Categories and select the category that will be using AVCO . On the\nproduct category page, set Costing Method to Average Cost (AVCO) and Inventory Valuation to Automated .\n`AverageCost(AVCO)`\n`Automated`\nInventory valuation configuration\n\n## Using average cost valuation\n\nThe average cost method adjusts the inventory valuation when products are received in the warehouse.\nThis section explains how it works, but if the explanation is unnecessary, skip to the return\nto supplier use case section.\n\n### Formula\n\nWhen new products arrive, the new average cost for each product is recomputed using the formula:\n- Old Qty : product count in stock before receiving the new shipment;\nOld Qty : product count in stock before receiving the new shipment;\n- Old Avg Cost : calculated average cost for a single product from the previous inventory\nvaluation;\nOld Avg Cost : calculated average cost for a single product from the previous inventory\nvaluation;\n- Incoming Qty : count of products arriving in the new shipment;\nIncoming Qty : count of products arriving in the new shipment;\n- Purchase Price : estimated price of products at the reception of products (since vendor bills\nmay arrive later). The amount includes not only the price for the products, but also added costs,\nsuch as shipping, taxes, and landed costs . At\nreception of the vendor bill, this price is adjusted;\nPurchase Price : estimated price of products at the reception of products (since vendor bills\nmay arrive later). The amount includes not only the price for the products, but also added costs,\nsuch as shipping, taxes, and landed costs . At\nreception of the vendor bill, this price is adjusted;\n- Final Qty : quantity of on-hand stock after the stock move.\nFinal Qty : quantity of on-hand stock after the stock move.\nWhen products leave the warehouse, the average cost does not change. Read about why the\naverage cost valuation is not adjusted here .\n\n### Compute average cost\n\nTo understand how the average cost of a product changes with each shipment, consider the following\ntable of warehouse operations and stock moves. Each is a different example of how the average cost\nvaluation is affected.\nReceive 8 tables at $10/unit\nReceive 4 tables at $16/unit\nEnsure comprehension of the above computations by reviewing the âReceive 8 tables at $10/unitâ\nexample.\nInitially, the product stock is 0, so all values are $0.\nIn the first warehouse operation, 8 tables are received at $10 each. The average cost is\ncalculated using the formula :\n`8`\n`$10`\n- Since the incoming quantity of tables is 8 and the purchase price for each is $10 ,\nSince the incoming quantity of tables is 8 and the purchase price for each is $10 ,\n`8`\n`$10`\n- The inventory value in the numerator is evaluated to $80 ;\nThe inventory value in the numerator is evaluated to $80 ;\n`$80`\n- $80 is divided by the total amount of tables to store, 8 ;\n$80 is divided by the total amount of tables to store, 8 ;\n`$80`\n`8`\n- $10 is the average cost of a single table from the first shipment.\n$10 is the average cost of a single table from the first shipment.\n`$10`\nTo verify this in Odoo, in the Purchase app, order 8 quantities of a new product, Table ,\nwith no previous stock moves, for $10 each.\n`8`\n`Table`\n`$10`\nIn the tableâs Product Category field in the General Information tab of\nthe product form, click the â¡ï¸ (arrow) icon, to open an External Link to\nedit the product category. Set the Costing Method to Average Cost (AVCO) and Inventory Valuation to Automated .\n`AverageCost(AVCO)`\n`Automated`\nThen, return to the purchase order. Click Confirm Order , and click Receive\nProducts to confirm receipt.\nNext, check the inventory valuation record generated by the product reception by navigating to Inventory ⣠Reporting ⣠Inventory Valuation . Select the drop-down for Table , and view the Total Value column for the valuation layer ( inventory\nvaluation at a specific point in time = on-hand quantity * unit price ). The 8 tables in-stock\nare worth $80.\n`Table`\nWhen the product categoryâs Costing Method is set to AVCO , then the\naverage cost of a product is also displayed on the Cost field, under the General Information tab, on the product page itself.\n\n#### Product delivery (use case)\n\nFor outgoing shipments, outbound products have no effect on the average cost valuation . Although the average cost valuation is not recalculated, the\ninventory value still decreases because the product is removed from stock and delivered to the\ncustomer location.\nTo demonstrate that the average cost valuation is not recalculated, examine the âDeliver 10\ntablesâ example.\n- Because 10 tables are being sent out to customers, the incoming quantity is -10 . The\nprevious average cost ( $12 ) is used in lieu of a vendorâs purchase price ;\nBecause 10 tables are being sent out to customers, the incoming quantity is -10 . The\nprevious average cost ( $12 ) is used in lieu of a vendorâs purchase price ;\n`-10`\n`$12`\n- The incoming inventory value is -10 * $12 = -$120 ;\nThe incoming inventory value is -10 * $12 = -$120 ;\n`-10*$12=-$120`\n- The old inventory value ( $144 ) is added to the incoming inventory value ( -$120 ), so $144 + -$120 = $24 ;\nThe old inventory value ( $144 ) is added to the incoming inventory value ( -$120 ), so $144 + -$120 = $24 ;\n`$144`\n`-$120`\n`$144+-$120=$24`\n- Only 2 tables remain after shipping out 10 tables from 12 . So the current inventory\nvalue ( $24 ) is divided by the on-hand quantity ( 2 );\nOnly 2 tables remain after shipping out 10 tables from 12 . So the current inventory\nvalue ( $24 ) is divided by the on-hand quantity ( 2 );\n`2`\n`10`\n`12`\n`$24`\n`2`\n- $24 / 2 = $12 , which is the same average cost as the previous operation.\n$24 / 2 = $12 , which is the same average cost as the previous operation.\n`$24/2=$12`\nTo verify this in Odoo, sell 10 tables in the Sales app, validate the delivery, and then\nreview the inventory valuation record by going to in Inventory ⣠Reporting â£\nInventory Valuation . In the topmost valuation layer, delivering 10 tables reduces the\nproductâs value by -$120 .\n`10`\n`10`\n`-$120`\nNote : What is not represented in this stock valuation record is the revenue made from this\nsale, so this decrease is not a loss to the company.\n\n## Return items to supplier (use case)\n\nBecause the price paid to suppliers can differ from the price the product is valued at with the AVCO method, Odoo handles returned items in a specific way.\n- Products are returned to suppliers at the original purchase price, but;\nProducts are returned to suppliers at the original purchase price, but;\n- The internal cost valuation remains unchanged.\nThe internal cost valuation remains unchanged.\nThe above example table is updated as follows:\nReturn 1 table bought at $10\nIn other words, returns to vendors are perceived by Odoo as another form of a product exiting the\nwarehouse. To Odoo, because the table is valued at $12 per unit, the inventory value is reduced by $12 when the product is returned; the initial purchase price of $10 is unrelated to the tableâs\naverage cost.\n`$12`\n`$10`\nTo return a single table that was purchased for $10 , navigate to the receipt in the Inventory app for the 8 tables purchased in Exercise 1 by going to the Inventory Overview , clicking on Receipts , and selecting the desired\nreceipt.\n`$10`\nThen, click Return on the validated delivery order, and modify the quantity to 1 in\nthe reverse transfer window. This creates an outgoing shipment for the table. Select Validate to confirm the outgoing shipment.\n`1`\nReturn to Inventory ⣠Reporting ⣠Inventory Valuation to see how the\noutgoing shipment decreases the inventory value by $12.\n\n### Eliminate stock valuation errors in outgoing products\n\nInconsistencies can occur in a companyâs inventory when the average cost valuation is recalculated\non outgoing shipments.\nTo demonstrate this error, the table below displays a scenario in which 1 table is shipped to a\ncustomer and another is returned to a supplier at the purchased price.\nShip 1 product to customer\nReturn 1 product initially bought at $10\nIn the final operation above, the final inventory valuation for the table is $2 even though there\nare 0 tables left in stock.\n`$2`\n`0`\nUse the average cost to value the return. This does not mean the company gets $12 back for a $10\npurchase; the item returned for $10 is valued internally at $12. The inventory value change\nrepresents a product worth $12 no longer being accounted for in company assets.\n\n## Anglo-Saxon accounting\n\nIn addition to using AVCO , companies that use Anglo-Saxon accounting also keep a holding\naccount that tracks the amount to be paid to vendors. Once a vendor delivers an order, inventory\nvalue increases based on the vendor price of the products that have entered the stock. The holding\naccount (called stock input ) is credited and only reconciled once the vendor bill is received.\n- Anglo-Saxon vs. Continental\nAnglo-Saxon vs. Continental\nThe table below reflects journal entries and accounts. The stock input account stores the money\nintended to pay vendors when the vendor bill has not yet been received. To balance accounts when\nreturning products that have a price difference between the price the product is valued at and\nthe price it was bought for, a price difference account is created.\nReceive 8 tables at $10\nReceive vendor bill $80\nReceive 4 tables at $16\nReceive vendor bill $64\nDeliver 10 tables to customer\nReturn 1 table initially bought at $10\nReceive vendor refund $10\n\n### Product reception\n\n#### Summary\n\nAt product reception, Odoo ensures companies can pay for goods that were purchased by preemptively\nmoving an amount matching the price of received goods into the liability account , Stock Input . Then, once the bill\nhas been received, the amount in the holding account is transferred to Accounts Payable . Transfers\ninto this account means the bill has been paid. Stock Input is reconciled once the vendor bill\nis received.\nInventory valuation is a method of calculating how much each in-stock product is worth internally.\nSince there is a difference between the price the product is valuated at and the price the\nproduct was actually purchased for , the Inventory Valuation account is unrelated to the\ncrediting and debiting operations of the Stock Input account.\nTo conceptualize all this, follow the breakdown below.\n\n#### Accounts balanced at received products\n\nIn this example, a company starts with zero units of a product, table , in stock. Then, 8 tables\nare received from the vendor:\n`table`\n- The Stock Input account stores $80 of credit owed to the vendor. The amount in this account\nis unrelated to the inventory value.\nThe Stock Input account stores $80 of credit owed to the vendor. The amount in this account\nis unrelated to the inventory value.\n`$80`\n- $80 worth of tables came in ( debit the Inventory Value account $80 ), and\n$80 worth of tables came in ( debit the Inventory Value account $80 ), and\n`$80`\n`$80`\n- $80 must be paid out for received goods ( credit the Stock Input account $80 ).\n$80 must be paid out for received goods ( credit the Stock Input account $80 ).\n`$80`\n`$80`\nOdoo generates an accounting journal entry when shipments that use AVCO costing method are\nreceived. Configure a Price Difference Account by selecting the â¡ï¸ (arrow) icon next to the Product Category field on the product page.\nUnder Account Properties , create a new Price Difference Account by typing in\nthe name of the account and clicking Create and Edit . Then set the account Type as Expenses , and click Save .\n`Expenses`\nThen, receive the shipment in the Purchase app or Inventory app, and navigate to the Accounting app ⣠Accounting ⣠Journal Entries . In the list, find the Reference that matches the warehouse reception operation for the relevant product.\nClick on the line for 8 tables. This accounting journal entry shows that when the 8 tables were\nreceived, the Stock Valuation account increased by $80 . Conversely, the Stock Input account\n(set as Stock Interim (Received) account by default) is credited $80 .\n`StockValuation`\n`$80`\n`StockInterim(Received)`\n`$80`\n\n#### Accounts balanced at received vendor bill\n\nIn this example, a company starts with zero units of a product, table, in stock. Then, 8 tables are\nreceived from the vendor. When the bill is received from vendor for 8 tables:\n- Use $80 in the Stock Input account to pay the bill. This cancels out and the account now\nholds $0 .\nUse $80 in the Stock Input account to pay the bill. This cancels out and the account now\nholds $0 .\n`$80`\n`$0`\n- Debit Stock Input $80 (to reconcile this account).\nDebit Stock Input $80 (to reconcile this account).\n`$80`\n- Credit Accounts payable $80 . This account stores the amount the company owes others, so\naccountants use the amount to write checks to vendors.\nCredit Accounts payable $80 . This account stores the amount the company owes others, so\naccountants use the amount to write checks to vendors.\n`$80`\nOnce the vendor requests payment, navigate to the Purchase app ⣠Orders â£\nPurchase and select the PO for 8 tables. Inside the PO , select Create Bill .\nSwitch to the Journal Items tab to view how $80 is transferred from the holding\naccount, Stock Interim (Received) to Accounts Payable . Confirm the bill to record\nthe payment to the vendor.\n`$80`\n`StockInterim(Received)`\n`AccountsPayable`\n\n### On product delivery\n\nIn the above example table , when 10 products are delivered\nto a customer, the Stock Input account is untouched because there are no new products coming in.\nTo put it simply:\n- Inventory valuation is credited $120 . Subtracting from inventory valuation represents $120 worth of products exiting the company.\nInventory valuation is credited $120 . Subtracting from inventory valuation represents $120 worth of products exiting the company.\n`$120`\n`$120`\n- Debit Accounts Receivable to record revenue from the sale.\nDebit Accounts Receivable to record revenue from the sale.\nIn the accounting journal entry invoicing a customer for 10 tables, the accounts Product\nSales , Tax Received , and Accounts Receivable all pertain to the sale of the product. Accounts Receivable is the account where the customer payment will be received.\nAnglo-Saxon accounting recognizes the cost of goods sold (COGS) once the sale is made. So, up\nuntil the product is sold, scrapped, or returned, costs of keeping the product in stock are not\naccounted for. The Expense account is debited $120 to log the costs of storing 10 tables\nduring this period of time.\n`$120`\n\n### On product return\n\nIn the above example table , when returning 1 product to a\nvendor purchased at $10 , a company expects $10 in the Accounts Payable account from the\nvendor. However, Stock Input account must be debited $12 because the average cost is $12 at\nthe time of the return. The missing $2 is accounted for in the Price Difference\nAccount , which is set up in the productâs Product Category .\n`$10`\n`$10`\n`$12`\n`$12`\n`$2`\nBehavior of price difference accounts varies from localization. In this case, the account is\nintended to store differences between vendor price and automated inventory valuation methods.\n- Debit Stock Input account $10 to move the table from stock to stock input. This move is to\nindicate that the table is to be processed for an outgoing shipment.\nDebit Stock Input account $10 to move the table from stock to stock input. This move is to\nindicate that the table is to be processed for an outgoing shipment.\n`$10`\n- Debit Stock Input an additional $2 to account for the Price Difference .\nDebit Stock Input an additional $2 to account for the Price Difference .\n`$2`\n- Credit Stock Valuation $12 because the item is leaving the stock.\nCredit Stock Valuation $12 because the item is leaving the stock.\n`$12`\nOnce the vendorâs refund is received,\n- Credit Stock Input account $10 to reconcile the price of the table.\nCredit Stock Input account $10 to reconcile the price of the table.\n`$10`\n- Debit Accounts Payable $10 to have the accountants collect and register the payment in\ntheir journal.\nDebit Accounts Payable $10 to have the accountants collect and register the payment in\ntheir journal.\n`$10`", "headings": ["Configuration", "Using average cost valuation", "Formula", "Compute average cost", "Return items to supplier (use case)", "Eliminate stock valuation errors in outgoing products", "Anglo-Saxon accounting", "Product reception", "On product delivery", "On product return"], "doc_id": "f362a776abfaea37"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/get_started/chart_of_accounts.html", "title": "Chart of accounts", "module": "accounting", "section": "Chart of accounts", "text": "# Chart of accounts\n\nThe chart of accounts (COA) is the list of all the accounts used to record financial\ntransactions in the general ledger of an organization. The chart of accounts can be found under Accounting ⣠Configuration ⣠Chart of Accounts .\nWhen browsing your chart of accounts, you can sort the accounts by Code , Account Name , or Type , but other options are available in the drop-down menu\n\n## Configuration of an account\n\nThe country you select during the creation of your database (or additional company in your database)\ndetermines which fiscal localization package is installed by\ndefault. This package includes a standard chart of accounts already configured according to the\ncountryâs regulations. You can use it directly or set it according to your companyâs needs.\nTo create a new account, go to Accounting ⣠Configuration ⣠Chart of Accounts ,\nclick Create , and fill in (at the minimum) the required fields\n( Code, Account Name, Type ).\nIt is not possible to modify the fiscal localization of a company once a journal entry has\nbeen posted.\n\n### Code and name\n\nEach account is identified by its Code and Name , which also indicate the\naccountâs purpose.\n\n### Type\n\nCorrectly configuring the account type is critical as it serves multiple purposes:\n- Information on the accountâs purpose and behavior\nInformation on the accountâs purpose and behavior\n- Generate country-specific legal and financial reports\nGenerate country-specific legal and financial reports\n- Set the rules to close a fiscal year\nSet the rules to close a fiscal year\n- Generate opening entries\nGenerate opening entries\nTo configure an account type, open the Type fieldâs drop-down selector and select the\ncorresponding type from the following list:\nMoney owed to the company by customers for goods or services delivered\nFunds held in company bank accounts or on hand as cash\nShort-term assets expected to be converted into cash within a year\nLong-term assets not expected to be converted to cash within a year\nPayments made in advance for goods or services to be received in the future\nTangible long-term assets like buildings, machinery, and vehicles used in operation and subject to depreciation\nMoney the company owes to suppliers or vendors\nBalances and transactions associated with company credit card usage\nObligations due within one year, such as short-term loans or accrued expenses\nNon-current Liabilities\nLong-term debts and financial obligations due beyond one year\nThe ownerâs residual interest in the company after liabilities are deducted from assets\nCurrent Year Earnings\nThe companyâs net profit or loss accumulated in the current fiscal year\nRevenue generated from the companyâs primary business activities\nRevenue from secondary or non-operational sources, like interest or asset sales\nCosts incurred during operations to generate revenue\nThe allocation of the cost of tangible assets over their useful life\nDirect costs attributable to the production or delivery of goods and services\nTransactions not displayed on the balance sheet or profit and loss report\n\n#### Assets\n\nSome account types can automate the creation of asset entries.\nTo automate entries, click View on an account line and go to the Automation tab.\nYou have three choices for the Automation tab:\n- No : this is the default value. Nothing happens.\nNo : this is the default value. Nothing happens.\n- Create in draft : whenever a transaction is posted on the account, a draft entry is\ncreated but not validated. You must first fill out the corresponding form.\nCreate in draft : whenever a transaction is posted on the account, a draft entry is\ncreated but not validated. You must first fill out the corresponding form.\n- Create and validate : you must also select a Deferred Expense Model .\nWhenever a transaction is posted on the account, an entry is created and immediately validated.\nCreate and validate : you must also select a Deferred Expense Model .\nWhenever a transaction is posted on the account, an entry is created and immediately validated.\n\n### Default taxes\n\nIn the View menu of an account, select a default tax to be applied when this\naccount is chosen for a product sale or purchase.\n\n### Tags\n\nSome accounting reports require tags to be set on the relevant accounts. To add a tag, under View , click the Tags field and select an existing tag or Create a new one.\n\n### Account groups\n\nAccount groups are useful to list multiple accounts as sub-accounts of a bigger account and\nthus consolidate reports such as the Trial Balance . By default, groups are handled automatically\nbased on the code of the group. For example, a new account 131200 is going to be part of the group 131000 . You can attribute a specific group to an account in the Group field under View .\n`131200`\n`131000`\n\n#### Create account groups manually\n\nRegular users should not need to create account groups manually. The following section is only\nintended for rare and advanced use cases.\nTo create a new account group, activate developer mode and head to Accounting ⣠Configuration ⣠Account Groups . Here, create a new group and enter\nthe name, code prefix, and company to which that group account should be available. Note\nthat you must enter the same code prefix in both From and to fields.\nTo display your Trial Balance report with your account groups, go to Accounting ⣠Reporting ⣠Trial Balance , then open the Options menu\nand select Hierarchy and Subtotals .\n\n### Allow reconciliation\n\nTo keep the reconciliation process simple, when reconciling a bank, cash, or credit card transaction\nwith an existing journal item, only journal items that debit or credit accounts with the Allow reconciliation option enabled are displayed as possible matches.\nTo enable this option on an account, tick the Allow Reconciliation checkbox in the\naccountâs settings, and Save ; or enable the button from the chart of accounts view.\n\n### Shared Accounts\n\nThe Shared Accounts feature allows the creation of a single account for a specific purpose and\nsharing it between multiple companies. It is especially useful for multi-company environments where\na similar account might be used across different companies.\n\n### Deprecated\n\nIt is not possible to delete an account once a transaction has been recorded on it. You can make\nthem unusable by using the Deprecated feature: check the Deprecated box in the\naccountâs settings, and Save .\n- Accounting cheat sheet\nAccounting cheat sheet\n- Non-current assets and fixed assets\nNon-current assets and fixed assets\n- Deferred expenses\n- Deferred revenues\n- Fiscal localizations\n- Odoo Tutorials: Chart of accounts\nOdoo Tutorials: Chart of accounts\n- Odoo Tutorials: Update your chart of accounts\nOdoo Tutorials: Update your chart of accounts", "headings": ["Configuration of an account", "Code and name", "Type", "Default taxes", "Tags", "Account groups", "Allow reconciliation", "Shared Accounts", "Deprecated"], "doc_id": "4e5996bbb7350192"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/get_started/cheat_sheet.html", "title": "Accounting cheat sheet", "module": "accounting", "section": "Accounting cheat sheet", "text": "# Accounting cheat sheet\n\nThe Balance Sheet is a snapshot of the companyâs finances at a specific date (as opposed to\nthe Profit and Loss, which is an analysis over a period).\n- Assets represent the companyâs wealth and the goods it owns. Fixed assets include buildings\nand offices, while current assets include bank accounts and cash. The money owed by a client is\nan asset. An employee is not an asset.\nAssets represent the companyâs wealth and the goods it owns. Fixed assets include buildings\nand offices, while current assets include bank accounts and cash. The money owed by a client is\nan asset. An employee is not an asset.\n- Liabilities are obligations from past events that the company will have to pay in the\nfuture (utility bills, debts, unpaid suppliers). Liabilities could also be defined as a source\nof financing which is provided to the company, also called leverage .\nLiabilities are obligations from past events that the company will have to pay in the\nfuture (utility bills, debts, unpaid suppliers). Liabilities could also be defined as a source\nof financing which is provided to the company, also called leverage .\n- Equity is the amount of the funds contributed by the owners of the company (founders or\nshareholders) plus previously retained earnings (or losses). Each year, net profits (or losses)\nmay be reported as retained earnings or distributed to the shareholders (as a dividend).\nEquity is the amount of the funds contributed by the owners of the company (founders or\nshareholders) plus previously retained earnings (or losses). Each year, net profits (or losses)\nmay be reported as retained earnings or distributed to the shareholders (as a dividend).\nWhat is owned (an asset) has been financed through debts to reimburse (liabilities) or equity\n(profits, capital).\n- An asset is a resource with economic value that an individual, corporation, or country owns\nor controls with the expectation that it will provide a future benefit. Assets are reported on\na companyâs balance sheet. They are bought or created to increase a firmâs value or benefit its\noperations.\nAn asset is a resource with economic value that an individual, corporation, or country owns\nor controls with the expectation that it will provide a future benefit. Assets are reported on\na companyâs balance sheet. They are bought or created to increase a firmâs value or benefit its\noperations.\n- An expense is the costs of operations a company bears to generate revenues.\nAn expense is the costs of operations a company bears to generate revenues.\nThe profit and loss (P&L) report shows the companyâs performance over a specific period of\ntime, usually a quarter or a fiscal year.\n- The revenue refers to the money earned by the company by selling goods and/or services.\nThe revenue refers to the money earned by the company by selling goods and/or services.\n- The cost of goods sold (COGS, or also known as âCost of Saleâ) refers to the sale of\ngoodsâ costs (e.g., the cost of the materials and labor used to create the goods). The Gross profit equals the revenues from sales minus the cost of goods sold. Operating expenses (OPEX) include administration, sales and R&D salaries, rent and\nutilities, miscellaneous costs, insurances, and anything beyond the costs of products sold\nor the cost of sale.\nThe cost of goods sold (COGS, or also known as âCost of Saleâ) refers to the sale of\ngoodsâ costs (e.g., the cost of the materials and labor used to create the goods).\n- The Gross profit equals the revenues from sales minus the cost of goods sold.\nThe Gross profit equals the revenues from sales minus the cost of goods sold.\n- Operating expenses (OPEX) include administration, sales and R&D salaries, rent and\nutilities, miscellaneous costs, insurances, and anything beyond the costs of products sold\nor the cost of sale.\nOperating expenses (OPEX) include administration, sales and R&D salaries, rent and\nutilities, miscellaneous costs, insurances, and anything beyond the costs of products sold\nor the cost of sale.\nAssets = Liabilities + Equity\n\n## Chart of accounts\n\nThe chart of accounts lists all the companyâs accounts: both Balance sheet accounts and P&L\naccounts. Every transaction is recorded by debiting and crediting multiple accounts in a journal\nentry. In a way, a chart of accounts is like a companyâs DNA!\nEvery account listed in the chart of accounts belongs to a specific category. In Odoo, each account\nhas a unique code and belongs to one of these categories:\n- Equity and subordinated debts Equity is the amount of money invested by a companyâs shareholders to finance the\ncompanyâs activities. Subordinated debts are the amount of money lent by a third party to a company to finance\nits activities. In the event of the dissolution of a company, these third parties are\nreimbursed before the shareholders.\n- Equity is the amount of money invested by a companyâs shareholders to finance the\ncompanyâs activities.\nEquity is the amount of money invested by a companyâs shareholders to finance the\ncompanyâs activities.\n- Subordinated debts are the amount of money lent by a third party to a company to finance\nits activities. In the event of the dissolution of a company, these third parties are\nreimbursed before the shareholders.\nSubordinated debts are the amount of money lent by a third party to a company to finance\nits activities. In the event of the dissolution of a company, these third parties are\nreimbursed before the shareholders.\n- Fixed assets are tangible (i.e., physical) items or properties that a company purchases and\nuses to produce its goods and services. Fixed assets are long-term assets. This means the assets\nhave a useful life of more than one year. They also include properties, plants, and equipments\n(also known as âPP&Eâ) and are recorded on the balance sheet with that classification.\nFixed assets are tangible (i.e., physical) items or properties that a company purchases and\nuses to produce its goods and services. Fixed assets are long-term assets. This means the assets\nhave a useful life of more than one year. They also include properties, plants, and equipments\n(also known as âPP&Eâ) and are recorded on the balance sheet with that classification.\n- Current assets and liabilities The current assets account is a balance sheet line item listed under the Assets section,\nwhich accounts for all company-owned assets that can be converted to cash within one year.\nCurrent assets include cash, cash equivalents, accounts receivable, stock inventory,\nmarketable securities, prepaid liabilities, and other liquid assets. Current liabilities are a companyâs short-term financial obligations due within one year.\nAn example of a current liability is money owed to suppliers in the form of accounts payable.\n- The current assets account is a balance sheet line item listed under the Assets section,\nwhich accounts for all company-owned assets that can be converted to cash within one year.\nCurrent assets include cash, cash equivalents, accounts receivable, stock inventory,\nmarketable securities, prepaid liabilities, and other liquid assets.\nThe current assets account is a balance sheet line item listed under the Assets section,\nwhich accounts for all company-owned assets that can be converted to cash within one year.\nCurrent assets include cash, cash equivalents, accounts receivable, stock inventory,\nmarketable securities, prepaid liabilities, and other liquid assets.\n- Current liabilities are a companyâs short-term financial obligations due within one year.\nAn example of a current liability is money owed to suppliers in the form of accounts payable.\nCurrent liabilities are a companyâs short-term financial obligations due within one year.\nAn example of a current liability is money owed to suppliers in the form of accounts payable.\n- Bank and cash accounts A bank account is a financial account maintained by a bank or other financial institution\nin which the financial transactions between the bank and a customer are recorded. A cash account , or cash book, may refer to a ledger in which all cash transactions are\nrecorded. The cash account includes both the cash receipts and the cash payment journals.\n- A bank account is a financial account maintained by a bank or other financial institution\nin which the financial transactions between the bank and a customer are recorded.\nA bank account is a financial account maintained by a bank or other financial institution\nin which the financial transactions between the bank and a customer are recorded.\n- A cash account , or cash book, may refer to a ledger in which all cash transactions are\nrecorded. The cash account includes both the cash receipts and the cash payment journals.\nA cash account , or cash book, may refer to a ledger in which all cash transactions are\nrecorded. The cash account includes both the cash receipts and the cash payment journals.\n- Expenses and income An expense is the costs of operations a company bears to generate revenues. It is simply\ndefined as the cost one is required to spend on obtaining something. Common expenses include\nsupplier payments, employee wages, factory leases, and equipment depreciation. The term â income â generally refers to the amount of money, property, and other transfers\nof value received over a set period of time in exchange for services or products.\n- An expense is the costs of operations a company bears to generate revenues. It is simply\ndefined as the cost one is required to spend on obtaining something. Common expenses include\nsupplier payments, employee wages, factory leases, and equipment depreciation.\nAn expense is the costs of operations a company bears to generate revenues. It is simply\ndefined as the cost one is required to spend on obtaining something. Common expenses include\nsupplier payments, employee wages, factory leases, and equipment depreciation.\n- The term â income â generally refers to the amount of money, property, and other transfers\nof value received over a set period of time in exchange for services or products.\nThe term â income â generally refers to the amount of money, property, and other transfers\nof value received over a set period of time in exchange for services or products.\n\n### Example\n\n*: Customer Refund and Customer Payment boxes cannot be simultaneously selected as they are contradictory.\nBalance = Debit - Credit\n\n## Journal entries\n\nEvery financial document of the company (e.g., an invoice, a bank statement, a pay slip, a capital\nincrease contract) is recorded as a journal entry, impacting several accounts.\nFor a journal entry to be balanced, the sum of all its debits must be equal to the sum of all its\ncredits.\nexamples of accounting entries for various transactions. (see entries.js)\n\n## Reconciliation\n\nReconciliation is the process of linking\njournal items of a specific account and matching credits and debits.\nIts primary purpose is to link payments to their related invoices to mark them as paid. This is done\nby doing a reconciliation on the accounts receivable account and/or the accounts payable account.\nReconciliation is performed automatically by the system when:\n- the payment is registered directly on the invoice\nthe payment is registered directly on the invoice\n- the links between the payments and the invoices are detected at the bank matching process\nthe links between the payments and the invoices are detected at the bank matching process\nCustomer Statement Example\n\n## Bank Reconciliation\n\nBank reconciliation is the matching of bank statement lines (provided by your bank) with\ntransactions recorded internally (payments to suppliers or from customers). For each line in a bank\nstatement, it can be:\n- matched with a previously recorded payment : a payment is registered when a check is received\nfrom a customer, then matched when checking the bank statement.\nmatched with a previously recorded payment : a payment is registered when a check is received\nfrom a customer, then matched when checking the bank statement.\n- recorded as a new payment : the paymentâs journal entry is created and reconciled with the\nrelated invoice when processing the bank statement.\nrecorded as a new payment : the paymentâs journal entry is created and reconciled with the\nrelated invoice when processing the bank statement.\n- recorded as another transaction : bank transfer, direct charge, etc.\nrecorded as another transaction : bank transfer, direct charge, etc.\nOdoo should automatically reconcile most transactions; only a few should need manual review. When\nthe bank reconciliation process is finished, the balance on the bank account in Odoo should match\nthe bank statementâs balance.\n\n## Checks Handling\n\nThere are two approaches to managing checks and internal wire transfers:\n- Two journal entries and a reconciliation\nTwo journal entries and a reconciliation\n- One journal entry and a bank reconciliation\nOne journal entry and a bank reconciliation\nThe first journal entry is created by registering the payment on the\ninvoice. The second one is created when registering the bank statement.\nA journal entry is created by registering the payment on the invoice. When\nreconciling the bank statement, the statement line is linked to the\nexisting journal entry.", "headings": ["Chart of accounts", "Example", "Journal entries", "Reconciliation", "Bank Reconciliation", "Checks Handling"], "doc_id": "ca5018801d882193"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/get_started/consolidation.html", "title": "Consolidation", "module": "accounting", "section": "Consolidation", "text": "# Consolidation\n\nConsolidation allows combining financial data from multiple separate companies , each with its\nown books, into a unified view, providing a âfair imageâ of the entire groupâs financial health.\nIt helps create a clear, comprehensive view of the groupâs financial performance by combining data\nfrom multiple companies.\nConsolidating companies involves legally separate entities , whereas branches are subdivisions of a single legal entity which often share the\nhead officeâs resources (journals, taxes, accounts, fiscal positions) and are not consolidated in\nthe same way.\n\n## Consolidation tools\n\nSeveral tools combined together will contribute to the construction of the financial\nconsolidation:\n- Account Mapping: Similar accounts from different companies can be mapped together. This\nallows Odoo to combine them correctly in consolidated reports. To map accounts, go to Accounting ⣠Configuration ⣠Chart of Accounts . Click View on the account line. In the Mapping tab, enter a code in the corresponding company Code column to map the account. Note Import mapping or merge existing\naccounts using the merging tool can simplify the process. When multiple accounts from one company are mapped to a single account in another, it is then\npossible to group the multiple accounts into a single line in the other companyâs reporting by grouping by the account code ( account_code ) rather\nthan the account ID ( account_id ). Note Some reports, such as the profit and loss , split\nthe lines into different sections by account type. When these reports are grouped by account\ncode, the section splits are maintained, but within each section, line grouping by account\ncode is respected. Example Belgian Company is a parent company with a subsidiary, American Company. American Company has\nfive income accounts: 400000 Product Sales - Domestic 400100 Product Sales - International 410000 Service Revenue - Consulting 420000 Subscription Revenue 430000 Freight & Handling Revenue All five of the US income accounts correspond to one single income account (700000 Income) in\nthe Belgian Company. For the Belgian Companyâs profit and loss report to show one line for all of the American\nCompanyâs combined income accounts related to the Belgian Companyâs single income account, all\nfive income accounts from the American Company must be mapped to The Belgian Companyâs 700000\nIncome account, and the reportâs lines must be grouped by the account code.\nAccount Mapping: Similar accounts from different companies can be mapped together. This\nallows Odoo to combine them correctly in consolidated reports. To map accounts, go to Accounting ⣠Configuration ⣠Chart of Accounts . Click View on the account line. In the Mapping tab, enter a code in the corresponding company Code column to map the account.\nImport mapping or merge existing\naccounts using the merging tool can simplify the process.\nWhen multiple accounts from one company are mapped to a single account in another, it is then\npossible to group the multiple accounts into a single line in the other companyâs reporting by grouping by the account code ( account_code ) rather\nthan the account ID ( account_id ).\n`account_code`\n`account_id`\nSome reports, such as the profit and loss , split\nthe lines into different sections by account type. When these reports are grouped by account\ncode, the section splits are maintained, but within each section, line grouping by account\ncode is respected.\nBelgian Company is a parent company with a subsidiary, American Company. American Company has\nfive income accounts:\n- 400000 Product Sales - Domestic\n400000 Product Sales - Domestic\n- 400100 Product Sales - International\n400100 Product Sales - International\n- 410000 Service Revenue - Consulting\n410000 Service Revenue - Consulting\n- 420000 Subscription Revenue\n420000 Subscription Revenue\n- 430000 Freight & Handling Revenue\n430000 Freight & Handling Revenue\nAll five of the US income accounts correspond to one single income account (700000 Income) in\nthe Belgian Company.\nFor the Belgian Companyâs profit and loss report to show one line for all of the American\nCompanyâs combined income accounts related to the Belgian Companyâs single income account, all\nfive income accounts from the American Company must be mapped to The Belgian Companyâs 700000\nIncome account, and the reportâs lines must be grouped by the account code.\n- Multi-Ledgers: Ledgers are fundamental to the process of consolidation. They are either: Regular Ledgers: Each company in the consolidation scope has its own standard accounting\nledger where all the regular day-to-day transactions are recorded. It excludes the companyâs\nconsolidation adjustment journals. Multi-Ledger for Consolidation: The company doing the actual consolidation also has a\nspecial multi-ledger. This one includes all the other companiesâ consolidation adjustments\njournals (the ones excluded from their own ledgers). This allows for viewing the total impact\nof all the adjustments. To create a new ledger, go to Accounting ⣠Configuration ⣠Multi-Ledgers and hit the New button. Enter a name, pick the company the ledger is linked to and\nmost importantly, determine which journals are to be excluded from the ledger.\nMulti-Ledgers: Ledgers are fundamental to the process of consolidation. They are either:\n- Regular Ledgers: Each company in the consolidation scope has its own standard accounting\nledger where all the regular day-to-day transactions are recorded. It excludes the companyâs\nconsolidation adjustment journals.\nRegular Ledgers: Each company in the consolidation scope has its own standard accounting\nledger where all the regular day-to-day transactions are recorded. It excludes the companyâs\nconsolidation adjustment journals.\n- Multi-Ledger for Consolidation: The company doing the actual consolidation also has a\nspecial multi-ledger. This one includes all the other companiesâ consolidation adjustments\njournals (the ones excluded from their own ledgers). This allows for viewing the total impact\nof all the adjustments.\nMulti-Ledger for Consolidation: The company doing the actual consolidation also has a\nspecial multi-ledger. This one includes all the other companiesâ consolidation adjustments\njournals (the ones excluded from their own ledgers). This allows for viewing the total impact\nof all the adjustments.\nTo create a new ledger, go to Accounting ⣠Configuration ⣠Multi-Ledgers and hit the New button. Enter a name, pick the company the ledger is linked to and\nmost importantly, determine which journals are to be excluded from the ledger.\n- Multi-Company Selector: The consolidated view can be accessed using the multi-company selector. Selecting the consolidating company as the current company and making the other\ncompanies visible in the selector, all the journal items are displayed from the consolidating\ncompanyâs perspective.\nselector. Selecting the consolidating company as the current company and making the other\ncompanies visible in the selector, all the journal items are displayed from the consolidating\ncompanyâs perspective.\n- Horizontal Groups: Odooâs reporting tools allow for combining multi-ledgers and using horizontal groups to view the consolidated Balance Sheet or P&L. They also show how much each\ncompany contributes to the overall consolidated figures. Follow these steps to create an Horizontal Group : Activate the developer mode . Go to Accounting ⣠Configuration ⣠Horizontal Groups and click New . Add a Group Name and select the Reports where the horizontal group\ncan be used. In the Field column, click Add a line . In the Create rules window, add a Field and create a new Domain rule if needed. Then, click Save & Close . Important When opened, financial reports usually default to a statutory view, using the companyâs\nregular ledger (including its consolidation adjustment). To see the full consolidation picture, make sure to select the multi-ledger that includes all the consolidation adjustments.\nhorizontal groups to view the consolidated Balance Sheet or P&L. They also show how much each\ncompany contributes to the overall consolidated figures.\nFollow these steps to create an Horizontal Group :\n- Activate the developer mode .\nActivate the developer mode .\n- Go to Accounting ⣠Configuration ⣠Horizontal Groups and click New .\nGo to Accounting ⣠Configuration ⣠Horizontal Groups and click New .\n- Add a Group Name and select the Reports where the horizontal group\ncan be used.\nAdd a Group Name and select the Reports where the horizontal group\ncan be used.\n- In the Field column, click Add a line .\nIn the Field column, click Add a line .\n- In the Create rules window, add a Field and create a new Domain rule if needed. Then, click Save & Close .\nIn the Create rules window, add a Field and create a new Domain rule if needed. Then, click Save & Close .\nWhen opened, financial reports usually default to a statutory view, using the companyâs\nregular ledger (including its consolidation adjustment). To see the full consolidation picture, make sure to select the multi-ledger that includes all the consolidation adjustments.\n- Cumulative Translation Adjustments: When consolidating companies with different currencies,\nOdoo handles the translation. Equity accounts: Use the historical exchange rate. Profit & Loss (P&L) accounts: Use the average exchange rate. Balance sheet accounts (excluding equity): Use the closing exchange rate. Important The rates used are those of the company currently selected.\nCumulative Translation Adjustments: When consolidating companies with different currencies,\nOdoo handles the translation.\n- Equity accounts: Use the historical exchange rate.\nEquity accounts: Use the historical exchange rate.\n- Profit & Loss (P&L) accounts: Use the average exchange rate.\nProfit & Loss (P&L) accounts: Use the average exchange rate.\n- Balance sheet accounts (excluding equity): Use the closing exchange rate.\nBalance sheet accounts (excluding equity): Use the closing exchange rate.\nThe rates used are those of the company currently selected.\n\n## Account merging\n\nAccounts can be merged to reduce the number of accounts and standardize them across companies. This\nis optional; consolidation works without it.\nTo use the merge tool, select all the companies with an account that needs to be merged in the\ncompany selector in the top right corner of the screen.\nThen, go to Accounting ⣠Configuration ⣠Chart of Accounts and select the\naccounts to merge. Click the Actions menu and select Merge\naccounts .\nIn the Merge accounts window, enable the Group by name? option if needed and\nclick Merge .\nThe selected accounts are then merged into a single shared account, accessible by all the chosen\ncompanies, just as if the account had been directly created to be shared.\n\n## Account unmerging\n\nAccounts can also be unmerged if needed.\nNote that unmerging accounts will not unmerge the chatters of the accounts. Once merged, the\nchangesâ histories are permanently merged.\nTo unmerge accounts, select a company with a shared account in the company selector at the top\nright corner of the screen. Then, go to Accounting ⣠Configuration ⣠Chart of\nAccounts and select the account to unmerge. Click the Actions menu and\nselect Unmerge accounts .\nAn Odoo Warning confirmation pop-up window will appear, listing how the accounts will\nbe split.\nClick Unmerge . A new account linked to each company will be created for the previously\nshared account.\n\n## Import a mapping\n\nTo import an account mapping , select all the related companies in the company selector at the\ntop right corner of the screen and go to Accounting ⣠Configuration ⣠Chart of\nAccounts .\nFirst, to choose the fields to export, select the accounts, click the Actions button and select Export . Then, in the Export data window, add the Code mapping/Code , Code Mapping/Company and External ID fields using the icon and click Export . No other\nfield is required.\nSecond, rework it in a spreadsheet adding the desired code for each company on desired accounts.\nThird, to reimport the file (xlsx or csv format) in Odoo, click Import and, in the Import Chart of Accounts section, click Import CoA . In the Accounting Import Guide , drop or click Upload Data File to import the file.\nThen, click Import .\nFinally, the codes now take into account the mapping company per company.", "headings": ["Consolidation tools", "Account merging", "Account unmerging", "Import a mapping"], "doc_id": "0df49d201b9d8e4d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/get_started/journals.html", "title": "Journals", "module": "accounting", "section": "Journals", "text": "# Journals\n\nJournal entries are recorded in different journals to maintain an organized record of a\ncompanyâs financial transactions. Odoo uses six different types of journals to organize accounting\nrecords:\n- Credit Card\n- Purchase\n- Miscellaneous\nIt is possible to have multiple journals of the same type, such as two separate bank journals,\neach for a unique bank account, or two separate sales journals to track B2B versus B2C income.\nEach card on the Accounting Dashboard represents a journal. To edit the configuration of\na journal, click the (vertical ellipsis) on the journal card, then\nclick Configuration . Alternatively, go to Accounting ⣠Configuration\n⣠Journals to select and edit an existing journal or to create a new one.\nWhile different journal types have slightly different fields to configure, some fields are\nconsistent across all the journal types:\n- Short Code : Each journal must have a unique code (from 1 to 5 characters long). The\nshort code is used as the prefix for all journal entries belonging to this journal.\nShort Code : Each journal must have a unique code (from 1 to 5 characters long). The\nshort code is used as the prefix for all journal entries belonging to this journal.\n- Currency : If desired, set the currency of this journal. For bank and cash journals,\nthis is the currency of the journalâs transactions . This field is\nonly visible when multiple currencies are enabled.\nCurrency : If desired, set the currency of this journal. For bank and cash journals,\nthis is the currency of the journalâs transactions . This field is\nonly visible when multiple currencies are enabled.\nThe Advanced Settings tab contains more technical options:\n- Allowed accounts : Limit which accounts are available when recording journal entries in\nthis journal. Leave this field blank to allow all accounts.\nAllowed accounts : Limit which accounts are available when recording journal entries in\nthis journal. Leave this field blank to allow all accounts.\n- Email Alias : Set an email address to create journal entries by digitizing PDFs sent\nto this address. This is most commonly used to create customer invoices and vendor bills .\nEmail Alias : Set an email address to create journal entries by digitizing PDFs sent\nto this address. This is most commonly used to create customer invoices and vendor bills .\n- Secure Posted Entries with Hash : Restrict the alterability of this journalâs entries to comply with tax authorities in\ncertain countries.\nSecure Posted Entries with Hash : Restrict the alterability of this journalâs entries to comply with tax authorities in\ncertain countries.\nThe Secure Posted Entries with Hash option cannot be removed from a journal once the\njournal has a posted journal entry.\n- Bank and cash journals do not have the Secure Posted Entries with Hash or Email Alias fields.\nBank and cash journals do not have the Secure Posted Entries with Hash or Email Alias fields.\n- If an alias domain has not yet been configured, a link to Configure Alias Domain is displayed instead of the Email Alias field.\nIf an alias domain has not yet been configured, a link to Configure Alias Domain is displayed instead of the Email Alias field.\n\n## Bank, cash, and credit card journals\n\nBank, cash, and credit card journals share the following features:\n- Suspense Account : Transactions on this journal are posted on this\naccount until they are reconciled, at which point this account is replaced with the account the\ntransaction was reconciled against. At any moment, the suspense accountâs balance in the general\nledger shows the balance of transactions that have not yet been reconciled. Note When a bank transaction is reconciled, the journal entry is modified to replace the bank\nsuspense account with the account of the journal item it is reconciled with. This account is\nusually either: the outstanding receipts or payments account if reconciling with a registered payment; or the account receivable or payable if reconciling with an invoice or bill directly.\nSuspense Account : Transactions on this journal are posted on this\naccount until they are reconciled, at which point this account is replaced with the account the\ntransaction was reconciled against. At any moment, the suspense accountâs balance in the general\nledger shows the balance of transactions that have not yet been reconciled.\nWhen a bank transaction is reconciled, the journal entry is modified to replace the bank\nsuspense account with the account of the journal item it is reconciled with. This account is\nusually either:\n- the outstanding receipts or payments account if reconciling with a registered payment; or\nthe outstanding receipts or payments account if reconciling with a registered payment; or\n- the account receivable or payable if reconciling with an invoice or bill directly.\nthe account receivable or payable if reconciling with an invoice or bill directly.\n- Dedicated Payment Sequence : Tick this field to use separate sequences for payments\nand transactions posted on this journal. Note If the Dedicated Payment Sequence field is ticked, payments that use an outstanding account will have references that\nadd P before the journalâs short code. Otherwise, the references will begin with PAY .\nDedicated Payment Sequence : Tick this field to use separate sequences for payments\nand transactions posted on this journal.\nIf the Dedicated Payment Sequence field is ticked, payments that use an outstanding account will have references that\nadd P before the journalâs short code. Otherwise, the references will begin with PAY .\nThe Incoming Payments and Outgoing Payments tabs contain the payment\nmethods of this journal. Different payment methods are\navailable depending on the journal type. If desired, set outstanding accounts on the payment methods.\n- Bank and cash accounts\nBank and cash accounts\n- Multi-currency system\nMulti-currency system\n- Transactions\n- Bank configuration\n\n### Outstanding accounts\n\nBy default, payments in Odoo do not create journal entries, but they can be configured to create\njournal entries by using outstanding accounts on bank and cash journals.\n- An outstanding receipts account is where incoming payments are posted until they are linked\nwith incoming bank transactions.\nAn outstanding receipts account is where incoming payments are posted until they are linked\nwith incoming bank transactions.\n- An outstanding payments account is where outgoing payments are posted until they are linked\nwith outgoing bank transactions.\nAn outstanding payments account is where outgoing payments are posted until they are linked\nwith outgoing bank transactions.\nThese accounts are usually of type Current Assets and Current Liabilities .\nPayments that are registered in Odoo are posted to the outstanding receipts and outstanding payments\naccounts until they are reconciled. At any moment, the outstanding receipts accountâs balance in the\ngeneral ledger shows the balance of registered incoming payments that have not yet been reconciled,\nand the outstanding payments accountâs balance in the general ledger shows the balance of registered\noutgoing payments that have not yet been reconciled.\n\n#### Configuration\n\nTo configure outstanding accounts, go to Accounting ⣠Configuration ⣠Journals and select or create a bank or cash journal. In the Incoming Payments and Outgoing Payments tabs, set Outstanding Receipts accounts and Outstanding Payments accounts for each payment method that you want to create journal\nentries.\n- If the main bank account of the journal is added as an outstanding receipts account or\noutstanding payments account, when a payment is registered, the invoice or billâs status is\ndirectly set to Paid .\nIf the main bank account of the journal is added as an outstanding receipts account or\noutstanding payments account, when a payment is registered, the invoice or billâs status is\ndirectly set to Paid .\n- If the outstanding receipts or outstanding payments account for a payment method is left blank,\nregistering a payment with that payment method will not create any journal entry.\nIf the outstanding receipts or outstanding payments account for a payment method is left blank,\nregistering a payment with that payment method will not create any journal entry.\n\n### Bank\n\nBank journals are used to record journal entries related to bank transactions and incoming and outgoing payments . The following\nfields are specific to bank journals:\n- Bank Account : This Bank and Cash type account is the default account for\nthis bank journal.\nBank Account : This Bank and Cash type account is the default account for\nthis bank journal.\n- Account Number : The bank accountâs number is used when registering payments and is\nrequired for generating outgoing payment files, such as SEPA or NACHA . To edit the bank account details, click on the (Internal link) button next to the Account Number and update the account information accordingly.\nAccount Number : The bank accountâs number is used when registering payments and is\nrequired for generating outgoing payment files, such as SEPA or NACHA . To edit the bank account details, click on the (Internal link) button next to the Account Number and update the account information accordingly.\n- Bank : The bank name is used when registering payments and is required for generating\noutgoing payment files. To edit the bank account details, click on the (Internal link) button next to the Bank name and update the account\ninformation accordingly.\nBank : The bank name is used when registering payments and is required for generating\noutgoing payment files. To edit the bank account details, click on the (Internal link) button next to the Bank name and update the account\ninformation accordingly.\n- Bank Feeds : Define the method of creating bank transactions , whether Manual or via Online Synchronization .\nBank Feeds : Define the method of creating bank transactions , whether Manual or via Online Synchronization .\n- Split Transactions : Split collective payments for CODA files.\nSplit Transactions : Split collective payments for CODA files.\nMultiple payment methods are available for bank journals, as are configurations for generating\noutgoing payment files, such as SEPA or NACHA .\n\n### Cash\n\nCash journals are used to record journal entries related to cash transactions . The following fields are specific to cash journals:\n- Cash Account : This Bank and Cash type account is the default account for\nthis cash journal.\nCash Account : This Bank and Cash type account is the default account for\nthis cash journal.\n- Profit Account : This Income or Other Income type account is\nused to register a profit when the ending balance of a cash register is greater than expected.\nProfit Account : This Income or Other Income type account is\nused to register a profit when the ending balance of a cash register is greater than expected.\n- Loss Account : This Expenses type account is used to register a loss when\nthe ending balance of a cash register is less than expected.\nLoss Account : This Expenses type account is used to register a loss when\nthe ending balance of a cash register is less than expected.\nOnly manual payment methods are available for cash journals.\n\n### Credit card\n\nCredit card journals are used to record journal entries related to credit cards. The following\nfields are specific to credit card journals:\n- Journal Account : This Credit Card type account is the default account for\nthis credit card journal.\nJournal Account : This Credit Card type account is the default account for\nthis credit card journal.\n- Bank Feeds : Define the method of creating credit card transactions, whether manual or\nvia Online Synchronization .\nBank Feeds : Define the method of creating credit card transactions, whether manual or\nvia Online Synchronization .\nOnly manual payment methods are available for credit card journals.\n\n## Sales, purchase, and miscellaneous journals\n\n### Sales\n\nSales journals, also known as income journals, are used to record journal entries related to customer invoices . The following fields are specific to customer\ninvoice journals:\n- Default Income Account : Invoices in this journal use this Income or Other Income type account unless overwritten by another income account set on the\nproduct category, product, or invoice line itself.\nDefault Income Account : Invoices in this journal use this Income or Other Income type account unless overwritten by another income account set on the\nproduct category, product, or invoice line itself.\n- Dedicated Credit Note Sequence : Check this box to use a separate sequence for the\nreference of credit notes that increments separately from the main invoice sequence and adds an R to the reference before the journalâs short code.\nDedicated Credit Note Sequence : Check this box to use a separate sequence for the\nreference of credit notes that increments separately from the main invoice sequence and adds an R to the reference before the journalâs short code.\n`R`\n- Dedicated Debit Note Sequence : Check this box to use a separate sequence for the\nreference of credit notes that increments separately from the main invoice sequence and adds a D before the journalâs short code.\nDedicated Debit Note Sequence : Check this box to use a separate sequence for the\nreference of credit notes that increments separately from the main invoice sequence and adds a D before the journalâs short code.\n`D`\nSales journals have additional fields in the Advanced Settings tab that allow you to set\nthe default communication format that will appear on customer invoices so that the customer can\nrefer to that particular invoice when making a payment:\n- Communication Type : Choose if the format of the payment reference communicated to the\ncustomer should be based on the invoice number or the customerâs number.\nCommunication Type : Choose if the format of the payment reference communicated to the\ncustomer should be based on the invoice number or the customerâs number.\n- Communication Standard : Choose the format of the payment reference itself that is\ncommunicated to the customer.\nCommunication Standard : Choose the format of the payment reference itself that is\ncommunicated to the customer.\n\n### Purchase\n\nPurchase journals are used to record journal entries related to vendor bills . The following fields are specific to purchase journals:\n- Default Expense Account : Vendor bills in this journal use this Expense type account unless overwritten by another expense account set on the product category, product,\nor expense.\nDefault Expense Account : Vendor bills in this journal use this Expense type account unless overwritten by another expense account set on the product category, product,\nor expense.\n- Private Part Account : Select the account to be used to register the private part of\nmixed expenses.\nPrivate Part Account : Select the account to be used to register the private part of\nmixed expenses.\n- Dedicated Credit Note Sequence : Check this box to use a separate sequence for the\nreference of credit notes that increments separately from the main vendor bill sequence and adds\nan R to the reference before the journalâs short code.\nDedicated Credit Note Sequence : Check this box to use a separate sequence for the\nreference of credit notes that increments separately from the main vendor bill sequence and adds\nan R to the reference before the journalâs short code.\n`R`\n- Dedicated Debit Note Sequence : Check this box to use a separate sequence for the\nreference of credit notes that increments separately from the main invoice sequence and adds a D before the journalâs short code.\nDedicated Debit Note Sequence : Check this box to use a separate sequence for the\nreference of credit notes that increments separately from the main invoice sequence and adds a D before the journalâs short code.\n`D`\n\n### Miscellaneous\n\nMiscellaneous journals are used to record journal entries that are not related to any of the other\njournal types such as tax closing journal entries.\n- Tax return eLearning\n- Tax return (VAT declaration)\nTax return (VAT declaration)", "headings": ["Bank, cash, and credit card journals", "Outstanding accounts", "Bank", "Cash", "Credit card", "Sales, purchase, and miscellaneous journals", "Sales", "Purchase", "Miscellaneous"], "doc_id": "f8bea062cd02fe4a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/get_started/multi_currency.html", "title": "Multi-currency system", "module": "accounting", "section": "Multi-currency system", "text": "# Multi-currency system\n\nOdoo allows you to issue invoices, receive bills, and record transactions in currencies other than\nthe main currency configured for your company. You can also set up bank accounts in other currencies\nand run reports on your foreign currency activities.\n- Manage a bank account in a foreign currency\nManage a bank account in a foreign currency\n\n## Configuration\n\n### Main currency\n\nThe main currency is defined by default according to the companyâs country. You can change it by\ngoing to Accounting ⣠Configuration ⣠Settings ⣠Currencies and changing the\ncurrency in the Main Currency setting.\n\n### Enable foreign currencies\n\nGo to Accounting ⣠Configuration ⣠Currencies , and enable the currencies you\nwish to use by toggling the Active button.\n\n### Currency rates\n\n#### Manual update\n\nTo manually create and set a currency rate, go to Accounting ⣠Configuration â£\nCurrencies , click on the currency you wish to change the rate of, and under the Rates tab, click Add a line to create a new rate.\n\n#### Automatic update\n\nWhen you activate a second currency for the first time, Automatic Currency Rates appears\nunder Accounting Dashboard ⣠Configuration ⣠Settings ⣠Currencies . By\ndefault, you have to click on the Update now button ( ð ) to update the rates.\nOdoo can update the rates at regular intervals. To do so, change the Interval from Manually to Daily , Weekly , or Monthly . You can also\nselect the web service from which you want to retrieve the latest currency rates by clicking on the Service field.\n\n### Exchange difference entries\n\nOdoo automatically records exchange differences entries on dedicated accounts, in a dedicated\njournal.\nYou can define which journal and accounts to use to post exchange difference entries by\ngoing to Accounting ⣠Configuration ⣠Settings ⣠Default Accounts and editing\nthe Journal , Gain Account , and Loss Account .\nIf you receive a payment for a customer invoice one month after it was issued, the exchange rate\nhas likely changed since. Therefore, this fluctuation implies some profit or loss due to the\nexchange difference, which Odoo automatically records in the default Exchange Difference journal.\n\n### Chart of accounts\n\nEach account can have a set currency. By doing so, all moves relevant to the account are forced to\nhave that accountâs currency.\nTo do so, go to Accounting ⣠Configuration ⣠Charts of Accounts and select a\ncurrency in the field Account Currency . If left empty, all active currencies are handled\ninstead of just one.\n\n### Journals\n\nIf a currency is set on a journal , that journal only handles transactions in that currency.\nTo do so, go to Accounting ⣠Configuration ⣠Journals , open the journal you\nwant to edit, and select a currency in the field Currency .\n\n## Multi-currency accounting\n\n### Invoices, bills, and other documents\n\nFor all documents, you can select the currency and journal to use for the transaction on the\ndocument itself.\n\n### Payment registration\n\nTo register a payment in a currency other than your companyâs main currency, click on the Register Payment payment button of your document and, in the pop-up window, select a currency in the Amount field.\n\n### Bank transactions\n\nWhen creating or importing bank transactions, the amount is in the companyâs main currency. To input\na foreign currency , select a currency in the Foreign Currency . Once selected, enter\nthe Amount in your main currency for it to automatically get converted in the foreign\ncurrency in the Amount in Currency field .\nWhen reconciling, Odoo displays both the foreign currency amount and the equivalent amount in your\ncompanyâs main currency.\n\n### Exchange rate journal entries\n\nTo see exchange difference journal entries , go to Accounting Dashboard â£\nAccounting ⣠Journals: Miscellaneous .", "headings": ["Configuration", "Main currency", "Enable foreign currencies", "Currency rates", "Exchange difference entries", "Chart of accounts", "Journals", "Multi-currency accounting", "Invoices, bills, and other documents", "Payment registration", "Bank transactions", "Exchange rate journal entries"], "doc_id": "abc5ad5856495136"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/get_started/tax_units.html", "title": "Tax units", "module": "accounting", "section": "Tax units", "text": "# Tax units\n\nThis is only applicable to multi-company environments.\nA tax unit is a group of VAT-taxable enterprises that are legally independent of each other but\nare closely linked financially, organizationally, and economically and therefore considered the same\nVAT-taxable enterprise. Tax units are not mandatory, but if created, constituent companies of\nthe unit must belong to the same country , use the same currency , and one company must be\ndesignated as the representative company of the tax unit . Tax units receive a specific tax ID intended only for tax returns . Constituent companies keep their tax ID used\nfor commercial purposes .\nEnterprise A owes â¬300.000,00 of VAT taxes and enterprise B can recover â¬280.000,00 of\nVAT taxes. They form up as a tax unit so that the two amounts balance out and must conjointly\nonly pay â¬20.000,00 of VAT taxes.\n\n## Configuration\n\nTo create a tax unit , go to Accounting ⣠Configuration ⣠Tax Units , and\nclick New . Enter a name for the unit, select a Country , the Companies to incorporate in the unit, the Main Company , and the Tax ID of the constituent company of that tax unit.\n\n### Fiscal position\n\nAs transactions between constituents of the same tax unit are not subject to VAT, it is possible\nto create a tax mapping (fiscal position) to avoid the\napplication of VAT on inter-constituent transactions.\nBe sure a constituent company has been selected before, then go to Accounting â£\nConfiguration ⣠Fiscal Positions , and Create a new fiscal position . Click the Tax Mapping tab, select the Tax on Product usually applied for non-constituent transactions, and in Tax to Apply , select the 0% tax to apply for constituent transactions.\nDo the same for the Account Mapping tab if required, and repeat this process for each constituent company on your database.\nDepending on your localization package , taxes\nmay vary from the screenshot displayed.\nThen, assign the fiscal position by opening the Contacts app. Search for a constituent company, and open the contactâs card . Click the Sales & Purchase tab, and in the Fiscal Position field, input the fiscal position created for the tax unit .\nRepeat the process for each constituent company card form, on each company database.\nFiscal positions (tax and account mapping) .\n\n## Tax report\n\nThe representative company can access the aggregated tax report of the tax unit by going to Accounting ⣠Reporting ⣠Tax Report , and selecting the tax unit in Tax Unit . This report contains the aggregated transactions of all constituents and\nthe .XML export contains the name and VAT number of the main company.", "headings": ["Configuration", "Fiscal position", "Tax report"], "doc_id": "6a6148c8b36536ab"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/payments.html", "title": "Payments", "module": "accounting", "section": "Payments", "text": "# Payments\n\nIn Odoo, payments can either be automatically linked to an invoice or bill or be stand-alone records\nfor use at a later date:\n- If a payment is linked to an invoice or bill , it reduces/settles the amount due on the\ninvoice. Multiple payments on the same invoice are possible.\nIf a payment is linked to an invoice or bill , it reduces/settles the amount due on the\ninvoice. Multiple payments on the same invoice are possible.\n- If a payment is not linked to an invoice or bill , the customer has an outstanding credit with\nthe company, or the company has an outstanding debit with a vendor. Those outstanding amounts\nreduce/settle unpaid invoices/bills.\nIf a payment is not linked to an invoice or bill , the customer has an outstanding credit with\nthe company, or the company has an outstanding debit with a vendor. Those outstanding amounts\nreduce/settle unpaid invoices/bills.\n- Internal transfers\n- Bank reconciliation\n- Odoo Tutorials: Bank Configuration\nOdoo Tutorials: Bank Configuration\n\n## Payment methods\n\nSeveral payment methods are available in Odoo to allow different configurations for different types\nof payments. Examples of payment methods include manual payments (such as cash), checks , and batch payment files (such as NACHA and SEPA ). Payment methods can be\nconfigured in the Incoming Payments and Outgoing Payments tabs of a bank or\ncash journal.\nPayment methods for Point of Sale\n\n### Preferred payment method\n\nA contactâs preferred payment method can be set so that when a payment is created for that contact,\nthe payment method is automatically selected by default. Invoices and bills can be filtered by Payment Method to simplify group payments.\nTo set a preferred Payment Method for a customer or a vendor, go to Accounting ⣠Customers ⣠Customers or Accounting ⣠Vendors\n⣠Vendors and select the customer or vendor. In the Sales & Purchase tab of the\ncontact form, select the preferred Payment Method in the Sales section for\ninvoice payments or for vendor bill payments in the Purchase section.\nAccess a full list of all contacts from the Customers or Vendors list\nview by removing the Customers or Vendors filter. Alternatively, access\nthe full contact list through the Contacts app.\n\n### Checks\n\nVendor bills can be paid by check using a dedicated outgoing payment\nmethod, which allows check numbers to be tracked and checks to be printed directly from Odoo.\nFor incoming customer check payments, you can use the default Manual Payment payment\nmethod, or you can create a payment method specifically for checks to help identify such payments\nquickly. To create a Check payment method, follow these steps:\n- Go to Accounting ⣠Configuration ⣠Journals and select the Bank journal.\nGo to Accounting ⣠Configuration ⣠Journals and select the Bank journal.\n- In the Incoming Payments tab, click Add a line .\nIn the Incoming Payments tab, click Add a line .\n- As Payment Method , select Manual , then enter Check as the Name .\nAs Payment Method , select Manual , then enter Check as the Name .\n`Check`\nWhen registering a customer payment on an invoice or not related to an invoice , use the new Check payment method.\nRegistering a customer payment by check in Odoo does not move funds. Checks must be deposited in\norder to make the payment. Once deposited to your bank, the check should appear as a bank\ntransaction , at which point it can be reconciled with the registered payment.\n- For best practice, enter the check number as the Memo when registering a customer\npayment by check.\nFor best practice, enter the check number as the Memo when registering a customer\npayment by check.\n- Batch payments can simplify reconciling deposits containing multiple\nchecks.\nBatch payments can simplify reconciling deposits containing multiple\nchecks.\n\n## Registering payment from an invoice or bill\n\nTo register a payment for an invoice or a bill, follow these steps:\n- Click Pay on a customer invoice or vendor bill. In the Pay window, select\nthe Journal and the Payment Date .\nClick Pay on a customer invoice or vendor bill. In the Pay window, select\nthe Journal and the Payment Date .\n- If previously set, the contactâs preferred Payment Method is automatically selected\nby default but can be updated if necessary.\nIf previously set, the contactâs preferred Payment Method is automatically selected\nby default but can be updated if necessary.\n- If using payment terms , the Amount is\nautomatically set based on the installment amounts defined by the payment term. To pay the full\namount instead, click full amount .\nIf using payment terms , the Amount is\nautomatically set based on the installment amounts defined by the payment term. To pay the full\namount instead, click full amount .\n- If necessary, edit the Memo .\nIf necessary, edit the Memo .\n- Click Create Payment .\nClick Create Payment .\nAfter the payment is registered, the customer invoice or vendor bill is marked as In payment .\nIf no outstanding accounts are configured,\nno journal entry is created. To display more information about the payment, click the Payments smart button.\nWhen the invoice or vendor bill is reconciled with a bank\ntransaction, its status is updated to Paid .\n- If a bank transaction is reconciled in a different currency, a journal entry is\nautomatically created to post the currency exchange gains/loss amount.\nIf a bank transaction is reconciled in a different currency, a journal entry is\nautomatically created to post the currency exchange gains/loss amount.\n- When a bank transaction is reconciled with an invoice with cash-basis, a journal entry is\nautomatically created to post the cash-basis tax amount.\nWhen a bank transaction is reconciled with an invoice with cash-basis, a journal entry is\nautomatically created to post the cash-basis tax amount.\nBy default, payments in Odoo do not create journal entries, but they can easily be configured\nto create journal entries using outstanding accounts .\nRegistering a payment on a customer invoice or vendor bill generates a new journal entry and\nreduces the Amount Due based on the payment amount. The counterpart is\nreflected in an outstanding receipts or payments account. At this point, the customer invoice or vendor bill is marked as In payment . Then, when the payment is reconciled with\na bank transaction, the invoice or vendor bill status changes to Paid .\nThe information icon next to the payment line displays more\ninformation about the payment. To access additional information, such as the related journal,\nclick View .\n- Unreconciling a payment unlinks it from the invoice or bill but does not delete the\npayment.\nUnreconciling a payment unlinks it from the invoice or bill but does not delete the\npayment.\n- If a payment is (un)reconciled in a different currency, a journal entry is automatically\ncreated to post the currency exchange gains/losses (reversal) amount.\nIf a payment is (un)reconciled in a different currency, a journal entry is automatically\ncreated to post the currency exchange gains/losses (reversal) amount.\n- If a payment is (un)reconciled on an invoice with cash-basis taxes, a journal entry is\nautomatically created to post the cash-basis tax (reversal) amount.\nIf a payment is (un)reconciled on an invoice with cash-basis taxes, a journal entry is\nautomatically created to post the cash-basis tax (reversal) amount.\nIf the main bank account is set as the outstanding account on the bank journalâs payment\nmethod, registering the full payment on an invoice or bill moves the invoice/bill directly\nto the Paid status without requiring bank reconciliation.\n\n## Registering payments not tied to an invoice or bill\n\nWhen a new payment is registered via Customers / Vendors ⣠Payments , it is not\ndirectly linked to an invoice or bill.\nPayments that are not linked to an invoice or bill should not be registered without using outstanding accounts , as there is no way to\nassociate the payment with the invoice or bill since no journal entry is created for the\npayment. The amount paid or received is not reflected in the accounting and the Amount Due is not updated based on the payment amount.\nInstead, the paymentâs journal entry matches the outstanding account with the\naccount receivable or the account payable until the payment is manually matched with its\nrelated invoice or bill. Then, reconciling the payment with the\nbank transaction completes the payment workflow.\n\n### Payments matching\n\nDuring the bank reconciliation process, a remaining balance is\nidentified if the total debits and credits do not match when records are compared with bank\ntransactions. This balance must either be reconciled later or written off immediately.\n\n#### For a single invoice or bill\n\nBy default, payments in Odoo do not create journal entries. As a result, there is no payment\nto match.\nA blue banner appears when validating a new invoice/bill and an outstanding payment exists\nfor this specific customer or vendor. To match it with the invoice or bill, click Add under Outstanding Credits or Outstanding Debits .\nThe invoice or bill is then marked as In payment until the payment is reconciled with its corresponding bank transaction(s) .\n\n#### For multiple invoices or bills\n\nBy default, payments in Odoo do not create journal entries. As a result, there is no payment\nto match, but this feature can still be used to match miscellaneous journal items.\nThe Payments matching or Auto-reconcile tool allows reconciling\njournal items with each other (i.e., payments with customer invoices or vendor bills) either\nindividually or in batches. Access the Accounting Dashboard , click the ( ellipsis ) button from the Customer\nInvoices or Vendor Bills journals, and select Payments Matching .\nAlternatively, go to Accounting ⣠Accounting ⣠Reconcile .\nTo manually Reconcile journal items, select the individual items from the list\nview and click Reconcile .\nTo use the Auto-Reconcile feature, follow these steps:\n- In the Journal Items to reconcile list view, click Auto-Reconcile next to the receivable or payable account (or a specific contactâs group of journal items\nin that account).\nIn the Journal Items to reconcile list view, click Auto-Reconcile next to the receivable or payable account (or a specific contactâs group of journal items\nin that account).\n- In the Reconcile automatically window, click Reconcile .\nIn the Reconcile automatically window, click Reconcile .\nTo use the Auto-Reconcile feature, follow these steps:\n- In the Journal Items to reconcile list view, click Auto-Reconcile next to the receivable or payable account (or a specific contactâs group of journal items\nin that account).\nIn the Journal Items to reconcile list view, click Auto-Reconcile next to the receivable or payable account (or a specific contactâs group of journal items\nin that account).\n- In the Reconcile Automatically window, set the Reconcile field depending on how you want to match journal items: Perfect Match : Each debit journal item will be matched with\nthe corresponding credit journal item of the same value. Clear Accounts : All reconciled journal items will have the same\nmatching number, as they are selected from the same account.\nIn the Reconcile Automatically window, set the Reconcile field depending on how you want to match journal items:\n- Perfect Match : Each debit journal item will be matched with\nthe corresponding credit journal item of the same value.\nPerfect Match : Each debit journal item will be matched with\nthe corresponding credit journal item of the same value.\n- Clear Accounts : All reconciled journal items will have the same\nmatching number, as they are selected from the same account.\nClear Accounts : All reconciled journal items will have the same\nmatching number, as they are selected from the same account.\n- Click Reconcile .\nInvoices and bills are automatically matched to their corresponding payments and marked as In payment until they are reconciled with their\ncorresponding bank transactions .\n\n## Registering payments on multiple invoices/credit notes or bills/refunds (group payments)\n\nTo register payments on multiple invoices/credit notes or bills/refunds, follow these steps:\n- Go to Accounting ⣠Customers ⣠Invoices/Credit Notes or Accounting ⣠Vendors ⣠Bills/Refunds .\nGo to Accounting ⣠Customers ⣠Invoices/Credit Notes or Accounting ⣠Vendors ⣠Bills/Refunds .\n- In the list view, click into the search bar, group by Payment Method , select the\nrelevant invoices/credit notes or bills/refunds and click Pay .\nIn the list view, click into the search bar, group by Payment Method , select the\nrelevant invoices/credit notes or bills/refunds and click Pay .\n- In the Pay window, select the Journal and the Payment Date .\nIn the Pay window, select the Journal and the Payment Date .\n- If previously set, the contactâs preferred Payment Method is automatically selected\nby default but can be updated if necessary.\nIf previously set, the contactâs preferred Payment Method is automatically selected\nby default but can be updated if necessary.\n- If using payment terms , the Amount is\nautomatically set based on the installment amounts defined by the payment term. To pay the full\namount instead, click full amount .\nIf using payment terms , the Amount is\nautomatically set based on the installment amounts defined by the payment term. To pay the full\namount instead, click full amount .\n- To combine all payments from the same contact into a single payment, enable the Group\nPayments option, or leave it unchecked to create separate payments.\nTo combine all payments from the same contact into a single payment, enable the Group\nPayments option, or leave it unchecked to create separate payments.\n- Click Create payment .\nClick Create payment .\nThe invoices or bills are then marked as In payment until they are reconciled with the bank transactions.\nThe invoices or bills are then marked as In payment until the bank transactions\nare reconciled with the payments.\n\n## Registering a single payment for multiple customers or vendors (batch payments)\n\nBatch payments allow grouping payments from multiple customers to ease reconciliation . They are also useful when depositing checks or cash payments to the bank or for generating bank payment files such\nas SEPA or NACHA .\n\n### Payments matching\n\nThe Payments matching tool opens all unreconciled journal items and allows them to be\nprocessed individually, matching all payments and journal items. Go to the Accounting Dashboard , go to Accounting ⣠Accounting ⣠Reconcile or\nclick the ( ellipsis ) button from the Customer\nInvoices or Vendor Bills journals, and select Payments Matching .\nDuring the reconciliation , if the sum of the debits and credits does\nnot match, there is a remaining balance. This either needs to be reconciled at a later date or\nwritten off directly.\n\n## Registering a partial payment\n\nTo register a partial payment, click on Pay from the related invoice or bill.\nIn the case of a partial payment (when the Amount paid is less than the total\nremaining amount on the invoice or the bill), fill in the Amount in the Pay window.\nIn the case of a partial payment (when the Amount paid is less than the total\nremaining amount on the invoice or the bill), the Payment Difference field\ndisplays the outstanding balance. There are two options:\n- Keep open : Keep the invoice or the bill open and mark it with a Partial banner;\nKeep open : Keep the invoice or the bill open and mark it with a Partial banner;\n- Mark as fully paid : Select an account in the Post Difference In field and change the Label if needed. A journal entry will be created to balance\nthe accounts payable or receivable with the selected account.\nMark as fully paid : Select an account in the Post Difference In field and change the Label if needed. A journal entry will be created to balance\nthe accounts payable or receivable with the selected account.\n\n## Reconciling payments with bank transactions\n\nOnce a payment has been registered, the status of the invoice or bill is In\npayment . The next step is reconciling the related bank\ntransaction line with the invoice or bill to finalize the payment\nworkflow and mark the invoice or bill as Paid .\nOnce a payment has been registered, the status of the invoice or bill is In\npayment . The next step is reconciling the payment with the\nrelated bank transaction line to finalize the payment workflow and\nmark the invoice or bill as Paid .", "headings": ["Payment methods", "Preferred payment method", "Checks", "Registering payment from an invoice or bill", "Registering payments not tied to an invoice or bill", "Payments matching", "Registering payments on multiple invoices/credit notes or bills/refunds (group payments)", "Registering a single payment for multiple customers or vendors (batch payments)", "Payments matching", "Registering a partial payment", "Reconciling payments with bank transactions"], "doc_id": "633d5a593fb4002e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/payments/batch.html", "title": "Batch payments", "module": "accounting", "section": "Batch payments", "text": "# Batch payments\n\nBatch payments allow grouping payments from multiple customers or vendors into a single batch and\ngenerating a detailed deposit slip or payment file with a batch reference. This reference can be\nused during reconciliation to match bank transactions with the\ncorresponding payments. This feature is particularly useful for submitting SEPA Direct Debit\npayments , depositing cash payments or checks , or\ngenerating outgoing payment files, such as SEPA or NACHA .\n\n## Configuration\n\nTo enable batch payments, go to Accounting ⣠Configuration ⣠Settings , scroll\ndown to the Customer Payments section, and enable Batch Payments .\n\n## Batch creation\n\nTo create a batch payment, follow these steps:\n- Make sure all payments to be included in the batch have been registered .\nMake sure all payments to be included in the batch have been registered .\n- Go to Accounting ⣠Customers ⣠Payments .\nGo to Accounting ⣠Customers ⣠Payments .\n- Select the payments to include in the batch. Note All payments in the batch must use the same payment method. If needed, payments can be grouped\nusing the Payment Method Line .\nSelect the payments to include in the batch.\nAll payments in the batch must use the same payment method. If needed, payments can be grouped\nusing the Payment Method Line .\n- Click Create batch or click Actions and select Create batch payment .\nClick Create batch or click Actions and select Create batch payment .\n- In the batch payment form, review the selected payments. If any individual payments were missed,\nclick Add a line and select the missing payments to be included in the batch.\nIn the batch payment form, review the selected payments. If any individual payments were missed,\nclick Add a line and select the missing payments to be included in the batch.\n- Once all relevant payments are included, click Validate to finalize the batch.\nOnce all relevant payments are included, click Validate to finalize the batch.\nOnce validated, no additional payments can be added to a batch.\n- Click Print to download a list of the included payments.\nClick Print to download a list of the included payments.\n- To view existing batch payments, go to Accounting ⣠Customers ⣠Batch\nPayments .\nTo view existing batch payments, go to Accounting ⣠Customers ⣠Batch\nPayments .\n\n### Bank reconciliation\n\nOnce the bank transactions have been created in your database, you can reconcile them with the batch payment .\n- Payments\n- SEPA Direct Debit (SDD) customer payments\nSEPA Direct Debit (SDD) customer payments", "headings": ["Configuration", "Batch creation", "Bank reconciliation"], "doc_id": "e799e636674835a1"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/payments/batch_sdd.html", "title": "SEPA Direct Debit (SDD) customer payments", "module": "accounting", "section": "SEPA Direct Debit (SDD) customer payments", "text": "# SEPA Direct Debit (SDD) customer payments\n\nSEPA (Single Euro Payments Area) is a payment-integration initiative of the European Union that\nfacilitates standardized and simplified electronic payments in euros across participating countries.\nWith SEPA Direct Debit (SDD), customers sign a mandate that authorizes you to collect future\npayments from their bank accounts. This is particularly useful for recurring payments based on a subscription .\nYou can record customer SDD mandates in Odoo and generate XML files listing payments to be\ncollected with the mandates. Uploading these files to your bank instructs them to collect these payments from your customers.\n- SDD is supported by all SEPA countries, which includes the 27 member states of the European\nUnion as well as additional countries.\nSDD is supported by all SEPA countries, which includes the 27 member states of the European\nUnion as well as additional countries.\n- List of all SEPA countries .\nList of all SEPA countries .\n\n## Configuration\n\n### Creditor identifier\n\nTo enable SDD for customer payments, go to Accounting ⣠Configuration â£\nSettings , scroll to the Customer Payments section, enable SEPA Direct Debit\n(SDD) , and click Save . Then, scroll to the Customer Payments section again,\nset the companyâs Creditor Identifier , and click Save .\nThe creditor identifier is provided by your bank or the authority responsible for delivering\nthem in your country. For testing purposes, you can use the test creditor identifier DE98ZZZ09999999999 .\n`DE98ZZZ09999999999`\n\n### PAIN file version\n\nBy default, the SEPA-compliant XML files generated by Odoo\nuse the SDD PAIN.008.001.02 format. If your bank requires the updated 2023\nversion, go to Accounting ⣠Configuration ⣠Journals and select the Bank journal. Then, in the Incoming Payments tab, set the SEPA\nPain version field to Updated 2023 (Pain 008.001.08) .\nSEPA Direct Debit Core Customer-to-PSP Implementation Guidelines .\n\n## SEPA Direct Debit Mandates\n\nAn SDD mandate is a legal document authorizing a company to debit funds from a customerâs bank\naccount. It includes key information, such as the customerâs name and IBAN, the mandateâs start\nand end date, and the mandateâs unique identifier. The mandate form must be filled in and signed by\nthe customer.\n\n### Creating mandates\n\nTo create an SDD mandate:\n- Go to Accounting ⣠Customers ⣠Direct Debit Mandates .\nGo to Accounting ⣠Customers ⣠Direct Debit Mandates .\n- Click New and fill out the fields.\nClick New and fill out the fields.\n- Click Send & Print , optionally edit the email, then click Send & Print to email the mandate form to the customer for signature.\nClick Send & Print , optionally edit the email, then click Send & Print to email the mandate form to the customer for signature.\n- Click Validate to activate the mandate.\nClick Validate to activate the mandate.\nA valid IBAN must be defined in the Account Number field of the bank journal used to receive SDD payments for the mandate.\n- To print the mandate form after the mandate has been validated, click the ( gear ) icon, then select Mandate form .\nTo print the mandate form after the mandate has been validated, click the ( gear ) icon, then select Mandate form .\n- The SDD Scheme depends on the type of customer: Select CORE for B2C\ncustomers and B2B for B2B customers.\nThe SDD Scheme depends on the type of customer: Select CORE for B2C\ncustomers and B2B for B2B customers.\n- SDD mandates are created automatically for online payments made with SDD .\nSDD mandates are created automatically for online payments made with SDD .\nOnce an SDD mandate is active, subsequent SDD payments can be generated via Odoo and uploaded to your online banking interface . Customers with an\nactive SDD mandate can also use this payment method for online purchases .\n\n### Closing or revoking a mandate\n\nSDD mandates are closed automatically after their End Date . If this field is\nleft empty, the mandate remains active until it is closed or revoked. To close or revoke a mandate,\ngo to Accounting ⣠Customers ⣠Direct Debit Mandates , select the relevant\nmandate, and click Close or Revoke .\nClosing a mandate updates the mandateâs end date to the current day. Invoices issued after the\npresent day will not be processed with an SDD payment. Revoking a mandate disables the\nmandate immediately. No SDD payment can be registered anymore, regardless of the invoiceâs\ndate. However, payments that have already been registered are still included in the next SDD\nXML file .\n- Mandates are automatically closed 36 months after the date of the last collection.\nMandates are automatically closed 36 months after the date of the last collection.\n- Closed or revoked mandates cannot be reactivated.\nClosed or revoked mandates cannot be reactivated.\n\n## ProcessingSDDpayments\n\nAll registered SDD payments can be processed at once by uploading an XML file containing a batch\nof all posted SDD payments to your online banking interface. To do so, follow these steps:\n- Create a batch payment and include the SDD payments to\ncollect. Tip You can filter payments by SDD scheme using the SDD CORE and SDD B2B filters.\nCreate a batch payment and include the SDD payments to\ncollect.\nYou can filter payments by SDD scheme using the SDD CORE and SDD B2B filters.\n- Validate the batch payment. The XML file is generated automatically and available\nfor download in the chatter.\nValidate the batch payment. The XML file is generated automatically and available\nfor download in the chatter.\n- Download the XML file and upload it to your online banking interface to process the payments.\nDownload the XML file and upload it to your online banking interface to process the payments.\n- Once the SDD batch payment has been received, reconcile the transaction with the batch payment to mark the related invoices as Paid .\nOnce the SDD batch payment has been received, reconcile the transaction with the batch payment to mark the related invoices as Paid .\n- To view the payments and invoices linked to a specific SDD mandate, click the Collections and Invoices Paid smart button on the Direct Debit\nMandate form.\nTo view the payments and invoices linked to a specific SDD mandate, click the Collections and Invoices Paid smart button on the Direct Debit\nMandate form.\n- Click Re-generate Export file in the batch payment form to regenerate the XML file.\nClick Re-generate Export file in the batch payment form to regenerate the XML file.\n- Batch payments\n- SEPA Direct Debit for online payments\nSEPA Direct Debit for online payments\n- SEPA guidelines\n\n## SDDrejections\n\nSDD rejections can occur for several reasons, the most common being insufficient funds in the\ncustomerâs account. With SDD , the recipientâs account is credited before the funds are actually\ndebited from the customerâs account. As a result, if an SDD payment is later rejected, the bank\nautomatically withdraws the amount of that payment from the recipientâs account, and a new\ntransaction for a negative amount is created to reflect the SDD rejection.\nSDD rejections are handled differently depending on whether outstanding accounts are configured or not for the SDD payment method.\nThe following procedures assume that the incoming SDD paymentâs bank transaction has already\nbeen reconciled with the payments or invoices.\nIf no outstanding accounts are configured\nfor the SDD payment method, no journal entry is created. In this case, you must cancel and\nunreconcile the payment.\n- Access the invoice linked to the rejected SDD payment.\nAccess the invoice linked to the rejected SDD payment.\n- Click the Payments smart button to access the payment associated with the\ninvoice.\nClick the Payments smart button to access the payment associated with the\ninvoice.\n- Click Reset to draft , then Cancel .\nClick Reset to draft , then Cancel .\n- Go back to the invoice and click the (information) icon\nin the footer of the Invoice Lines tab, then click Unreconcile .\nGo back to the invoice and click the (information) icon\nin the footer of the Invoice Lines tab, then click Unreconcile .\n- Access the bank journalâs reconciliation view and reconcile the transaction created for the SDD rejection with the debit (negative journal item) to the account receivable on the\nincoming bank transaction.\nAccess the bank journalâs reconciliation view and reconcile the transaction created for the SDD rejection with the debit (negative journal item) to the account receivable on the\nincoming bank transaction.\nIf an outstanding account is set on the SDD payment method, SDD payments create journal entries. If an SDD payment is rejected,\nyou must reverse the journal entry associated with the rejected payment and reconcile the\nreversal of the journal entry with the transaction for the SDD rejection. To do so, follow\nthese steps:\n- Access the invoice linked to the rejected SDD payment.\nAccess the invoice linked to the rejected SDD payment.\n- Click the (information) icon in the footer of the Invoice Lines tab, then click View to access the payment associated\nwith the invoice.\nClick the (information) icon in the footer of the Invoice Lines tab, then click View to access the payment associated\nwith the invoice.\n- Click the Journal entry smart button to access the related journal entry.\nClick the Journal entry smart button to access the related journal entry.\n- Click Reverse entry , optionally edit the fields in the popup, then click Reverse . A reversal entry is created with a Reference mentioning\nthe initial journal entry. As a result, the invoice is marked as Not paid .\nClick Reverse entry , optionally edit the fields in the popup, then click Reverse . A reversal entry is created with a Reference mentioning\nthe initial journal entry. As a result, the invoice is marked as Not paid .\n- Access the bank journalâs reconciliation view and reconcile the transaction created for the SDD rejection with the reversal of the entry related to the payment.\nAccess the bank journalâs reconciliation view and reconcile the transaction created for the SDD rejection with the reversal of the entry related to the payment.", "headings": ["Configuration", "Creditor identifier", "PAIN file version", "SEPA Direct Debit Mandates", "Creating mandates", "Closing or revoking a mandate", "ProcessingSDDpayments", "SDDrejections"], "doc_id": "7ec5bf228f620088"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/payments/follow_up.html", "title": "Follow-up on invoices", "module": "accounting", "section": "Follow-up on invoices", "text": "# Follow-up on invoices\n\nFollow-up messages can be sent to customers when payments are overdue. Odoo helps identify late\npayments and allows scheduling and sending the appropriate reminders using follow-up actions according to the number of overdue days. Follow-ups can be sent through different methods, including\nemail, post, or SMS.\n- Odoo Tutorials: Payment Follow-up\nOdoo Tutorials: Payment Follow-up\n- Payment terms and installment plans\nPayment terms and installment plans\n\n## Configuration\n\nTo configure Follow-up actions , go to Accounting ⣠Configuration\n⣠Follow-up Levels . In the Follow-up Levels list view, several follow-up levels and\nactions are configured by default.\nTo modify a follow-up level, click on the record. From the form view, edit the Description or adjust the number of days before a reminder is sent. In the Notification tab, select Actions such as Send Email , Send\na Letter , and Send SMS Message .\nSending letters or SMS messages in Odoo requires In-App Purchase (IAP) credit or tokens.\nTo use a pre-filled template when sending an email or letter, select a Content Template .\nTo modify it, click the (internal link arrow) icon next to the Content Template field. If enabled, SMS messages use a specific Sms Template field that can be modified by clicking the (internal link arrow) icon.\nOther options can be enabled in the Options section within the specific follow-up level:\n- Automate the reminder with the Automatic option.\nAutomate the reminder with the Automatic option.\n- Attach Invoices that are overdue in the reminder.\nAttach Invoices that are overdue in the reminder.\n- Add followers on the related customer to receive notifications about any email reply\nmade on the reminderâs email.\nAdd followers on the related customer to receive notifications about any email reply\nmade on the reminderâs email.\nIn the Activity tab, enable the option to automatically schedule activities when the follow-up level is triggered. Select the Responsible user and the Activity Type , and enter a Summary .\nTo add a new Follow-up Level , click New and fill in the fields.\nSet a negative number of days to send a reminder before the invoice due date.\n\n## Invoice follow-ups\n\nReconcile all bank transactions before starting the follow-up process to avoid sending reminders\nfor invoices that have already been paid.\nTo view all overdue invoices, go to Accounting ⣠Customers ⣠Invoices . In the Invoices list view, click into the search bar and filter on Overdue .\n\n### Follow-ups for one customer\n\nFor a detailed overview of a customerâs invoice follow-up status, go to Accounting\n⣠Customers ⣠Customers . Open the customerâs form and click the Accounting tab. In\nthe Invoice follow-ups section, click on the different levels to view the Follow-up Status of each level. If actions are needed, click Overdue\nInvoices to have a detailed list of the overdue invoices.\nAdditional options can be set:\n- Reminders : These are either Automatic or Manual .\nReminders : These are either Automatic or Manual .\n- Next reminder : The date by which the next follow-up actions should be taken is\nautomatically set when follow-ups are processed, but can be manually adjusted if needed.\nNext reminder : The date by which the next follow-up actions should be taken is\nautomatically set when follow-ups are processed, but can be manually adjusted if needed.\n- Responsible : The user who handles the follow-up actions.\nResponsible : The user who handles the follow-up actions.\nTo manually send a payment reminder to a customer, click Send and select the actions in\nthe Send and Print window:\n- By post\nEnable the Attach Invoices option and change the Content Template if needed.\nThen, click Send or Send & Print to send the follow-up report .\nIn-app purchases (IAP)\n- The contact information on the invoice or the contact form is used to send the reminder.\nThe contact information on the invoice or the contact form is used to send the reminder.\n- The chatter keeps a full record of all follow-up actions.\nThe chatter keeps a full record of all follow-up actions.\n\n### Follow-ups for all customers due for action\n\nAfter setting up the additional follow-up options, review which customers have\noverdue invoices or require follow-up. To do so, go to Accounting ⣠Customers â£\nCustomers . In the Customers kanban view, click the search bar and filter by Overdue Invoices or Requires Follow-up .\nTo take follow-up actions for all relevant customers, switch to the list view and select the\ncustomers requiring follow-up. Then, click (Actions) and select Process Follow-ups to send them the follow-up report .\n\n## Reports\n\n### Customer statement\n\nTo get a comprehensive overview of a customerâs account status, click the Customer\nStatement smart button on the customerâs form. This statement corresponds to the Partner\nLedger reportâs portion specific to that customer.\nTo send it to the customer, click Send , change the Email Template if needed,\nand click Print & Send .\nTo view the customer statements for multiple customers at once, select the customers from the Customers list view, click (Actions) , and select Open Customer Statements .\nClick PDF or XLSX to generate a PDF or XLSX file, respectively.\n\n### Follow-up report\n\nTo get a complete overview of a customerâs due invoices, separating those that are due from those\nthat are overdue, click the Customer Statement smart button on the customerâs form. Then, click Report: Customer\nStatement and select Follow-Up Report .\nTo view the follow-up report for all customers at once, go to Accounting â£\nReporting ⣠Partner Ledger . Then, click Report: and select Follow-Up Report .\nClick PDF or XLSX to generate a PDF or XLSX file, respectively.", "headings": ["Configuration", "Invoice follow-ups", "Follow-ups for one customer", "Follow-ups for all customers due for action", "Reports", "Customer statement", "Follow-up report"], "doc_id": "c89174c0a62d59c9"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/payments/forecast.html", "title": "Forecast future bills to pay", "module": "accounting", "section": "Forecast future bills to pay", "text": "# Forecast future bills to pay\n\nIn Odoo, you can manage payments by setting automatic Payments Terms and follow-ups .\n\n## Configuration: payment terms\n\nIn order to track vendor conditions, we use Payment Terms in Odoo. They allow keeping track of\ndue dates on invoices. Examples of Payment Terms are:\n- 50% within 30 days\n- 50% within 45 days\nTo create them, go to Accounting ⣠Configuration ⣠Invoicing: Payment Terms and\nclick on Create to add new terms or click existing ones to modify them.\nOdoo Tutorials: Payment Terms\nOnce Payment Terms are defined, you can assign them to your vendor by default. To do so, go to Vendors ⣠Vendors , select a vendor, click the Sales & Purchase tab,\nand select a specific Payment Term . This way, every time you purchase from this vendor, Odoo\nautomatically proposes the chosen Payment Term.\nIf you do not set a specific Payment Term on a vendor, you can still set one on the vendor bill.\n\n## Forecast bills to pay with the aged payable report\n\nTo track amounts to be paid to the vendors, use the Aged Payable report. To access it, go to Accounting ⣠Reporting ⣠Partner Reports: Aged Payable . This report gives you a\nsummary per vendor of the amounts to pay, compared to their due date (the due date being computed on\neach bill using the terms). This report tells you how much you will have to pay within the following\nmonths.\n\n## Select bills to pay\n\nYou can get a list of all your vendor bills by going to Vendors ⣠Bills . To view\nonly the bills that you need to pay, click Filters ⣠Bills to Pay . To view only\noverdue payments, select the Overdue filter instead.\nYou can also group bills by their due date by clicking Group By ⣠Due Date and\nselecting a time period.", "headings": ["Configuration: payment terms", "Forecast bills to pay with the aged payable report", "Select bills to pay"], "doc_id": "30908e8784e7b5e2"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/payments/online.html", "title": "Online payments", "module": "accounting", "section": "Online payments", "text": "# Online payments\n\nTo make it more convenient for your customers to pay the invoices you issue, you can activate the Invoice Online Payment feature, which adds a Pay Now button on their Customer Portal . This\nallows your customers to see their invoices online and pay directly with their favorite payment\nmethod, making the payment process much easier.\n\n## Configuration\n\nMake sure your payment providers are correctly configured .\nBy default, â Wire Transfer â is the\nonly payment provider activated, but you still have to fill out the payment details.\nTo activate the Invoice Online Payment, go to Accounting ⣠Configuration â£\nSettings ⣠Customer Payments , enable Invoice Online Payment , and click on Save .\n\n## Customer Portal\n\nAfter issuing the invoice, click on Send and send the invoice by email to the customer.\nThey will receive an email with a link that redirects them to the invoice on their Customer\nPortal .\nThey can choose which Payment Provider to use by clicking on Pay Now .\n- Online payments", "headings": ["Configuration", "Customer Portal"], "doc_id": "8c2baf5da7900333"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/payments/pay_checks.html", "title": "Pay by checks", "module": "accounting", "section": "Pay by checks", "text": "# Pay by checks\n\nOnce you decide to pay a supplier bill, you can select to pay by check. You can then print all the\npayments registered by check. Finally, the bank reconciliation process will match the checks you\nsent to suppliers with actual bank statements.\n\n## Configuration\n\n### Activate checks payment methods\n\nTo activate the checks payment method, go to Accounting ⣠Configuration â£\nSettings , and scroll down to the Vendor Payments section. There, you can activate the\npayment method as well as set up the Check Layout .\n- Once the Checks setting is activated, the Checks payment method is\nautomatically set up in the Outgoing Payments tabs of bank journals.\nOnce the Checks setting is activated, the Checks payment method is\nautomatically set up in the Outgoing Payments tabs of bank journals.\n- Some countries require specific modules to print checks; such modules may be installed by\ndefault. For instance, the U.S. Checks Layout module is required to print U.S.\nchecks.\nSome countries require specific modules to print checks; such modules may be installed by\ndefault. For instance, the U.S. Checks Layout module is required to print U.S.\nchecks.\n\n## Compatible check stationery for printing checks\n\n### United States\n\nFor the United States, Odoo supports by default the check formats of:\n- Quickbooks & Quicken : check on top, stubs in the middle and bottom;\nQuickbooks & Quicken : check on top, stubs in the middle and bottom;\n- Peachtree : check in the middle, stubs on top and bottom;\nPeachtree : check in the middle, stubs on top and bottom;\n- ADP : check in the bottom, and stubs on the top.\nADP : check in the bottom, and stubs on the top.\n\n## Pay a supplier bill with a check\n\nPaying a supplier with a check is done in three steps:\n- registering a payment\nregistering a payment\n- printing checks in batch for all registered payments\nprinting checks in batch for all registered payments\n- reconciling bank statements\nreconciling bank statements\n\n### Register a payment by check\n\nTo register a payment, open any supplier bill from the menu Purchases ⣠Vendor\nBills .\nOnce the supplier bill is validated, you can register a payment. Set the Payment Method to Checks and validate the payment.\n\n### Print checks\n\nOn your Accounting Dashboard in the Bank Journal, you can see the\nnumber of checks registered. By clicking on Checks to print you have got the possibility\nto print the reconciled checks.\nTo print all checks in batch, select all payments from the list view and click on Print .", "headings": ["Configuration", "Activate checks payment methods", "Compatible check stationery for printing checks", "United States", "Pay a supplier bill with a check", "Register a payment by check", "Print checks"], "doc_id": "1fed255f0908941b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/payments/pay_sepa.html", "title": "Pay with SEPA", "module": "accounting", "section": "Pay with SEPA", "text": "# Pay with SEPA\n\nSEPA, the Single Euro Payments Area, is a payment-integration initiative of the European Union to\nsimplify bank transfers denominated in euros. SEPA allows you to send payment orders to your\nbank to automate bank wire transfers.\nSEPA is supported by the banks of the 27 EU member states, as well as:\n- Iceland;\n- Liechtenstein;\n- Norway;\n- Switzerland.\nNon-EEA SEPA countries:\n- Andorra;\n- Monaco;\n- San Marino;\n- United Kingdom;\n- Vatican City State.\n- Saint-Pierre-et-Miquelon;\nSaint-Pierre-et-Miquelon;\n- Guernsey;\n- Jersey;\n- Isle of Man.\nWhen paying a bill in Odoo, you can select SEPA mandates as a payment option. At the end of the day,\nyou can generate the SEPA file containing all bank wire transfers and upload it to your online\nbanking interface to process the payments.\nBy default, the file follows the SEPA Credit Transfer âpain.001.001.03â specifications. This is\na well-defined standard among banks. However, for Swiss and German companies, other formats are used âpain.001.001.03.ch.02â for Switzerland and âpain.001.003.03â for Germany.\nOnce the payments are processed by your bank, you can directly import the account statement in\nOdoo. The bank reconciliation process will seamlessly match the SEPA orders you sent to your bank\nwith actual bank statements.\n\n## Configuration\n\n### Activate SEPA Credit Transfer (SCT)\n\nTo pay suppliers with SEPA, you must activate the SEPA Credit Transfer setting. To do so, go to Accounting ⣠Configuration ⣠Settings ⣠Vendor Payments: SEPA Credit Transfer\n(SCT) . By activating the setting and filling out your company data, you will be able to use the\nSCT option when paying your vendor.\nAccording to the localization package installed, the SEPA Direct Debit and SEPA Credit\nTransfer modules may be installed by default. If not, they need to be installed .\n\n### Activate SEPA payment methods on banks\n\nFrom the accounting dashboard, click on the drop-down menu ( â® ) on your bank journal and\nselect Configuration . Click the Outgoing Payments tab, and, if not already\npresent, add SEPA Credit Transfer under Payment Method .\nMake sure to specify the IBAN account number (domestic account numbers do not work with SEPA) and\nthe BIC (bank identifier code) in the Journal Entries tab.\n\n### Registering payments\n\nYou can register any vendor payments made with SEPA. To do so, go to Accounting â£\nVendors ⣠Payments . When creating your payment, select SEPA Credit Transfer as the Payment Method .\nThe first time you pay a vendor with SEPA, you have to fill in the Recipient Bank\nAccount field with the bank name, IBAN, and BIC (Bank Identifier Code). Odoo automatically verifies\nif the IBAN format is respected.\nFor future payments to this vendor, Odoo will automatically suggest you the bank account, but it\nremains possible to select a new one.\nOnce your payment is registered, do not forget to confirm it. You can also pay vendor bills from the\nbill directly using the Register Payment button at the top of a vendor bill.\nThe form is the same, but the payment is directly linked to the bill and will be automatically\nreconciled with it.", "headings": ["Configuration", "Activate SEPA Credit Transfer (SCT)", "Activate SEPA payment methods on banks", "Registering payments"], "doc_id": "8ce542f9904f1774"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/payments/trusted_accounts.html", "title": "Trusted accounts (send money)", "module": "accounting", "section": "Trusted accounts (send money)", "text": "# Trusted accounts (send money)\n\nTo protect users from sending money to scammers, vendor bank account numbers must be marked as\ntrusted before you can use them to make an outgoing payment.\nTo do so, open the vendor bank account and click on the Send Money toggle switch button.\nAll accounts are initially marked as untrusted.\n\n## Phishing attacks\n\nA phishing attack is an online scam designed to trick individuals or companies into giving away\nsensitive information or money by sending out fraudulent communication. Fraudsters pretend to be\nlegitimate companies and may use partial information to give credibility to their requests.\nThere are several types of phishing attacks, including invoice fraud . In this case, the\nfraudster pretends to be a genuine supplier following up on unpaid bills or sending a new invoice,\nbut with different payment information than usual and with fake contact details.\nTo protect yourself from these types of phishing attacks, remain vigilant when you receive\nunexpected invoices or payment requests.\nIn case of doubt, we recommend contacting the vendor by phone . Make sure to call an official\nphone number by searching yourself, as the URLs, email addresses, and phone numbers written in\nthe communication you received may be fake.\n\n### Elements to check\n\nThere are several elements you can check by yourself when you receive an outgoing payment request to\na new account:\nFraudulent emails and invoices often use a different communication style, such as different\nwording , and may include spelling and grammatical mistakes . Examine and compare them\nwith previous ones that you know to be authentic (e.g., payment instructions, language, company\nlogo, etc.).*\nInvoice frauds often use urgent or threatening language and change the payment deadline .\nCheck if you really received a late payment reminder previously.\nA company is unlikely to replace a bank account with a money transfer service .\nDouble-check the email address domain ( example@domain.com ). However, be wary that fraudsters\ncan make their email addresses look genuine or even hack email addresses from your vendorâs\nemployees or even someone within your own organization.\n`example@domain.com`\nHover over the links in your email and check that the URLs they redirect to are genuine. Your\ninternet browser usually displays the linkâs target at the bottom left of the window.", "headings": ["Phishing attacks", "Elements to check"], "doc_id": "af3addc5d39836ce"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/reporting.html", "title": "Reporting", "module": "accounting", "section": "Reporting", "text": "# Reporting\n\nOdoo includes generic and dynamic reports available for all countries, regardless of the localization package installed:\n- Balance Sheet\n- Profit and Loss\n- Executive Summary\n- General Ledger\n- Aged Receivable\n- Aged Payable\n- Cash Flow Statement\n- Tax Report\nTo expand the lines of a report and view its details, click the ( right arrow ) on the left. Then click the ( down arrow )\nto the right of the account, journal entry, payment, invoice, etc. to Annotate and view\nthe details.\nTo export reports in PDF or XLSX format, click PDF at the top or click the ( down arrow ) icon next to the PDF button and\nselect XLSX .\nTo compare values across periods, click the Comparison menu and select the periods you\nwant to compare.\n\n## Balance Sheet\n\nThe Balance Sheet shows a snapshot of your organizationâs assets, liabilities, and\nequity at a particular date.\n\n## Profit and Loss\n\nThe Profit and Loss report (or Income Statement ) shows your companyâs net income by\ndeducting expenses from revenue for the reporting period.\n\n## Executive Summary\n\nThe Executive Summary provides an overview of all the important figures for overseeing\nyour companyâs performance.\nIt includes the following items:\n- Performance : Gross profit margin : The contribution of all sales your business makes minus any direct costs needed to\nmake those sales (labor, materials, etc.). Net profit margin : The contribution of all sales made by your business minus any direct costs needed to\nmake those sales and fixed overheads your company has (electricity, rent, taxes\nto be paid as a result of those sales, etc.). Return on investment (per annum) : The ratio of the net profit to the amount of assets the company used to make those profits.\n- Gross profit margin : The contribution of all sales your business makes minus any direct costs needed to\nmake those sales (labor, materials, etc.).\nThe contribution of all sales your business makes minus any direct costs needed to\nmake those sales (labor, materials, etc.).\n- Net profit margin : The contribution of all sales made by your business minus any direct costs needed to\nmake those sales and fixed overheads your company has (electricity, rent, taxes\nto be paid as a result of those sales, etc.).\nThe contribution of all sales made by your business minus any direct costs needed to\nmake those sales and fixed overheads your company has (electricity, rent, taxes\nto be paid as a result of those sales, etc.).\n- Return on investment (per annum) : The ratio of the net profit to the amount of assets the company used to make those profits.\nThe ratio of the net profit to the amount of assets the company used to make those profits.\n- Position : Average debtors days : The average number of days it takes your customers to (fully) pay you across all your\ncustomer invoices. Average creditors days : The average number of days it takes you to (fully) pay your suppliers across all your bills. Short-term cash forecast : How much cash is expected in or out of your business in the next month, i.e., the balance of\nyour Sales account for the month minus the balance of your Purchases account for\nthe month. Current assets to liabilities : Also referred to as the current ratio , this is the ratio of current assets ( assets\nthat could be turned into cash within a year ) to the current liabilities ( liabilities\nthat will be due in the next year ). It is typically used to measure a companyâs ability to\nservice its debt.\n- Average debtors days : The average number of days it takes your customers to (fully) pay you across all your\ncustomer invoices.\nThe average number of days it takes your customers to (fully) pay you across all your\ncustomer invoices.\n- Average creditors days : The average number of days it takes you to (fully) pay your suppliers across all your bills.\nThe average number of days it takes you to (fully) pay your suppliers across all your bills.\n- Short-term cash forecast : How much cash is expected in or out of your business in the next month, i.e., the balance of\nyour Sales account for the month minus the balance of your Purchases account for\nthe month.\nHow much cash is expected in or out of your business in the next month, i.e., the balance of\nyour Sales account for the month minus the balance of your Purchases account for\nthe month.\n- Current assets to liabilities : Also referred to as the current ratio , this is the ratio of current assets ( assets\nthat could be turned into cash within a year ) to the current liabilities ( liabilities\nthat will be due in the next year ). It is typically used to measure a companyâs ability to\nservice its debt.\nAlso referred to as the current ratio , this is the ratio of current assets ( assets\nthat could be turned into cash within a year ) to the current liabilities ( liabilities\nthat will be due in the next year ). It is typically used to measure a companyâs ability to\nservice its debt.\n\n## General Ledger\n\nThe General Ledger report shows all transactions from all accounts for a selected date\nrange. The initial summary report shows the totals for each account. To expand an account and view\nits details, click the ( right arrow ) on the left.\nThis report is useful for reviewing each transaction that occurred during a specific period.\n\n## Aged Receivable\n\nThe Aged Receivable report shows the sales invoices awaiting payment during a selected\nmonth and several months prior.\n\n## Aged Payable\n\nThe Aged Payable report displays information on individual bills, credit notes, and\noverpayments you owe and how long these have gone unpaid.\n\n## Cash Flow Statement\n\nThe Cash Flow Statement shows how changes in balance sheet accounts and income affect\ncash and cash equivalents and breaks the analysis down to operating, investing, and financing\nactivities.\n\n## Tax Report\n\nThe Tax Report shows the NET and TAX amounts for all the\ntaxes grouped by type ( Sales / Purchases ).", "headings": ["Balance Sheet", "Profit and Loss", "Executive Summary", "General Ledger", "Aged Receivable", "Aged Payable", "Cash Flow Statement", "Tax Report"], "doc_id": "83414f875d133c93"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/reporting/analytic_accounting.html", "title": "Analytic accounting", "module": "accounting", "section": "Analytic accounting", "text": "# Analytic accounting\n\nAnalytic accounting helps track costs and revenues and analyze a projectâs or serviceâs\nprofitability. When creating journal entries, costs can be distributed across one or more analytic accounts.\nTo activate this feature, go to Accounting ⣠Configuration ⣠Settings and\nenable Analytic Accounting in the Analytics section.\n\n## Analytic accounts\n\nAnalytic accounts give an overview of costs and revenue.\nTo access analytic accounts, go to Accounting ⣠Configuration ⣠Analytic\nAccounts . To create a new analytic account, click New and fill in the following\ninformation:\n- Analytic Account : Assign the name of the analytic account.\nAnalytic Account : Assign the name of the analytic account.\n- Customer : Select the customer linked to the project, if applicable.\nCustomer : Select the customer linked to the project, if applicable.\n- Reference : Include a reference to make the account easier to find if needed.\nReference : Include a reference to make the account easier to find if needed.\n- Plan : Link the Analytic Account to an analytic plan .\nPlan : Link the Analytic Account to an analytic plan .\n- Company : In a multi-company environment, select the company using the analytic account. To make the analytic account\naccessible to all companies, leave the field empty.\nCompany : In a multi-company environment, select the company using the analytic account. To make the analytic account\naccessible to all companies, leave the field empty.\n- Currency : Update the currency of the analytic account if needed.\nCurrency : Update the currency of the analytic account if needed.\nThen, the budget information can be filled in.\n\n## Analytic plans\n\nAnalytic plans group analytic accounts ,\nallowing the company to analyze its accounting, such as tracking costs and revenues by project or\ndepartment.\nTo access analytic plans, go to Accounting ⣠Configuration ⣠Analytic Plans .\nClick New to create a new plan, add a name, and fill in the following information:\n- Parent : Link the plan to another analytic plan if a hierarchy between plans must be\nbuilt.\nParent : Link the plan to another analytic plan if a hierarchy between plans must be\nbuilt.\n- Default Applicability : Define how the plan is applied when creating a new journal\nentry: Optional : Adding the analytic plan is not mandatory. Mandatory : The entry cannot be confirmed if no analytic account is selected. Unavailable : The plan is not available.\nDefault Applicability : Define how the plan is applied when creating a new journal\nentry:\n- Optional : Adding the analytic plan is not mandatory.\nOptional : Adding the analytic plan is not mandatory.\n- Mandatory : The entry cannot be confirmed if no analytic account is selected.\nMandatory : The entry cannot be confirmed if no analytic account is selected.\n- Unavailable : The plan is not available.\nUnavailable : The plan is not available.\n- Color : Set a color for the tag related to this specific plan.\nColor : Set a color for the tag related to this specific plan.\nTo fine-tune a planâs applicability, create a new line in the Applicability tab and set\nthe following fields:\n- Domain : Choose the accounting documents to which the plan applies.\nDomain : Choose the accounting documents to which the plan applies.\n- Financial Accounts Prefixes : Enter the prefix(es) of the account(s) to which the plan\napplies.\nFinancial Accounts Prefixes : Enter the prefix(es) of the account(s) to which the plan\napplies.\n- Product Category : Choose the product category to which the plan applies.\nProduct Category : Choose the product category to which the plan applies.\n- Applicability : Define how the plan is applied when creating a new journal entry. The\napplicability set here always overrides the default applicability.\nApplicability : Define how the plan is applied when creating a new journal entry. The\napplicability set here always overrides the default applicability.\n- Company : In a multi-company environment, select the company using the plan. To make the analytic plan accessible to all\ncompanies, leave the field empty.\nCompany : In a multi-company environment, select the company using the plan. To make the analytic plan accessible to all\ncompanies, leave the field empty.\nTwo smart buttons are available:\n- Subplans : To have a more complex analytic structure. Click the smart button, then\nclick New to add a subplan. This creates a parent-child relationship between the two\nplans, and the Parent field of the subplan is automatically populated with the\noriginal plan.\nSubplans : To have a more complex analytic structure. Click the smart button, then\nclick New to add a subplan. This creates a parent-child relationship between the two\nplans, and the Parent field of the subplan is automatically populated with the\noriginal plan.\n- Analytic Accounts : To access the analytic accounts linked to the plan.\nAnalytic Accounts : To access the analytic accounts linked to the plan.\nEach analytic plan must have at least one analytic account.\n\n## Analytic distribution\n\nThe distribution of costs in one or more analytic accounts can be set in each invoice/bill or en masse .\nThe analytic distribution is prefilled based on the applicability and the analytic\ndistribution models .\n\n### Analytic distribution on invoices or bills\n\nTo add analytic distribution, click the Analytic Distribution column when creating an invoice or bill .\nThe Analytic Distribution field is mandatory only if the analytic plan has been set as Mandatory in either\nthe Default Applicability field on an analytic plan or the Applicability field on an analytic plan line.\nIn the Analytic window, select the desired Analytic Accounts in the\ndifferent Analytic Plans displayed in columns. Then, split the costs between the\naccounts by modifying the percentage.\n\n### Analytic distribution en masse\n\nTo mass-edit analytic accounts in several entries simultaneously, go to Accounting\n⣠Accounting ⣠Journal items , and select the ones that need to be updated. Click the Analytic Distribution column and add the required distribution in the Analytic column, then click the (cross) and Confirm . The analytic distribution is then added to the selected journal items.\n\n### Analytic distribution models\n\nAnalytic distribution models automatically apply a specific distribution based on defined criteria.\nTo create a new analytic distribution model, go to Accounting ⣠Configuration â£\nAnalytic Distribution Models , click New , and set the conditions the model has to meet\nto apply automatically:\n- All specified conditions of an analytic distribution model must be met for the model to be\napplied. To apply an analytic distribution model based on individual conditions, create\nseparate analytic distribution models for each condition.\nAll specified conditions of an analytic distribution model must be met for the model to be\napplied. To apply an analytic distribution model based on individual conditions, create\nseparate analytic distribution models for each condition.\n- Analytic distribution models can be combined and sequenced, allowing distribution across\nmultiple models if linked to different analytic plans . To adjust the order,\ndrag and drop the models using the (draggable) icon.\nAnalytic distribution models can be combined and sequenced, allowing distribution across\nmultiple models if linked to different analytic plans . To adjust the order,\ndrag and drop the models using the (draggable) icon.\n- Accounts Prefixes : Apply the distribution model only to journal items involving\naccounts that begin with specific prefixes.\nAccounts Prefixes : Apply the distribution model only to journal items involving\naccounts that begin with specific prefixes.\n- Partner : Apply the distribution model only to journal items involving a specific\npartner.\nPartner : Apply the distribution model only to journal items involving a specific\npartner.\n- Product : Apply the distribution model only to journal items involving a specific\nproduct.\nProduct : Apply the distribution model only to journal items involving a specific\nproduct.\n- Company : In a multi-company environment, apply the distribution model only to journal items involving a specific company. To\napply it across all companies, leave the field empty.\nCompany : In a multi-company environment, apply the distribution model only to journal items involving a specific company. To\napply it across all companies, leave the field empty.\n- Analytic Distribution : Analytic distribution that will be applied when the above\nconditions are met.\nAnalytic Distribution : Analytic distribution that will be applied when the above\nconditions are met.\nAny time a journal item is posted to the Utilities (601000) account, it should be\nautomatically distributed in the Departments analytic plan as follows:\n- 60% to the Manufacturing analytic account\n60% to the Manufacturing analytic account\n- 30% to the Marketing analytic account\n30% to the Marketing analytic account\n- 10% to the Admin analytic account\n10% to the Admin analytic account\nTo automate this distribution, the Accounts Prefix can be set to 601 , as Utilities (601000) is the only account in the chart of accounts that begins with 601 .\n`601`\n`601`\nIf additional accounts such as Electricity (601100) or Gas (601200) are\navailable in the chart of accounts, the distribution will also apply to both since they share the\nsame prefix.\nTo define more criteria, use the (adjust settings) icon to\nreveal more columns or click View on an individual analytic distribution model.\n- Partner Category : Apply this distribution model only to journal items involving a\npartner in a specific category.\nPartner Category : Apply this distribution model only to journal items involving a\npartner in a specific category.\n- Product Category : Apply this distribution model to journal items involving a product\nin a specific category.\nProduct Category : Apply this distribution model to journal items involving a product\nin a specific category.\nAlternatively, it is possible to create an analytic distribution model from the Analytic window by clicking New Model :\n- either when creating an invoice/bill and filling in the analytic distribution ;\neither when creating an invoice/bill and filling in the analytic distribution ;\n- or when mass-editing analytic accounts in several entries simultaneously.\nor when mass-editing analytic accounts in several entries simultaneously.", "headings": ["Analytic accounts", "Analytic plans", "Analytic distribution", "Analytic distribution on invoices or bills", "Analytic distribution en masse", "Analytic distribution models"], "doc_id": "389a7b1ab4adf0e1"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/reporting/budget.html", "title": "Budgets", "module": "accounting", "section": "Budgets", "text": "# Budgets\n\nAnalytic budgets track specific activities and projects\nusing analytic accounts, helping businesses make informed decisions about specific departments,\nprojects, or other groups of transactions. In contrast, financial budgets are tied to the general ledger accounts that appear on the profit\nand loss and focus on the companyâs overall economic position.\n\n## Analytic budgets\n\nAnalytic budgets allow for allocating and tracking income and expenses in detail, breaking down\ncosts and revenues by specific projects, departments, or groups of transactions. Analytic budgets\ncan be applied across various departments or projects to measure profitability and performance. Odoo\nmanages analytic budgets using analytic accounting .\nTo activate the option for creating analytic budgets, go to Accounting â£\nConfiguration ⣠Settings , and enable Budget Management in the Analytics section.\nOdoo structures budgets using plans and accounts , which must be configured before creating a budget.\n\n### Set an analytic budget\n\nTo create a new budget, go to Accounting ⣠Accounting ⣠Analytic Budgets and\nclick New . Make sure the following fields are appropriately completed: Budget\nName , Period , and Budget Type .\nClick Add a line in the Budget Lines tab to structure the budget with the analytic plans and accounts previously created. While the analytic\nplans correspond to the column names, select the analytic accounts to define the budget\nlines and set the amounts for each in the Budgeted column. Once all the budget lines are\nsettled, click Open . If changes need to be made once the budgetâs status is Open , there are two options:\n- Reset to Draft : To overwrite the data, then reopen the budget.\nReset to Draft : To overwrite the data, then reopen the budget.\n- Revise : A new budget will be created. Once it is Open , a Rev reference is added to the Budget Name . The original budget is then Revised .\nRevise : A new budget will be created. Once it is Open , a Rev reference is added to the Budget Name . The original budget is then Revised .\n\n### Check an analytic budget\n\nOnce the budget is Open , two additional columns are available: Committed and Achieved . These columnsâ amounts are automatically calculated based on the related analytic distribution of journal\nitems. When the analytic distribution of a journal item within the budgetâs period is updated, the budgetâs columns for the analytic\naccount(s) selected in the distribution are automatically updated. The Achieved amount\nreflects the current result according to the items of confirmed journal entries for the associated analytic account . In contrast, the Committed amount displays the full value of the Achieved amount, plus any\nconfirmed purchase orders that have not yet been billed.\n- When a line in a request for quotation or purchase order includes an analytic distribution, a Budget smart button appears, providing a link to the budget report for more details.\nWhen a line in a request for quotation or purchase order includes an analytic distribution, a Budget smart button appears, providing a link to the budget report for more details.\n- For Open budgets, if a request for quotation or a purchase order is created using\nthe associated analytic distribution and exceeds the allocated budget amount, the corresponding\npurchase order line is highlighted in red.\nFor Open budgets, if a request for quotation or a purchase order is created using\nthe associated analytic distribution and exceeds the allocated budget amount, the corresponding\npurchase order line is highlighted in red.\nTo reveal the Theoretical amount or percentage, use the ( adjust settings ) icon in the Budget Lines â header. The Theoretical amount represents the amount of money that could theoretically have been\nspent or should have been received based on the current date relative to the start/end dates. Click Details to open a filtered view of the budget report related to that specific budget line.\nDeleting a budget is only allowed in the Draft and Cancelled stages.\nTo view the budget lines of one or multiple budgets directly from the Budgets list view,\nselect the budget(s) and click Budget Lines .\n\n### Generate periodic budgets\n\nTo create periodic budgets (monthly, quarterly, and yearly) for the selected Analytic\nPlans , click Generate . A new budget is created for each Period between the\nstart and end dates:\n- If a single analytic plan is selected, each budget includes a line for each account in that\nanalytic plan.\nIf a single analytic plan is selected, each budget includes a line for each account in that\nanalytic plan.\n- If multiple analytic plans are selected, each budget includes a line for each account/analytic\nplan combination.\nIf multiple analytic plans are selected, each budget includes a line for each account/analytic\nplan combination.\nTo generate periodic budgets, follow these steps:\n- In the Budgets list view, click Generate .\nIn the Budgets list view, click Generate .\n- In the Generate Budget window, set the dates and select the Period and\nthe Analytic Plans .\nIn the Generate Budget window, set the dates and select the Period and\nthe Analytic Plans .\n- Click Split to create the periodic budgets.\nClick Split to create the periodic budgets.\n- Click Budgets in the top-left corner to return to the Budgets list view.\nClick Budgets in the top-left corner to return to the Budgets list view.\n- One by one, click on the different periodic budgets with the Draft status to open\nthem and set the amounts in the Budgeted column for each analytic account linked to\nthe chosen analytic plans.\nOne by one, click on the different periodic budgets with the Draft status to open\nthem and set the amounts in the Budgeted column for each analytic account linked to\nthe chosen analytic plans.\n- Click Open for each periodic budget.\nClick Open for each periodic budget.\n\n### Reporting\n\nTo perform various reporting actions, go to Accounting ⣠Reporting â£\nBudget Report , then:\n- Track, analyze, and compare budget data.\nTrack, analyze, and compare budget data.\n- Filter and group data using the ( plus-square ) or (minus-square) icon.\nFilter and group data using the ( plus-square ) or (minus-square) icon.\n- Drill down into the report to see more details on the actual amounts and transactions.\nDrill down into the report to see more details on the actual amounts and transactions.\n- Export the data for further analysis or reporting needs.\nExport the data for further analysis or reporting needs.\n\n## Financial budgets\n\nFinancial budgets are structured around specific income and expense accounts and transactions for\nofficial financial reporting and compliance purposes.\nFinancial budgets are available on the Profit and Loss report.\n\n### Set a financial budget\n\nTo create a new financial budget, follow these steps:\n- Go to Accounting ⣠Reporting ⣠Profit and Loss to open the Profit and Loss report.\nGo to Accounting ⣠Reporting ⣠Profit and Loss to open the Profit and Loss report.\n- Click the (calendar) button to use the date selector and choose a\nperiod.\nClick the (calendar) button to use the date selector and choose a\nperiod.\n- Click the Budget button and name the budget. A new column\nlabeled with the budget name will appear next to the Balance column.\nClick the Budget button and name the budget. A new column\nlabeled with the budget name will appear next to the Balance column.\n- Assign amounts to each account requiring analysis.\nAssign amounts to each account requiring analysis.\n- A new % column will appear to the right of the new budget column, indicating the\ncurrent status.\nA new % column will appear to the right of the new budget column, indicating the\ncurrent status.\nDifferent financial budgets can be created using these steps for comparison purposes.\nThe date selector enables the division of periods and navigation between periods, automatically\nupdating the amounts accordingly.", "headings": ["Analytic budgets", "Set an analytic budget", "Check an analytic budget", "Generate periodic budgets", "Reporting", "Financial budgets", "Set a financial budget"], "doc_id": "d230a3b5ee0e6866"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/reporting/customize.html", "title": "Custom reports", "module": "accounting", "section": "Custom reports", "text": "# Custom reports\n\nOdoo comes with a powerful and easy-to-use reporting framework. The engine allows you to create new\nreports, such as tax reports, balance sheets, and income statements with specific groupings and\nlayouts.\nActivate the developer mode to access the accounting report\nconfiguration.\nTo create a new report, go to Accounting ⣠Configuration ⣠Accounting Reports .\nFrom here, create either a root report or a variant .\n- Consider saving modified reports as report variants to keep their root reports intact.\nConsider saving modified reports as report variants to keep their root reports intact.\n- To access an existing reportâs management interface from the report itself, click on the (gears) icon.\nTo access an existing reportâs management interface from the report itself, click on the (gears) icon.\n\n## Root reports\n\nRoot reports can be regarded as generic, neutral accounting reports. They serve as models on which\nlocal accounting versions are built. If a report has no root report, it is considered to be a root\nreport itself.\nA tax report for Belgium and the US would both use the same generic version as a base and adapt\nit for their domestic regulations.\nCreating a menu item is required to access a new root report. To do so, open the reportâs\nconfiguration, click Action , Create Menu Item , and refresh the page. The\nreport is now available under Accounting ⣠Reporting .\nCases that require creating a new root report are rare, such as when a countryâs tax authorities\nrequire a new and specific type of report.\n\n## Variants\n\nVariants are country-specific versions of root reports and, therefore, always refer to a root\nreport. To create a variant, select a generic (root) report in the Root Report field\nwhen creating a new report.\nWhen a root report is opened from the Accounting appâs Reporting menu, all of its\nvariants are displayed in the report variant selector in the top right corner of the view.\nVAT Report (BE) is a variant of the root Generic Tax report .\n\n## Lines\n\nAfter creating a report (either root or variant), the next step is to fill it with lines. To create\na new line, click on Add a line . To modify an existing line, click on the line itself\nand edit the popup. All lines require a Name and can have an optional Code which allows using the lineâs value in formulas.\n\n## Expressions\n\nEach line can contain one or multiple expressions . Expressions can be seen as sub-variables needed by a report line. To create an expression, click on Add a line within a lineâs\npopup.\nWhen creating an expression, you must enter a Label used to refer to that expression.\nThe label must be unique among the expressions of each report line. Both the Computation\nEngine and the Formula fields must also be completed. The computation engine defines how the formula(s) and subformula(s) are interpreted. It is possible to mix\nexpressions using different computation engines under the same line if needed.\nDepending on the engine, subformulas may also be required.\n\n### Odoo Domain computation engine\n\nWhen using the Odoo Domain computation engine, a formula is interpreted as an Odoo\ndomain targeting account.move.line objects.\n`account.move.line`\nThe subformula allows you to define how the move lines matching the domain are used to compute the\nvalue of the expression:\n`sum`\nThe result is the sum of all the balances of the matched move lines.\n`sum_if_pos`\nThe result is the sum of all the balances of the matched move lines if this amount is positive.\nOtherwise, it is 0 .\n`0`\n`sum_if_neg`\nThe result is the sum of all the balances of the matched move lines if this amount is negative.\nOtherwise, it is 0 .\n`0`\n`count_rows`\nThe result is the number of sub-lines of this expression. If the parent line has a group-by value, this will correspond to the number of distinct\ngrouping keys in the matched move lines. Otherwise, it will be the number of matched move lines.\nTo reverse the sign of the result, put a - sign at the beginning of the subformula.\n`-`\n\n### Tax Tags computation engine\n\nWhen using the Tax Tags computation engine, the contents of the Formula field are matched to tax tags. If such tags do not exist when creating the expression, they will be\ncreated.\nWhen evaluating the expression, the expression computation can roughly be expressed as: (amount of\nthe move lines with + tag) - (amount of the move lines with - tag) .\n`+`\n`-`\n`-`\nIf the Formula is set to tag_name , the engine matches tax tags +tag_name and -tag_name , creating them if necessary. To exemplify further: two tags are matched by the\nformula. If the formula is A , it will require (and create, if needed) tags +A and -A .\n`tag_name`\n`+tag_name`\n`-tag_name`\n`A`\n`+A`\n`-A`\n\n### Aggregate Other Formulas computation engine\n\nThe Aggregate Other Formulas computation engine performs arithmetic operations on the\namounts obtained from other expressions. Formulas here are composed of references to expressions\nseparated by one of the four basic arithmetic operators (addition + , subtraction - , division / , and multiplication * ). To refer to an expression, type in its parent lineâs code followed\nby a period . and the expressionâs label (ex. code.label ).\n`+`\n`-`\n`/`\n`*`\n`.`\nSubformulas can be one of the following:\n`if_above(CUR(amount))`\nThe value of the arithmetic expression will be returned only if it is greater than the provided\nbound. Otherwise, the result will be 0 .\n`0`\n`if_below(CUR(amount))`\nThe value of the arithmetic expression will be returned only if it is lower than the provided\nbound. Otherwise, the result will be 0 .\n`0`\n`if_between(CUR1(amount1),CUR2(amount2))`\nThe value of the arithmetic expression will be returned only if it is strictly between the\nprovided bounds. Otherwise, it will be brought back to the closest bound.\n`if_other_expr_above(LINE_CODE.EXPRESSION_LABEL,CUR(amount))`\nThe value of the arithmetic expression will be returned only if the value of the expression\ndenoted by the provided line code and expression label is greater than the provided bound.\nOtherwise, the result will be 0 .\n`0`\n`if_other_expr_below(LINE_CODE.EXPRESSION_LABEL,CUR(amount))`\nThe value of the arithmetic expression will be returned only if the value of the expression\ndenoted by the provided line code and expression label is lower than the provided bound.\nOtherwise, the result will be 0 .\n`0`\nCUR is the currency code in capital letters, and amount is the amount of the bound expressed in\nthat currency.\n`CUR`\n`amount`\nYou can also use the cross_report subformula to match an expression found in another report.\n`cross_report`\n\n### Prefix of Account Codes computation engine\n\nThe Prefix of Account Codes computation engine is used to match amounts made on accounts\nusing the prefixes of these accountsâ codes as variables in an arithmetic expression.\n`21`\n`21+10-5`\n`21`\n`10`\n`5`\nIt is also possible to ignore a selection of sub-prefixes.\n`21+10\\(101,102)-5\\(57)`\n`101`\n`102`\n`57`\nYou can apply âsub-filteringâ on credits and debits using the C and D suffixes. In this\ncase, an account will only be considered if its prefix matches, and if the total balance of the\nmove lines made on this account is credit/debit .\n`C`\n`D`\nAccount 210001 has a balance of -42 and account 210002 has a balance of 25. The formula 21D only matches the account 210002 , and hence returns 25. 210001 is not matched, as its\nbalance is credit .\n`210001`\n`210002`\n`21D`\n`210002`\n`210001`\nPrefix exclusions can be mixed with the C and D suffixes.\n`C`\n`D`\n`21D+10\\(101,102)C-5\\(57)`\n`21`\n`D`\n`10`\n`C`\n`101`\n`102`\n`5`\n`57`\nTo match the letter C or D in a prefix and not use it as a suffix, use an empty exclusion () .\n`C`\n`D`\n`()`\n`21D\\()`\n`21D`\nIn addition to using code prefixes to include accounts, you can also match them with account\ntags . This is especially useful, for example, if your country lacks a standardized chart of\naccounts, where the same prefix might be used for different purposes across companies.\n`tag(25)`\nIf the tag you reference is defined in a data file, an XMLID can be used instead of the ID.\n`tag(my_module.my_tag)`\nYou can also use arithmetic expressions with tags, possibly combining them with prefix selections.\n`tag(my_module.my_tag)+tag(42)+10`\n`10`\nC and D suffixes can be used in the same way with tags.\n`C`\n`D`\n`tag(my_module.my_tag)C`\nPrefix exclusion also works with tags.\n`tag(my_module.my_tag)\\(10)`\n`10`\n\n### External Value computation engine\n\nThe External Value computation engine is used to refer to manual and carryover\nvalues . Those values are not stored using account.move.line , but with account.report.external.value . Each of these objects directly points to the expression it impacts,\nso very little needs to be done about their selection here.\n`account.move.line`\n`account.report.external.value`\nFormulas can be one of the following:\n`sum`\nIf the result must be the sum of all the external values in the period.\n`most_recent`\nIf the result must be the value of the latest external value in the period.\nIn addition, subformulas can be used in two ways:\n`rounding=X`\nReplacing X with a number instructs to round the amount to X decimals.\n`X`\n`editable`\nIndicates this expression can be edited manually, triggering the display of an icon in the\nreport, allowing the user to perform this action.\nManual values are created at the date_to currently selected in the report.\n`date_to`\nBoth subformulas can be mixed by separating them with a ; .\n`;`\n`editable;rounding=2`\n\n### Custom Python Function computation engine\n\nThe Custom Python Function computation engine is a means for developers to introduce\ncustom computation of expressions on a case-by-case basis. The Formula is the name of a python function to call, and the Subformula is a key to fetch in the dictionary returned by this function. Use this computation engine only if making a custom\nmodule.\n\n## Columns\n\nReports can have an indefinite number of columns to display. Each column gets its values from\nthe expressions declared on the lines . The field expression_label of the column\ngives the label of the expressions whose value is displayed. If a line has no expression in that\nfield, then nothing is displayed for it in this column. If multiple columns are required, you must\nuse different expression labels.\nWhen using the period comparison feature found under the Options tab of an\naccounting report, all columns are repeated in and for each period.\n\n## Line grouping\n\nNon-standard grouping is possible by adding or using existing fields on the Journal Item model,\nprovided that the fields are related and non-stored.\nGrouping lines requires the report to have explicit report lines that can be edited. The deferred\nreports, for example, do not support grouping lines as they use dynamic lines that are generated.\n\n### Create a new field on journal item\n\nTo create a non-stored, related field in the Journal Item model, first go to Accounting ⣠Journal Items , and click the (bug) icon,\nthen click Fields . Click New to create a new field, and complete the\nfollowing fields:\n- Field Name : a technical name for the field\nField Name : a technical name for the field\n- Field Label : the label to be displayed for the field\nField Label : the label to be displayed for the field\n- Field Type : the type of field that this related field should point to\nField Type : the type of field that this related field should point to\n- Stored : Leave this field unchecked as only non-stored fields can be used to group\nlines.\nStored : Leave this field unchecked as only non-stored fields can be used to group\nlines.\n- Related Model : If the field type is one2many , many2many , or many2one , select the model of the original field to group by.\nRelated Model : If the field type is one2many , many2many , or many2one , select the model of the original field to group by.\n- Related Field Definition : the technical path to the field you want to group by Example To group by the sales team of the commercial partner, set the related field definition to move_id.team_id .\nRelated Field Definition : the technical path to the field you want to group by\nTo group by the sales team of the commercial partner, set the related field definition to move_id.team_id .\n`move_id.team_id`\n\n### Group lines\n\nTo group lines, go to the Lines tab of the desired report, click\non the line you want to group, and edit the Group by field. Enter the technical name\n( Field Name ) of the field to use as the grouping key.\nTo find a list of all the modelâs fields and their technical names, go to Accounting ⣠Journal Items , and click the (bug) icon, then click Fields . The technical name of each field is listed in the Field Name column.\nConsolidation via grouping by account code", "headings": ["Root reports", "Variants", "Lines", "Expressions", "Odoo Domain computation engine", "Tax Tags computation engine", "Aggregate Other Formulas computation engine", "Prefix of Account Codes computation engine", "External Value computation engine", "Custom Python Function computation engine", "Columns", "Line grouping", "Create a new field on journal item", "Group lines"], "doc_id": "d89e07f5daa2d592"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/reporting/data_inalterability.html", "title": "Data inalterability check report", "module": "accounting", "section": "Data inalterability check report", "text": "# Data inalterability check report\n\nTax authorities in some countries require companies to prove their posted accounting entries are\nunaltered , meaning that once an entry has been secured, it can no longer be changed.\nTo do so, Odoo creates a unique fingerprint for each secured entry thanks to the SHA-256 algorithm .\nThis fingerprint is called a hash. The hash is generated by taking an entryâs essential data\n(the values of the name , date , journal_id , company_id , debit , credit , account_id , and partner_id fields), concatenating it, and inputting it to the SHA-256 hash function, which then\noutputs a fixed size (256-bit) string of characters. The hash function is deterministic ( the\nsame input always creates the same output ): any minor modification to the original data would\ncompletely change the resulting hash. Consequently, the SHA-256 algorithm is often used, among\nothers, for data integrity verification purposes.\n`name`\n`date`\n`journal_id`\n`company_id`\n`debit`\n`credit`\n`account_id`\n`partner_id`\nIn addition, the previous entryâs hash is always added to the next entry to form a hash chain .\nThis is used to ensure a new entry is not added afterward between two secured entries, as doing so\nwould break the hash chain.\nHashes generated by the SHA-256 algorithm are theoretically not unique, as there is a finite\nnumber of possible values. However, this number is exceptionally high: 2²âµâ, which is a lot\nbigger than the number of atoms in the known universe. This is why hashes are considered unique\nin practice.\n\n## Inalterability features\n\nInalterability features can be enabled by activating the secure posted entries with hash option on any journal or using the secure entries wizard .\n- Two indicators are added to the journal entryâs form view.\nThey show whether the entry is secured or not. A or ( lock icon ) next to the Posted state. A Secured checkbox in the Other info tab.\nTwo indicators are added to the journal entryâs form view.\nThey show whether the entry is secured or not.\n- A or ( lock icon ) next to the Posted state.\nA or ( lock icon ) next to the Posted state.\n- A Secured checkbox in the Other info tab.\nA Secured checkbox in the Other info tab.\n- A Not Secured filter is available on journal entries and journal itemsâ list views.\nIt can be used to find posted journal entries that are not secured yet.\nA Not Secured filter is available on journal entries and journal itemsâ list views.\nIt can be used to find posted journal entries that are not secured yet.\n- The option to open the secure entries wizard is displayed in the Accounting menu.\nThe option to open the secure entries wizard is displayed in the Accounting menu.\n\n## Secure posted entries with hash\n\nTo activate the hashing function on a specific journal, go to Accounting â£\nConfiguration ⣠Journals . Open a sales, purchase, or miscellaneous journal, go to the Advanced Settings tab, and enable Secure Posted Entries with Hash .\nJournals for which the feature is activated are called ârestrictedâ.\nTo compute the hash of an entry, Odoo retrieves the predecessor entries of the chain (i.e., the\nentries with the same sequence prefix) and hashes them in a continuous way from the last hashed\nentry to the new entry to hash.\nOnce you post an entry in a restricted journal, you cannot disable the feature anymore, nor edit\nany secured entry.\n\n## Secure entries wizard\n\nYou can also use the Secure Entries Wizard to secure all journal entries,\nin all journals, up to a specific date.\nThe wizard operates independently of the journal settings and journal types.\nTo open it, activate the developer mode , go to Accounting\n⣠Accounting , and click on Secure Entries . If the inalterability features are activated, it is also visible outside the debug\nmode.\nTo secure entries, select a date up to which all entries should be secured and press Secure Entries .\nAfter securing the entries, you can no longer edit them.\nIt can happen that entries that are past the selected date are secured.\nThis is possible since the hash chain corresponds to the sequence prefix,\nordered by sequence number.\n\n## Report download\n\nTo download the data inalterability check report, go to Accounting ⣠Configuration\n⣠Settings ⣠Reporting and click on Download the Data Inalterability Check Report .\nThe reportâs first section is an overview of all journal sequence prefixes containing hashed entries.\nIn the Restricted column, you can see whether or not a journal has the secure\nposted entries with hash option (V) activated or not (X). The Check column tells you whether all entries are correctly hashed.\nThe second section gives a more detailed result of the data consistency check for each hashed\njournal sequence prefix. You can view the first hashed entry and its corresponding hash,\nas well as the last hashed entry and its corresponding hash.", "headings": ["Inalterability features", "Secure posted entries with hash", "Secure entries wizard", "Report download"], "doc_id": "25e2546c157df80e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/reporting/intrastat.html", "title": "Intrastat", "module": "accounting", "section": "Intrastat", "text": "# Intrastat\n\nIntrastat is the data collection and statistics production system for goods traded among EU member\nstates. It collects data on:\n- Commercial transactions of goods for use, consumption, investment, or resale with ownership\ntransfer;\nCommercial transactions of goods for use, consumption, investment, or resale with ownership\ntransfer;\n- Goods movements without transfer of ownership (e.g., stock relocations or moves of goods\nbefore or after outsourced production or processing, and after maintenance or repair);\nGoods movements without transfer of ownership (e.g., stock relocations or moves of goods\nbefore or after outsourced production or processing, and after maintenance or repair);\n- Returns of goods.\nAlthough the Intrastat system continues to be used, the term Intrastat is not used in the latest\nlegislation , referring instead to intra-Union trade in goods statistics .\nEurostat Statistics Explained - Glossary: Intrastat\n\n## General configuration\n\nEnable the Intrastat report by going to Accounting ⣠Configuration ⣠Settings .\nUnder the Customer Invoices section, tick Intrastat and then Save .\n\n### Default transaction codes: invoice and refund\n\nYou can set a default transaction code for all newly created\ninvoice and refund transactions. Under Accounting ⣠Configuration ⣠Settings ,\nselect a Default invoice transaction code and/or a Default refund transaction\ncode and then Save . The code will be set automatically on all respective invoice lines.\n\n### Region code\n\nThe region code is only used by Belgian companies . Under Accounting â£\nConfiguration ⣠Settings , select the Company Intrastat Region where the company is\nlocated and then Save .\nIf your warehouses are located in more than one region, you can define the region code at the\nlevel of each warehouse instead. To do so, go to Inventory ⣠Configuration â£\nWarehouses , select a warehouse, set its Intrastat region , and then Save .\n\n## Product configuration\n\nAll products must be properly configured to be included in the Intrastat report.\n\n### Commodity code\n\nCommodity codes are internationally recognized reference numbers used to classify goods depending on\ntheir nature . Intrastat uses the Combined Nomenclature .\nTo add a commodity code, go to Accounting ⣠Customers ⣠Products and select a\nproduct. Under the Accounting tab, set the productâs Commodity Code .\nNational Bank of Belgium - Intrastat commodity codes\n\n### Quantity: weight and supplementary unit\n\nDepending on the nature of the goods, it is necessary to specify either the productâs weight in\nkilos (without packaging) or the productâs supplementary unit, such as square meter ( m2 ), number\nof items ( p/st ), liter ( l ), or gram ( g ).\n`m2`\n`p/st`\n`l`\n`g`\nTo add a productâs weight or supplementary unit, go to Accounting ⣠Customers â£\nProducts and select a product. Under the Accounting tab, depending on the commodity\ncode set, either fill in the product Weight or its Supplementary Units .\n\n### Country of origin\n\nTo add the productâs country of origin, go to Accounting ⣠Customers ⣠Products and select a product. Under the Accounting tab, set the Country of Origin .\n\n## Invoices and bills configuration\n\nOnce products are properly configured, several settings must be configured on the invoices and bills\nyou create.\n\n### Transaction code\n\nTransaction codes are used to identify a transactionâs nature. Default transaction codes can be set for invoice and refund transactions.\nTo set a transaction code on an invoice line, create an invoice or a bill, click the columns\nselection button, tick Intrastat , and use the newly-added Intrastat column\nto select a transaction code.\nNational Bank of Belgium - Intrastat: Nature of transactions from January 2022\n\n### Partner country\n\nThe partner country represents the vendorâs country for bills and the customerâs country for\ninvoices. It is automatically filled in using the country set in the contactâs Country field.\nTo edit the partner country manually, create an invoice or a bill, click the Other Info tab, and select the Intrastat Country .\n\n### Transport code\n\nThe transport code identifies the presumed mode of transport used to send the goods (arrival or\ndispatch).\nTo add the transport code, create an invoice or a bill, go to the Other info tab,\nand select the Intrastat Transport Mode .\n\n### Value of the goods\n\nThe value of a good is the untaxed Subtotal ( Price multiplied by Quantity ) of an invoice line.\n\n## Partner configuration\n\nTwo fields from the partnerâs contact form are used with Intrastat: VAT and Country . The country can be manually set on the\ninvoice or bill.\n\n## Generate the Intrastat report\n\nGenerate the report by going to Accounting ⣠Reporting ⣠Audit Reports:\nIntrastat Report . It is automatically computed based on the default configuration and the information found on the products , invoices and bills , and partners .\nExport the report as a PDF, XLSX, or XML file to post it to your legal administration.\nEach report line refers to a single invoice line and contains the following information:\n- Invoice or bill reference number;\nInvoice or bill reference number;\n- System, which is a code automatically generated depending on whether the document is an invoice\n(dispatch) or a bill (arrival);\nSystem, which is a code automatically generated depending on whether the document is an invoice\n(dispatch) or a bill (arrival);\n- Country , which is the vendorâs country for arrivals and the\ncustomerâs country for dispatches;\nCountry , which is the vendorâs country for arrivals and the\ncustomerâs country for dispatches;\n- Transaction Code ;\n- (If your company is located in Belgium) Region Code ;\n(If your company is located in Belgium) Region Code ;\n- Commodity Code ;\n- Origin Country ;\n- Partner VAT ;\n- Transport Code ;\n- Incoterm Code ;\n- Weight ;\n- Supplementary Units ; and\nSupplementary Units ; and\n- Value , which is always expressed in euros even if the original invoice or\nbill used another currency.\nValue , which is always expressed in euros even if the original invoice or\nbill used another currency.", "headings": ["General configuration", "Default transaction codes: invoice and refund", "Region code", "Product configuration", "Commodity code", "Quantity: weight and supplementary unit", "Country of origin", "Invoices and bills configuration", "Transaction code", "Partner country", "Transport code", "Value of the goods", "Partner configuration", "Generate the Intrastat report"], "doc_id": "ba8e9312bd3ab314"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/reporting/silverfin.html", "title": "Silverfin integration", "module": "accounting", "section": "Silverfin integration", "text": "# Silverfin integration\n\nSilverfin is a third-party service provider that offers a cloud\nplatform for accountants.\nOdoo and Silverfin provide an integration to automate the synchronization of data.\n\n## Configuration\n\nTo configure this integration, you need to input the following data into your Silverfin account:\n- userâs email address\nuserâs email address\n- Odoo API key\n- URL of the Odoo database\nURL of the Odoo database\n- name of your Odoo database\nname of your Odoo database\n\n### Odoo API key\n\nYou can create Odoo external API keys either for a single database (hosting: Odoo Online, On-premise, and Odoo.sh) or for all databases managed by a single user (hosting: Odoo Online).\n- These API keys are personal and provide full access to your user account. Store it securely.\nThese API keys are personal and provide full access to your user account. Store it securely.\n- You can copy the API key only at its creation. It is not possible to retrieve it later.\nYou can copy the API key only at its creation. It is not possible to retrieve it later.\n- If you need it again, create a new API key (and delete the old one).\nIf you need it again, create a new API key (and delete the old one).\n\n#### Per database\n\nTo add an API key to a single database, connect to the database, enable the developer\nmode , click on the user menu, and then My Profile / Preferences . Under the Account Security tab, click on New API\nKey , confirm your password, give a descriptive name to your new key, and copy the API key.\n\n#### For all databases (fiduciaries)\n\nTo add an API key to all databases managed by a single user at the same time (the easiest\nmethod for fiduciaries) , navigate to Odooâs website and sign in with\nyour administrator account. Next, open your account security settings in developer mode , click on New API Key , confirm your\npassword, give a descriptive name to your new key, and copy the new API key.\nOpen the database manager to view all databases that will\nbe linked to the single API key.", "headings": ["Configuration", "Odoo API key"], "doc_id": "a82edae4063b1983"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/reporting/tax_carryover.html", "title": "Tax carryover", "module": "accounting", "section": "Tax carryover", "text": "# Tax carryover\n\nWhen performing tax reports, the tax carryover feature allows carrying amounts from one period\nto another without creating new entries.\nIt has been created to meet the legal requirements of specific locations, where amounts must be\ntransferred from period to period (for example, because the total of the line is negative).\nThe feature is activated by default in countries where it is required, such as Belgium, France, and\nItaly. There is no specific configuration required.\nLetâs take an example of a Belgian company that created a credit note of 100 for one of their\ncustomers. The due tax is 21%.\nIn this case, as per local regulation, grid 81 of the tax report may contain a negative amount. But\nit must be declared to the government as zero, and the negative amount should be carried over to the\nnext period.\nIf we go to Accounting app ⣠Reporting ⣠Tax Report , a pop-up on line 81\nexplains that the amount will be carried over in the next period.\nAt the time of the tax closing period, the tax report shows that the amount was carried over from\nthe previous period. It also indicates the amount that will be carried over to this line in the next\nperiod based on the existing transactions and the carryover from the previous period.", "headings": [], "doc_id": "9295c4dfcdb69318"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/reporting/tax_returns.html", "title": "Tax return (VAT declaration)", "module": "accounting", "section": "Tax return (VAT declaration)", "text": "# Tax return (VAT declaration)\n\nCompanies with a registered VAT number must submit a tax return on\na monthly or quarterly basis, depending on their turnover and the registration regulation. A tax\nreturn - or VAT return - gives the tax authorities information about the taxable transactions made\nby the company. The output tax is charged on the number of goods and services sold by a\nbusiness, while the input tax is the tax added to the price when goods or services are\npurchased. Based on these values, the company can calculate the tax amount they have to pay or be\nrefunded.\nYou can find additional information about VAT and its mechanism on this page from the European\nCommission: âWhat is VAT?â .\nDifferent contacts sharing the same VAT ID may result in an incorrect VAT report. If your\ncontacts are related (e.g., related partners, divisions within the same company, etc.), consider\nusing parent-type and children-type contacts .\n\n## Prerequisites\n\n### Tax Return Periodicity\n\nThe configuration of the Tax Return Periodicity allows Odoo to compute your tax return correctly\nand also to send you a reminder to never miss a tax return deadline.\nTo do so, go to Accounting ⣠Configuration ⣠Settings . Under the Tax Return Periodicity , you can set:\n- Periodicity : define here whether you submit your tax return on a monthly or quarterly\nbasis;\nPeriodicity : define here whether you submit your tax return on a monthly or quarterly\nbasis;\n- Reminder : define when Odoo should remind you to submit your tax return;\nReminder : define when Odoo should remind you to submit your tax return;\n- Journal : select the journal in which to record the tax return.\nJournal : select the journal in which to record the tax return.\nThis is usually configured during the appâs initial set up .\n\n### Tax Grids\n\nOdoo generates tax reports based on the Tax Grids settings that are configured on your\ntaxes. Therefore, it is crucial to make sure that all recorded transactions use the right taxes.\nYou can see the Tax Grids by opening the Journal Items tab of any\ninvoice and bill.\nTo configure your tax grids, go to Accounting ⣠Configuration ⣠Taxes ,\nand open the tax you want to modify. There, you can edit your tax settings, along with the tax\ngrids that are used to record invoices or refunds.\nTaxes and reports are usually already pre-configured in Odoo: a fiscal localization package is installed according to the country you select at the creation\nof your database.\n\n## Close a tax period\n\n### Tax lock date\n\nAny new transaction whose accounting date prior to the Lock Tax Return date has its tax\nvalues moved to the next open tax period. This is useful to make sure that no change can be made to\na report once its period is closed.\nTherefore, we recommend locking your tax date before working on your Closing Journal Entry .\nThis way, other users cannot modify or add transactions that would have an impact on the Closing Journal Entry , which can help you avoid some tax declaration errors.\nTo check the current Lock Tax Return date, or to edit it, go to Accounting ⣠Accounting ⣠Lock Dates .\n\n### Tax return\n\nOnce all the transactions involving taxes have been posted for the period you want to report, open\nthe Tax Return report by going to Accounting ⣠Reporting ⣠Tax\nReturn . Select the period you want to declare using the date filter to have an overview of the tax\nreturn. Then, click Closing Entry to create a tax closing journal entry. Odoo\nautomatically proposes the details of the journal entry. Make any necessary changes and click Post .\nFrom the report, click PDF to download a PDF of the tax return. Alternatively, click the ( gear ) icon, then click Download Excel to download an XLSX of\nthe tax return. To save the report to the Documents app, click the ( gear )\nicon, then click Copy to Documents . Select the format to Export to , the Documents Name , the Folder to store it in, and add any Tags .\nThe report includes all the values to report to the tax authorities, along with the amount to be\npaid or refunded.\nIf you forgot to lock your tax date before clicking on Closing Journal Entry , then\nOdoo automatically locks your fiscal period on the same date as the accounting date of your\nentry. This safety mechanism can prevent some fiscal errors, but it is advised to lock your tax\ndate manually before, as described above.\n- Once the tax report for a period has been generated but not yet posted, additional invoices or\nbills from that same period can still be posted and included in the closing entry. To do so,\nclick Refresh in the Proposition of tax closing\njournal entry , or click Closing Entry again from the tax report.\nOnce the tax report for a period has been generated but not yet posted, additional invoices or\nbills from that same period can still be posted and included in the closing entry. To do so,\nclick Refresh in the Proposition of tax closing\njournal entry , or click Closing Entry again from the tax report.\n- After the tax report has been posted for a period, Odoo locks the period and prevents the\ncreation of new journal entries involving VAT. Any corrections to customer invoices or vendor\nbills must then be recorded in the following period.\nAfter the tax report has been posted for a period, Odoo locks the period and prevents the\ncreation of new journal entries involving VAT. Any corrections to customer invoices or vendor\nbills must then be recorded in the following period.\n- Get started\n- Fiscal localizations", "headings": ["Prerequisites", "Tax Return Periodicity", "Tax Grids", "Close a tax period", "Tax lock date", "Tax return"], "doc_id": "5823517e1c84c9b1"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/reporting/year_end.html", "title": "Year-end closing", "module": "accounting", "section": "Year-end closing", "text": "# Year-end closing\n\nYear-end closing is vital for maintaining financial accuracy, complying with regulations, making\ninformed decisions, and ensuring transparency in reporting.\n\n## Fiscal years\n\nBy default, the fiscal year is set to last 12 months and ends on December 31st. However, its\nduration and end date can vary due to cultural, administrative, and economic considerations.\nTo modify these values, go to Accounting ⣠Configuration ⣠Settings . Under the Fiscal Periods section, change the Last Day field if necessary.\nIf the period lasts more than or less than 12 months, enable Fiscal Years and Save . Go back to the Fiscal Periods section and click Fiscal Years . Then, click New , give it a Name and both a Start Date and End Date .\nOnce the set fiscal period is over, Odoo automatically reverts to the default periodicity,\nconsidering the value specified in the Last Day field.\n\n## Year-end checklist\n\n### Before closure\n\nBefore closing a fiscal year, ensure that everything is accurate and up-to-date:\n- Make sure all bank accounts are fully reconciled up to year-end,\nand confirm that the ending book balances match the bank statement balances.\nMake sure all bank accounts are fully reconciled up to year-end,\nand confirm that the ending book balances match the bank statement balances.\n- Verify that all customer invoices have been created and\nconfirmed and that there are no draft invoices.\nVerify that all customer invoices have been created and\nconfirmed and that there are no draft invoices.\n- Confirm that all vendor bills have been created and confirmed.\nConfirm that all vendor bills have been created and confirmed.\n- Ensure the accuracy of all expenses and validate them.\nEnsure the accuracy of all expenses and validate them.\n- Check that all received payments have been encoded and confirmed.\nCheck that all received payments have been encoded and confirmed.\n- Close all suspense accounts .\nClose all suspense accounts .\n- Book all depreciation and deferred revenue entries.\nBook all depreciation and deferred revenue entries.\n\n### Closing a fiscal year\n\nThen, to close the fiscal year:\n- Run a tax report , and verify that all tax information is\ncorrect.\nRun a tax report , and verify that all tax information is\ncorrect.\n- Reconcile all accounts on the balance sheet : Update the bank balances in Odoo according to the actual balances found on the bank statements. Reconcile all transactions in the cash and bank accounts by running the aged receivables and aged payables reports. Audit all accounts, fully understanding all transactions and their nature, including loans and fixed assets . Optionally, match payments to validate any open\nvendor bills and customer invoices with their payments. While this step is optional, it could\nassist the year-end closing process if all outstanding payments and invoices are reconciled,\npotentially finding errors or mistakes in the system.\nReconcile all accounts on the balance sheet :\n- Update the bank balances in Odoo according to the actual balances found on the bank statements.\nUpdate the bank balances in Odoo according to the actual balances found on the bank statements.\n- Reconcile all transactions in the cash and bank accounts by running the aged receivables and aged payables reports.\nReconcile all transactions in the cash and bank accounts by running the aged receivables and aged payables reports.\n- Audit all accounts, fully understanding all transactions and their nature, including loans and fixed assets .\nAudit all accounts, fully understanding all transactions and their nature, including loans and fixed assets .\n- Optionally, match payments to validate any open\nvendor bills and customer invoices with their payments. While this step is optional, it could\nassist the year-end closing process if all outstanding payments and invoices are reconciled,\npotentially finding errors or mistakes in the system.\nOptionally, match payments to validate any open\nvendor bills and customer invoices with their payments. While this step is optional, it could\nassist the year-end closing process if all outstanding payments and invoices are reconciled,\npotentially finding errors or mistakes in the system.\nNext, the accountant likely verifies balance sheet items and book entries for:\n- year-end manual adjustments,\nyear-end manual adjustments,\n- work in progress,\n- depreciation journal entries,\ndepreciation journal entries,\n- loans,\n- tax adjustments,\nDuring the year-end audit, the accountant may print paper copies of all balance sheet items (e.g.,\nloans, bank accounts, prepayments, sales tax statements) to compare them against the balances\nrecorded in Odoo.\nAs part of this process, setting a Lock Everything date to\nthe last day (inclusive) of the preceding fiscal year is good practice. This ensures that journal\nentries with an accounting date on or before the lock date cannot be created or modified during\nthe audit. Users with administrator access rights can still create and edit entries if an\nexception is configured.\n\n#### Lock everything date\n\nSetting a lock date prevents modifications to any posted journal entries with an accounting date on\nor before the lock date. It also prevents posting new entries with an accounting date on or before\nthe lock date. In such cases, the system automatically sets the accounting date to the day after the\nlock date.\nTo set a Lock Everything date, go to Accounting ⣠Accounting ⣠Lock\nDates . In the Lock Journal Entries window, set the Lock Everything date and Save .\nUsers with Administrator access rights to the Accounting app can create exceptions.\nTo do so:\n- After setting the Lock Everything date, reopen the Lock Journal\nEntries window and remove the Lock Everything date.\nAfter setting the Lock Everything date, reopen the Lock Journal\nEntries window and remove the Lock Everything date.\n- In the Exception banner, choose if this exception should be set for me (the current user) or for everyone and how long it should last.\nIn the Exception banner, choose if this exception should be set for me (the current user) or for everyone and how long it should last.\n- A Reason for this exception can be added.\nA Reason for this exception can be added.\n- All of this information is logged in the chatter of the company record .\nAll of this information is logged in the chatter of the company record .\nTo remove the Lock Everything date after it has been saved, configure the exception\nto apply for everyone and set the duration to forever .\n\n#### Current yearâs earnings\n\nOdoo uses a unique account type called current yearâs earnings to display the difference\nbetween the income and expense accounts.\nThe chart of accounts can only contain one account of this type. By default, it is a 999999\naccount named Undistributed Profits/Losses .\nTo allocate the current yearâs earnings, create a new miscellaneous entry with a date set to the end\nof the fiscal year to book them to any equity account.\nThen, verify whether the current yearâs earnings on the balance sheet correctly show a zero\nbalance. If so, a Hard Lock date can be set to the last day of the fiscal year in Accounting ⣠Accounting ⣠Lock Dates .\nThe Hard Lock date field is irreversible and is intended to ensure data\ninalterability required to comply with accounting regulations in certain countries. If such\ncompliance is not applicable, setting this field may not be necessary. However, if required, the\ndate should only be set once it is confirmed to be correct, as it cannot be changed or\noverridden , regardless of access rights.", "headings": ["Fiscal years", "Year-end checklist", "Before closure", "Closing a fiscal year"], "doc_id": "f16a56e62231bfa4"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/taxes.html", "title": "Taxes", "module": "accounting", "section": "Taxes", "text": "# Taxes\n\nTax regulations generally require companies to compute tax amounts on sales, keep a record of\naccumulated tax debit and credit, and periodically file this information in tax returns.\n\n## Overview\n\nIn general, managing taxes in Odoo involves the following steps:\n- Taxes are added on individual lines of documents created via the Sales, Purchase, Accounting, and\nPoint of Sale apps.\nTaxes are added on individual lines of documents created via the Sales, Purchase, Accounting, and\nPoint of Sale apps.\n- Odoo automatically computes tax amounts on the documents.\nOdoo automatically computes tax amounts on the documents.\n- On accounting documents, Odoo generates journal items to keep track of tax debit and tax credit.\nOn accounting documents, Odoo generates journal items to keep track of tax debit and tax credit.\n- The total base, tax debit, and tax credit for a period can be viewed in the tax return report\nand used to file a tax return.\nThe total base, tax debit, and tax credit for a period can be viewed in the tax return report\nand used to file a tax return.\n\n### Taxes on sales and purchases\n\nMost sales and purchase documents have a Taxes field where taxes can be applied to\nindividual lines. This includes invoices and vendor bills in the Accounting app, sales quotations in the Sales app, and purchase orders in\nthe Purchase app.\nWhen adding a product to a sale or purchase line, the taxes assigned to the product are automatically applied to the line.\nIn the Point of Sale app, the taxes assigned to the\nproducts are applied directly to the order and cannot be changed except by a fiscal position .\n\n### Automatic computation of tax amounts\n\nApplying a tax to a sale or purchase line allows Odoo to automatically compute the tax amount based\non the sale or purchase lineâs subtotal and the taxâs configuration. The details of the computation\nare explained in the Tax computation documentation .\n\n### Automatic generation of tax journal items\n\nUpon applying a tax on an invoice or vendor bill , a\ntax payable journal item is automatically generated with the tax amount. This keeps track of the tax\ndebit or credit associated with the transaction.\nFurthermore, the tax amount is added to the amount due on the receivable or payable journal item.\nFinally, Tax Grids are added both to the automatically created tax\npayable journal item and to the invoice line on which the tax is applied. These tags are used to\nretrieve the journal items corresponding to the taxâs base and tax amount in the Tax Return report.\nIf Cash Basis is enabled, upon reconciling the invoice or vendor bill\nwith the payment, an additional journal entry is created to represent the creation of the tax\ndebit or credit at that point in time.\n\n### Filing tax returns\n\nThe Tax Return report aggregates the base and tax amounts from\ninvoices and vendor bills over a given period and presents it in a format tailored to the fiscal localization .\nThe amounts presented in the tax return report can be used to complete tax declarations that need to\nbe periodically submitted to the government. In most cases, there is a one-to-one correspondence\nbetween the lines of the tax return and the official tax declaration, allowing amounts to simply be\ncopied from one to the other.\n\n## Basic tax configuration\n\nFollow these basic steps to set up taxes:\n- Enable any relevant company-wide options .\nEnable any relevant company-wide options .\n- Activate any needed pre-configured taxes .\nActivate any needed pre-configured taxes .\n- Assign taxes on your products .\nAssign taxes on your products .\n\n### Company-wide options\n\nTo access these configuration options, go to Accounting ⣠Configuration\n⣠Settings and scroll down to Taxes .\n\n#### Default taxes\n\nThe default Sales Tax and Purchase Tax are automatically set on products\nwhen creating new products.\nIf Accounting Firms mode is enabled, the default sales tax is\nautomatically set on new invoice lines, and the default purchase tax is automatically set on new\nvendor bill lines.\nPrices can be changed to Tax Included to treat all taxes as tax\nincluded by default. This would be appropriate if all of a companyâs\npricing is done tax-included. If only some of a companyâs pricing is tax-included, individual taxes\ncan be set as Tax Included .\n\n#### EU intra-community distance selling\n\nActivate this option if you are based in the EU and sell to consumers in other EU countries to apply\nlocal VAT rates.\nEU intra-community distance selling\n\n#### Cash basis\n\nActivate this option if taxes must be accounted for on a cash rather than accruals basis. Some\ncountries mandate cash basis accounting; in that case, this option will be activated by default by\nthe fiscal localization package .\n\n### Activate pre-configured taxes\n\nThe list of taxes can be accessed by going to Accounting ⣠Configuration â£\nTaxes .\nGenerally, inactive taxes are created for most sales tax rates by the fiscal localization package, but only the main tax rate is active by default. To activate an\ninactive tax, click the toggle in the Active column.\n\n### Assign taxes on products\n\nTo configure the taxes used for each product, go to Accounting ⣠Customers â£\nProducts , select the product to configure, and fill the Sales Taxes and Purchase Taxes fields. These taxes are automatically applied when adding the product to\nan invoice, vendor bill, sales order, purchase order, or point of sale order.\nUse the Default Taxes company-wide setting to automatically fill these\nfields on new products.\n\n## Advanced tax configuration\n\nThe following aspects of a tax can be customized:\n- How the tax appears in the backend\nHow the tax appears in the backend\n- How the tax appears to customers\nHow the tax appears to customers\n- The details of the tax computation\nThe details of the tax computation\n- How tax payable journal items are created\nHow tax payable journal items are created\n- Fiscal positions (how to replace a tax by another tax under\ncertain conditions)\nFiscal positions (how to replace a tax by another tax under\ncertain conditions)\nTo open a taxâs configuration, go to Accounting ⣠Configuration ⣠Taxes , then\nclick the tax name.\n\n### Configure backend appearance and availability\n\nThe following options determine how a tax is displayed to users in the Odoo back-end.\n\n#### Tax name\n\nThe Tax Name appears for backend users in the Taxes field in sales\norders , invoices , product forms, etc.\n\n#### Tax type\n\nThe Tax Type determines where the tax is available to be selected.\n- Sales : Customer invoices, product customer taxes, etc.\nSales : Customer invoices, product customer taxes, etc.\n- Purchase : Vendor bills, product vendor taxes, etc.\nPurchase : Vendor bills, product vendor taxes, etc.\nUse None for taxes that you want to include in a Group of Taxes but that you do not want to list along with other sales or purchase taxes.\n\n#### Tax scope\n\nThe Tax Scope restricts the use of taxes to a type of product, either goods or services .\n\n#### Description\n\nThe Description can be edited for the purpose of internal documentation.\n\n### Configure how the tax appears to customers\n\n#### Label on invoices\n\nThe Label on Invoices appears on invoice lines in invoice PDFs and on the customer\nportal.\n\n#### Tax group\n\nThe Tax Group is shown in the totals section of the invoice, in invoice PDFs and on the\ncustomer portal. Multiple taxes that belong to the same tax group are aggregated together into a\nsingle tax amount.\n\n### Configure how tax journal items are created\n\nThe Distribution for Invoices and Distribution for Refunds sections control\nthe generation of tax payable journal items in invoices and credit notes, respectively. They also\ndetermine which tax grids are set on invoice lines when this tax is\napplied.\nEach of these sections should contain one Base line, one or more % of tax lines amounting to 100% (e.g. one 100% line, or two 50% lines), and optionally, one or more % of tax lines amounting to -100.00%.\nThe Base line can have one or more Tax Grids set, which are added to the\ninvoice line on which the tax is applied.\nThe % of tax lines control the creation of tax payable journal items. The tax amount is\ndistributed according to the percentages on these lines, and each line is then used as a template to\ncreate a tax payable journal item with the same Account and Tax Grids . If\nthe Account is not specified, it defaults to the account of the original invoice line on\nwhich the tax is applied.\nTypical cases include:\n- one 100% of tax line: this is the most common case where the tax amount should appear\non a single tax payable journal item.\none 100% of tax line: this is the most common case where the tax amount should appear\non a single tax payable journal item.\n- one 100% of tax and one -100% of tax line: this is appropriate if the tax\nsimultaneously generates both a tax debit and a tax credit which cancel each other out (e.g. EU\nintra-community reverse-charge VAT).\none 100% of tax and one -100% of tax line: this is appropriate if the tax\nsimultaneously generates both a tax debit and a tax credit which cancel each other out (e.g. EU\nintra-community reverse-charge VAT).\n- one 50% of tax line that specifies a tax payable account and another 50% of tax line that does not specify an account: this is appropriate for partially\ndeductible purchase VAT, where part of the tax must be considered an expense rather than a tax\ncredit asset that can offset tax liability.\none 50% of tax line that specifies a tax payable account and another 50% of tax line that does not specify an account: this is appropriate for partially\ndeductible purchase VAT, where part of the tax must be considered an expense rather than a tax\ncredit asset that can offset tax liability.\n\n## Extra taxes\n\nâExtra taxesâ is a broad term referring to additional taxes beyond the standard or basic taxes\nimposed by governments. These extra taxes can be luxury taxes, environmental taxes, import or export duties taxes, etc.\nThe method to compute these taxes varies across different countries. We recommend consulting your\ncountryâs regulations to understand how to calculate them for your business.\nTo compute an extra tax in Odoo, create a tax , enter a tax name, select\na Tax Computation , set an Amount , and in the Advanced Options tab, enable Affect Base of Subsequent Taxes . Then, drag and\ndrop the taxes in the order they should be computed .\n- In Belgium, the formula to compute an environmental tax is: (product price + environmental tax) x sales tax . Therefore, our environmental tax has to come before the sales tax in the\ncomputation sequence.\nIn Belgium, the formula to compute an environmental tax is: (product price + environmental tax) x sales tax . Therefore, our environmental tax has to come before the sales tax in the\ncomputation sequence.\n`(productprice+environmentaltax)xsalestax`\n- In our case, we created a 5% environmental tax (Ecotax) and put it before the Belgian base\ntax of 21%.\nIn our case, we created a 5% environmental tax (Ecotax) and put it before the Belgian base\ntax of 21%.\n- Tax computation\n- Fiscal positions (tax and account mapping)\nFiscal positions (tax and account mapping)\n- B2B (tax excluded) and B2C (tax included) pricing\nB2B (tax excluded) and B2C (tax included) pricing\n- Tax return (VAT declaration)\nTax return (VAT declaration)", "headings": ["Overview", "Taxes on sales and purchases", "Automatic computation of tax amounts", "Automatic generation of tax journal items", "Filing tax returns", "Basic tax configuration", "Company-wide options", "Activate pre-configured taxes", "Assign taxes on products", "Advanced tax configuration", "Configure backend appearance and availability", "Configure how the tax appears to customers", "Configure how tax journal items are created", "Extra taxes"], "doc_id": "0ffe2338797e06fb"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/taxes/B2B_B2C.html", "title": "B2B (tax excluded) and B2C (tax included) pricing", "module": "accounting", "section": "B2B (tax excluded) and B2C (tax included) pricing", "text": "# B2B (tax excluded) and B2C (tax included) pricing\n\nWhen working with consumers, prices are usually expressed with taxes included in the price (e.g., in\nmost eCommerce). But, when you work in a B2B environment, companies usually negotiate prices with\ntaxes excluded.\nOdoo manages both use cases easily, as long as you register your prices on the product with taxes\nexcluded or included, but not both together. If you manage all your prices with tax included (or\nexcluded) only, you can still easily do sales order with a price having taxes excluded (or included)\n: thatâs easy.\nThis documentation is only for the specific use case where you need to have two references for the\nprice (tax included or excluded), for the same product. The reason of the complexity is that there\nis not a symmetrical relationship with prices included and prices excluded, as shown in this use\ncase, in Belgium with a tax of 21%:\n- Your eCommerce has a product at 10⬠(taxes included)\nYour eCommerce has a product at 10⬠(taxes included)\n- This would do 8.26⬠(taxes excluded) and a tax of 1.74â¬\nThis would do 8.26⬠(taxes excluded) and a tax of 1.74â¬\nBut for the same use case, if you register the price without taxes on the product form (8.26â¬), you\nget a price with tax included at 9.99â¬, because:\n- 8.26⬠* 1.21 = 9.99â¬\n8.26⬠* 1.21 = 9.99â¬\nSo, depending on how you register your prices on the product form, you will have different results\nfor the price including taxes and the price excluding taxes:\n- Taxes Excluded: 8.26⬠& 10.00â¬\nTaxes Excluded: 8.26⬠& 10.00â¬\n- Taxes Included: 8.26⬠& 9.99â¬\nTaxes Included: 8.26⬠& 9.99â¬\nIf you buy 100 pieces at 10⬠taxes included, it gets even more tricky. You will get: 1000â¬\n(taxes included) = 826.45⬠(price) + 173.55⬠(taxes) Which is very different from a price per\npiece at 8.26⬠tax excluded.\nThis documentation explains how to handle the very specific use case where you need to handle the\ntwo prices (tax excluded and included) on the product form within the same company.\nIn terms of finance, you have no more revenues selling your product at 10⬠instead of 9.99⬠(for a\n21% tax), because your revenue will be exactly the same at 9.99â¬, only the tax is 0.01⬠higher.\nSo, if you run an eCommerce in Belgium, make your customer a favor and set your price at 9.99â¬\ninstead of 10â¬. Please note that this does not apply to 20⬠or 30â¬, or other tax rates, or a\nquantity >1. You will also make you a favor since you can manage everything tax excluded, which is\nless error prone and easier for your salespeople.\n\n## Configuration\n\n### Introduction\n\nThe best way to avoid this complexity is to choose only one way of managing your prices and stick to\nit: price without taxes or price with taxes included. Define which one is the default stored on the\nproduct form (on the default tax related to the product), and let Odoo compute the other one\nautomatically, based on the pricelist and fiscal position. Negotiate your contracts with customers\naccordingly. This perfectly works out-of-the-box and you have no specific configuration to do.\nIf you can not do that and if you really negotiate some prices with tax excluded and, for other\ncustomers, others prices with tax included, you must:\n- always store the default price tax excluded on the product form, and apply a tax (price\nexcluded on the product form)\nalways store the default price tax excluded on the product form, and apply a tax (price\nexcluded on the product form)\n- create a pricelist with prices in tax included , for specific customers\ncreate a pricelist with prices in tax included , for specific customers\n- create a fiscal position that switches the tax excluded to a tax included\ncreate a fiscal position that switches the tax excluded to a tax included\n- assign both the pricelist and the fiscal position to customers who want to benefit to this\npricelist and fiscal position\nassign both the pricelist and the fiscal position to customers who want to benefit to this\npricelist and fiscal position\nFor the purpose of this documentation, we will use the above use case:\n- your product default sale price is 8.26⬠tax excluded\nyour product default sale price is 8.26⬠tax excluded\n- but we want to sell it at 10â¬, tax included, in our shops or eCommerce website\nbut we want to sell it at 10â¬, tax included, in our shops or eCommerce website\n\n### Setting your products\n\nYour company must be configured with tax excluded by default. This is usually the default\nconfiguration, but you can check your Default Sale Tax from the menu Configuration ⣠Settings of the Accounting application.\nOnce done, you can create a B2C pricelist. You can activate the pricelist feature per customer\nfrom the menu: Configuration ⣠Settings of the Sale application. Choose the\noption different prices per customer segment .\nOnce done, create a B2C pricelist from the menu Configuration ⣠Pricelists . Itâs\nalso good to rename the default pricelist into B2B to avoid confusion.\nThen, create a product at 8.26â¬, with a tax of 21% (defined as tax not included in price) and set a\nprice on this product for B2C customers at 10â¬, from the Sales ⣠Products menu of\nthe Sales application:\n\n### Setting the B2C fiscal position\n\nFrom the accounting application, create a B2C fiscal position from this menu: Configuration ⣠Fiscal Positions . This fiscal position should map the VAT 21%\n(tax excluded of price) with a VAT 21% (tax included in price)\n\n## Test by creating a quotation\n\nCreate a quotation from the Sale application, using the Sales ⣠Quotations menu.\nYou should have the following result: 8.26⬠+ 1.73⬠= 9.99â¬.\nThen, create a quotation but change the pricelist to B2C and the fiscal position to B2C on the\nquotation, before adding your product. You should have the expected result, which is a total price\nof 10⬠for the customer: 8.26⬠+ 1.74⬠= 10.00â¬.\nThis is the expected behavior for a customer of your shop.\n\n## Avoid changing every sale order\n\nIf you negotiate a contract with a customer, whether you negotiate tax included or tax excluded, you\ncan set the pricelist and the fiscal position on the customer form so that it will be applied\nautomatically at every sale of this customer.\nThe pricelist is in the Sales & Purchases tab of the customer form, and the fiscal position is\nin the accounting tab.\nNote that this is error prone: if you set a fiscal position with tax included in prices but use a\npricelist that is not included, you might have wrong prices calculated for you. Thatâs why we\nusually recommend companies to only work with one price reference.", "headings": ["Configuration", "Introduction", "Setting your products", "Setting the B2C fiscal position", "Test by creating a quotation", "Avoid changing every sale order"], "doc_id": "cdf980a4222ca028"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/taxes/avatax.html", "title": "AvaTax integration", "module": "accounting", "section": "AvaTax integration", "text": "# AvaTax integration\n\nAvalaraâs AvaTax is a cloud-based tax software. Integrating AvaTax with Odoo provides real-time\nand region-specific tax calculations when users sell, purchase, and invoice items in Odoo. AvaTax tax calculation is supported with every United Nations charted country, including inter-border\ntransactions.\nAvaTax is only available for integration with databases/companies that have locations in the\nUnited States, Canada, and Brazil. This means the fiscal position/country of a database can only\nbe set to the United States, Canada, or Brazil. For more information, reference this\ndocumentation: Fiscal country .\nAvaTax accounts for location-based tax rates for each state, county, and city. It improves\nremittance accuracy by paying close attention to laws, rules, jurisdiction boundaries, and special\ncircumstances (like, tax holidays, and product exemptions). Companies who integrate with AvaTax can maintain control of tax-calculations in-house with this simple API integration.\nSome limitations exist in Odoo while using AvaTax for tax calculation:\n- AvaTax uses the company address by default. To use the warehouse address, enable Allow\nShip Later in the POS app settings.\nAvaTax uses the company address by default. To use the warehouse address, enable Allow\nShip Later in the POS app settings.\n- Excise tax is not supported. This includes tobacco/vape taxes, fuel taxes, and other\nspecific industries.\nExcise tax is not supported. This includes tobacco/vape taxes, fuel taxes, and other\nspecific industries.\nAvalaraâs support documents: About AvaTax\n\n## Set up on AvaTax\n\nTo use AvaTax , an account with Avalara is required for the setup. If one has not been set up yet,\nconnect with Avalara to purchase a license: Avalara: Letâs Talk .\nUpon account setup, take note of the AvaTax Account ID . This will be needed in the Odoo setup . In Odoo, this number is the API\nID .\nThen, create a basic company profile .\n\n### Create basic company profile\n\nCollect essential business details for the next step: locations where tax is collected,\nproducts/services sold (and their sales locations), and customer tax exemptions, if applicable.\nFollow the Avalara documentation for creating a basic company profile:\n- Add company information .\nAdd company information .\n- Tell us where the company collects and pays tax .\nTell us where the company collects and pays tax .\n- Verify jurisdictions and activate the company .\nVerify jurisdictions and activate the company .\n- Add other company locations for location-based filing .\nAdd other company locations for location-based filing .\n- Add a marketplace to the company profile .\nAdd a marketplace to the company profile .\n\n### Connect to AvaTax\n\nAfter creating the basic company profile in Avalara, connect to AvaTax . This step links Odoo and AvaTax bidirectionally.\nNavigate to either Avalaraâs sandbox or production environment. This will depend on which type of Avalara account the\ncompany would like to integrate.\nSandbox vs production environments in Avalara .\nLog in to create the License Key . Go to Settings ⣠License and API\nKeys . Click Generate License Key .\nA warning appears stating: If your business app is connected to Avalara solutions, the connection will be broken until you update the app with the new license key. This action cannot be undone.\n`IfyourbusinessappisconnectedtoAvalarasolutions,theconnectionwillbebrokenuntilyouupdatetheappwiththenewlicensekey.Thisactioncannotbeundone.`\nGenerating a new license key breaks the connection with existing business apps using the AvaTax integration. Make sure to update these apps with the new license key.\nIf this will be the first API integration being made\nwith AvaTax and Odoo, then click Generate license key .\nIf this is an additional license key, ensure the previous connection can be broken. There is only one license key associated with each of the Avalara sandbox and production accounts.\nCopy this key to a safe place. It is strongly encouraged to back up the license key for\nfuture reference. This key cannot be retrieved after leaving this screen.\n\n## Odoo configuration\n\nBefore using AvaTax , there are some additional configurations in Odoo to ensure tax calculations\nare made accurately.\nVerify that the Odoo database contains necessary data. The country initially set up in the database\ndetermines the fiscal position, and aids AvaTax in calculating accurate tax rates.\n\n### Fiscal country\n\nTo set the Fiscal Country , navigate to Accounting app ⣠Configuration\n⣠Settings .\nUnder the Taxes section, set the Fiscal Country feature to United\nStates , Canada , or Brazil . Then, click Save .\n\n### Company settings\n\nAll companies operating under the Odoo database should have a full and complete address listed in\nthe settings. Navigate to the Settings app , and under the Companies section, ensure there is only one company operating the Odoo database. Click Update Info to open a separate page to update company details.\nIf there are multiple companies operating in the database, click Manage Companies to\nload a list of companies to select from. Update company information by clicking into the specific\ncompany.\nDatabase administrators should ensure that the Street⦠, Street2⦠, City , State , ZIP , and Country are all updated for\nthe companies.\nThis ensures accurate tax calculations and smooth end-of-year accounting operations.\n- Companies\n- Get started\n\n### Module installation\n\nNext, ensure that the Odoo AvaTax module is installed. To do so, navigate to the Apps application . In the Search⦠bar, type in avatax , and press Enter . The following results populate:\n`avatax`\n`account_avatax`\nDefault AvaTax module. This module adds the base AvaTax features for tax calculation.\nAvatax for geo localization\naccount_avatax_geolocalize\n`account_avatax_geolocalize`\nThis module includes the features required for integration of AvaTax into geo-localization\nin Odoo.\n`account_avatax_sale`\nIncludes the information needed for tax calculation on sales orders in Odoo.\n`account_avatax_stock`\nIncludes tax calculation in Odoo Inventory.\n`sale_amazon_avatax`\nIncludes tax calculation features between the Amazon Connector and Odoo.\n`l10n_br_avatax`\nIncludes information for tax calculation in the Brazil localization.\nAvatax Brazil for Services\nl10n_br_avatax_services\n`l10n_br_avatax_services`\nThis module includes the required features for tax calculation for services in the Brazil\nlocalization.\nAvatax Brazil Sale for Services\nl10n_br_edi_sale_services\n`l10n_br_edi_sale_services`\nThis module includes the required features for tax calculation for the sale of services in\nthe Brazil localization. This includes electronic data interchange (EDI).\nTest SOs for the Brazilian AvaTax\nl10n_br_test_avatax_sale\n`l10n_br_test_avatax_sale`\nThis module includes the required features for test sales orders in the Brazil localization.\nClick the Install button on the module labeled, Avatax : account_avatax .\nDoing so installs the following modules:\n`account_avatax`\n- Avatax : account_avatax\nAvatax : account_avatax\n`account_avatax`\n- Avatax for SO : account_avatax_sale\nAvatax for SO : account_avatax_sale\n`account_avatax_sale`\n- Avatax for Inventory : account_avatax_stock\nAvatax for Inventory : account_avatax_stock\n`account_avatax_stock`\nShould AvaTax be needed for geo-localization, or with the Amazon Connector , then install those\nmodules individually by clicking on Install on Avatax for geo localization and Amazon/Avatax Bridge , respectively.\nFor localization specific AvaTax instructions, view the following fiscal localization documentation:\n- Brazil\n- United States\n\n### Odoo AvaTax settings\n\nTo integrate the AvaTax API with Odoo, go to Accounting app ⣠Configuration ⣠Settings section. The AvaTax fields in the Taxes section is where the AvaTax configurations are made, and the\ncredentials are entered in.\nFirst, tick the checkbox to the left of the AvaTax settings, to activate AvaTax on the\ndatabase. This is a quick, convenient way to activate and deactivate AvaTax tax calculation on the\nOdoo database.\n\n#### Prerequisites\n\nFirst, select the Environment in which the company wishes to use AvaTax in. It can\neither be Sandbox or Production .\nFor help determining which AvaTax environment to use (either Production or Sandbox ), visit: Sandbox vs Production environments .\n\n#### Credentials\n\nNow, the credentials can be entered in. The AvaTax Account ID should be entered in the API ID field, and the License Key should be entered in the API\nKey field.\nThe Account ID can be found by logging into the AvaTax portal ( sandbox or production ). In the\nupper-right corner, click on the initials of the user and Account . The Account ID is listed first.\nTo access the License Key see this documentation: Connect to AvaTax .\nFor the Company Code field, enter the Avalara company code for the company being\nconfigured. Avalara interprets this as DEFAULT , if it is not set. The Company Code can\nbe accessed in the Avalara management portal.\n`DEFAULT`\nFirst, log into the AvaTax portal ( sandbox or production ). Then, navigate to Settings ⣠Manage Companies .\nThe Company Code value is located in the row of the Company in the Company Code column.\n\n#### Transaction options\n\nThere are two transactional settings in the Odoo AvaTax settings that can be configured: Use UPC and Commit Transactions .\nIf the checkbox next to Use UPC is ticked, the transactions will use Universal Product\nCodes (UPC), instead of custom defined codes in Avalara. Consult a certified public accountant (CPA)\nfor specific guidance.\nShould the Commit Transactions checkbox be ticked, then, the transactions in the Odoo\ndatabase will be committed for reporting in AvaTax .\n\n#### Address validation\n\nThe Address Validation feature ensures that the most up-to-date address by postal standards is set\non a contact in Odoo. This is important to provide accurate tax calculations for customers.\nThe Address Validation feature only works with partners/customers in North America.\nAdditionally, tick the checkbox next to the Address validation field.\nFor accurate tax calculations, it is best practice to enter a complete address for the contacts\nsaved in the database. However, AvaTax can still function by implementing a best effort attempt\nusing only the Country , State , and Zip code . These are the\nthree minimum required fields.\nSave the settings to implement the configuration.\nManually Validate the address by navigating to the Contacts app , and\nselecting a contact. Now that the AvaTax module has been configured on the database, a Validate button appears directly below the Address .\nClick Validate , and a pop-up window appears with a Validated Address and Original Address listed. If the Validated Address is the correct mailing\naddress for tax purposes, click Save Validated .\nAll previously-entered addresses for contacts in the Odoo database will need to be validated\nusing the manually validate process outlined above. Addresses are not automatically validated if\nthey were entered previously. This only occurs upon tax calculation.\n\n#### Test connection\n\nAfter entering all the above information into the AvaTax setup on Odoo, click Test\nconnection . This ensures the API ID and API KEY are correct, and a\nconnection is made between Odoo and the AvaTax application programming interface (API).\n\n#### Sync parameters\n\nUpon finishing the configuration and settings of the AvaTax section, click the Sync\nParameters button. This action synchronizes the exemption codes from AvaTax .\n\n### Fiscal position\n\nNext, navigate to Accounting app ⣠Configuration ⣠Accounting: Fiscal\nPositions . A Fiscal Position is listed named, Automatic Tax Mapping\n(AvaTax) . Click it to open AvaTaxâs fiscal position configuration page.\nHere, ensure that the Use AvaTax API checkbox is ticked.\nOptionally, tick the checkbox next to the field labeled: Detect Automatically . Should\nthis option be ticked, then, Odoo will automatically apply this Fiscal Position for\ntransactions in Odoo.\nEnabling Detect Automatically also makes specific parameters, such as VAT\nrequired , Foreign Tax ID , Country Group , Country , Federal States , or Zip Range appear. Filling these parameters filters the Fiscal Position usage. Leaving them blank ensures all calculations are made using this Fiscal Position .\nShould the Detect Automatically checkbox not be ticked, each customer will need to\nhave the Fiscal Position set on their Sales and Purchase tab of the\ncontact record. To do so, navigate to Sales app ⣠Order ⣠Customers , or Contacts app ⣠Contacts . Then, select a customer or contact to set the fiscal\nposition on.\nNavigate to the Sales and Purchase tab, and down to the section labeled, Fiscal Position . Set the Fiscal Position field to the fiscal position\nfor the customer.\nFiscal positions (tax and account mapping)\n\n#### AvaTax accounts\n\nUpon selecting the checkbox option for Use AvaTax API a new AvaTax tab\nappears. Click into this tab to reveal two different settings.\nThe first setting is the AvaTax Invoice Account , while the second is, AvaTax\nRefund Account . Ensure both accounts are set for smooth end-of-year record keeping. Consult a\ncertified public accountant (CPA) for specific guidance on setting both accounts.\nClick Save to implement the changes.\n\n### Tax mapping\n\nThe AvaTax integration is available on sale orders and invoices with the included AvaTax fiscal\nposition.\nAdditionally, there is a Tax Mapping tab and Account Mapping tab in the Automatic Tax Mapping (AvaTax) fiscal position, where mapping for products can also\nbe configured. To access Fiscal Positions navigate to Accounting app\n⣠Configuration ⣠Accounting: Fiscal Positions .\n\n#### Product category mapping\n\nBefore using the integration, specify an Avatax Category on the product categories.\nNavigate to Inventory app ⣠Configuration ⣠Product Categories . Select the\nproduct category to add the AvaTax Category to. In the AvaTax Category field, select a category from the drop-down menu, or Search More⦠to open the complete\nlist of options.\n\n#### Product mapping\n\nAvaTax Categories may be set on individual products, as well. To set the Avatax\nCategory navigate to Inventory app ⣠Products ⣠Products . Select the product\nto add the Avatax Category to. Under the General Information tab, on the\nfar-right, is a selector field labeled: Avatax Category . Finally, click the drop-down\nmenu, and select a category, or Search More⦠to find one that is not listed.\nIf both the product, and its category, have an AvaTax Category set, the productâs AvaTax Category takes precedence.\nMapping an AvaTax Category on either the Product or Product Category should be\ncompleted for every Product or Product Category , depending on the route that is chosen.\n- Fiscal positions (tax and account mapping)\nFiscal positions (tax and account mapping)\n- AvaTax use\n- Avalara (Avatax) portal\nAvalara (Avatax) portal\n- US Tax Compliance: Avatax elearning video\nUS Tax Compliance: Avatax elearning video", "headings": ["Set up on AvaTax", "Create basic company profile", "Connect to AvaTax", "Odoo configuration", "Fiscal country", "Company settings", "Module installation", "Odoo AvaTax settings", "Fiscal position", "Tax mapping"], "doc_id": "c5fd419a12472f56"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/taxes/avatax/avalara_portal.html", "title": "Avalara (Avatax) portal", "module": "accounting", "section": "Avalara (Avatax) portal", "text": "# Avalara (Avatax) portal\n\nAvalaraâs ( AvaTax ) management console offers account management options including: viewing/editing\nthe transactions sent from Odoo to AvaTax , details on how the taxes are calculated, tax reporting,\ntax exemption management, and tax return resources.\nAvalara is the software developer of the tax software, AvaTax .\nTo access the console, first, navigate to either Avalaraâs sandbox or production environment.\nThis will depend on which type of account was set in the integration . Log in to\nthe management console.\nFor more information see Avalaraâs documentation: Activate your Communications Customer Portal\naccount .\n\n## Transactions\n\nTo access transactions, click in the Transactions link on the main dashboard upon\nlogging into the Avalara (Avatax) portal . To manually access the Transactions page, while logged into\nthe Avalara console, navigate to Transactions ⣠Transactions .\n\n### Edit transaction\n\nClick into a transaction to reveal more details about the transaction. These details include\nsections on Invoice detail , Additional info , and Customer info .\nClick Edit document details to make changes to the transaction.\nA Discount can be added to adjust the invoice. This is especially useful in cases where\nthe transaction has already synced with Avalara / AvaTax , and changes need to be made afterward.\n\n### Filter\n\nFilter transactions on the Transactions page, by setting the From and To fields, and configuring other fields to filter by, including:\n- Document Status : any of the following options, All , Voided , Committed , Uncommitted , or Locked .\nDocument Status : any of the following options, All , Voided , Committed , Uncommitted , or Locked .\n- Document Code : any of the following options, Exactly match , Starts with , or Contains .\nDocument Code : any of the following options, Exactly match , Starts with , or Contains .\n- Customer/Vendor Code : the customer/vendor code in Odoo (e.g. Contact18 ).\nCustomer/Vendor Code : the customer/vendor code in Odoo (e.g. Contact18 ).\n`Contact18`\n- Country : the country this tax was calculated in; this is a text field.\nCountry : the country this tax was calculated in; this is a text field.\n- Region : the region of the country, which varies based on the Country selection.\nRegion : the region of the country, which varies based on the Country selection.\nClick Filters to access the following filter conditions:\n- Document Type : any of the following selections, All , Sales\nInvoice , Purchase Invoice , Return Invoice , Inventory Transfer\nInbound Invoice , Inventory Transfer Outbound Invoice , or Customs\nInvoice .\nDocument Type : any of the following selections, All , Sales\nInvoice , Purchase Invoice , Return Invoice , Inventory Transfer\nInbound Invoice , Inventory Transfer Outbound Invoice , or Customs\nInvoice .\n- Import ID : represents the import ID of the document.\nImport ID : represents the import ID of the document.\n\n### Sort by\n\nOn the Transactions page, transactions will be listed below, according to the set Filter , located in the top half of the page. The following columns are\navailable by default, to sort by ascending or descending order:\n- Doc Code : either of the following options, Exactly match , Starts with , or Contains .\nDoc Code : either of the following options, Exactly match , Starts with , or Contains .\n- Doc Status : either of the following options, All , Voided , Committed , Uncommitted , or Locked .\nDoc Status : either of the following options, All , Voided , Committed , Uncommitted , or Locked .\n- Cust/Vendor Code : this is the customer/vendor code in Odoo (e.g. Contact18).\nCust/Vendor Code : this is the customer/vendor code in Odoo (e.g. Contact18).\n- Region : this is the region of the country, this will vary based on the Country selection.\nRegion : this is the region of the country, this will vary based on the Country selection.\n- Amount : the numeric amount of the total amount on the Odoo document.\nAmount : the numeric amount of the total amount on the Odoo document.\n- Tax : the numeric amount of the tax applied to the total.\nTax : the numeric amount of the tax applied to the total.\n\n#### Customize columns\n\nAdditional columns can be added by clicking the Customize columns . On the\nresulting popover window, click the drop-down menu for the column that should be\nchanged.\nThe following columns can be added for additional transactional information:\n- AvaTax calculated : the amount of tax calculated by AvaTax .\nAvaTax calculated : the amount of tax calculated by AvaTax .\n- Country : the country this tax was calculated in; this is a text field.\nCountry : the country this tax was calculated in; this is a text field.\n- Cust/vendor code : the customer/vendor code in Odoo (e.g. Contact18 ).\nCust/vendor code : the customer/vendor code in Odoo (e.g. Contact18 ).\n`Contact18`\n- Currency : the standardized abbreviation for the currency the amount total is in.\nCurrency : the standardized abbreviation for the currency the amount total is in.\n- Doc date : the documentâs date of creation.\nDoc date : the documentâs date of creation.\n- Doc status : any of the following options, All , Voided , Committed , Uncommitted , or Locked .\nDoc status : any of the following options, All , Voided , Committed , Uncommitted , or Locked .\n- Doc type : any of the following selections, All , Sales\nInvoice , Purchase Invoice , Return Invoice , Inventory Transfer\nInbound Invoice , Inventory Transfer Outbound Invoice , or Customs\nInvoice .\nDoc type : any of the following selections, All , Sales\nInvoice , Purchase Invoice , Return Invoice , Inventory Transfer\nInbound Invoice , Inventory Transfer Outbound Invoice , or Customs\nInvoice .\n- Import ID : represents the import ID of the document.\nImport ID : represents the import ID of the document.\n- Last modified : timestamp of the last time the document was modified.\nLast modified : timestamp of the last time the document was modified.\n- Location code : the location code used to calculate the tax, based on the delivery\naddress.\nLocation code : the location code used to calculate the tax, based on the delivery\naddress.\n- PO number : the purchase order number.\nPO number : the purchase order number.\n- Reference code : the Odoo reference code (e.g. NV/2024/00003)\nReference code : the Odoo reference code (e.g. NV/2024/00003)\n- Region : the region of the country,which varies based on the Country selection.\nRegion : the region of the country,which varies based on the Country selection.\n- Salesperson code : the numeric ID of the user assigned to the sales order in Odoo.\nSalesperson code : the numeric ID of the user assigned to the sales order in Odoo.\n- Tax date : the month/day/year of the tax calculation.\nTax date : the month/day/year of the tax calculation.\n- Tax override type : where an exemption would appear, should there be none, the field\npopulates with None .\nTax override type : where an exemption would appear, should there be none, the field\npopulates with None .\nTo add a new column click the Column .\nFor more information on AvaTax transactions, refer to this Avalara documentation: Transactions .\n\n### Import-export\n\nWhile on the Transactions , click Import\ntransactions or Export transactions to import or export transactions.\n\n### Reports\n\nTo access reporting, navigate to the Reports link in the top menu of the Avalara\nmanagement console. Next, select from one of the available reporting tabs: Transactions\nreports , Liability & tax return reports , or Exemption reports .\nAdditionally, there is a Favorites tab and Downloads tab. The Favorites tab contains any favorited report configurations for the Avalara user. The Downloads tab contains a list view where the user can download the high-volume\ntransaction reports created in the last 30 days.\nMake a selection for the Report Category , and the Report Name , under the Select a report section.\nNext, fill out the Select report details section. These options will vary based on the\ntab selected above.\nDepending on the report size, the following two options are available in the section labeled, Select the approximate number of transactions for your report : Create and\ndownload the report instantly (for small reports) and Create and download the report in\nthe background (for larger reports). Select one or the other depending on the volume of\ntransactions in this report.\nFinally, under the section labeled, Report preview and export make a selection of the\nfile type to download. Either a .PDF or .XLS can be chosen. Alternatively,\nthe file can be previewed by selecting the Preview option.\nAfter making all the configurations, click Create report to download the report. Click Make this report a favorite to save the report configuration to the\nuserâs favorites.\nAfter the report is created, click Download to download the file to\nthe device.\nSelect a pre-configured report from the Frequently used reports section of the\nreporting dashboard.\nAccess this list by clicking on the Reports option in the top menu of the Avalara\nmanagement console, and scroll to the bottom of the page.\nSee Avalaraâs documentation: Reports in AvaTax .\n\n## Add more jurisdictions\n\nAdditional jurisdictions (tax locations) can be added in the Avalara management console. Navigate to\neither Avalaraâs sandbox or production environment. This will depend on which type of account was set in the integration .\nNext, navigate to Settings ⣠Where you collect tax . Choose between the three\ndifferent tabs, depending on the business need. The first tab is Sales and use tax ,\nwhere tax can be collected for the United States. Click the Add to where\nyou collect sales and use tax to add another location where the company collects sales and use tax.\nThe second option, is the VAT/GST tab where the Add a country\nor territory where you collect VAT/GST can be selected to add another country or territory where\nthe company collects VAT/GST.\nFinally, on the far-right, is the Customs duty tab, where a country can be added where\nthe company collects customs duty. Simply click on the Add a country\nwhere you calculate customs duty icon below the tab.\nSee Avalaraâs documentation: Add local jurisdiction taxes .\n\n## Tax exemption certificate\n\nTax exemption certificates for customers can be added into the Avalara management console, so that AvaTax is aware of which customers may be exempt from paying certain taxes. To add an exception\ncertificate navigate to Exemptions ⣠Customer certificates . From there, click on\nthe Add a certificate to configure an exemption.\nAn Avalara subscription to Exemption Certificate Management (ECM) is required in order to attach\ncertificate images, and to be ready for an audit. For more on subscribing to this add-on, visit Avalara .\n\n## End-of-year operations\n\nAvalaraâs services include tax return services, for when it is time to file taxes at the end of the\nyear. To access Avalaraâs tax services log, into the management portal . Then, from the main dashboard, click Returns . Avalara\nwill prompt the Avalara user to log in for security purposes, and redirect the user to the Returns portal.\nClick Get started to begin the tax return process. For more information, refer to this\nAvalara documentation: About Managed Returns .\nAlternatively, click on the Returns button in the top menu of the Avalara\nmanagement console.\n- AvaTax integration\n- AvaTax use\n- US Tax Compliance: Avatax elearning video\nUS Tax Compliance: Avatax elearning video", "headings": ["Transactions", "Edit transaction", "Filter", "Sort by", "Import-export", "Reports", "Add more jurisdictions", "Tax exemption certificate", "End-of-year operations"], "doc_id": "8ae11bb70bb483f4"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/taxes/avatax/avatax_use.html", "title": "AvaTax use", "module": "accounting", "section": "AvaTax use", "text": "# AvaTax use\n\nAvaTax is a tax calculation software that can be integrated with Odoo in the United States and\nCanada. Once the integration setup is complete, the calculated tax is simple and\nautomatic.\n\n## Tax calculation\n\nAutomatically calculate taxes on Odoo quotations and invoices with AvaTax by confirming the\ndocuments during the sales flow. Alternatively, calculate the taxes manually by clicking the Compute Taxes button, while these documents are in draft stage.\nClicking the Compute Taxes button recalculates taxes, if any product lines are edited\non the invoice.\nThe tax calculation is triggered during the following automatic trigger and manual trigger circumstances.\n\n### Automatic triggers\n\n- When the sales rep sends the quote by email with Send by email button (pop-up).\nWhen the sales rep sends the quote by email with Send by email button (pop-up).\n- When the customer views the online quote on the portal.\nWhen the customer views the online quote on the portal.\n- When a quote is confirmed and becomes a sales order.\nWhen a quote is confirmed and becomes a sales order.\n- When the customer views the invoice on the portal.\nWhen the customer views the invoice on the portal.\n- When a draft invoice is validated.\nWhen a draft invoice is validated.\n- When the customer views the subscription in the portal.\nWhen the customer views the subscription in the portal.\n- When a subscription generates an invoice.\nWhen a subscription generates an invoice.\n- When the customer gets to the last screen of the eCommerce checkout.\nWhen the customer gets to the last screen of the eCommerce checkout.\n\n### Manual triggers\n\n- Compute Taxes button at the bottom of the quote.\nCompute Taxes button at the bottom of the quote.\n- Compute Taxes button at the top of the invoice.\nCompute Taxes button at the top of the invoice.\nUse each of these buttons to manually re-calculate the sales tax.\nUse the Avalara Partner Code field that is available on customer records, quotations,\nand invoices to cross-reference data in Odoo and AvaTax. This field is located under the Other info tab of the sales order or quotation in the Sales section.\nOn the customer record, navigate to Contacts app and select a contact. Then open the Sales & Purchase tab and the Avalara Partner Code under the Sales section.\nThe Automatic Tax Mapping (AvaTax) fiscal position is also applied on those Odoo\ndocuments, like subscriptions.\n- Fiscal positions (tax and account mapping)\nFiscal positions (tax and account mapping)\n\n## AvaTax synchronization\n\nSynchronization occurs with AvaTax, when the invoice is created in Odoo. This means the sales tax\nis recorded with Avalara (AvaTax software developer).\nTo do so, navigate to Sales app ⣠Orders ⣠Quotations . Select a quotation from\nthe list.\nAfter confirming a quotation and validating the delivery, click Create Invoice . Indicate\nwhether it is a Regular invoice , Down payment (percentage) , or Down payment (fixed amount) .\nThen click Create and view invoice . The recorded taxes can be seen in the Journal Items tab of the invoice. There will be different taxes depending on the\nlocation of the Delivery Address .\nFinally, press the Confirm button to complete the invoice and synchronize with the\nAvaTax portal.\nAn invoice cannot be Reset to draft because this causes de-synchronization with the\nAvaTax Portal. Instead, click Add credit note and state: Sync with AvaTax Portal .\nSee this documentation: Credit notes and refunds .\n`SyncwithAvaTaxPortal`\n\n## Fixed price discounts\n\nAdd a fixed price discount to a valuable customer, by clicking Add a line on the\ncustomerâs invoice. Add the product discount, and set the Price to either a positive or\nnegative value. To recalculate the taxes, click Compute Taxes .\nTax calculation can even be done on negative subtotals and credit notes.\n\n## Logging\n\nIt is possible to log Avalara/ AvaTax actions in Odoo for further analysis, or verification of\nfunctionality. Logging is accessible through the AvaTax settings.\nTo start logging AvaTax actions, first, navigate to the Accounting app â£\nConfiguration ⣠Settings .\nThen, in the Taxes section, under the AvaTax settings, click Start logging for 30 minutes .\nUpon starting the log process, Odoo will log all Avalara/ AvaTax actions performed in the database.\nTo view the logs, click on Show logs to the right of the Start logging for 30\nminutes . This reveals a detailed list of Avalara/ AvaTax actions. This list is sortable by the\nfollowing columns:\n- Created on : timestamp of the AvaTax calculation.\nCreated on : timestamp of the AvaTax calculation.\n- Created by : numeric value of the user in the database.\nCreated by : numeric value of the user in the database.\n- Database name : name of the database.\nDatabase name : name of the database.\n- Type : two values can be chosen for this field, Server or Client .\nType : two values can be chosen for this field, Server or Client .\n- Name : Avalara service name. In this case, it will be AvaTax .\nName : Avalara service name. In this case, it will be AvaTax .\n- Level : by default, this will be INFO .\nLevel : by default, this will be INFO .\n`INFO`\n- Path : indicates the path taken to make the calculation.\nPath : indicates the path taken to make the calculation.\n- Line : indicates the line the calculation is made on.\nLine : indicates the line the calculation is made on.\n- Function : indicates the calculation taken on the line.\nFunction : indicates the calculation taken on the line.\nClick into the log line to reveal another field, called Message .\nThis field populates a raw transcription of the transaction, which involves the creation (or\nadjustment) of a sales invoice using the Avalara AvaTax API.\nThe transaction includes details, such as addresses for shipping from and to, line items describing\nthe products or services, tax codes, tax amounts, and other relevant information.\nThe Message contains the calculated taxes for different jurisdictions and confirms the\ncreation (or adjustment) of the transaction.\nCustom fields can be made using Odoo Studio . Click the (ellipsis) menu to the far-right of the header row. Then click Add custom field . This action opens Odoo Studio .\nOdoo Studio requires a custom pricing plan. Consult the databaseâs customer success manager\nfor more information on switching plans. Or to see if Odoo Studio is included in the databaseâs\ncurrent pricing plan. See this documentation: Studio .\n- AvaTax integration\n- Avalara (Avatax) portal\nAvalara (Avatax) portal\n- US Tax Compliance: Avatax elearning video\nUS Tax Compliance: Avatax elearning video\n- Fiscal positions (tax and account mapping)\nFiscal positions (tax and account mapping)", "headings": ["Tax calculation", "Automatic triggers", "Manual triggers", "AvaTax synchronization", "Fixed price discounts", "Logging"], "doc_id": "48ff95048652bf4b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/taxes/cash_basis.html", "title": "Cash basis taxes", "module": "accounting", "section": "Cash basis taxes", "text": "# Cash basis taxes\n\nCash basis taxes are due when the payment is made, as opposed to standard taxes that are due when\nthe invoice is confirmed. Reporting your income and expenses to the government based on the cash\nbasis method is mandatory in some countries and under some conditions.\nYou sell a product in the 1st quarter of your fiscal year, and the payment is received in the 2nd\nquarter. Based on the cash basis method, the tax you must pay is for the 2nd quarter.\n\n## Configuration\n\nGo to Accounting ⣠Configuration ⣠Settings and under the Taxes section, enable Cash Basis .\nThen, define the Tax Cash Basis Journal . Click on the external link button next to the\njournal to update its default properties such as the Journal Name , Type or Short Code .\nBy default, the journal entries of the Cash Basis Taxes journal are named using the CABA short code.\nOnce this is done, go to Accounting ⣠Configuration ⣠Accounting: Taxes to\nconfigure your taxes. You can either Create a new tax or update an existing one by\nclicking on it.\nThe Account column reflects the proper transitional accounts to post taxes until the\npayment is registered.\nIn the Advanced Options tab, decide of the Tax Exigilibity . Select Based on Payment , so the tax is due when the payment of the invoice is received. You can\nthen also define the Cash Basis Transition Account where the tax amount is recorded as\nlong as the original invoice has not been reconciled.\n\n## Impact of cash basis taxes on accounting\n\nTo illustrate the impact of cash basis taxes on accounting transactions, letâs take an example with\nthe sales of a product that costs 1,000$, with a cash basis tax of 15%.\nThe following entries are created in your accounting, and the tax report is currently empty.\nCustomer journal (INV)\nTemporary tax account $150\nWhen the payment is then received, it is registered as below :\nOnce the payment is registered, you can use the Cash Basis Entries smart button on\nthe invoice to access them directly.\nFinally, upon reconciliation of the invoice with the payment, the below entry is automatically\ncreated:\nTax Cash Basis Journal (Caba)\nIncome account $1,000\nTemporary tax account $150\nIncome account $1,000\nThe journal items Income account vs. Income account are neutral, but they\nare needed to ensure correct tax reports in Odoo with accurate base tax amounts.\nUsing a default Base Tax Received Account is recommended so your balance is at zero and\nyour income account is not polluted by unnecessary accounting movements. To do so, go to Configuration ⣠Settings ⣠Taxes , and select a Base Tax Received Account under Cash Basis .", "headings": ["Configuration", "Impact of cash basis taxes on accounting"], "doc_id": "b325a02bcbfb86c3"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/taxes/eu_distance_selling.html", "title": "EU intra-community distance selling", "module": "accounting", "section": "EU intra-community distance selling", "text": "# EU intra-community distance selling\n\nEU intra-community distance selling involves the cross-border trade of goods and services from\nvendors registered for VAT purposes to individuals (B2C) located in a European Union member state.\nThe transaction is conducted remotely, typically through online platforms, mail orders, telephone,\nor other means of communication.\nEU intra-community distance selling is subject to specific VAT rules and regulations. The vendor\nmust charge VAT per the VAT rate applicable in the buyerâs country.\nThis remains applicable even if the vendor is located outside of the European Union.\n\n## Configuration\n\nThe EU Intra-community Distance Selling feature helps you comply with this regulation by\ncreating and configuring new fiscal positions and taxes based on your companyâs country. To\nenable it, go to Accounting ⣠Configuration ⣠Settings ⣠Taxes , tick EU Intra-community Distance Selling , and Save .\nWhenever you add or modify taxes, you can automatically update your fiscal positions. To do so,\ngo to Accounting/Invoicing ⣠Settings ⣠Taxes ⣠EU Intra-community Distance\nSelling and click on the Refresh tax mapping .\nWe highly recommend checking that the proposed mapping is suitable for the products and services\nyou sell before using it.\n- Fiscal localizations\n- Fiscal positions (tax and account mapping)\nFiscal positions (tax and account mapping)\n\n## One-Stop Shop (OSS)\n\nThe OSS system introduced by the European Union simplifies VAT collection\nfor cross-border sales of goods and services. It primarily applies to business-to-consumer (B2C) cases. With the OSS, businesses can register for VAT in their home country and use a\nsingle online portal to handle VAT obligations for their sales within the EU. There are two\nprimary schemes : the Union OSS scheme for cross-border services and the Import OSS scheme\nfor goods valued at or below â¬150.\n\n### Reports\n\nTo generate OSS sales or OSS imports reports and submit them onto the OSS portal, go to Accounting ⣠Reporting ⣠Tax Report , click Report: Generic Tax\nreport , and select either OSS Sales or OSS Imports . Once selected, click on PDF , XLSX , or XML in the top-left corner. This generates the\ncurrently-opened report in the selected format. Once generated, log into the platform of your\ncompetent federal authority to submit it onto the OSS portal.\n- European Commission: OSS | Taxation and Customs Union\nEuropean Commission: OSS | Taxation and Customs Union", "headings": ["Configuration", "One-Stop Shop (OSS)", "Reports"], "doc_id": "14c4af3c498ea7a6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/taxes/fiscal_positions.html", "title": "Fiscal positions (tax and account mapping)", "module": "accounting", "section": "Fiscal positions (tax and account mapping)", "text": "# Fiscal positions (tax and account mapping)\n\nDefault taxes and accounts are set on products and customers to create new transactions on the fly.\nHowever, depending on the customersâ and providersâ localization and business type, using different\ntaxes and accounts for a transaction might be necessary.\nFiscal positions allow the creation of rules to adapt the taxes and accounts used for a\ntransaction automatically.\nThey can be applied automatically , manually , or assigned to a partner .\nSeveral default fiscal positions are available as part of your fiscal localization\npackage .\n\n## Configuration\n\n### Tax and account mapping\n\nTo edit or create a fiscal position, go to Accounting ⣠Configuration ⣠Fiscal\nPositions , and open the entry to modify or click on New .\nThe mapping of taxes and accounts is based on the default taxes and accounts defined in the\nproduct form.\n- To map to another tax or account, fill out the right column ( Tax to Apply / Account to Use Instead ).\nTo map to another tax or account, fill out the right column ( Tax to Apply / Account to Use Instead ).\n- To remove a tax, leave the field Tax to Apply empty.\nTo remove a tax, leave the field Tax to Apply empty.\n- To replace a tax with several other taxes, add multiple lines using the same Tax on\nProduct .\nTo replace a tax with several other taxes, add multiple lines using the same Tax on\nProduct .\nThe mapping only works with active taxes. Therefore, make sure they are active by going to Accounting ⣠Configuration ⣠Taxes .\n\n## Application\n\n### Automatic application\n\nTo automatically apply a fiscal position following a set of conditions, go to Accounting ⣠Configuration ⣠Fiscal Positions , open the fiscal position to\nmodify, and tick Detect Automatically .\nFrom there, several conditions can be activated:\n- VAT Required : the customerâs VAT number must be present on their contact form.\nVAT Required : the customerâs VAT number must be present on their contact form.\n- Country Group and Country : the fiscal position is only applied to the\nselected country or country group.\nCountry Group and Country : the fiscal position is only applied to the\nselected country or country group.\n- If the Verify VAT Numbers feature is enabled, any fiscal positions\nwith VAT required enabled will require Intra-Community valid VAT numbers to apply\nautomatically.\nIf the Verify VAT Numbers feature is enabled, any fiscal positions\nwith VAT required enabled will require Intra-Community valid VAT numbers to apply\nautomatically.\n- Taxes on eCommerce orders are automatically updated once the customer has logged in or\nfilled out their billing details.\nTaxes on eCommerce orders are automatically updated once the customer has logged in or\nfilled out their billing details.\nThe fiscal positionsâ sequence defines which fiscal position is applied if all conditions\nset on multiple fiscal positions are met simultaneously.\nFor example, suppose the first fiscal position in a sequence targets country A while the second\nfiscal position targets a country group that comprises country A . In that case, only the\nfirst fiscal position will be applied to customers from country A .\n\n### Manual application\n\nTo manually select a fiscal position, open a sales order, invoice, or bill, go to the Other Info tab and select the desired Fiscal Position before adding product\nlines.\n\n### Assign to a partner\n\nTo define which fiscal position must be used by default for a specific partner, go to Accounting ⣠Customers ⣠Customers , select the partner, open the Sales & Purchase tab, and select the Fiscal Position .\n- B2B (tax excluded) and B2C (tax included) pricing\nB2B (tax excluded) and B2C (tax included) pricing", "headings": ["Configuration", "Tax and account mapping", "Application", "Automatic application", "Manual application", "Assign to a partner"], "doc_id": "e5fecec8faf9f734"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/taxes/retention.html", "title": "Withholding taxes", "module": "accounting", "section": "Withholding taxes", "text": "# Withholding taxes\n\nA withholding tax , also known as retention tax, mandates the payer of a customer invoice to\ndeduct a tax from the payment and remit it to the government. Typically, a tax is included in the\nsubtotal to calculate the total amount paid, while withholding taxes are directly subtracted from\nthe payment.\n\n## Configuration\n\nIn Odoo, a withholding tax is defined by creating a negative tax. To create one, go\nto Accounting ⣠Configuration ⣠Taxes and, in the Amount field,\nenter a negative amount.\nThen, go to the Advanced Options tab and create a retention Tax Group .\nIf the retention is a percentage of a regular tax, create a Tax with a Tax Computation as a Group of Taxes . Then, set both the regular tax and\nthe retention one in the Definition tab.\n\n## Retention taxes on invoices\n\nOnce the retention tax has been created, it can be used on customer forms, sales orders, and\ncustomer invoices.\nSeveral taxes can be applied on a single customer invoice line.", "headings": ["Configuration", "Retention taxes on invoices"], "doc_id": "bd668414a6b40d58"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/taxes/tax_computation.html", "title": "Tax computation", "module": "accounting", "section": "Tax computation", "text": "# Tax computation\n\n## Tax computation\n\nThe Tax Computation field determines the relation between the tax amount and the base\nthe tax is based on. The following options are available:\n- Group of Taxes : a combination of several other taxes\nGroup of Taxes : a combination of several other taxes\n- Fixed : a fixed amount\nFixed : a fixed amount\n- Percentage of Price : a percentage of the\ntax-excluded sales price\nPercentage of Price : a percentage of the\ntax-excluded sales price\n- Percentage of Price Tax Included : a\npercentage of the tax-included total\nPercentage of Price Tax Included : a\npercentage of the tax-included total\n- Custom Formula : a custom, user-defined formula\nCustom Formula : a custom, user-defined formula\n\n### Group of taxes\n\nThe tax is a combination of multiple sub-taxes. You can add as many taxes as you want, in the order\nyou want them to be applied.\nMake sure the tax sequence is correct, as the display order determines the application order and\nmay affect tax computation, particularly if a tax affects the base of subsequent taxes .\n\n### Fixed\n\nThe tax has a fixed amount in the default currency. The amount remains the same per unit,\nregardless of the sales price.\nThe computation is \\(\\text{tax amount} = \\text{fixed tax amount} \\times \\text{quantity}\\) .\nA product has a sales price of $1000, and we apply a $10 Fixed tax. We then have:\n\n### Percentage of price\n\nThe tax rate is a percentage of the tax-excluded subtotal.\nThe exact tax computation depends on the Included in Price field,\nwhich determines whether the tax amount is included in the sales price.\nIf Included in Price is Tax Excluded , the computation is \\(\\text{tax amount} = \\text{sales price} \\times \\text{tax rate}\\) .\nA product has a sales price of $1000, and we apply a 10% Percentage of Price tax that is Tax Excluded . We then have:\nIf Included in Price is Tax Included , the computation is \\(\\text{tax amount} = \\text{sales price} \\times \\frac{\\text{tax rate}}{1 +\n\\text{tax rate}}\\) .\nA product has a sales price of $1000, and we apply a 10% Percentage of Price tax that is Tax Included . We then have:\n\n### Percentage of price tax included\n\nThis tax computation is rarely used and only useful in countries (e.g., Brazil, Bolivia) that\nquote tax rates as a percentage of the tax-included total.\nFor the more common need to compute tax amounts from a tax-included price, use the Percentage of Price tax computation with Included in Price set to Tax Included .\nThe tax rate is a percentage of the tax-included total.\nThe exact tax computation depends on the Included in Price field,\nwhich determines whether the tax amount is included in the sales price.\nIf Included in Price is set to Tax Excluded , the computation is \\(\\text{tax amount} = \\text{sales price} \\times \\frac{\\text{tax rate}}{1 -\n\\text{tax rate}}\\) .\nA product has a sales price of $1000, and we apply a 10% Percentage of Price\nTax Included tax that is Tax Excluded . We then have:\nNote that the real tax rate in terms of the tax-excluded price is \\(\\frac{111.11}{1000} = 11.111\\%\\) .\nIf Included in Price is set to Tax Included , the computation is \\(\\text{tax amount} = \\text{sales price} \\times \\text{tax rate}\\) .\nA product has a sales price of $1000, and we apply a 10% Percentage of Price Tax Included tax that is Tax Included .\nWe then have:\nNote that the real tax rate in terms of the tax-excluded price is \\(\\frac{100}{900} = 11.111\\%\\) .\n\n### Custom formula\n\nIf a tax can be expressed as a multiple of the quantity of the product to which it applies, it\ncan be defined as a Fixed tax. Doing so is strongly recommended\nover defining a Custom Formula tax.\nTo use Custom Formula taxes, install the Define\nTaxes as Python Code ( account_python_tax ) module.\n`account_python_tax`\nFor a Custom Formula tax, the tax amount is computed according to a Python expression\ndefined in the Formula field. The Python expression may contain the following tokens:\n- any of the following variables: price_unit : the unit price of the product base : the taxable basis on which the tax is applied - may differ from the price_unit if\nother taxes are applied first quantity : the quantity of the product product : the product record - product fields can also be accessed\nany of the following variables:\n- price_unit : the unit price of the product\nprice_unit : the unit price of the product\n`price_unit`\n- base : the taxable basis on which the tax is applied - may differ from the price_unit if\nother taxes are applied first\nbase : the taxable basis on which the tax is applied - may differ from the price_unit if\nother taxes are applied first\n`base`\n`price_unit`\n- quantity : the quantity of the product\nquantity : the quantity of the product\n`quantity`\n- product : the product record - product fields can also be accessed\nproduct : the product record - product fields can also be accessed\n`product`\n- integers and floating-point numbers\nintegers and floating-point numbers\n- the following permitted tokens: ( , ) , + , - , * , / , , , < , > , <= , >= , and , or , None , min , and max\nthe following permitted tokens: ( , ) , + , - , * , / , , , < , > , <= , >= , and , or , None , min , and max\n`(`\n`)`\n`+`\n`-`\n`*`\n`/`\n`,`\n`<`\n`>`\n`<=`\n`>=`\n`and`\n`or`\n`None`\n`min`\n`max`\nA product has a sales price of $1000, and we apply a Custom Formula tax with a Formula of min(base, 500) * 0.10 + max(base - 500, 0) * 0.20\n`min(base,500)*0.10+max(base-500,0)*0.20`\n\n## Included in price\n\nTo set a company-wide default for this setting, go to Accounting â£\nConfiguration ⣠Settings , find the Taxes section, and set the Prices setting to Tax Excluded or Tax Included . This setting cannot be changed\nonce invoices have been created.\nDefault indicates that the tax follows the company-wide default.\nTax Excluded indicates that the tax amount is not included in the sales price. The tax\ncomputation will therefore compute a tax amount on top of the sales price.\nTax Included indicates that the tax amount is included in the sales price. The tax\ncomputation will therefore split the sales price into a tax-excluded base and the tax amount. This\nmakes it suitable for B2C sales in most countries, where prices are quoted tax-inclusive.\nA product has a sales price of $1000, and we apply a 10% Percentage of Price tax\nwith Included in Price set to Tax Included . We then have:\nFor a guide on configuring tax-excluded and tax-included prices for B2B and B2C customers,\nsee B2B (tax excluded) and B2C (tax included) pricing .\n\n## Affect base of subsequent taxes\n\nThis setting controls how multiple taxes on a product line affect each other.\nIf this setting is enabled, this taxâs tax amount is included in the base of any subsequent tax\napplied on the same product line that has its Base affected by preceding taxes setting enabled. As such,\nthe subsequent taxâs base is the sum of the tax-excluded base and this taxâs tax amount.\nIf Affect base of subsequent taxes is enabled and Included in Price is\nset to Tax Excluded , subsequent taxes with the Base affected by\npreceding taxes setting enabled will be based on a modified sales price equal to the original\nsales price plus the tax amount.\nA product has a sales price of $1000, and we apply a 10% Percentage of Price tax where the Included in Price setting is set to Tax Excluded and\nthe Affect base of subsequent taxes setting is enabled. Any subsequent tax with\nits Base affected by preceding taxes will be based on a modified sales price of\n$1100.\nIf Affect base of subsequent taxes is enabled and Included in Price is\nset to Tax Included , subsequent taxes with the Base affected by\npreceding taxes setting enabled will be based on the original sales price.\nA product has a sales price of $1000, and we apply a 10% Percentage of Price tax where the Included in Price setting is set to Tax Included and\nthe Affect base of subsequent taxes setting is enabled. Any subsequent tax with\nits Base affected by preceding taxes will be based on the original sales price\nof $1000.\nIf this setting is disabled, the tax amount will not be included in the base of any subsequent tax\napplied on the same product line.\nIf Affect base of subsequent taxes is disabled and Included in Price is set to Tax Excluded , subsequent taxes with the Base affected by\npreceding taxes setting enabled will be based on the original sales price.\nA product has a sales price of $1000, and we apply a 10% Percentage of Price tax where the Included in Price setting is set to Tax Excluded and\nthe Affect base of subsequent taxes setting is enabled. Any subsequent tax with\nits Base affected by preceding taxes will be based on the original sales price\nof $1000.\nIf Affect base of subsequent taxes is disabled and Included in Price is set to Tax Included , subsequent taxes with the Base affected by\npreceding taxes setting enabled will be based on a modified sales price equal to the original\nsales price minus the tax amount.\nA product has a sales price of $1000, and we apply a 10% Percentage of Price tax where the Included in Price setting is set to Tax Included and\nthe Affect base of subsequent taxes setting is enabled. Any subsequent tax with\nits Base affected by preceding taxes will be based on a modified sales price of\n$909.09.\nThis setting is considered any time multiple taxes are applied to the same product line, whether\nvia a group of taxes or multiple taxes added directly to a product line.\nThe order in which taxes are applied depends only on the order in which they appear in the Taxes list, not on the order in which they are added to a product line.\nTo modify the order, go to Accounting ⣠Configuration ⣠Taxes , and drag and\ndrop taxes using the handles to the left of the tax names.\nRegardless of the order in the Taxes list, Tax Excluded taxes do not\naffect the base of subsequent Tax Included taxes (see the note in Base affected by preceding taxes ).\nIn the following example:\n- the Ecotax is a Fixed tax of â¬0.90 per unit, with the Affect base of\nsubsequent taxes setting enabled.\nthe Ecotax is a Fixed tax of â¬0.90 per unit, with the Affect base of\nsubsequent taxes setting enabled.\n- The 21% VAT tax is a 21% Percentage of Price tax with the Base affected\nby preceding taxes setting enabled.\nThe 21% VAT tax is a 21% Percentage of Price tax with the Base affected\nby preceding taxes setting enabled.\n- In the Taxes list, the 21% VAT tax comes after the Ecotax, as shown in the\nconfiguration above.\nIn the Taxes list, the 21% VAT tax comes after the Ecotax, as shown in the\nconfiguration above.\nWhen applying both taxes to a product line, the Ecotax amount is added to the basis of the 21%\nVAT tax.\n\n## Base affected by preceding taxes\n\nThis setting, which is only visible in developer mode ,\ndetermines whether any previous tax that affects the base of subsequent taxes will modify the sales price that this tax is based on.\nTaxes with Included in Price set to Tax Included do\nnot have this setting. Such taxes are never affected by previous Tax Excluded taxes,\nexcept if they have the Fixed tax computation type.", "headings": ["Tax computation", "Group of taxes", "Fixed", "Percentage of price", "Percentage of price tax included", "Custom formula", "Included in price", "Affect base of subsequent taxes", "Base affected by preceding taxes"], "doc_id": "e30ebf820c03c154"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/taxes/vat_verification.html", "title": "VAT numbers verification (VIES)", "module": "accounting", "section": "VAT numbers verification (VIES)", "text": "# VAT numbers verification (VIES)\n\nVAT Information Exchange System , or VIES , is a tool provided by the European Commission that allows you to check the validity of VAT\nnumbers for companies registered in the European Union.\nOdooâs VAT Validation feature uses the VIES to verify your contactsâ VAT numbers directly from\nOdooâs interface.\nRegardless of whether or not the Verify VAT Numbers feature is enabled, Odoo checks the format of\na contactâs VAT against the expected format of VAT numbers from that country.\n\n## VIES VAT number verification\n\nTo activate this feature, go to Accounting ⣠Configuration ⣠Settings . In the Taxes section, enable the Verify VAT Numbers feature, and click on Save .\nOnce the Verify VAT Numbers feature is enabled, if the contactâs Tax ID field is populated and its country is different from your companyâs country, Odoo displays an Intra-Community Valid checkbox. Odoo tests the VAT number through the VIES and\nautomatically checks or unchecks the Intra-Community Valid checkbox depending on the\nvalidity of the VAT number.\nIt is possible to manually override the Intra-Community Valid field on a contact in\ncase the automatic VIES check is incorrect (for example, if the company was recently created and\nits VAT is not yet in the VIES). This change is logged in the chatter for transparency.\nOdoo can automatically apply fiscal positions . If the Verify VAT\nNumbers feature is enabled, any fiscal positions with VAT required enabled will require\nIntra-Community valid VAT numbers to apply automatically.", "headings": ["VIES VAT number verification"], "doc_id": "5e849d707f97de63"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/vendor_bills.html", "title": "Vendor bills", "module": "accounting", "section": "Vendor bills", "text": "# Vendor bills\n\nVendor bills can be registered either manually or automatically in Odoo. The Aged Payable report provides an overview of all\noutstanding bills to help ensure timely payment of the correct amounts.\n- Tutorial Registering a vendor bill\nTutorial Registering a vendor bill\n- Manage vendor bills\n- Credit notes and refunds\nCredit notes and refunds\n\n## Bill creation\n\n### Manually\n\nTo create a vendor bill manually, go to Accounting ⣠Vendors ⣠Bills and\nclick New .\nAlternatively, it is possible to create a vendor bill from the Accounting dashboard:\n- either click New on the Vendor Bills journal;\neither click New on the Vendor Bills journal;\n- or click the (vertical ellipsis) icon of the Vendor Bills journal, then Bill under the New section.\nor click the (vertical ellipsis) icon of the Vendor Bills journal, then Bill under the New section.\n\n### Automatically\n\nVendor bills can be automatically created by sending an email to an email alias associated with the purchase journal, or by uploading a PDF .\n- Once the bill is uploaded, the PDF document appears on the right side of the screen, making it\neasy to fill in the bill information.\nOnce the bill is uploaded, the PDF document appears on the right side of the screen, making it\neasy to fill in the bill information.\n- Bills can be digitized for automatic\ncompletion and matched with purchase orders to replace OCR-detected data with the\nexisting purchase orderâs details.\nBills can be digitized for automatic\ncompletion and matched with purchase orders to replace OCR-detected data with the\nexisting purchase orderâs details.\n- Services such as digitizing scanned or PDF vendor bills in Odoo require In-App\nPurchase (IAP) credits.\nServices such as digitizing scanned or PDF vendor bills in Odoo require In-App\nPurchase (IAP) credits.\nTo automatically post bills from selected vendors, go to Accounting ⣠Vendors â£\nVendors and select the relevant vendor. In the Accounting tab, under the Automation section, update the Auto-post bills field with one of the\nfollowing options:\n- Always\n- Ask after 3 validations without edits\nAsk after 3 validations without edits\nVendor bills matching with purchase orders\n\n## Bill completion\n\nWhether the bill is created manually or automatically, make sure the following fields are\nappropriately completed:\n- Vendor : Odoo automatically fills in some information based on the information on the\nvendorâs contact record as well as previous purchase orders and bills.\nVendor : Odoo automatically fills in some information based on the information on the\nvendorâs contact record as well as previous purchase orders and bills.\n- Bill Reference : Add the sales order reference provided by the vendor. This field is\nused to match the products when they are received.\nBill Reference : Add the sales order reference provided by the vendor. This field is\nused to match the products when they are received.\n- Auto-Complete : Select a past bill/purchase order to complete the document\nautomatically. The Vendor field should be completed before completing this field.\nAuto-Complete : Select a past bill/purchase order to complete the document\nautomatically. The Vendor field should be completed before completing this field.\n- Bill Date : Select the documentâs issuance date.\nBill Date : Select the documentâs issuance date.\n- Accounting Date : Update the documentâs accounting registration date if needed.\nAccounting Date : Update the documentâs accounting registration date if needed.\n- Payment Reference : The Memo field automatically includes the payment\nreference once the payment is registered.\nPayment Reference : The Memo field automatically includes the payment\nreference once the payment is registered.\n- Recipient Bank : Indicates the account number to which the payment will be made. This\nfield is required when paying via batch payment files (such as NACHA and SEPA ).\nRecipient Bank : Indicates the account number to which the payment will be made. This\nfield is required when paying via batch payment files (such as NACHA and SEPA ).\n- Due Date or Payment Terms must be specified for the bill payment.\nDue Date or Payment Terms must be specified for the bill payment.\n- Journal : Select which journal should record the bill and in which currency .\nJournal : Select which journal should record the bill and in which currency .\nIn the Invoice Lines tab:\n- Product : Click Add a line , then search for and select the product.\nProduct : Click Add a line , then search for and select the product.\n- Quantity\n- Taxes (if applicable)\nTaxes (if applicable)\nIf the bill line does not correspond to an existing product in the database, click the (bars) icon to enter a description for the bill line without\nlinking it to a product.\nTo access the product catalog and view all items in an organized display, click Catalog .\nWhen the products and quantities are selected, click Back to Bill to return to the\nvendor bill; the selected catalog items will appear in the vendor bill lines.\nMultiple bills for the same purchase order may be issued if the vendor is on back-order and sends\ninvoices as products are shipped or if the vendor sends partial bills or requests a deposit. In\nthis case, multiple bills may have the same Bill Reference .\n\n## Bill confirmation\n\nClick Confirm when the document is completed. The status changes to Posted ,\nand a journal entry is generated based on the vendor bill information. On confirmation, Odoo assigns\neach vendor bill a unique number from a defined sequence .\nOnce confirmed, a vendor bill can no longer be updated. Click Reset to draft if\nchanges are required.\n\n## Payment and reconciliation\n\nTo register a payment, click on Pay . In the Pay window, select the Journal , the Payment Method , the Amount , and the Currency .\nWhen the Amount paid is less than the total remaining amount on the vendor bill, the\npayment is partial , and the Payment\nDifference field displays the outstanding balance.\nThe Memo field is filled automatically if the Payment Reference has been set\ncorrectly on the vendor bill. If the field is empty, select the vendor invoice number as a\nreference.\nThen click Create payment . An In Payment / Partial banner appears\non the bill until it is reconciled and its status updates to Paid .\n- Payments\n- Bank reconciliation\n\n## Aged payable report\n\nTo get an overview of the open vendor bills and their due dates, go to Accounting\n⣠Reporting ⣠Aged payable .\nClick the (right arrow) icon next to a vendor to view the details\nof all their outstanding bills, including the due dates and amounts.\nClick PDF or XLSX to generate a PDF or XLSX file, respectively.", "headings": ["Bill creation", "Manually", "Automatically", "Bill completion", "Bill confirmation", "Payment and reconciliation", "Aged payable report"], "doc_id": "4cd5da1f5e05273a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/vendor_bills/assets.html", "title": "Non-current assets and fixed assets", "module": "accounting", "section": "Non-current assets and fixed assets", "text": "# Non-current assets and fixed assets\n\nNon-current Assets , also known as long-term assets , are investments that are expected to be\nrealized after one year. They are capitalized rather than being expensed and appear on the companyâs\nbalance sheet. Depending on their nature, they may undergo depreciation .\nFixed Assets are a type of Non-current Assets and include the properties bought for their\nproductive aspects, such as buildings, vehicles, equipment, land, and software.\nFor example, letâs say we buy a car for $ 27,000. We plan to amortize it over five years, and we\nwill sell it for $ 7,000 afterward. Using the linear, or straight-line, depreciation method,\n$ 4,000 are expensed each year as depreciation expenses . After five years, the Accumulated\nDepreciation amount reported on the balance sheet equals $ 20,000, leaving us with $ 7,000 of Not Depreciable Value , or Salvage value.\nOdoo Accounting handles depreciation by creating all depreciation entries automatically in draft\nmode . They are then posted periodically.\nOdoo supports the following Depreciation Methods :\n- Straight Line\n- Declining\n- Declining Then Straight Line\nDeclining Then Straight Line\nThe server checks once a day if an entry must be posted. It might then take up to 24 hours before\nyou see a change from draft to posted .\n\n## Prerequisites\n\nSuch transactions must be posted on an Assets Account rather than on the default\nexpense account.\n\n### Configure an Assets Account\n\nTo configure your account in the Chart of Accounts , go to Accounting â£\nConfiguration ⣠Chart of Accounts , click on Create , and fill out the form.\nThis accountâs type must be either Fixed Assets or Non-current Assets .\n\n### Post an expense to the right account\n\n#### Select the account on a draft bill\n\nOn a draft bill, select the right account for all the assets you are buying.\n\n#### Choose a different Expense Account for specific products\n\nStart editing the product, go to the Accounting tab, select the right Expense Account , and\nsave.\nIt is possible to automate the creation of assets entries for these\nproducts.\n\n#### Change the account of a posted journal item\n\nTo do so, open your Purchases Journal by going to Accounting ⣠Accounting â£\nPurchases , select the journal item you want to modify, click on the account, and select the right\none.\n\n## Assets entries\n\n### Create a new entry\n\nAn Asset entry automatically generates all journal entries in draft mode . They are then posted\none by one at the right time.\nTo create a new entry, go to Accounting ⣠Accounting ⣠Assets , click on Create , and fill out the form.\nClick on select related purchases to link an existing journal item to this new entry. Some\nfields are then automatically filled out, and the journal item is now listed under the Related\nPurchase tab.\nOnce done, you can click on Compute Depreciation (next to the Confirm button) to generate all\nthe values of the Depreciation Board . This board shows you all the entries that Odoo will post\nto depreciate your asset, and at which date.\n\n#### What does âProrata Temporisâ mean?\n\nThe Prorata Temporis feature is useful to depreciate your assets the most accurately possible.\nWith this feature, the first entry on the Depreciation Board is computed based on the time left\nbetween the Prorata Date and the First Depreciation Date rather than the default amount of time\nbetween depreciations.\nFor example, the Depreciation Board above has its first depreciation with an amount of $ 241.10\nrather than $ 4,000.00. Consequently, the last entry is also lower and has an amount of $ 3758.90.\n\n#### What are the different Depreciation Methods\n\nThe Straight Line Depreciation Method divides the initial Depreciable Value by the number of\ndepreciations planned. All depreciation entries have the same amount.\nThe Declining Depreciation Method multiplies the Depreciable Value by the Declining Factor for each entry. Each depreciation entry has a lower amount than the previous entry. The last\ndepreciation entry doesnât use the declining factor but instead has an amount corresponding to the\nbalance of the depreciable value so that it reaches $0 by the end of the specified duration.\nThe Declining Then Straight Line Depreciation Method uses the Declining Method, but with a\nminimum Depreciation equal to the Straight Line Method. This method ensures a fast depreciation\nat the beginning, followed by a constant one afterward.\n\n### Assets from the Purchases Journal\n\nYou can create an asset entry from a specific journal item in your Purchases Journal .\nTo do so, open your Purchases Journal by going to Accounting ⣠Accounting â£\nPurchases , and select the journal item you want to record as an asset. Make sure that it is posted\nin the right account (see: Change the account of a posted journal item ).\nThen, click on Action , select Create Asset , and fill out the form the same way you would do to create a new entry .\n\n## Modification of an Asset\n\nYou can modify the values of an asset to increase or decrease its value.\nTo do so, open the asset you want to modify, and click on Modify Depreciation . Then, fill out the\nform with the new depreciation values and click on Modify .\nA decrease in value posts a new Journal Entry for the Value Decrease and modifies all the\nfuture unposted Journal Entries listed in the Depreciation Board.\nAn increase in value requires you to fill out additional fields related to the account movements\nand creates a new Asset entry with the Value Increase . The Gross Increase Asset Entry can be\naccessed with a Smart Button.\n\n## Disposal of Fixed Assets\n\nTo sell an asset or dispose of it implies that it must be removed from the Balance Sheet.\nTo do so, open the asset you want to dispose of, click on Sell or Dispose , and fill out the form.\nOdoo Accounting then generates all the journal entries necessary to dispose of the asset, including\nthe gain or loss on sale, which is based on the difference between the assetâs book value at the\ntime of the sale and the amount it is sold for.\nTo record the sale of an asset, you must first post the related Customer Invoice so you can link\nthe sale of the asset with it.\n\n## Assets Models\n\nYou can create Assets Models to create your Asset entries faster. It is particularly useful if\nyou recurrently buy the same kind of assets.\nTo create a model, go to Accounting ⣠Configuration ⣠Assets Models , click on Create , and fill out the form the same way you would do to create a new entry.\nYou can also convert a confirmed Asset entry into a model by opening it from Accounting ⣠Accounting ⣠Assets and then, by clicking on the button Save\nModel .\n\n### Apply an Asset Model to a new entry\n\nWhen you create a new Asset entry, fill out the Fixed Asset Account with the right asset\naccount.\nNew buttons with all the models linked to that account appear at the top of the form. Clicking on a\nmodel button fills out the form according to that model.\n\n## Automate the Assets\n\nWhen you create or edit an account of which the type is either Non-current Assets or Fixed\nAssets , you can configure it to create assets for the expenses that are credited on it\nautomatically.\nYou have three choices for the Automate Assets field:\n- No: this is the default value. Nothing happens.\nNo: this is the default value. Nothing happens.\n- Create in draft: whenever a transaction is posted on the account, a draft Assets entry is\ncreated, but not validated. You must first fill out the form in Accounting â£\nAccounting ⣠Assets .\nCreate in draft: whenever a transaction is posted on the account, a draft Assets entry is\ncreated, but not validated. You must first fill out the form in Accounting â£\nAccounting ⣠Assets .\n- Create and validate: you must also select an Asset Model (see: Assets Models ). Whenever a\ntransaction is posted on the account, an Assets entry is created and immediately validated.\nCreate and validate: you must also select an Asset Model (see: Assets Models ). Whenever a\ntransaction is posted on the account, an Assets entry is created and immediately validated.\nYou can, for example, select this account as the default Expense Account of a product to\nfully automate its purchase. (see: Choose a different Expense Account for specific products ).\n- Chart of accounts", "headings": ["Prerequisites", "Configure an Assets Account", "Post an expense to the right account", "Assets entries", "Create a new entry", "Assets from the Purchases Journal", "Modification of an Asset", "Disposal of Fixed Assets", "Assets Models", "Apply an Asset Model to a new entry", "Automate the Assets"], "doc_id": "7fc050754fe145ba"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/vendor_bills/deferred_expenses.html", "title": "Deferred expenses", "module": "accounting", "section": "Deferred expenses", "text": "# Deferred expenses\n\nDeferred expenses and prepayments (also known as prepaid expenses ) are both costs that\nhave already occurred for products or services yet to be received.\nSuch costs are assets for the company that pays them since it already paid for products and\nservices but has either not yet received them or not yet used them. The company cannot report them\non the current profit and loss statement , or income statement , since the payments will be\neffectively expensed in the future.\nThese future expenses must be deferred on the companyâs balance sheet until the moment in time they\ncan be recognized , at once or over a defined period, on the profit and loss statement.\nFor example, letâs say we pay $1200 at once for one year of insurance. We already pay the cost now\nbut havenât used the service yet. Therefore, we post this new expense in a prepayment account and\ndecide to recognize it on a monthly basis. Each month, for the next 12 months, $100 will be\nrecognized as an expense.\nOdoo Accounting handles deferred expenses by spreading them across multiple entries that are\nposted periodically.\nThe server checks once a day if an entry must be posted. It might then take up to 24 hours before\nyou see a change from Draft to Posted .\n\n## Configuration\n\nMake sure the default settings are correctly configured for your business. To do so, go to Accounting ⣠Configuration ⣠Settings . The following options are available:\nThe deferral entries are posted in this journal.\nExpenses are deferred on this Current Asset account until they are recognized.\nBy default, Odoo automatically generates the deferral entries when you post a vendor bill. However, you can also choose to generate them manually by selecting the Manually & Grouped option instead.\nSuppose a bill of $1200 must be deferred over 12 months.\n- The Months option accounts for $100 each month prorated to the number of days in\nthat month (e.g., $50 for the first month if the Start Date is set to the 15th of\nthe month).\nThe Months option accounts for $100 each month prorated to the number of days in\nthat month (e.g., $50 for the first month if the Start Date is set to the 15th of\nthe month).\n- The Full Months option considers each month started to be full (e.g., $100 for the\nfirst month even if the Start Date is set to the 15th of the month); this means that\nwith the Full Months option, a full $100 is recognized in the first partial month,\neliminating the need for a 13th month to recognize any remainder as would be the case when using\nthe Months option.\nThe Full Months option considers each month started to be full (e.g., $100 for the\nfirst month even if the Start Date is set to the 15th of the month); this means that\nwith the Full Months option, a full $100 is recognized in the first partial month,\neliminating the need for a 13th month to recognize any remainder as would be the case when using\nthe Months option.\n- The Days option accounts for different amounts depending on the number of days in\neach month (e.g., ~$102 for January and ~$92 for February).\nThe Days option accounts for different amounts depending on the number of days in\neach month (e.g., ~$102 for January and ~$92 for February).\n\n## Generate deferral entries on validation\n\nMake sure the Start Date and End Date fields are visible in the Invoice Lines tab. In most cases, the Start Date should be in the same\nmonth as the Bill Date . Deferred expense entries are posted from the bill date and\nare displayed in the report accordingly.\nFor each line of the bill that should be deferred, specify the start and end dates of the deferral\nperiod.\nIf the Generate Entries field is set to On invoice/bill validation , Odoo\nautomatically generates the deferral entries when the bill is validated. Click on the Deferred Entries smart button to see them.\nOne entry, dated on the same day as the billâs accounting date, moves the bill amounts from the\nexpense account to the deferred account. The other entries are deferral entries which will, month\nafter month, move the bill amounts from the deferred account to the expense account to recognize\nthe expense.\nYou can defer a January bill of $1200 over 12 months by specifying a start date of 01/01/2023\nand an end date of 12/31/2023. At the end of August, $800 is recognized as an expense,\nwhereas $400 remains on the deferred account.\n\n## Reporting\n\nThe deferred expense report computes an overview of the necessary deferral entries for each account.\nTo access it, go to Accounting ⣠Reporting ⣠Deferred Expense .\nTo view the journal items of each account, click on the account name and then Journal\nItems .\nOnly bills whose accounting date is before the end of the period of the report\nare taken into account.\n\n## Generate grouped deferral entries manually\n\nIf you have a lot of deferred revenues and wish to reduce the number of journal entries created, you\ncan generate deferral entries manually. To do so, set the Generate Entries field in the Settings to Manually & Grouped . Odoo then aggregates the deferred amounts in a\nsingle entry.\nAt the end of each month, go to the Deferred Expenses report and click the Generate Entries button. This generates two deferral entries:\n- One dated at the end of the month which aggregates, for each account, all the deferred amounts\nof that month. This means that at the end of that period, a part of the deferred expense is\nrecognized.\nOne dated at the end of the month which aggregates, for each account, all the deferred amounts\nof that month. This means that at the end of that period, a part of the deferred expense is\nrecognized.\n- The reversal of this created entry, dated on the following day (i.e., the first day of the\nnext month) to cancel the previous entry.\nThe reversal of this created entry, dated on the following day (i.e., the first day of the\nnext month) to cancel the previous entry.\n- Bill A: $1200 to be deferred from 01/01/2023 to 12/31/2023\nBill A: $1200 to be deferred from 01/01/2023 to 12/31/2023\n- Bill B: $600 to be deferred from 01/01/2023 to 12/31/2023\nBill B: $600 to be deferred from 01/01/2023 to 12/31/2023\nAt the end of January, after clicking the Generate Entries button,\nthere are the following entries:\n- Entry 1 dated on the 31st January: Line 1: Expense account -1200 -600 = -1800 (cancelling the total of both bills) Line 2: Expense account 100 + 50 = 150 (recognizing 1/12 of bill A and bill B) Line 3: Deferred account 1800 - 150 = 1650 (amount that has yet to be deferred later\non)\nEntry 1 dated on the 31st January:\n- Line 1: Expense account -1200 -600 = -1800 (cancelling the total of both bills)\nLine 1: Expense account -1200 -600 = -1800 (cancelling the total of both bills)\n- Line 2: Expense account 100 + 50 = 150 (recognizing 1/12 of bill A and bill B)\nLine 2: Expense account 100 + 50 = 150 (recognizing 1/12 of bill A and bill B)\n- Line 3: Deferred account 1800 - 150 = 1650 (amount that has yet to be deferred later\non)\nLine 3: Deferred account 1800 - 150 = 1650 (amount that has yet to be deferred later\non)\n- Entry 2 dated on the 1st February, the reversal of the previous entry: Line 1: Expense account 1800 Line 2: Deferred account -150 Line 3: Expense account -1650\nEntry 2 dated on the 1st February, the reversal of the previous entry:\n- Line 1: Expense account 1800\nLine 1: Expense account 1800\n- Line 2: Deferred account -150\nLine 2: Deferred account -150\n- Line 3: Expense account -1650\nLine 3: Expense account -1650\nAt the end of February, after clicking the Generate Entries button,\nthere are the following entries:\n- Entry 1 dated on the 28th February: Line 1: Expense account -1200 -600 = -1800 (cancelling the total of both bills) Line 2: Expense account 200 + 100 = 300 (recognizing 2/12 of bill A and bill B) Line 3: Deferred account 1800 - 300 = 1500 (amount that has yet to be deferred later\non)\nEntry 1 dated on the 28th February:\n- Line 1: Expense account -1200 -600 = -1800 (cancelling the total of both bills)\nLine 1: Expense account -1200 -600 = -1800 (cancelling the total of both bills)\n- Line 2: Expense account 200 + 100 = 300 (recognizing 2/12 of bill A and bill B)\nLine 2: Expense account 200 + 100 = 300 (recognizing 2/12 of bill A and bill B)\n- Line 3: Deferred account 1800 - 300 = 1500 (amount that has yet to be deferred later\non)\nLine 3: Deferred account 1800 - 300 = 1500 (amount that has yet to be deferred later\non)\n- Entry 2 dated on the 1st March, the reversal of the previous entry.\nEntry 2 dated on the 1st March, the reversal of the previous entry.\nThe same computation is done for each month until October.\nAt the end of November, after clicking the Generate Entries button,\nthere are the following entries:\n- Entry 1 dated on the 30th November: Line 1: Expense account -1200 -600 = -1800 (cancelling the total of both bills) Line 2: Expense account 1100 + 550 = 1650 (recognizing 11/12 of bill A and bill B) Line 3: Deferred account 1800 - 1650 = 150 (amount that has yet to be deferred later\non)\nEntry 1 dated on the 30th November:\n- Line 1: Expense account -1200 -600 = -1800 (cancelling the total of both bills)\nLine 1: Expense account -1200 -600 = -1800 (cancelling the total of both bills)\n- Line 2: Expense account 1100 + 550 = 1650 (recognizing 11/12 of bill A and bill B)\nLine 2: Expense account 1100 + 550 = 1650 (recognizing 11/12 of bill A and bill B)\n- Line 3: Deferred account 1800 - 1650 = 150 (amount that has yet to be deferred later\non)\nLine 3: Deferred account 1800 - 1650 = 150 (amount that has yet to be deferred later\non)\n- Entry 2 dated on the 1st December, the reversal of the previous entry.\nEntry 2 dated on the 1st December, the reversal of the previous entry.\nThere is no need to generate entries in December. Indeed, if we do the computation for\nDecember, we will have an amount of 0 to be deferred.\nIf we aggregate everything, we would have:\n- bill A and bill B\n- two entries (one for the deferral and one for the reversal) for each month from January to\nNovember\ntwo entries (one for the deferral and one for the reversal) for each month from January to\nNovember\nTherefore, at the end of December, bills A and B are fully recognized as expense only once in\nspite of all the created entries thanks to the reversal mechanism.", "headings": ["Configuration", "Generate deferral entries on validation", "Reporting", "Generate grouped deferral entries manually"], "doc_id": "8fbb3717b33f4fbd"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/vendor_bills/invoice_digitization.html", "title": "Document digitization", "module": "accounting", "section": "Document digitization", "text": "# Document digitization\n\nDocument digitization refers to the process of converting paper or digital documents into records\nin a database. Using OCR and artificial intelligence\ntechnologies, Odoo reads the content and automatically creates and fills in the recordâs details.\nThis process is mainly used for vendor bills (or refunds).\nAlthough less common, this digitization process can also be applied to customer invoices and\ncredit notes. The settings need to be\nadjusted accordingly.\n- Test Odooâs invoice digitization\nTest Odooâs invoice digitization\n- Odoo Tutorials: Vendor Bill Digitization\nOdoo Tutorials: Vendor Bill Digitization\n- In-app purchases (IAP)\nIn-app purchases (IAP)\n\n## Configuration\n\nGo to Accounting ⣠Configuration ⣠Settings and navigate to the Digitization section. Enable the Document Digitization option and choose\nwhether Vendor Bills should be processed automatically or on demand.\nIf the Single Invoice Line Per Tax option is enabled, only one line is created per\ntax in the new vendor bill, regardless of the number of lines on it.\n\n## Vendor bills upload\n\nVendor bills are uploaded manually or sent to a designated email alias to be digitized. They can\nalso be automatically posted for selected\nvendors.\nOnce the bill is uploaded, the document preview appears on the right side of the screen.\n\n### Manual upload\n\nIn the Accounting dashboard, drag and drop vendor bills into the desired purchase journal or click Upload on the purchase journal.\n\n### Upload via email alias\n\nVendor bills can be uploaded via an email alias associated with the relevant journal in two ways:\n- scanned from a connected scanner configured to send email to an email alias;\nscanned from a connected scanner configured to send email to an email alias;\n- sent directly to an email alias.\nsent directly to an email alias.\nEach PDF attached to the email is automatically converted into a new draft vendor bill.\n- Only PDF and XML formats are processed via an email alias associated with a journal.\nOnly PDF and XML formats are processed via an email alias associated with a journal.\n- JPEG files must be processed via email alias in the Documents app .\nJPEG files must be processed via email alias in the Documents app .\nTo add an email alias to a journal, follow these steps:\n- Make sure an alias domain has been\nconfigured.\nMake sure an alias domain has been\nconfigured.\n- The default email alias vendor-bills@ followed by the alias domain is automatically created\nand available in the Advanced Settings tab of the Vendor Bills journal.\nThe default email alias vendor-bills@ followed by the alias domain is automatically created\nand available in the Advanced Settings tab of the Vendor Bills journal.\n`vendor-bills@`\n- To change a default email alias, go to Accounting ⣠Configuration â£\nJournals , select the corresponding journal, and edit the Email Alias in the Advanced Settings tab.\nTo change a default email alias, go to Accounting ⣠Configuration â£\nJournals , select the corresponding journal, and edit the Email Alias in the Advanced Settings tab.\n- Configure the connected scanner to send scanned documents to the email alias, if needed.\nConfigure the connected scanner to send scanned documents to the email alias, if needed.\nAlternatively, an email alias in the Documents app can be used\nto automatically send vendor bills to the Finance folder (e.g., inbox-financial@example.odoo.com ).\n`inbox-financial@example.odoo.com`\n\n### Automatic vendor bill posting\n\nTo use the Auto-post bills option, the Digitize automatically setting in\nthe Document Digitization section must be\nenabled for vendor bills.\nTo automatically post digitized vendor bills for specific vendors, go to Accounting\n⣠Vendors ⣠Vendors and click the desired vendor. In the Accounting tab of the\ncontact form, select an Auto-post bills option in the Automation section:\n- Always\n- Ask after 3 validations without edits : When the third uploaded bill is confirmed\nwithout any edits, an Autopost Bills window appears. The following options can be\nchosen: Activate auto-validation , Ask me later , or Never for\nthis vendor .\nAsk after 3 validations without edits : When the third uploaded bill is confirmed\nwithout any edits, an Autopost Bills window appears. The following options can be\nchosen: Activate auto-validation , Ask me later , or Never for\nthis vendor .\nSince automation is triggered after three validated bills without edits, the contact name must\nalready exist in the database, and each uploaded vendor bill must include a bill date.\n\n## Digitization and data recognition with AI\n\nDepending on the settings , documents are either\nautomatically digitized or require manual processing if digitization is set to on-demand only.\nTo manually digitize an uploaded document , click Digitize document .\nOnce the document has been digitized, a blue banner appears; click Refresh . Review and correct any information uploaded during digitization: click on the\nrelated field(s) to edit them, or click Reload AI data to refresh the data.\nThen, click Confirm to post the document.\nOnce a document has been digitized, the Vendor field remains empty if the vendor\ndoesnât exist in the database. To add it, click the (down arrow) in the Vendor field; the vendor name appears highlighted in the document preview on\nthe right. Click it to open a new vendor form with the name pre-filled.\nThe following vendor bill fields are recognized by OCR:\n- Vendor , Bill Reference , Bill Date , Payment\nReference (only in the Belgian +++xxx/xxxx/xxxxx+++ format), Recipient Bank , Due Date , and the currency (in a multi-currency environment and if the currency is activated).\nVendor , Bill Reference , Bill Date , Payment\nReference (only in the Belgian +++xxx/xxxx/xxxxx+++ format), Recipient Bank , Due Date , and the currency (in a multi-currency environment and if the currency is activated).\n- From the Invoices Lines tab: Product description/label, Quantity , unit Price , Taxes (if the tax is activated ; this field is not recognized by OCR for the Indian\nlocalization ), Untaxed Amount , and Total .\nFrom the Invoices Lines tab: Product description/label, Quantity , unit Price , Taxes (if the tax is activated ; this field is not recognized by OCR for the Indian\nlocalization ), Untaxed Amount , and Total .\n\n## Purchase order matching\n\nWhen a digitized vendor bill is recognized by OCR , Odoo\nsearches the database for a matching purchase order. If found, the vendor bill can be manually\nmatched with the existing open purchase order lines.\nOnce a vendor bill has been uploaded and digitized , click the Purchase\nmatching smart button to access the Purchase matching list view, displaying all\npurchase order lines linked to the vendor assigned to the vendor bill. Then, select the relevant\npurchase order lines and the draft vendor bill (shown in grey), and click Match .\nIn the Purchase Matching list view, update the Quantity and Price in the purchase order lines, if necessary.\nIf there is no existing purchase order related to the vendor of the uploaded vendor bill, a new\npurchase order can be directly created from the vendor bill lines. To do so, follow these steps:\n- Once the vendor bill is uploaded, make sure the Vendor field is filled in with the\ncorrect vendor.\nOnce the vendor bill is uploaded, make sure the Vendor field is filled in with the\ncorrect vendor.\n- Click the Purchase matching smart button, select the draft vendor bill in the list\n(shown in grey), and click Add to PO .\nClick the Purchase matching smart button, select the draft vendor bill in the list\n(shown in grey), and click Add to PO .\n- In the Add to Purchase Order window, start typing in the Purchase Order field and select Create and edit .\nIn the Add to Purchase Order window, start typing in the Purchase Order field and select Create and edit .\n- In the Create Purchase Order window, select the vendor assigned to the vendor bill,\nthen complete all required fields and click Confirm .\nIn the Create Purchase Order window, select the vendor assigned to the vendor bill,\nthen complete all required fields and click Confirm .\n- In the Purchase Matching list view, select the relevant purchase order lines and the\ndraft vendor bill (shown in grey), and click Match .\nIn the Purchase Matching list view, select the relevant purchase order lines and the\ndraft vendor bill (shown in grey), and click Match .\nIf any information required for the purchase order fields is missing, click Save and\nClose in the Create Purchase Order window. Then, open the Purchase app to fill in\nthe fields and confirm the purchase order .\n- Electronic vendor bills with embedded XML ensure more accurate and efficient processing.\nElectronic vendor bills with embedded XML ensure more accurate and efficient processing.\n- Alternatively, the Auto-complete feature\ncan transfer information from the purchase order to the vendor bill, without requiring OCR.\nAlternatively, the Auto-complete feature\ncan transfer information from the purchase order to the vendor bill, without requiring OCR.\n\n## Pricing\n\nThe document digitization feature is an In-App Purchase (IAP) service requiring prepaid credits.\nDigitizing one document uses one credit.\nTo buy credits, go to the Settings app or Accounting â£\nConfiguration ⣠Settings , navigate to the Digitization section, and click Buy credits .\n- Odoo Enterprise users with a valid subscription get free credits to test IAP features before\npurchasing more credits for the database. This includes demo/training databases, educational\ndatabases, and one-app-free databases.\nOdoo Enterprise users with a valid subscription get free credits to test IAP features before\npurchasing more credits for the database. This includes demo/training databases, educational\ndatabases, and one-app-free databases.\n- XML files donât require OCR credits because they contain structured data that can be processed\ndirectly, without OCR.\nXML files donât require OCR credits because they contain structured data that can be processed\ndirectly, without OCR.\n- Odoo In-App Purchase Privacy Policy\nOdoo In-App Purchase Privacy Policy\n- In-app purchases (IAP)\nIn-app purchases (IAP)", "headings": ["Configuration", "Vendor bills upload", "Manual upload", "Upload via email alias", "Automatic vendor bill posting", "Digitization and data recognition with AI", "Purchase order matching", "Pricing"], "doc_id": "924f3a88cbcda3a1"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/accounting/vendor_bills/sequence.html", "title": "Vendor bill sequence", "module": "accounting", "section": "Vendor bill sequence", "text": "# Vendor bill sequence\n\nWhen confirming a vendor bill, Odoo generates a unique vendor bill reference number. By default, it\nuses the sequence format BILL/year/month/incrementing-number (e.g., BILL/2025/01/00001 ), which\nrestarts from 00001 each year.\n`BILL/year/month/incrementing-number`\n`BILL/2025/01/00001`\n`00001`\nHowever, it is possible to change the sequence format and its periodicity, and to mass-resequence vendor bills .\nChanges made to reference numbers are logged in the chatter.\n\n## Changing the default sequence\n\nTo customize the default sequence, open the last confirmed vendor bill, click Reset to\nDraft , and edit the vendor billâs reference number.\nOdoo then explains how the detected format will be applied to all future vendor bills. For example,\nif the current vendor billâs month is withdrawn, the sequenceâs periodicity will change to every\nyear instead of every month.\nThe sequence format can be edited directly when creating the first vendor bill of a given\nsequence period.\n\n## Mass-resequencing vendor bills\n\nIt can be helpful to resequence multiple vendor bill numbers. For example, when importing vendor\nbills from another accounting system and the reference originates from the previous software,\ncontinuity for the current year must be maintained without restarting from the beginning.\nThis feature is only available to users with administrator or advisor access.\nFollow these steps to resequence vendor bill numbers:\n- Activate the developer mode .\nActivate the developer mode .\n- In the vendor bills list view, select the vendor bills that need a new sequence.\nIn the vendor bills list view, select the vendor bills that need a new sequence.\n- Click the Actions menu and select Resequence .\nClick the Actions menu and select Resequence .\n- In the Ordering field, choose to Keep current order : The order of the numbers remains the same. Reorder by accounting date : The number is reordered by accounting date.\nIn the Ordering field, choose to\n- Keep current order : The order of the numbers remains the same.\nKeep current order : The order of the numbers remains the same.\n- Reorder by accounting date : The number is reordered by accounting date.\nReorder by accounting date : The number is reordered by accounting date.\n- Set the First New Sequence .\nSet the First New Sequence .\n- Preview Modifications and click Confirm .\nPreview Modifications and click Confirm .\n- To indicate where the sequence change began, the first vendor bill in the new sequence is\nhighlighted in red in the Vendor Bills list. This visual marker is permanent\nand purely informational.\nTo indicate where the sequence change began, the first vendor bill in the new sequence is\nhighlighted in red in the Vendor Bills list. This visual marker is permanent\nand purely informational.\n- If there are any irregularities in the new sequence, such as gaps, cancelled, or deleted\nentries within the open period, a Gaps in the sequence message appears in the Vendor Bills journal on the Accounting dashboard. To view more details about the\nrelated vendor bill(s), click Gaps in the sequence . This visual marker is temporary\nand will disappear once the entryâs accounting date is on or after the lock date.\nIf there are any irregularities in the new sequence, such as gaps, cancelled, or deleted\nentries within the open period, a Gaps in the sequence message appears in the Vendor Bills journal on the Accounting dashboard. To view more details about the\nrelated vendor bill(s), click Gaps in the sequence . This visual marker is temporary\nand will disappear once the entryâs accounting date is on or after the lock date.\nResequencing is not possible:\n- When entries are before a lock date.\nWhen entries are before a lock date.\n- When the sequence leads to a duplicate.\nWhen the sequence leads to a duplicate.\n- When the range is invalid. For example, if the Bill Date doesnât align with the\ndate in the new sequence, such as using a 2024 sequence (BILL/2024/MM/XXXX) for an vendor bill\ndated in 2025.\nWhen the range is invalid. For example, if the Bill Date doesnât align with the\ndate in the new sequence, such as using a 2024 sequence (BILL/2024/MM/XXXX) for an vendor bill\ndated in 2025.\nIn these cases, a Validation Error message appears.", "headings": ["Changing the default sequence", "Mass-resequencing vendor bills"], "doc_id": "c590c2c8e7534ae7"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/expenses/approve_expenses.html", "title": "Approve expenses", "module": "invoicing", "section": "Approve expenses", "text": "# Approve expenses\n\nIn Odoo, most users cannot approve expense reports; only users with the necessary access rights or\npermissions can. This means that a user must have at least Team Approver rights for the Expenses app. Employees with the necessary rights can review expense reports, approve or refuse\nthem, and provide feedback with an integrated Refuse Expense communication tool.\nPlease refer to the access rights documentation to learn more\nabout managing users and their access rights.\n\n## View expense reports\n\nUsers who are able to approve expense reports (typically managers) have an Expense\nReports main navigation button at the top of the Expenses app. This allows managers to view all\nexpense reports they have access rights for. Navigate to Expenses app ⣠Expense\nReports , to view the All Reports dashboard.\nA list of all expense reports with a status of either To Submit , Submitted , Approved , Posted , or Done appears. Expense reports with a status\nof Refused are hidden, by default.\n\n## Approve expense reports\n\nExpense reports can be approved in two ways: individually or in\nbulk .\nOnly reports with a status of Submitted can be approved.\nIt is recommended to display only Submitted reports by ticking the checkbox beside\nthe Submitted filter, in the left column, under the Status section.\nIf a report is not able to be approved, the Approve Report button does not appear on the All Reports page.\n\n### Approve individual reports\n\nTo approve an individual report, navigate to Expenses app ⣠Expense Reports , and\nclick on an individual report to view the detailed report form.\nFrom here, several options are presented: Approve , Refuse , and Reset to draft . Click Approve to approve the report.\n\n### Approve multiple reports\n\nTo approve multiple expense reports at once, first navigate to Expenses app â£\nExpense Reports to view a list of expense reports. Next, select the reports to approve by ticking\nthe checkbox next to each report being approved, or tick the checkbox next to the Employee column title to select all the reports in the list.\nNext, click the Approve Report button.\nTeam managers can view all the expense reports for their team members only. While on the All Reports page, click the (down arrow) to the\nright of the search bar, then click My Team in the Filters section. This presents all the reports for only the managerâs team.\n\n## Refuse expense reports\n\nExpense reports can only be refused on the individual expense report, and not from the All Reports dashboard. To open an individual expense report, navigate to Expenses app ⣠Expense Reports , then click on an individual expense report to\nview the detailed expense report form.\nIf more information is needed, such as a missing receipt, communicate any necessary information\nrequests in the chatter of the report form. On the individual expense report, click either Send message or Log note to open a message text box.\nType in a message, tagging the proper people, and post it to the chatter by clicking Send or Log , depending on the method of communication. The message is posted\nin the chatter, and the tagged people are notified via email.\nThe only people that can be tagged in a message are followers of the specific report. To see\nwho is a follower, click the (Show Followers) icon to display the\nfollowers of the expense report.\nTo refuse an expense report, click Refuse , and a Refuse Expense pop-up\nwindow loads. Enter a brief explanation for the refusal on the Reason line, then click Refuse .\nOnce the expense report is refused, the status changes to Refused , and the only button\nthat appears is Reset to Draft .", "headings": ["View expense reports", "Approve expense reports", "Approve individual reports", "Approve multiple reports", "Refuse expense reports"], "doc_id": "ff16d161f8dfb7f7"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/expenses/expense_categories.html", "title": "Expense categories", "module": "invoicing", "section": "Expense categories", "text": "# Expense categories\n\nOdoo Expenses streamlines the management of expenses. After an employee logs their\nexpenses and submits their expense report in Odoo, expenses are reviewed by management and accounting teams.\nOnce approved , payments can be processed and disbursed\nback to the employee for reimbursement.\nOdoo Expenses: product page\n\n## View expense categories\n\nThe first step to track expenses is configuring the different types of expenses for the company\n(managed as expense categories in Odoo). Each category can be as specific or generalized as\nneeded. Additionally, expense categories can be configured to repay expenses at either a set price\nor allow for specific prices to be reported.\nTo view the default expense categories, navigate to Expenses app ⣠Configuration\n⣠Expense Categories .\nThe default expense categories allow creating expenses for common expenses, including communication\ncosts, meals, gifts, miles driven, and other travel expenses. For expenses outside these default\ncategories, the general expenses category, EXP_GEN , is used. If a company has specific\nexpenses it commonly reimburses, and wants to track them separately, new expense categories\ncan be made or existing expense categories can be modified.\n\n## Create new expense categories\n\nSome companies require more expense categories than the Expenses app includes. For these\nsituations, new expense categories can be created.\nA company that trains car mechanics allows its technicians to purchase $500 worth of tools in a\nyear. In this situation, the company creates a new category called TOOLS to track all tool\nexpenses.\n`TOOLS`\nTo create a new expense category, navigate to Expenses app ⣠Configuration â£\nExpense Categories . Click New , and a new expense category form loads.\nExpense categories are managed like products in Odoo. The expense category form follows the\nstandard product form in Odoo, and the information entered is similar. Expense products are\nreferred to as expense categories throughout this document since the main menu refers to these\nas Expense Categories .\nEnter the following fields on the form:\n- Product Name : Enter a name for the category that is short and informative.\nProduct Name : Enter a name for the category that is short and informative.\n- Cost : If employees can report the actual cost of an expense, and are reimbursed\nthe reported amount, leave the field set to 0.00 . If the expense should always be reimbursed\nfor a specific price, enter the amount in this field. If a price is entered, a per field appears with Unit populated by default. Unit covers most expense\nsituations, but if the reimbursement is based on weight, length, volume, etc., choose the\ncorresponding type of unit using the drop-down menu. Example Here are some examples for when to set a specific Cost on a product vs. leaving the Cost at 0.00 : Meals : If employees are reimbursed for their full meal cost, set the Cost to 0.00 . When an employee logs an expense for a meal, they enter the actual amount of the bill\nand are reimbursed for that amount. An expense for a meal costing $95.23 would equal a\nreimbursement of $95.23. Mileage : If employees receive a flat rate for each mile they drive, set the Cost to 1.00 . When an employee logs an expense for the miles driven, they enter\nthe number of miles driven in the Quantity field, and are reimbursed $1.00 per\nmile they reported. An expense for 100 miles would equal a reimbursement of $100.00. Per Diem : If employees receive a daily flat rate of $125.00 when traveling, set the Cost to 125.00 . An expense for three days of per diem costs (meals,\nincidentals, taxi fare, etc.) would equal a reimbursement of $375.00. Note The Cost field is always visible on the expense category form, but the Sales Price field is only visible if the Sales Price is selected\nunder the Re-Invoice Expenses section. Otherwise, the Sales Price field\nis hidden.\nCost : If employees can report the actual cost of an expense, and are reimbursed\nthe reported amount, leave the field set to 0.00 . If the expense should always be reimbursed\nfor a specific price, enter the amount in this field. If a price is entered, a per field appears with Unit populated by default. Unit covers most expense\nsituations, but if the reimbursement is based on weight, length, volume, etc., choose the\ncorresponding type of unit using the drop-down menu.\n`0.00`\nHere are some examples for when to set a specific Cost on a product vs. leaving the Cost at 0.00 :\n`0.00`\n- Meals : If employees are reimbursed for their full meal cost, set the Cost to 0.00 . When an employee logs an expense for a meal, they enter the actual amount of the bill\nand are reimbursed for that amount. An expense for a meal costing $95.23 would equal a\nreimbursement of $95.23.\nMeals : If employees are reimbursed for their full meal cost, set the Cost to 0.00 . When an employee logs an expense for a meal, they enter the actual amount of the bill\nand are reimbursed for that amount. An expense for a meal costing $95.23 would equal a\nreimbursement of $95.23.\n`0.00`\n- Mileage : If employees receive a flat rate for each mile they drive, set the Cost to 1.00 . When an employee logs an expense for the miles driven, they enter\nthe number of miles driven in the Quantity field, and are reimbursed $1.00 per\nmile they reported. An expense for 100 miles would equal a reimbursement of $100.00.\nMileage : If employees receive a flat rate for each mile they drive, set the Cost to 1.00 . When an employee logs an expense for the miles driven, they enter\nthe number of miles driven in the Quantity field, and are reimbursed $1.00 per\nmile they reported. An expense for 100 miles would equal a reimbursement of $100.00.\n`1.00`\n- Per Diem : If employees receive a daily flat rate of $125.00 when traveling, set the Cost to 125.00 . An expense for three days of per diem costs (meals,\nincidentals, taxi fare, etc.) would equal a reimbursement of $375.00.\nPer Diem : If employees receive a daily flat rate of $125.00 when traveling, set the Cost to 125.00 . An expense for three days of per diem costs (meals,\nincidentals, taxi fare, etc.) would equal a reimbursement of $375.00.\n`125.00`\nThe Cost field is always visible on the expense category form, but the Sales Price field is only visible if the Sales Price is selected\nunder the Re-Invoice Expenses section. Otherwise, the Sales Price field\nis hidden.\n- Reference : Enter a short reference for the expense, such as FOOD or TRAVEL . This\nreference is used when emailing expenses .\nReference : Enter a short reference for the expense, such as FOOD or TRAVEL . This\nreference is used when emailing expenses .\n`FOOD`\n`TRAVEL`\n- Category : Using the drop-down menu, select the category the expense falls under. It is\nrecommended to use the default category All / Expenses , but another category can be selected if\nthe accounting department requires it.\nCategory : Using the drop-down menu, select the category the expense falls under. It is\nrecommended to use the default category All / Expenses , but another category can be selected if\nthe accounting department requires it.\n`All/Expenses`\n- Company : If in a multi-company database, select the company the expense category\napplies to. If the expense category applies to all companies, leave this field blank.\nCompany : If in a multi-company database, select the company the expense category\napplies to. If the expense category applies to all companies, leave this field blank.\n- Guideline : Enter some rules or important information for the expense category. This is\nvisible in the Note column on the Expense Category dashboard. Example An expense category for expenses related to working from home may have a Name of WFH , and the Guideline may say Monitors, Chairs, & Other Home Working Costs .\nGuideline : Enter some rules or important information for the expense category. This is\nvisible in the Note column on the Expense Category dashboard.\nAn expense category for expenses related to working from home may have a Name of WFH , and the Guideline may say Monitors, Chairs, & Other Home Working Costs .\n`WFH`\n`Monitors,Chairs,&OtherHomeWorkingCosts`\n- Expense Account : If using the Odoo Accounting app, select the CoA the expense should be logged on. Important Check with the accounting department to determine the correct account to reference in this\nfield as it affects various reports.\nExpense Account : If using the Odoo Accounting app, select the CoA the expense should be logged on.\nCheck with the accounting department to determine the correct account to reference in this\nfield as it affects various reports.\n- Purchase Taxes and Sales Taxes : Enter the default taxes that are applied\nwhen purchasing or selling this product, if applicable. Note The Sales Taxes field is only visible if the Sales app is installed, and\neither the At cost or Sales Price options are selected in the invoicing section . Tip It is considered good practice to use a tax that is configured with Tax Included in Price . Taxes are automatically configured if these are set.\nPurchase Taxes and Sales Taxes : Enter the default taxes that are applied\nwhen purchasing or selling this product, if applicable.\nThe Sales Taxes field is only visible if the Sales app is installed, and\neither the At cost or Sales Price options are selected in the invoicing section .\nIt is considered good practice to use a tax that is configured with Tax Included in Price . Taxes are automatically configured if these are set.\n\n### Invoicing section\n\nIf the Sales app is installed, an invoicing section is visible. This section allows the expense\nto be reinvoiced to customers on sales orders.\nIf the expense cannot be reinvoiced, enable the No option. If the expense category can be reinvoiced, enable either of these options:\n- At cost : Select this option to have the expense item reinvoiced at the price set in\nthe Cost field.\nAt cost : Select this option to have the expense item reinvoiced at the price set in\nthe Cost field.\n- Sales Price : Select this option to have the expense item reinvoiced at the sales\nprice. When enabled, a Sales Price field appears beneath the Product Name field. Enter the sales price in the new field.\nSales Price : Select this option to have the expense item reinvoiced at the sales\nprice. When enabled, a Sales Price field appears beneath the Product Name field. Enter the sales price in the new field.\nA heating and cooling company offers at-home repairs on the furnaces and central air units it\nsells. Their technicians are sub-contracted, and use their own vans, tools, and parts.\nAs part of their contracts, technicians are reimbursed for their travel. They receive $1.00 for\nevery mile they drive. Additionally, the customer must pay for the travel as part of their\nservice contract. The customer pays $1.50 for every mile the technician drives to their location.\nTo configure this expense, the Sales Price is set to 1.50 and the Cost is set to 1.00 .\n`1.50`\n`1.00`", "headings": ["View expense categories", "Create new expense categories", "Invoicing section"], "doc_id": "f7329463a0a99a66"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/expenses/expense_reports.html", "title": "Expense reports", "module": "invoicing", "section": "Expense reports", "text": "# Expense reports\n\nWhen expenses are ready to submit (such as at the end of a business trip, or once a month), an expense report needs to be created. Open the main Expenses app dashboard, which displays the My Expenses dashboard, by default. Alternatively, navigate to Expenses\napp ⣠My Expenses ⣠My Expenses .\nAll expenses are color-coded by status. Any expense with a status of To Report (expenses\nthat still need to be added to an expense report) appears in blue text. For all other statuses\n( To Submit , Submitted , and Approved ) the text appears in black.\n\n## Create expense reports\n\nFirst, select the desired expense to be added to the report on the My Expenses dashboard\nby ticking the checkbox next to each entry.\nAny expense can be selected from the My Expenses list, except for expenses with a\nstatus of Approved .\nThe Create Report button is visible as long as there is a minimum of one expense on\nthe list with a status of either To Report or To Submit .\nWhen the Create Report button is clicked, all expenses with a status of To\nSubmit that are not currently on another expense report appear in the newly-created expense\nreport.\nIf all expenses on the My Expenses report are already associated with another expense\nreport, an Invalid Operation pop-up window appears, stating You have no\nexpenses to report.\nOnce the expenses have been selected, click the Create Report button.\nAnother way to add all expenses that are not currently on an expense report is to click the Create Report button, without selecting any expenses, and Odoo automatically selects\nall expenses with a status of To Submit that are not already on a report.\nThe new report loads with all the expenses listed in the Expense tab. If there is a\nreceipt attached to an individual expense, a (paperclip) icon\nappears on the expense line.\nWhen the report is created, the date range for the expenses appears as the Expense Report\nSummary , by default. It is recommended to edit this field with a brief summary for each report to\nhelp keep expenses organized. Enter a description for the expense report, such as Client Trip NYC ,\nor Office Supplies for Presentation , in the Expense Report Summary field.\n`ClientTripNYC`\n`OfficeSuppliesforPresentation`\nThe Employee , Paid By , and Company fields are populated with the\ninformation listed on the individual expenses.\nThe Company field only appears in a multi-company database.\nNext, select a Manager from the drop-down menu to assign a manager to review the report.\nIf needed, update the Journal field using the drop-down menu.\nIf some expenses are missing from the report, they can still be added from this report form. To do\nso, click Add a line at the bottom of the Expense tab.\nAn Add: Expense Lines pop-up window appears, displaying all the available expenses (with\na To Submit status) that can be added to the report. If a new expense needs to be added\nthat does not appear on the list, click New to create a new expense and add it to the report.\nTick the checkbox next to each expense being added, then click Select . Doing so closes\nthe pop-up window, and the items now appear on the report.\nExpense reports can be created in one of two ways:\n- Navigate to the main Expenses app dashboard (also accessible, via Expenses app ⣠My Expenses ⣠My Expenses ) and click Create\nReport .\nNavigate to the main Expenses app dashboard (also accessible, via Expenses app ⣠My Expenses ⣠My Expenses ) and click Create\nReport .\n- Navigate to Expenses app ⣠My Expenses ⣠My Reports and click New .\nNavigate to Expenses app ⣠My Expenses ⣠My Reports and click New .\n\n## Submit expense reports\n\nWhen an expense report is completed, the next step is to submit the report to a manager for\napproval. To view all expense reports, navigate to Expenses app ⣠My Expenses â£\nMy Reports . Open the specific report from the list of expense reports.\nReports must be individually submitted, and cannot be submitted in batches.\nIf the list is large, grouping the results by status may be helpful, since only reports with a To Submit status need to be submitted; reports with an Approved or Submitted status do not. The To Submit expenses are identifiable by the To Submit status, and by the blue text, while all other expense text appears in black.\nClick on a report to open it, then click Submit To Manager . After submitting a report,\nthe next step is for management to review and approve it .\nThe status of each report is shown in the Status column. If the Status column is not visible, click the (additional options) icon\nat the end of the row, and tick the checkbox beside Status from the resulting\ndrop-down menu.\nApproving expenses, posting expenses, and reimbursing expenses\nare only for users with the appropriate access rights .", "headings": ["Create expense reports", "Submit expense reports"], "doc_id": "5559c24c8a94851a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/expenses/expenses_analysis.html", "title": "Expenses analysis", "module": "invoicing", "section": "Expenses analysis", "text": "# Expenses analysis\n\nIt is important for companies to track expenses so they have an understanding of their expenses and\ncan identify trends. Expense reporting allows for detailed information, such as which expense\ncategories are reimbursed the most, which employees incur the most expenses, and if there are any\nperiods of time that tend to incur more expenses than others.\n\n## View expense analysis report\n\nTo view the default Expenses Analysis report, navigate to Expenses app â£\nReporting ⣠Expenses Analysis . The Expenses Analysis report displays all expenses for\nthe current year, in a stacked bar chart, grouped by month.\n\n## View expenses by employee\n\nIt is possible to view the data so that the total cost of expenses by employee is visible. To view\nthe report in this way, navigate to Expenses app ⣠Reporting ⣠Expenses\nAnalysis . Next, click the (Pivot) icon to view the data in a\npivot table.\nThis presents the data with the employees populating the rows, and the total monthly expenses populate the columns. Next, click Total at the top of the\nmonthly columns to hide the individual monthly totals, and present only the total amount for the\nyear.\nTo present the data in either ascending or descending total, click the Total In Currency box, and the information is organized first in ascending order, starting with the smallest amount.\nClick Total In Currency again to reverse the order, and present the highest amount\nfirst.\nIn this example it can be determined that Mike Smith has the highest amount of\nexpenses, totaling 4,216.44 . This is almost seven times higher than Ronnie\nHart , who has the second highest expenses, with a total of 644.74 .\n\n## View expenses by category\n\nIt is possible to view the data so that the total cost of expenses by category is visible. To view\nthe report in this way, navigate to Expenses app ⣠Reporting ⣠Expenses\nAnalysis . Next, click the (Pivot) icon to view the data in a\npivot table.\nThis presents the data with the employees populating the rows, and the total monthly expenses populate the columns. Next, click Total at the top of the\nemployees column. Click Total that appears in place of Total , revealing a drop-down menu of options. Click Category , and the expense categories now populate the rows.\nNext, click Total at the top of the months column to hide the\nindividual months, and only show the annual total for each category.\nTo present the data in either ascending or descending total, click the Total In Currency box, and the information is organized first in ascending order, starting with the smallest amount.\nClick Total In Currency again to reverse the order, and present the highest amount\nfirst.\nIn this example, it can be determined that the company spent the most on travel expenses, with\nthe expense category [TRANS & ACC] Travel & Accommodation incurring 2,940.00 of expenses for the year. The company reimbursed mileage the least, with\nonly 229.69 in [MIL] Mileage expenses.", "headings": ["View expense analysis report", "View expenses by employee", "View expenses by category"], "doc_id": "bc60c8966b3a48da"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/expenses/log_expenses.html", "title": "Log expenses", "module": "invoicing", "section": "Log expenses", "text": "# Log expenses\n\nBefore expenses can be reimbursed, each individual expense needs to be logged in the database.\nExpense records can be created in four different ways: manually enter an expense record , upload a receipt , drag and drop a receipt onto the Expenses app dashboard, or email a receipt to a preconfigured email address.\n\n## Manually enter expenses\n\nTo record a new expense, open the Expenses app, which displays the My Expenses page,\nby default.\nThis view can also be accessed at any time by navigating to Expenses app ⣠My\nExpenses ⣠My Expenses .\nClick the New button and fill out the following fields on the blank expense form that\nloads:\n- Description : Enter a short description for the expense. This should be concise and\ninformative, such as Lunch with client or Hotel for trade show .\nDescription : Enter a short description for the expense. This should be concise and\ninformative, such as Lunch with client or Hotel for trade show .\n`Lunchwithclient`\n`Hotelfortradeshow`\n- Category : Using the drop-down menu, select the expense category that most closely corresponds to the expense.\nCategory : Using the drop-down menu, select the expense category that most closely corresponds to the expense.\n- Total : Enter the total amount paid for the expense in one of two ways: If the expense is for a single item/expense, and the category selected was for a single item,\nenter the cost in the Total field (the Quantity field is hidden). If the expense is for multiples of the same item/expense with a fixed price, the Unit Price is displayed. Enter the number of units in the Quantity field, and the total cost is automatically updated with the correct total. The total cost\nappears below the Quantity . Example An employee received one dollar for each mile driven for work. The Category is [MIL] Mileage . The Unit Price is automatically populated with $1.00 , which is the cost per mile configured for the expense Category [MIL] Mileage . The Quantity is set to 48 , which is the number of\nmiles driven , and the total is calculated to $48.00 .\nTotal : Enter the total amount paid for the expense in one of two ways:\n- If the expense is for a single item/expense, and the category selected was for a single item,\nenter the cost in the Total field (the Quantity field is hidden).\nIf the expense is for a single item/expense, and the category selected was for a single item,\nenter the cost in the Total field (the Quantity field is hidden).\n- If the expense is for multiples of the same item/expense with a fixed price, the Unit Price is displayed. Enter the number of units in the Quantity field, and the total cost is automatically updated with the correct total. The total cost\nappears below the Quantity . Example An employee received one dollar for each mile driven for work. The Category is [MIL] Mileage . The Unit Price is automatically populated with $1.00 , which is the cost per mile configured for the expense Category [MIL] Mileage . The Quantity is set to 48 , which is the number of\nmiles driven , and the total is calculated to $48.00 .\nIf the expense is for multiples of the same item/expense with a fixed price, the Unit Price is displayed. Enter the number of units in the Quantity field, and the total cost is automatically updated with the correct total. The total cost\nappears below the Quantity .\nAn employee received one dollar for each mile driven for work. The Category is [MIL] Mileage . The Unit Price is automatically populated with $1.00 , which is the cost per mile configured for the expense Category [MIL] Mileage . The Quantity is set to 48 , which is the number of\nmiles driven , and the total is calculated to $48.00 .\n`$1.00`\n`48`\n`$48.00`\n- Included Taxes : If taxes were configured on the selected expense category, the tax\npercentage and amount appear automatically after entering either the Total or the Quantity . Note When a tax is configured on an expense category, the Included Taxes value updates\nin real time, as the Total or Quantity is updated.\nIncluded Taxes : If taxes were configured on the selected expense category, the tax\npercentage and amount appear automatically after entering either the Total or the Quantity .\nWhen a tax is configured on an expense category, the Included Taxes value updates\nin real time, as the Total or Quantity is updated.\n- Employee : Using the drop-down menu, select the employee associated with the expense.\nEmployee : Using the drop-down menu, select the employee associated with the expense.\n- Paid By : Click the radio button to indicate who paid for the expense and should be\nreimbursed. Select either Employee (to reimburse) or Company . Depending on\nthe expense category selected, this field may not appear.\nPaid By : Click the radio button to indicate who paid for the expense and should be\nreimbursed. Select either Employee (to reimburse) or Company . Depending on\nthe expense category selected, this field may not appear.\n- Expense Date : Using the calendar popover window that appears when this field is\nclicked, enter the date the expense was incurred.\nExpense Date : Using the calendar popover window that appears when this field is\nclicked, enter the date the expense was incurred.\n- Account : If the selected expense Category has a specific account linked to\nit, that account appears in the Account field. If no account is specified, the default 600000 Expenses account populates this field. If a different account is desired, select the\naccount the expense should be logged in.\nAccount : If the selected expense Category has a specific account linked to\nit, that account appears in the Account field. If no account is specified, the default 600000 Expenses account populates this field. If a different account is desired, select the\naccount the expense should be logged in.\n`600000Expenses`\n- Customer to Reinvoice : If the expense should be paid for by a customer and the\nselected Category allows for reinvoicing of expenses, select the SO and customer to be invoiced for the expense using the drop-down menu. All sales orders in\nthe drop-down menu list both the SO , as well as the company the sales order\nis written for. After the expense is saved, the customer name disappears, and only the SO is visible on the expense. Example A customer wishes to have an on-site meeting for the design and installation of a custom\nbuilding, and agrees to pay for all expenses associated with the meeting, including travel,\nhotel, and meals for the traveling employees. All expenses tied to that meeting would indicate\nthe sales order for the custom building (which also references the customer) as the Customer to Reinvoice .\nCustomer to Reinvoice : If the expense should be paid for by a customer and the\nselected Category allows for reinvoicing of expenses, select the SO and customer to be invoiced for the expense using the drop-down menu. All sales orders in\nthe drop-down menu list both the SO , as well as the company the sales order\nis written for. After the expense is saved, the customer name disappears, and only the SO is visible on the expense.\nA customer wishes to have an on-site meeting for the design and installation of a custom\nbuilding, and agrees to pay for all expenses associated with the meeting, including travel,\nhotel, and meals for the traveling employees. All expenses tied to that meeting would indicate\nthe sales order for the custom building (which also references the customer) as the Customer to Reinvoice .\n- Analytic Distribution : Select the account the expense should be written against from\nthe drop-down menu for either Projects , Departments , or both. Multiple\naccounts can be listed for each category, if needed. Adjust the percentage for each analytic\naccount by typing in the percentage value next to each account.\nAnalytic Distribution : Select the account the expense should be written against from\nthe drop-down menu for either Projects , Departments , or both. Multiple\naccounts can be listed for each category, if needed. Adjust the percentage for each analytic\naccount by typing in the percentage value next to each account.\n- Company : If in a multi-company database, select the company the expense should be\nfiled for using the drop-down menu. The current company automatically populates this field.\nCompany : If in a multi-company database, select the company the expense should be\nfiled for using the drop-down menu. The current company automatically populates this field.\n- Notes⦠: If any notes are needed to clarify the expense, enter them in the notes\nfield.\nNotes⦠: If any notes are needed to clarify the expense, enter them in the notes\nfield.\n\n### Attach receipts\n\nAfter the expense record is created, the next step is to attach a receipt. Click the Attach Receipt button, and a file explorer appears. Navigate to the receipt to be\nattached, and click Open .\nThe new receipt is recorded in the chatter , and the number of receipts appears next to the (paperclip) icon. Multiple receipts can be attached to an\nindividual expense record, as needed.\n\n## Upload expenses\n\nIt is possible to have expense records created automatically by uploading a PDF receipt . To utilize this feature, a setting must be enabled, and IAP credits must be purchased.\n\n### Digitalization settings\n\nTo enable receipt scanning, navigate to Expenses app ⣠Configuration â£\nSettings , and tick the checkbox beside the Expense Digitization (OCR) option. Then,\nclick Save . When enabled, additional options appear. Click on the corresponding radio\nbutton to select one of the following options:\n- Do not digitize : Disables receipt digitization but does not uninstall the related\ndigitization module.\nDo not digitize : Disables receipt digitization but does not uninstall the related\ndigitization module.\n- Digitize on demand only : Only digitizes receipts when requested. A Digitize\ndocument button appears on expense records. When clicked, the receipt is scanned and the expense\nrecord is updated.\nDigitize on demand only : Only digitizes receipts when requested. A Digitize\ndocument button appears on expense records. When clicked, the receipt is scanned and the expense\nrecord is updated.\n- Digitize automatically : Automatically digitizes all receipts when they are uploaded.\nDigitize automatically : Automatically digitizes all receipts when they are uploaded.\nBeneath these options are two additional links. Click the Manage\nService & Buy Credits link to view account details and settings, and purchase credits for receipt\ndigitization. Click the View My Services link to view a list of\nall current services, and their remaining credit balances.\nFor more information on document digitization and IAPs , refer to the In-app purchase (IAP) documentation.\nWhen the Expense Digitization (OCR) option is enabled, a necessary module is\ninstalled, so receipts can be scanned. Disabling this option uninstalls the module.\nIf, at some point, there is a desire to temporarily stop digitizing receipts, select the Do not digitize option. The reason this option is available is so the module is not\nuninstalled, allowing for digitization to be enabled in the future by selecting one of the other\ntwo options.\n\n### Upload receipts\n\nOpen the Expenses app , and from the My Expenses dashboard, click Upload , and a file explorer appears. Navigate to the desired receipt, select it, then\nclick Open .\nThe receipt is scanned, and a new expense record is created. The Expense Date field is\npopulated with todayâs date, along with any other fields based on the scanned data, such as the Total .\nClick on the new entry to open the individual expense form, and make any changes, if needed. The\nscanned receipt appears in the chatter .\n\n## Drag and drop an expense\n\nIf digitalization is enabled , drag and drop a receipt onto the Expenses app dashboard. The receipt is scanned and appears by itself on the Generate\nExpenses dashboard.\nClick on the expense record, and modify the details as needed. After changes are made, return to the My Expenses dashboard, and the expense now appears in the list.\n\n## Email expenses\n\nInstead of individually creating each expense in the Expenses app, expenses can be automatically\ncreated by sending an email to an email alias.\nFor security purposes, only authenticated employee emails are accepted by Odoo when creating an\nexpense from an email. To confirm an authenticated employee email address, go to the employee\ncard in the Employees app , and refer to the Work Email field.\nTo do so, an email alias must first be configured. Navigate to Expenses app â£\nConfiguration ⣠Settings . Ensure the checkbox beside Incoming Emails is ticked. The\ndefault email alias is expense@(domain).com . Change the email alias by entering the desired email\nin the field to the right of Alias . Then, click Save .\nIf the domain alias needs to be set up, Setup your domain\nalias appears beneath the Incoming Emails checkbox, instead of the email address\nfield.\nRefer to the Domain names documentation for\nsetup instructions and more information.\nOnce the domain alias is configured, the email address field is visible beneath the Incoming Emails feature on the Settings page in the Expenses app.\nOnce the email address has been entered, emails can be sent to that alias to create new expenses,\nwithout having to be in the Odoo database.\nTo submit an expense via email, create a new email, and enter the productâs reference code (if\navailable) and the amount of the expense as the subject of the email. Next, attach the receipt to\nthe email. Odoo creates the expense by taking the information in the email subject, and combining it\nwith the receipt.\nTo check an expense categoryâs reference code, go to Expenses app â£\nConfiguration ⣠Expense Categories . Reference codes are listed in the Reference column.\nTo add a reference code to an expense category, click on the category to open the expense category\nform. Enter the reference code in the Reference field.\nIf submitting an expense, via email, for a $25.00 meal during a work trip, the email subject\nwould be FOOD $25.00 .\n`FOOD$25.00`\n- The Reference for the expense category Meals is FOOD\nThe Reference for the expense category Meals is FOOD\n`Meals`\n`FOOD`\n- The Cost for the expense is $25.00\nThe Cost for the expense is $25.00\n`$25.00`", "headings": ["Manually enter expenses", "Attach receipts", "Upload expenses", "Digitalization settings", "Upload receipts", "Drag and drop an expense", "Email expenses"], "doc_id": "1d3b11d23f02e1c4"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/expenses/post_expenses.html", "title": "Post expenses", "module": "invoicing", "section": "Post expenses", "text": "# Post expenses\n\nOnce an expense report is approved , the next step is to post\nthe expenses to the proper accounting journal.\nTo post expense reports to an accounting journal, the user must have the following access rights :\n- Accounting: Accountant or Adviser\nAccounting: Accountant or Adviser\n- Expenses: Manager\nOnly expense reports with an Approved status can post the expenses to a journal. To view all\nexpense reports, navigate to Expenses app ⣠Expense Reports . Next, to view only approved expense reports that need to be posted, adjust the filters on the left side so\nonly the Approved checkbox is ticked.\nThe default All Reports dashboard displays all expense reports that are not Refused .\nExpense reports can be posted to accounting journals in two ways: individually or in bulk .\n\n## Post individual reports\n\nTo post an individual report, navigate to Expenses app ⣠Expense Reports , and\nclick on an individual report with a Status of Approved , to view the report\nform. In this view, several options are presented: Post Journal Entries , Report In Next Payslip , Refuse , or Reset to Draft .\nClick Post Journal Entries to post the report. The accounting journal the expenses are\nposted to is listed in the Journal field of the expense report.\nAfter posting the expenses to an accounting journal, a Journal Entry smart button\nappears at the top of the screen. Click the Journal Entry smart button, and the details\nfor the journal entry appear, with a status of Posted .\n\n## Post multiple reports\n\nTo post multiple expense reports at once, navigate to Expenses app ⣠Expense\nReports to view a list of expense reports. Next, select the reports to approve by ticking the\ncheckbox next to each report being approved.\nOnly expense reports with a status of Approved are able to post the expenses to an\naccounting journal. If an expense report is selected that cannot be posted, such as an\nunapproved report, or the report has already been posted to a journal, the Post\nEntries button is not visible.\nTo select only approved expense reports, adjust the filters on the left side, so that only\nthe Approved checkbox is ticked. Next, tick the checkbox next to the Employee column title to select all the Approved reports in the list\nat once.\nNext, click the Post Entries button.", "headings": ["Post individual reports", "Post multiple reports"], "doc_id": "14046d92a0712c3a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/expenses/reimburse.html", "title": "Reimburse employees", "module": "invoicing", "section": "Reimburse employees", "text": "# Reimburse employees\n\nAfter an expense report is posted to an accounting journal , the\nnext step is to reimburse the employee. Employees can be reimbursed via cash, check, or direct\ndeposit in three ways:\n- Individually : Each individual expense report is reimbursed\nseparately.\nIndividually : Each individual expense report is reimbursed\nseparately.\n- In bulk : Multiple expense reports are reimbursed in a single\npayment.\nIn bulk : Multiple expense reports are reimbursed in a single\npayment.\n- In the employeeâs payslip : Expense reports are reimbursed\ndirectly in the employeeâs payslip.\nIn the employeeâs payslip : Expense reports are reimbursed\ndirectly in the employeeâs payslip.\n\n## Reimbursement settings\n\nReimbursements can be paid via a paycheck, check, cash, or bank transfer (usually referred to as\ndirect deposit). To set up payment options, first configure the various settings by navigating to Expenses app ⣠Configuration ⣠Settings .\nTo reimburse employees for expenses in their paychecks , tick the\ncheckbox beside the Reimburse in Payslip option in the Expenses section.\nNext, set how payments are made in the Accounting section. Click the drop-down menu\nunder Payment Methods , and select the desired payment option. The default options\ninclude paying by Manual Payment (Cash) , Manual Payment (Bank) , Batch Deposit (Bank) , and Checks (Bank) .\nLeaving this field blank allows for all available payment options to be used.\nWhen all desired configurations are complete, click Save to activate the settings.\n\n## Reimburse in payslips\n\nIf the Reimburse in Payslip option is activated on the settings page, payments can be added to the employeeâs next payslip, instead\nof issuing separate payments.\nReimbursing expenses on payslips can only be done individually for an approved expense\nreport. Once an expense report has a status of Posted , the option to reimburse in the following\npayslip is not available .\nNavigate to Expenses app ⣠Expense Reports , and click on the individual expense\nreport to reimburse on the following paycheck. Click the Report in Next Payslip button,\nand the expenses are added to the next payslip issued for that employee.\nOnce the expense report is added to the following payslip, a message is logged in the chatter\nstating Expense report (expense report name) will be added to the next payslip. The status for the\nexpense report remains Approved . The status only changes to Posted (and then Done ), when the related payslip is processed.\n`Expensereport(expensereportname)willbeaddedtothenextpayslip.`\nRefer to the Payslips documentation for more information about\nprocessing paychecks.\n\n## Reimburse individually\n\nTo reimburse an individual expense report, first navigate to Expenses app â£\nExpense Reports . All expense reports are presented in a default list view. Click on the expense\nreport being reimbursed to view the report details.\nOnly expense reports with a status of Posted can be reimbursed directly to the\nemployee (not via a payslip ).\nClick the Pay button in the top-left corner of the expense report, and a Pay pop-up window loads. Enter the following information in the pop-up window:\n- Journal : Select the accounting journal to post the payment using the drop-down menu.\nThe default options are Bank or Cash .\nJournal : Select the accounting journal to post the payment using the drop-down menu.\nThe default options are Bank or Cash .\n- Payment Method : Select how the payment is made using the drop-down menu. If Cash is selected for the Journal , the only option available is Manual Payment . If Bank is selected for the Journal , the\ndefault options are Manual Payment or Checks .\nPayment Method : Select how the payment is made using the drop-down menu. If Cash is selected for the Journal , the only option available is Manual Payment . If Bank is selected for the Journal , the\ndefault options are Manual Payment or Checks .\n- Recipient Bank Account : This field only appears if the Journal is set to Bank . The employeeâs bank account populates this\nfield, by default. If the employee has more than one trusted bank account on their employee\nprofile, use the drop-down menu to select the desired bank account.\nRecipient Bank Account : This field only appears if the Journal is set to Bank . The employeeâs bank account populates this\nfield, by default. If the employee has more than one trusted bank account on their employee\nprofile, use the drop-down menu to select the desired bank account.\n- Amount : The total amount being reimbursed populates this field, by default.\nAmount : The total amount being reimbursed populates this field, by default.\n- Payment Date : Enter the date the payment is issued in this field. The current date\npopulates this field, by default.\nPayment Date : Enter the date the payment is issued in this field. The current date\npopulates this field, by default.\n- Memo : The text entered in the Expense Report Summary field of the expense report populates this field, by default.\nMemo : The text entered in the Expense Report Summary field of the expense report populates this field, by default.\nWhen the fields of the pop-up window are completed, click the Create Payment button to\nregister the payment, and reimburse the employee. A green In Payment banner now appears\non the expense report.\n\n## Reimburse in bulk\n\nTo reimburse multiple expense reports at once, navigate to Expenses app ⣠Expense\nReports to view all expense reports in a list view. Next, select the expense reports to be\nreimbursed.\nOnly expense reports with a status of Posted can be reimbursed directly to the\nemployee (not via a payslip ).\nAdjust the STATUS filter on the left side to only show Posted expense\nreports. This displays only expense reports that are able to be reimbursed.\nTick the checkbox next to the expense reports being reimbursed, then click the Pay button, and a Pay pop-up window loads. Enter the following information in the pop-up\nwindow:\n- Journal : Select the accounting journal to post the payment using the drop-down menu.\nThe default options are Bank or Cash .\nJournal : Select the accounting journal to post the payment using the drop-down menu.\nThe default options are Bank or Cash .\n- Payment Method : Select how the payment is made using the drop-down menu. If Cash is selected for the Journal , the only option available is Manual Payment . If Bank is selected for the Journal , the\ndefault options are Manual Payment or Checks .\nPayment Method : Select how the payment is made using the drop-down menu. If Cash is selected for the Journal , the only option available is Manual Payment . If Bank is selected for the Journal , the\ndefault options are Manual Payment or Checks .\n- Group Payments : When multiple expense reports are selected for the same employee, this\noption appears. Tick the checkbox to have only one payment made per employee, rather than issuing\nmultiple payments to the same employee.\nGroup Payments : When multiple expense reports are selected for the same employee, this\noption appears. Tick the checkbox to have only one payment made per employee, rather than issuing\nmultiple payments to the same employee.\n- Amount : The total amount being reimbursed for all the expense reports populates this\nfield, by default.\nAmount : The total amount being reimbursed for all the expense reports populates this\nfield, by default.\n- Payment Date : Enter the date the payments are issued. The current date populates this\nfield, by default.\nPayment Date : Enter the date the payments are issued. The current date populates this\nfield, by default.\nWhen the fields on the Pay pop-up window are completed, click the Create\nPayments button to register the payments, and reimburse the employees.", "headings": ["Reimbursement settings", "Reimburse in payslips", "Reimburse individually", "Reimburse in bulk"], "doc_id": "d31177716068a724"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/expenses/reinvoice_expenses.html", "title": "Re-invoice expenses", "module": "invoicing", "section": "Re-invoice expenses", "text": "# Re-invoice expenses\n\nIf expenses are tracked on customer projects, they can be automatically charged back to the\ncustomer. This is done by creating an expense , referencing the\nsales order to which it is added, then creating an expense report .\nNext, managers approve the expense report , before the accounting\ndepartment posts the journal entries .\nFinally, once the expense report is posted to a journal, the expenses appear on the specified SO . The SO is then invoiced ,\nthus charging the customer for the expenses.\nThe Sales and Accounting apps must be installed for this configuration.\nApproving expenses, posting expenses to accounting, and re-invoicing expenses on SOs are only possible for users with the appropriate access rights .\nThis document provides lower-level instructions to create, submit, approve, and post expenses.\nFor fully-detailed instructions for any of these steps, refer to the following documentation:\n- Log expenses\n- Expense reports\n- Approving expenses\n- Posting expenses in accounting\nPosting expenses in accounting\n\n## Setup\n\nIn the Expense app, specify the invoicing policy for each expense category. Navigate to Expenses app ⣠Configuration ⣠Expense Categories . Click on the desired expense\ncategory or create a new one .\nUnder the Invoicing section, click the radio button next to the desired selection for Re-Invoice Costs :\n- No : The expense category cannot be re-invoiced.\nNo : The expense category cannot be re-invoiced.\n- At cost : The expense category invoices expenses at the Cost set on the\nexpense category form.\nAt cost : The expense category invoices expenses at the Cost set on the\nexpense category form.\n- Sales price : The expense category invoices at the Sales Price set on the\nexpense form.\nSales price : The expense category invoices at the Sales Price set on the\nexpense form.\nThe default expense categories have the following re-invoicing policies:\nCOMM : Communication expenses such as phone bills, postage, etc.\nFOOD : Meal expenses such as restaurants, business lunches, etc\nTRANS & ACCT : Travel and accommodation expenses such as hotel, plane ticket, taxi, etc.\nGIFT : Gifts to customers or vendors.\n\n## Create an expense\n\nTo re-invoice an expense, first create an expense record . In the Customer to Reinvoice field, use the drop-down menu to select the SO to add the expense to.\nSelecting the proper SO in the Customer to Reinvoice field is critical , since this is how expenses are automatically invoiced after an expense report is\napproved.\nDetailed instructions on completing an expense\n\n### Analytic Distribution\n\nFor the Analytic Distribution field to be visible the Accounting app must be\ninstalled, Analytic Accounting , and Analytic Plans must be configured.\nRefer to Analytic accounting for more information.\nAs an optional step, select the Analytic Distribution the expense is posted to. Multiple\naccounts can be selected, if desired.\nTo add another Analytic Distribution , click on the line to reveal the Analytic pop-over window. Click Add a line , then select the desired Analytic Distribution from the drop-down field.\nIf selecting more than one Analytic Distribution , the Percentage fields must be modified. By default, both fields are populated with 100% . Adjust the percentages for\nall the fields, so the total of all selected accounts equals 100% .\n`100%`\n`100%`\nA painting company agrees to paint an office building that houses two different companies. During\nthe estimate, a meeting is held at the office location to discuss the project.\nBoth companies agree to pay for the travel expenses for the painting company employees. When\ncreating the expenses for the mileage and hotels, both companies are listed in the Analytic Distribution line, for 50% each.\n\n## Create an expense report\n\nAfter the expenses are created, click Create report . Once the expense report is\nsubmitted, the Sales Orders and Expenses smart buttons appear at the top of the expense report. The smart buttons will\ndisplay the number of SOs and expenses linked to the expense report.\nNext, click Submit to Manager to request approval from the assigned Manager.\nThe Customer to Reinvoice field can be modified only until an expense report is approved . After an expense report is approved, the Customer to Reinvoice field is\nno longer able to be modified.\nDetailed instructions to create and submit an expense report\n\n## Approve and post expenses\n\nBefore approving an expense report, ensure all the information for every expense line is correct,\nthen click Approve .\nThe Approve button only appears after an expense report has been submitted .\nThe accounting department is typically responsible for posting journal entries . To post expenses to an accounting journal, click Post Journal Entries .\nOnce an expense report is approved, it can then be posted.\nThe SO is only updated after the journal entries are posted. Once the\njournal entries are posted, the expenses now appear on the referenced SO .\nDetailed instructions to approve an expense report\n\n## Invoice expenses to the customer\n\nOnce the expense report is approved and the corresponding journal entries are posted, the SO is automatically updated, allowing the customer to be invoiced. The accounting\ndepartment is typically responsible for generating the final invoice.\nSelect the desired expense report, and click the Sales Orders smart\nbutton to open the SO . The expenses to be re-invoiced now appear on the SO .\nMore than one SO can be referenced on an expense report. If more than one SO is referenced, clicking the Sales Orders smart button opens a list displaying all the SOs associated with that\nexpense report. Click on a SO to open the individual SO details.\nA electronics repair company has a large customer base. Their service charges vary depending on\nthe product they service. A technician uses different components depending on the product they\nservice and services five customers per day on average.\nAfter each job the technician submits an expense and associates the appropriate SO for each. At the end of the day, the technician selects all of the expenses and creates\nan expense report for the manager to review and approve.\nWhen the expense report gets created, several SOs are linked to it. The Expenses and Sales Orders smart\nbuttons display the number of linked records on the top of the expense report.\nOn the SO form, the expenses are now line items in the Order Lines tab, with their Delivered column filled in, and ready to be invoiced.\nClick Create Invoice , and a Create invoices pop-up window appears.\nSelect if the invoice is a Regular invoice , a Down payment (percentage) , or\na Down payment (fixed amount) , and click Create Draft Invoice . A customer\ninvoice draft window displays the products and expenses in the Invoice Lines tab.\nFor an SO with a product and a expense, if the product has not been\ndelivered to the customer, only the expense is listed in the Invoice Lines tab of the\ninvoice. Creating two invoices for one SO is possible.\nClick Confirm to change the invoice status from Draft to Posted .\nTo email the invoice to the customer, click Send . A Print & Send pop-up\nwindow with a pre-configured email message and a PDF invoice in its body is displayed. The message\ncan be reviewed and modified, if needed.\nClick Send to email the invoice to the customer. The pop-up window disappears, and a PDF\nof the invoice is automatically downloaded for record-keeping and printing purposes.\n\n## Invoice payment\n\nDepending on the payment configuration in the Accounting app, there are several ways to process\npayment for an invoice. This workflow incorporates the customer portal and manual verification. The\ncustomer is responsible for submitting the invoice payment and the accounting department is\nresponsible for verification.\nFor online payments through the customer portal, the Invoice Online Payment feature must be enabled on the Accounting app. Also a\npayment method must be set up.\nNavigate to the invoice by clicking Expenses app ⣠Expense Reports and select the\ndesired expense report.\nClick the Sales Orders smart button, then select the desired SO . Click the Invoices smart button.\nAfter clicking Send , the invoice is emailed to the customer and published online on the\ncustomer portal. Click Preview to see the customerâs view of the invoice and payment\nmethods.\nOnce the customer pays online, the invoice gets an In Payment banner. The Payments and Payment Transaction smart\nbuttons display at the top of the invoice form.\nClick the Payments smart button to go to the Pay form. Click Validate to confirm that the invoice payment has been received. The Pay form is\nautomatically updated to Paid .", "headings": ["Setup", "Create an expense", "Analytic Distribution", "Create an expense report", "Approve and post expenses", "Invoice expenses to the customer", "Invoice payment"], "doc_id": "887eb26830f6b2a6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations.html", "title": "Fiscal localizations", "module": "invoicing", "section": "Fiscal localizations", "text": "# Fiscal localizations\n\nFiscal localizations are country-specific modules that allow you to be compliant with a countryâs\nfiscal requirements. Most of these modules are related to the Accounting app, but they can also be\nnecessary for other apps such as Point of Sale, eCommerce, etc., depending on a countryâs fiscal\nrequirements.\nPayroll localizations are documented separately.\n\n## Configuration\n\nOdoo should automatically install the fiscal localizationâs core modules based on the companyâs\ncountry when the related app is installed. The rest can be manually installed . Refer to the list of countries to\nview the currently supported countries and access their specific documentation.\nEach company in a multi-company environment can use different fiscal localization modules.\nVerify the right package of modules is installed by going to Accounting â£\nConfiguration ⣠Settings and checking the Package field under the Fiscal\nLocalization section. Select another one if necessary.\nSelecting another package is only possible if no entry has been posted.\nThese packages require fine-tuning the chart of accounts, activating the taxes to be used,\nconfiguring the country-specific statements and certifications, and sometimes more.\n\n## List of countries\n\nFiscal localization modules are available for the countries listed below.\nNew countries are frequently added to this list and Odoo keeps expanding and improving existing\nlocalizations and the related documentation.\n- Algeria\n- Argentina\n- Australia\n- Austria\n- Bangladesh\n- Belgium\n- Bolivia\n- Brazil\n- Burkina Faso\n- Bulgaria\n- Cameroon\n- Canada\n- Central African Republic\nCentral African Republic\n- Colombia\n- Comoros\n- Costa Rica\n- Croatia\n- Cyprus\n- Czech Republic\n- Democratic Republic of the Congo\nDemocratic Republic of the Congo\n- Denmark\n- Dominican Republic\n- Ecuador\n- Equatorial Guinea\n- Estonia\n- Ethiopia\n- Finland\n- France\n- Germany\n- Guinea\n- Greece\n- Guatemala\n- Guinea-Bissau\n- Honduras\n- Hong Kong\n- Hungary\n- Indonesia\n- Ivory Coast\n- Jordan\n- Kazakhstan\n- Kuwait\n- Latvia\n- Lithuania\n- Luxembourg\n- Mauritius\n- Malaysia\n- Mexico\n- Mongolia\n- Morocco\n- Mozambique\n- Netherlands\n- New Zealand\n- Nigeria\n- Norway\n- Pakistan\n- Panama\n- Philippines\n- Poland\n- Portugal\n- Romania\n- Rwanda\n- Saudi Arabia\n- Senegal\n- Serbia\n- Singapore\n- Slovakia\n- Slovenia\n- South Africa\n- Sweden\n- Switzerland\n- Taiwan\n- Tanzania\n- Thailand\n- Tunisia\n- Türkiye\n- Uganda\n- Ukraine\n- United Arab Emirates\n- United Kingdom\n- United States of America\nUnited States of America\n- Uruguay\n- Venezuela\n- Vietnam\n- Zambia", "headings": ["Configuration", "List of countries"], "doc_id": "71af3492b3298e86"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/argentina.html", "title": "Argentina", "module": "invoicing", "section": "Argentina", "text": "# Argentina\n\n## Webinars\n\nBelow you can find videos with a general description of the localization, and how to configure it.\n- Webinar - Localización de Argentina .\nWebinar - Localización de Argentina .\n- eCommerce - Localización de Argentina .\neCommerce - Localización de Argentina .\n- Smart Tutorial - Localización de Argentina\nSmart Tutorial - Localización de Argentina\n- Documentation on e-invoicingâs legality and compliance in Argentina\nDocumentation on e-invoicingâs legality and compliance in Argentina\n\n## Configuration\n\n### Modules installation\n\nInstall the following modules to get all the features of the Argentinean\nlocalization:\nArgentina - Accounting\n`l10n_ar`\nDefault fiscal localization package , which represents\nthe minimal configuration to operate in Argentina under the AFIP regulations and guidelines.\nArgentinean Accounting Reports\n`l10n_ar_reports`\nVAT Book report and VAT summary report.\nArgentinean Electronic Invoicing\n`l10n_ar_edi`\nIncludes all technical and functional requirements to generate electronic invoices via web\nservice, based on the AFIP regulations.\nArgentinean eCommerce\n`l10n_ar_website_sale`\n(optional) Allows the user to see Identification Type and AFIP Responsibility in the\neCommerce checkout form in order to create electronic invoices.\nArgentina - Payment Withholdings\n`l10n_ar_withholding`\nAllows registering withholdings during the payment of an invoice.\n\n### Configure your company\n\nOnce the localization modules are installed, the first step is to set up the companyâs data. In\naddition to the basic information, a key field to fill in is the AFIP Responsibility\nType , which represents the fiscal obligation and structure of the company.\n\n### Chart of account\n\nIn Accounting, there are three different Chart of Accounts packages to choose from.\nThey are based on a companyâs AFIP responsibility type, and consider the difference between\ncompanies that do not require as many accounts as the companies that have more complex fiscal\nrequirements:\n- Monotributista (227 accounts);\nMonotributista (227 accounts);\n- IVA Exento (290 accounts);\nIVA Exento (290 accounts);\n- Responsable Inscripto (298 Accounts).\nResponsable Inscripto (298 Accounts).\n\n### Configure master data\n\n#### Electronic Invoice Credentials\n\nThe AFIP infrastructure is replicated in two separate environments, testing and production .\nTesting is provided so that the companies can test their databases until they are ready to move\ninto the Production environment. As these two environments are completely isolated from each\nother, the digital certificates of one instance are not valid in the other one.\nTo select a database environment, go to Accounting ⣠Settings ⣠Argentinean\nLocalization and choose either Prueba (Testing) or Produccion (Production) .\nThe electronic invoice and other AFIP services work with Web Services (WS) provided by\nthe AFIP.\nIn order to enable communication with the AFIP, the first step is to request a Digital\nCertificate if you do not have one already.\n- Generate Certificate Sign Request (Odoo) . When this option is selected, a file with\nextension .csr (certificate signing request) is generated to be used in the AFIP portal to\nrequest the certificate.\nGenerate Certificate Sign Request (Odoo) . When this option is selected, a file with\nextension .csr (certificate signing request) is generated to be used in the AFIP portal to\nrequest the certificate.\n`.csr`\n- Generate Certificate (AFIP) . Access the AFIP portal and follow the instructions\ndescribed in this document to get a certificate.\nGenerate Certificate (AFIP) . Access the AFIP portal and follow the instructions\ndescribed in this document to get a certificate.\n- Upload Certificate and Private Key (Odoo) . Once the certificate is generated, upload\nit to Odoo using the Pencil icon next to the field Certificado and select\nthe corresponding file.\nUpload Certificate and Private Key (Odoo) . Once the certificate is generated, upload\nit to Odoo using the Pencil icon next to the field Certificado and select\nthe corresponding file.\nIn case you need to configure the Homologation Certificate, please refer to the AFIP official\ndocumentation: Homologation Certificate . Furthermore, Odoo allows the user\nto test electronic invoicing locally without a Homologation Certificate. The following message\nwill be in the chatter when testing locally:\n\n#### Partner\n\nAs part of the Argentinean localization, document types defined by the AFIP are now available in the Partner form . Information is essential for most transactions. There are six Identification Types available by default, as well as 32 inactive types.\nThe complete list of Identification Types defined by the AFIP is included in Odoo,\nbut only the common ones are active.\nIn Argentina, the document type and corresponding transactions associated with customers and\nvendors is defined by the AFIP Responsibility type. This field should be defined in the Partner\nform .\n\n#### Taxes\n\nAs part of the localization module, the taxes are created automatically with their related\nfinancial account and configuration, e.g., 73 taxes for Responsable Inscripto .\nArgentina has several tax types, the most common ones are:\n- VAT : this is the regular VAT and can have various percentages;\nVAT : this is the regular VAT and can have various percentages;\n- Perception : advance payment of a tax that is applied on invoices;\nPerception : advance payment of a tax that is applied on invoices;\n- Retention : advance payment of a tax that is applied on payments.\nRetention : advance payment of a tax that is applied on payments.\nSome Argentinean taxes are not commonly used for all companies, and those less common options are\nlabeled as inactive in Odoo by default. Before creating a new tax, be sure to check if that tax is\nnot already included as inactive.\n\n#### Document types\n\nIn some Latin American countries, like Argentina, some accounting transactions such as invoices and\nvendor bills are classified by document types defined by the governmental fiscal authorities. In\nArgentina, the AFIP is the governmental fiscal authority that\ndefines such transactions.\nThe document type is an essential piece of information that needs to be clearly displayed in\nprinted reports, invoices, and journal entries that list account moves.\nEach document type can have a unique sequence per journal where it is assigned. As part of the\nlocalization, the document type includes the country in which the document is applicable (this data\nis created automatically when the localization module is installed).\nThe information required for the Document Types is included by default so the user does\nnot need to fill anything on this view:\nThere are several Document Types types that are inactive by default, but can be\nactivated as needed.\nFor Argentina, the Document Types include a letter that helps indicate the type of\ntransaction or operation. For example, when an invoice is related to a(n):\n- B2B transaction , a document type A must be used;\nB2B transaction , a document type A must be used;\n- B2C transaction , a document type B must be used;\nB2C transaction , a document type B must be used;\n- Exportation Transaction , a document type E must be used.\nExportation Transaction , a document type E must be used.\nThe documents included in the localization already have the proper letter associated with each Document Type , so there is no further configuration necessary.\nThe Document Type on each transaction will be determined by:\n- The journal entry related to the invoice (if the journal uses documents);\nThe journal entry related to the invoice (if the journal uses documents);\n- The onditions applied based on the type of issuer and receiver (e.g., the type of fiscal regime of\nthe buyer and the type of fiscal regime of the vendor).\nThe onditions applied based on the type of issuer and receiver (e.g., the type of fiscal regime of\nthe buyer and the type of fiscal regime of the vendor).\n\n### Journals\n\nIn the Argentinean localization, the journal can have a different approach depending on its usage\nand internal type. To configure journals, go to Accounting ⣠Configuration â£\nJournals .\nFor sales and purchase journals, itâs possible to activate the option Use Documents ,\nwhich enables a list of Document Types that can be related to the invoices and vendor\nbills. For more detail on invoices, please refer to the section 2.3 document types .\nIf the sales or purchase journals do not have the Use Documents option activated, they\nwill not be able to generate fiscal invoices, meaning, their use case will be mostly limited to\nmonitoring account moves related to internal control processes.\n\n#### AFIP information (also known as AFIP Point of Sale)\n\nThe AFIP POS System is a field only visible for the Sales journals and defines the\ntype of AFIP POS that will be used to manage the transactions for which the journal is created.\nThe AFIP POS defines the following:\n- the sequences of document types related to the web service;\nthe sequences of document types related to the web service;\n- the structure and data of the electronic invoice file.\nthe structure and data of the electronic invoice file.\nWeb services help generate invoices for different purposes. Below are a few options to choose\nfrom:\n- wsfev1: Electronic Invoice : is the most common service, which is used to generate\ninvoices for document types A, B, C, M with no detail per item;\nwsfev1: Electronic Invoice : is the most common service, which is used to generate\ninvoices for document types A, B, C, M with no detail per item;\n- wsbfev1: Electronic Fiscal Bond : is for those who invoice capital goods and wish to\naccess the benefit of the Electronic Tax Bonds granted by the Ministry of Economy. For more\ndetails go to: Fiscal Bond ;\nwsbfev1: Electronic Fiscal Bond : is for those who invoice capital goods and wish to\naccess the benefit of the Electronic Tax Bonds granted by the Ministry of Economy. For more\ndetails go to: Fiscal Bond ;\n- wsfexv1: Electronic Exportation Invoice : is used to generate invoices for\ninternational customers and transactions that involve exportation processes, the document type\nrelated is type âEâ.\nwsfexv1: Electronic Exportation Invoice : is used to generate invoices for\ninternational customers and transactions that involve exportation processes, the document type\nrelated is type âEâ.\nHere are some useful fields to know when working with web services:\n- AFIP POS Number : is the number configured in the AFIP to identify the operations\nrelated to this AFIP POS;\nAFIP POS Number : is the number configured in the AFIP to identify the operations\nrelated to this AFIP POS;\n- AFIP POS Address : is the field related to the commercial address registered for the\nPOS, which is usually the same address as the company. For example, if a company has multiple\nstores (fiscal locations) then the AFIP will require the company to have one AFIP POS per\nlocation. This location will be printed in the invoice report;\nAFIP POS Address : is the field related to the commercial address registered for the\nPOS, which is usually the same address as the company. For example, if a company has multiple\nstores (fiscal locations) then the AFIP will require the company to have one AFIP POS per\nlocation. This location will be printed in the invoice report;\n- Unified Book : when the AFIP POS System is Preimpresa, then the document types\n(applicable to the journal) with the same letter will share the same sequence. For example: Invoice: FA-A 0001-00000002; Credit Note: NC-A 0001-00000003; Debit Note: ND-A 0001-00000004.\nUnified Book : when the AFIP POS System is Preimpresa, then the document types\n(applicable to the journal) with the same letter will share the same sequence. For example:\n- Invoice: FA-A 0001-00000002;\nInvoice: FA-A 0001-00000002;\n- Credit Note: NC-A 0001-00000003;\nCredit Note: NC-A 0001-00000003;\n- Debit Note: ND-A 0001-00000004.\nDebit Note: ND-A 0001-00000004.\n\n#### Sequences\n\nFor the first invoice, Odoo synchronizes with the AFIP automatically and displays the last sequence\nused.\nWhen creating Purchase Journals , itâs possible to define whether they are related to\ndocument types or not. In the case where the option to use documents is selected, there would be\nno need to manually associate the document type sequences, since the document number is provided\nby the vendor.\n\n## Usage and testing\n\n### Invoice\n\nThe information below applies to invoice creation once the partners and journals are created and\nproperly configured.\n\n#### Document type assignation\n\nWhen the partner is selected, the Document Type field will be filled in automatically\nbased on the AFIP document type:\n- Invoice for a customer IVA Responsable Inscripto, prefix A is the type of document that shows\nall the taxes in detail along with the customerâs information.\nInvoice for a customer IVA Responsable Inscripto, prefix A is the type of document that shows\nall the taxes in detail along with the customerâs information.\n- Invoice for an end customer, prefix B is the type of document that does not detail the taxes,\nsince the taxes are included in the total amount.\nInvoice for an end customer, prefix B is the type of document that does not detail the taxes,\nsince the taxes are included in the total amount.\n- Exportation Invoice, prefix E is the type of document used when exporting goods that shows\nthe incoterm.\nExportation Invoice, prefix E is the type of document used when exporting goods that shows\nthe incoterm.\nEven though some invoices use the same journal, the prefix and sequence are given by the Document Type field.\nThe most common Document Type will be defined automatically for the different\ncombinations of AFIP responsibility type but it can be updated manually by the user before\nconfirming the invoice.\n\n#### Electronic invoice elements\n\nWhen using electronic invoices, if all the information is correct then the invoice is posted in the\nstandard way unless there is an error that needs to be addressed. When error messages pop up, they\nindicate both the issue that needs attention along with a proposed solution. If an error persists,\nthe invoice remains in draft until the issue is resolved.\nOnce the invoice is posted, the information related to the AFIP validation and status is displayed\nin the AFIP tab, including:\n- AFIP Autorisation : CAE number;\nAFIP Autorisation : CAE number;\n- Expiration Date : deadline to deliver the invoice to the customers (normally 10 days\nafter the CAE is generated);\nExpiration Date : deadline to deliver the invoice to the customers (normally 10 days\nafter the CAE is generated);\n- Result: indicates if the invoice has been Aceptado en AFIP and/or Aceptado con Observaciones .\nResult: indicates if the invoice has been Aceptado en AFIP and/or Aceptado con Observaciones .\n\n#### Invoice taxes\n\nBased on the AFIP Responsibility type , the VAT tax can apply differently on the PDF\nreport:\n- A. Tax excluded : in this case the taxed amount needs to be clearly identified in the\nreport. This condition applies when the customer has the following AFIP Responsibility type of Responsable Inscripto ;\nA. Tax excluded : in this case the taxed amount needs to be clearly identified in the\nreport. This condition applies when the customer has the following AFIP Responsibility type of Responsable Inscripto ;\n- B. Tax amount included : this means that the taxed amount is included as part of the\nproduct price, subtotal, and totals. This condition applies when the customer has the following\nAFIP Responsibility types: IVA Sujeto Exento; Consumidor Final; Responsable Monotributo; IVA liberado.\nB. Tax amount included : this means that the taxed amount is included as part of the\nproduct price, subtotal, and totals. This condition applies when the customer has the following\nAFIP Responsibility types:\n- IVA Sujeto Exento;\n- Consumidor Final;\n- Responsable Monotributo;\nResponsable Monotributo;\n- IVA liberado.\n\n#### Special use cases\n\nFor electronic invoices that include Services , the AFIP requires to report the service\nstarting and ending date, this information can be filled in the tab Other Info .\nIf the dates are not selected manually before the invoice is validated, the values will be filled\nautomatically with the first and last day of the invoiceâs month.\nInvoices related to Exportation Transactions require that a journal uses the AFIP POS\nSystem Expo Voucher - Web Service so that the proper document type(s) can be associated.\nWhen the customer selected in the invoice is configured with an AFIP responsibility type Cliente / Proveedor del Exterior - Ley N° 19.640 , Odoo automatically\nassigns the:\n- Journal related to the exportation Web Service;\nJournal related to the exportation Web Service;\n- Exportation document type;\nExportation document type;\n- Fiscal position: Compras/Ventas al exterior;\nFiscal position: Compras/Ventas al exterior;\n- Concepto AFIP: Products / Definitive export of goods;\nConcepto AFIP: Products / Definitive export of goods;\n- Exempt Taxes.\nThe Exportation Documents require Incoterms to be enabled and configured, which can be found in Other Info ⣠Accounting .\nThe Electronic Fiscal Bond is used for those who invoice capital goods and wish to\naccess the benefit of the Electronic Tax Bonds granted by the Ministry of Economy.\nFor these transactions, it is important to consider the following requirements:\n- Currency (according to the parameter table) and invoice quotation;\nCurrency (according to the parameter table) and invoice quotation;\n- Taxes;\n- Detail each item; Code according to the Common Nomenclator of Mercosur (NCM); Complete description; Unit Net Price; Quantity; Unit of measurement; Bonus; VAT rate.\n- Code according to the Common Nomenclator of Mercosur (NCM);\nCode according to the Common Nomenclator of Mercosur (NCM);\n- Complete description;\nComplete description;\n- Unit Net Price;\n- Quantity;\n- Unit of measurement;\n- Bonus;\n- VAT rate.\nFor SME invoices, there are several document types that are classified as MiPyME , which are\nalso known as Electronic Credit Invoice (or FCE in Spanish). This classification develops a\nmechanism that improves the financing conditions for small and medium-sized businesses, and allows\nthem to increase their productivity, through the early collection of credits and receivables issued\nto their clients and/or vendors.\nFor these transactions itâs important to consider the following requirements:\n- specific document types (201, 202, 206, etc);\nspecific document types (201, 202, 206, etc);\n- the emitter should be eligible by the AFIP to MiPyME transactions;\nthe emitter should be eligible by the AFIP to MiPyME transactions;\n- the amount should be bigger than 100,000 ARS;\nthe amount should be bigger than 100,000 ARS;\n- A bank account type CBU must be related to the emisor, otherwise the invoice cannot be validated,\nhaving an error message such as the following.\nA bank account type CBU must be related to the emisor, otherwise the invoice cannot be validated,\nhaving an error message such as the following.\nTo set up the Transmission Mode , go to settings and select either SDC or ADC .\nTo change the Transmission Mode for a specific invoice, go to the Other Info tab and change it before confirming.\nChanging the Transmission Mode will not change the mode selected in Settings .\nWhen creating a Credit/Debit note related to a FCE document:\n- use the Credit and Debit Note buttons, so all the information from the invoice is\ntransferred to the new Credit and Debit Note ;\nuse the Credit and Debit Note buttons, so all the information from the invoice is\ntransferred to the new Credit and Debit Note ;\n- the document letter should be the same as than the originator document (either A or B);\nthe document letter should be the same as than the originator document (either A or B);\n- the same currency as the source document must be used. When using a secondary currency there is\nan exchange difference if the currency rate is different between the emission day and the payment\ndate. It is possible to create a credit/debit note to decrease/increase the amount to pay in ARS.\nthe same currency as the source document must be used. When using a secondary currency there is\nan exchange difference if the currency rate is different between the emission day and the payment\ndate. It is possible to create a credit/debit note to decrease/increase the amount to pay in ARS.\nWhen creating a Credit Note we can have two scenarios:\n- the FCE is rejected so the Credit Note should have the field FCE, is\nCancellation? as True ; or;\nthe FCE is rejected so the Credit Note should have the field FCE, is\nCancellation? as True ; or;\n- the Credit Note , is created to annulate the FCE document, in this case the field FCE, is Cancellation? must be empty (false).\nthe Credit Note , is created to annulate the FCE document, in this case the field FCE, is Cancellation? must be empty (false).\n\n#### Invoice printed report\n\nThe PDF Report related to electronic invoices that have been validated by the AFIP\nincludes a barcode at the bottom of the format which represents the CAE number. The expiration date\nis also displayed as it is a legal requirement.\n\n#### Troubleshooting and auditing\n\nFor auditing and troubleshooting purposes, it is possible to obtain detailed information of an\ninvoice number that has been previously sent to the AFIP. To retrieve this information, activate the developer mode , then go to the Accounting menu and click on\nthe button Consult Invoice button in AFIP.\nIt is also possible to retrieve the last number used in AFIP for a specific document type and POS\nNumber as a reference for any possible issues on the sequence synchronization between Odoo and\nAFIP.\n\n### Vendor bills\n\nBased on the purchase journal selected for the vendor bill, the Document Type is now a\nrequired field. This value is auto-populated based on the AFIP Responsibility type of Issuer and\nCustomer, but the value can be changed if necessary.\nThe Document Number field needs to be registered manually and the format will be\nvalidated automatically. However, in case the format is invalid, a user error will be displayed\nindicating the correct format that is expected.\nThe vendor bill number is structured in the same way as the customer invoices, excepted that the\ndocument sequence is entered by the user using the following format: Document Prefix - Letter -\nDocument Number .\n\n#### Validate vendor bill number in AFIP\n\nAs most companies have internal controls to verify that the vendor bill is related to an AFIP valid\ndocument, an automatic validation can be set in Accounting ⣠Settings â£\nArgentinean Localization ⣠Validate document in the AFIP , considering the following levels:\n- Not available: the verification is not done (this is the default value);\nNot available: the verification is not done (this is the default value);\n- Available: the verification is done. In case the number is not valid, it only displays\na warning but still allows the vendor bill to be posted;\nAvailable: the verification is done. In case the number is not valid, it only displays\na warning but still allows the vendor bill to be posted;\n- Required: the verification is done, and it does not allow the user to post the vendor\nbill if the document number is not valid.\nRequired: the verification is done, and it does not allow the user to post the vendor\nbill if the document number is not valid.\nWith the vendor validation settings enabled, a new button shows up on the vendor bills inside of\nOdoo, labeled Verify on AFIP , which is located next to the AFIP\nAuthorization code field.\nIn case the vendor bill cannot be validated in AFIP, a value of Rejected will be\ndisplayed on the dashboard and the details of the invalidation will be added to the chatter.\n\n#### Special use cases\n\nThere are some transactions that include items that are not a part of the VAT base amount, such as\nfuel and gasoline invoices.\nThe vendor bill will be registered using one item for each product that is part of the VAT base\namount, and an additional item to register the amount of the exempt concept.\nThe vendor bill will be registered using one item for each product that is part of the VAT base\namount, and the perception tax can be added in any of the product lines. As a result, there will be\none tax group for the VAT and another for the perception. The perception default value is always 0.10 .\nTo edit the VAT perception and set the correct amount, you should use the Pencil icon\nthat is the next to the Perception amount. After the VAT perception amount has been set,\nthe invoice can then be validated.\n\n### Withholding management\n\nThe Argentinean fiscal localization module is already loaded with the necessary withholdings\nrecords, which can be seen by navigating to Accounting app ⣠Configuration â£\nTaxes and removing the default Sale or Purchase filter. To verify these records, the Argentina Payment Withholdings ( l10n_ar_withholding ) module must be installed :\n`l10n_ar_withholding`\nJournal entries are not created when payments are posted unless outstanding accounts are set up. Thus, for this feature to work properly, it\nis important to verify that all payment methods within the bank journals have an outstanding\npayment and receipt account set.\nThis configuration is crucial for the proper accounting of withholding transactions with clients\nand vendors.\nIn Argentina, withholdings represent the cancellation of a specific portion of the total debt\nowed to a supplier or a reduction in the total payment to be collected from a customer.\nTherefore, one or multiple withholdings can be recorded for each payment applied to an invoice.\n\n#### Configuration\n\nWhile Odoo already creates most of the required withholdings inside the Taxes menu, in several cases, it is necessary to apply or modify certain configurations to correctly\ncalculate the withholding amount on vendor payments. The following withholding types are available:\n- Earnings\n- Earnings Scale\n- IIBB Total Amount\n- IIBB Non-Taxable\nFor Earnings withholdings, Odoo already has a record for each regime group, which is\nstated under the name of the tax and the AFIP code.\nEach of these records are ready to be used. As a good practice, the configuration should be double\nchecked to make sure the configuration is updated and well-applied. The fields to validate are:\n- Amount : This is the percentage of the total payment amount which is withheld.\nAmount : This is the percentage of the total payment amount which is withheld.\n- Non-Taxable Amount : Up to this amount, the withholding does not apply.\nNon-Taxable Amount : Up to this amount, the withholding does not apply.\n- Minimum Withholding : If the calculated withholding amount is smaller than this value,\nthe total withholding amount is set to 0.0 .\nMinimum Withholding : If the calculated withholding amount is smaller than this value,\nthe total withholding amount is set to 0.0 .\n`0.0`\n- Withholding Sequence : This field helps to automate the capture of a withholding number\nunder the payment line. If this field is not set, a number is manually captured while adding a\nwithholding to a payment.\nWithholding Sequence : This field helps to automate the capture of a withholding number\nunder the payment line. If this field is not set, a number is manually captured while adding a\nwithholding to a payment.\nIn this particular case, a percentage does not need to be set. Instead, this withholding is\ncalculated based on the value of the Scale field.\nTo view, modify, or create new scales, navigate to Accounting app ⣠Configuration\n⣠Earnings Scale . By default, the Argentinian localization is preconfigured with two main scales.\nHowever, scales should be created and updated as necessary to suit a businessâs needs.\nEarnings scales are cumulative, which means that Odoo keeps track of the different records\ncreated for a bill and automatically calculates the proper withholding amount.\nIn this case, the necessary records related to the applicable province need to be created. The\nwithholding amount is calculated based on the percentage Amount set on the tax\nconfiguration. Since Odoo does not automatically synchronize the percentages applicable to each\nprovince, this information needs to be manually updated.\nThe recommendation, in this case, is to always duplicate and apply the different configurations for\neach record to safeguard any technical configurations that allow the proper calculation and\naccounting of the withholding.\nThe configuration of non-taxable gross income withholdings is very similar to that of a total\namount withholding , so the percentage Amount in\neach of the records needs to be maintained. However, Odoo comes preconfigured with several records\nthat apply to different provinces. The difference, in this case, is that it is not necessary to\nestablish a non-taxable amount or minimum withholding for this record type.\n\n#### Partner withholding assignation\n\nOnce the proper configuration is set on each possible withholding for partners, the applicable\nwithholdings need to be assigned to each contact. To do this, open the Contacts app and\nselect the desired partner. In the Accounting tab, find the Purchase\nWithholdings table.\nBy using the additional fields From Date and To Date , the applicability of\nmultiple withholdings can be automated across different date ranges. The ref field\nallows you to apply an internal control number to each withholding line, which is just for internal\nreference, so it does not affect any transactions and is not visible on them. These fields are\naccessible from the (adjust settings) menu.\n- From Date : the start of the withholding date range.\nFrom Date : the start of the withholding date range.\n- To Date : the end of the withholding date range.\nTo Date : the end of the withholding date range.\n- ref : apply an internal control number to each withholding line that is only visible\nfor internal reference and does not affect any transactions.\nref : apply an internal control number to each withholding line that is only visible\nfor internal reference and does not affect any transactions.\n\n#### Automatic withholding calculation and application per payment\n\nBy applying new payments to vendor bills, Odoo automatically applies and calculates the proper\nwithholding into the payment. Based on the recordâs configuration, it may be necessary to use a\nreference number for each withholding line.\nMore withholdings can be added, or computed withholdings can be edited if necessary.\nThe total amount of the debt to be canceled is the total amount of the payment. However, Odoo\nstill captures the net amount (i.e. the amount to be reconciled with the bank), which will be\nrepresented as the payment amount after the withholding application.\n\n### Check management\n\nTo install the Third Party and Deferred/Electronic Checks Management module, go to Apps and search for the module by its technical name l10n_latam_check and click\nthe Activate button.\n`l10n_latam_check`\nThis module enables the required configuration for journals and payments to:\n- Create, manage, and control your different types of checks\nCreate, manage, and control your different types of checks\n- Optimize the management of own checks and third party checks\nOptimize the management of own checks and third party checks\n- Have an easy and effective way to manage expiration dates from your own and third party checks\nHave an easy and effective way to manage expiration dates from your own and third party checks\nOnce all the configurations are made for the Argentinian electronic invoice flow, it is also needed\nto complete certain configurations for the own checks and the third party checks flows.\n\n#### Own checks\n\nConfigure the bank journal used to create your own checks by going to Accounting â£\nConfiguration ⣠Journals , selecting the bank journal, and opening the Outgoing\nPayments tab.\n- Checks should be available as a Payment Method . If not, click Add a line and type Checks under Payment Method to add them\nChecks should be available as a Payment Method . If not, click Add a line and type Checks under Payment Method to add them\n`Checks`\n- Enable the Use electronic and deferred checks setting.\nEnable the Use electronic and deferred checks setting.\nThis last configuration disables the printing ability but enables to:\n- Enter check numbers manually\nEnter check numbers manually\n- Adds a field to allocate the payment date of the check\nAdds a field to allocate the payment date of the check\nOwn checks can be created directly from the vendor bill. For this process, click on the Register Payment button.\nOn the payment registration modal, select the bank journal from which the payment is to be made and\nset the Check Cash-In Date , and the Amount .\nTo manage current checks, the Check Cash-In Date field must be left blank or filled\nin with the current date. To manage deferred checks, the Check Cash-In Date must be\nset in the future.\nTo manage your existing own checks, navigate to Accounting ⣠Vendors ⣠Own\nChecks . This window shows critical information such as the dates when checks need to be paid, the\ntotal quantity of checks, and the total amount paid in checks.\nIt is important to note that the list is pre-filtered by checks that are still not reconciled with\na bank statement - that were not yet debited from the bank - which can be verified with the Is Matched with a Bank Statement field. If you want to see all of your own checks,\ndelete the No Bank Matching filter by clicking on the X symbol.\nTo cancel an own check created in Odoo, navigate to Accounting ⣠Vendors ⣠Own\nChecks and select the check to be cancelled, then click on the Void Check button. This\nwill break the reconciliation with the vendor bills and the bank statements and leave the check in a cancelled state.\n\n#### Third party checks\n\nIn order to register payments using third party checks, two specific journals need to be configured.\nTo do so, navigate to Accounting ⣠Configuration ⣠Journals and create two new\njournals:\n- Third Party Checks\n`ThirdPartyChecks`\n- Rejected Third Party Checks\nRejected Third Party Checks\n`RejectedThirdPartyChecks`\nYou can manually create more journals if you have multiple points of sale and need journals for\nthose.\nTo create the Third Party Checks journal, click the New button and configure the\nfollowing:\n- Type Third Party Checks as the Journal Name\nType Third Party Checks as the Journal Name\n`ThirdPartyChecks`\n- Select Cash as Type\n- In the Journal Entries tab, set Cash Account : to 1.1.1.02.010 Cheques de Terceros , input a Short Code of your choice, and select a Currency\nIn the Journal Entries tab, set Cash Account : to 1.1.1.02.010 Cheques de Terceros , input a Short Code of your choice, and select a Currency\n`1.1.1.02.010ChequesdeTerceros`\nThe available payment methods are listed in the payments tabs:\n- For new incoming third party checks, go to Incoming Payments tab ⣠Add a line and select New Third Party Checks . This method is used to create new third party\nchecks.\nFor new incoming third party checks, go to Incoming Payments tab ⣠Add a line and select New Third Party Checks . This method is used to create new third party\nchecks.\n- For incoming and outgoing existing third party checks, go to Incoming Payments tab\n⣠Add a line and select Existing Third Party Checks . Repeat the same step for the Outgoing Payments tab. This method is used to receive and/or pay vendor bills using\nalready existing checks, as well as for internal transfers.\nFor incoming and outgoing existing third party checks, go to Incoming Payments tab\n⣠Add a line and select Existing Third Party Checks . Repeat the same step for the Outgoing Payments tab. This method is used to receive and/or pay vendor bills using\nalready existing checks, as well as for internal transfers.\nYou can delete pre-existing payment methods appearing by default when configuring the third\nparty checks journals.\nThe Rejected Third Party Checks journal also needs to be created and/or configured. This journal\nis used to manage rejected third party checks and can be utilized to send checks rejected at the\nmoment of collection or when coming from vendors when rejected.\nTo create the Rejected Third Party Checks journal, click the New button and configure\nthe following:\n- Type Rejected Third Party Checks as the Journal Name\nType Rejected Third Party Checks as the Journal Name\n`RejectedThirdPartyChecks`\n- Select Cash as Type\n- In the Journal Entries tab, set Cash Account : to 1.1.1.01.002 Rejected Third Party Checks , input a Short Code of your choice, and select a Currency\nIn the Journal Entries tab, set Cash Account : to 1.1.1.01.002 Rejected Third Party Checks , input a Short Code of your choice, and select a Currency\n`1.1.1.01.002RejectedThirdPartyChecks`\nUse the same payment methods as the Third Party Checks journal.\nTo register a new third party check for a customer invoice, click the Register Payment button. In the pop-up window, you must select Third Party Checks as journal for the\npayment registration.\nSelect New Third Party Checks as Payment Method , and fill in the Check Number , Payment Date , and Check Bank . Optionally, you can\nmanually add the Check Issuer Vat , but this is automatically filled by the customerâs\nVAT number related to the invoice.\nTo pay a vendor bill with an existing check, click the Register Payment button. In the\npop-up window, you must select Third Party Checks as journal for the payment\nregistration.\nSelect Existing Third Party Checks as Payment Method , and select a check\nfrom the Check field. The field shows all available existing checks to be used as\npayment for vendor bills.\nWhen an existing third party check is used, you can review the operations related to it. For\nexample, you can see if a third party check made to pay a customer invoice was later used as an\nexisting third party check to pay a vendor bill.\nTo do so, either go to Accounting ⣠Customers ⣠Third Party Checks or Accounting ⣠Vendors ⣠Own Checks depending on the case, and click on a check.\nIn the Check Current Journal field, click on => Check Operations to bring up\nthe checkâs history and movements.\nThe menu also displays critical information related to these operations, such as:\n- The Payment Type , allowing to classify whether it is a payment sent to a vendor or a\npayment received from a customer\nThe Payment Type , allowing to classify whether it is a payment sent to a vendor or a\npayment received from a customer\n- The Journal in which the check is currently registered\nThe Journal in which the check is currently registered\n- The partner associated with the operation (either customer or vendor).\nThe partner associated with the operation (either customer or vendor).\n\n### Ecommerce electronic invoicing\n\nInstall the Argentinian eCommerce ( l10n_ar_website_sale ) module to\nenable the following features and configurations:\n`l10n_ar_website_sale`\n- Clients being able to create online accounts for eCommerce purposes.\nClients being able to create online accounts for eCommerce purposes.\n- Support for required fiscal fields in the eCommerce application.\nSupport for required fiscal fields in the eCommerce application.\n- Receive payments for sale orders online.\nReceive payments for sale orders online.\n- Generate electronic documents from the eCommerce application.\nGenerate electronic documents from the eCommerce application.\n\n#### Configuration\n\nOnce all of the configurations are made for the Argentinian electronic invoice flow, it is also necessary to complete certain configurations to\nintegrate the eCommerce flow.\nTo configure your website for client accounts, follow the instructions in the checkout documentation.\nConfigure your website to generate electronic documents in the sales process by navigating to Website ⣠Configuration ⣠Settings and activating the Automatic\nInvoice feature in the Invoicing section to automatically generate the required\nelectronic documents when the online payment is confirmed.\nSince an online payment needs to be confirmed for the Automatic Invoice feature to\ngenerate the document, a payment provider must be configured for\nthe related website.\nTo allow your products to be invoiced when an online payment is confirmed, navigate to the desired\nproduct from Website ⣠eCommerce ⣠Products . In the General\nInformation tab, set the Invoicing Policy to Ordered quantities and define\nthe desired Customer Taxes .\n\n#### Invoicing flow for eCommerce\n\nOnce the configurations mentioned above are all set, clients can complete the following required\nsteps in the Argentinian eCommerce flow to input fiscal fields in the checkout process.\nFiscal fields are available for input in the checkout process once the Country field is\nset as Argentina . Inputting the fiscal data enables the purchase to conclude in the corresponding\nelectronic document.\n`Argentina`\nWhen the client makes a successful purchase and payment, the necessary invoice is generated with\nthe corresponding layout and fiscal stamps stated in the Invoice printed report .\nClient account creation\n\n### Liquidity product direct sales\n\nLiquidity product direct sales are used for sales involving third parties. For such\nsales, the seller and the proprietary company of the goods can each register their corresponding\nsales and purchases.\nInstall the Argentinian Electronic Invoicing module ( l10n_ar_edi ) to\nuse this feature.\n`l10n_ar_edi`\n\n#### Configuration\n\nA purchase journal is needed to generate an electronic vendor bill with a document type Liquidity\nProduct . This journal needs to be synchronized with the AFIP as it will be used to generate the\nliquidity product electronic document.\nTo modify the existing purchase journal or create a new one, navigate to Accounting\n⣠Configuration ⣠Journals . Then, select the existing purchase journal or click the New button, and fill in the following required information:\n- Type : select Purchase .\nType : select Purchase .\n- Use Documents : check this field to to be able select the electronic document type.\nUse Documents : check this field to to be able select the electronic document type.\n- Is AFIP POS : check this field to be able to generate electronic documents.\nIs AFIP POS : check this field to be able to generate electronic documents.\n- AFIP POS System : select Electronic Invoice - Web Service from the\ndrop-down menu in order to send the electronic document to AFIP via web service.\nAFIP POS System : select Electronic Invoice - Web Service from the\ndrop-down menu in order to send the electronic document to AFIP via web service.\n- AFIP POS Number : is the number configured in the AFIP to identify the operations\nrelated to this AFIP POS.\nAFIP POS Number : is the number configured in the AFIP to identify the operations\nrelated to this AFIP POS.\n- AFIP POS Address : is the field related to the commercial address registered for the\nPOS, which is usually the same address as the company. For example, if a company has multiple\nstores (fiscal locations) then the AFIP will require the company to have one AFIP POS per\nlocation. This location will be printed in the invoice report.\nAFIP POS Address : is the field related to the commercial address registered for the\nPOS, which is usually the same address as the company. For example, if a company has multiple\nstores (fiscal locations) then the AFIP will require the company to have one AFIP POS per\nlocation. This location will be printed in the invoice report.\nA sales journal is needed to register the invoice when a product is sold to a third party that will\nthen sell the same product. This journal will not be synced with AFIP as the invoice will not be\nelectronic.\nTo modify the existing sales journal or create a new one, navigate to Accounting ⣠Configuration ⣠Journals . Then, selecting the sales journal or\nclick the New button, and fill in the following required information:\n- Type : select Sales .\nType : select Sales .\n- Use Documents : check this field on the journal to select the electronic document type\n(in this case the electronic invoice).\nUse Documents : check this field on the journal to select the electronic document type\n(in this case the electronic invoice).\n\n#### Invoicing flow\n\nOnce the configurations are all set, the Liquidity Product Vendor Bill will be generated by the\ncompany that is selling the product on behalf of another party. For example, a distributor of a\nspecific product.\n\n## Reports\n\nAs part of the localization installation, financial reporting for Argentina is available in the Accounting dashboard. To access these reports, navigate to Accounting\n⣠Reporting ⣠Argentinean Statements .\nTo access the VAT book report, go to Accounting ⣠Reporting ⣠Tax Report , click\nthe ( book ), and select Argentinean VAT book (AR) .\nThe VAT book report can be exported as a .zip file by selecting it in the dropdown menu in the\ntop-left corner.\n`.zip`\n\n### VAT summary\n\nThis pivot table is designed to check the monthly VAT totals. This report is for internal use and is\nnot sent to the AFIP.\n\n### IIBB - Sales by jurisdiction\n\nThis pivot table allows you to validate the gross income in each jurisdiction. It serves as an\naffidavit for the corresponding taxes due but is not submitted to the AFIP.\n\n### IIBB - Purchases by jurisdiction\n\nThis pivot table allows you to validate the gross purchases in each jurisdiction. It serves as an\naffidavit for the corresponding taxes due but is not submitted to the AFIP.", "headings": ["Webinars", "Configuration", "Modules installation", "Configure your company", "Chart of account", "Configure master data", "Journals", "Usage and testing", "Invoice", "Vendor bills", "Withholding management", "Check management", "Ecommerce electronic invoicing", "Liquidity product direct sales", "Reports", "VAT summary", "IIBB - Sales by jurisdiction", "IIBB - Purchases by jurisdiction"], "doc_id": "9bdaf33f3db33a4b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/australia.html", "title": "Australia", "module": "invoicing", "section": "Australia", "text": "# Australia\n\n## Modules\n\nAustralia - Accounting\n`l10n_au`\nThe base accounting module for the Australian localization. It\nis installed automatically when the Australia fiscal localization package is selected. This module also installs the ABA Credit\nTransfer module.\nAustralian Reports - Accounting\n`l10n_au_reports`\nAdds the Taxable Payments Annual Report (TPAR) and the Business\nActivity Statement (BAS) report. It is installed automatically when the Australia fiscal localization package is\nselected.\n`l10n_au_hr_payroll`\nThe base payroll module for the Australian localization.\nAustralia - Payroll with Accounting\nl10n_au_hr_payroll_account\n`l10n_au_hr_payroll_account`\nContains the necessary accounting data for the Australian payroll rules. It is installed\nautomatically when the Payroll Entries option is enabled.\nEmployment Hero Payroll\n`l10n_employment_hero`\nSynchronizes all pay runs from Employment Hero with Odooâs journal entries.\nIt is not possible for users of the Australian fiscal localization to deactivate two-factor\nauthentication (2FA) as it is required by the Australian government.\n\n## Accounting\n\n### Taxes and GST\n\nIn Australia, the standard Goods and Services Tax (GST) rate is 10%, but different rates and\nexemptions exist for specific categories of goods and services.\nThe taxes impact the BAS report .\n\n#### Tax mapping\n\nWithin the Australian localization, tax names encompass the tax rate as an integral part of their\nnaming convention. Despite the high number of taxes configured in Odoo,\ntheir rates are often similar (0% or 10%).\nThe GST sales taxes available in Odoo are listed below.\nGST Free on Export Sales\nThis is for adjustment, amounts can be modified to fit your needs\nTax Adjustments (Sales)\nThe GST purchase taxes available in Odoo are listed below.\n10% Capital Purchases\nPurchases for Input Taxed Sales\n10% Purchases for Input Taxed Sales\nPurchases for private use or not deductible\n10% Purchases for Private Use\nPurchase (Taxable Imports) - Tax Paid Separately\n0% GST Paid Separately\nTax Adjustments (Purchases)\nTax Adjustments (Purchases)\nDeferred GST Liability\nTax Withheld for Partners without ABN\nWithholding Tax for No ABN\nOther amounts withheld (excluding any amount shown at W2 or W4)\nOther Amounts Withheld (W3)\nBusinesses from certain industries need to report payments made to subcontractors from relevant\nservices during the financial year. Odoo combines the use of taxes and fiscal positions to report\nthese payments on the TPAR . In order to be compliant with the TPARâs\nobligations, two variants of the main purchase taxes are available in Odoo, but they are inactive by\ndefault.\nFor the 10% GST tax, the variants are:\nTPAR variant of the tax, if the contractor provided an ABN\nTPAR variant of the tax, if the contractor did not provide an ABN\n\n#### Deferred GST\n\nOdoo allows companies under the Deferred Goods and Services Tax (DGST) scheme to automate their deferred GST flows.\nIt is recommended to:\n- go to Accounting ⣠Configuration ⣠Settings and set the Tax Return\nPeriodicity to monthly (= monthly BAS); and\ngo to Accounting ⣠Configuration ⣠Settings and set the Tax Return\nPeriodicity to monthly (= monthly BAS); and\n- create a new journal to store all deferred GST entries by going to Accounting\n⣠Configuration ⣠Journals ⣠New , and selecting Miscellaneous as its Type when configuring it.\ncreate a new journal to store all deferred GST entries by going to Accounting\n⣠Configuration ⣠Journals ⣠New , and selecting Miscellaneous as its Type when configuring it.\nBy default, a tax ( 100% DGST , inactive by default) and an account ( 21340 Deferred GST Liability )\nare available for Australian companies. Activate the tax by going to Accounting â£\nConfiguration ⣠Taxes . Search for the Name 100% DGST (remove the default filter if\nnecessary), and click the Activate toggle switch.\n`100%DGST`\nWhen importing goods from abroad, the GST liability can now be deferred for companies under the DGST\nscheme. On the purchase order, select the 0% TPS tax (tax paid separately) for the\nrelevant order lines.\nWhen the Australian Taxation Office (ATO) is advised electronically of the aggregated liability for\nthe company by the Integrated Cargo System (ICS), the GST balance deferred during the previous month\nbecomes available on the ATOâs BAS portal.\nOdoo does not yet fetch the DGST balance automatically from the ATO. A manual entry with the\nliability amount needs to be created in Odoo. We recommend using a new journal for this purpose\nsince deferrals will be recurring.\nGo to Accounting ⣠Journal Entries ⣠New . On the first journal item line, add\nthe Account 21340 Deferred GST Liability and the deferred GST balance as a Credit . To resume the example shown above, we credit $2,000 and save.\n`21340DeferredGSTLiability`\nAn auto-balancing line is created, along with journal items correctly assigning the right values in\nthe BAS Tax Grids . Sections G11 , G18 , 7A , and ONLY are updated correctly.\nAfter posting the journal entry, the BAS report displays the correct values for each section, along\nwith the DGST offset.\n\n### Reports\n\n#### Business Activity Statement (BAS)\n\nThe BAS report is a critical tax reporting requirement for businesses registered for GST in\nAustralia. The BAS is used to report and remit various taxes to the ATO. With the Odoo BAS feature,\nbusinesses can report on the following:\n- PAYG tax withheld\nAccess the report from the Accounting dashboard by clicking BAS Report (AU) under the Miscellaneous Operations section.\nThe base and tax amounts are collected from the tax grid , which is pre-configured in the system.\nThe tax grid can also be manually set up for any additional special use-case of GST (e.g., wine\nequalization tax). Once the tax for each account is set up, the system automatically slots journal\nitems into the correct tax category. This ensures the BAS report is accurate and reflective of the\nbusinessâs financial activities.\nBesides the GST sections, the BAS report also includes the PAYG tax withheld components ( W1 to W5 , then summary, section 4 ). This integration ensures that all payroll-related withholding\ntaxes are accurately captured and reflected within the report.\nThe module incorporates built-in rules that facilitate the automatic calculation of taxes for types\nW1 to W5. For a detailed walkthrough and more information on the calculation process for these\ntaxes, refer to the Payroll section .\nWhen it is time to file the tax return with the ATO, click Closing Entry . The tax return\nperiod can be configured under Accounting ⣠Configuration ⣠Settings ⣠Tax\nReturn Periodicity . The start date of the tax return period can also be defined on the report\nitself through the period button ( period year ).\nOdoo uses calendar quarters rather than the Australian FY quarters, which means July to\nSeptember is Q3 in Odoo.\nBefore closing the entry for the first time, the default GST payable account and GST\nreceivable account need to be set. A notification pops up and redirects the user to the tax groups\nconfiguration.\nOnce the GST payable and GST receivable accounts are set up, the BAS report generates an accurate\njournal closing entry automatically, which balances out the GST balance with the GST clearing\naccount.\nThe balance between GST receivable and payable is set against the tax clearing account defined on\nthe tax group. The amount to be paid to or received from the ATO can be reconciled against a bank\nstatement.\nThe BAS report is not directly submitted to the ATO. Odoo helps you automatically compute the\nnecessary values in each section, with the possibility to audit them to better understand the\nhistory behind these numbers. Businesses can copy these values and enter them on the ATO portal .\n\n#### Taxable Payments Annual Report (TPAR)\n\nOdoo allows businesses to report payments made to contractors or subcontractors during the financial\nyear. This is done by generating a TPAR . If you are unsure your business needs this report,\nrefer to the ATOâs TPAR web page .\nAccess the TPAR in Odoo by going to Accounting ⣠Reporting ⣠Taxable Payments\nAnnual Reports (TPAR) .\nFirst, it is required to assign fiscal positions to your contractors before billing them to update\nthe TPAR. To do so, go to Accounting ⣠Vendors ⣠Vendors , select a contractor,\nand set a Fiscal Position under the Sales & Purchase tab.\nBased on the chosen fiscal position, the correct tax mapping will apply to the contractorâs vendor\nbills.\nThe TPAR includes the following information from contractors:\n- Total GST (the total tax paid)\nTotal GST (the total tax paid)\n- Gross Paid (the amounts are displayed after a vendor bill has been marked as paid)\nGross Paid (the amounts are displayed after a vendor bill has been marked as paid)\n- Tax Withheld (displayed if the contractor is registered with a fiscal position set to TPAR without ABN )\nTax Withheld (displayed if the contractor is registered with a fiscal position set to TPAR without ABN )\nThe TPAR can be exported to multiple formats: PDF, XLSX, and TPAR.\n\n### Remittance advice\n\nA remittance advice is a document used as proof of payment to a business. In Odoo, it can be\naccessed by going to Accounting ⣠Vendors ⣠Payments , selecting the payment(s),\nand clicking Print ⣠Payment Receipt .\n\n### E-invoicing\n\n#### Peppol\n\nOdoo is compliant with Australiaâs Peppol requirements . Set up your customers and vendors\nby going to Accounting ⣠Customers ⣠Customers or Vendors â£\nVendors , selecting one, clicking the Accounting tab, and configuring the Electronic Invoicing section as needed.\nValidating an invoice or credit note for a partner on the Peppol network will download a\ncompliant XML file that can be manually uploaded to your Peppol network. Odoo is currently in the\nprocess of becoming an access point for the ANZ region.\n\n### ABA files for batch payments\n\nAn ABA file is a digital format developed by the Australian Banking Association . It is designed for business customers to facilitate bulk payment\nprocessing by uploading a single file from their business management software.\nThe main advantage of using ABA files is to improve payment and matching efficiency. This is\nachieved by consolidating numerous payments into one file for batch processing, which can be\nsubmitted to all Australian banks.\n\n#### Configuration\n\nGo to Accounting ⣠Configuration ⣠Settings and enable Batch\nPayments .\nGo to Accounting ⣠Configuration ⣠Journals and select the Bank journal. Enter the Account Number , click Create and edit⦠, and fill in the\nfollowing fields:\n- Account Holder\nThen, toggle on the Send Money switch and click Save & Close .\nUsing the Currency field is optional.\nBack on the Journal Entries tab, fill in the following fields under the ABA section:\n- BSB : the BSB code from the bank account is used to fill in this field.\nBSB : the BSB code from the bank account is used to fill in this field.\n- Financial Institution Code : the official 3-letter abbreviation of the bank (e.g., WBC for Westpac)\nFinancial Institution Code : the official 3-letter abbreviation of the bank (e.g., WBC for Westpac)\n`WBC`\n- Supplying User Name : 6-digit number provided by the bank. Contact your bank or check\nits website if you do not know it.\nSupplying User Name : 6-digit number provided by the bank. Contact your bank or check\nits website if you do not know it.\n- APCA Identification Number : 6-digit number provided by the bank. Contact your bank or\ncheck its website if you do not know it.\nAPCA Identification Number : 6-digit number provided by the bank. Contact your bank or\ncheck its website if you do not know it.\n- Include Self Balancing Transaction : selecting this option adds an additional âself-balancingâ transaction to the end of the ABA file, which is required by some banks.\nâself-balancingâ transaction to the end of the ABA file, which is required by some banks.\nGo to Accounting ⣠Customers ⣠Customers or Accounting â£\nVendors ⣠Vendors and select a customer or vendor. Open the Accounting tab, and,\nunder the Bank Accounts section, click Add a line to fill in their:\n- Account Number\n- Account Holder\nThen, toggle on the Send Money switch and click Save & Close .\n\n#### Generating an ABA file\n\nTo generate an ABA file, create a vendor bill, confirm it, and ensure the vendorâs banking\ninformation is set up correctly.\nNext, click Pay on the vendor bill, and select, for the following fields:\n- Journal : Bank\n- Payment Method : ABA Credit Transfer\nPayment Method : ABA Credit Transfer\n- Recipient Bank Account : the vendorâs account number\nRecipient Bank Account : the vendorâs account number\nOnce payments are created, go to Accounting ⣠Vendors ⣠Payments , select the\npayments to be included in the batch, and click Create Batch . Verify all information is\ncorrect and click Validate . Once validated, the ABA file is available in the chatter on the right.\nAfter uploading the file to your bankâs portal, an ABA transaction line will appear in your bank\nfeed at the following bank feed iteration. You will need to reconcile it against the batch\npayment made in Odoo.\n\n## Industry-specific features\n\n### Starshipit shipping\n\nStarshipit is a shipping service operator that facilitates the integration of Australasian shipping\ncouriers with Odoo. Refer to the Starshipit documentation for\ndetailed information.\nStarshipit Odoo webinar recording\n\n### Buy Now, Pay Later solutions\n\nBuy Now, Pay Later solutions are popular payment methods for eShops in Australia. Some of these\nsolutions are available via Stripe and AsiaPay .\n- Stripe payment provider\nStripe payment provider\n- AsiaPay payment provider\nAsiaPay payment provider\n\n### POS terminals\n\nTo establish a direct connection between Odoo and a POS terminal in Australia, a Stripe payment\nterminal is required. Odoo supports the EFTPOS payment solution in Australia.\nA Stripe payment terminal is not required to use Odoo as the main POS system. However, without\none, cashiers must manually enter the final payment amount on the terminal.\n- Stripe payment provider\nStripe payment provider\n- Stripe payment terminal\nStripe payment terminal\n- Stripe.com terminal documentation\nStripe.com terminal documentation", "headings": ["Modules", "Accounting", "Taxes and GST", "Reports", "Remittance advice", "E-invoicing", "ABA files for batch payments", "Industry-specific features", "Starshipit shipping", "Buy Now, Pay Later solutions", "POS terminals"], "doc_id": "81abe8e9eba28074"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/austria.html", "title": "Austria", "module": "invoicing", "section": "Austria", "text": "# Austria\n\n## Configuration\n\nInstall the following modules to get all the features of the Austrian\nlocalization.\n`l10n_at`\nDefault fiscal localization package .\nAustria - Accounting Reports\n`l10n_at_reports`\nAdds localized versions of financial reports\nAustrian SAF-T Export\n`l10n_at_saft`\nAdds the SAF-T export.\nDocumentation on e-invoicingâs legality and compliance in Austria\n\n## Financial reports\n\nThe following localized reports are available:\n- Balance sheet according to § 224 UGB\nBalance sheet according to § 224 UGB\n- Profit and loss according to § 231 UGB (Gesamtkostenverfahren)\nProfit and loss according to § 231 UGB (Gesamtkostenverfahren)\nAccounting reporting documentation\n\n## SAF-T (Standard Audit File for Tax)\n\nThe Austrian tax office may request a SAF-T. The Austrian SAF-T Export module allows exporting the\nreport in XML format.\n\n### Configuration\n\nThis section explains how to configure the database to ensure all the information required by the\nSAF-T is available. If anything is missing, a warning message listing which information is needed\nwill be displayed during the export.\n\n#### Company information\n\nOpen the database Settings . Under the Companies section, click Update Info and ensure the following fields are correctly filled in:\n- Address , by providing at least the following information: Street City ZIP Country\nAddress , by providing at least the following information:\n- Street\n- Country\n- Company ID by providing your companyâs tax ID\nCompany ID by providing your companyâs tax ID\n- Tax ID by providing, if you have one, your UID-Nummer (including the country prefix)\nTax ID by providing, if you have one, your UID-Nummer (including the country prefix)\nAt least one contact person must be linked to your company in the Contacts app, and:\n- Ensure the contact type is set to Individual .\nEnsure the contact type is set to Individual .\n- Select your company in the Company name field.\nSelect your company in the Company name field.\n- Provide at least one phone number using the Phone or Mobile field.\nProvide at least one phone number using the Phone or Mobile field.\n\n#### Customer and supplier information\n\nUsing the Contacts app, fill in the Address of any partner that appears in\nyour invoices, vendor bills, or payments.\nFor partners that are companies, fill in the VAT number (including the country prefix) in the Tax ID field.\n\n#### Accounting settings\n\nGo to Accounting ⣠Configuration ⣠Settings . Under the Austrian\nlocalization section, fill in the following fields:\n- ÃNACE-Code\n- Profit Assessment Method\nProfit Assessment Method\nÃNACE information on the Austrian Economic Chambers website\n\n#### Chart of accounts mapping\n\nThe Austrian SAF-T specifications define a chart of accounts (COA). All relevant accounts for the\nSAF-T export must be annotated with a fitting account from this COA.\nThe needed mapping information is supplied by adding tags to the accounts. For example, adding the 1000 tag to an account maps it (virtually) to the SAF-T COA account with the code 1000 . Any\nnumber can be used as long as there is an account in the SAF-T COA with that code.\n`1000`\n`1000`\nThe Austria - Accounting module adds a tag for each SAF-T COA account. Furthermore, it\nautomatically maps many accounts from the default Austrian COA.\nYou can try exporting the SAF-T report to check if there are unmapped accounts (or mapped to\nmultiple SAF-T accounts). A warning will be displayed if there is any issue with your configuration\nor the mapping. Clicking View Problematic Accounts lets you view them.\nChart of accounts documentation\n\n### Exporting the SAF-T report\n\nTo export the SAF-T report, go to Accounting ⣠Reports ⣠General Ledger . Click\nthe right side of the PDF button and select SAF-T .", "headings": ["Configuration", "Financial reports", "SAF-T (Standard Audit File for Tax)", "Configuration", "Exporting the SAF-T report"], "doc_id": "244de399d2a92316"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/belgium.html", "title": "Belgium", "module": "invoicing", "section": "Belgium", "text": "# Belgium\n\n## Configuration\n\nInstall the ð§ðª Belgium fiscal localization package to get all the default accounting features of the Belgian\nlocalization, following the IFRS rules.\nDocumentation on e-invoicingâs legality and compliance in Belgium\n\n## Chart of accounts\n\nYou can reach the Chart of accounts by going to Accounting â£\nConfiguration ⣠Accounting: Chart of Accounts .\nThe Belgian chart of accounts includes pre-configured accounts as described in the PCMN . To add a new account, click New . A new line appears. Fill\nit in, click Save , and then Setup to configure it further.\n\n## Taxes\n\nDefault Belgian taxes are created automatically when the Belgium - Accounting and\nthe Belgium - Accounting Reports modules are installed. Each tax impacts the Belgian Tax Report , available by going to Accounting ⣠Reporting â£\nStatements Reports: Tax Report .\nIn Belgium, the standard VAT rate is 21% , but there are lower rates for some categories of goods\nand services. An intermediate rate of 12% is applied on social housing and food served in\nrestaurants, while a reduced rate of 6% applies to most basic goods, such as food, water supply,\nbooks, and medicine. A 0% rate applies to some exceptional goods and services, such as some\ndaily and weekly publications, as well as recycled goods.\n\n### Non-deductible taxes\n\nIn Belgium, some taxes are not fully deductible, such as taxes on the maintenance of cars. This\nmeans a part of these taxes is considered as an expense.\nIn Odoo, you can configure non-deductible taxes by creating tax rules for these taxes and linking\nthem to the corresponding accounts. This way, the system automatically calculates the taxes and\nallocates them to the appropriate accounts.\nTo configure a new non-deductible tax, go to Accounting ⣠Configuration â£\nAccounting: Taxes , and click New :\n- Add a line and select Base in the Based On column;\nAdd a line and select Base in the Based On column;\n- Add a line , then select on tax in the Based on column and\nenter the non-deductible percentage in the % column;\nAdd a line , then select on tax in the Based on column and\nenter the non-deductible percentage in the % column;\n- On the of tax line, select the Tax Grid(s) related to your tax;\nOn the of tax line, select the Tax Grid(s) related to your tax;\n- Add a line with the deductible percentage in the % column;\nAdd a line with the deductible percentage in the % column;\n- Set of tax in Based On ;\nSet of tax in Based On ;\n- Select 411000 VAT recoverable as account, and select the related tax grid.\nSelect 411000 VAT recoverable as account, and select the related tax grid.\nOnce you have created a non-deductible tax, you can apply it to your transactions by selecting the\nappropriate tax during the encoding of bills and credit notes. The system automatically calculates\nthe tax amount and allocates it to the corresponding accounts based on the tax rules configured.\nWith the Belgian localization, the 21% car tax is created by default (50% non-deductible).\n- Tax return (VAT declaration)\nTax return (VAT declaration)\n\n## Reports\n\nHere is the list of Belgian-specific reports available:\n- Balance sheet;\n- Profit & loss;\n- Tax report;\n- Partner VAT Listing;\n- EC Sales List;\n- Intrastat.\nYou can access Belgian-specific versions of reports by clicking on the book icon when on a\nreport and selecting its Belgian version: (BE) .\n\n### Disallowed expenses report\n\nDisallowed expenses are expenses that can be deducted from your accounting result but not from\nyour fiscal result.\nThe disallowed expenses report is available by going to Accounting ⣠Reporting\n⣠Management: Disallowed Expenses . It allows financial results in real-time, and periodic\nchanges. This report is generated based on the disallowed expenses categories that you can reach\nby going to Accounting ⣠Configuration ⣠Management: Disallowed Expenses\nCategories . Some categories already exist by default but do not have any rates. Click on Set Rates to update a specific category.\n- You can add multiple rates for various dates. In that case, the rate used to calculate the\nexpense depends on the date at which it is calculated, and the rate set for that date.\nYou can add multiple rates for various dates. In that case, the rate used to calculate the\nexpense depends on the date at which it is calculated, and the rate set for that date.\n- If you have the Fleet app installed, tick the Car Category box when applicable.\nThis makes the vehicle mandatory while booking a vendor bill.\nIf you have the Fleet app installed, tick the Car Category box when applicable.\nThis makes the vehicle mandatory while booking a vendor bill.\nTo link a disallowed expenses category with a specific account, go to Accounting â£\nConfiguration ⣠Accounting: Chart of Accounts . Find the account you want, and click on Setup . Add the Disallowed Expense category in the Disallowed\nExpenses field. From now, when an expense is created with this account, the disallowed expense is\ncalculated based on the rate mentioned in the Disallowed Expense category .\nLetâs take an example reflecting restaurant and car expenses .\n\n#### Restaurant expenses\n\nIn Belgium, 31% of restaurant expenses are non-deductible. Create a new disallowed expenses\ncategory and set both Related Account(s) and Current Rate .\n\n#### Car expenses: vehicle split\n\nIn Belgium, the deductible percentage varies from car to car and, therefore, should be indicated for\neach vehicle. To do so, open Fleet and select a vehicle. In the Tax\ninfo tab, go to the Disallowed Expenses Rate section and click on Add a\nline . Add a Start Date and a % . The amounts go in the same account for all\ncar expenses.\nWhen you create a bill for car expenses, you can link each expense to a specific car by filling the Vehicle column, so the right percentage is applied.\nThe vehicle split option available in the disallowed expenses report allows you to see\nthe rate and disallowed amount for each car.\n\n## Fee form 281.50 and form 325\n\n### Fee form 281.50\n\nAnnually, a 281.50 fee form must be reported to the fiscal authorities. To do so, the tag 281.50 must be added on the contact form of the entities concerned by the 281.50 fee. To\nadd the tag, open Contacts , select the person or company you want to create a 281.50 fee form for, and add the 281.50 tag in the Tags field.\n`281.50`\n`281.50`\nMake sure the street, zip code, country , and VAT number are also informed on the Contact form .\nThen, depending on the nature of the expense, add the corresponding 281.50 tag on the impact\naccounts. To do so, go to Accounting ⣠Configuration ⣠Accounting: Chart of\nAccounts , and click on Setup to add the corresponding 281.50 tag on the impacted\naccounts, i.e., 281.50 - Commissions , depending on the nature of the expense.\n`281.50`\n`281.50`\n\n### Form 325\n\nYou can create a 325 form by going to Accounting ⣠Reporting ⣠Belgium:\nCreate 325 form . A new page pops up: select the right options and click Generate 325\nform . To open an already generated 325 form , go to Accounting ⣠Reporting â£\nBelgium: Open 325 forms .\n\n## CODA and SODA statements\n\n### CODA\n\nCODA is an electronic XML format used to import Belgian bank statements. You can download CODA\nfiles from your bank and import them directly into Odoo by clicking Import file from\nyour Bank journal on your dashboard.\n\n### SODA\n\nSODA is an electronic XML format used to import accounting entries related to salaries. SODA\nfiles can be imported into the journal you use to record salaries by going to your Accounting dashboard and clicking Upload in the related journal card form.\nOnce your SODA files are imported, the entries are created automatically in your salary journal.\n\n### CodaBox\n\nCodaBox is a service that allows Belgian companies and accounting firms to access bank\ninformation and statements. Odoo provides a way to import such statements automatically.\n\n#### Configuration\n\nTo configure and use Codabox, first install the CodaBox module.\nMake sure the company settings are correctly\nconfigured, i.e., the country is set to Belgium and the Tax ID or Company ID field is filled.\n- Go to Accounting ⣠Configuration ⣠Settings , then go to the CodaBox & SODA section.\nGo to Accounting ⣠Configuration ⣠Settings , then go to the CodaBox & SODA section.\n- Click on Manage Connection to open the connection wizard, which shows the Company VAT/ID number that will be used for the connection.\nClick on Manage Connection to open the connection wizard, which shows the Company VAT/ID number that will be used for the connection.\n- If this is your first connection , click on Create connection .\nThe wizard confirms that the connection has been created on Odooâs side . Follow the\nsteps to validate the connection on CodaBoxâs side too. If this is not your first connection , the Password provided by\nOdoo during the first connection will be requested to create a new connection. Note This Password is unique to Odoo and must be stored securely\non your side.\nIf this is your first connection , click on Create connection .\nThe wizard confirms that the connection has been created on Odooâs side . Follow the\nsteps to validate the connection on CodaBoxâs side too.\nIf this is not your first connection , the Password provided by\nOdoo during the first connection will be requested to create a new connection.\nThis Password is unique to Odoo and must be stored securely\non your side.\nAccounting firms must manage their clients on separate databases and configure them\nindividually to avoid mixing up their data. The connection must be made by an accounting\nfirm with valid CodaBox Connect credentials.\nIn the following instructions, we will refer to your clientâs company as Company and to\nyour accounting firm as Accounting Firm .\nMake sure the company settings are correctly\nconfigured, i.e., the country is set to Belgium , the Tax ID or Company ID and Accounting Firm fields are filled, as well as the Tax ID of the Accounting Firm .\n- Go to Accounting ⣠Configuration ⣠Settings , then go to the CodaBox & SODA section.\nGo to Accounting ⣠Configuration ⣠Settings , then go to the CodaBox & SODA section.\n- Click on Manage Connection to open the connection wizard, which shows the Accounting Firm VAT number and the Company VAT/ID number that will\nbe used for the connection.\nClick on Manage Connection to open the connection wizard, which shows the Accounting Firm VAT number and the Company VAT/ID number that will\nbe used for the connection.\n- If this is your first connection , click on Create connection . The wizard\nconfirms that the connection has been created on Odooâs side . Follow the steps to\nvalidate the connection on CodaBoxâs side , too. If this is not your first connection , the Accounting Firm Password provided\nby Odoo during the first connection will be requested to create a new connection. Note This Accounting Firm Password is unique to Odoo and must be stored\nsecurely on your side.\nIf this is your first connection , click on Create connection . The wizard\nconfirms that the connection has been created on Odooâs side . Follow the steps to\nvalidate the connection on CodaBoxâs side , too.\nIf this is not your first connection , the Accounting Firm Password provided\nby Odoo during the first connection will be requested to create a new connection.\nThis Accounting Firm Password is unique to Odoo and must be stored\nsecurely on your side.\nThe Status should have now switched to Connected .\n- Create a new bank journal .\nCreate a new bank journal .\n- Set the right IBAN in the Account Number field.\nSet the right IBAN in the Account Number field.\n- Select CodaBox synchronization as the Bank Feed .\nSelect CodaBox synchronization as the Bank Feed .\nWhen working with bank transactions that use different currencies, it is recommended to\ncreate multiple journals with the same bank account but different currencies.\n- Create a new miscellaneous journal.\nCreate a new miscellaneous journal.\n- Go to Accounting ⣠Configuration ⣠Settings , then go to the CodaBox section.\nGo to Accounting ⣠Configuration ⣠Settings , then go to the CodaBox section.\n- Select the journal you just created in the SODA journal field.\nSelect the journal you just created in the SODA journal field.\n\n#### Synchronization\n\nOnce the connection is established, Odoo can be synchronized with CodaBox.\nCODA files are automatically imported from CodaBox every 12 hours. You do\nnot have to do anything. However, if you wish, it can also be done manually,\nby clicking on Fetch from CodaBox in the Accounting Dashboard.\nSODA files are automatically imported from CodaBox once a day as a draft. You do not have to\ndo anything. However, if you wish, it can also be done manually by clicking on Fetch from CodaBox in the Accounting Dashboard.\nBy default, if an account in the SODA file is not mapped to an account in Odoo, the Suspense\nAccount (499000) is used, and a note is added to the created journal entry.\nYou can access the mapping between the SODA and Odoo accounts by going to Accounting ⣠Configuration ⣠Settings and clicking on the Open SODA Mapping button in the CodaBox section.\n\n#### Potential issues\n\n- CodaBox is not configured. Please check your configuration. Either the Company VAT or the Accounting Firm VAT is not set.\nCodaBox is not configured. Please check your configuration.\nEither the Company VAT or the Accounting Firm VAT is not set.\n- No connection exists with these accounting firms and company VAT numbers. Please check your configuration. This can happen when checking the connection status, and the Accounting Firm VAT and Company VAT combination still needs to be registered. This may happen if you have\nchanged the Company VAT after the connection was established. For security reasons,\nyou have to recreate a connection for this Company VAT .\nNo connection exists with these accounting firms and company VAT numbers. Please check your configuration.\nThis can happen when checking the connection status, and the Accounting Firm VAT and Company VAT combination still needs to be registered. This may happen if you have\nchanged the Company VAT after the connection was established. For security reasons,\nyou have to recreate a connection for this Company VAT .\n- It seems that your CodaBox connection is not valid anymore. Please connect again. This can happen if you revoke Odooâs access to your CodaBox account or still need to complete\nthe configuration process. In this case, you must revoke the connection and create a new one.\nIt seems that your CodaBox connection is not valid anymore. Please connect again.\nThis can happen if you revoke Odooâs access to your CodaBox account or still need to complete\nthe configuration process. In this case, you must revoke the connection and create a new one.\n- The provided password is not valid for this accounting firm. You must reuse the password you received from Odoo during your first connection. The password you provided is different from the one you received from Odoo during your first\nconnection. You must use the password you received from Odoo during your first connection to\ncreate a new connection for this accounting firm. If you have lost your password, you must first\nrevoke the Odoo connection on CodaBoxâs side (i.e., on your myCodaBox portal). Then, you can\nrevoke the connection on Odooâs side and create a new one .\nThe provided password is not valid for this accounting firm. You must reuse the password you received from Odoo during your first connection.\nThe password you provided is different from the one you received from Odoo during your first\nconnection. You must use the password you received from Odoo during your first connection to\ncreate a new connection for this accounting firm. If you have lost your password, you must first\nrevoke the Odoo connection on CodaBoxâs side (i.e., on your myCodaBox portal). Then, you can\nrevoke the connection on Odooâs side and create a new one .\n- It seems that the company or accounting firm VAT number you provided is not valid. Please check your configuration. Either the Company VAT or the Accounting Firm VAT is not in a valid\nBelgian format.\nIt seems that the company or accounting firm VAT number you provided is not valid. Please check your configuration.\nEither the Company VAT or the Accounting Firm VAT is not in a valid\nBelgian format.\n- It seems that the accounting firm VAT number you provided does not exist in CodaBox. Please check your configuration. The Accounting Firm VAT number you provided is not registered in CodaBox.\nYou may not have a valid CodaBox license linked to this VAT number.\nIt seems that the accounting firm VAT number you provided does not exist in CodaBox. Please check your configuration.\nThe Accounting Firm VAT number you provided is not registered in CodaBox.\nYou may not have a valid CodaBox license linked to this VAT number.\n- It seems you have already created a connection to CodaBox with this accounting firm. To create a new connection, you must first revoke the old one on myCodaBox portal. You must go to your myCodaBox portal and revoke Odooâs access to your CodaBox account.\nThen, you can create a new connection on Odooâs side.\nIt seems you have already created a connection to CodaBox with this accounting firm. To create a new connection, you must first revoke the old one on myCodaBox portal.\nYou must go to your myCodaBox portal and revoke Odooâs access to your CodaBox account.\nThen, you can create a new connection on Odooâs side.\nTo revoke the connection between Odoo and CodaBox, go to Accounting ⣠Configuration ⣠Settings , scroll down to the CodaBox section, click on Manage Connection , then click on Revoke .\n\n### Codaclean\n\nCodaclean is a service that allows Belgian companies and accounting firms to access bank\ninformation and statements. Odoo provides a way to import such statements and their transactions\nautomatically.\n\n#### Configuration\n\nMake sure to install the Codaclean ( l10n_be_codaclean )\nmodule.\n`l10n_be_codaclean`\nTo connect Odoo with Codaclean, follow these steps:\n- Open the Settings app, navigate to the Companies section, and\nclick Manage Companies to make sure the companyâs Country is set to Belgium .\nOpen the Settings app, navigate to the Companies section, and\nclick Manage Companies to make sure the companyâs Country is set to Belgium .\n- Go to Accounting ⣠Configuration ⣠Settings and scroll to the Codaclean section.\nGo to Accounting ⣠Configuration ⣠Settings and scroll to the Codaclean section.\n- Click Manage Connection to open the connection wizard, enter the Codaclean Username and Password and click Connect .\nClick Manage Connection to open the connection wizard, enter the Codaclean Username and Password and click Connect .\nThe Status is updated to Connected .\nOnce the connection is established, the Manage Connection wizard provides two options:\n- Update Codaclean credentials: Enter the new Username and Password , then\nclick Change Credentials .\nUpdate Codaclean credentials: Enter the new Username and Password , then\nclick Change Credentials .\n- Remove Codaclean connection: Click Disconnect ; no Username or Password is required.\nRemove Codaclean connection: Click Disconnect ; no Username or Password is required.\nA specific bank journal must be created for Codaclean synchronization. To do so, create a new\nbank journal , make sure to enter the correct IBAN in the Bank\nAccount Number field, and select Codaclean Syncronization in the Bank Feeds field.\nFor bank transactions in different currencies, it is recommended to create a separate journal for\neach currency, using the same bank account.\n\n#### Synchronization\n\nOnce the connection is established, Odoo is synchronized with Codaclean, and new CODA files received\nvia Codaclean are checked every twelve hours.\nTo manually check for new CODA files, go to the Accounting Dashboard and click Fetch\nfrom Codaclean on the relevant journal .\n\n## Electronic invoicing with Peppol\n\nAs of 1 January 2026, all Belgian companies must be registered on the Peppol network to send and\nreceive electronic invoices.\nTo activate Peppol, refer to the Peppol documentation ,\nensuring during registration that:\n- The Peppol EAS field is set to 0208 - Numero dâentreprise /\nondernemingsnummer / Unternehmensnummer .\nThe Peppol EAS field is set to 0208 - Numero dâentreprise /\nondernemingsnummer / Unternehmensnummer .\n- the Peppol Endpoint field is set to the company registry number.\nthe Peppol Endpoint field is set to the company registry number.\nIn addition, when veryfing that a customer is registered as a Peppol participant , ensure the Format field is set to BIS Billing 3.0 .\n\n## Cash discount\n\nIn Belgium, if an early payment discount is offered on an invoice, the tax is calculated based on\nthe discounted total amount, whether the customer benefits from the discount or not.\nTo apply the right tax amount and report it correctly in your VAT return, set the tax reduction as Always (upon invoice) .\nCash discounts and tax reduction\n\n## Fiscal certification: POS restaurant\n\nIn Belgium, the owner of a cooking business such as a restaurant or food truck is required by law to\nuse a government-certified Cash Register System for their receipts. This applies if their yearly\nearnings (excluding VAT, drinks, and take-away food) exceed 25,000 euros.\nThis government-certified system entails the use of a certified POS system , along with a device called a Fiscal Data Module (or black box ) and a VAT Signing Card .\nDo not forget to register as foodservice industry manager on the Federal Public Service\nFinance registration form .\n\n### Certified POS system\n\nThe Odoo POS system is certified for databases hosted on Odoo Online , Odoo.sh , and On-Premise .\nStandard and extended support\nA certified POS system must\nadhere to rigorous government regulations, which means it operates differently from a non-certified\nPOS.\n- On a certified POS, you cannot: Set up and use the global discounts feature (the pos_discount module is blacklisted and\ncannot be activated). Set up and use the loyalty programs feature (the pos_loyalty module is blacklisted and\ncannot be activated). Reprint receipts (the pos_reprint module is blacklisted and cannot be activated). Modify prices in order lines. Modify or delete order lines in POS orders. Sell products without a valid VAT number. Use a POS that is not connected to an IoT box.\nOn a certified POS, you cannot:\n- Set up and use the global discounts feature (the pos_discount module is blacklisted and\ncannot be activated).\nSet up and use the global discounts feature (the pos_discount module is blacklisted and\ncannot be activated).\n`pos_discount`\n- Set up and use the loyalty programs feature (the pos_loyalty module is blacklisted and\ncannot be activated).\nSet up and use the loyalty programs feature (the pos_loyalty module is blacklisted and\ncannot be activated).\n`pos_loyalty`\n- Reprint receipts (the pos_reprint module is blacklisted and cannot be activated).\nReprint receipts (the pos_reprint module is blacklisted and cannot be activated).\n`pos_reprint`\n- Modify prices in order lines.\nModify prices in order lines.\n- Modify or delete order lines in POS orders.\nModify or delete order lines in POS orders.\n- Sell products without a valid VAT number.\nSell products without a valid VAT number.\n- Use a POS that is not connected to an IoT box.\nUse a POS that is not connected to an IoT box.\n- The cash rounding feature must be\nactivated and set to a Rounding Precision of 0,05 and a Rounding Method set as Half-Up .\nThe cash rounding feature must be\nactivated and set to a Rounding Precision of 0,05 and a Rounding Method set as Half-Up .\n`0,05`\n- Taxes must be set as included in the price. To set it up, go to Point of Sale â£\nConfiguration ⣠Settings , and from the Accounting section, open the Default Sales Tax form by clicking the arrow next to the default sales tax field.\nThere, click Advanced Options and enable Included in Price .\nTaxes must be set as included in the price. To set it up, go to Point of Sale â£\nConfiguration ⣠Settings , and from the Accounting section, open the Default Sales Tax form by clicking the arrow next to the default sales tax field.\nThere, click Advanced Options and enable Included in Price .\n- At the start of a POS session, users must click Work in to clock in. Doing so allows\nthe registration of POS orders. If users are not clocked in, they cannot make POS orders.\nLikewise, they must click Work Out to clock out at the end of the session.\nAt the start of a POS session, users must click Work in to clock in. Doing so allows\nthe registration of POS orders. If users are not clocked in, they cannot make POS orders.\nLikewise, they must click Work Out to clock out at the end of the session.\nIf you configure a POS to work with a FDM , you cannot use it again\nwithout it.\n\n### Fiscal Data Module (FDM)\n\nAn FDM, or black box , is a government-certified device that works together with the Point of\nSale application and saves your POS orders information. Concretely, a hash ( unique code )\nis generated for each POS order and added to its receipt. This allows the government to verify that\nall revenue is declared.\nOnly the FDM from Boîtenoire.be with the FDM certificate number BMC04 is\nsupported by Odoo. Contact the manufacturer (GCV BMC) to\norder one.\n\n#### Configuration\n\nBefore setting up your database to work with an FDM, ensure you have the following hardware:\n- a Boîtenoire.be (certificate number BMC04) FDM;\na Boîtenoire.be (certificate number BMC04) FDM;\n- an RS-232 serial null modem cable per FDM;\nan RS-232 serial null modem cable per FDM;\n- an RS-232 serial-to-USB adapter per FDM;\nan RS-232 serial-to-USB adapter per FDM;\n- an IoT Box (one IoT box per FDM); and\nan IoT Box (one IoT box per FDM); and\n- a receipt printer.\nAs a pre-requisite, activate the Belgian Registered Cash Register module\n(technical name: pos_blackbox_be ).\n`BelgianRegisteredCashRegister`\n`pos_blackbox_be`\nOnce the module is activated, add your VAT number to your company information. To set it up, go to Settings ⣠Companies ⣠Update Info , and fill in the VAT field.\nThen, enter a national registration number for every staff member who operates the POS system. To do\nso, go to the Employees app and open an employee form. There, go to HR\nsettings tab ⣠Attendance/Point of Sale , and fill in the INSZ or BIS number field.\nTo input your information, click on your avatar, go to My Profile ⣠Preference\ntab , and enter your INSZ or BIS number in the designated field.\nYou must configure the FDM directly in the production database.\nUtilizing it in a testing environment may result in incorrect data being stored within the FDM.\nIn order to use an FDM , you need a registered IoT Box. To register your\nIoT box, you must contact us through our support contact form and\nprovide the following information:\n- your VAT number;\n- your companyâs name, address, and legal structure; and\nyour companyâs name, address, and legal structure; and\n- the Mac address of your IoT Box.\nthe Mac address of your IoT Box.\nOnce your IoT box is certified, connect it to your database. To\nverify that the IoT Box recognizes the FDM, go to the IoT homepage and scroll down the IOT Device section, which should display the FDM.\nThen, add the IoT to your POS. To do so, go to Point of Sale ⣠Configuration â£\nPoint of Sale , select your POS, scroll down to the Connected Device section, and enable IoT Box . Lastly, add the FMD in the Fiscal Data Module field.\nTo be able to use an FDM, you must at least connect one Receipt Printer .\n\n### VAT signing card\n\nWhen you open a POS session and make your initial transaction, you are prompted to enter the PIN\nprovided with your VSC . The card is delivered by the FPS upon registration .", "headings": ["Configuration", "Chart of accounts", "Taxes", "Non-deductible taxes", "Reports", "Disallowed expenses report", "Fee form 281.50 and form 325", "Fee form 281.50", "Form 325", "CODA and SODA statements", "CODA", "SODA", "CodaBox", "Codaclean", "Electronic invoicing with Peppol", "Cash discount", "Fiscal certification: POS restaurant", "Certified POS system", "Fiscal Data Module (FDM)", "VAT signing card"], "doc_id": "5fb13af656ac1817"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/brazil.html", "title": "Brazil", "module": "invoicing", "section": "Brazil", "text": "# Brazil\n\nHelpful resources for the Brazilian localization, including onboarding materials and videos:\n- Onboarding checklist for new users .\nOnboarding checklist for new users .\n- YouTube playlist - Brazil (Localization) .\nYouTube playlist - Brazil (Localization) .\n- YouTube playlist - Tutoriais Odoo em Português .\nYouTube playlist - Tutoriais Odoo em Português .\n- Documentation on e-invoicingâs legality and compliance in Brazil\nDocumentation on e-invoicingâs legality and compliance in Brazil\n\n## Modules\n\nThe following modules related to the Brazilian localization are available:\nBrazilian - Accounting\n`l10n_br`\nBrazilian fiscal localization package , complete with\nthe Brazilian chart of accounts, taxes, tax report, fiscal positions, and document and\nidentification types.\nBrazil - Accounting Reports\n`l10n_br_reports`\nAccounting reports for Brazil.\nAvaTax Brazil , Avatax Brazil Sale & Test SOs for the\nBrazilian Avatax\nl10n_br_avatax , l10n_br_avatax_sale & l10n_br_test_avatax_sale\n`l10n_br_avatax`\n`l10n_br_avatax_sale`\n`l10n_br_test_avatax_sale`\nGoods and Services tax computation through Avalara.\nBrazilian Accounting EDI\n`l10n_br_edi`\nProvides electronic invoicing through Avatax.\nBrazilian Accounting EDI For Sale\n`l10n_br_edi_sale`\nAdds some fields to sale orders that are carried over the invoice.\nBrazilian Accounting EDI for POS\n`l10n_br_edi_pos`\nProvides electronic invoicing through Avatax in the POS.\nBrazilian Accounting EDI for eCommerce\nl10n_br_edi_website_sale\n`l10n_br_edi_website_sale`\nAllows tax calculation and EDI for eCommerce users.\nBrazilian Accounting EDI for stock\n`l10n_br_edi_stock`\nAdds delivery-related information to the NF-e.\nBrazil - Website Sale\n`l10n_br_website_sale`\nAllows tax calculation and EDI for eCommerce users.\n`l10n_br_sales`\nSale modifications for Brazil\nBrazil - Sale Subscription\nl10n_br_sale_subscription\n`l10n_br_sale_subscription`\nSale subscription modifications for Brazil\nThe localizationâs core modules are installed automatically with the localization. The rest can\nbe manually installed .\n\n## Localization overview\n\nThe Brazilian localization package ensures compliance with Brazilian fiscal and accounting\nregulations. It includes tools for managing taxes, fiscal positions, reporting, and a predefined\nchart of accounts tailored to Brazilâs standards.\nThe Brazilian localization package provides the following key features to ensure compliance with\nlocal fiscal and accounting regulations:\n- Chart of accounts : a predefined structure tailored\nto Brazilian accounting standards\nChart of accounts : a predefined structure tailored\nto Brazilian accounting standards\n- Taxes : pre-configured tax rates, including standard VAT,\nzero-rated, and exempt options.\nTaxes : pre-configured tax rates, including standard VAT,\nzero-rated, and exempt options.\n- Payroll\n- Reporting\n\n### Chart of accounts\n\nIn the chart of accounts , the accounts are\nmapped automatically to their corresponding taxes, and the default account payable and account\nreceivable fields.\nThe Brazil chart of accounts is based on the SPED CoA, which provides a baseline of the necessary\naccounts.\n\n### Taxes\n\nTaxes are automatically created and configured when installing the\nBrazilian localization. Avalara uses some to compute taxes on sales orders or invoices.\nTaxes used for services must be manually added and configured, as the rate may differ depending on\nthe city where the service is offered.\nNFS-e canât be issued for service taxes created manually. To electronically send an NFS-e , compute taxes using Avalara.\nDo not delete taxes, as they are used for the AvaTax tax computation. If deleted, Odoo creates\nthem again when used in an SO or invoice, computing taxes with AvaTax. However, the account\nused to register the tax must be reconfigured in the taxâs Definition tab, under\nthe Distribution for invoices and Distribution for refunds sections.\n\n## Company and contacts\n\nTo use all the features of this fiscal localization, the following fields are required on the company record :\n- Address : add City , State , Zip Code , Country In the Street field, enter the street name, number, and any additional address\ninformation. In the Street 2 field, enter the neighborhood.\nAddress : add City , State , Zip Code , Country\n- In the Street field, enter the street name, number, and any additional address\ninformation.\nIn the Street field, enter the street name, number, and any additional address\ninformation.\n- In the Street 2 field, enter the neighborhood.\nIn the Street 2 field, enter the neighborhood.\n- Identification Number : CNPJ or CPF\nIdentification Number : CNPJ or CPF\n- Tax ID : associated with the identification type\nTax ID : associated with the identification type\n- IE : State registration\nIE : State registration\n- IM : Municipal registration\nIM : Municipal registration\n- SUFRAMA code : Superintendence of the Manaus Free Trade Zone - add if applicable\nSUFRAMA code : Superintendence of the Manaus Free Trade Zone - add if applicable\nConfigure the Fiscal Information within the Sales and Purchase tab:\n- Add the Fiscal Position for AvaTax Brazil.\nAdd the Fiscal Position for AvaTax Brazil.\n- Tax Regime : Federal Tax Regime\nTax Regime : Federal Tax Regime\n- ICMS Taxpayer Type : indicates ICMS regime , Exempt status ,\nor Non-Taxpayer\nICMS Taxpayer Type : indicates ICMS regime , Exempt status ,\nor Non-Taxpayer\n- Main Activity Sector\nConfigure the following extra Fiscal Information to issue NFS-e:\n- Add the Fiscal Position for AvaTax Brazil.\nAdd the Fiscal Position for AvaTax Brazil.\n- COFINS Details : Taxable, Not Taxable, Taxable with rate 0%, Exempt,\nSuspended\nCOFINS Details : Taxable, Not Taxable, Taxable with rate 0%, Exempt,\nSuspended\n- PIS Details Taxable, Not Taxable, Taxable with rate 0%, Exempt,\nSuspended\nPIS Details Taxable, Not Taxable, Taxable with rate 0%, Exempt,\nSuspended\n- CSLL Taxable if the company is subject to CSLL or not\nCSLL Taxable if the company is subject to CSLL or not\nIf it is a simplified regime, the ICMS rate must be configured. To do so, go to Accounting ⣠Configuration ⣠Settings , scroll down to the Taxes section, and set the Sales Tax and Purchase Tax fields in the Default Taxes section.\nThe same configuration applies to the relevant contact form when\nusing the AvaTax integration.\nSelect the Company option for a contact with a tax ID (CNPJ), or check Individual for a contact with a CPF.\n\n## AvaTax integration\n\n- Make sure to install the AvaTax Brazil ( l10n_br_avatax )\nmodule.\nMake sure to install the AvaTax Brazil ( l10n_br_avatax )\nmodule.\n`l10n_br_avatax`\n- Odoo is a certified partner of Avalara Brazil.\nOdoo is a certified partner of Avalara Brazil.\n- The Avalara AvaTax integration uses In-App-Purchases\n(IAPs) to compute taxes and handle electronic documents\n(e.g., NF-e , NFS-e ). Each action consumes credits from the IAP credit\nbalance . On creation, new databases receive\n500 free credits.\nThe Avalara AvaTax integration uses In-App-Purchases\n(IAPs) to compute taxes and handle electronic documents\n(e.g., NF-e , NFS-e ). Each action consumes credits from the IAP credit\nbalance . On creation, new databases receive\n500 free credits.\nTo compute the goods and services tax and process electronic invoices, the following configurations\nare needed:\n- Company\n- Contacts\n- AvaTax configuration .\nAvaTax configuration .\n- A1 digital certificate\nA1 digital certificate\n- Tax mapping\n- Products\n\n### Configuration\n\n#### Credentials\n\nActivate AvaTax in Odoo and, in the AvaTax Brazil section, add the administratorâs email address for the AvaTax portal in the AvaTax Portal\nEmail field, then click Create account .\nWhen testing or creating a production AvaTax Portal Email integration in a\nsandbox or production database, use a real email address, as it is needed to connect to\nAvalara and set up the certificates, whether to test or use it\non production.\nThere are two different Brazilian Avalara Portals:\n- One for testing: https://portal.sandbox.avalarabrasil.com.br/\nOne for testing: https://portal.sandbox.avalarabrasil.com.br/\n- One for production: https://portal.avalarabrasil.com.br/\nOne for production: https://portal.avalarabrasil.com.br/\nWhen the account is created from Odoo, select the right environment. Moreover, the email used to\nopen the account cannot be used to open another account. Save the API ID and API Key when the account is created from Odoo.\nAfter the account is created from Odoo, go to the Avalara Portal to set up the password:\n- Access the Avalara portal .\nAccess the Avalara portal .\n- Click Meu primeiro acesso .\nClick Meu primeiro acesso .\n- Add the email address used in Odoo to create the Avalara/AvaTax account, and click Solicitar Senha .\nAdd the email address used in Odoo to create the Avalara/AvaTax account, and click Solicitar Senha .\n- An email will then be received with a token and a link to create a password. Click this link\nand copy-paste the token to allocate the desired password.\nAn email will then be received with a token and a link to create a password. Click this link\nand copy-paste the token to allocate the desired password.\nIf you use AvaTax in Odoo for tax computation only , setting a password or accessing the\nAvalara portal is unnecessary. However, to use the electronic invoice service, access to\nAvaTax is needed, and the certificate must be uploaded .\nAPI credentials can be transferred. This option should be used only when an account has already\nbeen created in another Odoo instance and must be reused.\n\n#### A1 certificate upload\n\nTo issue electronic invoices, a certificate must be uploaded to the AvaTax portal .\nThe certificate will be synchronized with Odoo as long as the external identifier number in the\nAvaTax portal matches, without special characters, with the CNPJ number, and the identification\nnumber (CNPJ) in Odoo matches the CNPJ in AvaTax.\nSome cities require the certificate to be linked within the City Portal system before issuing\nNFS-e from Odoo.\nIf an error message from the city that says Your certificate is not linked\nto the user is received, this process needs to be done in the city portal.\n\n#### Fiscal positions\n\nTo set up the Automatic Tax Mapping (Avalara Brazil) fiscal position , enable the Detect Automatically and Use AvaTax Brazil API options.\n\n#### Products\n\nTo use the AvaTax integration on sales orders and invoices, enter the following information in the Sales tab of the product form under the Brazil Accounting section, based on\nhow the product will be used.\nThe Avalara integration works on a credit-based\nsystem, where each interaction with Avalara consumes one credit. Below are the main\ncredit-consuming operations:\n- Tax calculation on quotations and sales orders.\nTax calculation on quotations and sales orders.\nAccounting application\n- Tax calculation on invoices.\nTax calculation on invoices.\n- Electronic invoice submission (NF-e or NFS-e).\nElectronic invoice submission (NF-e or NFS-e).\nOccasional operations : (each step is billed separately)\n- Correction letter (Carta de Correção)\nCorrection letter (Carta de Correção)\n- Invoice cancellation\n- Sales refund via credit note\nSales refund via credit note\n- Sales complementary invoice via debit note\nSales complementary invoice via debit note\n- Invoice number range invalidation\nInvoice number range invalidation\n- Other tax validations.\nOther tax validations.\nIf taxes are calculated in the Sales app, and the invoice is later issued in the Accounting app, the calculation happens twice, consuming two credits.\n- CEST Code : tax classification code identifying goods and products subject to tax\nsubstitution under ICMS regulations, and helps determine the applicable tax treatment and\nprocedures for specific items. The productâs applicability to this requirement can be verified at https://www.codigocest.com.br/ .\nCEST Code : tax classification code identifying goods and products subject to tax\nsubstitution under ICMS regulations, and helps determine the applicable tax treatment and\nprocedures for specific items. The productâs applicability to this requirement can be verified at https://www.codigocest.com.br/ .\n- Mercosul NCM Code : Mercosur Common Nomenclature Product Code\nMercosul NCM Code : Mercosur Common Nomenclature Product Code\n- Source of Origin : origin of the product, which can be foreign or domestic, among other\npossible options, depending on the specific use case\nSource of Origin : origin of the product, which can be foreign or domestic, among other\npossible options, depending on the specific use case\n- SPED Fiscal Product Type : fiscal product type according to the SPED list table\nSPED Fiscal Product Type : fiscal product type according to the SPED list table\n- Purpose of Use : intended purpose of use for this product\nPurpose of Use : intended purpose of use for this product\nOdoo automatically creates three products to be used for transportation costs associated with\nsales. These are named Freight , Insurance , and Other Costs and are already configured. If more need to be created, duplicate and use the same configuration:\n- Product Type Service\n- Transportation Cost Type : Insurance , Freight , or Other Costs\nTransportation Cost Type : Insurance , Freight , or Other Costs\nThe Avalara integration works on a credit-based\nsystem, where each interaction with Avalara consumes one credit. Below are the main\ncredit-consuming operations:\n- Tax calculation on quotations and sales orders.\nTax calculation on quotations and sales orders.\nAccounting application\n- Tax calculation on invoices.\nTax calculation on invoices.\n- Electronic invoice submission (NF-e or NFS-e).\nElectronic invoice submission (NF-e or NFS-e).\n- Invoice status check (1 credit is consumed each time the invoice status is checked).\nInvoice status check (1 credit is consumed each time the invoice status is checked).\nOccasional operations : (each step is billed separately)\n- Correction letter (Carta de Correção)\nCorrection letter (Carta de Correção)\n- Invoice cancellation\n- Sales refund via credit note\nSales refund via credit note\n- Sales complementary invoice via debit note\nSales complementary invoice via debit note\n- Invoice number range invalidation\nInvoice number range invalidation\n- Other tax validations.\nOther tax validations.\nIf taxes are calculated in the Sales app and the invoice is later issued in the Accounting app, the calculation happens twice, consuming two credits.\n- Mercosul NCM Code : Mercosur Common Nomenclature Product Code\nMercosul NCM Code : Mercosur Common Nomenclature Product Code\n- Purpose of Use : intended purpose of use for this product\nPurpose of Use : intended purpose of use for this product\n- Service Code Origin : City Service Code where the provider is registered\nService Code Origin : City Service Code where the provider is registered\n- Labor Assignment : checkbox to select if the service involves labor\nLabor Assignment : checkbox to select if the service involves labor\n- Transport Cost Type : type of transport costs to select\nTransport Cost Type : type of transport costs to select\n- Service Codes : City Service Code where the service will be provided; if no code is\nadded, the Service Code Origin will be used.\nService Codes : City Service Code where the service will be provided; if no code is\nadded, the Service Code Origin will be used.\n\n### Tax computation\n\n#### Tax calculations on quotations and sales orders\n\nTrigger an API call to calculate taxes on a quotation or sales order automatically with AvaTax in\nany of the following ways:\n- Quotation confirmation Confirm a quotation into a sales order.\nConfirm a quotation into a sales order.\n- Manual trigger Click Compute Taxes Using AvaTax .\nClick Compute Taxes Using AvaTax .\n- Preview Click Preview .\n- Email a quotation/sales order Send a quotation or sales order to a customer via email.\nSend a quotation or sales order to a customer via email.\n- Online quotation access When a customer accesses the quotation online (via the portal view), the API call is\ntriggered.\nWhen a customer accesses the quotation online (via the portal view), the API call is\ntriggered.\n\n#### Tax calculations on invoices\n\nTrigger an API call to calculate taxes on a customer invoice automatically with AvaTax in any of\nthe following ways:\n- Manual trigger Click Compute Taxes Using AvaTax .\nClick Compute Taxes Using AvaTax .\n- Preview Click Preview .\n- Online invoice access When a customer accesses the invoice online (via the portal view), the API call is triggered.\nWhen a customer accesses the invoice online (via the portal view), the API call is triggered.\nThe Fiscal Position must be set to Automatic Tax Mapping (Avalara Brazil) for any\nof these actions to compute taxes automatically.\n`AutomaticTaxMapping(AvalaraBrazil)`\nFiscal positions (tax and account mapping)\n\n## Accounting\n\n### Electronic documents\n\n#### Configuration\n\nA series number is linked to a sequence number range for electronic invoices. To configure the\nseries number on a sales journal, go to Accounting ⣠Configuration ⣠Journals and set it in the Series field. If more than one series is needed, a new sales journal\nmust be created, and a new series number must be assigned for each series.\nEnable the Use Documents? option as the Series field will only be displayed\nif the Use Documents? option is selected on the journal.\nWhen issuing electronic and non-electronic invoices, the Type field selects the document\ntype used when creating the invoice.\nWhen creating the journal, ensure the Dedicated Credit Note Sequence field in the Accounting Information section is unchecked, as in Brazil, sequences between\ninvoices, credit notes, and debit notes are shared per series number, which means per journal.\n\n#### Customer invoices\n\nTo process an electronic invoice for goods (NF-e) or services (NFS-e), the invoice must be confirmed\nand taxes must be computed by Avalara. The following fields must be filled out:\n- Customer , with all customer information\nCustomer , with all customer information\n- Payment Method: Brazil : Specify the expected payment method.\nPayment Method: Brazil : Specify the expected payment method.\n- Document Type : Select (55) Electronic Invoice (NF-e) or (SE)\nElectronic Service Invoice (NFS-e) .\nDocument Type : Select (55) Electronic Invoice (NF-e) or (SE)\nElectronic Service Invoice (NFS-e) .\n- Fiscal Position set as Automatic Tax Mapping (Avalara Brazil) .\nFiscal Position set as Automatic Tax Mapping (Avalara Brazil) .\nSome optional fields depend on the nature of the transaction. These fields in the Other\nInfo tab are not required, so in most cases, leaving them blank will not result in errors from the\ngovernment when the invoice is submitted:\n- Freight Model determines how the goods are planned to be transported - domestic.\nFreight Model determines how the goods are planned to be transported - domestic.\n- Transporter Brazil determines who is doing the transportation.\nTransporter Brazil determines who is doing the transportation.\nThen, click Send . In the pop-up window, click Process\ne-invoice and any other options, such as Download or Email . Finally, click Send to process the invoice with the government.\nAll fields available on the invoice used to issue an electronic invoice are also available on the\nsales order, if needed. When creating the first invoice, the Document Number field is\ndisplayed and allocated as the first number to be used sequentially for subsequent invoices.\n\n#### Credit notes\n\nIf a sales return needs to be registered, a credit note can be created in Odoo and sent to the government for validation.\nCredit notes are only available for electronic invoices for goods (NF-e).\n\n#### Debit notes\n\nIf additional information needs to be included or values that were not accurately provided in the\noriginal invoice need to be corrected, a debit note can be issued .\n- Debit notes are only available for electronic invoices for goods (NF-e).\nDebit notes are only available for electronic invoices for goods (NF-e).\n- Only the products included in the original invoice can be included in the debit note. While\nchanges can be made to the productâs unit price or quantity, products cannot be added to\nthe debit note. The purpose of this document is only to declare the amount to be added to the\noriginal invoice for the same or fewer products.\nOnly the products included in the original invoice can be included in the debit note. While\nchanges can be made to the productâs unit price or quantity, products cannot be added to\nthe debit note. The purpose of this document is only to declare the amount to be added to the\noriginal invoice for the same or fewer products.\n\n#### Invoice cancellation\n\nIt is possible to cancel an electronic invoice that the government validated.\nCheck whether the electronic invoice is still within the cancellation deadline, which may vary\naccording to each stateâs legislation.\nTo cancel an e-invoice for goods (NF-e) in Odoo, click Request Cancel and add a\ncancellation Reason on the pop-up that appears. To send this cancellation reason to the\ncustomer via email, enable the E-mail checkbox.\nThis is an electronic cancellation, which means that Odoo will send a request to the government\nto cancel the NF-e. It will then consume one IAP credit, as an API call occurs.\nTo cancel an e-invoice for services (NFS-e) in Odoo, click Request Cancel . There is no\nelectronic cancellation process in this case, as not every city has this service available. The\nuser needs to cancel this NFS-e on the city portal manually. Once that step is completed, they can\nrequest the cancellation in Odoo, which will cancel the invoice.\n\n#### Correction letter\n\nA correction letter can be created and linked to an electronic invoice for goods (NF-e) that the\ngovernment validated.\nTo do so in Odoo, click Correction Letter and add a correction Reason to the\npop-up. To send the correction reason to a customer via email, enable the E-mail checkbox.\nCorrection letters are only available for electronic invoices for goods (NF-e).\n\n#### Invoice number range invalidation\n\nA range of sequences that are assigned to sales journals can be invalidated by the government if\nthey are not currently used and will not be used in the future. To do so, go to Accounting ⣠Configuration ⣠Journals , open the journal, click the (gear) icon, and select Invalidate Number Range (BR) . On the Invalidate Number Range (BR) wizard, add the Initial Number and End Number of the range that should be cancelled, and enter an invalidation Reason .\n- Invoice number range invalidation is only available for electronic invoices for goods (NF-e).\nInvoice number range invalidation is only available for electronic invoices for goods (NF-e).\n- The journalâs chatter records the log of the cancelled numbers, along with the XML file.\nThe journalâs chatter records the log of the cancelled numbers, along with the XML file.\n\n### Vendor bills\n\nWhen receiving an invoice from a supplier, encode the bill in Odoo by adding all the commercial\ninformation and the same Brazilian-specific information recorded on the customer invoices .\nThese Brazilian-specific fields are:\n- Payment Method: Brazil : Specify the expected payment method.\nPayment Method: Brazil : Specify the expected payment method.\n- Document Type : used by the vendor\nDocument Type : used by the vendor\n- Document Number : the invoice number from the supplier\nDocument Number : the invoice number from the supplier\n- Freight Model : NF-e specific how goods are planned to be transported - domestic\nFreight Model : NF-e specific how goods are planned to be transported - domestic\n- Transporter Brazil : NF-e specific who is doing the transportation.\nTransporter Brazil : NF-e specific who is doing the transportation.\n\n## Point of sale NFC-e\n\nThe NFC-e is a legal document that supports selling goods or merchandise to the final customer. Like\nthe NF-e , the electronic customer invoice is also\nissued in XML file format and has an auxiliary document (DANFC-e) known as the NFC-e Summary . This\nelectronic document can be issued through Odoo Point of Sale .\nIts legal validity is guaranteed by the digital signature and by each Brazilian stateâs SEFAZ\n(Secretaria da Fazenda).\nThe Avalara integration operates on a credit-based\nsystem. Each operation that involves communication with Avalara consumes one credit. The\nfollowing operations within the Point of Sale (POS) application are subject to credit\nconsumption:\n- Tax calculation at the time of sale\nTax calculation at the time of sale\n- Electronic invoice issuance (NFC-e)\nElectronic invoice issuance (NFC-e)\nEach step is billed separately. For example, calculating taxes and issuing an invoice for the\nsame POS transaction consumes two credits.\n\n### Configuration\n\nInstall the Brazilian Accounting EDI for POS ( l10nbr_edi_pos )\nmodule and make sure to activate AvaTax .\n`l10nbr_edi_pos`\n\n### CSC details\n\nGo to Accounting ⣠Configuration ⣠Settings and scroll to the Taxes section. In the NFC-e configuration section, complete the following CSC (Taxpayer\nSecurity Code) fields:\n- CSC ID : The CSC ID or CSC Token is an identification of the taxpayer security\ncode, which can have 1 to 6 digits and is available on the official website of your stateâs\nDepartment of Finance (SEFAZ).\nCSC ID : The CSC ID or CSC Token is an identification of the taxpayer security\ncode, which can have 1 to 6 digits and is available on the official website of your stateâs\nDepartment of Finance (SEFAZ).\n- CSC Number : The CSC Number is a code of up to 36 characters that only you and the\nDepartment of Finance know. It is used to generate the QR Code of the NFC-e and ensure the\nauthenticity of the DANFE.\nCSC Number : The CSC Number is a code of up to 36 characters that only you and the\nDepartment of Finance know. It is used to generate the QR Code of the NFC-e and ensure the\nauthenticity of the DANFE.\nThe information required for these fields can be generated through the SEFAZ website of each\nBrazilian State by the companyâs accountant.\n\n### Product configuration\n\nAccess the relevant product form in POS , then\nconfigure the product âs Brazil Accounting fields.\n\n### Point of sale\n\nGo to Point of Sale ⣠Configuration ⣠Settings and make sure that the relevant\nPoint of Sale is selected at the top of the screen .\nThen, scroll to the Accounting section and configure the Brazilian EDI fields:\n- Series\n- Next number : the next NFC-e number in the sequence to be issued, for instance, if the\nlast number issued in SEFAZ is 100 , the Next number will be 101 .\nNext number : the next NFC-e number in the sequence to be issued, for instance, if the\nlast number issued in SEFAZ is 100 , the Next number will be 101 .\n`100`\n`101`\n\n### Workflow\n\n#### Generating an NFC-e\n\nTo generate an NFC-e, follow these steps:\n- Open the relevant point of sale shop and make a sale .\nOpen the relevant point of sale shop and make a sale .\n- Validate the payment to calculate taxes and issue an NFC-e. The valid NFC-e appears on the right\nside of the screen.\nValidate the payment to calculate taxes and issue an NFC-e. The valid NFC-e appears on the right\nside of the screen.\nIt is also possible to issue an NFC-e that identifies the customer by their CPF/CNPJ. To do\nso, click Customer , search for the customer, or create a new one.\nThe following are mandatory fields to issue a CPF/CNPJ identified NFC-e:\n- City and State where the invoice is being issued\nCity and State where the invoice is being issued\n- CPF/CNPJ\n- Click Validate . The NFC-e appears, highlighting the customerâs CPF on the print.\nClick Validate . The NFC-e appears, highlighting the customerâs CPF on the print.\n- Click Print or Send via e-mail to deliver the invoice to the customer.\nClick Print or Send via e-mail to deliver the invoice to the customer.\n\n#### NFC-e ticket print\n\nAfter generating and validating the NFC-e , click Print to deliver the invoice.\nThe Odoo NFC-e feature is compatible with any thermal printer and does not require an Odoo\nIoT Box .\n\n#### Re-issuing a PoS order with an NFC-e error\n\nIf the NFC-e returns an error, follow these steps:\n- Correct the error.\n- Re-issue the NFC-e by clicking the (menu) icon and selecting Orders .\nRe-issue the NFC-e by clicking the (menu) icon and selecting Orders .\n- Filter the list to show only Paid orders and click Details . The error is\ndisplayed.\nFilter the list to show only Paid orders and click Details . The error is\ndisplayed.\n- Click Send NFC-e .\nIf the error has been corrected and the PoS session is closed, Odoo logs the tax adjustment in\nthe chatter of the related journal entry. The journal entry for the order indicates that the\ntaxes were incorrectly calculated. In this case, reprocessing the NFC-e is required.\n\n#### NFC-e refunds & cancellations\n\nRefunds can be processed directly in Odoo , but cancellations must be performed\nthrough the official government portal.\nWhen the process is finalized, the approved return NF-e is created, meaning the previous NFC-e is\ncanceled .\nSEFAZ only allows cancellation of an NFC-e within 30 minutes of its issuance on the SEFAZ\nwebsite. After this period, a manual refund must be processed, along with the issuance of a Return of Goods NF-e .", "headings": ["Modules", "Localization overview", "Chart of accounts", "Taxes", "Company and contacts", "AvaTax integration", "Configuration", "Tax computation", "Accounting", "Electronic documents", "Vendor bills", "Point of sale NFC-e", "Configuration", "CSC details", "Product configuration", "Point of sale", "Workflow"], "doc_id": "a569763e81b2a3c6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/canada.html", "title": "Canada", "module": "invoicing", "section": "Canada", "text": "# Canada\n\nThe Odoo Canada localization package provides tailored features and configurations for Canadian\nbusinesses.\nA series of videos on the subject of Accounting are available through Odooâs eLearning platform.\nThese videos cover how to start from scratch, set up configurations, complete common workflows, and\nprovide in-depth looks at some specific use cases.\n- Odoo Tutorials: Accounting & Invoicing\nOdoo Tutorials: Accounting & Invoicing\n- Odoo SmartClass: Accounting\nOdoo SmartClass: Accounting\n\n## Configuration\n\nBelow are the available modules in Odoo for accounting use in Canada.\n\n### Modules installation\n\nInstall the following modules to get all the features of the Canadian\nlocalization:\n`l10n_ca`\nBase accounting module for Canadian localization.\nCanada - Accounting Reports\n`l10n_ca_reports`\nAdds Canadian accounting reports.\nCanadian Checks Layout\nl10n_ca_check_printing\n`l10n_ca_check_printing`\nEnables the printing of payments on pre-printed check paper. Supports the three most common\ncheck formats and works natively with the linked checks from checkdepot.net .\n- Check on top: Quicken / QuickBooks standard\nCheck on top: Quicken / QuickBooks standard\n- Check on middle: Peachtree standard\nCheck on middle: Peachtree standard\n- Check on bottom: ADP standard\nCheck on bottom: ADP standard\n\n## Chart of accounts\n\nThe chart of accounts (COA) for the Canadian\nlocalization, in Odoo, has accounts grouped into seven main categories, with corresponding numeric\nvalues that prefix individual journal entries:\n- Receivable : the balance of money (or credit) due to the business for goods or services\ndelivered or used, but not yet paid for by customers. AR is indicated by the journal code\nlabeled (or beginning) with 1 .\nReceivable : the balance of money (or credit) due to the business for goods or services\ndelivered or used, but not yet paid for by customers. AR is indicated by the journal code\nlabeled (or beginning) with 1 .\n- Payable : the businessâs short-term obligations owed to its creditors or suppliers, which have\nnot yet been paid. AP is indicated by the journal code labeled (or beginning) with 2 .\nPayable : the businessâs short-term obligations owed to its creditors or suppliers, which have\nnot yet been paid. AP is indicated by the journal code labeled (or beginning) with 2 .\n- Equity : the amount of money that would be returned to a companyâs shareholders if all of the\nassets were liquidated and all of the companyâs debt was paid off in the case of liquidation.\nEquity is indicated by the journal code labeled (or beginning) with 3 or 9 .\nEquity : the amount of money that would be returned to a companyâs shareholders if all of the\nassets were liquidated and all of the companyâs debt was paid off in the case of liquidation.\nEquity is indicated by the journal code labeled (or beginning) with 3 or 9 .\n- Assets : items listed on the balance sheet that contains economic value or have the ability to\ngenerate cash flows in the future, such as a piece of machinery, a financial security, or a\npatent. Assets are indicated by the journal code labeled (or beginning) with 1 .\nAssets : items listed on the balance sheet that contains economic value or have the ability to\ngenerate cash flows in the future, such as a piece of machinery, a financial security, or a\npatent. Assets are indicated by the journal code labeled (or beginning) with 1 .\n- Liability : refers to a companyâs financial debts or obligations that arise during the course\nof business operations. Liabilities are indicated by the journal code labeled (or beginning) with 2 .\nLiability : refers to a companyâs financial debts or obligations that arise during the course\nof business operations. Liabilities are indicated by the journal code labeled (or beginning) with 2 .\n- Income : synonymous with net income , this is the profit a company retains after paying off\nall relevant expenses from sales revenue earned. Income is indicated by the journal code labeled\n(or beginning) with 4 or 6 .\nIncome : synonymous with net income , this is the profit a company retains after paying off\nall relevant expenses from sales revenue earned. Income is indicated by the journal code labeled\n(or beginning) with 4 or 6 .\n- Expenses : the cost of operations that a company incurs to generate revenue. Expenses are\nindicated by the journal code labeled (or beginning) with a 6 .\nExpenses : the cost of operations that a company incurs to generate revenue. Expenses are\nindicated by the journal code labeled (or beginning) with a 6 .\nPredefined accounts are included in Odoo, as part of the CoA thatâs installed with the Canadian\nlocalization package. The accounts listed below are preconfigured to perform certain operations\nwithin Odoo. It is recommended to not delete these accounts; however, if changes are needed,\nrename the accounts instead.\nCurrent Year Earnings\nUndistributed Profits/Losses\n- Chart of accounts\n- Accounting cheat sheet\nAccounting cheat sheet\n\n## Fiscal positions\n\nCanadian tax rates and taxable items vary by province and territory. Default fiscal positions are\nautomatically created when the Odoo Accounting application is installed. To manage or configure\nadditional fiscal positions, navigate to Accounting ⣠Configuration ⣠Fiscal\nPositions .\nThe following fiscal positions are available by default:\n- Alberta (AB)\n- British Columbia (BC)\nBritish Columbia (BC)\n- Manitoba (MB)\n- New Brunswick (NB)\n- Newfoundland and Labrador (NL)\nNewfoundland and Labrador (NL)\n- Nova Scotia (NS)\n- Northwest Territories (NT)\nNorthwest Territories (NT)\n- Nunavut (NU)\n- Ontario (ON)\n- Prince Edward Islands (PE)\nPrince Edward Islands (PE)\n- Quebec (QC)\n- Saskatchewan (SK)\n- Yukon (YT)\n- International (INTL)\nWhen considering what taxes to be applied, it is the province where the delivery occurs that\nmatters. Therefore, delivery is the responsibility of the vendor and is accounted for at the\ncustomer location.\n- A delivery is made to a customer from another province. Set the fiscal position on the customerâs record to the province of the customer.\nSet the fiscal position on the customerâs record to the province of the customer.\n- A customer from another province comes to pick up products. No fiscal position should be set on the customerâs record.\nNo fiscal position should be set on the customerâs record.\n- An international vendor doesnât charge any tax, but taxes are charged by the customs broker. Set the fiscal position on the vendorâs record to International .\nSet the fiscal position on the vendorâs record to International .\n- An international vendor charges provincial tax. Set the fiscal position on the vendorâs record to your position.\nSet the fiscal position on the vendorâs record to your position.\nFiscal positions (tax and account mapping)\n\n## Taxes\n\nIn Canada, tax rates and what is considered taxable vary by province and territory. Default Sales and Purchases taxes are created automatically when the Odoo Accounting application is\ninstalled. To manage existing or configure additional taxes, navigate to Accounting\n⣠Configuration ⣠Taxes .\n\n### AvaTax\n\nAvalara AvaTax is a cloud-based tax calculation and compliance software that integrates with\nOdoo for several localizations, including Canada. Integrating AvaTax with Odoo provides real-time\nand region-specific tax calculations when items are sold, purchased, and invoiced in the database.\nAvaTax is available for integration with databases/companies that have locations in Canada and/or\nthe United States. Reference the Fiscal country documentation for more\ninformation.\nRefer to the documentation articles below to integrate and configure an AvaTax account with an\nOdoo database:\n- AvaTax integration\n- Avalara management portal\nAvalara management portal\n- Calculate taxes with AvaTax\nCalculate taxes with AvaTax\n- Avalaraâs support documents: About AvaTax\nAvalaraâs support documents: About AvaTax\n\n## Reports\n\nA number of report selections are readily available for the\nCanadian localization, under the Accounting app ⣠Reporting drop-down menu:\n- Balance Sheet : a âsnapshotâ of a companyâs financial\nposition at a specific point in time, which contains an overview of a companyâs assets,\nliabilities, and equity. Be sure to select the Balance sheet (CA) option from the Report filter.\nBalance Sheet : a âsnapshotâ of a companyâs financial\nposition at a specific point in time, which contains an overview of a companyâs assets,\nliabilities, and equity.\nBe sure to select the Balance sheet (CA) option from the Report filter.\n- Profit & Loss : otherwise known as a P&L statement or income statement , provides a summary of a companyâs revenues, expenses, and profits/losses over\na given period of time. Be sure to select the Profit and loss (CA) option from the Report filter.\nProfit & Loss : otherwise known as a P&L statement or income statement , provides a summary of a companyâs revenues, expenses, and profits/losses over\na given period of time.\nBe sure to select the Profit and loss (CA) option from the Report filter.\n- Cash Flow Statement : shows how much cash and cash equivalents a company has received\nand spent in a given period.\nCash Flow Statement : shows how much cash and cash equivalents a company has received\nand spent in a given period.\n- Executive Summary : an overview report that covers\nthe key performance indicators of a companyâs financial position, such as revenue, profit, and\ndebt.\nExecutive Summary : an overview report that covers\nthe key performance indicators of a companyâs financial position, such as revenue, profit, and\ndebt.\n- Tax Report : an official form filed for a tax authority\nthat reports income, expenses, and other pertinent tax information. Tax reports allow taxpayers to\ncalculate their tax liability, schedule tax payments, or request refunds for the overpayment of\ntaxes. In Odoo, the tax report can be made monthly, every two months, quarterly, every 4 months,\nsemi-annually, and annually.\nTax Report : an official form filed for a tax authority\nthat reports income, expenses, and other pertinent tax information. Tax reports allow taxpayers to\ncalculate their tax liability, schedule tax payments, or request refunds for the overpayment of\ntaxes. In Odoo, the tax report can be made monthly, every two months, quarterly, every 4 months,\nsemi-annually, and annually.\n- Accounting reporting\n- Search, filter, and group records\nSearch, filter, and group records\n\n## Cash discount\n\nCash discounts can be configured from Accounting app ⣠Payment Terms . Each\npayment term can be set up with a cash discount and reduced tax.\nCash discounts and tax reduction\n\n## Writing checks\n\nThe Canadian localization allows users to print checks for vendor payments. Be sure the Canadian\nChecks Layout ( l10n_ca_check_printing ) module for the CA localization is installed .\n`l10n_ca_check_printing`\nTo enable check printing from Odoo, navigate to Accounting ⣠Configuration â£\nSettings and find the Vendor Payments section. From here, tick the Checks checkbox to reveal several fields for check configuration.\nSelect a Check Layout from the drop-down menu:\n- Print Check (Top) - CA\nPrint Check (Top) - CA\n- Print Check (Middle) - CA\nPrint Check (Middle) - CA\n- Print Check (Bottom) - CA\nPrint Check (Bottom) - CA\nNext, choose whether or not to enable the Multi-Pages Check Stub checkbox.\nOptionally set a Check Top Margin , Check Left Margin , or Check\nRight Margin if required.\nTick the Print Date Label checkbox if a date label is required.\nOnce all check configurations are complete, Save the settings.\nSome of the check formats may require pre-printed paper from a third party vendor. Pre-printed checks from checkdepot.net are\nrecommended.", "headings": ["Configuration", "Modules installation", "Chart of accounts", "Fiscal positions", "Taxes", "AvaTax", "Reports", "Cash discount", "Writing checks"], "doc_id": "73cdaf73094cb10d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/chile.html", "title": "Chile", "module": "invoicing", "section": "Chile", "text": "# Chile\n\nWatch the two webinar recordings below for a general presentation of the localization, and search\nthe playlist for tutorials to discover practical workflows while using Odoo in Chile.\n- Webinar: intro and demo .\nWebinar: intro and demo .\n- Webinar: delivery guide .\nWebinar: delivery guide .\n- Playlist of tutorials .\nPlaylist of tutorials .\n- Chilean localization app tour\nChilean localization app tour\n- Chilean localization smart tutorial\nChilean localization smart tutorial\n- Documentation on e-invoicingâs legality and compliance in Chile\nDocumentation on e-invoicingâs legality and compliance in Chile\n\n## Modules\n\nInstall the following modules to utilize all the features of the Chilean\nlocalization.\n`l10n_cl`\nAdds the minimal accounting features required for a company to operate in Chile under the SII regulations and guidelines.\nChile - Accounting Reports\n`l10n_cl_reports`\nAdds the Propuesta F29 and Balance Tributario (8 columnas) reports.\n`l10n_cl_edi`\nIncludes all technical and functional requirements to receive and generate electronic\nreceipts and invoices online based on the SII regulations.\nElectronic Exports of Goods for Chile\n`l10n_cl_edi_exports`\nIncludes technical and functional requirements to generate electronic invoices for exporting\ngoods based on the SII and customs regulations.\nChile - E-Invoicing Delivery Guide\n`l10n_cl_edi_stock`\nIncludes all technical and functional requirements to generate delivery guides via web\nservice based on the SII regulations.\nChile - Localization: Factoring Extension\nl10n_cl_edi_factoring\n`l10n_cl_edi_factoring`\nGenerates AEC files to transfer invoice receivables to factoring companies, creates\ncorresponding accounting entries, and updates invoice payment status to Yielded .\n- Odoo automatically installs the appropriate package for the company according to the country\nselected at the creation of the database.\nOdoo automatically installs the appropriate package for the company according to the country\nselected at the creation of the database.\n- The Chile - E-Invoicing Delivery Guide module depends on the Inventory application.\nThe Chile - E-Invoicing Delivery Guide module depends on the Inventory application.\nAll features are only available if the company already completed the SII Sistema de Facturación\nde Mercado certification process.\n\n## Company information\n\nTo use all the features of this fiscal localization, the following fields are required on the company record :\n- Company Name\n- Address : Street City State ZIP Country\n- Street\n- Country\n- RUT : Enter the identification number for the selected Taxpayer Type .\nRUT : Enter the identification number for the selected Taxpayer Type .\n- Activity Names : Select up to four activity codes.\nActivity Names : Select up to four activity codes.\n- Company Activity Description : Enter a short description of the companyâs activity.\nCompany Activity Description : Enter a short description of the companyâs activity.\n\n## Accounting settings\n\nNext, go to Accounting ⣠Configuration ⣠Settings , and scroll down to the Chilean Localization section and follow the instructions to configure the:\n- Fiscal information\n- Electronic invoice data\nElectronic invoice data\n- DTE incoming email server\nDTE incoming email server\n- Signature certificates\nSignature certificates\n\n### Fiscal information\n\nConfigure the following Tax payer information :\n- Taxpayer type by selecting the taxpayer type that applies: VAT Affected (1st Category) : for invoices that charge taxes to customers Fees Receipt Issuer (2nd Category) : for suppliers who issue fees receipt (Boleta) End consumer : only issues receipts Foreigner\nTaxpayer type by selecting the taxpayer type that applies:\n- VAT Affected (1st Category) : for invoices that charge taxes to customers\nVAT Affected (1st Category) : for invoices that charge taxes to customers\n- Fees Receipt Issuer (2nd Category) : for suppliers who issue fees receipt (Boleta)\nFees Receipt Issuer (2nd Category) : for suppliers who issue fees receipt (Boleta)\n- End consumer : only issues receipts\nEnd consumer : only issues receipts\n- Foreigner\n- SII Office : select your companyâs SII regional office\nSII Office : select your companyâs SII regional office\n\n### Electronic invoice data\n\nSelect the SII Web Services environment:\n- SII - Test : for test databases using test CAFs obtained from the SII . In this mode,\nthe direct connection flows can be tested, with the files being sent to the SII .\nSII - Test : for test databases using test CAFs obtained from the SII . In this mode,\nthe direct connection flows can be tested, with the files being sent to the SII .\n- SII - Production : for production databases.\nSII - Production : for production databases.\n- SII - Demo Mode : files are created and accepted automatically in demo mode but are not sent to the SII . For this reason, rejection\nerrors or Accepted with Objections will not appear in this mode. Every internal validation can\nbe tested in demo mode. Avoid selecting this option in a production database.\nSII - Demo Mode : files are created and accepted automatically in demo mode but are not sent to the SII . For this reason, rejection\nerrors or Accepted with Objections will not appear in this mode. Every internal validation can\nbe tested in demo mode. Avoid selecting this option in a production database.\nThen, enter the Legal Electronic Invoicing Data :\n- SII Resolution N°\n- SII Resolution Date\nIn a multi-company environment , each company and branch must have its own RUT and corresponding\ncertificate(s) to process invoices.\n\n## DTE incoming email server\n\nThe DTE Email Box Electronic Invoicing can\nbe defined to receive your customersâ claim and acceptance emails. Enabling this option from Accounting ⣠Configuration ⣠Settings ⣠Chilean Localization is necessary if\nyou want to use Email Box Electronic Invoicing as the DTE incoming email server.\nIn order to receive your SII documents, itâs necessary to set up your own email server. More\ninformation on how to do this can be found in this documentation: Communication in Odoo by email\nBegin by clicking Configure DTE Incoming Email , then click New to add a\nserver and fill in the following fields:\n- Name : give the server a name.\nName : give the server a name.\n- Server Type : select the server type used. IMAP Server POP Server Local Server : uses a local script to fetch emails and create new records. The\nscript can be found in the Configuration section with this option selected. Gmail OAuth Authentication : requires your Gmail API credentials to be configured in\nthe general settings. A direct link to the configuration can be found in the Login\nInformation section.\nServer Type : select the server type used.\n- IMAP Server\n- POP Server\n- Local Server : uses a local script to fetch emails and create new records. The\nscript can be found in the Configuration section with this option selected.\nLocal Server : uses a local script to fetch emails and create new records. The\nscript can be found in the Configuration section with this option selected.\n- Gmail OAuth Authentication : requires your Gmail API credentials to be configured in\nthe general settings. A direct link to the configuration can be found in the Login\nInformation section.\nGmail OAuth Authentication : requires your Gmail API credentials to be configured in\nthe general settings. A direct link to the configuration can be found in the Login\nInformation section.\n- DTE Server : enable this option. By checking this option, this email account will be\nused to receive the electronic invoices from the suppliers, and communications from the SII regarding the electronic invoices issued. In this case, this\nemail should match both emails declared on the SII site\nin the section: ACTUALIZACION DE DATOS DEL CONTRIBUYENTE , Mail Contacto SII and Mail Contacto\nEmpresas .\nDTE Server : enable this option. By checking this option, this email account will be\nused to receive the electronic invoices from the suppliers, and communications from the SII regarding the electronic invoices issued. In this case, this\nemail should match both emails declared on the SII site\nin the section: ACTUALIZACION DE DATOS DEL CONTRIBUYENTE , Mail Contacto SII and Mail Contacto\nEmpresas .\nIn the Server & Login tab (for IMAP and POP servers):\n- Server Name : enter the hostname or IP of the server.\nServer Name : enter the hostname or IP of the server.\n- Port : enter the server port.\nPort : enter the server port.\n- SSL/TLS : enable this option if connections are encrypted using the SSL/TLS protocol.\nSSL/TLS : enable this option if connections are encrypted using the SSL/TLS protocol.\n- Username : enter the server login username.\nUsername : enter the server login username.\n- Password : enter the server login password.\nPassword : enter the server login password.\nBefore going live, it is recommended to archive or remove all emails related to vendor bills that\nare not required to be processed in Odoo from your inbox.\n\n### Certificate\n\nA digital certificate in .pfx format is required to generate the electronic invoice signature. To\nadd one, click Configure Signature Certificates under the Signature\nCertificates section. Then, click New to configure the certificate:\n`.pfx`\n- Certificate Key : click Upload your file and select the .pfx file.\nCertificate Key : click Upload your file and select the .pfx file.\n`.pfx`\n- Certificate Passkey : enter the fileâs passphrase.\nCertificate Passkey : enter the fileâs passphrase.\n- Subject Serial Number : depending on the certificate format, the field might not be\nautomatically populated. In that case, enter the certificateâs legal representative RUT .\nSubject Serial Number : depending on the certificate format, the field might not be\nautomatically populated. In that case, enter the certificateâs legal representative RUT .\n- Certificate Owner : select one if you need to restrict the certificate for a specific\nuser. Leave the field empty to share it with all billing users.\nCertificate Owner : select one if you need to restrict the certificate for a specific\nuser. Leave the field empty to share it with all billing users.\nIf the Certificate Owner field is set to a specific user, and there are no\ncertificates shared with users, then the automatic sending of electronic documents and receipt\nacknowledgments is disabled .\n\n## Multicurrency\n\nThe official currency rate is provided by Chilean mindicador.cl . Navigate\nto Accounting ⣠Configuration ⣠Settings ⣠Currencies: Automatic Currency\nRates to set an Interval for when the rate is automatically updated, or to select\nanother Service .\n\n## Partner information\n\nConfiguring partner contacts is also required to send SII electronic invoices. Open the Contacts app to do so and fill in the following\nfields on a new or existing contact form.\n- Identification Number\nIdentification Number\n- Taxpayer Type\n- Activity Description\nIn the Electronic Invoicing tab:\n- DTE Email : enter the senderâs email address for the partner.\nDTE Email : enter the senderâs email address for the partner.\n- Delivery Guide Price : select which price the delivery guide displays, if any.\nDelivery Guide Price : select which price the delivery guide displays, if any.\nThe DTE Email is the email used for sending electronic documents and must be set in\nthe contact that will be part of an electronic document.\n\n## Document types\n\nAccounting documents are categorized by SII -defined\ndocument types.\nDocument types are created automatically upon installation of the localization module, and can be\nmanaged by navigating to Accounting ⣠Configuration ⣠Document Types .\nSeveral document types are inactive by default but can be activated by toggling the Active option.\n\n### Use on invoices\n\nThe document type on each transaction is determined by:\n- The journal related to the invoice, identifying if the journal uses documents.\nThe journal related to the invoice, identifying if the journal uses documents.\n- The condition applied based on the type of issuer and recipient (e.g., the buyer or vendorâs\nfiscal regime).\nThe condition applied based on the type of issuer and recipient (e.g., the buyer or vendorâs\nfiscal regime).\n\n## Journals\n\nSales journals in Odoo usually represent a business unit or location.\n- Ventas Santiago.\n- Ventas Valparaiso.\nFor retail stores it is common to have one journal per POS .\n- Cashier 1.\n- Cashier 2.\nThe purchase transactions can be managed with a single journal, but sometimes companies use more\nthan one journal in order to handle some accounting transactions that are not related to vendor\nbills. This configuration can easily be set by using the following model.\n- Tax payments to the government.\nTax payments to the government.\n- Employees payments.\n\n### Create a sales journal\n\nTo create a sales journal, navigate to Accounting ⣠Configuration ⣠Journals .\nThen, click the New button, and fill in the following required information:\n- Type : select Sale from the drop-down menu for customer invoice journals.\nType : select Sale from the drop-down menu for customer invoice journals.\n- Point of sale type : if the sales journal will be used for electronic documents, the\noption Online must be selected. Otherwise, if the journal is used for invoices\nimported from a previous system or if you are using the SII portal Facturación MiPyme , you can use the option Manual .\nPoint of sale type : if the sales journal will be used for electronic documents, the\noption Online must be selected. Otherwise, if the journal is used for invoices\nimported from a previous system or if you are using the SII portal Facturación MiPyme , you can use the option Manual .\n- Use Documents : check this field if the journal will use document types. This field is\nonly applicable to purchase and sales journals that can be related to the different sets of\ndocument types available in Chile. By default, all the sales journals created will use documents.\nUse Documents : check this field if the journal will use document types. This field is\nonly applicable to purchase and sales journals that can be related to the different sets of\ndocument types available in Chile. By default, all the sales journals created will use documents.\nNext, from the Jounal Entries tab, define the Default Income Account and Dedicated Credit Note Squence in the Accounting Information section.\nConfiguring these fields is required for one of the debit notes use cases .\n\n## CAF\n\nA folio authorization code (CAF) is required for each document type that will be issued\nelectronically. The CAF is a file the SII provides to the issuer with the folios/sequences authorized for the electronic\ninvoice documents.\nYour company can request multiple folios and obtain several CAFs linked to different folio ranges. These CAFs are shared within\nall journals, so you only need one active CAF per document type,\nand it will be applied to all journals.\nPlease refer to the SII documentation to check the\ndetails on how to acquire the CAF files.\nThe CAFs required by the SII are different from production to test (certification mode). Make sure you have the\ncorrect CAF set depending on your environment.\n\n### Upload CAF files\n\nOnce the CAF files have been acquired from the SII portal, they need to be uploaded in the database by navigating to Accounting ⣠Configuration: Chilean SII ⣠CAFs . Then, click the New begin the configuration. On the CAF form, upload your CAF file by clicking the Upload your file button and then click Save .\nOnce uploaded, the status changes to In Use . At this moment, when a transaction is used\nfor this document type, the invoice number takes the first folio in the sequence.\nThe document types have to be active before uploading the CAF files. In case some folios have been used in the previous system, the next valid folio has to be\nset when the first transaction is created.\n\n## Chart of accounts\n\nThe chart of accounts is installed by default as part of the data set included in the localization\nmodule. The accounts are mapped automatically in:\n- Default Account Payable\nDefault Account Payable\n- Default Account Receivable\nDefault Account Receivable\n- Transfer Accounts\n- Conversion Rate\n\n## Taxes\n\nAs part of the localization module, taxes are created automatically with their related financial\naccount and configuration. These taxes can be managed from Accounting â£\nConfiguration ⣠Taxes .\nChile has several tax types, the most common ones are:\n- VAT : the regular VAT can have several rates.\nVAT : the regular VAT can have several rates.\n- ILA : the tax for alcoholic drinks.\nILA : the tax for alcoholic drinks.\n\n## Usage and testing\n\n### Electronic invoice workflow\n\nIn the Chilean localization, the electronic invoice workflow includes customer invoice issuance and\nvendor bill reception. The following diagram explains how information is shared to the SII , customers, and vendors.\n\n### Customer invoice emission\n\nAfter the partners and journals are created and configured, the invoices are created in the standard\nway. For Chile, one of the differences is the document type that is automatically selected based on\nthe taxpayer. The document type can be changed manually if needed on the invoice by navigating to Accounting ⣠Customers ⣠Invoices .\nDocuments type 33 electronic invoice must have at least one item with tax, otherwise\nthe SII rejects the document validation.\n\n#### Validation and DTE status\n\nOnce all invoice information is filled, either manually or automatically when generated from a sales\norder, validate the invoice. After the invoice is posted:\n- The DTE file is created automatically and recorded\nin the chatter.\nThe DTE file is created automatically and recorded\nin the chatter.\n- The DTE SII status is set as Pending to be sent.\nThe DTE SII status is set as Pending to be sent.\nThe DTE status is updated automatically by Odoo with a\nscheduled action that runs every day at night, if the response from the SII is needed immediately, you can do it manually as well by following the DTE status workflow:\n- The first step is to send the DTE to the SII . This can be sent manually by clicking the Enviar\nAhora button. This generates a SII Tack number for the invoice, which is used to\ncheck the details sent by the SII via email. Then, the DTE status is updated to Ask for Status .\nThe first step is to send the DTE to the SII . This can be sent manually by clicking the Enviar\nAhora button. This generates a SII Tack number for the invoice, which is used to\ncheck the details sent by the SII via email. Then, the DTE status is updated to Ask for Status .\n- Once the SII response is received, Odoo updates the DTE status . To do it manually, click on the button Verify on SII . The\nresult can either be Accepted , Accepted With Objection or Rejected . Important There are intermediate statuses in the SII before\nacceptance or rejection. Itâs recommended to NOT continuously click Verify in\nSII for smooth processing.\nOnce the SII response is received, Odoo updates the DTE status . To do it manually, click on the button Verify on SII . The\nresult can either be Accepted , Accepted With Objection or Rejected .\nThere are intermediate statuses in the SII before\nacceptance or rejection. Itâs recommended to NOT continuously click Verify in\nSII for smooth processing.\n- The final response from the SII can take on one of these\nvalues: Accepted : indicates the invoice information is correct, our document is now\nfiscally valid and itâs automatically sent to the customer. Accepted with objections : indicates the invoice information is correct, but a minor\nissue was identified, nevertheless the document is now fiscally valid and itâs automatically\nsent to the customer. Rejected : indicates the invoice information is incorrect and must be corrected.\nDetails are sent to emails you registered in the SII .\nIf it is properly configured in Odoo, the details are also retrieved in the chatter once the\nemail server is processed. If the invoice is rejected please follow these steps: Change the document to Draft . Make the required corrections based on the message received from the SII in the chatter. Post the invoice again.\nThe final response from the SII can take on one of these\nvalues:\n- Accepted : indicates the invoice information is correct, our document is now\nfiscally valid and itâs automatically sent to the customer.\nAccepted : indicates the invoice information is correct, our document is now\nfiscally valid and itâs automatically sent to the customer.\n- Accepted with objections : indicates the invoice information is correct, but a minor\nissue was identified, nevertheless the document is now fiscally valid and itâs automatically\nsent to the customer.\nAccepted with objections : indicates the invoice information is correct, but a minor\nissue was identified, nevertheless the document is now fiscally valid and itâs automatically\nsent to the customer.\n- Rejected : indicates the invoice information is incorrect and must be corrected.\nDetails are sent to emails you registered in the SII .\nIf it is properly configured in Odoo, the details are also retrieved in the chatter once the\nemail server is processed. If the invoice is rejected please follow these steps: Change the document to Draft . Make the required corrections based on the message received from the SII in the chatter. Post the invoice again.\nRejected : indicates the invoice information is incorrect and must be corrected.\nDetails are sent to emails you registered in the SII .\nIf it is properly configured in Odoo, the details are also retrieved in the chatter once the\nemail server is processed.\nIf the invoice is rejected please follow these steps:\n- Change the document to Draft .\nChange the document to Draft .\n- Make the required corrections based on the message received from the SII in the chatter.\nMake the required corrections based on the message received from the SII in the chatter.\n- Post the invoice again.\nPost the invoice again.\n\n#### Crossed references\n\nWhen the invoice is created, as a result of another fiscal document, the information related to the\noriginator document must be registered in the Cross-Reference tab. This tab is commonly\nused for credit or debit notes, however, in some cases it can be used for customer invoices, as\nwell. In the case of the credit and debit notes, they are set automatically by Odoo.\n\n#### Invoice PDF report\n\nOnce the invoice is accepted and validated by the SII and\nthe PDF is printed, it includes the fiscal elements that indicate that the document is fiscally\nvalid.\nIf you are hosted in Odoo SH or On-Premise, you should manually install the pdf417gen library. Use the following command to install it: pip install pdf417gen .\n\n#### Commercial validation\n\nOnce the invoice has been sent to the customer:\n- DTE Partner Status changes to Sent .\nDTE Partner Status changes to Sent .\n- The customer must send a reception confirmation email.\nThe customer must send a reception confirmation email.\n- Subsequently, if commercial terms and invoice data are correct, an acceptance confirmation is\nsent; otherwise, a claim is sent.\nSubsequently, if commercial terms and invoice data are correct, an acceptance confirmation is\nsent; otherwise, a claim is sent.\n- The field DTE Acceptance Status is updated automatically.\nThe field DTE Acceptance Status is updated automatically.\n\n#### Processed for claimed invoices\n\nOnce the invoice has been accepted by the SII , it can not\nbe cancelled in Odoo . In case you get a claim for your customer, the correct way to proceed is\nwith a credit note to either cancel the invoice or correct it. Please refer to the Credit notes section for more details.\n\n#### Common errors\n\nThere are multiple reasons behind a rejection from the SII ,\nbut these are some of the common errors you might have and how to solve them:\n- Error: RECHAZO- DTE Sin Comuna Origen Hint: make sure the company address is properly filled including the state and city.\n`RECHAZO-DTESinComunaOrigen`\n- Error: en Monto - IVA debe declararse Hint: the invoice lines should include one VAT tax, make sure you add one on each invoice\nline.\n`enMonto-IVAdebedeclararse`\n- Error: Rut No Autorizado a Firmar Hint: the RUT entered is not allowed to invoice\nelectronically, make sure the company RUT is correct and is valid\nin the SII to invoice electronically.\n`RutNoAutorizadoaFirmar`\n- Error: Fecha/Número Resolucion Invalido RECHAZO- CAF Vencido : (Firma_DTE[AAAA-MM-DD] - CAF[AAAA-MM-DD]) > 6 meses Hint: try to add a new CAF related to this document as the one youâre using is expired.\n`Fecha/NúmeroResolucionInvalidoRECHAZO-CAFVencido:(Firma_DTE[AAAA-MM-DD]-CAF[AAAA-MM-DD])>6meses`\n- Error: Element '{http://www.sii.cl/SiiDte%7DRutReceptor': This element is not expected. Expected is ( {http://www.sii.cl/SiiDte%7DRutEnvia ). Hint: Make sure the field Document Type and VAT are set in the\ncustomer and in the main company.\n`Element'{http://www.sii.cl/SiiDte%7DRutReceptor':Thiselementisnotexpected.Expectedis({http://www.sii.cl/SiiDte%7DRutEnvia).`\n- Error: Usuario sin permiso de envio. Hint: this error indicates that most likely, your company has not passed the Certification\nprocess in\nthe SII - Sistema de Facturación de Mercado. If this is\nthe case, please contact your Account Manager or Customer Support as this certification is not\npart of the Odoo services, but we can give you some alternatives. If you already passed the\ncertification process, this error appears when a user different from the owner of the\ncertificate is trying to send DTE files to the SII .\n`Usuariosinpermisodeenvio.`\n- Error: CARATULA Hint: there are just five reasons why this error could show up and all of them are related\nto the Caratula section of the XML: The companyâs RUT number is incorrect or missing. The certificate owner RUT number is incorrect or missing. The SIIâs RUT number\n(this should be correct by default) is incorrect or missing. The resolution date is incorrect or missing. The resolution number is incorrect or missing.\n`CARATULA`\n- The companyâs RUT number is incorrect or missing.\nThe companyâs RUT number is incorrect or missing.\n- The certificate owner RUT number is incorrect or missing.\nThe certificate owner RUT number is incorrect or missing.\n- The SIIâs RUT number\n(this should be correct by default) is incorrect or missing.\nThe SIIâs RUT number\n(this should be correct by default) is incorrect or missing.\n- The resolution date is incorrect or missing.\nThe resolution date is incorrect or missing.\n- The resolution number is incorrect or missing.\nThe resolution number is incorrect or missing.\n\n### Credit notes\n\nWhen a cancellation or correction is needed over a validated invoice, a credit note must be\ngenerated. It is important to consider that a CAF file is\nrequired for the credit note, which is identified as Document Type 61 in the SII . Please refer to the CAF section for more information on the process to load the CAF on each document type.\n\n#### Use cases\n\nIn case you need to cancel or invalidate an invoice, navigate to Accounting â£\nCustomers ⣠Invoices and select the desired invoice. Then, use the button Add Credit\nNote and select Full Refund , in this case the SII reference code is automatically set to Anula Documento de referencia .\nIf a correction in the invoice information is required, for example the street name on the original\ninvoice is wrong, then use the button Add Credit Note , select Partial Refund and select the option Only Text Correction . In this case the SII Reference\nCode field is automatically set to Corrects Referenced Document Text .\nOdoo creates a credit note with the corrected text in an invoice and Price 0.00 .\n`0.00`\nMake sure to define the Default Credit Account in the sales journal specifically for\nthis use case.\nWhen a correction on the amounts is required, use the button Add Credit note and select Partial Refund . In this case the SII Reference Code is automatically set to Corrige el monto del Documento de Referencia .\n\n### Debit notes\n\nIn Chilean localization, debit notes, in addition to credit notes, can be created using the Add Debit Note button, with two main use cases.\n\n#### Use cases\n\nThe primary use case for debit notes is to increase the value of an existing invoice. To do so,\nselect option 3. Corrige el monto del Documento de Referencia for the Reference Code SII field.\nIn this case Odoo automatically includes the Source Invoice in the Cross\nReference tab.\nYou can only add debit notes to an invoice already accepted by the SII.\nIn Chile, debits notes are used to cancel a valid credit note. To do this, click the Add\nDebit Note button and select the 1: Anula Documentos de referencia option for the Reference Code SII field.\n\n### Vendor bills\n\nAs part of the Chilean localization, you can configure your incoming email server to match the one\nyou have registered in the SII in order to:\n- Automatically receive the vendor bills DTE and\ncreate the vendor bill based on this information.\nAutomatically receive the vendor bills DTE and\ncreate the vendor bill based on this information.\n- Automatically send the reception acknowledgement to your vendor.\nAutomatically send the reception acknowledgement to your vendor.\n- Accept or claim the document and send this status to your vendor.\nAccept or claim the document and send this status to your vendor.\n\n#### Reception\n\nAs soon as the vendor email with the attached DTE is\nreceived:\n- The vendor bill maps all the information included in the XML.\nThe vendor bill maps all the information included in the XML.\n- An email is sent to the vendor with the reception acknowledgement.\nAn email is sent to the vendor with the reception acknowledgement.\n- The DTE Status is set as Acuse de Recibido Enviado .\nThe DTE Status is set as Acuse de Recibido Enviado .\n\n#### Acceptation\n\nIf all the commercial information is correct on your vendor bill, then you can accept the document\nusing the Aceptar Documento button. Once this is done, the DTE Acceptation\nStatus changes to Accepted and an email of acceptance is sent to the vendor.\n\n#### Claim\n\nIn case there is a commercial issue or the information is not correct on your vendor bill, you can\nclaim the document before validating it, using the Claim button. Once this is done, the DTE Acceptation Status changes to Claim and a rejection email is sent to the\nvendor.\nIf you claim a vendor bill, the status changes from Draft to Cancel automatically. Considering this as best practice, all the claimed documents should be cancelled as\nthey wonât be valid for your accounting records.\n\n### Electronic purchase invoice\n\nThe electronic purchase invoice is a feature included in the l10n_cl_edi module.\n`l10n_cl_edi`\nOnce all configurations have been made for electronic invoices (e.g., uploading a valid company certificate, setting up master data, etc.), the electronic\npurchase invoices need their own CAFs . Please refer to the CAF documentation to check the details on how to acquire the CAFs for electronic purchase invoices.\nElectronic purchase invoices are useful when vendors are not obligated to expedite an electronic\nvendor bill for your purchase. Still, your obligations require a document to be sent to the SII as proof of purchase.\n\n#### Configuration\n\nTo generate an electronic purchase invoice from a vendor bill, the bill must be created in a\npurchase journal with the Use Documents feature enabled. It is possible to modify an existing\npurchase journal or create a new one in the following process.\nTo modify the existing purchase journal, or create a new purchase journal, navigate to Accounting ⣠Configuration ⣠Journals . Then, click the New button,\nand fill in the following required information:\n- Type : select Purchase from the drop-down menu for vendor bill journals.\nType : select Purchase from the drop-down menu for vendor bill journals.\n- Use Documents : check this field so the journal can generate electronic documents (in\nthis case the electronic purchase invoice).\nUse Documents : check this field so the journal can generate electronic documents (in\nthis case the electronic purchase invoice).\n\n#### Generate an electronic purchase invoice\n\nTo generate this type of document, it is necessary to create a vendor bill in Odoo. To do so,\nnavigate to Accounting ⣠Vendors ⣠Bills , and click the New button.\nWhen all of the electronic purchase invoice information is filled, select the option (46)\nElectronic Purchase Invoice in the Document Type field:\nAfter the vendor bill is posted:\n- The DTE file (Electronic Tax Document) is\nautomatically created and added to the chatter.\nThe DTE file (Electronic Tax Document) is\nautomatically created and added to the chatter.\n- The DTE SII Status is set as Pending to be sent .\nThe DTE SII Status is set as Pending to be sent .\nOdoo automatically updates the DTE Status every night using a scheduled action. To get a response\nfrom the SII immediately, click the Send now to\nSII button.\n\n### Delivery guide\n\nTo install the Delivery Guide module, go to Apps and search for Chile (l10n_cl) . Then click Install on the module Chile - E-Invoicing Delivery\nGuide .\n`Chile(l10n_cl)`\nChile - E-Invoicing Delivery Guide has a dependency with Chile -\nFacturación Electrónica . Odoo will install the dependency automatically when the Delivery Guide module is installed.\nThe Delivery Guide module includes the ability to send the DTE to SII and the stamp in PDF reports for\ndeliveries.\nOnce all configurations have been made for electronic invoices (e.g., uploading a valid company certificate, setting up master data, etc.), delivery guides need\ntheir own CAFs . Please refer to the CAF documentation to check the details on how to acquire the CAF for electronic Delivery Guides.\nVerify the following important information in the Price for the Delivery Guide configuration:\n- From Sales Order : delivery guide takes the product price from the sales order and\nshows it on the document.\nFrom Sales Order : delivery guide takes the product price from the sales order and\nshows it on the document.\n- From Product Template : Odoo takes the price configured in the product template and\nshows it on the document.\nFrom Product Template : Odoo takes the price configured in the product template and\nshows it on the document.\n- No show price : no price is shown in the delivery guide.\nNo show price : no price is shown in the delivery guide.\nElectronic delivery guides are used to move stock from one place to another and they can represent\nsales, sampling, consignment, internal transfers, and basically any product move.\n\n#### Delivery guide from a sales process\n\nA delivery guide should not be longer than one page or contain more than 60 product lines.\nWhen a sales order is created and confirmed, a delivery order is generated. After validating the\ndelivery order, the option to create a delivery guide is activated.\nWhen clicking on Create Delivery Guide for the first time, a warning message pops up,\nstating the following:\nNo se encontró una secuencia para la guÃa de despacho. Por favor, establezca el primer número dentro del campo número para la guÃa de despacho\n`NoseencontróunasecuenciaparalaguÃadedespacho.Porfavor,establezcaelprimernúmerodentrodelcamponúmeroparalaguÃadedespacho`\nThis warning message means the user needs to indicate the next sequence number Odoo has to take to\ngenerate the delivery guide (e.g. next available CAF number), and\nonly happens the first time a delivery guide is created in Odoo. After the first document has been\ncorrectly generated, Odoo takes the next available number in the CAF file to generate the following delivery guide.\nAfter the delivery guide is created:\n- The DTE file (Electronic Tax Document) is\nautomatically created and added to the chatter .\nThe DTE file (Electronic Tax Document) is\nautomatically created and added to the chatter .\n- The DTE SII Status is set as Pending to be sent .\nThe DTE SII Status is set as Pending to be sent .\nThe DTE Status is automatically updated by Odoo with a scheduled action that runs every\nnight. To get a response from the SII immediately, press\nthe Send now to SII button.\nOnce the delivery guide is sent, it may then be printed by clicking on the Print Delivery\nGuide button.\nDelivery guide will have fiscal elements that indicate that the document is fiscally valid when\nprinted (if hosted in Odoo SH or on On-premise remember to manually add the pdf417gen library mentioned in the Invoice PDF report section ).\n\n### Electronic receipt\n\nTo install the Electronic Receipt module, go to Apps and search for Chile (l10n_cl) . Then click Install on the module Chile - Electronic\nReceipt .\n`Chile(l10n_cl)`\nChile - Electronic Receipt has a dependency with Chile - Facturación\nElectrónica . Odoo will install the dependency automatically when the E-invoicing\nDelivery Guide module is installed.\nOnce all configurations have been made for electronic invoices (e.g., uploading a valid company certificate, setting up master data, etc.), electronic receipts\nneed their own CAFs . Please refer to the CAF documentation to check the details on how to acquire the CAFs for electronic receipts.\nElectronic receipts are useful when clients do not need an electronic invoice. By default, there is\na partner in the database called Anonymous Final Consumer with a generic RUT 66666666-6 and taxpayer type of Final Consumer . This partner can be\nused for electronic receipts or a new record may be created for the same purpose.\n`66666666-6`\nAlthough electronic receipts should be used for final consumers with a generic RUT , it can also be used for specific partners. After the partners and journals are created\nand configured, the electronic receipts are created in the standard way as electronic invoice, but\nthe type of document (39) Electronic Receipt should be selected in the invoice form:\n\n#### Validation and DTE status\n\nWhen all of the electronic receipt information is filled, manually (or automatically) proceed to\nvalidate the receipt from the sales order. By default, Electronic Invoice is selected as\nthe Document Type , however in order to validate the receipt correctly, make sure to edit\nthe Document Type and change to Electronic Receipt .\nAfter the receipt is posted:\n- The DTE file (Electronic Tax Document) is created\nautomatically and added to the chatter .\nThe DTE file (Electronic Tax Document) is created\nautomatically and added to the chatter .\n- The DTE SII Status is set as Pending to be sent .\nThe DTE SII Status is set as Pending to be sent .\nThe DTE Status is automatically updated by Odoo with a scheduled action that runs every\nday at night. To get a response from the SII immediately,\npress the Send now to SII button.\nPlease refer to the DTE Workflow for electronic\ninvoices as the workflow for electronic receipt follows the same process.\n\n### Electronic export of goods\n\nTo install the Electronic Exports of Goods module, go to Apps and\nsearch for Chile (l10n_cl) . Then click Install on the module Electronic\nExports of Goods for Chile .\n`Chile(l10n_cl)`\nChile - Electronic Exports of Goods for Chile has a dependency with Chile\n- Facturación Electrónica .\nOnce all configurations have been made for electronic invoices (e.g., uploading a valid company certificate, setting up master data, etc.), electronic exports of\ngoods need their own CAFs . Please refer to the CAF\ndocumentation to check the details on how to acquire the CAFs for electronic receipts.\nElectronic invoices for the export of goods are tax documents that are used not only for the SII but are also used with customs and contain the\ninformation required by it.\n\n#### Contact configurations\n\n#### Chilean customs\n\nWhen creating an electronic exports of goods invoice, these new fields in the Other Info tab are required to comply with Chilean regulations.\n\n#### PDF report\n\nOnce the invoice is accepted and validated by the SII and\nthe PDF is printed, it includes the fiscal elements that indicate that the document is fiscally\nvalid and a new section needed for customs.\n\n### eCommerce electronic invoicing\n\nTo install the Chilean eCommerce module, go to Apps, search for the\nmodule by its technical name `l10n_cl_edi_website_sale , and click the Activate button.\nThis module enables the features and configurations to:\n- Generate electronic documents from the eCommerce application\nGenerate electronic documents from the eCommerce application\n- Support for required fiscal fields in the eCommerce application\nSupport for required fiscal fields in the eCommerce application\n- Effectively let the final client decide the electronic document to be generated for their\npurchase\nEffectively let the final client decide the electronic document to be generated for their\npurchase\nOnce all of the configurations are made for the Chilean electronic invoice flow, the following configurations are required for the eCommerce flow\nto be integrated.\nTo configure your website to generate electronic documents during the sale process, go to Website ⣠Configuration ⣠Settings ⣠Invoicing and activate the Automatic Invoice feature. Activating this feature allows electronic documents to be\nautomatically generated when an online payment is confirmed.\nSince an online payment needs to be confirmed for the automatic invoice feature to generate the\ndocument, a payment provider must be configured for the related website.\nReview the Online payments documentation for information on which payment providers\nare supported in Odoo, and how to configure them.\nIt is also recommended to configure your products so they are able to be invoiced when an online\npayment is confirmed. To do so, go to Website ⣠eCommerce ⣠Products and select\nthe product template of the desired product. Then, set the Invoicing Policy to Ordered quantities .\n\n#### Invoicing flows\n\nClients from Chile will be able to select if they need an invoice or a ballot for their\npurchase with an extra step added during the checkout process.\nIf the customer selects the Electronic Invoice option, fiscal fields are required to be\nfilled out, including the Activity Description , the Identification Number and their DTE Email .\nIf the client selects the Electronic Receipts option, they will be directed to the next\nstep, and the electronic document will be generated for the Consumidor Final Anónimo contact.\nClients from countries other than Chile, will have their electronic receipts automatically generated\nfor them by Odoo.\nIf a purchase through eCommerce requires an export, the customer will need to contact your\ncompany to generate an electronic export invoice ( document type 110 ), which can be done from\nthe Accounting app.\n\n### Point of Sale electronic invoicing\n\nTo install the Chilean Module for Point of Sale , go to the Apps application on the main Odoo dashboard, search for the module by its technical name l10n_cl_edi_pos , and click the Activate button.\n`l10n_cl_edi_pos`\nThis module enables the following features and configurations to:\n- Generate electronic documents from the Point of Sale application\nGenerate electronic documents from the Point of Sale application\n- Support the required fiscal fields for contacts created in the Point of Sale application\nSupport the required fiscal fields for contacts created in the Point of Sale application\n- Effectively lets the final client decide the type of electronic document to be generated for their\npurchase\nEffectively lets the final client decide the type of electronic document to be generated for their\npurchase\n- Print QR or 5-digit codes in tickets to access to electronic invoices\nPrint QR or 5-digit codes in tickets to access to electronic invoices\nTo configure contacts with the required fiscal information, review the partner information section, or directly modify a contact. Navigate to Point of Sale ⣠Session ⣠Customers ⣠Details , and edit any of the following\nfields:\n- Identification Type\n- Tax Payer Type\n- Type Giro\n- DTE Email\nTo configure the products, navigate to Point of Sale ⣠Products ⣠Products and\nselect a product record. In the Sales tab of the product form, it is necessary to mark\nthe product as Available for POS , this makes the product available for sale in the Point of Sale app.\nOptionally, the following features are available for configuration in the Point of\nSale ⣠Configuration ⣠Settings ⣠Bills & Receipts section :\n- Use QR code on ticket : this feature enables a QR code to be printed on the userâs\nreceipt so they can easily request an invoice after their purchase\nUse QR code on ticket : this feature enables a QR code to be printed on the userâs\nreceipt so they can easily request an invoice after their purchase\n- Generate a code on ticket : this feature enables a 5-digit code to be generated on the\nreceipt, allowing the user to request an invoice through the customer portal\nGenerate a code on ticket : this feature enables a 5-digit code to be generated on the\nreceipt, allowing the user to request an invoice through the customer portal\n\n#### Invoicing flows\n\nThe following sections cover the invoicing flows for the Point of Sale application.\nWhen making a purchase as an anonymous user that does not request an electronic invoice, Odoo\nautomatically selects Consumidor Final Anónimo as the contact for the order and\ngenerates the electronic receipt.\nIf the client requests a credit note due to a return of their purchase, the credit note should be\nmade using the Accounting app. See the credit notes and refunds documentation for detailed instructions.\nWhen specific user makes a purchase that does not request an electronic invoice, Odoo automatically\nselects the contact for the order as the Consumidor Final Anónimo , and allows you to\nselect or create the required customer contact with their fiscal information for the receipt.\nIf the client requests a credit note because of a return of this type of purchase, the credit\nnote and return process can be managed directly from the POS session.\nWhen clients request an electronic invoice, it is possible to select or create the required contact\nwith their fiscal information. When the payment is being made, select the option Invoice to generate the document.\nFor both the electronic receipts and invoices, if the product is not affected by taxes, Odoo\ndetects this and generates the correct type of document for tax-exempt sales.\nFor electronic receipts (not generated for the Consumidor Final Anónimo ) and electronic invoices,\nit is possible to manage the process to return products sold in a POS order\nby selecting the Refund button.\nOrders can be searched by the order status or by contact, and be selected for the refund to be based\non the clientâs original order.\nWhen the return payment is validated, Odoo generates the necessary credit note, referencing the\noriginal receipt or invoice, partially or fully cancelling the document.\nSmart tutorial - Electronic invoicing for point of sale .\n\n### Factoring\n\nMake sure the Chile - Localization: Factoring Extension ( l10n_cl_edi_factoring )\nmodule is installed .\n`l10n_cl_edi_factoring`\nFactoring is a financial strategy where accounts receivable invoices are sold to a factoring\ncompany to receive immediate liquidity (less an agreed commission) before the actual due date.\nThe AEC (Archivo Electrónico de Cesión) is the document that formalizes and registers the\nassignment of a DTE to a third party (Factoring company) through the SII system.\nFactoring of sales invoices :\n- Does not apply to tickets (boletas) .\nDoes not apply to tickets (boletas) .\n- Can be multi-currency.\nCan be multi-currency.\n- Does not require CAFs .\nDoes not require CAFs .\n- Generates an AEC for each document that is factored.\nGenerates an AEC for each document that is factored.\nThis module supports companies transferring invoice ownership to a third party, not companies\nacquiring invoice ownership.\n\n#### Configuration\n\nTo set the default journal and account for factoring purposes:\n- Go to Accounting ⣠Configuration ⣠Settings .\nGo to Accounting ⣠Configuration ⣠Settings .\n- Scroll down to the Chilean Localization section.\nScroll down to the Chilean Localization section.\n- In the Factoring Default Information section, complete the following fields : Journal : Select a Miscellaneous type journal. Receivable Account : Update if necessary. Tip Itâs recommended to use a specific factoring account receivable.\nIn the Factoring Default Information section, complete the following fields :\n- Journal : Select a Miscellaneous type journal.\nJournal : Select a Miscellaneous type journal.\n- Receivable Account : Update if necessary. Tip Itâs recommended to use a specific factoring account receivable.\nReceivable Account : Update if necessary.\nItâs recommended to use a specific factoring account receivable.\nThen, for each factoring partner, open the relevant Contact form, and enable the Factoring Company option in the Electronic Invoicing tab.\n\n#### Workflow\n\nTo factor an invoice, follow these steps:\n- In the Invoices list view, open a Type 33 electronic invoice that has been validated by the\nSII .\nIn the Invoices list view, open a Type 33 electronic invoice that has been validated by the\nSII .\n- In the invoice form, click Create AEC in the SII DTE status field.\nIn the invoice form, click Create AEC in the SII DTE status field.\n- In the Create AEC window, specify the Factoring Company and the Date Due , and click Create AEC . A yellow banner confirms that the invoice\nhas an account entry to be yielded.\nIn the Create AEC window, specify the Factoring Company and the Date Due , and click Create AEC . A yellow banner confirms that the invoice\nhas an account entry to be yielded.\n- Click the Yield Entry smart button to open the yield entry. Note The entry is posted using the configured receivable account and journal .\nClick the Yield Entry smart button to open the yield entry.\nThe entry is posted using the configured receivable account and journal .\n- Click Send now to the SII in the SII DTE status field to generate, send and get the final status of the AEC.\nClick Send now to the SII in the SII DTE status field to generate, send and get the final status of the AEC.\nOnce the assignment entry is Accepted , the original customer invoice is marked as Paid , with the accepted assignment entry serving as the payment reference.\nTo factor multiple invoices, select them in the Invoices list view, click Actions , select Create AEC , and follow the same steps. An\nXML file is generated for each invoice.\n\n## Financial reports\n\n### Balance tributario de 8 columnas\n\nThis report presents the accounts in detail (with their respective balances), classifying them by\norigin and determining the level of profit or loss for the evaluated period.\nTo access it, go to Accounting ⣠Reporting ⣠Balance Sheet , click Report: , and select Chilean Fiscal Balance (8 Columns)(CL) .\n\n### Propuesta F29\n\nThe F29 form is a new system that the SII enabled for\ntaxpayers and replaces the Purchase and Sales Books . This report is integrated by the Purchase\nRegister (CR) and the Sales Register (RV). Its purpose is to support the transactions related to\nVAT, improving its control and declaration.\nThe Propuesta F29 (CL) report in Odoo covers the basic legal requirements as a first proposal\nfor the final tax declaration.\nThis record is supplied by the electronic tax documents (DTEâs) that the SII has received.\nTo access it, go to Accounting ⣠Reporting ⣠Tax Return , click Report: , and select Propuesta F29 (CL) . To manually set the Proposed Ratio Factor (%) and PPM rate (%) , click the (pencil) icon and add the percentage for each value. Calculations are then performed\nautomatically.", "headings": ["Modules", "Company information", "Accounting settings", "Fiscal information", "Electronic invoice data", "DTE incoming email server", "Certificate", "Multicurrency", "Partner information", "Document types", "Use on invoices", "Journals", "Create a sales journal", "CAF", "Upload CAF files", "Chart of accounts", "Taxes", "Usage and testing", "Electronic invoice workflow", "Customer invoice emission", "Credit notes", "Debit notes", "Vendor bills", "Electronic purchase invoice", "Delivery guide", "Electronic receipt", "Electronic export of goods", "eCommerce electronic invoicing", "Point of Sale electronic invoicing", "Factoring", "Financial reports", "Balance tributario de 8 columnas", "Propuesta F29"], "doc_id": "8c31604b29f7710e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/colombia.html", "title": "Colombia", "module": "invoicing", "section": "Colombia", "text": "# Colombia\n\nOdooâs Colombian localization package provides accounting, fiscal, and legal features for databases\nin Colombia - such as chart of accounts, taxes, and electronic invoicing. The localization has the\nfollowing prerequisites when using the DIAN Own Software solution with Odoo:\n- Be registered in the RUT (Registro Ãnico Tributario) with a valid NIT .\nBe registered in the RUT (Registro Ãnico Tributario) with a valid NIT .\n- Have a valid digital signature certificate approved by the ONAC .\nHave a valid digital signature certificate approved by the ONAC .\n- Register and get enabled by completing the certification process required by the DIAN .\nRegister and get enabled by completing the certification process required by the DIAN .\n- For more information on how to complete the certification process for the DIAN module, review\nthe following webinar\nFor more information on how to complete the certification process for the DIAN module, review\nthe following webinar\n- Smart Tutorial - Colombian Localization\nSmart Tutorial - Colombian Localization\n- Documentation on e-invoicingâs legality and compliance in Colombia\nDocumentation on e-invoicingâs legality and compliance in Colombia\n\n## Configuration\n\n### Modules installation\n\nInstall the following modules to get all the features of the Colombian\nlocalization:\nColombia - Accounting\n`l10n_co`\nDefault fiscal localization package . This module adds\nthe base accounting features for the Colombian localization: chart of accounts, taxes,\nwithholdings, and identification document type.\nElectronic invoicing for Colombia with DIAN\n`l10n_co_dian`\nThis module includes the features required for integration with the DIAN as its own\nsoftware, and adds the ability to generate electronic invoices and support documents based on DIAN regulations.\nColombian - Accounting Reports\n`l10n_co_reports`\nThis module includes accounting reports for sending certifications to suppliers for\nwithholdings applied.\nElectronic invoicing for Colombia with Carvajal\n`l10n_co_edi`\nThis module includes the features required for integration with Carvajal. Adds the ability to\ngenerate the electronic invoices and support documents, based on DIAN regulations.\nColombian - Point of Sale\n`l10n_co_pos`\nThis module includes Point of Sale receipts for Colombian localization.\n\n### Company information\n\nTo configure your company information:\n- Access your companyâs contact form: Go to the Contacts app and search for your company or; Go to the Settings app, activate the developer mode , and in\nthe Companies section, click Update Info . Then, in the Contact field, click on the company name.\nAccess your companyâs contact form:\n- Go to the Contacts app and search for your company or;\nGo to the Contacts app and search for your company or;\n- Go to the Settings app, activate the developer mode , and in\nthe Companies section, click Update Info . Then, in the Contact field, click on the company name.\nGo to the Settings app, activate the developer mode , and in\nthe Companies section, click Update Info . Then, in the Contact field, click on the company name.\n- Configure the following information: Company Name . Address : Including City , Department , and ZIP code. Identification Number : Select the Identification Type ( NIT , Cédula de CiudadanÃa , Registro Civil , etc.). When the Identification Type is NIT , the Identification Number must have the verification digit at the end of the ID\nprefixed by a hyphen ( - ).\nConfigure the following information:\n- Company Name .\n- Address : Including City , Department , and ZIP code.\nAddress : Including City , Department , and ZIP code.\n- Identification Number : Select the Identification Type ( NIT , Cédula de CiudadanÃa , Registro Civil , etc.). When the Identification Type is NIT , the Identification Number must have the verification digit at the end of the ID\nprefixed by a hyphen ( - ).\nIdentification Number : Select the Identification Type ( NIT , Cédula de CiudadanÃa , Registro Civil , etc.). When the Identification Type is NIT , the Identification Number must have the verification digit at the end of the ID\nprefixed by a hyphen ( - ).\n`-`\n- Go to the Sales & Purchase tab and configure the Fiscal Information : Obligaciones y Responsabilidades : Select the fiscal responsibility for the company.\n( O-13 Gran Contribuyente, O-15 Autorretenedor, O-23 Agente de retención IVA, O-47 Regimen de tributación simple, R-99-PN No Aplica). Gran Contribuyente : If the company is Gran Contribuyente , enable this option. Fiscal Regimen : Select the Tribute Name for the company ( IVA , INC , IVA e INC , or No Aplica ) Commercial Name : If the company uses a specific commercial name and it needs to be\ndisplayed in the invoice.\nGo to the Sales & Purchase tab and configure the Fiscal Information :\n- Obligaciones y Responsabilidades : Select the fiscal responsibility for the company.\n( O-13 Gran Contribuyente, O-15 Autorretenedor, O-23 Agente de retención IVA, O-47 Regimen de tributación simple, R-99-PN No Aplica).\nObligaciones y Responsabilidades : Select the fiscal responsibility for the company.\n( O-13 Gran Contribuyente, O-15 Autorretenedor, O-23 Agente de retención IVA, O-47 Regimen de tributación simple, R-99-PN No Aplica).\n- Gran Contribuyente : If the company is Gran Contribuyente , enable this option.\nGran Contribuyente : If the company is Gran Contribuyente , enable this option.\n- Fiscal Regimen : Select the Tribute Name for the company ( IVA , INC , IVA e INC , or No Aplica )\nFiscal Regimen : Select the Tribute Name for the company ( IVA , INC , IVA e INC , or No Aplica )\n- Commercial Name : If the company uses a specific commercial name and it needs to be\ndisplayed in the invoice.\nCommercial Name : If the company uses a specific commercial name and it needs to be\ndisplayed in the invoice.\nThe data configured in the Fiscal Information section is printed in the valid fiscal\nPDF reports.\n\n### Electronic invoicing credentials andDIANenvironment\n\nTo configure the user credentials to be used to connect with the DIAN âs web service and the DIAN environment, navigate to Accounting ⣠Configuration ⣠Settings and\nscroll to the Colombian Electronic Invoicing section. Then, follow these steps:\n- Select DIAN: Free Service as the Electronic Invoicing Provider .\nSelect DIAN: Free Service as the Electronic Invoicing Provider .\n- Configure the Operation Modes for the respective types of documents\n( electronic invoices or support documents ) to be generated from Odoo. Click Add a line , then fill in the fields: Software Mode : the type of document to be generated with the operation mode. Software ID : the ID generated by DIAN for the specific operation mode. Software PIN : the PIN selected in the operation mode configuration in the DIAN portal. Testing ID : the testing ID generated by DIAN and obtained after testing the\noperation mode.\nConfigure the Operation Modes for the respective types of documents\n( electronic invoices or support documents ) to be generated from Odoo. Click Add a line , then fill in the fields:\n- Software Mode : the type of document to be generated with the operation mode.\nSoftware Mode : the type of document to be generated with the operation mode.\n- Software ID : the ID generated by DIAN for the specific operation mode.\nSoftware ID : the ID generated by DIAN for the specific operation mode.\n- Software PIN : the PIN selected in the operation mode configuration in the DIAN portal.\nSoftware PIN : the PIN selected in the operation mode configuration in the DIAN portal.\n- Testing ID : the testing ID generated by DIAN and obtained after testing the\noperation mode.\nTesting ID : the testing ID generated by DIAN and obtained after testing the\noperation mode.\n- Configure the available Certificates to sign the electronic documents. Click Add a line , then fill in the fields: Name : the name of the certificate. Certificate : upload the certificate file in PEM format. In the Private\nKey field that appears on the screen, select an existing private key or create a new one. To\ndo so, enter a key name and select Create and edit . Then, in the Create\nPrivate Key wizard, upload a valid Key file and click Save & Close .\nConfigure the available Certificates to sign the electronic documents. Click Add a line , then fill in the fields:\n- Name : the name of the certificate.\nName : the name of the certificate.\n- Certificate : upload the certificate file in PEM format. In the Private\nKey field that appears on the screen, select an existing private key or create a new one. To\ndo so, enter a key name and select Create and edit . Then, in the Create\nPrivate Key wizard, upload a valid Key file and click Save & Close .\nCertificate : upload the certificate file in PEM format. In the Private\nKey field that appears on the screen, select an existing private key or create a new one. To\ndo so, enter a key name and select Create and edit . Then, in the Create\nPrivate Key wizard, upload a valid Key file and click Save & Close .\n- Configure the DIAN environment; the DIAN electronic invoicing module offers four different DIAN environments to connect with: DIAN demo mode : This environment allows to test electronic invoicing workflows using\na demo digital certificate. Files are created and accepted automatically and are not sent\nto any DIAN environment. Every internal validation can be tested. To activate it, tick the DIAN Demo Mode checkbox. Note The DIAN Demo Mode checkbox is hidden from view when the Test\nenvironment checkbox is enabled. Certification environment : This environment is useful to pass the DIAN certification\nprocess and obtain the Enabled status to invoice from Odoo. To activate it, enable both the Test environment and the Activate the certification process checkboxes. Testing environment : This environment allows reproducing electronic invoicing flows\nand validations in the DIAN testing portal. To activate it, enable only the Test\nEnvironment checkbox. Production environment : This environment allows generating valid electronic documents. To\nactivate it, disable both the Test environment and the Activate the\ncertification process checkboxes. Important Do not activate DIAN Demo Mode on a production database. This mode is intended\nfor use in test environments only.\nConfigure the DIAN environment; the DIAN electronic invoicing module offers four different DIAN environments to connect with:\n- DIAN demo mode : This environment allows to test electronic invoicing workflows using\na demo digital certificate. Files are created and accepted automatically and are not sent\nto any DIAN environment. Every internal validation can be tested. To activate it, tick the DIAN Demo Mode checkbox. Note The DIAN Demo Mode checkbox is hidden from view when the Test\nenvironment checkbox is enabled.\nDIAN demo mode : This environment allows to test electronic invoicing workflows using\na demo digital certificate. Files are created and accepted automatically and are not sent\nto any DIAN environment. Every internal validation can be tested. To activate it, tick the DIAN Demo Mode checkbox.\nThe DIAN Demo Mode checkbox is hidden from view when the Test\nenvironment checkbox is enabled.\n- Certification environment : This environment is useful to pass the DIAN certification\nprocess and obtain the Enabled status to invoice from Odoo. To activate it, enable both the Test environment and the Activate the certification process checkboxes.\nCertification environment : This environment is useful to pass the DIAN certification\nprocess and obtain the Enabled status to invoice from Odoo. To activate it, enable both the Test environment and the Activate the certification process checkboxes.\n- Testing environment : This environment allows reproducing electronic invoicing flows\nand validations in the DIAN testing portal. To activate it, enable only the Test\nEnvironment checkbox.\nTesting environment : This environment allows reproducing electronic invoicing flows\nand validations in the DIAN testing portal. To activate it, enable only the Test\nEnvironment checkbox.\n- Production environment : This environment allows generating valid electronic documents. To\nactivate it, disable both the Test environment and the Activate the\ncertification process checkboxes. Important Do not activate DIAN Demo Mode on a production database. This mode is intended\nfor use in test environments only.\nProduction environment : This environment allows generating valid electronic documents. To\nactivate it, disable both the Test environment and the Activate the\ncertification process checkboxes.\nDo not activate DIAN Demo Mode on a production database. This mode is intended\nfor use in test environments only.\nIn a multi-company database, each company can have its own certificate.\nFor electronic invoicing configurations using the Carvajal solution, review the following video: Configuración de Facturación Electrónica - Localización de Colombia .\n\n### Master data\n\n#### Contacts\n\nConfigure the following fields on the contact form :\n- Identification Number (VAT): Select the identification number type and enter the\nidentification number. If the identification number type is NIT , the identification\nnumber must include the verification digit at the end, prefixed by a hyphen ( - ).\nIdentification Number (VAT): Select the identification number type and enter the\nidentification number. If the identification number type is NIT , the identification\nnumber must include the verification digit at the end, prefixed by a hyphen ( - ).\n`-`\n- Fiscal Information fields in the Sales & Purchase tab.\nFiscal Information fields in the Sales & Purchase tab.\n\n#### Products\n\nAccess the productâs form via Accounting ⣠Customers ⣠Products and ensure\nthat either the UNSPSC Category field (found in the Accounting tab ) or the Internal Reference field (in the General Information tab) is configured.\n\n#### Taxes\n\nTo create or modify taxes, go to Accounting ⣠Configuration ⣠Taxes , and select\nthe related tax.\nIf sales transactions include products with taxes, configure the Value Type field in the Advanced Options tab. Retention tax types ( ICA , IVA , Fuente ) are also included. This configuration is used to display taxes correctly on the\ninvoice.\n\n#### Sales journals\n\nOnce the DIAN has assigned the official sequence and prefix for the electronic invoice resolution,\nthe sales journals related to the invoices must be updated in Odoo. To do so, navigate\nto Accounting ⣠Configuration ⣠Journals and select an existing sales journal\nor create a new one with the Create button.\nOn the sales journal form, enter the Journal Name and Type , then set a\nunique Short Code in the Journals Entries tab. Then, configure the following\ndata in the Advanced Settings tab:\n- Electronic invoicing : enable UBL 2.1 (Colombia).\nElectronic invoicing : enable UBL 2.1 (Colombia).\n- Invoicing Resolution : resolution number issued by DIAN to the company via their test\nset.\nInvoicing Resolution : resolution number issued by DIAN to the company via their test\nset.\n- Resolution Date : initial effective date of the resolution.\nResolution Date : initial effective date of the resolution.\n- Resolution End Date : end date of the resolutionâs validity.\nResolution End Date : end date of the resolutionâs validity.\n- Range of Numbering (minimum) : first authorized invoice number.\nRange of Numbering (minimum) : first authorized invoice number.\n- Range of Numbering (maximum) : last authorized invoice number.\nRange of Numbering (maximum) : last authorized invoice number.\n- Technical Key : control key received from the DIAN portal test set or from their web\nservice in case of the production environment.\nTechnical Key : control key received from the DIAN portal test set or from their web\nservice in case of the production environment.\nWhen the database is configured for the production environment , instead of configuring these fields manually,\nclick the Reload DIAN configuration button to obtain the DIAN resolution information\nfrom the DIAN web service.\n- The short code and resolution of the journal must match the ones received in the DIAN portal test set or from the MUISCA portal.\nThe short code and resolution of the journal must match the ones received in the DIAN portal test set or from the MUISCA portal.\n- The invoice sequence and prefix must be\ncorrectly configured when the first invoice is created. Odoo automatically assigns a prefix\nand sequence to the following invoices.\nThe invoice sequence and prefix must be\ncorrectly configured when the first invoice is created. Odoo automatically assigns a prefix\nand sequence to the following invoices.\n\n#### Purchase journals\n\nOnce the DIAN has assigned the official sequence and prefix for the support document related to\nvendor bills, the purchase journals related to their supporting documents need to be updated in\nOdoo. The process is similar to the configuration of the sales journals .\nFor more information on support document journals using the Carvajal solution, review the Documento Soporte - Localización de Colombia video .\n\n#### Chart of accounts\n\nThe chart of accounts is\ninstalled by default as part of the localization module. The accounts are mapped automatically in\ntaxes, default account payable, and default account receivable. The chart of accounts for Colombia\nis based on the PUC (Plan Unico de Cuentas).\n\n### Multicurrency\n\nThe official exchange rate for Colombia is provided by the Banco de la República .\nTo enable automatic exchange rate updates, follow these steps:\n- Go to Accounting ⣠Configuration ⣠Settings .\nGo to Accounting ⣠Configuration ⣠Settings .\n- Navigate to the Currencies section and enable Automatic Currency Rates .\nNavigate to the Currencies section and enable Automatic Currency Rates .\n- Ensure that [CO] Bank of the Republic is selected as the Service .\nEnsure that [CO] Bank of the Republic is selected as the Service .\n- Select an Interval for how frequently the currency rate should be automatically\nupdated.\nSelect an Interval for how frequently the currency rate should be automatically\nupdated.\n\n## Main workflows\n\n### Electronic invoices\n\nThe following is a breakdown of the main workflow for electronic invoices with the Colombian\nlocalization:\n- The user creates an invoice.\nThe user creates an invoice.\n- Odoo generates the legal XML file.\nOdoo generates the legal XML file.\n- Odoo generates the CUFE (Invoice Electronic Code) with the electronic signature.\nOdoo generates the CUFE (Invoice Electronic Code) with the electronic signature.\n- Odoo sends a notification to DIAN.\nOdoo sends a notification to DIAN.\n- DIAN validates the invoice.\nDIAN validates the invoice.\n- DIAN accepts or rejects the invoice.\nDIAN accepts or rejects the invoice.\n- Odoo generates the PDF invoice with a QR code.\nOdoo generates the PDF invoice with a QR code.\n- Odoo compresses the attached document (containing the sent XML file and the DIAN validation\nresponse) and the fiscal valid PDF into a .zip file.\nOdoo compresses the attached document (containing the sent XML file and the DIAN validation\nresponse) and the fiscal valid PDF into a .zip file.\n`.zip`\n- The user sends the invoice ( .zip file) via Odoo to the acquirer.\nThe user sends the invoice ( .zip file) via Odoo to the acquirer.\n`.zip`\n\n#### Invoice creation\n\nThe functional workflow taking place before an invoice validation does not alter the main\nchanges introduced with the electronic invoice.\nElectronic invoices are generated and sent to both the DIAN and the customer. These documents can\nbe created from the sales order or manually generated. To create a new invoice, go to Accounting ⣠Costumers ⣠Invoices , and select Create . On the\ninvoice form, configure the following fields:\n- Customer : customerâs information.\nCustomer : customerâs information.\n- Journal : journal used for electronic invoices.\nJournal : journal used for electronic invoices.\n- Electronic Invoice Type : Select the type of document. By default, Factura\nde Venta is selected.\nElectronic Invoice Type : Select the type of document. By default, Factura\nde Venta is selected.\n- Invoice Lines : Specify the products with the correct taxes.\nInvoice Lines : Specify the products with the correct taxes.\nWhen creating the first invoice related to an electronic invoicing journal, it is required to\nmanually change the sequence of the invoice to the DIAN format: Prefix + Sequence .\n`Prefix+Sequence`\nFor example, format the sequence from SETP/2024/00001 to SETP1 .\n`SETP/2024/00001`\n`SETP1`\nWhen done, click Confirm .\n\n#### Electronic invoice sending\n\nAfter the invoice confirmation , click Send . In the wizard that appears, make sure to enable the DIAN and Email checkboxes to send an XML to the DIAN web service and the validated invoice to\nthe client fiscal email and click Send . Then:\n- The XML document is created.\nThe XML document is created.\n- The CUFE is generated.\nThe CUFE is generated.\n- The XML is processed synchronously by the DIAN .\nThe XML is processed synchronously by the DIAN .\n- If accepted, the file is displayed in the chatter and the email to the client with the\ncorresponding .zip file.\nIf accepted, the file is displayed in the chatter and the email to the client with the\ncorresponding .zip file.\n`.zip`\nThe DIAN tab then displays the following:\n- Signed Date : timestamp recorded of the XML creation.\nSigned Date : timestamp recorded of the XML creation.\n- Status : Status result obtained in the DIAN response. If the invoice was\nrejected, the error messages can be seen here.\nStatus : Status result obtained in the DIAN response. If the invoice was\nrejected, the error messages can be seen here.\n- Testing Environment : To know if the document sent was delivered to the DIAN testing\nenvironment.\nTesting Environment : To know if the document sent was delivered to the DIAN testing\nenvironment.\n- Certification Process : To know if the document was sent as part of the certification\nprocess with the DIAN .\nCertification Process : To know if the document was sent as part of the certification\nprocess with the DIAN .\n- Download : To download the sent XML file, even if the DIAN result was\nrejected.\nDownload : To download the sent XML file, even if the DIAN result was\nrejected.\n- Fetch Attached Document : To download the generated attached document file included in\nthe delivered .zip file to the client.\nFetch Attached Document : To download the generated attached document file included in\nthe delivered .zip file to the client.\n`.zip`\n\n### Credit notes\n\nThe process for credit notes is the same as for invoices. To create a credit note with reference to\nan invoice, go to Accounting ⣠Customers ⣠Invoices . On the invoice, click Add Credit Note , and complete the following information:\n- Credit Method : Select the type of credit method. Partial Refund : Use this option when it is a partial amount. Full Refund : Use this option if the credit note is for the full amount. Full refund and new draft invoice : Use this option if the credit note is\nauto-validated and reconciled with the invoice. The original invoice is duplicated as a new\ndraft.\nCredit Method : Select the type of credit method.\n- Partial Refund : Use this option when it is a partial amount.\nPartial Refund : Use this option when it is a partial amount.\n- Full Refund : Use this option if the credit note is for the full amount.\nFull Refund : Use this option if the credit note is for the full amount.\n- Full refund and new draft invoice : Use this option if the credit note is\nauto-validated and reconciled with the invoice. The original invoice is duplicated as a new\ndraft.\nFull refund and new draft invoice : Use this option if the credit note is\nauto-validated and reconciled with the invoice. The original invoice is duplicated as a new\ndraft.\n- Reason : Enter the reason for the credit note.\nReason : Enter the reason for the credit note.\n- Reversal Date : Select if you want a specific date for the credit note or if it is the\njournal entry date.\nReversal Date : Select if you want a specific date for the credit note or if it is the\njournal entry date.\n- Use Specific Journal : Select the journal for your credit note or leave it empty if\nyou want to use the same journal as the original invoice.\nUse Specific Journal : Select the journal for your credit note or leave it empty if\nyou want to use the same journal as the original invoice.\n- Refund Date : If you chose a specific date, select the date for the refund.\nRefund Date : If you chose a specific date, select the date for the refund.\nOnce reviewed, click the Reverse button.\n\n### Debit notes\n\nThe process for debit notes is similar to credit notes. To create a debit note with reference to an\ninvoice, go to Accounting ⣠Customers ⣠Invoices . On the invoice, click the Add Debit Note button, and enter the following information:\n- Reason : Type the reason for the debit note.\nReason : Type the reason for the debit note.\n- Debit note date : Select the specific options.\nDebit note date : Select the specific options.\n- Copy lines : Select this option if you need to register a debit note with the same\nlines of invoice.\nCopy lines : Select this option if you need to register a debit note with the same\nlines of invoice.\n- Use Specific Journal : Select the printer point for your debit note, or leave it empty\nif you want to use the same journal as the original invoice.\nUse Specific Journal : Select the printer point for your debit note, or leave it empty\nif you want to use the same journal as the original invoice.\nWhen done, click Create Debit Note .\n\n### Support document for vendor bills\n\nWith master data, credentials, and the purchase journal configured for support documents related to\nvendor bills, you can start using support documents .\nSupport documents for vendor bills can be created from your purchase order or manually. Go to Accounting ⣠Vendors ⣠Bills and fill in the following data:\n- Vendor : Enter the vendorâs information.\nVendor : Enter the vendorâs information.\n- Bill Date : Select the date of the bill.\nBill Date : Select the date of the bill.\n- Journal : Select the journal for support documents related to the vendor bills.\nJournal : Select the journal for support documents related to the vendor bills.\n- Invoiced Lines : Specify the products with the correct taxes.\nInvoiced Lines : Specify the products with the correct taxes.\nOnce reviewed, click the Confirm button. Upon confirmation, an XML file is created and\nautomatically sent to Carvajal.\n\n### Common errors\n\nDuring the XML validation, the most common errors are related to missing master data . In such cases, a validation error message is displayed and\nsending is blocked.\nIf the invoice was sent and set as Rejected by the DIAN , the error messages are visible by\nclicking the (info circle) icon next to the Status field in the DIAN tab. Using the reported error codes, it is possible to review\nsolutions to apply before re-sending.\nAfter the master data or other issues are corrected, it is possible to reprocess the XML again. Do\nso by following the electronic invoice sending flow.\n\n## Financial reports\n\n### Certificado de Retención en ICA\n\nThis report is a certification to vendors for withholdings made for the Colombian Industry and\nCommerce (ICA) tax. The report can be found under Accounting ⣠Reporting â£\nColombian Statements ⣠Certificado de Retención en ICA .\nClick the (gear) icon to display options to Download Excel and Copy to Documents .\n\n### Certificado de Retención en IVA\n\nThis report issues a certificate on the amount withheld from vendors for VAT withholding. The report\ncan be found under Accounting ⣠Reporting ⣠Colombian Statements ⣠Certificado\nde Retención en IVA .\nClick the (gear) icon to display options to Download Excel and Copy to Documents .\n\n### Certificado de Retención en la Fuente\n\nThis certificate is issued to partners for the withholding tax that they have made. The report can\nbe found under Accounting ⣠Reporting ⣠Colombian Statements ⣠Certificado de\nRetención en Fuente .\nClick the (gear) icon to display options to Download Excel and Copy to Documents .", "headings": ["Configuration", "Modules installation", "Company information", "Electronic invoicing credentials andDIANenvironment", "Master data", "Multicurrency", "Main workflows", "Electronic invoices", "Credit notes", "Debit notes", "Support document for vendor bills", "Common errors", "Financial reports", "Certificado de Retención en ICA", "Certificado de Retención en IVA", "Certificado de Retención en la Fuente"], "doc_id": "178b85730028ae2d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/croatia.html", "title": "Croatia", "module": "invoicing", "section": "Croatia", "text": "# Croatia\n\n## Modules\n\nThe following modules related to the Croatian localization are available:\n`l10n_hr`\nDefault fiscal localization package\nCroatia - Accounting Reports\n`l10n_hr_reports`\nCountry-specific reports\nCroatia - e-invoicing\n`l10n_hr_edi`\nE-invoicing via mojeRaÄun\nThe localizationâs core modules are installed automatically with the localization. The rest can\nbe manually installed .\nDocumentation on e-invoicingâs legality and compliance in Croatia\n\n## E-invoicing via mojeRaÄun\n\nOdoo can connect to the national eRaÄun platform via the third-party provider mojeRaÄun to send and receive e-invoices.\nThe Croatia - e-invoicing ( l10n_hr_edi ) module must be installed to be able to configure e-invoicing via mojeRaÄun.\n`l10n_hr_edi`\nTo use this integration, an account and invoice package from mojeRaÄun are needed. The rest of this\ndocumentation assumes that one has already been obtained.\n\n### Configuration\n\nFollow these steps to set up e-invoicing via mojeRaÄun in Odoo.\n\n#### Company configuration\n\nGo to Accounting ⣠Configuration ⣠Settings and scroll down to MojEracun E-invoicing . Fill the Username field with the numeric username and\nthe Password field with the password provided by mojeRaÄun.\nAlternatively, the Username can be set to the e-mail address used to register on\nmojeRaÄun.\nEnsure that the Company ID (OIB or GIN) and Company Business Unit (PJ) fields are correctly filled in, matching the data used to register on mojeRaÄun.\nThe Business Software (ERP) ID should be set to Saodoo-001 .\n`Saodoo-001`\nOptionally, specify the Incoming E-Invoices Journal where invoices received via MER should be created. If left unset, the default purchase journal will be used.\nSet the MojEracun Operating Mode to Production to send and receive invoices\non the production network.\nUsing the Test mode connects to a MER demo server that requires separate credentials\nand is not relevant for most end users.\nThen click Activate to activate the connection with mojeRaÄun.\n\n#### Journal configuration\n\nGo to Accounting ⣠Configuration ⣠Journal and click the Customer\nInvoices journal to open its configuration.\nIn the Fiscalization (HR) section, complete the Business premises label , Issuing device label , Business premises label (refund approval) , and Issuing device label (refund approval) fields.\nThe Business premises label and Issuing device label are used to generate\ninvoice names. The Business premises label (refund approval) and Issuing\ndevice label (refund approval) fields are used to generate credit note names.\n\n### Sending an e-invoice\n\nTo send an e-invoice, follow the standard e-invoicing workflow. Be sure to select by MojEracun when sending the e-invoice.\nThe following invoice fields must be set before sending to mojeRaÄun:\n- Invoice sequence: Ensure the invoice sequence is in the format {Journal code}-{Year}-{Sequence}/{Business premises label}/{Issuing device label} . If the\njournal is configured as instructed above ,\nOdoo automatically formats invoice names to fit this format.\nInvoice sequence: Ensure the invoice sequence is in the format {Journal code}-{Year}-{Sequence}/{Business premises label}/{Issuing device label} . If the\njournal is configured as instructed above ,\nOdoo automatically formats invoice names to fit this format.\n`{Journalcode}-{Year}-{Sequence}/{Businesspremiseslabel}/{Issuingdevicelabel}`\n- KPD category : Set the KPD category on every invoice line. Tip The KPD category can also be set on the product record, which will then automatically apply\nit on invoice lines when the product is used. To do so, go to Accounting ->\nCustomers -> Products , click the product, and set the KPD category .\nKPD category : Set the KPD category on every invoice line.\nThe KPD category can also be set on the product record, which will then automatically apply\nit on invoice lines when the product is used. To do so, go to Accounting ->\nCustomers -> Products , click the product, and set the KPD category .\nIn the Croatia: Fiscalization 2.0 tab of invoices:\n- Business process type : Set the Business Process Type as appropriate. If P99: Customer-defined process is selected, complete the Custom Process\nName field.\nBusiness process type : Set the Business Process Type as appropriate. If P99: Customer-defined process is selected, complete the Custom Process\nName field.\n- Fiscal user and Operator OIB : The Croatian government expects the user who\nsends the invoice to be identified via their personal OIB number. The fiscal user defaults to\nthe user who confirms the invoice and is identified under Fiscal User . The userâs OIB can be set on the userâs contact record. To do so, follow these steps: Go to Settings ⣠Users & Companies ⣠Users and click the user in the\nlist view. Activate the developer mode . Click the Related Partner link to access the userâs Contact form. In the Sales & Purchase tab, set the Personal OIB in the Misc section.\nFiscal user and Operator OIB : The Croatian government expects the user who\nsends the invoice to be identified via their personal OIB number. The fiscal user defaults to\nthe user who confirms the invoice and is identified under Fiscal User .\nThe userâs OIB can be set on the userâs contact record. To do so, follow these steps:\n- Go to Settings ⣠Users & Companies ⣠Users and click the user in the\nlist view.\nGo to Settings ⣠Users & Companies ⣠Users and click the user in the\nlist view.\n- Activate the developer mode .\nActivate the developer mode .\n- Click the Related Partner link to access the userâs Contact form.\nClick the Related Partner link to access the userâs Contact form.\n- In the Sales & Purchase tab, set the Personal OIB in the Misc section.\nIn the Sales & Purchase tab, set the Personal OIB in the Misc section.\nOnce an invoice has been sent:\n- Invoice fiscalization information: The Fiscalization status , Fiscalization request ID , Payment amount already reported to Tax\nAuthority , and MojeRaÄun document ElectronicId can be viewed in the Croatia: Fiscalization 2.0 tab.\nInvoice fiscalization information: The Fiscalization status , Fiscalization request ID , Payment amount already reported to Tax\nAuthority , and MojeRaÄun document ElectronicId can be viewed in the Croatia: Fiscalization 2.0 tab.\n- Fetching status updates: Odoo periodically checks for any updates to the invoiceâs status\n(e.g., rejection by MER , the eRaÄun system, or the recipient). To manually check for updates, go\nto the Accounting dashboard, and in the Customer Invoices (sales)\njournal, click the MER: Fetch status button.\nFetching status updates: Odoo periodically checks for any updates to the invoiceâs status\n(e.g., rejection by MER , the eRaÄun system, or the recipient). To manually check for updates, go\nto the Accounting dashboard, and in the Customer Invoices (sales)\njournal, click the MER: Fetch status button.\n- Reporting a payment: The Croatian government expects to be notified once payment has been\nreceived for an invoice. To send this notification, click the MER: Report payments button on the invoice form view, which appears if the invoice has unreported payments. Tip To report multiple payment notifications at once, select multiple invoices from the invoice list\nview and click the MER: Report payments button.\nReporting a payment: The Croatian government expects to be notified once payment has been\nreceived for an invoice. To send this notification, click the MER: Report payments button on the invoice form view, which appears if the invoice has unreported payments.\nTo report multiple payment notifications at once, select multiple invoices from the invoice list\nview and click the MER: Report payments button.\n\n### Receiving e-invoices\n\nOdoo periodically checks for new invoices received via mojeRaÄun. New invoices received via\nmojeRaÄun appear in the Incoming E-Invoices Journal specified in the settings .\n\n#### Rejecting an invoice\n\nTo reject an incoming invoice, click the MER: Reject eRacun button on the invoice form\nview. This notifies the eRaÄun system and the sender that the invoice is rejected.", "headings": ["Modules", "E-invoicing via mojeRaÄun", "Configuration", "Sending an e-invoice", "Receiving e-invoices"], "doc_id": "7178564f28bbdc1b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/denmark.html", "title": "Denmark", "module": "invoicing", "section": "Denmark", "text": "# Denmark\n\n## Compliance with Danish bookkeeping requirements: data retention and integrity\n\nThis page outlines how Odoo complies with the Danish Bookkeeping Act,\nspecifically regarding the storage and integrity of financial transactions and receipts.\nOdoo recognizes the importance of adhering to Danish regulations and has implemented robust\nmeasures to ensure clientsâ data is secure and compliant.\nOdooâs registration as a digital bookkeeping system has been confirmed by the Danish Business\nAuthority under registration numbers fob585505 and fob441967 . Customers must meet certain\nconditions to benefit from it, as outlined below.\n`fob585505`\n`fob441967`\n\n### Key requirements of the Danish Bookkeeping Act\n\nThe Danish Bookkeeping Act (DBA) outlines the requirements for digital bookkeping systems :\n- Retain transactional data and receipts: Store all recorded transactions and receipts\ncovered by § 3 for a minimum of five years from the end of the financial year to which they pertain.\nRetain transactional data and receipts: Store all recorded transactions and receipts\ncovered by § 3 for a minimum of five years from the end of the financial year to which they pertain.\n- Ensure data integrity: Prevent the customer from changing, backdating, or deleting recorded transactions.\nEnsure data integrity: Prevent the customer from changing, backdating, or deleting recorded transactions.\n- Maintain data accessibility: Store all recorded transactions in a structured and machine-readable format\nfor the required five-year period, regardless of customer relationship status, bankruptcy, or dissolution.\nMaintain data accessibility: Store all recorded transactions in a structured and machine-readable format\nfor the required five-year period, regardless of customer relationship status, bankruptcy, or dissolution.\n- Provide decryption capabilities: Ensure that encrypted bookkeeping data and receipts can be decrypted\ninto a structured and readable format.\nProvide decryption capabilities: Ensure that encrypted bookkeeping data and receipts can be decrypted\ninto a structured and readable format.\n\n### Odoo Compliance\n\nOdooâs registration as digital standard bookkeeping systems with the Danish Business Authority\nconfirms that Odoo meets the applicable criteria for digital bookkeeping systems in Denmark,\nin accordance with the requirements of the DBA .\nHowever, to benefit from all the required guarantees for digital bookkeeping systems in Denmark,\ncustomers must meet a few conditions.\n\n#### Conditions for full DBA compliance\n\n- The customer uses Odoo Accounting on the Odoo SaaS platform (Odoo Online);\nThe customer uses Odoo Accounting on the Odoo SaaS platform (Odoo Online);\n- The customer has an active Odoo subscription (e.g., Standard or Custom Plan), or their database is\nmanaged by an officially registered Odoo Accounting Firm ;\nThe customer has an active Odoo subscription (e.g., Standard or Custom Plan), or their database is\nmanaged by an officially registered Odoo Accounting Firm ;\n- The customer refrains from customizations or actions intended to undermine the systemâs immutability,\ntraceability, or security controls.\nThe customer refrains from customizations or actions intended to undermine the systemâs immutability,\ntraceability, or security controls.\nCustomers using Odoo products outside these conditions are responsible for ensuring their own\ncompliance with the DBA.\nWhen the above conditions are met, the requirements of the DBA are fulfilled through features and\nprocesses described in the following sections.\n\n### Immutable transaction records\n\n- Once transactions are recorded, they cannot be deleted through the user interface.\nOnce transactions are recorded, they cannot be deleted through the user interface.\n- All modifications are logged, providing a complete audit trail.\nAll modifications are logged, providing a complete audit trail.\n- While historically dated entries can be made, Odoo records the creation date and time of the entry.\nWhile historically dated entries can be made, Odoo records the creation date and time of the entry.\n\n### Secure document storage\n\n- Receipts and digital vouchers are stored as attachments and integrated into the database, ensuring they\nare included in backups.\nReceipts and digital vouchers are stored as attachments and integrated into the database, ensuring they\nare included in backups.\n- Posted documents cannot be deleted.\nPosted documents cannot be deleted.\n- We fully support the storage of mandatory digital vouchers as defined by Danish regulations.\nWe fully support the storage of mandatory digital vouchers as defined by Danish regulations.\n\n### Continuous data availability\n\n- Clients with active subscriptions can access all transactions and digital vouchers through Odoo.\nClients with active subscriptions can access all transactions and digital vouchers through Odoo.\n- Regardless of customer relations, bankruptcy, or dissolution, Odoo can provide access to transaction\nand digital voucher details to former clients for six years (see Data lifecycle management ).\nRegardless of customer relations, bankruptcy, or dissolution, Odoo can provide access to transaction\nand digital voucher details to former clients for six years (see Data lifecycle management ).\n\n### Automated data export and secure storage\n\n- Odoo Accounting implements no automatic deletion or archival of recorded transactions, so if a customer has\nbeen recording transactions for six years, the six years of history are preserved in the Odoo Accounting database.\nOdoo Accounting implements no automatic deletion or archival of recorded transactions, so if a customer has\nbeen recording transactions for six years, the six years of history are preserved in the Odoo Accounting database.\n- As described in the Odoo Cloud Hosting SLA and Odoo Privacy Policy , the Odoo Cloud relies on immutable daily snapshot\nbackups, which cannot be individually altered or deleted, even at the customerâs request, ensuring their integrity.\nAs described in the Odoo Cloud Hosting SLA and Odoo Privacy Policy , the Odoo Cloud relies on immutable daily snapshot\nbackups, which cannot be individually altered or deleted, even at the customerâs request, ensuring their integrity.\n- All documents and receipts stored in a database backup are available as a standard ZIP archive accompanying\nthe SQL dump.\nAll documents and receipts stored in a database backup are available as a standard ZIP archive accompanying\nthe SQL dump.\n\n### Data lifecycle management\n\n- Odoo database backups are available in standard SQL dump formats at all times and include all recorded\ntransactions.\nOdoo database backups are available in standard SQL dump formats at all times and include all recorded\ntransactions.\n- The Odoo Cloud Hosting SLA guarantees three months of backup history to all\nactive customers. As a special guarantee for Danish customers subject to the DBA and meeting the conditions\nhighlighted above the last Odoo Cloud backup retention gets increased to six years as soon as they decide to\nterminate their Odoo Cloud subscription, in order to comply with the requirements of Annex 1, 4 of Executive Order 97.\nThe Odoo Cloud Hosting SLA guarantees three months of backup history to all\nactive customers. As a special guarantee for Danish customers subject to the DBA and meeting the conditions\nhighlighted above the last Odoo Cloud backup retention gets increased to six years as soon as they decide to\nterminate their Odoo Cloud subscription, in order to comply with the requirements of Annex 1, 4 of Executive Order 97.\n\n### Decryption\n\nOdoo Accounting customer data on the Odoo Cloud is always stored in encrypted form (encryption at rest at\nstorage level). When backups are retrieved, they are automatically decrypted and provided in decrypted form in\nstandard formats for the user: SQL dumps + ZIP archive of all attached documents (file store).", "headings": ["Compliance with Danish bookkeeping requirements: data retention and integrity", "Key requirements of the Danish Bookkeeping Act", "Odoo Compliance", "Immutable transaction records", "Secure document storage", "Continuous data availability", "Automated data export and secure storage", "Data lifecycle management", "Decryption"], "doc_id": "73554ac53ceaca4e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/ecuador.html", "title": "Ecuador", "module": "invoicing", "section": "Ecuador", "text": "# Ecuador\n\nWith the Ecuadorian localization, electronic documents can be generated using XML, fiscal\nfolio, electronic signature, and direct connection to tax authority SRI.\nThe supported documents are invoices, credit notes, debit notes, purchase liquidations, and\nwithholdings.\nThe localization also includes automation to easily predict the withholding tax to be applied to\neach purchase invoice.\n- App Tour - Localización de Ecuador\nApp Tour - Localización de Ecuador\n- Smart Tutorial - Localización de Ecuador\nSmart Tutorial - Localización de Ecuador\n- Documentation on e-invoicingâs legality and compliance in Ecuador\nDocumentation on e-invoicingâs legality and compliance in Ecuador\n- SRI : Servicio de Rentas Internas , the government organization that enforces the payment\nof taxes in Ecuador.\nSRI : Servicio de Rentas Internas , the government organization that enforces the payment\nof taxes in Ecuador.\n- SRI certificate : Document or digital credential issued by the SRI that is crucial for\ncompliance with Ecuadorian tax laws.\nSRI certificate : Document or digital credential issued by the SRI that is crucial for\ncompliance with Ecuadorian tax laws.\n- EDI : Electronic Data Interchange , which refers to the electronic transmission of\ndocuments.\nEDI : Electronic Data Interchange , which refers to the electronic transmission of\ndocuments.\n- RIMPE : Regimen Simplificado para Emprendedores y Negocios , the type of taxpayer qualified\nfor SRI.\nRIMPE : Regimen Simplificado para Emprendedores y Negocios , the type of taxpayer qualified\nfor SRI.\n\n## Modules\n\nInstall the following modules to get all the features of\nthe Ecuadorian localization:\nEcuadorian - Accounting\n`l10n_ec`\nThe default fiscal localization package adds accounting\ncharacteristics for the Ecuadorian localization, which represent the minimum configuration\nrequired for a company to operate in Ecuador according to the guidelines set by the SRI . The moduleâs installation automatically loads:\na chart of accounts, taxes, document types, and tax support types. Additionally, the\ngeneration of forms 103 and 104 is automatic.\nEcuadorian Accounting EDI\n`l10n_ec_edi`\nIncludes all the technical and functional requirements to generate and validate Electronics Documents based on\nthe technical documentation published by the SRI. The authorized documents are: Invoices,\nCredit Notes, Debit Notes, Withholdings, and Purchase liquidations.\nEcuadorian Accounting Reports\n`l10n_ec_reports`\nIncludes all the technical and functional requirements to generate forms 103 and 104.\n`l10n_ec_reports_ats`\nIncludes all the technical and functional requirements to generate the ATS report XML file\nready to be uploaded to the DIMM Formularios .\n`l10n_ec_website_sale`\nIncludes all the technical and functional requirements to generate automatic electronic\ninvoices from a Website sale.\nEcuadorian Point of Sale\n`l10n_ec_edi_pos`\nIncludes all the technical and functional requirements to generate automatic electronic\ninvoices from a POS sale.\nEcuadorian Delivery Guide\n`l10n_ec_edi_stock`\nIncludes all the technical and functional requirements to generate electronic delivery\nguides .\nIn some cases, such as when upgrading to a version with additional modules, those modules may not\nbe installed automatically. Any missing modules can be manually installed .\nPayroll localizations are documented separately.\n\n## Localization overview\n\nThe Ecuadorian localization package ensures compliance with Ecuadorian fiscal and accounting\nregulations. It includes tools for managing taxes, fiscal positions, reporting, and a predefined\nchart of accounts tailored to Ecuadorâs standards.\nThe Ecuadorian localization package provides the following key features to ensure compliance with\nlocal fiscal and accounting regulations:\n- Chart of accounts : a predefined structure aligned with the latest\nstandards of Ecuadorâs Superintendency of Companies , organized into multiple categories and\nfully compatible with NIIF accounting\nChart of accounts : a predefined structure aligned with the latest\nstandards of Ecuadorâs Superintendency of Companies , organized into multiple categories and\nfully compatible with NIIF accounting\n- Products\n- Taxes : pre-configured tax rates, including standard VAT,\nzero-rated, and exempt options\nTaxes : pre-configured tax rates, including standard VAT,\nzero-rated, and exempt options\n- Fiscal positions (tax and account mapping) : automated tax adjustments based on customer or\nsupplier registration status\nFiscal positions (tax and account mapping) : automated tax adjustments based on customer or\nsupplier registration status\n- Document types : classification of transactions like customer invoices and vendor bills using government-defined document types set by the SRI\n(Ecuadorâs tax authority)\nDocument types : classification of transactions like customer invoices and vendor bills using government-defined document types set by the SRI\n(Ecuadorâs tax authority)\n- Company and contacts\n- Electronic documents\n- VAT withholding\n- Printer points\n- Withholding\n- Reporting\n\n### Products\n\nIf products have any withholding taxes , they must be\nconfigured on the product form. To do so, go to Accounting ⣠Vendors â£\nProducts . On the General Information tab, specify both Purchase Taxes and Profit Withhold .\n\n### Taxes\n\nTo manage taxes, navigate to Accounting ⣠Configuration ⣠Taxes . Depending on\nthe tax type, the following options may be required for additional configuration:\n- Tax Name : Follows a specific format depending on the tax type: For IVA (Value-Added Tax) : IVA [percent] (104, [form code] [tax support code] [tax support short name]) Example: IVA 12% (104, RUC [tax support code] IVA) For Income Tax Withholding codes : Code ATS [percent of withhold] [withhold name] Example: Code ATS 10% Retención a la Fuente\nTax Name : Follows a specific format depending on the tax type:\n- For IVA (Value-Added Tax) : IVA [percent] (104, [form code] [tax support code] [tax support short name]) Example: IVA 12% (104, RUC [tax support code] IVA)\n`IVA[percent](104,[formcode][taxsupportcode][taxsupportshortname])`\n`IVA12%(104,RUC[taxsupportcode]IVA)`\n- For Income Tax Withholding codes : Code ATS [percent of withhold] [withhold name] Example: Code ATS 10% Retención a la Fuente\n`CodeATS[percentofwithhold][withholdname]`\n`CodeATS10%RetenciónalaFuente`\n- Tax Support : Configure only for the IVA tax. This option is used to register purchase\nwithholdings.\nTax Support : Configure only for the IVA tax. This option is used to register purchase\nwithholdings.\n- Code ATS : Configure only for income tax withholding codes, as it is necessary to\nregister a withholding.\nCode ATS : Configure only for income tax withholding codes, as it is necessary to\nregister a withholding.\nIn the Definition tab:\n- Tax Grids : Configure the code of a 104 form if it is an IVA tax, and the code of a\n103 form if it is an income tax withholding code.\nTax Grids : Configure the code of a 104 form if it is an IVA tax, and the code of a\n103 form if it is an income tax withholding code.\n\n### Document types\n\nTo access or configure document types, go to Accounting ⣠Configuration â£\nDocument Types . Each document type can have a unique sequence per journal where it is assigned. As\npart of the localization, the document type includes the country where the document is applicable;\nalso, the data is created automatically when the localization module is installed. The information\nrequired for the document types is included by default and doesnât need to be changed.\n\n### Company and contact\n\nConfigure a company or individual contact\nThe following fields should be completed for localization purposes on the contact form:\n- Name : Enter the company or individualâs name.\nName : Enter the company or individualâs name.\n- Address : The Street sub-field is required to confirm electronic invoices.\nAddress : The Street sub-field is required to confirm electronic invoices.\n- Identification Number : For a company, enter the Ruc . For individuals,\nenter the Cédula or Passport number.\nIdentification Number : For a company, enter the Ruc . For individuals,\nenter the Cédula or Passport number.\n- SRI Taxpayer Type : Select the contactâs SRI taxpayer type.\nSRI Taxpayer Type : Select the contactâs SRI taxpayer type.\n- Phone : Enter the company or individualâs phone number.\nPhone : Enter the company or individualâs phone number.\n- Email : Enter the company or individualâs email. This email is used to send electronic\ndocuments, such as invoices.\nEmail : Enter the company or individualâs email. This email is used to send electronic\ndocuments, such as invoices.\nThe SRI Taxpayer Type indicated on the contact form determines which VAT and\nprofit withholding taxes apply when using this contact\non a vendor bill.\n\n### Electronic documents\n\nTo upload information for electronic documents, go to Accounting ⣠Configuration\n⣠Settings , and scroll to the Ecuadorian Localization section.\nConfigure the following information, starting with the Electronic Invoicing section:\n- Company legal name\n- Regime : Select whether the company is in the Regular Regime (without\nadditional messages in the RIDE) or is qualified as in the RIMPE Regime .\nRegime : Select whether the company is in the Regular Regime (without\nadditional messages in the RIDE) or is qualified as in the RIMPE Regime .\n- Special Taxpayer Number : If the company is qualified as a special taxpayer, complete\nthis field with the companyâs corresponding tax contributor number.\nSpecial Taxpayer Number : If the company is qualified as a special taxpayer, complete\nthis field with the companyâs corresponding tax contributor number.\n- Forced to Keep Accounting Books : Enable this option if needed.\nForced to Keep Accounting Books : Enable this option if needed.\n- Consumables : Enter the code of the default withholding tax used when purchasing goods.\nConsumables : Enter the code of the default withholding tax used when purchasing goods.\n- Services : Enter the code of the default withholding tax used when purchasing services.\nServices : Enter the code of the default withholding tax used when purchasing services.\n- Credit Card : Enter the code of the default withholding tax used when purchasing with\ncredit cards.\nCredit Card : Enter the code of the default withholding tax used when purchasing with\ncredit cards.\n- Withhold Agent Number : Enter the companyâs withholding agent resolution number, if\napplicable.\nWithhold Agent Number : Enter the companyâs withholding agent resolution number, if\napplicable.\nSRI Connection section:\n- Certificate file for SRI : Select the companyâs SRI certificate . Click SRI Certificates to upload one, if necessary.\nCertificate file for SRI : Select the companyâs SRI certificate . Click SRI Certificates to upload one, if necessary.\n- Use production servers : Enable this option if electronic documents are used in the\nproduction environment; leave it disabled if the testing environment is used instead.\nUse production servers : Enable this option if electronic documents are used in the\nproduction environment; leave it disabled if the testing environment is used instead.\nWithholding accounts section:\n- Sales Tax Base Account : Enter the companyâs sales tax base account.\nSales Tax Base Account : Enter the companyâs sales tax base account.\n- Purchase Tax Base Account : Enter the companyâs sales tax purchase account.\nPurchase Tax Base Account : Enter the companyâs sales tax purchase account.\nWhen using the testing environment, EDI data is sent to test servers.\n- The values entered in the Consumables and Services withholding fields\nare used as default values for domestic only when no withholdings are set up on the SRI\nTaxpayer Type .\nThe values entered in the Consumables and Services withholding fields\nare used as default values for domestic only when no withholdings are set up on the SRI\nTaxpayer Type .\n- The entered Credit Card withholding value is always applied when a credit or debit\ncard SRI payment method is used.\nThe entered Credit Card withholding value is always applied when a credit or debit\ncard SRI payment method is used.\n\n### VAT withholding\n\nThis configuration applies only if the SRI recognizes the company as a withholding agent. If not,\nskip this step.\nTo configure a VAT withholding, go to Accounting ⣠Configuration ⣠Taxpayer Type\nSRI . Then, configure the Name of the taxpayer type, the Goods VAT\nWithholding , and the Services VAT Withholding .\nIf the Taxpayer Type is Rimpe , configure the Profit Withhold percentage.\n\n### Printer points\n\nPrinter points need to be configured for each type of electronic document used, such as customer\ninvoices, credit notes, and debit notes.\nTo configure printer points, navigate to Accounting ⣠Configuration â£\nJournals . For each electronic document, click New , and enter the following information\non the journal form:\n- Journal Name : Enter in this format: [Emission Entity]-[Emission Point] [Document Type] , e.g., 001-001 Sales Documents .\nJournal Name : Enter in this format: [Emission Entity]-[Emission Point] [Document Type] , e.g., 001-001 Sales Documents .\n`[EmissionEntity]-[EmissionPoint][DocumentType]`\n`001-001SalesDocuments`\n- Type : Refers to the journal type; select Sales .\nType : Refers to the journal type; select Sales .\nOnce the Type is selected, complete the following fields:\n- Use Documents? : Enable this option if legal invoicing (invoices, debit/credit notes)\nis used, as this is the standard configuration. If not, select the option to record accounting\nentries unrelated to legal invoicing documents, such as receipts, tax payments, or journal\nentries.\nUse Documents? : Enable this option if legal invoicing (invoices, debit/credit notes)\nis used, as this is the standard configuration. If not, select the option to record accounting\nentries unrelated to legal invoicing documents, such as receipts, tax payments, or journal\nentries.\n- Emission Entity : Enter the facility number.\nEmission Entity : Enter the facility number.\n- Emission Point : Enter the printer point.\nEmission Point : Enter the printer point.\n- Emission address : Enter the address of the facility.\nEmission address : Enter the address of the facility.\nIn the Journal Entries tab, under the Accounting information section, fill\nin the following fields:\n- Default Income Account : Enter the default income account.\nDefault Income Account : Enter the default income account.\n- Dedicated Credit Note Sequence : Enable this option if credit notes should be\ngenerated from this printer point (i.e., the journal).\nDedicated Credit Note Sequence : Enable this option if credit notes should be\ngenerated from this printer point (i.e., the journal).\n- Dedicated Debit Note Sequence : Enable this option if debit notes should be\ngenerated from this printer point (i.e., the journal).\nDedicated Debit Note Sequence : Enable this option if debit notes should be\ngenerated from this printer point (i.e., the journal).\n- Short Code : Enter a unique 5-digit code for the accounting entry sequence (e.g.,\nVT001).\nShort Code : Enter a unique 5-digit code for the accounting entry sequence (e.g.,\nVT001).\nCustomer invoices, credit notes, and debit notes must use the same journal as the Emission Point , whereas the Entity Point should be unique per journal.\nFinally, in the Advanced Settings tab, check the Electronic invoicing checkbox to enable sending XML/EDI invoices.\nElectronic invoicing (EDI)\n\n### Withholding\n\nTo define a withholding journal , go to Accounting ⣠Configuration ⣠Journals .\nFor each withholding journal, click New , and enter the following information:\n- Journal Name : Enter this format: [Emission Entity]-[Emission Point] [Document Type] ,\ne.g.,`001-001 Withholding`.\nJournal Name : Enter this format: [Emission Entity]-[Emission Point] [Document Type] ,\ne.g.,`001-001 Withholding`.\n`[EmissionEntity]-[EmissionPoint][DocumentType]`\n- Type : Refers to the journal type. Select Miscellaneous .\nType : Refers to the journal type. Select Miscellaneous .\n- Withhold Type : Select Purchase Withhold .\nWithhold Type : Select Purchase Withhold .\nOnce the Type and Withhold Type are selected, complete the following fields:\n- Emission Entity : Enter the facility number.\nEmission Entity : Enter the facility number.\n- Emission Point : Enter the printer point.\nEmission Point : Enter the printer point.\n- Emission address : Enter the address of the facility.\nEmission address : Enter the address of the facility.\nIn the Journal Entries tab, under the Accounting information section, fill\nin the following fields:\n- Default Account : Configure the default income account.\nDefault Account : Configure the default income account.\n- Short Code : Enter a unique 5-digit code for the accounting entry sequence (e.g., WT001 ).\nShort Code : Enter a unique 5-digit code for the accounting entry sequence (e.g., WT001 ).\n`WT001`\nFinally, in the Advanced Settings tab, check the Electronic invoicing checkbox to enable sending XML/EDI invoices.\n\n### Reporting\n\nEcuadorian companies submit fiscal reports to the SRI, with Odoo supporting two main ones: reports\n103 and 104 .\nTo get these reports, go to Accounting ⣠Reporting ⣠Tax Return . Click the Report: icon and select 103 (EC) or 104 (EC) .\n`103(EC)`\n`104(EC)`\n\n#### Report 103\n\nThis report details income tax withholdings in a given period and can be reported monthly or\nsemi-annually. It includes information about base, tax amounts, and tax codes and can be used for\nSRI reporting.\n\n#### Report 104\n\nThis report details VAT tax and VAT withholding for a given period and can be generated monthly or\nsemi-annually. It includes information about base, tax amounts, and tax codes and can be used for\nSRI reporting.\n\n#### ATS report\n\nTo enable downloading the ATS ATS report in XML format, install the ATS Report ( l10n_ec_reports_ats ) module.\n`l10n_ec_reports_ats`\nThe Ecuadorian ATS Report module depends on the previous installation of the Accounting app\nand the Ecuadorian EDI module .\nTo issue electronic documents, ensure the company is configured as explained in the electronic invoice section. In the ATS , every document generated in Odoo, such as invoices , vendor bills , sales and purchases withholdings , credit notes , and debit notes ,\nis included.\nWhen generating a vendor bill , register the authorization\nnumber from the vendorâs invoice. To do so, go to Accounting ⣠Vendors ⣠Bills and select the bill. Then, enter the number from the vendorâs invoice in the Authorization Number field.\nWhen creating a credit or debit note manually or through an import, link it to the sales\ninvoice it modifies.\nSome information is required to the documents before downloading the ATS file. For example, add the Authorization Number and the SRI\nPayment Method to documents when needed.\nTo generate the ATS report, go to Accounting ⣠Reporting ⣠Tax Return . Choose a period for the desired ATS report, then click ATS . Then, upload the downloaded\nXML file to DIMM Formularios .\nWhen downloading the ATS report, Odoo generates a\nwarning pop-up alerting the user if a document(s) has missing or incorrect data. Nevertheless,\nthe XML file can still be downloaded.\n\n## Accounting\n\n### Sales documents\n\n#### Customer invoice\n\nCustomer invoices, electronic documents created from sales orders or manually , must contain the following data and, once validated,\nare sent to the SRI:\n- Journal : Select the option matching the customer invoiceâs printer point.\nJournal : Select the option matching the customer invoiceâs printer point.\n- Document Type : Type the document type in this format: (01) Invoice .\nDocument Type : Type the document type in this format: (01) Invoice .\n`(01)Invoice`\n- Payment Method (SRI) : Select how the invoice will be paid.\nPayment Method (SRI) : Select how the invoice will be paid.\n\n#### Customer credit note\n\nCustomer credit notes are electronic\ndocuments sent to the SRI once validated. Credit notes can only be registered from a validated (posted)\ninvoice.\nKeep the Document Type on (04) Credit Note in the Credit note window.\nFilling out a credit note follows the same process as completing an invoice .\nWhen creating the first credit note, select Reverse and assign the first credit note\nnumber or, by default, Odoo assigns NotCr 001-001-000000001 as the first credit note number.\n`NotCr001-001-000000001`\n\n#### Customer debit note\n\nCustomer debit notes are electronic documents sent\nto the SRI once validated. They can only be registered from a validated (posted) invoice.\nIn the Use Specific Journal of the Create Debit Note window, select the\nprinter point for the credit note or leave it empty to use the same journal as the original\ninvoice.\n\n#### Customer withholding\n\nCustomer withholdings are non-electronic documents issued by the client to apply a\nwithholding to a sale. They can only be registered from a validated (posted) invoice.\nOn the invoice, click Add Withhold and complete the following information in the Customer withholding window:\n- Document Number : Enter the withholding number.\nDocument Number : Enter the withholding number.\n- Withhold Lines : Select the taxes that the customer is withholding.\nWithhold Lines : Select the taxes that the customer is withholding.\nBefore validating the withholding, review that the amounts for each tax are the same as the original\ndocument.\n\n### Purchase documents\n\n#### Vendor bill\n\nVendor bills , non-electronic documents created from purchase\norders or manually, require a specific vendor bill journal .\nUse the following configuration to set up the vendor bills journal:\n- Select Purchase as the Type .\nSelect Purchase as the Type .\n- Do not tick the Purchase Liquidations checkbox.\nDo not tick the Purchase Liquidations checkbox.\n- Add a Default Expense Account .\nAdd a Default Expense Account .\nTo configure a vendor bill, make sure also to complete the following Ecuador-specific fields:\n- Document Type : Enter this document type: (01) Invoice .\nDocument Type : Enter this document type: (01) Invoice .\n`(01)Invoice`\n- Document number : Enter the document number.\nDocument number : Enter the document number.\n- Payment Method (SRI) : Select how to pay the vendor bill.\nPayment Method (SRI) : Select how to pay the vendor bill.\nWhen creating the purchase withholding, verify that the bases (base amounts) are correct. If the\namount of the tax in the Vendor bill needs to be edited, click Edit . Or,\nfrom the Journal Items tab, click Edit and set the adjustment as desired.\n\n#### Purchase liquidation\n\nPurchase liquidations are electronic documents sent to the SRI once theyâre validated. Companies\nissue them when they make a purchase, but the vendor does not provide an invoice due to one or more\nof the following reasons:\n- Non-residents of Ecuador provided services.\nNon-residents of Ecuador provided services.\n- Foreign companies provided services without residency or facility in Ecuador.\nForeign companies provided services without residency or facility in Ecuador.\n- Purchase of goods or services from natural persons not registered with a RUC, who cannot issue\nsales receipts or customer invoices.\nPurchase of goods or services from natural persons not registered with a RUC, who cannot issue\nsales receipts or customer invoices.\n- Reimbursement for purchasing goods or services must be given to employees in a dependency\nrelationship (full-time employee).\nReimbursement for purchasing goods or services must be given to employees in a dependency\nrelationship (full-time employee).\n- Members of collegiate bodies have provided services in the exercise of their function.\nMembers of collegiate bodies have provided services in the exercise of their function.\nIn these cases, a purchase liquidation journal must be created.\nTo create a purchase liquidations journal, enter the following information:\n- Journal Name : Enter this format: [Emission Entity]-[Emission Point] [Document Type] ,\ne.g., 001-001 Purchase Liquidations .\nJournal Name : Enter this format: [Emission Entity]-[Emission Point] [Document Type] ,\ne.g., 001-001 Purchase Liquidations .\n`[EmissionEntity]-[EmissionPoint][DocumentType]`\n`001-001PurchaseLiquidations`\n- Type : Refers to the journal type. Select Purchase .\nType : Refers to the journal type. Select Purchase .\nOnce the Type is selected, complete the following fields:\n- Purchase Liquidations : Tick this checkbox to enable purchase liquidations.\nPurchase Liquidations : Tick this checkbox to enable purchase liquidations.\n- Use Documents? : Enable this option if legal invoicing (invoices, debit/credit notes)\nis used, as this is the standard configuration. If not, select the option to record accounting\nentries unrelated to legal invoicing documents, such as receipts, tax payments, or journal\nentries.\nUse Documents? : Enable this option if legal invoicing (invoices, debit/credit notes)\nis used, as this is the standard configuration. If not, select the option to record accounting\nentries unrelated to legal invoicing documents, such as receipts, tax payments, or journal\nentries.\n- Emission Entity : Enter the facility number.\nEmission Entity : Enter the facility number.\n- Emission Point : Enter the printer point.\nEmission Point : Enter the printer point.\n- Emission address : Enter the address of the facility.\nEmission address : Enter the address of the facility.\n- Short Code : Enter a unique 5-digit code for the accounting entry sequence (e.g., PT001 ).\nShort Code : Enter a unique 5-digit code for the accounting entry sequence (e.g., PT001 ).\n`PT001`\nFinally, in the Advanced Settings tab, check the Electronic invoicing checkbox to enable sending XML/EDI invoices.\nPurchase liquidations, created from purchase orders or manually from vendor bills , must contain\nthe following data:\n- Vendor : Enter the vendorâs information.\nVendor : Enter the vendorâs information.\n- Journal : Select the Purchase Liquidation journal with the correct printer\npoint.\nJournal : Select the Purchase Liquidation journal with the correct printer\npoint.\n- Document Type : Enter this document type: (03) Purchase Liquidation .\nDocument Type : Enter this document type: (03) Purchase Liquidation .\n`(03)PurchaseLiquidation`\n- Document number : Enter the document number (sequence). This must only be entered once,\nand the sequence will automatically be assigned to the subsequent documents.\nDocument number : Enter the document number (sequence). This must only be entered once,\nand the sequence will automatically be assigned to the subsequent documents.\n- Payment Method (SRI) : Select how to pay the invoice.\nPayment Method (SRI) : Select how to pay the invoice.\n- Products : Specify the product with the correct taxes.\nProducts : Specify the product with the correct taxes.\nThen, validate the Purchase Liquidation .\n\n#### Purchase withholding\n\nPurchase withholdings are electronic documents sent to the SRI once theyâre validated. They can\nonly be registered from a validated (posted) invoice.\nOn the invoice, click Add Withhold and complete the following fields in the Withhold window:\n- Document number : Enter the document number (sequence). This must only be entered once,\nand the sequence will automatically be assigned for the next documents.\nDocument number : Enter the document number (sequence). This must only be entered once,\nand the sequence will automatically be assigned for the next documents.\n- Withhold lines : The taxes appear automatically according to the configuration of\nproducts and vendors. Review if the taxes and tax support are correct. If not, edit and select\nthe correct taxes and tax support.\nWithhold lines : The taxes appear automatically according to the configuration of\nproducts and vendors. Review if the taxes and tax support are correct. If not, edit and select\nthe correct taxes and tax support.\nThen, validate the Withholding .\nTax support types must be configured on the Vendor Bill . To do so, go to the tax\napplied on the Vendor Bill and change the Tax Support there.\nA withholding tax can be divided into two or more lines, depending on whether two or more\nwithholding percentages apply.\nOdoo suggests a VAT withholding of 30% with tax support 01. VAT withholding of 70% can be added\nto a new line with the same tax support. Odoo allows it if the base total matches the Vendor Bill âs total.\n\n### Expense reimbursement\n\nExpense reimbursements apply to the following cases:\n- Individual : reimbursement to an employee for miscellaneous expenses (e.g., purchase\nliquidations)\nIndividual : reimbursement to an employee for miscellaneous expenses (e.g., purchase\nliquidations)\n- Legal Entity : reimbursement for incurred expenses, such as representation expenses\n(e.g., hiring a lawyer)\nLegal Entity : reimbursement for incurred expenses, such as representation expenses\n(e.g., hiring a lawyer)\nTo enable expense reimbursement, make sure a purchase liquidation journal has been created for an individual or a vendor\nbills journal for a legal entity.\nIn the vendor bills journal, be sure the following necessary configurations are set for a legal\nentity:\n- Select Purchase as the Type .\nSelect Purchase as the Type .\n- Do not tick the Purchase Liquidations checkbox.\nDo not tick the Purchase Liquidations checkbox.\n- Add a Default Expense Account .\nAdd a Default Expense Account .\nNext, to create a reimbursement, create a vendor bill using the purchase liquidation or vendor bills journal. On the vendor bill, configure the\nfollowing fields:\n- Vendor : This field should be an employee.\nVendor : This field should be an employee.\n- Document Type : Verify that this field is accurately populated from the journal.\nDocument Type : Verify that this field is accurately populated from the journal.\n- Payment Method (SRI) : Select a payment method.\nPayment Method (SRI) : Select a payment method.\n- Reimbursement Lines tab: Click Auto Fill Invoice Lines to automatically\npopulate the invoice lines or add the expenses line by line, and provide the following details for\neach expense: Partner or authorization number Date Document Type Document Number Tax Base Tax\nReimbursement Lines tab: Click Auto Fill Invoice Lines to automatically\npopulate the invoice lines or add the expenses line by line, and provide the following details for\neach expense:\n- Partner or authorization number\nPartner or authorization number\n- Document Type\n- Document Number\n- Tax Base\nThen, click Confirm Vendor Bill and Process Now . The XML and authorization\nnumber for the purchase liquidation are recorded, and the purchase withholding created from this\nvendor bill includes the reimbursement information.\n\n### Electronic delivery guide\n\nAn Electronic Delivery Guide in Ecuador is a legal document that supports the transportation of\ngoods or merchandise from one place to another within the national territory. It is issued by the\nsender of the goods and aims to record and justify the movement of products to avoid legal or tax\nissues. It is a fiscal requirement mandated by the Internal Revenue Service (SRI) .\nMake sure to install the Ecuadorian\nDelivery Guide ( l10n_ec_edi_stock ) module.\n`l10n_ec_edi_stock`\n\n#### Transporter\n\nTo create a new carrier (transporter), first create a new contact and fill out the contact information as a Company . Make sure the following fields are\ncomplete:\n- Identification Number : Select RUC and type the carrierâs RUC number.\nIdentification Number : Select RUC and type the carrierâs RUC number.\n- SRI Taxpayer Type : Select Companies - Legal Entities as the partner\nposition in the tax pyramid to automate the computation of VAT withholdings.\nSRI Taxpayer Type : Select Companies - Legal Entities as the partner\nposition in the tax pyramid to automate the computation of VAT withholdings.\n\n#### Certificate file for SRI\n\nTo upload the certificate file for SRI, go to Accounting ⣠Configuration â£\nSettings , scroll to the Ecuadorian Localization section, and click SRI Certificates in the SRI Connection section. Then,\nto create a new certificate, click New and fill out the following fields:\n- Name : The title of the certificate.\nName : The title of the certificate.\n- Certificate : Use the Upload your file button to upload the SRI\ncertificate.\nCertificate : Use the Upload your file button to upload the SRI\ncertificate.\n- Certificate Password : Include the password to decrypt the PKS file if required.\nCertificate Password : Include the password to decrypt the PKS file if required.\nOnce the certificate is created, click Settings to go back to the settings and ensure\nthe certificate is selected in the Certificate file for SRI field and the Use\nproduction servers checkbox is ticked.\n\n#### Warehouse configuration\n\nTo configure a warehouse, first create a new warehouse . Enter the\nfollowing data for each warehouse that generates an electronic delivery guide:\n- Entity Point : the emission entity number given by the SRI\nEntity Point : the emission entity number given by the SRI\n- Emission Point : the emission point number given by the SRI\nEmission Point : the emission point number given by the SRI\n- Next Delivery Guide Number : the forwarding tracking number (editable after first\nsaving the warehouse).\nNext Delivery Guide Number : the forwarding tracking number (editable after first\nsaving the warehouse).\n\n#### Generate an electronic delivery guide\n\nOnce the delivery from inventory is created during the sales workflow, make sure the following fields are complete in\nthe Delivery Guide section on the Additional info tab:\n- Transporter : Enter the contact created.\nTransporter : Enter the contact created.\n- Plate Number : Enter the vehicle plate number.\nPlate Number : Enter the vehicle plate number.\n- Transfer Reason : By default, Goods dispatch is set; modify as needed.\nTransfer Reason : By default, Goods dispatch is set; modify as needed.\n- Start date : Automatically set to the creation date (editable).\nStart date : Automatically set to the creation date (editable).\n- End date : Automatically set to 15 days after the start date (editable).\nEnd date : Automatically set to 15 days after the start date (editable).\nClick Validate , then Generate Delivery Guide . Subsequently, the following\ninformation will be available in the Delivery Guide section:\n- Authorization date : date on which the government authorizes the document.\nAuthorization date : date on which the government authorizes the document.\n- Authorization number : EDI authorization number (same as access key).\nAuthorization number : EDI authorization number (same as access key).\n- Delivery Guide Status : status of the delivery guide.\nDelivery Guide Status : status of the delivery guide.\nTo receive the XML and PDF, an email can be sent to the contact used in the Delivery\nAddress field - this is an optional and manual step; the Send Email button needs to be\nclicked.\n\n## eCommerce\n\nThe ATS Report module enables the following:\n- Choose the SRI Payment Method for each payment methodâs configuration.\nChoose the SRI Payment Method for each payment methodâs configuration.\n- Customers can manually input their identification type and number during eCommerce checkout.\nCustomers can manually input their identification type and number during eCommerce checkout.\n- Automatically generate a valid electronic invoice for Ecuador at the end of the checkout process.\nAutomatically generate a valid electronic invoice for Ecuador at the end of the checkout process.\neCommerce documentation\n\n### Online payments\n\nTo enable online payments, add the relevant payment provider(s) and\nconfigure the necessary payment methods . It is mandatory\nto set the SRI Payment Method for each method.\nAdding the SRI Payment Method is necessary to correctly generate the electronic\ninvoice from an eCommerce sale. Select a payment method to access its configuration menu and\nfield.\n\n### Automatic invoice\n\nInvoices can be generated after the checkout process.\nThe invoiceâs email template can be modified from the Invoice Email Template field\nunder the Automatic Invoice option.\nThe sales journal used for invoicing is the first in the priority sequence in the Journal menu.\n\n### Identification type and number\n\nDuring the checkout process, the client making a purchase will have the option to indicate their\nidentification type and number. This information is required to generate the electronic invoice\nafter the checkout is completed correctly.\nVerification is done to ensure the Identification Number field is completed and has\nthe correct number of digits. For RUC identification, 13 digits are required, and for Cédula, 9\ndigits are required.\nAfter finishing the checkout process, a confirmed invoice is generated, ready to be sent manually or\nasynchronously to the SRI.\n\n## Point of sale electronic invoicing\n\nMake sure the Ecuadorian module for Point of Sale ( l10n_ec_edi_pos ) is installed to enable the following features and configurations:\n`l10n_ec_edi_pos`\n- Choose the SRI payment method in each payment method configuration.\nChoose the SRI payment method in each payment method configuration.\n- Manually input the customerâs identification type and number when creating a new contact on POS .\nManually input the customerâs identification type and number when creating a new contact on POS .\n- Automatically generate a valid electronic invoice for Ecuador at the end of the checkout process.\nAutomatically generate a valid electronic invoice for Ecuador at the end of the checkout process.\n\n### Payment method configuration\n\nTo create a payment method for a point of sale ,\ngo to Point of Sale ⣠Configuration ⣠Payment Methods . Then, set the SRI Payment Method in the payment method form.\n\n### Invoicing flows\n\n#### Identification type and number\n\nThe P0S cashier can create a new contact for a customer who requests an\ninvoice from an open POS session.\nThe Ecuadorian Module for Point of Sale adds two new fields to the contact creation form: Identification Type and Tax ID .\nAs the identification number length differs depending on the identification type, Odoo\nautomatically checks the Tax ID field when saving the contact form. To manually\nensure the length is correct, know that the RUC and Citizenship types\nrequire 13 and 10 digits, respectively.\n\n#### Electronic invoice: anonymous end consumer\n\nWhen clients do not request an electronic invoice for their purchase, Odoo automatically sets the\ncustomer as Consumidor Final and generates an electronic invoice anyway.\nIf the client requests a credit note due to a return of this type of purchase, the credit note\nshould be made using the clientâs real contact information. Credit notes cannot be created for Consumidor Final and can be managed directly from the POS session .\n\n#### Electronic invoice: specific customer\n\nIf a customer requests an invoice for their purchase, it is possible to select or create a contact\nwith their fiscal information. This ensures the invoice is generated with accurate customer details.\nIf the client requests a credit note due to a return of this type of purchase, the credit note\nand return process can be managed directly from the POS session .", "headings": ["Modules", "Localization overview", "Products", "Taxes", "Document types", "Company and contact", "Electronic documents", "VAT withholding", "Printer points", "Withholding", "Reporting", "Accounting", "Sales documents", "Purchase documents", "Expense reimbursement", "Electronic delivery guide", "eCommerce", "Online payments", "Automatic invoice", "Identification type and number", "Point of sale electronic invoicing", "Payment method configuration", "Invoicing flows"], "doc_id": "855ba71ee92f4469"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/egypt.html", "title": "Egypt", "module": "invoicing", "section": "Egypt", "text": "# Egypt\n\n## Installation\n\nInstall the following modules to get all the features of the Egyptian\nlocalization:\n`l10n_eg`\nDefault fiscal localization package\nEgyptian E-invoice Integration\n`l10n_eg_edi_eta`\nEgyptian Tax Authority (ETA) e-invoicing integration\n\n## Egyptian e-invoicing\n\nOdoo is compliant with the Egyptian Tax Authority (ETA) e-invoicing requirements.\nEgyptian e-invoicing is available from Odoo 15.0. If needed, upgrade your database.\n- Video: Egypt E-invoicing\nVideo: Egypt E-invoicing\n- Upgrade\n\n### Register Odoo on your ETA portal\n\nYou must register your Odoo ERP system on your ETA portal to get your API credentials. You need\nthese codes to configure your Odoo Accounting app .\nAccess your company profile on the ETA portal by clicking on View Taxpayer Profile .\nNext, go to the Representatives section and then click on Register ERP .\nFill out the ERP Name (e.g., Odoo ) and leave the other fields empty.\n`Odoo`\nOnce successfully registered, the website displays your API credentials:\n- Client ID\n- Client Secret 1\n- Client Secret 2\n- ETA should give you a username and a password to access their online portal.\nETA should give you a username and a password to access their online portal.\n- Ask ETA to provide you with preproduction portal access as well.\nAsk ETA to provide you with preproduction portal access as well.\n- These codes are confidential and should be stored safely.\nThese codes are confidential and should be stored safely.\n\n### Configuration on Odoo\n\nTo connect your Odoo database to your ETA portal account, go to Accounting â£\nConfiguration ⣠Settings ⣠ETA E-Invoicing Settings , and set the ETA Client ID and ETA Secret that you retrieved when you registered Odoo on your ETA portal . Set an invoicing threshold if needed.\n- Test on your preproduction portal before starting to issue real invoices on the production\nETA portal.\nTest on your preproduction portal before starting to issue real invoices on the production\nETA portal.\n- Credentials for preproduction and production environments are different. Make sure to\nupdate them on Odoo when you move from one environment to another.\nCredentials for preproduction and production environments are different. Make sure to\nupdate them on Odoo when you move from one environment to another.\n- If not done yet, fill out your company details with your companyâs full address, country, and\nTax ID.\nIf not done yet, fill out your company details with your companyâs full address, country, and\nTax ID.\n\n#### ETA codes\n\nE-invoicing works with a set of codes provided by the ETA. You can use the ETA documentation to code your business attributes.\nMost of these codes are handled automatically by Odoo, provided that your branches , customers , and products are correctly configured.\n- Company Information: Company Tax ID Branch ID If you have only one branch, use 0 as the branch code. Activity type Code\n- Company Tax ID\n- Branch ID If you have only one branch, use 0 as the branch code.\n`0`\n- Activity type Code\n- Other Information: Product Codes Your companyâs products should be coded and matched with their GS1 or EGS codes. Tax Codes Most of the taxes codes are already configured on Odoo in the ETA Code (Egypt) field. We advise you to make sure these codes match your companyâs taxes.\n- Product Codes Your companyâs products should be coded and matched with their GS1 or EGS codes.\n- Tax Codes Most of the taxes codes are already configured on Odoo in the ETA Code (Egypt) field. We advise you to make sure these codes match your companyâs taxes.\n- Egyptian eInvoicing & eReceipt SDK - Code Tables\nEgyptian eInvoicing & eReceipt SDK - Code Tables\n\n#### Branches\n\nCreate a contact and a journal for each branch of your company and configure its ETA settings.\nTo do so, go to Accounting ⣠Configuration ⣠Journals , then click on Create .\nName the journal according to your companyâs branch and set the Type as Sales . Next, open the Advanced Settings tab and fill out the Egyptian ETA settings section:\n- In the Branch field, select the branchâs contact or create it.\nIn the Branch field, select the branchâs contact or create it.\n- Set the ETA Activity Code .\nSet the ETA Activity Code .\n- Set the ETA Branch ID (use 0 if you have one branch only).\nSet the ETA Branch ID (use 0 if you have one branch only).\n`0`\nThe contact selected in the Branch field must be set as a Company ( not as an Individual ), and the Address and Tax ID fields\nmust be filled out.\n\n#### Customers\n\nMake sure your customersâ contact forms are correctly filled out so your e-invoices are valid:\n- contact type: Individual : or Company :\ncontact type: Individual : or Company :\n- Country :\n- Tax ID : Tax ID or Company registry for companies. National ID for individuals.\nTax ID : Tax ID or Company registry for companies. National ID for individuals.\nYou can edit your customersâ contact forms by going to Accounting ⣠Customers\n⣠Customers .\n\n#### Products\n\nMake sure your products are correctly configured so your e-invoices are valid:\n- Product Type : storable products, consumables, or services.\nProduct Type : storable products, consumables, or services.\n- Unit of Measure : if you also use Odoo Inventory and have enabled Units of\nMeasure .\nUnit of Measure : if you also use Odoo Inventory and have enabled Units of\nMeasure .\n- Barcode : GS1 or EGS barcode\nBarcode : GS1 or EGS barcode\n- ETA Item code (under the Accounting tab): if the barcode doesnât\nmatch your ETA item code.\nETA Item code (under the Accounting tab): if the barcode doesnât\nmatch your ETA item code.\nYou can edit your products by going to Accounting ⣠Customers ⣠Products .\n\n### USB authentication\n\nEach person who needs to electronically sign invoices needs a specific USB key to authenticate and\nsend invoices to the ETA portal through an ERP.\nYou can contact the ETA or Egypt Trust to get these USB keys.\n\n#### Install Odoo as a local proxy on your computer\n\nAn Odoo local server works as a bridge between your computer and your Odoo database hosted online.\nDownload the Odoo Community installer from the page https://www.odoo.com/page/download and start the\ninstallation on your computer.\nSelect Odoo IoT as the type of install.\nThis installation of Odoo only works as a server and does not install any Odoo apps on your\ncomputer.\nOnce the installation is complete, the installer displays your access token for the Odoo Local\nProxy. Copy the token and save it in a safe place for later use.\n- Odoo: Download Odoo\n- On-premise\n\n#### Configure the USB key\n\nOnce the local proxy server is installed on your computer, you can link it with your Odoo database.\n- Go to Accounting ⣠Configurations ⣠Thumb Drive and click on Create .\nGo to Accounting ⣠Configurations ⣠Thumb Drive and click on Create .\n- Input a Company name, the ETA USB Pin given to you by your USB key\nprovider, and the Access Token provided at the end of the local proxy\ninstallation , then click on Save .\nInput a Company name, the ETA USB Pin given to you by your USB key\nprovider, and the Access Token provided at the end of the local proxy\ninstallation , then click on Save .\n- Click on Get certificate .\nClick on Get certificate .", "headings": ["Installation", "Egyptian e-invoicing", "Register Odoo on your ETA portal", "Configuration on Odoo", "USB authentication"], "doc_id": "58dc2060907fe06d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/france.html", "title": "France", "module": "invoicing", "section": "France", "text": "# France\n\n## Modules\n\nThe following modules related to the French localization are available:\n`l10n_fr_account`\nFrench fiscal localization package that applies only\nto companies based in mainland France and doesnât include DOM-TOMs.\nFrance - Accounting Reports\n`l10n_fr_reports`\nExport of the French VAT report, which can be sent to the DGFiP, an OGA, or a professional\naccountant.\nFrance - Payroll with Accounting\nl10n_fr_hr_payroll_account\n`l10n_fr_hr_payroll_account`\nIncludes the necessary accounting data for the French payroll rules.\nFrance - Factur-X integration with Chorus Pro\nl10n_fr_facturx_chorus_pro\n`l10n_fr_facturx_chorus_pro`\nAdds fields needed for submitting invoices to Chorus Pro .\n`l10n_fr_fec_import`\nImport of standard FEC files, useful for importing accounting history.\nFrance - VAT Anti-Fraud Certification for Point of Sale (CGI 286 I-3 bis)\n`l10n_fr_pos_cert`\nPoint of Sale VAT anti-fraud certification\nThe localizationâs core modules are installed automatically with the localization. The rest can\nbe manually installed .\n\n## Localization overview\n\nThe French localization package ensures compliance with French fiscal and accounting regulations. It\nincludes tools for managing taxes, fiscal positions, reporting, and a predefined chart of accounts\ntailored to Franceâs standards.\nThe French localization package provides the following key features to ensure compliance with local\nfiscal and accounting regulations:\n- Chart of accounts : a predefined structure tailored to French\naccounting standards\nChart of accounts : a predefined structure tailored to French\naccounting standards\n- Fiscal positions (tax and account mapping) : automated tax adjustments based on customer or\nsupplier registration status\nFiscal positions (tax and account mapping) : automated tax adjustments based on customer or\nsupplier registration status\n- Taxes : pre-configured tax rates, including standard VAT,\nzero-rated, and exempt options\nTaxes : pre-configured tax rates, including standard VAT,\nzero-rated, and exempt options\n- Payroll\n- Reporting\n\n### Reporting\n\nInstalling the France - Accounting ( l10n_fr_account ) module gives access to some accounting reports specific to France, such as:\n`l10n_fr_account`\n- Bilan comptable (FR) ( Balance Sheet )\nBilan comptable (FR) ( Balance Sheet )\n- Compte de résultats (FR) ( Profit and Loss )\nCompte de résultats (FR) ( Profit and Loss )\n- Rapport de taxes (FR) ( Tax Report )\nRapport de taxes (FR) ( Tax Report )\n\n## Accounting\n\n### E-Invoicing\n\nThe Chorus Pro portal, managed by the AIFE (Agence\npour lâInformatique financière de lâÃtat), is the official platform for submitting electronic\ninvoices to French public entities. It allows businesses to send and manage invoices, track their\nprocessing status, and access payment updates. Since January 2020, electronic invoicing has been\nmandatory for all business-to-government (B2G) transactions in France. Odoo supports integration\nwith Chorus Pro to submit invoices generated in Odoo.\n\n#### Configuration\n\nTo send invoices to Chorus Pro, the following configuration is required:\n- Install the France - Factur-X integration\nwith Chorus Pro ( l10n_fr_facturx_chorus_pro ) module.\nInstall the France - Factur-X integration\nwith Chorus Pro ( l10n_fr_facturx_chorus_pro ) module.\n`l10n_fr_facturx_chorus_pro`\n- Register with Peppol, as invoices are sent\nfrom Odoo to Chorus Pro via the Peppol network.\nRegister with Peppol, as invoices are sent\nfrom Odoo to Chorus Pro via the Peppol network.\n- If you donât already have a Chorus Pro account, go to the Chorus Pro page, click Créer un compte , and\ncreate one.\nIf you donât already have a Chorus Pro account, go to the Chorus Pro page, click Créer un compte , and\ncreate one.\n- Configure the relevant customersâ contact form .\nConfigure the relevant customersâ contact form .\nChorus Pro documentation\nTo submit invoices to Chorus Pro, configure the relevant customersâ contact form as follows:\n- Ensure the Country field is completed, then select VAT as the Identification Number and enter the corresponding number.\nEnsure the Country field is completed, then select VAT as the Identification Number and enter the corresponding number.\n- In the Sales & Purchase tab, ensure the SIRET field is completed.\nIn the Sales & Purchase tab, ensure the SIRET field is completed.\n- In the Accounting tab, fill in the following fields in the Customer\nInvoices section: eInvoice format : Select BIS Billing 3.0 . Make sure France SIRET is selected in the next field, then type 11000201100044 ,\nthe reference used by Chorus Pro.\nIn the Accounting tab, fill in the following fields in the Customer\nInvoices section:\n- eInvoice format : Select BIS Billing 3.0 .\neInvoice format : Select BIS Billing 3.0 .\n- Make sure France SIRET is selected in the next field, then type 11000201100044 ,\nthe reference used by Chorus Pro.\nMake sure France SIRET is selected in the next field, then type 11000201100044 ,\nthe reference used by Chorus Pro.\n`11000201100044`\n\n#### Sending invoices to Chorus Pro\n\nTo send invoices to Chorus Pro, follow these steps:\n- Go to Accounting ⣠Customers ⣠Invoices and open or create the invoice.\nGo to Accounting ⣠Customers ⣠Invoices and open or create the invoice.\n- Make sure the following fields are filled in the Other Info tab: Buyer Reference : Service Exécutant in Chorus Pro Contract Reference : Numéro de Marché in Chorus Pro Purchase Order Reference : Engagement Juridique in Chorus Pro\nMake sure the following fields are filled in the Other Info tab:\n- Buyer Reference : Service Exécutant in Chorus Pro\nBuyer Reference : Service Exécutant in Chorus Pro\n- Contract Reference : Numéro de Marché in Chorus Pro\nContract Reference : Numéro de Marché in Chorus Pro\n- Purchase Order Reference : Engagement Juridique in Chorus Pro\nPurchase Order Reference : Engagement Juridique in Chorus Pro\n- Confirm the invoice.\n- Click Send and, in the Print & Send window, enable By Peppol .\nClick Send and, in the Print & Send window, enable By Peppol .\n- Click Send .\nOnce the invoice is sent, the Peppol status of the invoice is updated to Done .\n\n### FEC - Fichier des Ãcritures Comptables\n\nAn FEC Fichier des Ãcritures Comptables audit file contains all the accounting data and\nentries recorded in all the accounting journals for a financial year. The entries in the file must\nbe arranged in chronological order. Since January 2014, every French company is required to produce\nand transmit this file upon request by the tax authorities for audit purposes.\n\n#### FEC Import\n\nInstall the France - FEC Import ( l10n_fr_fec_import ) module to import FEC files from other software.\n`l10n_fr_fec_import`\nTo enable this feature, go to Accounting ⣠Configuration ⣠Settings . In the Accounting Import section, click Import and Import FEC . Then, in the FEC Import window, upload the FEC file and click Import .\nImporting FEC files from different years requires no particular actions or computations. However,\nif multiple files contain RAN Reports à Nouveaux with the starting balance for the year,\nthese entries are automatically marked as unnecessary in Odoo and may need to be deleted.\n- FEC files must be in CSV format, as XML format is not supported.\nFEC files must be in CSV format, as XML format is not supported.\n- The FEC CSV file is a plain text file structured as a data table. The first line serves as the\nheader, defining the list of fields for each entry, and each following line represents a single\naccounting entry without any specific order.\nThe FEC CSV file is a plain text file structured as a data table. The first line serves as the\nheader, defining the list of fields for each entry, and each following line represents a single\naccounting entry without any specific order.\nFEC files must comply with the following technical specifications:\n- Encoding : UTF-8, UTF-8-SIG and iso8859_15.\nEncoding : UTF-8, UTF-8-SIG and iso8859_15.\n- Separator : any of these: ; or | or , or TAB .\nSeparator : any of these: ; or | or , or TAB .\n`;`\n`|`\n`,`\n`TAB`\n- Line terminators : both CR+LF ( \\r\\n ) and LF ( \\n ) character groups are supported.\nLine terminators : both CR+LF ( \\r\\n ) and LF ( \\n ) character groups are supported.\n`\\r\\n`\n`\\n`\n- Date format : %Y%m%d\n`%Y%m%d`\njournal.code and journal.name if JournalLib is not provided\n`journal.code`\n`journal.name`\n`JournalLib`\n`journal.name`\nNumbering specific to each journal\nsequence number of the entry\n`move.name`\nAccounting entry Date\n`move.date`\n`account.code`\n`account.name`\nSecondary account Number\n(accepts null)\n`partner.ref`\nSecondary account Label\n(accepts null)\n`partner.name`\nmove.ref and move.name if EcritureNum is not provided\n`move.ref`\n`move.name`\n`EcritureNum`\n`move.date`\n`move_line.name`\n`move_line.debit`\nCredit amount\n(Field name âCréditâ is not allowed)\n`move_line.credit`\nAccounting entry cross reference\n(accepts null)\nmove_line.fec_matching_number\n`move_line.fec_matching_number`\nAccounting entry date\n(accepts null)\nAccounting entry validation date\nCurrency amount\n(accepts null)\nmove_line.amount_currency\n`move_line.amount_currency`\nCurrency identifier\n(accepts null)\n`currency.name`\nThese two fields appear in the same order as the others, replacing them.\nmove_line.debit or move_line.credit\n`move_line.debit`\n`move_line.credit`\nCan be âCâ for Credit\nor âDâ for Debit\ndetermines move_line.debit or move_line.credit\n`move_line.debit`\n`move_line.credit`\nThe following accounting entities are imported from the FEC files: Accounts, Journals, Partners ,\nand Moves . The module automatically determines the encoding, line terminator, and separator used\nin the file. Next, a check is performed to ensure that each line has the correct number of fields\nmatching the header. If the check is successful, the entire file is read, stored in memory, and\nscanned. Accounting entities are then imported one type at a time in the following order.\nEach accounting entry is associated with an account identified by the CompteNum field.\nIf an account with the same code already exists, the existing one is used rather than creating a new\none. In Odoo, account numbers follow the default digit length of the fiscal localization. Since the\nFEC module is tied to the French localization, the default account length is 6 digits.\nThis means that trailing zeros in account codes are removed, and the comparison between the account\ncodes in the FEC file and those already in Odoo is made based only on the first six digits of the\ncodes.\nThe account code 65800000 in the file is matched with an existing 658000 account in Odoo,\nand the existing account is used instead of creating a new one.\n`65800000`\n`658000`\nAn account is technically flagged as reconcilable if the first line in which it appears has the EcritureLet field filled out, indicating that the accounting entry will be reconciled\nwith another one.\nThe field can be left empty on the line, but the entry must still be reconciled with an\nunrecorded payment. The account is flagged as reconcilable once the import of the move lines\nrequires it.\nSince the account type is not specified in the FEC format, new accounts are created with the\ndefault type Current Assets . After the import process, they are matched against the\ninstalled Chart of Account templates. The reconcile flag is also determined this way.\nThe matching is performed by comparing the left-most digits, starting with all digits, followed by\n3 digits, and then 2 digits.\n`400000`\n`400000`\n`400`\n`40`\n`40100000`\n`40100000`\n`401`\n`40`\nThe account type is then flagged as payable and reconcilable based on the\naccount template.\nJournals are checked against the existing ones in Odoo to avoid duplicates, even when importing\nmultiple FEC files.\nIf a journal with the same code already exists, the existing journal is used instead of creating a\nnew one.\nNew journals have the prefix FEC- added to their name. For example, ACHATS becomes FEC-ACHATS .\nJournals are not archived, allowing the user to manage them as desired.\nThe journal type is not specified in the format (similar to the accounts) and is initially created\nwith the default type general .\nAt the end of the import process, the journal type is determined based on the following rules\nregarding related moves and accounts:\n- bank : Moves in these journals always include a line (debit or credit) impacting a\nliquidity account. cash / bank can be interchanged, so bank is assigned when\nthis condition is met.\n- sale : Moves in these journals mostly have debit lines on receivable accounts and\ncredit lines on tax income accounts. Sale refund journal items are debit/credit inverted.\n- purchase : Moves in these journals mostly have credit lines on payable accounts and\ndebit lines on expense accounts. Purchase refund journal items are debit/credit inverted.\n- general : Used for everything else.\n- A minimum of three moves is required to identify the journal type.\nA minimum of three moves is required to identify the journal type.\n- A threshold of 70% of the moves must meet the criteria for a journal type to be determined.\nA threshold of 70% of the moves must meet the criteria for a journal type to be determined.\nSuppose we are analyzing the moves that share a certain journal_id .\nthat have a sale account line and no purchase account line\nthat have a purchase account line and no sale account line\nthat have a liquidity account line\nThe journal type would be bank , because the bankâs move percentage (75%)\nexceeds the threshold (70%).\nEach contact keeps its Reference from the CompAuxNum field.\nThese fields are searchable based on previous FEC imports for fiscal/audit purposes.\nSimilar and potential duplicate contacts can be merged using the Data Cleaning App.\nEntries are posted and reconciled immediately upon submission, with the EcritureLet field used to match the entries.\nThe EcritureNum field represents the name of the moves, but it may sometimes be left\nempty. In such cases, the PieceRef field is used instead.\nA rounding tolerance is applied based on currency precision for debit and credit amounts (i.e., 0.01\nfor EUR). If the difference falls under this tolerance, a new line is added to the move, called Import rounding difference , targeting the following accounts:\n- 658000 Charges diverses de gestion courante, for added debits\n658000 Charges diverses de gestion courante, for added debits\n`658000`\n- 758000 Produits divers de gestion courante, for added credits\n758000 Produits divers de gestion courante, for added credits\n`758000`\nIf the the EcritureNum field is not filled out and PieceRef field is not\nsuited to determine the move name (it may be used as an accounting move line reference), it becomes\nimpossible to identify which lines should be grouped into a single move, and effectively preventing\nthe creation of balanced moves.\nIn such cases, a final attempt is made to group all lines by the same journal and date\n( JournalLib , EcritureDate ). If this grouping generates balanced moves\n(sum(credit) - sum(debit) = 0), then each different combination of journal and date creates a new\nmove.\nACH + 2021/05/01 â> new move on journal ACH with name 20210501 .\n`ACH`\n`2021/05/01`\n`ACH`\n`20210501`\nIf this attempt fails, an error message is displayed, listing all the move lines that are considered\nunbalanced.\nIf a line includes contact information, it is copied to the accounting move itself, provided the\ntargeted journal is of type payable or receivable .\n\n#### FEC Export\n\nTo download the FEC, go to Accounting ⣠Reporting ⣠General Ledger . Click the (gear) icon and select FEC . In\nthe FEC File Generation window, fill in the following fields:\n- Start Date\n- End Date\n- Test File : Enable this option to test the FEC file generation.\nTest File : Enable this option to test the FEC file generation.\n- Exclude lines at 0 : Enable this option if needed.\nExclude lines at 0 : Enable this option if needed.\n- Excluded Journals : Select the journal(s) to exclude.\nExcluded Journals : Select the journal(s) to exclude.\nThen, click Generate .\n- Official Technical Specification (fr)\nOfficial Technical Specification (fr)\n- Test-Compta-Demat (Official FEC Testing tool)\nTest-Compta-Demat (Official FEC Testing tool)\n\n### Liasse fiscale\n\nThe liasse fiscale (tax returns) is a collection of standardized financial documents that\nbusinesses must submit annually to the tax authorities. It comprehensively summarizes the companyâs\nfinancial activities and determines corporate taxes.\nTeledec is a platform used to prepare and submit tax returns using data\nfrom accounting records. To synchronize your accounting data stored in Odoo with Teledec and\nelectronically send your companyâs liasse fiscale to the DGFiP (Direction Générale des Finances\nPubliques), follow these steps:\n- Teledec account creation\nTeledec account creation\n- Company registration and fiscal year information\nCompany registration and fiscal year information\n- Odoo synchronization\n\n#### Teledec account creation\n\nTo create a Teledec account, access the Teledec account creation page and fill in the Adresse e-mail field with an email address. Choose a secure password,\naccept the general terms and conditions by checking the box, and click Sâenregistrer to\nsave. Then, enter the SIREN number of the company.\nIf the account has already been created, click Déjà enregistré? (Already registered).\n\n#### Company registration and fiscal year information\n\nTo register the company on Teledec, go to Vos entreprises (Your companies) and click Enregistrer votre entreprise (Register your company). Make sure to fill in the following\ncompany information in the Coordonnées de lâentreprise (Companyâs details) and Représentant légal (Legal representative) sections:\n- Nom de lâentreprise : Companyâs name.\nNom de lâentreprise : Companyâs name.\n- Forme juridique : Select the companyâs legal form.\nForme juridique : Select the companyâs legal form.\n- Les comptes sont clôturés le : Closing date.\nLes comptes sont clôturés le : Closing date.\n- Régime dâimposition, choix de la liasse : Select the Tax scheme and tax return option.\nRégime dâimposition, choix de la liasse : Select the Tax scheme and tax return option.\n- Adresse du siège social : Head office address.\nAdresse du siège social : Head office address.\n- Nom du représentant légal : Legal representativeâs name.\nNom du représentant légal : Legal representativeâs name.\n- Agissant en qualité de : Legal representativeâs function.\nAgissant en qualité de : Legal representativeâs function.\n- Numéro de téléphone : Phone number.\nNuméro de téléphone : Phone number.\nClick Sauvegarder (Save) to display the next step Informations générales sur lâexercice déclaré (General information about the declared\nfiscal year). Then, fill in information on the financial year, such as the fiscal year start and end\ndates or the closing date and duration of the previous fiscal period. After saving, the list of\ndocuments included in the liasse fiscale is displayed, including both standard tax forms and\nthose customized for the companyâs tax return.\n- The Etat (Status) column shows the progress of the document filing.\nThe Etat (Status) column shows the progress of the document filing.\n- Click Compléter to fill out a document, then Sauvegarder to save.\nClick Compléter to fill out a document, then Sauvegarder to save.\n- To print a blank version of the declaration, click Imprimer la déclaration and\nselect the Imprimer la déclaration avec les notices option.\nTo print a blank version of the declaration, click Imprimer la déclaration and\nselect the Imprimer la déclaration avec les notices option.\n\n#### Odoo synchronization\n\nTo enable Odoo to automatically fill in the data for the Liasse fiscale , click Autres actions (Other actions) in the top-right corner and select Synchroniser avec un logiciel tiers (Synchronize with third-party software), then Synchroniser cette liasse avec Odoo (Synchronize this liasse with Odoo).\nIn the Synchroniser cette liasse avec Odoo window, fill in the following\ninformation to complete the synchronization:\n- Nom / URL complète de la base de données Odoo : Odoo database name or URL. To provide\nthe full URL of the database, enable Je voudrais donner une url complète hors .odoo.com option.\nNom / URL complète de la base de données Odoo : Odoo database name or URL. To provide\nthe full URL of the database, enable Je voudrais donner une url complète hors .odoo.com option.\n- Nom de lâutilisateur : User name associated with the Odoo account.\nNom de lâutilisateur : User name associated with the Odoo account.\n- Clé API : API key generated by the Odoo instance.\nClé API : API key generated by the Odoo instance.\nIn a multi-company setup, the following configurations are required in Odoo:\n- The user linked to the generated API key must have access to the company intended for synchronization.\nThe user linked to the generated API key must have access to the company intended for synchronization.\n- This company must also be set as the userâs Default Company , as Teledec always\nsynchronizes with the userâs default company.\nThis company must also be set as the userâs Default Company , as Teledec always\nsynchronizes with the userâs default company.\nNext, click Importer to synch data from Odoo. In the Confirmation de la synchronisation de liasse avec Odoo window, review the amounts and\nmake any necessary changes. Then click Importer la balance to confirm the\nsynchronization of the liasse fiscale with Odoo and import the balance.\nClicking Importer la balance may overwrite or alter any manual updates made\npreviously.\nTo make payment and send the declaration to the tax authorities, click Paiement & envoi\nde la déclaration .\n\n## Point of sale\n\n### VAT anti-fraud certification\n\nSince January 2018, new anti-fraud legislation has been in effect in France and its overseas\nterritories (DOM-TOM). This legislation establishes specific requirements for the integrity,\nsecurity, storage, and archiving of sales data. Odoo complies with these legal requirements by\nproviding a module and a downloadable certificate of conformity.\nAnti-fraud cash register software, such as Odoo (CGI art. 286, I. 3° bis), is required for companies\ntaxable in France or DOM-TOM, where some customers are private individuals (B2C). This rule applies\nto all company sizes, but auto-entrepreneurs exempt from VAT are unaffected.\n- Frequently Asked Questions\nFrequently Asked Questions\n- Official Statement\n- Item 88 of Finance Law 2016\nItem 88 of Finance Law 2016\n\n#### Odoo certification\n\nThe tax administration requires all companies to provide a certificate of conformity confirming that\ntheir software complies with anti-fraud legislation. In case of non-compliance, a â¬7,500 fine may be\nimposed.\nThis certificate is granted by Odoo\nSA to Odoo Enterprise users.\nTo get the certification, follow these steps:\n- Install the France - VAT Anti-Fraud\nCertification for Point of Sale (CGI 286 I-3 bis) ( l10n_fr_pos_cert ) module.\nInstall the France - VAT Anti-Fraud\nCertification for Point of Sale (CGI 286 I-3 bis) ( l10n_fr_pos_cert ) module.\n`l10n_fr_pos_cert`\n- Set the Country field on the company record to encrypt entries for the inalterability check.\nSet the Country field on the company record to encrypt entries for the inalterability check.\n- Download the mandatory certificate of conformity delivered by Odoo SA.\nDownload the mandatory certificate of conformity delivered by Odoo SA.\n\n#### Anti-fraud features\n\nThe anti-fraud module introduces the following features:\n- Inalterability\n- Security\n- Storage\nAll methods to cancel or modify key data in POS orders, invoices, and journal entries are\ndeactivated for companies located in France or any DOM-TOM.\nIn a multi-company environment, only the documents of such companies are impacted.\nTo ensure inalterability, every order or journal entry is encrypted upon validation. This number\n(or hash) is calculated from the documentâs key data and the hash of the precedent documents. The\nmodule introduces an interface to test the dataâs inalterability. The test will fail if any\ninformation is modified on a document after its validation. The algorithm recomputes all the hashes\nand compares them against the initial ones. In case of failure, the system points out the first\ncorrupted document recorded in the system.\nOnly users with administrator access rights can\ninitiate the inalterability check:\n- For POS orders, go to Point of Sales ⣠Reporting ⣠POS Inalterability Check ;\nFor POS orders, go to Point of Sales ⣠Reporting ⣠POS Inalterability Check ;\n- For journal entries, go to Invoicing/Accounting ⣠Configuration ⣠Settings .\nIn the Reporting section, click Download the Data Inalterability Check\nReport .\nFor journal entries, go to Invoicing/Accounting ⣠Configuration ⣠Settings .\nIn the Reporting section, click Download the Data Inalterability Check\nReport .\nThe system also processes automatic sales closings daily, monthly, and annually. Such closings\ncompute the sales total for the period and the cumulative grand totals from the very first sales\nentry recorded in the system.\nTo access closings, either go to Point of Sales ⣠Reporting ⣠Sales Closings or Invoicing/Accounting ⣠Reporting ⣠Sales Closings .\n- Closings compute the totals for journal entries of sales journals (Journal Type = Sales).\nClosings compute the totals for journal entries of sales journals (Journal Type = Sales).\n- For multi-companies environments, such closings are performed by company.\nFor multi-companies environments, such closings are performed by company.\n- POS orders are posted as journal entries at the closing of the POS session. Closing a POS\nsession can be done anytime. To prompt users to do it daily, the module prevents them from\nresuming a session that was opened more than 24 hours ago. Such a session must be closed before\nselling again.\nPOS orders are posted as journal entries at the closing of the POS session. Closing a POS\nsession can be done anytime. To prompt users to do it daily, the module prevents them from\nresuming a session that was opened more than 24 hours ago. Such a session must be closed before\nselling again.\n- A periodâs total is computed from all the journal entries posted after the previous closing of\nthe same type, regardless of their posting date. Recording a new sales transaction for a\nperiod already closed will be counted in the very next closing.\nA periodâs total is computed from all the journal entries posted after the previous closing of\nthe same type, regardless of their posting date. Recording a new sales transaction for a\nperiod already closed will be counted in the very next closing.\nFor test & audit purposes, closings can be manually generated in developer mode . To do so, go to Settings ⣠Technical ⣠Scheduled Actions .\nIn the scheduled actions list view, open the desired Sale Closing action and click Run manually .\n\n#### Responsibilities\n\nUninstalling this module will reset the security hashes. This means the system will no longer\nguarantee the integrity of the past data.\nUsers are responsible for their Odoo system and must operate it carefully. Modifying source code\nresponsible for ensuring data integrity is not allowed.\nOdoo is not responsible for any issues with this moduleâs functionality if caused by uncertified\nthird-party applications.", "headings": ["Modules", "Localization overview", "Reporting", "Accounting", "E-Invoicing", "FEC - Fichier des Ãcritures Comptables", "Liasse fiscale", "Point of sale", "VAT anti-fraud certification"], "doc_id": "36eacb6ab2d1c5f7"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/germany.html", "title": "Germany", "module": "invoicing", "section": "Germany", "text": "# Germany\n\n## Accounting\n\n### Chart of accounts\n\nBoth SKR03 and SKR04 charts of accounts are supported in Odoo. When you create a new Odoo Online\ndatabase, SKR03 is installed by default.\nVerify which is installed by going to Accounting ⣠Configuration ⣠Settings and checking the Package field under the Fiscal Localization section.\nSelecting another package is only possible if you have not created an accounting entry. If one\nwas posted, a new company or database must be set up to select another package. In\naddition, all journal entries will need to be created again.\n\n### Reports\n\nThe following German-specific reports available on Odoo Enterprise:\n- Balance Sheet\n- Profit & Loss\n- Tax Report (Umsatzsteuervoranmeldung)\nTax Report (Umsatzsteuervoranmeldung)\n- EC Sales List\n- Intrastat\n\n### Exporting entries from Odoo to DATEV\n\nProvided that one of the German fiscal localization packages is installed, you can export your accounting entries from Odoo to\nDATEV from the general ledger.\nTwo types of exports are needed: first the DATEV ATCH export, then the DATEV DATA export.\nBoth are needed at different stages to transfer the data correctly to DATEV, as DATEV works with\ntwo interfaces, one for clients (DUO - DATEV Unternehmen Online) and one for tax advisors (DATEV\nRechnungswesen).\n\n#### 1. DATEV ATCH\n\nGo to Accounting ⣠Reporting ⣠General Ledger , click the ( Actions ) button, and select Datev ATCH (zip) .\nUpload the downloaded ZIP file via the DATEV Belegtransfer software .\nIf you do not have the DATEV Belegtransfer software installed on your computer, ask your tax advisor\nto help you with this.\nThe DATEV ATCH ZIP file includes the files (reports) linked to an Odoo invoice or bill. For\ncustomer invoices, the file must have been generated by using the Send button.\nFor vendor bills, the file must have been received via an email alias or uploaded by using the Upload button.\nThe ZIP file contains two types of files:\n- the individual invoice/bill files (PDF, JPEG, etc.) for the selected period on the general\nledger, and\nthe individual invoice/bill files (PDF, JPEG, etc.) for the selected period on the general\nledger, and\n- a document.xml file used to generate a unique ID (GUID) for each file.\na document.xml file used to generate a unique ID (GUID) for each file.\n`document.xml`\nThese unique IDs are essential as they allow DATEV to automatically link the files to the\nindividual journal items, which will be imported with the DATEV DATA file in the next step.\n\n#### 2. DATEV DATA\n\nGo to Accounting ⣠Reporting ⣠General Ledger , click the ( Actions ) button, and select Datev DATA (zip) .\nTransfer the downloaded ZIP file to your tax advisor. They should import the ZIP file into DATEV\nRechnungswesen.\nCheck with your tax advisor how often they need these files.\nThe ZIP file contains three CSV files:\n- the EXTF_customer_accounts.csv file containing all information related to your\ncustomers,\nthe EXTF_customer_accounts.csv file containing all information related to your\ncustomers,\n`EXTF_customer_accounts.csv`\n- the EXTF_vendor_accounts.csv file containing all information related to your vendors,\nand\nthe EXTF_vendor_accounts.csv file containing all information related to your vendors,\nand\n`EXTF_vendor_accounts.csv`\n- the EXTF_accounting_entries.csv containing all journal items for the period defined on\nthe general ledger, as well as the unique IDs (GUID) so that the journal items can be linked to\nthe files inside the DATEV ATCH ZIP file.\nthe EXTF_accounting_entries.csv containing all journal items for the period defined on\nthe general ledger, as well as the unique IDs (GUID) so that the journal items can be linked to\nthe files inside the DATEV ATCH ZIP file.\n`EXTF_accounting_entries.csv`\n\n### GoBD compliance\n\nGoBD stands for Grundsätze zur ordnungsmäÃigen Führung und Aufbewahrung von Büchern,\nAufzeichnungen und Unterlagen in elektronischer Form sowie zum Datenzugriff . In short, it is a\nguideline for the proper management and storage of books, records, and documents in electronic form,\nas well as for data access, that is relevant for the German tax authority, tax declaration, and\nbalance sheet.\nThese principles have been written and published by the Federal Ministry of Finance (BMF) in\nNovember 2014. Since January 2015, they have become the norm and have replaced previously\naccepted practices linked to computer-based accounting. Several changes have been made by the BMF in\n2019 and January 2020 to specify some of the content due to the development of digital solutions\n(cloud hosting, paperless companies, etc.).\nOdoo is certified GoBD-compliant .\n\n#### Understanding GoBD in relation to accounting software\n\nThe GoBD is binding for companies that have to present accounts , which includes SMEs,\nfreelancers, and entrepreneurs, to the financial authorities. As such, the taxpayer himself is the\nsole responsible for the complete and exhaustive keeping of fiscal-relevant data (above-mentioned\nfinancial and related data).\nApart from software requirements, the user is required to ensure internal control systems ( in\naccordance with sec. 146 of the Fiscal Code ):\n- access rights control;\naccess rights control;\n- segregation of duties, functional separating;\nsegregation of duties, functional separating;\n- entry controls (error notifications, plausibility checks);\nentry controls (error notifications, plausibility checks);\n- reconciliation checks at data entry;\nreconciliation checks at data entry;\n- processing controls; and\nprocessing controls; and\n- measures to prevent intentional or unintentional manipulation of software, data, or documents.\nmeasures to prevent intentional or unintentional manipulation of software, data, or documents.\nThe user must distribute tasks within their organization to the relevant positions ( control ) and\nverify that the tasks are properly and completely performed ( supervision ). The result of these\ncontrols must be recorded ( documentation ), and should errors be found during these controls,\nappropriate measures to correct the situation should be put into place ( prevention ).\n\n#### Data security\n\nThe taxpayer must secure the system against any data loss due to deletion, removal, or theft of\nany data. If the entries are not sufficiently secured, the bookkeeping will be regarded as not in\naccordance with the GoBD guidelines.\nOnce bookings have been finally posted, they can no longer be changed or deleted via the\napplication.\n- If Odoo is used in the cloud, regular backups are part of the Odoo Online service. In addition,\nregular backups can be downloaded and backed up on external systems. See also Odoo Cloud Hosting - Service Level Agreement\nIf Odoo is used in the cloud, regular backups are part of the Odoo Online service. In addition,\nregular backups can be downloaded and backed up on external systems.\nOdoo Cloud Hosting - Service Level Agreement\n- If the server is operated locally, the user is responsible for creating the necessary backup\ninfrastructure.\nIf the server is operated locally, the user is responsible for creating the necessary backup\ninfrastructure.\nIn some cases, data has to be kept for ten years or more, so always have backups saved. It is\neven more important if you decide to change software provider.\n\n#### Responsibility of the software editor\n\nConsidering GoBD applies only to the taxpayer, the software editor can by no means be held\nresponsible for the accurate and compliant documentation of their usersâ financial transactional\ndata . It can merely provide the necessary tools for the user to respect the software-related\nguidelines described in the GoBD.\n\n#### Ensuring compliance through Odoo\n\nThe keywords, when it comes to GoBD are: traceable, verifiable, true, clear, and continuous .\nIn short, you need to have audit-proof archiving in place, and Odoo provides you with the means to\nachieve all of these objectives:\n- Traceability and verifiability Each record in Odoo is stamped with the creator of the document, the creation date, the\nmodification date, and who modified it. In addition, relevant fields are tracked. Thus, it can\nbe seen which value was changed by whom in the chatter of the relevant object.\n- Completeness All financial data must be recorded in the system, and there can be no gaps. Odoo ensures that\nthere is no gap in the numbering of the financial transactions. It is the responsibility of the\nuser to encode all financial data in the system. As most financial data in Odoo is generated\nautomatically, it remains the responsibility of the user to encode all vendor bills and\nmiscellaneous operations completely.\n- Accuracy Odoo ensures that, with the correct configuration, the correct accounts are used. In addition,\nthe control mechanisms between purchase orders and sales orders and their respective invoices\nreflect the reality of the business. It is the responsibility of the user to scan and attach\nthe paper-based vendor bill to the respective record in Odoo. Odoo Documents helps you\nautomate this task .\n- Timely booking and record-keeping As most financial data in Odoo is generated by the transactional objects (for example, the\ninvoice is booked at confirmation), Odoo ensures out-of-the-box timely record-keeping. It is\nthe responsibility of the user to encode all incoming vendor bills in a timely manner, as well\nas the miscellaneous operations.\n- Order Financial data stored in Odoo is, per definition, ordered and can be reordered according to\nmost fields present in the model. A specific ordering is not enforced by the GoBD, but the\nsystem must ensure that a given financial transaction can be quickly found by a third-party\nexpert. Odoo ensures this out-of-the-box.\n- Inalterability With the German Odoo localization, Odoo is in standard configured in such a way that the\ninalterability clause can be adhered to without any further customization.\n\n#### GoBD export\n\nIn the case of fiscal control, the fiscal authority can request three levels of access to the\naccounting system (Z1, Z2, Z3). These levels vary from direct access to the interface to the\nhandover of the financial data on a storage device.\nIn the case of a handover of financial data to a storage device, the GoBD does not enforce the\nformat. It can be, for example, in XLS, CSV, XML, Lotus 123, SAP-format, AS/400-format, or else.\nOdoo supports the CSV and XLS export of financial data out of the box. The GoBD recommends the\nexport in a specific XML-based GoBD format (see âErgänzende Informationen zur\nDatenträgerüberlassungâ §3), but it is not binding.\n\n#### Non-compliance\n\nIn the event of an infringement, you can expect a fine and a court order demanding the\nimplementation of specific measures.\n\n## Point of Sale\n\n### Technical security system\n\nThe Kassensicherungsverordnung (The Act on Protection against Manipulation of Digital Records)\nrequires that electronic record-keeping systems - including the point of sale systems - must be equipped with a technical security system (also called TSS or TSE ).\nOdoo offers a service that is compliant with the help of fiskaly , a cloud-based solution .\nSince this solution is cloud-based, a working internet connection is required.\nThe only VAT rates allowed are given by fiskaly. You can check these rates by consulting fiskaly DSFinV-K API: VAT Definition .\n\n#### Configuration\n\nInstall the Germany - Certification for Point of Sale ( l10n_de_pos_cert ) and Germany - Certification for Point of Sale of type restaurant ( l10n_de_pos_res_cert ) modules.\n`l10n_de_pos_cert`\n`l10n_de_pos_res_cert`\nIf these modules are not listed, update the app list .\nTo register your company, open the Settings app, click Update Info under the Companies section, and fill in the following fields:\n- Company Name\n- Address\n- St.-Nr. (Steuernummer) this number is assigned by the tax office to every taxable\nnatural or legal person (e.g., 2893081508152 ).\nSt.-Nr. (Steuernummer) this number is assigned by the tax office to every taxable\nnatural or legal person (e.g., 2893081508152 ).\n`2893081508152`\n- W-IdNr. (Wirtschafts-Identifikationsnummer) this number is used as a permanent\nidentification number for economically active persons.\nW-IdNr. (Wirtschafts-Identifikationsnummer) this number is used as a permanent\nidentification number for economically active persons.\nYou can then register your company through fiskaly by opening the Fiskaly tab and\nclicking the Fiskaly Registration button.\nIf you do not see the Fiskaly Registration button, make sure that you saved your\ncompany details and are not in editing mode anymore.\nOnce the registration has been finalized, new fields appear:\n- Fiskaly Organization ID refers to the ID of your company on fiskalyâs side.\nFiskaly Organization ID refers to the ID of your company on fiskalyâs side.\n- Fiskaly API Key and Fiskaly API Secret are the credentials the system\nuses to access the services offered by fiskaly.\nFiskaly API Key and Fiskaly API Secret are the credentials the system\nuses to access the services offered by fiskaly.\nIt is possible to request new credentials if there is any issue with the current ones by clicking\nthe New keys button.\nTo use a point of sale in Germany, first create a TSS by going\nto Point of Sale ⣠Configuration ⣠Point of Sale , selecting the Point of Sale to edit, then checking the Create TSS box under the Fiskaly API section.\nOnce the creation of the TSS is successful, you can find the:\n- TSS ID , which refers to the ID of your TSS on fiskalyâs side, and\nTSS ID , which refers to the ID of your TSS on fiskalyâs side, and\n- Fiskaly Client ID , which refers to your POS on fiskalyâs side.\nFiskaly Client ID , which refers to your POS on fiskalyâs side.\n\n#### DSFinV-K export\n\nWhenever you close a PoS session, the details of the orders are sent to the DSFinV-K service of fiskaly.\nIn case of an audit, you can export the data sent to DSFinV-K by going to Point of\nSale ⣠Orders ⣠DSFinV-K Exports ⣠New .\nThese fields are mandatory:\n- Start Datetime : export data with dates larger than or equal to the given start date\nStart Datetime : export data with dates larger than or equal to the given start date\n- End Datetime : export data with dates smaller than or equal to the given end date\nEnd Datetime : export data with dates smaller than or equal to the given end date\nLeave the Point of Sale field blank to export the data of all your points of sale;\nspecify one if you want to export data for this specific POS only.\nWhen an export is successfully triggered and is being processed, the State field should\nmention Pending . Click Refresh State to check if it is ready.", "headings": ["Accounting", "Chart of accounts", "Reports", "Exporting entries from Odoo to DATEV", "GoBD compliance", "Point of Sale", "Technical security system"], "doc_id": "61586ac39de5beed"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/guatemala.html", "title": "Guatemala", "module": "invoicing", "section": "Guatemala", "text": "# Guatemala\n\n## Introduction\n\nWith the Guatemalan localization, you can connect to the tax authority Superintendencia de\nAdministración Tributaria (SAT) to generate electronic documents with its XML, fiscal folio, and\nelectronic signature.\nThe supported documents are:\n- FACT-Factura ,\n- FCAM-Factura Cambiaria ,\nFCAM-Factura Cambiaria ,\n- FPEQ-Factura de Pequeño Contribuyente ,\nFPEQ-Factura de Pequeño Contribuyente ,\n- NCRE-Credit Note ,\n- NDEB-Debit Note ,\n- NABN-Nota de Abono ,\n- FCAP-Factura Cambiaria Pequeño Contribuyente ,\nFCAP-Factura Cambiaria Pequeño Contribuyente ,\n- FACT-Factura with Export Complement .\nFACT-Factura with Export Complement .\nThe localization requires an Infile account, which enables users to\ngenerate electronic documents within Odoo.\nDocumentation on e-invoicingâs legality and compliance in Guatemala\n\n### Glossary\n\nThe following terms are used throughout the Guatemalan localization:\n- SAT : Superintendencia de Administración Tributaria is the government entity responsible for\nenforcing tax payments in Guatemala.\nSAT : Superintendencia de Administración Tributaria is the government entity responsible for\nenforcing tax payments in Guatemala.\n- FEL : Factura Electrónica en LÃnea is the electronic invoicing system mandated by the SAT in\nGuatemala, which requires businesses to issue and manage electronic documents in compliance with\nlocal regulations.\nFEL : Factura Electrónica en LÃnea is the electronic invoicing system mandated by the SAT in\nGuatemala, which requires businesses to issue and manage electronic documents in compliance with\nlocal regulations.\n- EDI : Electronic Data Interchange refers to the sending of electronic documents.\nEDI : Electronic Data Interchange refers to the sending of electronic documents.\n- Infile : is the third-party organization that facilitates the interchange of electronic\ndocuments between companies and the Guatemalan government.\nInfile : is the third-party organization that facilitates the interchange of electronic\ndocuments between companies and the Guatemalan government.\n- UUID : Universally Unique Identifier is a unique alphanumeric code assigned by the SAT to\neach certified electronic document in the FEL system, used for traceability and official\nvalidation.\nUUID : Universally Unique Identifier is a unique alphanumeric code assigned by the SAT to\neach certified electronic document in the FEL system, used for traceability and official\nvalidation.\n- Phrases : Type of Phrases with specific Scenario Codes are used in the Guatemalan localization\nto comply with the requirements of the SAT. They should be added depending on the issuer regime,\nreceiver, and operation type. These phrases are used in the XML and PDF documents.\nPhrases : Type of Phrases with specific Scenario Codes are used in the Guatemalan localization\nto comply with the requirements of the SAT. They should be added depending on the issuer regime,\nreceiver, and operation type. These phrases are used in the XML and PDF documents.\n- Establishment Code : A unique identifier assigned by the SAT to each business establishment,\nwhich is required for electronic invoicing.\nEstablishment Code : A unique identifier assigned by the SAT to each business establishment,\nwhich is required for electronic invoicing.\n- Quetzal : The official currency of Guatemala, represented by the symbol GTQ. This is the base\ncurrency for all financial transactions in the Guatemalan localization.\nQuetzal : The official currency of Guatemala, represented by the symbol GTQ. This is the base\ncurrency for all financial transactions in the Guatemalan localization.\n\n## Configuration\n\n### Modules installation\n\nInstall the following modules to get all the features of the Guatemalan\nlocalization:\nGuatemala - Accounting\n`l10n_gt`\nThe default fiscal localization package . It adds accounting\ncharacteristics for the Guatemalan localization, which represent the minimum configuration\nrequired for a company to operate in Guatemala according to the guidelines set by the SAT .\nThe moduleâs installation automatically loads the chart of accounts and taxes.\nGuatemala Accounting EDI\n`l10n_gt_edi`\nIncludes all the technical and functional requirements to generate and validate Electronics Documents , based on\nthe technical documentation published by the SAT . The authorized documents are listed\nabove .\nOdoo automatically installs the base module Guatemala - Accounting when a database is\ninstalled with Guatemala selected as the country. However, to enable electronic invoicing, the Guatemala Accounting EDI ( l10n_gt_edi ) module needs to be manually installed .\n`Guatemala`\n`l10n_gt_edi`\n\n### Company\n\nTo configure your company information, open the Settings app, scroll down to the Companies section, click Update Info , and configure the following:\n- Company Name\n- Address , including the Street , City , State , ZIP , and Country\nAddress , including the Street , City , State , ZIP , and Country\n- Tax ID : Enter the identification number for the selected taxpayer type.\nTax ID : Enter the identification number for the selected taxpayer type.\n- VAT Affiliation : Select the VAT affiliation for the company, which is the type of\nRegime the company belongs to.\nVAT Affiliation : Select the VAT affiliation for the company, which is the type of\nRegime the company belongs to.\n- Legal Name : The legal name of the company, which is used in the XML and PDF documents.\nLegal Name : The legal name of the company, which is used in the XML and PDF documents.\n- Establishment Code : A necessary part of the XML when creating an electronic document.\nIf this field is not set, all electronic documents will be rejected. To locate the Establishment Code in your SAT account ,\ngo to FEL ⣠Administración de Establecimientos . The list of registered\nestablishments is displayed along with their corresponding codes.\nEstablishment Code : A necessary part of the XML when creating an electronic document.\nIf this field is not set, all electronic documents will be rejected.\nTo locate the Establishment Code in your SAT account ,\ngo to FEL ⣠Administración de Establecimientos . The list of registered\nestablishments is displayed along with their corresponding codes.\nAfter configuring the company in the database settings, navigate to the companyâs contact form\nand verify that the Identification Number Type is set to NIT .\n\n### Electronic invoicing credentials\n\nIn Guatemala, electronic invoicing is mandatory for most businesses. Odoo connects with the\nauthorized provider, Infile, to generate and submit electronic documents to the SAT for\nvalidation.\nBefore issuing electronic documents, you must configure and connect Odoo to Infile to ensure they\nare properly validated and assigned an official UUID .\n\n#### Infile\n\nSign a service agreement directly with Infile . Infile will then provide\nthe necessary credentials to input in Odoo.\n\n#### Odoo\n\nIn Odoo, once you have completed the Infile process, navigate to Accounting â£\nConfiguration ⣠Settings , scroll down to the Guatemalan Localization section, then\nfollow these steps:\n- Select the Infile Web Services environment, either Test or Production .\nSelect the Infile Web Services environment, either Test or Production .\n- Enter the Infile Credentials : Infile WS Username or Prefix Infile Token Infile Key\nEnter the Infile Credentials :\n- Infile WS Username or Prefix\nInfile WS Username or Prefix\n- Infile Token\n- Infile Key\n- Click on Save .\nThe Infile Credentials are provided by Infile and are required for both test and\nproduction environments. If they are not available, contact Infile support.\nThe demo environment is for testing only and does not generate legal documents, UUID keys, or\nfiscal folios. No Infile account or credentials are needed to use the demo environment.\n\n#### Multi-currency\n\nThe official currency exchange rate in Guatemala is provided by the Bank of Guatemala. Odoo can\nconnect directly to its services and get the currency rate either automatically or manually.\n\n### Master data\n\n#### Chart of accounts\n\nThe chart of accounts is installed by default\nas part of the set of data included in the localization module, the accounts are mapped\nautomatically in taxes, default accounts payable, and default accounts receivable.\nAccounts can be added or deleted according to the companyâs needs.\n\n#### Contacts\n\nThe following fields must be completed on contact forms:\n- Company Name\n- Address , including the Street , City , State , ZIP , and Country\nAddress , including the Street , City , State , ZIP , and Country\n- Identification Number : Type : Select an identification type. Number : Required to confirm an electronic invoice.\nIdentification Number :\n- Type : Select an identification type.\nType : Select an identification type.\n- Number : Required to confirm an electronic invoice.\nNumber : Required to confirm an electronic invoice.\nTo automatically include a specific phrase in the XML and PDF of every electronic invoice for a\ncontact, select it in Phrases field in the Sales & purchase tab of the\ncontact form.\n\n#### Taxes\n\nAs part of the Guatemala localization module, taxes are automatically created with their configuration\nand related financial accounts.\n\n## Electronic invoices\n\nOnce the database has been configured successfully, electronic documents can be created and sent.\nOnce customer invoices are validated, they can be sent\nelectronically to SAT via Infile, provided the following fields are completed:\n- Customer : Type the customerâs information.\nCustomer : Type the customerâs information.\n- GT Document Type : Select the type of document you want to create, i.e., FACT - Factura Electrónica or FCAM - Factura Cambiara . By default, the\ndocument type is set to FACT .\nGT Document Type : Select the type of document you want to create, i.e., FACT - Factura Electrónica or FCAM - Factura Cambiara . By default, the\ndocument type is set to FACT .\n- Due date : To compute if the invoice is due now or later.\nDue date : To compute if the invoice is due now or later.\n- Journal : Select the sales journal.\nJournal : Select the sales journal.\n- Products : Specify the product(s) with the correct taxes.\nProducts : Specify the product(s) with the correct taxes.\nWhen done, click Confirm .\nIf you need to add a specific phrase based on the transaction, go to the Other Info tab and add the corresponding phrase in GT Phrases . These phrases are used in the XML\nand PDF documents.\nIf you need to add an addendum to the invoice, you can do so in the Terms and\nConditions field. The addendum will be included in the XML document and can be used to provide\nadditional information or notes related to the invoice.\nAfter the invoice confirmation, click Send . In the wizard that appears, make sure to\nenable the Send to SAT and by Email checkboxes to send the XML to the SAT through Infileâs web service and the validated invoice to the clientâs email, and click Send . Then, the following occurs:\n- The XML document is created.\nThe XML document is created.\n- The UUID is generated.\nThe UUID is generated.\n- The XML is processed synchronously by Infile. If accepted, the file is displayed in the chatter, and the email to the client with the\ncorresponding pdf and xml file is sent. If the file contains errors, a warning message displays the reason(s) and the email is not sent.\nThe XML is processed synchronously by Infile.\n- If accepted, the file is displayed in the chatter, and the email to the client with the\ncorresponding pdf and xml file is sent.\nIf accepted, the file is displayed in the chatter, and the email to the client with the\ncorresponding pdf and xml file is sent.\n`pdf`\n`xml`\n- If the file contains errors, a warning message displays the reason(s) and the email is not sent.\nIf the file contains errors, a warning message displays the reason(s) and the email is not sent.\nThe SAT tab then displays the following:\n- Datetime : Timestamp recorded of the XML creation.\nDatetime : Timestamp recorded of the XML creation.\n- GT Status : Status result obtained in the SAT response. If the file contains errors,\na warning message displays the reason(s) and the email is not sent.\nGT Status : Status result obtained in the SAT response. If the file contains errors,\na warning message displays the reason(s) and the email is not sent.\n- UUID : The unique identifier assigned by the SAT to the electronic document.\nUUID : The unique identifier assigned by the SAT to the electronic document.\n- Download Certificate : To download the sent XML file, even if the SAT result was\nrejected.\nDownload Certificate : To download the sent XML file, even if the SAT result was\nrejected.\n\n### Debit and credit notes\n\nTo send a debit or credit note to Infile, first create the debit or credit note .\nThen, in the Send window, click Send to SAT (Guatemalan EDI) to submit it\nfor real-time validation. Upon successful validation, the QR code from Infile is embedded in the\ndebit or credit note PDF.\n\n### Export invoices\n\nExportation invoices must meet the following conditions:\n- The customerâs Identification type must be VAT , Passport , or Foreign ID .\nThe customerâs Identification type must be VAT , Passport , or Foreign ID .\n- The following fields must be defined in the customer invoiceâs Other Info tab, under\nthe Accounting section: Incoterm GT Phrases : Type 4 Code 1 Consignatory Company\nThe following fields must be defined in the customer invoiceâs Other Info tab, under\nthe Accounting section:\n- Incoterm\n- GT Phrases : Type 4 Code 1\nGT Phrases : Type 4 Code 1\n- Consignatory Company\n- All invoice lines must include taxes set to 0%.\nAll invoice lines must include taxes set to 0%.", "headings": ["Introduction", "Glossary", "Configuration", "Modules installation", "Company", "Electronic invoicing credentials", "Master data", "Electronic invoices", "Debit and credit notes", "Export invoices"], "doc_id": "7eb2b94e1849b3c6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/hong_kong.html", "title": "Hong Kong", "module": "invoicing", "section": "Hong Kong", "text": "# Hong Kong\n\n## Configuration\n\nInstall the following modules to get the latest features of the Hong Kong\nlocalization:\nHong Kong - Accounting\n`l10n_hk`\nThe base module to manage chart of accounting and localization for Hong Kong.\n`l10n_hk_hr_payroll`\nEnables payroll specific localization features for Odoo Payroll app. This module also installs Hong Kong - Payroll with Accounting and Documents - Hong Kong Payroll .\nHong Kong - Payroll with Accounting\nl10n_hk_hr_payroll_account\n`l10n_hk_hr_payroll_account`\nInstalls the link between Hong Kong payroll and accounting.\nDocuments - Hong Kong Payroll\ndocuments_l10n_hk_hr_payroll\n`documents_l10n_hk_hr_payroll`\nIntegrates employee ir56 forms in the Odoo Documents app.\n\n## FPS QR codes on invoices\n\nFPS is a payment service platform that allows customers to make\ninstant domestic payments to individuals and merchants in Hong Kong dollars or Renminbi via online\nand mobile banking.\n\n### Activate QR codes\n\nGo to Accounting app ⣠Configuration ⣠Settings . Under the Customer\nPayments section, tick the checkbox beside the QR Codes feature. Then, click Save .\n\n### FPS bank account configuration\n\nGo to Contacts app ⣠Configuration ⣠Bank Accounts section ⣠Bank Accounts .\nThen select the bank account for FPS activation. Proceed to set the Proxy Type and fill\nin the Proxy Value field, depending on the type chosen.\nRemember to include the invoice number in the QR code, by ticking the Include Reference checkbox.\n- The account holderâs country must be set to Hong Kong on its contact form.\nThe account holderâs country must be set to Hong Kong on its contact form.\n`HongKong`\n- The account holderâs city is mandatory.\nThe account holderâs city is mandatory.\n- You could also include the invoice number in the QR code by checking the Include\nReference checkbox.\nYou could also include the invoice number in the QR code by checking the Include\nReference checkbox.\nBank and cash accounts\n\n### Bank journal configuration\n\nGo to Accounting app ⣠Configuration ⣠Journals and open the bank journal.\nThen, fill out the Account Number and Bank fields, located in the Journal Entries tab.\n\n### Issue invoices with FPS QR codes\n\nWhen creating a new invoice, open the Other Info tab and set the Payment\nQR-code option to EMV Merchant-Presented QR-code .\nEnsure that the Recipient Bank is configured, as Odoo uses this field to generate the\nFPS QR code.", "headings": ["Configuration", "FPS QR codes on invoices", "Activate QR codes", "FPS bank account configuration", "Bank journal configuration", "Issue invoices with FPS QR codes"], "doc_id": "64c6b50143bff641"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/india.html", "title": "India", "module": "invoicing", "section": "India", "text": "# India\n\n## Installation\n\nInstall the following modules to get all the features of the Indian\nlocalization:\n`l10n_in`\nDefault fiscal localization package\n`l10n_in_edi`\nIndian e-invoicing integration\n`l10n_in_edi_ewaybill`\nIndian E-way bill integration\nIndian E-waybill Stock\nl10n_in_ewaybill_stock\n`l10n_in_ewaybill_stock`\nE-waybill creation from the Inventory app\nIndian - Check GST Number Status\n`l10n_in_gstin_status`\nIndian Check GST Number Status\nIndian - GSTR India eFiling\n`l10n_in_reports_gstr`\nIndian GST Return filing\nIndian - Accounting Reports\n`l10n_in_reports`\n\n## GSP configuration\n\nTo use the e-Invoicing , E-Way bill , and GST return filing services in Odoo, configure BVM IT Consulting\nServices India Private Limited as the GSP . To do so,\nfollow these steps :\n- Upgrade the Indian - Accounting ( l10n_in ) module.\nUpgrade the Indian - Accounting ( l10n_in ) module.\n`l10n_in`\n- Go to Accounting ⣠Configuration ⣠Settings .\nGo to Accounting ⣠Configuration ⣠Settings .\n- Scroll down to the Select GSP Provider section, and set the GSP field to BVM IT Consulting .\nScroll down to the Select GSP Provider section, and set the GSP field to BVM IT Consulting .\n- Log into the NIC e-invoice portal and NIC E-Way bill portal and create a new API user for each.\nLog into the NIC e-invoice portal and NIC E-Way bill portal and create a new API user for each.\n- Go to Accounting ⣠Configuration ⣠Settings , scroll down to\nthe Indian Integration section, and enter the new Username and Password for the e-Invoicing and E-Way bill features.\nGo to Accounting ⣠Configuration ⣠Settings , scroll down to\nthe Indian Integration section, and enter the new Username and Password for the e-Invoicing and E-Way bill features.\n\n## Indian Configuration\n\nIn Settings ⣠Users & Companies ⣠Companies , add your PAN and GSTIN . The PAN is essential for determining the type of taxpayer,\nwhile GSTIN is required for generating e-Invoices and E-waybills.\n\n## e-Invoice system\n\nOdoo is compliant with the Indian Goods and Services Tax (GST) e-Invoice system requirements.\n\n### Setup\n\n#### NIC e-Invoice registration\n\nYou must register on the NIC e-Invoice portal to get your API credentials . You need these credentials to configure your Odoo Accounting app .\n- Log in to the NIC e-Invoice portal by clicking Login and entering your Username and Password ; Note If you are already registered on the NIC portal, you can use the same login credentials.\nLog in to the NIC e-Invoice portal by clicking Login and entering your Username and Password ;\nIf you are already registered on the NIC portal, you can use the same login credentials.\n- From the dashboard, go to API Registration ⣠User Credentials ⣠Create API\nUser ;\nFrom the dashboard, go to API Registration ⣠User Credentials ⣠Create API\nUser ;\n- After that, you should receive an OTP code on your registered mobile\nnumber. Enter the OTP code and click Verify OTP ;\nAfter that, you should receive an OTP code on your registered mobile\nnumber. Enter the OTP code and click Verify OTP ;\n- Select Through GSP for the API interface, set BVM IT Consulting Services\nIndia Private Limited as GSP, and type in a Username and Password for\nyour API. Once it is done, click Submit .\nSelect Through GSP for the API interface, set BVM IT Consulting Services\nIndia Private Limited as GSP, and type in a Username and Password for\nyour API. Once it is done, click Submit .\n\n#### Configuration in Odoo\n\nTo enable the e-Invoice service in Odoo, go to Accounting ⣠Configuration â£\nSettings ⣠Indian Electronic Invoicing , and enter the Username and Password previously set for the API.\nAdditionally, make sure the GSP field is configured in the\nAccounting settings.\nTo automatically send e-Invoices to the NIC e-Invoice portal, you must first configure your sales journal by going to Accounting ⣠Configuration ⣠Journals , opening your sales journal, and in the Advanced Settings tab, under Electronic Data\nInterchange , enable E-Invoice (IN) and save.\n\n### Workflow\n\n#### Invoice validation\n\nOnce an invoice is validated, a confirmation message is displayed at the top. Odoo automatically\nuploads the JSON-signed file of validated invoices to the NIC e-Invoice portal after some time. If\nyou want to process the invoice immediately, click Process now .\n- You can find the JSON-signed file in the attached files in the chatter.\nYou can find the JSON-signed file in the attached files in the chatter.\n- You can check the documentâs EDI status under the EDI Document tab or the Electronic invoicing field of the invoice.\nYou can check the documentâs EDI status under the EDI Document tab or the Electronic invoicing field of the invoice.\n\n#### Invoice PDF report\n\nOnce an invoice is validated and submitted, the invoice PDF report can be printed. The report\nincludes the IRN , Ack. No (acknowledgment number) and Ack. Date (acknowledgment date), and QR code. These certify that the invoice is a valid\nfiscal document.\n\n#### e-Invoice cancellation\n\nIf you want to cancel an e-Invoice, go to the Other info tab of the invoice and fill out\nthe Cancel reason and Cancel remarks fields. Then, click Request\nEDI cancellation . The status of the Electronic invoicing field changes to To\nCancel .\nDoing so cancels both the e-Invoice and the E-Way bill .\n- If you want to abort the cancellation before processing the invoice, then click Call\nOff EDI Cancellation .\nIf you want to abort the cancellation before processing the invoice, then click Call\nOff EDI Cancellation .\n- Once you request to cancel the e-Invoice, Odoo automatically submits the JSON-signed file to\nthe NIC e-Invoice portal. You can click Process now if you want to process the\ninvoice immediately.\nOnce you request to cancel the e-Invoice, Odoo automatically submits the JSON-signed file to\nthe NIC e-Invoice portal. You can click Process now if you want to process the\ninvoice immediately.\n\n#### Management of negative lines in e-Invoices\n\nNegative lines are typically used to represent discounts or adjustments associated with specific\nproducts or global discounts. The government portal prohibits the submission of data with negative\nlines, which means they need to be converted based on the HSN code and GST rate. This is done\nautomatically by Odoo.\nConsider the following example:\nDiscount on Product A\nHereâs the transformed representation:\nIn this conversion, negative lines have been transformed into positive discounts, maintaining\naccurate calculations based on the HSN Code and GST rate. This ensures a more straightforward and\nstandardized representation in the E-invoice records.\n\n#### GST e-Invoice verification\n\nAfter submitting an e-Invoice, you can verify if the invoice is signed from the GST e-Invoice system\nwebsite itself.\n- Download the JSON file from the attached files. It can be found in the chatter of the related\ninvoice;\nDownload the JSON file from the attached files. It can be found in the chatter of the related\ninvoice;\n- Open the NIC e-Invoice portal and go to Search ⣠Verify Signed Invoice ;\nOpen the NIC e-Invoice portal and go to Search ⣠Verify Signed Invoice ;\n- Select the JSON file and submit it; If the file is signed, a confirmation message is displayed.\nSelect the JSON file and submit it;\nIf the file is signed, a confirmation message is displayed.\n\n## E-Way bill\n\n### Setup\n\nOdoo is compliant with the Indian Goods and Services Tax (GST) E-waybill system requirements.\n\n#### API registration on NIC E-Way bill\n\nYou must register on the NIC E-Way bill portal to create your API credentials . You need these credentials to configure your Odoo Accounting app .\n- Log in to the NIC E-Way bill portal by clicking Login and entering your Username and Password ;\nLog in to the NIC E-Way bill portal by clicking Login and entering your Username and Password ;\n- From your dashboard, go to Registration ⣠For GSP ;\nFrom your dashboard, go to Registration ⣠For GSP ;\n- Click Send OTP . Once you have received the code on your registered mobile number,\nenter it and click Verify OTP ;\nClick Send OTP . Once you have received the code on your registered mobile number,\nenter it and click Verify OTP ;\n- Check if BVM IT Consulting Services India Private Limited is already on the\nregistered GSP/ERP list. If so, use the username and password used to log in to the NIC portal.\nOtherwise, follow the next step.\nCheck if BVM IT Consulting Services India Private Limited is already on the\nregistered GSP/ERP list. If so, use the username and password used to log in to the NIC portal.\nOtherwise, follow the next step.\n- Select Add/New , select BVM IT Consulting Services India Private Limited as your GSP Name, create a Username and a Password for your API, and\nclick Add .\nSelect Add/New , select BVM IT Consulting Services India Private Limited as your GSP Name, create a Username and a Password for your API, and\nclick Add .\n\n#### Configuration in Odoo\n\nTo set up the E-Way bill service, go to Accounting ⣠Configuration ⣠Settings\n⣠Indian Electronic WayBill ⣠Setup E-Way bill , and enter your Username and Password .\nAdditionally, make sure the GSP field is configured in the\nAccounting settings.\n\n### Workflow\n\n#### Send an E-Way bill\n\nTo send an E-Way bill, confirm the customer invoice/vendor bill and click Send E-Way\nbill .\n\n#### Invoice validation\n\nOnce an invoice/bill has been issued and sent via Send E-Way bill , a confirmation\nmessage is displayed.\n- You can find the JSON-signed file in the attached files in the chatter.\nYou can find the JSON-signed file in the attached files in the chatter.\n- Odoo automatically uploads the JSON-signed file to the government portal after some time. Click Process now if you want to process the invoice/bill immediately.\nOdoo automatically uploads the JSON-signed file to the government portal after some time. Click Process now if you want to process the invoice/bill immediately.\n\n#### Invoice PDF report\n\nYou can print the invoice PDF report once you have submitted the E-Way bill. The report includes the E-Way bill number and the E-Way bill validity date .\n\n#### E-Way bill cancellation\n\nIf you want to cancel an E-Way bill, go to the E-Way bill tab of the related\ninvoice/bill and fill out the Cancel reason and Cancel remarks fields. Then,\nclick Request EDI Cancellation .\nDoing so cancels both the e-Invoice (if applicable) and the E-Way bill .\n- If you want to abort the cancellation before processing the invoice, click Call Off\nEDI Cancellation .\nIf you want to abort the cancellation before processing the invoice, click Call Off\nEDI Cancellation .\n- Once you request to cancel the E-Way bill, Odoo automatically submits the JSON-signed file to\nthe government portal. You can click Process Now if you want to process the invoice\nimmediately.\nOnce you request to cancel the E-Way bill, Odoo automatically submits the JSON-signed file to\nthe government portal. You can click Process Now if you want to process the invoice\nimmediately.\n\n### E-waybill creation from receipts and delivery orders\n\nMake sure the E-Way bill Stock module is installed and\nthe E-Way bill setup is complete.\nTo create E-Way bills from receipts and deliveries in the Inventory\napp, follow these steps:\n- Go to Inventory ⣠Operations ⣠Deliveries or Inventory â£\nOperations ⣠Receipts and select an existing delivery order/receipt or create a new one.\nGo to Inventory ⣠Operations ⣠Deliveries or Inventory â£\nOperations ⣠Receipts and select an existing delivery order/receipt or create a new one.\n- Click Create E-waybill/Challan . Note To create an E-way bill: A delivery order must be in the Done state (i.e., validated) A receipt must have the Ready or Done state.\nClick Create E-waybill/Challan .\nTo create an E-way bill:\n- A delivery order must be in the Done state (i.e., validated)\nA delivery order must be in the Done state (i.e., validated)\n- A receipt must have the Ready or Done state.\nA receipt must have the Ready or Done state.\n- Click Generate e-Waybill to validate the E-Way bill and send it to the NIC E-Way\nbill portal. Tip To use the E-Way bill as a challan for goods deliveries without sending it to the NIC\nE-Waybill portal, click Use as Challan .\nClick Generate e-Waybill to validate the E-Way bill and send it to the NIC E-Way\nbill portal.\nTo use the E-Way bill as a challan for goods deliveries without sending it to the NIC\nE-Waybill portal, click Use as Challan .\nTo print the E-waybill or the challan, click the (gear) icon and select Ewaybill / Delivery Challan .\n\n## Indian Check GSTIN Status\n\nThe Indian - Check GST Number Status module allows you to verify the status of a GSTIN directly from Odoo.\nTo verify the status of a contactâs GST number, access the customerâs/vendorâs form and click Check GSTIN Status next to the GSTIN field.\nTo verify the status of a GST number entered on an invoice/bill, access the invoice/bill and click\nthe ( refresh ) button next to the GST Status field.\nA notification is displayed to confirm the status update and the GSTIN status and verification date\nare logged in the contactâs chatter.\n\n## Indian GST Return filing\n\n### Enable API access\n\nTo file GST Returns in Odoo, you must first enable API access on the GST portal.\n- Log into the GST portal by entering your Username and Password , and go to My Profile on your profile\nmenu ;\nLog into the GST portal by entering your Username and Password , and go to My Profile on your profile\nmenu ;\n- Select Manage API Access , and click Yes to enable API access;\nSelect Manage API Access , and click Yes to enable API access;\nIt is recommended to set the Duration to 30 days to avoid the need for\nfrequent token reauthentication.\n- Doing so enables a Duration drop-down menu. Select the Duration of your\npreference, and click Confirm .\nDoing so enables a Duration drop-down menu. Select the Duration of your\npreference, and click Confirm .\n\n### Indian GST Service In Odoo\n\nOnce you have enabled the API access on the GST portal, you can set up the Indian GST Service in Odoo.\nGo to Accounting ⣠Configuration ⣠Settings ⣠Indian GST Service and enter\nthe GST Username . Click Send OTP , enter the code, and finally, Validate .\nAdditionally, make sure the GSP field is configured in the\nAccounting settings.\n\n### File-in GST Return\n\nWhen the Indian GST Service is configured, you can file your GST return. Go to Accounting ⣠Reporting ⣠India ⣠GST Return periods and create a new GST\nReturn Period if it does not exist. GST Return file-in is done in three steps in Odoo:\nTax Return Periodicity can be configured according to the userâs\nneeds.\n\n#### Send GSTR-1\n\n- Click GSTR-1 Report to verify the GSTR-1 report before\nuploading it to the GST portal . Note The system performs basic validations to ensure compliance with the GST portalâs requirements.\nPossible issues include: Incorrect Tax Application: The tax type does not match the Fiscal Position ( CGST/SGST applied instead of IGST for interstate transactions, or IGST applied instead of CGST/SGST for intrastate transactions). Missing HSN Code: No HSN Code is defined for the product. Invalid HSN Code for Services: The HSN Code for a service does not start with â99â or is\nincorrect. Non-compliant UQC: The Unit Quantity Code (UQC) does not meet Indian GST standards. If any validation fails, the system alerts users with a warning, highlighting the\ndiscrepancies and providing a direct link to the affected lines.\nClick GSTR-1 Report to verify the GSTR-1 report before\nuploading it to the GST portal .\nThe system performs basic validations to ensure compliance with the GST portalâs requirements.\nPossible issues include:\n- Incorrect Tax Application: The tax type does not match the Fiscal Position ( CGST/SGST applied instead of IGST for interstate transactions, or IGST applied instead of CGST/SGST for intrastate transactions).\nIncorrect Tax Application: The tax type does not match the Fiscal Position ( CGST/SGST applied instead of IGST for interstate transactions, or IGST applied instead of CGST/SGST for intrastate transactions).\n- Missing HSN Code: No HSN Code is defined for the product.\nMissing HSN Code: No HSN Code is defined for the product.\n- Invalid HSN Code for Services: The HSN Code for a service does not start with â99â or is\nincorrect.\nInvalid HSN Code for Services: The HSN Code for a service does not start with â99â or is\nincorrect.\n- Non-compliant UQC: The Unit Quantity Code (UQC) does not meet Indian GST standards.\nNon-compliant UQC: The Unit Quantity Code (UQC) does not meet Indian GST standards.\nIf any validation fails, the system alerts users with a warning, highlighting the\ndiscrepancies and providing a direct link to the affected lines.\n- Click Generate to view the report in Spreadsheet view .\nClick Generate to view the report in Spreadsheet view .\n- If the GSTR-1 report is correct, then click Push to GSTN to send it to the GST\nportal . The status of the GSTR-1 report changes to Sending .\nIf the GSTR-1 report is correct, then click Push to GSTN to send it to the GST\nportal . The status of the GSTR-1 report changes to Sending .\n- After a few seconds, the status of the GSTR-1 report changes to Waiting for\nStatus . It means that the GSTR-1 report has been sent to the GST Portal and is\nbeing verified on the GST Portal ;\nAfter a few seconds, the status of the GSTR-1 report changes to Waiting for\nStatus . It means that the GSTR-1 report has been sent to the GST Portal and is\nbeing verified on the GST Portal ;\n- Once more, after a few seconds, the status either changes to Sent or Error\nin Invoice . The status Error in Invoice indicates that some of the invoices are not\ncorrectly filled out to be validated by the GST portal ; If the state of the GSTR-1 is Sent , it means your GSTR-1 report is ready to\nbe filed on the GST portal . If the state of the GSTR-1 is Error in Invoice , invoices can be checked for\nerrors in the chatter. Once issues have been resolved, the user can click Push to GSTN to submit the file again on the GST portal .\nOnce more, after a few seconds, the status either changes to Sent or Error\nin Invoice . The status Error in Invoice indicates that some of the invoices are not\ncorrectly filled out to be validated by the GST portal ;\n- If the state of the GSTR-1 is Sent , it means your GSTR-1 report is ready to\nbe filed on the GST portal .\nIf the state of the GSTR-1 is Sent , it means your GSTR-1 report is ready to\nbe filed on the GST portal .\n- If the state of the GSTR-1 is Error in Invoice , invoices can be checked for\nerrors in the chatter. Once issues have been resolved, the user can click Push to GSTN to submit the file again on the GST portal .\nIf the state of the GSTR-1 is Error in Invoice , invoices can be checked for\nerrors in the chatter. Once issues have been resolved, the user can click Push to GSTN to submit the file again on the GST portal .\n- Click Mark as Filed after filing the GSTR-1 report on the GST portal . The\nstatus of the report changes to Filed in Odoo .\nClick Mark as Filed after filing the GSTR-1 report on the GST portal . The\nstatus of the report changes to Filed in Odoo .\n\n#### Receive GSTR-2B\n\nUsers can retrieve the GSTR-2B Report from the GST portal . This automatically reconciles\nthe GSTR-2B report with your Odoo bills;\n- Click Fetch GSTR-2B Summary to retrieve the GSTR-2B summary. After a few seconds,\nthe status of the report changes to Waiting for Reception . This means Odoo is trying\nto receive the GSTR-2B report from the GST portal ;\nClick Fetch GSTR-2B Summary to retrieve the GSTR-2B summary. After a few seconds,\nthe status of the report changes to Waiting for Reception . This means Odoo is trying\nto receive the GSTR-2B report from the GST portal ;\n- Once more, after a few seconds, the status of the GSTR-2B changes to the Being\nProcessed . It means Odoo is reconciling the GSTR-2B report with your Odoo bills;\nOnce more, after a few seconds, the status of the GSTR-2B changes to the Being\nProcessed . It means Odoo is reconciling the GSTR-2B report with your Odoo bills;\n- Once it is done, the status of the GSTR-2B report changes to either Matched or Partially Matched ; If the status is Matched : If the status is Partially Matched , you can review and modify the bills by\nclicking View Reconciled Bills . This will display categorized discrepancies, such\nas bills missing in Odoo or GSTR-2. After making the necessary corrections, click re-match to update the reconciliation and ensure accuracy before finalizing the\nreport.\nOnce it is done, the status of the GSTR-2B report changes to either Matched or Partially Matched ;\n- If the status is Matched :\nIf the status is Matched :\n- If the status is Partially Matched , you can review and modify the bills by\nclicking View Reconciled Bills . This will display categorized discrepancies, such\nas bills missing in Odoo or GSTR-2. After making the necessary corrections, click re-match to update the reconciliation and ensure accuracy before finalizing the\nreport.\nIf the status is Partially Matched , you can review and modify the bills by\nclicking View Reconciled Bills . This will display categorized discrepancies, such\nas bills missing in Odoo or GSTR-2. After making the necessary corrections, click re-match to update the reconciliation and ensure accuracy before finalizing the\nreport.\n\n#### GSTR-3 report\n\nThe GSTR-3 report is a monthly summary of sales and purchases .\nThis return is auto-generated by extracting information from GSTR-1 and GSTR-2 .\n- Users can compare the GSTR-3 report with the GSTR-3 report available on the GST portal to verify if they match by clicking GSTR-3 Report ;\nUsers can compare the GSTR-3 report with the GSTR-3 report available on the GST portal to verify if they match by clicking GSTR-3 Report ;\n- Once the GSTR-3 report has been verified by the user and the tax amount on the GST portal has been paid. Once paid, the report can be closed by clicking Closing Entry ;\nOnce the GSTR-3 report has been verified by the user and the tax amount on the GST portal has been paid. Once paid, the report can be closed by clicking Closing Entry ;\n- In Closing Entry , add the tax amount paid on the GST portal using challan, and\nclick POST to post the Closing Entry ;\nIn Closing Entry , add the tax amount paid on the GST portal using challan, and\nclick POST to post the Closing Entry ;\n- Once posted, the GSTR-3 report status changes to Filed .\nOnce posted, the GSTR-3 report status changes to Filed .\n\n## Tax reports\n\n### GSTR-1 report\n\nThe GSTR-1 report is divided into sections. It displays the Base amount, CGST , SGST , IGST , and CESS for each section.\n\n### GSTR-3 report\n\nThe GSTR-3 report contains different sections:\n- Details of inward and outward supply subject to a reverse charge ;\nDetails of inward and outward supply subject to a reverse charge ;\n- Eligible ITC ;\n- Values of exempt , Nil-rated , and non-GST inward supply;\nValues of exempt , Nil-rated , and non-GST inward supply;\n- Details of inter-state supplies made to unregistered persons.\nDetails of inter-state supplies made to unregistered persons.\n\n### Profit and Loss (IN) report\n\nThis is a Profit and Loss report that displays the balances for Opening Stock and Closing Stock . It helps users using Continental accounting to accurately determine the cost of\ngoods (i.e Opening Stock + purchases during the period - Closing Stock ).\n\n## TDS/TCS threshold alert\n\nTDS and TCS are tax provisions\nunder Indian law, triggered when transaction amounts exceed specified thresholds. This alert\nnotifies users when the value of invoices or bills surpasses these limits, prompting the application\nof the appropriate TDS/TCS.\nTo configure Odoo to advise you on when to apply TDS/TCS, set the TDS/TCS section field on the corresponding account in the chart of accounts. Odoo will display a banner suggesting\nthe TDS/TCS section under which tax might be applicable when recording an invoice or bill.\n\n### Configuration\n\n- Navigate to Accounting ⣠Configuration ⣠Settings .\nNavigate to Accounting ⣠Configuration ⣠Settings .\n- In the Indian Integration section, enable the TDS and TCS feature.\nIn the Indian Integration section, enable the TDS and TCS feature.\n- Navigate to Accounting ⣠Configuration ⣠Chart of Accounts .\nNavigate to Accounting ⣠Configuration ⣠Chart of Accounts .\n- Click View on the desired account, and set the TDS/TCS Section field.\nClick View on the desired account, and set the TDS/TCS Section field.\nThe TDS/TCS sections are pre-configured with threshold limits. If you need to modify these\nlimits, go to Accounting ⣠Configuration ⣠Taxes . In the Advanced\nOptions tab, click on the (internal link) icon of the Section field.\n\n### Applying TCS/TDS on invoices and bills\n\nBased on the account used on the customer invoice or vendor bill, Odoo checks the TCS/TDS threshold\nlimit. If the limit specified in the TCS/TDS Section of the account is exceeded, Odoo\ndisplays an alert that suggests applying the appropriate TCS/TDS. The alert will disappear once the\nTCS/TDS is applied.\nTCS is directly applicable in the tax on the invoice lines. To apply TDS , click the TDS Entry smart button on the vendor bill/payment. The popup window allows specifying\nthe TDS details. Confirm the entry to apply the TDS.\nIn Odoo, the aggregate total is calculated for partners sharing the same PAN number, across all\ncompany branches.\nTransaction Amount (â¹)\n- Aggregate total = 50,000 + 30,000 + 40,000 + 20,000 + 60,000 = â¹200,000\nAggregate total = 50,000 + 30,000 + 40,000 + 20,000 + 60,000 = â¹200,000\n- The aggregate total for all customers (XYZ Enterprise - GJ, MH, DL) sharing the PAN number\nABCPX1234E across all branches is â¹200,000.\nThe aggregate total for all customers (XYZ Enterprise - GJ, MH, DL) sharing the PAN number\nABCPX1234E across all branches is â¹200,000.", "headings": ["Installation", "GSP configuration", "Indian Configuration", "e-Invoice system", "Setup", "Workflow", "E-Way bill", "Setup", "Workflow", "E-waybill creation from receipts and delivery orders", "Indian Check GSTIN Status", "Indian GST Return filing", "Enable API access", "Indian GST Service In Odoo", "File-in GST Return", "Tax reports", "GSTR-1 report", "GSTR-3 report", "Profit and Loss (IN) report", "TDS/TCS threshold alert", "Configuration", "Applying TCS/TDS on invoices and bills"], "doc_id": "3cc81a5135bfc26a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/indonesia.html", "title": "Indonesia", "module": "invoicing", "section": "Indonesia", "text": "# Indonesia\n\n## Modules\n\nThe following modules related to the Indonesian localization are available:\nIndonesian - Accounting\n`l10n_id`\nThis module includes the default fiscal localization package.\n`l10n_id_efaktur`\nThis module includes the features required to export invoices as e-Faktur.\nIndonesia E-faktur (Coretax)\nl10n_id_efaktur_coretax\n`l10n_id_efaktur_coretax`\nThis module facilitates the generation of XML files for the Coretax system.\n\n## Configuration\n\n### Company\n\nOpen the Settings app, go to the Companies section,\nand click Update Info .\nEnsure the NPWP field contains the Tax Identification Number , as an e-Faktur cannot\nbe generated from an invoice otherwise.\n\n### Contacts\n\nTo configure a partner for e-Faktur, go to their contact form\nand fill in the following Indonesian-specific fields:\n- Is PKP : Check this box to allow e-Faktur generation for the partner.\nIs PKP : Check this box to allow e-Faktur generation for the partner.\n- NPWP : Enter the partnerâs Tax Identification Number.\nNPWP : Enter the partnerâs Tax Identification Number.\n- NIK : If the partner does not have an NPWP , enter the NIK in\nthe Accounting tab under Indonesian taxes .\nNIK : If the partner does not have an NPWP , enter the NIK in\nthe Accounting tab under Indonesian taxes .\n\n### Products\n\nTo set a productâs E-Faktur product code, go to Accounting ⣠Customers â£\nProducts and access the desired product form. In the Indonesian Localization section,\nselect a code in the E-Faktur Product code field. By default, the code is set to 000000 - Barang .\nE-Faktur product codes are pre-generated by Odoo and cannot be edited. Select a code\nfrom the available options.\n\n#### E-Faktur UoM Code\n\nGo to Inventory ⣠Configuration ⣠Settings to make sure the Units of Measure option has been enabled.\nTo configure the E-Faktur UoM code , go to Inventory ⣠Configuration\n⣠UoM Categories . Open a category and select the appropriate E-Faktur UoM Code from\nthe options.\n\n## Accounting\n\n### E-invoicing\n\n#### Generate an E-Faktur XML\n\nAn e-Faktur can be created for an invoice if the customerâs country is Indonesia and the Is PKP checkbox is enabled on their contact form.\nTo generate an e-Faktur XML:\n- Go to Accounting ⣠Customers ⣠Invoices and create an invoice .\nGo to Accounting ⣠Customers ⣠Invoices and create an invoice .\n- In the Other Info tab, under the Electronic Tax section, select a Kode Transaksi code. Note The Kode Transaksi codes are pre-generated by Odoo and cannot be edited.\nIn the Other Info tab, under the Electronic Tax section, select a Kode Transaksi code.\nThe Kode Transaksi codes are pre-generated by Odoo and cannot be edited.\n- After confirming the invoice, click the (Actions) icon and select Download e-faktur .\nAfter confirming the invoice, click the (Actions) icon and select Download e-faktur .\nThe downloaded XML file can then be uploaded to the Coretax system. After the file is generated,\nthe e-Faktur Document (Coretax) field in the invoiceâs Electronic Tax section is populated automatically.\nTo create a batch XML file for several invoices, select them in the invoice list view and\nchoose Download e-faktur from the Actions menu.\n- The tax invoice number is generated by the Coretax system, not by Odoo.\nThe tax invoice number is generated by the Coretax system, not by Odoo.\n- Once an e-Faktur XML file has been downloaded, it cannot be changed. Any subsequent download\nwill retrieve the original file.\nOnce an e-Faktur XML file has been downloaded, it cannot be changed. Any subsequent download\nwill retrieve the original file.\n\n## QRIS QR code on invoices\n\nQRIS is a digital payment system that allows customers to make\npayments by scanning the QR code from their preferred e-wallet.\nAccording to the QRIS API documentation ,\nQRIS expires after 30 minutes. Due to this restriction, the QR code is not included in reports\nsent to customers and is only available on the customer portal.\n\n### Activate QR codes\n\nGo to Accounting ⣠Configuration ⣠Settings . Under the Customer\nPayments section, activate the QR Codes feature.\n\n### QRIS bank account configuration\n\nGo to Contacts ⣠Configuration ⣠Bank Accounts and select the bank account for\nwhich you want to activate QRIS. Set the QRIS API Key and QRIS Merchant ID based on the information provided by QRIS.\nThe account holderâs country must be set to Indonesia on its contact form.\n`Indonesia`\nBank and cash accounts\n\n### Bank journal configuration\n\nGo to Accounting ⣠Configuration ⣠Journals , open the bank journal, then fill\nout the Account Number and Bank under the Journal Entries tab.\n\n### Issue invoices with QRIS QR codes\n\nWhen creating a new invoice, open the Other Info tab and set the Payment\nQR-code option to QRIS .\nEnsure that the Recipient Bank is the one you configured, as Odoo uses this field to\ngenerate the QRIS QR code.", "headings": ["Modules", "Configuration", "Company", "Contacts", "Products", "Accounting", "E-invoicing", "QRIS QR code on invoices", "Activate QR codes", "QRIS bank account configuration", "Bank journal configuration", "Issue invoices with QRIS QR codes"], "doc_id": "86d3c2442ddf5de1"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/italy.html", "title": "Italy", "module": "invoicing", "section": "Italy", "text": "# Italy\n\n## Modules\n\nThe following modules are installed automatically with the Italian localization:\n`l10n_it`\nDefault fiscal localization package\n`l10n_it_edi`\nE-invoice implementation\nItaly - Declaration of Intent\n`l10n_it_edi_doi`\nSupport for the Declaration of Intent (Dichiarazione di Intento)\nItaly - E-invoicing - Additional module to support the debit notes (nota di debito - NDD)\n`l10n_it_edi_ndd`\nAdds payment methods and document types for debit notes\nItaly E-invoicing - Bridge module between Italy NDD and Account Debit Note\nl10n_it_edi_ndd_account_dn\n`l10n_it_edi_ndd_account_dn`\nAdds debit note fields\nItaly - Sale E-invoicing\n`l10n_it_edi_sale`\nSale modifications for E-invoicing\nItaly eCommerce eInvoicing\nl10n_it_edi_website_sale\n`l10n_it_edi_website_sale`\nItalian eCommerce eInvoicing features\nItaly - E-invoicing (Withholding)\nl10n_it_edi_withholding\n`l10n_it_edi_withholding`\nE-invoice withholding\nItaly - Point of Sale\n`l10n_it_pos`\nIntegration of Odoo PoS with the Italian fiscal printer\nItaly - Accounting Reports\n`l10n_it_reports`\nItaly - Bank Receipts (Ri.Ba.)\n`l10n_it_riba`\nGeneration of Ri.Ba. files from batch payments in Odoo\n`l10n_it_stock_ddt`\nTransport documents - Documento di Trasporto (DDT)\nItaly - Tax Report XML Export\n`l10n_it_xml_export`\nExport of the Italian monthly tax report to XML format\nIn some cases, such as when upgrading to a version with additional modules, it is possible that\nmodules may not be installed automatically. Any missing modules can be manually installed .\nDocumentation on e-invoicingâs legality and compliance in Italy\n\n### Company\n\nConfiguring the companyâs information ensures your Accounting database is properly set up. To add\ninformation, open the Settings app, navigate to the Companies section, and click Update info . Then, fill out the fields:\n- Address : the address of the company;\nAddress : the address of the company;\n- VAT : VAT of the company;\nVAT : VAT of the company;\n- Codice Fiscale : the fiscal code of the company;\nCodice Fiscale : the fiscal code of the company;\n- Tax System : the tax system under which the company falls;\nTax System : the tax system under which the company falls;\n\n### Taxes configuration\n\nMany of the e-invoicing features are implemented using Odooâs tax system. As such, taxes must be\nproperly configured to generate invoices correctly and handle other billing use cases.\nThe Italian localization contains predefined examples of taxes for various purposes.\n\n#### Tax exemption\n\nThe use of sale taxes that amount to zero percent (0%) is required by Italian authorities to\nkeep track of the exact Tax Exemption Kind (Natura) and Law Reference that\njustify the exemption operated on an invoice line.\nThe export tax in the EU can be used as reference ( 0% EU , invoice label 00eu ). It can be\nfound under Accounting ⣠Configuration ⣠Taxes . Exports are exempt from VAT,\nand therefore, they require Exoneration kind and Law Reference filled in.\n`0%EU`\n`00eu`\nThere are many Tax Exemption Kind (Natura) and Law Reference codes. Make\nsure you check the latest version available to get the latest information on:\n- Italian authorities documentation\nItalian authorities documentation\n- Official guide on Tax exemption\nOfficial guide on Tax exemption\nIf you need to use a different kind of exoneration, go to Accounting â£\nConfiguration ⣠Taxes , select a similar tax, then click on the cog icon and select Duplicate . In the Advanced Options tab, add the Exoneration and Law Reference . To confirm click Save .\nRename your taxes in the Name field according to their Exoneration to\ndifferentiate them easily.\n\n## Reverse charge\n\nThe reverse charge mechanism is a VAT rule that shifts the liability to pay VAT from the\nsupplier to the customer. The customers pay the VAT themselves to the AdE instead. There are different types:\n- Internal Reverse Charge (for domestic sales) The VAT responsibility is shifted to the buyer for certain categories of products and services.\n- External Reverse Charge (for intra-EU sales) VAT is due in the country of the delivery or in the country where the service is performed. When\nthe buyer is itself an Italian business, then the EU offers a mechanism that allows the seller\nto transfer his responsibility to the buyer.\n\n### Invoices\n\nReverse-charged customer invoices show no VAT amount, but the AdE requires the seller to specify the Tax Exemption reason and the Law\nReference that enable the reverse-charge mechanism. Odoo provides a set of special 0% taxes that\ncan be assigned to each reverse-charged invoice lines, representing the most commonly used\nconfigurations.\n\n### Vendor bills\n\nItalian companies subjected to Reverse Charge must send the information in the bill received to the AdE .\nSelf-reported VAT XML files must be issued and sent to the AdE for reverse charged bills.\nWhen creating a vendor bill, reverse charge taxes are available to be added in the Taxes field. You can check which taxes are available by going to Accounting ⣠Configuration ⣠Taxes , you can see that the 10% Goods and 22%\nServices taxes are activated, among others. Due to the automated configuration of the Italian fiscal\nposition, these are automatically activated in the tax list.\n\n### Tax grids\n\nThe Italian localization has a specific tax grid section for reverse charge taxes. These tax grids are identifiable by the VJ tag, and can be\nfound by going to Accounting ⣠Reporting ⣠Tax Return .\n\n## E-invoicing\n\nMake sure all the Italian-specific e-invoicing modules are installed .\nThe SdI is the electronic invoicing system used in Italy. It enables the sending\nand receiving of electronic invoices to and from customers. The documents must be in an XML EDI format called FatturaPA and formally validated by the\nsystem before being delivered.\nTo be able to receive invoices and notifications, the SdI service\nmust be notified that the userâs files need to be sent to Odoo and processed on their behalf. To do\nso, you must set up Odooâs Destination Code on the AdE portal.\n- Go to Italian authorities portal and\nauthenticate;\nGo to Italian authorities portal and\nauthenticate;\n- Go to section Fatture e Corrispettivi ;\nGo to section Fatture e Corrispettivi ;\n- Set the user as Legal Party for the VAT number you wish to configure the electronic address;\nSet the user as Legal Party for the VAT number you wish to configure the electronic address;\n- In Servizi Disponibili ⣠Fatturazione Elettronica ⣠Registrazione\ndellâindirizzo telematico dove ricevere tutte le fatture elettroniche , insert Odooâs Destination Code K95IV18 , and confirm.\nIn Servizi Disponibili ⣠Fatturazione Elettronica ⣠Registrazione\ndellâindirizzo telematico dove ricevere tutte le fatture elettroniche , insert Odooâs Destination Code K95IV18 , and confirm.\n`K95IV18`\n\n### EDI Mode and authorization\n\nSince the files are transmitted through Odooâs server before being sent to the SdI or received by your database, you need to authorize Odoo to process your files\nfrom your database. To do so, go to Accounting ⣠Configuration ⣠Settings and\nscroll to the Italian Electronic Invoicing section.\nThere are three modes available:\n- Demo This mode simulates an environment in which invoices are sent to the government. In this mode,\ninvoices need to be manually downloaded as XML files and uploaded to the AdE âs website.\n- Test (experimental) This mode sends invoices to a non-production (i.e., test) service made available by the AdE . Saving this change directs all companies on the database to\nuse this configuration.\n- Official This is a production mode that sends your invoices directly to the AdE .\nOnce a mode is selected, you need to accept the terms and conditions by ticking Allow\nOdoo to process invoices , and then Save . You can now record your transactions in Odoo\nAccounting.\nSelecting either Test (experimental) or Official is irreversible .\nFor example, once in Official mode, it is not possible to select Test\n(experimental) or Demo . We recommend creating a separate database for testing\npurposes only.\nWhen in Test (Experimental) mode, all invoices sent must have a partner using one\nof the following fake Destination Code given by the AdE : 0803HR0 - N8MIMM9 - X9XX79Z . Any real production Codice Destinario of your customers will not be recognized as valid by the test service.\n`0803HR0`\n`N8MIMM9`\n`X9XX79Z`\n\n### Process\n\nThe submission of invoices to the SdI for Italy is an electronic\nprocess used for the mandatory transmission of tax documents in XML format between companies and the AdE to reduce errors and verify the correctness of operations.\nYou can check the current status of an invoice by the SdI State field. The XML file\nis attached to the invoice.\n\n#### XML Documents creation\n\nOdoo generates the required XML files as attachments to invoices in the FatturaPA format required\nby the AdE . Once the invoices needed are selected, click the Send button.\n`FatturaPA`\nWhen the pop-up window opens there is a selection of actions that can be taken. Generate\nXML File generates the attachments.\nThe XML file as well as the PDF once can be found attached to the invoice.\nAfter choosing the desired actions, click send .\n\n#### Submission to SDI\n\nThe Send to Tax Agency sends the attachment to the Proxy Server , which\ngathers all requests and then forwards them via a WebServices channel to the SdI . Check the sending status of the invoice through the Check Sending button at the top of the invoiceâs view.\n\n#### Processing by SDI\n\nThe SdI receives the document and verifies for any errors. At this\nstage, the invoice is in the SdI Processing state, as shown on the invoice. The invoice\nalso gets assigned a FatturaPA Transaction number that is shown in the Electronic Invoicing tab. The checks may take variable time, ranging from a few seconds\nup to a day, depending on the queue of invoices sent throughout Italy.\n\n#### Acceptance\n\nIf the document is valid, it is recorded and considered fiscally valid by the AdE , which will proceed with archiving in Substitute Storage (Conservazione\nSostitutiva) if explicitly requested on the Agencyâs portal.\nOdoo does not offer the Conservazione Sostitutiva requirements. Other providers\nand AdE supply free and certified storage to meet the\nspecifications requested by law.\nThe SdI Destination Code attempts to forward the\ninvoice to the customer at the provided address, whether it is a PEC email address or a SdI Destination Code for their ERPâs WebServices\nchannels. A maximum of 6 attempts are made every 12 hours, so even if unsuccessful, this process can\ntake up to three days. The invoice status is Accepted by SDI, Forwarding to Partner .\n`PEC`\n\n#### Possible Rejection\n\nThe SdI may find inaccuracies in the compilation, possibly even\nformal ones. In this case, the invoice is in the SDI Rejected state. The SdI âs observations are inserted at the top of the Invoice tab. To resolve the\nissue, it is sufficient to delete the attachments of the invoice, return the invoice to Draft , and fix the errors. Once the invoice is ready, it can be resent.\nTo regenerate the XML, both the XML attachment and the PDF report must be deleted, so that they\nare then regenerated together. This ensures that both always contain the same data.\n\n#### Forwarding Completed\n\nThe invoice has been delivered to the customer; however, you can still send a copy to the customer\nin PDF via email or post. Its status is Accepted by SDI, Delivered to Partner .\nIf the SdI cannot contact your customer, they may not be\nregistered on the AdE portal. In this case, just make sure to send\nthe invoice in PDF via email or by mail. The invoice is then in the Accepted by SDI,\nPartner Delivery Failed state.\n\n### Tax Integration\n\nWhen you receive a vendor bill, either from SdI , from paper or\nfrom an imported XML file, the Tax Agency might request that you send some tax information\nintegration back to the SdI . It happens when a transaction that\nwas tax exempt becomes taxable for any reason.\nHere is a non-exhaustive list:\n- Reverse charge As a buyer, you have to pay taxes on what you buy and integrate tax information. Reverse Charge taxes.\n- Split Payment As a PA business buyer, you have to pay taxes and integrate\ntax information. Be sure that you replace the 0% Sale Taxes on the vendor bill\nyou received with the correct Split Payment taxes.\n- Self Consumption When, as a business owner, you use an asset that you bought for business for personal reasons\ninstead, you have to pay those taxes you originally deducted as a business cost for it.\nOdoo may detect that your vendor bill can be interpreted as a document of a type that needs tax\nintegration, as detailed in the Document Types section.\nBe sure that you replace the 0% Sale Taxes on the vendor bill you received with the\nones youâre supposed to pay to the AdE . A button then appears on\nthe top of the single vendor bill form to send them.\nWhen clicking on the Send Tax Integration button, an XML file of the appropriate Document Type is generated, attached to the bill, and sent as for invoices.\n\n### Document Types\n\nThe SdI requires businesses to send customer invoices and other\ndocuments through the EDI .\nThe following Document Type codes all technically identify different business use cases.\n\n#### TD01 - Invoices\n\nThis represents the standard domestic scenario for all invoices exchanged through the SdI . Any invoice that doesnât fall into one of the specific special cases\nis categorized as a regular invoice, identified by the Document Type TD01 .\n`TD01`\n\n#### TD02 - Down payments\n\nDown payment invoices are imported/exported with a different Document Type code TDO2 than regular invoices. Upon import of the invoice, a regular vendor bill is created.\n`TDO2`\nOdoo exports transactions as TD02 if the following conditions are met:\n`TD02`\n- It is an invoice;\n- All invoice lines are related to down payment sales order lines.\nAll invoice lines are related to down payment sales order lines.\n\n#### TD04 - Credit notes\n\nIt is the standard scenario for all credit notes issued to domestic clients, when we need to\nformally acknowledge that the seller is reducing or cancelling a previously issued invoice, for\nexample, in case of overbilling, incorrect items, or overpayment. Just like invoices, they must be\nsent to the SdI , their Document Type TD04\n`TD04`\n\n#### TD07, TD08, TD09 - Simplified Invoicing\n\nSimplified invoices ( TD07 ), credit notes ( TD08 ), and debit notes ( TD09 ) can be used to certify\ndomestic transactions under 400 EUR (VAT included). Its status is the same as that of a regular\ninvoice, but with fewer information requirements.\n`TD07`\n`TD08`\n`TD09`\nFor a simplified invoice to be established, it must include:\n- Customer Invoice reference: unique numbering sequence with no gaps ;\nCustomer Invoice reference: unique numbering sequence with no gaps ;\n- Invoice Date : issue date of the invoice;\nInvoice Date : issue date of the invoice;\n- Company Info : the seller âs full credentials (VAT/TIN\nnumber, name, full address);\nCompany Info : the seller âs full credentials (VAT/TIN\nnumber, name, full address);\n- VAT : the buyer âs VAT/TIN number (on the partner form);\nVAT : the buyer âs VAT/TIN number (on the partner form);\n- Total : the total amount (VAT included) of the invoice.\nTotal : the total amount (VAT included) of the invoice.\nIn the EDI , Odoo exports invoices as simplified if:\n- It is a domestic transaction (i.e., the partner is from Italy);\nIt is a domestic transaction (i.e., the partner is from Italy);\n- Your companyâs required fields ( VAT Number or Codice Fiscale , Fiscal Regime , and full address ) are provided;\nYour companyâs required fields ( VAT Number or Codice Fiscale , Fiscal Regime , and full address ) are provided;\n- The partnerâs address is not fully specified (i.e., it misses the City or the ZipCode);\nThe partnerâs address is not fully specified (i.e., it misses the City or the ZipCode);\n- The total amount of VAT included is less than 400 EUR .\nThe total amount of VAT included is less than 400 EUR .\nThe 400 EUR threshold was defined in the decree of the 10th of May 2019 in the Gazzetta\nUfficiale . We advise you to\ncheck the current official value.\n\n#### TD16 - Internal Reverse Charge\n\nInternal reverse charge transactions (see Tax exemption and Reverse charge ) are exported as TD16 if the following conditions are\nmet:\n`TD16`\n- It is a vendor bill;\n- It has at least one tax on the invoice lines that targets one of these tax grids : VJ6 , VJ7 , VJ8 , VJ12 , VJ13 , VJ14 , VJ15 , VJ16 , VJ17\nIt has at least one tax on the invoice lines that targets one of these tax grids : VJ6 , VJ7 , VJ8 , VJ12 , VJ13 , VJ14 , VJ15 , VJ16 , VJ17\n`VJ6`\n`VJ7`\n`VJ8`\n`VJ12`\n`VJ13`\n`VJ14`\n`VJ15`\n`VJ16`\n`VJ17`\n\n#### TD17 - Buying services from abroad\n\nWhen buying services from EU and non-EU countries, the foreign seller invoices a\nservice with a VAT-excluded price, as it is not taxable in Italy. The VAT is paid by the buyer in Italy.\n- Within the EU: the buyer integrates the invoice received with the VAT information due in\nItaly (i.e., vendor bill tax integration );\nWithin the EU: the buyer integrates the invoice received with the VAT information due in\nItaly (i.e., vendor bill tax integration );\n- Non-EU: the buyer sends themselves an invoice (i.e., self-billing ).\nNon-EU: the buyer sends themselves an invoice (i.e., self-billing ).\nOdoo exports a transaction as TD17 if the following conditions are met:\n`TD17`\n- It is a vendor bill;\n- It has at least one tax on the invoice lines that targets the tax grid VJ3 ;\nIt has at least one tax on the invoice lines that targets the tax grid VJ3 ;\n- All invoice lines either have Services as products , or a tax with the Services as tax scope .\nAll invoice lines either have Services as products , or a tax with the Services as tax scope .\n\n#### TD18 - Buying goods from EU\n\nInvoices issued within the EU follow a standard format , therefore only an integration of the\nexisting invoice is required.\nOdoo exports a transaction as TD18 if the following conditions are met:\n`TD18`\n- It is a vendor bill;\n- The partner is from an EU country;\nThe partner is from an EU country;\n- It has at least one tax on the invoice lines that targets the tax grid VJ9 ;\nIt has at least one tax on the invoice lines that targets the tax grid VJ9 ;\n- All invoice lines either have Consumable as products , or a tax with Goods as tax scope .\nAll invoice lines either have Consumable as products , or a tax with Goods as tax scope .\n\n#### TD19 - Buying goods from VAT deposit\n\nBuying goods from a foreign vendor, but the goods are already in Italy in a VAT\ndeposit .\n- From the EU: the buyer integrates the invoice received with the VAT information due in\nItaly (i.e., vendor bill tax integration );\nFrom the EU: the buyer integrates the invoice received with the VAT information due in\nItaly (i.e., vendor bill tax integration );\n- Non-EU: the buyer sends an invoice to themselves (i.e., self-billing ).\nNon-EU: the buyer sends an invoice to themselves (i.e., self-billing ).\nOdoo exports a transaction as a TD19 if the following conditions are met:\n`TD19`\n- It is a vendor bill;\n- It has at least one tax on the invoice lines that targets the tax grid VJ3 ;\nIt has at least one tax on the invoice lines that targets the tax grid VJ3 ;\n- All invoice lines either have Consumables as products, or a tax with Goods as tax scope .\nAll invoice lines either have Consumables as products, or a tax with Goods as tax scope .\n\n#### TD24 - Deferred invoices\n\nThe deferred invoice is an invoice that is issued at a later time than the sale of goods or\nthe provision of services. A deferred invoice has to be issued at the latest within the 15th\nday of the month following the delivery covered by the document.\nIt usually is a summary invoice containing a list of multiple sales of goods or services carried\nout in the month. The business is allowed to group the sales into one invoice , generally\nissued at the end of the month for accounting purposes. Deferred invoices are default for wholesalers having recurrent clients.\nIf the goods are transported by a carrier , every delivery has an associated Documento di\nTransporto (DDT) , or Transport Document . The deferred invoice must indicate the details of\nall the DDTs information for better tracing.\nE-invoicing of deferred invoices requires the l10n_it_stock_ddt module . In this case, a dedicated Document Type TD24 is\nused in the e-invoice.\n`l10n_it_stock_ddt`\n`TD24`\nOdoo exports transactions as TD24 if the following conditions are met:\n`TD24`\n- It is an invoice;\n- It is associated with deliveries whose DDTs have a different date than the issue date of\nthe invoice.\nIt is associated with deliveries whose DDTs have a different date than the issue date of\nthe invoice.\n\n#### TD28 - San Marino\n\nSan Marino and Italy have special agreements on e-invoicing operations. As such, invoices follow\nthe regular reverse charge rules. You can use the proper Document Type depending on\nthe invoice type: TD01 , TD04 , TD05 , TD24 , TD25 . Additional requirements are not enforced\nby Odoo. However, the user is requested by the State to:\n`TD01`\n`TD04`\n`TD05`\n`TD24`\n`TD25`\n- Select a tax with the Tax Exemption Kind set to N3.3 ;\nSelect a tax with the Tax Exemption Kind set to N3.3 ;\n`N3.3`\n- Use the generic SdI Destination Code 2R4GTO8 .\nUse the generic SdI Destination Code 2R4GTO8 .\n`2R4GTO8`\nThe invoice is then routed by a dedicated office in San Marino to the correct business.\nWhen a paper bill is received from San Marino, any Italian company must submit that invoice\nto the AdE by indicating the e-invoiceâs Document Type field with the special value TD28 .\n`TD28`\nOdoo exports a transaction as TD28 if the following conditions are met:\n`TD28`\n- It is a vendor bill;\n- It has at least one tax on the invoice lines that targets the tax grids VJ ;\nIt has at least one tax on the invoice lines that targets the tax grids VJ ;\n- The country of the partner is San Marino .\nThe country of the partner is San Marino .\n\n## Public Administration Businesses (B2G)\n\nPA businesses are subjected to more control than private businesses\nas they handle public money coming from taxpayers. The EDI process adds some steps to the regular one , as PA businesses can accept or refuse invoices.\nPA businesses have a 6-digit long Destination Code ,\nalso called CUU , that is mandatory , PEC address cannot\nbe used in this case.\nComplete list of businesses that belong to the Public Administration along with their\nDestination Code\n\n### CIG, CUP, DatiOrdineAcquisto\n\nTo ensure the effective traceability of payments by public administrations, electronic invoices\nissued to public administrations must contain:\n- The CIG , except in cases of exclusion from traceability\nobligations provided by law n. 136 of August 13, 2010;\nThe CIG , except in cases of exclusion from traceability\nobligations provided by law n. 136 of August 13, 2010;\n- The CUP , in case of invoices related to public works.\nThe CUP , in case of invoices related to public works.\nIf the XML file requires it, the AdE can only proceed payments of\nelectronic invoices when the XML file contains a CIG and CUP .\nThe CUP and the CIG must\nbe included in one of the DatiOrdineAcquisto , DatiContratto , DatiConvenzione , DateRicezione , or DatiFattureCollegate XML tags.\n`DatiOrdineAcquisto`\n`DatiContratto`\n`DatiConvenzione`\n`DateRicezione`\n`DatiFattureCollegate`\nThese correspond to the elements named CodiceCUP and CodiceCIG of the\nelectronic invoice XML file, whose table can be found on the government website .\n\n### Split Payment\n\nThe Split Payment mechanism behaves much like Reverse charge .\nWhen an Italian company bills a PA business - for example,\ncleaning services for a public building - the PA business\nself-reports the VAT to the Tax Agency themselves, and the vendor just has to select the\nappropriate tax with the right Tax Exemption for their invoice lines.\nThe specific Scissione dei Pagamenti fiscal position is available to deal with partners\nbelonging to the PA .\n\n### Process\n\n#### Qualified electronic signature\n\nInvoices and bills intended for the PA must include a qualified\nelectronic signature when submitted through the SdI . This\nsignature is automatically applied in the XAdES format\nwhen the invoiceâs partner has a 6-digit long Destination Code (which indicates a PA business).\nWhen such an invoice is transmitted to the Tax Agency, the generated .xml file is signed on the\nOdoo servers, returned to the database, and attached to the invoice automatically.\n`.xml`\n\n#### Acceptance or Refusal\n\nAfter receiving the invoice through the SdI , the PA business has 15 days to accept the invoice. If it does, then the process ends here.\nIf the PA business refuses the invoice, it is still considered valid\nonce it is accepted by the SdI . You then have to issue a credit\nnote to compensate and send it to the SdI .\n\n#### Expired Terms\n\nIf the PA business doesnât reply within 15 days, you need to contact\nthe PA business directly, sending them both the invoice and the\nreceived deadline notification by email. You can make an arrangement with them and manually set the\ncorrect SdI State on your invoice.\n\n## Point of Sale fiscal printers\n\nFiscal printers are distinct from ePOS printers . The IP address for a fiscal\nprinter should not be entered in the ePOS IP address settings.\nFiscal regulations mandate using certified RT devices, such as RT printers or RT servers, to ensure\ncompliant sales receipts and secure communication with the Tax Authority. These devices\nautomatically transmit fiscal data daily. RT printers, designed for individual POS terminals, handle\ntransactions, print receipts, and report to the authorities, ensuring data integrity and compliance.\n\n### Simulation mode\n\nSince the simulation mode sends data to the authorities, it should only be enabled at the very\nstart of the printerâs configuration process. Once the printer is switched to the production\nmode, it cannot be reverted to the simulation mode.\nTo test the fiscal printer setup with Odoo, configure the fiscal printer in the simulation mode\nas follows:\n- Make sure the fiscal printer is set to its default state: printer on, start-up cycle complete,\nand no transaction in progress.\nMake sure the fiscal printer is set to its default state: printer on, start-up cycle complete,\nand no transaction in progress.\n- Type 3333 .\n`3333`\n- Press Chiave . The screen displays Scelta Funzione .\nPress Chiave . The screen displays Scelta Funzione .\n- Type 14 . The screen displays Apprendimento .\nType 14 . The screen displays Apprendimento .\n`14`\n- Type 62 . The screen displays Simulazione .\nType 62 . The screen displays Simulazione .\n`62`\n- To turn the no into a si , press X .\nTo turn the no into a si , press X .\n- To confirm, press Contante .\nTo confirm, press Contante .\n- Press Chiave .\nTo configure the printer for production, repeat the steps above.\nTo test the printer configuration, the physical device must first be obtained and registered with\nthe relevant authorities.\n\n### Setting up the printer to work with Odoo\n\nFiscal printers are meant to work only in the local network. This means the printer and the\ndevice running Odoo Point of Sale must be connected to\nthe same network.\nFiscal printers are typically configured to use HTTP by default. To ensure compatibility with Odoo,\nthe settings must be updated to enable HTTPS support on the printer. This can be done using either\nthe EpsonFPWizard configuration software or the keyboard connected to the printer.\nTo set up the fiscal printer using the keyboard, follow these steps:\n- Make sure the fiscal printer is set to its default state: printer on, start-up cycle complete,\nand no transaction in progress.\nMake sure the fiscal printer is set to its default state: printer on, start-up cycle complete,\nand no transaction in progress.\n- Type 3333 .\n`3333`\n- Press Chiave . The screen displays Scelta Funzione .\nPress Chiave . The screen displays Scelta Funzione .\n- Type 34 . The screen displays Web Server .\nType 34 . The screen displays Web Server .\n`34`\n- Press Contante 3 times until the screen displays Web Server: SSL .\nPress Contante 3 times until the screen displays Web Server: SSL .\n- To turn the value 0 into a 1 , press X .\nTo turn the value 0 into a 1 , press X .\n`0`\n`1`\n- To confirm, press Contante 3 times.\nTo confirm, press Contante 3 times.\n- Press Chiave .\nThen, log in to the printer with the device that runs Odoo Point of Sale so it recognizes the printerâs certificate.\nTo approve and install the printerâs certificate, follow these steps:\n- Access the printer by opening a web browser and entering https://<ip-of-your-printer> in the\naddress bar. A Warning: Potential Security Risk Ahead security message appears.\nAccess the printer by opening a web browser and entering https://<ip-of-your-printer> in the\naddress bar. A Warning: Potential Security Risk Ahead security message appears.\n`https://<ip-of-your-printer>`\n- Click Advanced to show the certificate approval options.\nClick Advanced to show the certificate approval options.\n- Click Proceed to validate the certificate.\nClick Proceed to validate the certificate.\nThen, to ensure Odoo Point of Sale is configured with the\nfiscal printer, go to Point of Sale ⣠Configuration ⣠Settings . In the Connected Devices section, add the IP address in the Italian Fiscal Printer\nIP address and enable Use HTTPS .\n\n## Ri.Ba. (Ricevuta Bancaria)\n\nRi.Ba. is a payment method widely used in Italy where vendors request\npayments through their bank, which forwards the request to the customerâs own bank and takes\nresponsibility for the collection. This enables payment automation and reduces risks for the vendor.\nThe vendor generally uploads a fixed-format text file with the list of payments to the bankâs web\nportal.\n- Ri.Ba. are exclusively for domestic payments in Italy. For\nrecurring international payments, please use SEPA Direct Debt (SDD)\nRi.Ba. are exclusively for domestic payments in Italy. For\nrecurring international payments, please use SEPA Direct Debt (SDD)\n\n### Configuration\n\n- Check that the l10n_it_riba module is installed .\nCheck that the l10n_it_riba module is installed .\n`l10n_it_riba`\n- Go to Settings ⣠Users & Companies ⣠Companies and select the company that\nwill use Ri.Ba. .\nGo to Settings ⣠Users & Companies ⣠Companies and select the company that\nwill use Ri.Ba. .\n- Fill out the required SIA Code . Note The SIA Code identifies businesses within the Italian banking network and is used\nto receive money through specific payment methods. It consists of one letter and four digits\n(e.g., T1234) and can usually be found on the bankâs portal or obtained by contacting the\nbank.\nFill out the required SIA Code .\nThe SIA Code identifies businesses within the Italian banking network and is used\nto receive money through specific payment methods. It consists of one letter and four digits\n(e.g., T1234) and can usually be found on the bankâs portal or obtained by contacting the\nbank.\n- Ensure the Companyâs bank account has an Italian IBAN. See also How to configure Bank Accounts\nEnsure the Companyâs bank account has an Italian IBAN.\nHow to configure Bank Accounts\n\n### Accept Ri.Ba. for your invoices\n\nPayments of type Ri.Ba. can be registered from the Invoices ( Accounting ⣠Customers ⣠Invoices ).\nMake sure that your invoice involves a Partner that has a bank account with an Italian IBAN.\nThen, all Payments must be grouped in a Batch Payment .\n- Batch Payments\n- Create a Batch Payment\nCreate a Batch Payment\nOnce you press the Validate button for the Batch Payment, the Ri.Ba. file is generated and attached to the Batch Payment, so you can download it and upload it\nthrough your bankâs web portal.", "headings": ["Modules", "Company", "Taxes configuration", "Reverse charge", "Invoices", "Vendor bills", "Tax grids", "E-invoicing", "EDI Mode and authorization", "Process", "Tax Integration", "Document Types", "Public Administration Businesses (B2G)", "CIG, CUP, DatiOrdineAcquisto", "Split Payment", "Process", "Point of Sale fiscal printers", "Simulation mode", "Setting up the printer to work with Odoo", "Ri.Ba. (Ricevuta Bancaria)", "Configuration", "Accept Ri.Ba. for your invoices"], "doc_id": "2b9a6c15f87ae85e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/jordan.html", "title": "Jordan", "module": "invoicing", "section": "Jordan", "text": "# Jordan\n\n## Modules\n\nThe following modules are installed automatically with the Jordanian localization:\n`l10n_jo`\nJordanian fiscal localization package , complete with\nthe Jordanian chart of accounts, taxes, tax report, and fiscal positions\n`l10n_jo_edi`\nIntegration module for JoFotara to support Jordanian e-invoicing requirements\nIn some cases, such as when upgrading to a version with additional modules, it is possible that\nmodules may not be installed automatically. Any missing modules can be manually installed .\nJordan Payroll localization documentation\n\n## Localization overview\n\nThe Jordanian localization package ensures compliance with Jordanian fiscal and accounting\nregulations. It includes tools for managing taxes, fiscal positions, reporting, and a predefined\nchart of accounts tailored to Jordanâs standards.\nThe Jordanian localization package provides the following key features to ensure compliance with\nlocal fiscal and accounting regulations:\n- Chart of accounts : a predefined structure tailored to Jordanian\naccounting standards\nChart of accounts : a predefined structure tailored to Jordanian\naccounting standards\n- Taxes : pre-configured tax rates, including standard VAT, zero-rated,\nand exempt options\nTaxes : pre-configured tax rates, including standard VAT, zero-rated,\nand exempt options\n- Fiscal positions (tax and account mapping) : automated tax adjustments based on customer or\nsupplier registration status\nFiscal positions (tax and account mapping) : automated tax adjustments based on customer or\nsupplier registration status\n- Tax reporting : detailed overview of your net tax liability\nTax reporting : detailed overview of your net tax liability\n- E-invoicing (JoFotara) : integration for electronic invoicing\nin line with Jordanian government requirements\nE-invoicing (JoFotara) : integration for electronic invoicing\nin line with Jordanian government requirements\n\n### Taxes\n\nThe following taxes are available by default with the Jordanian\nlocalization package:\n- standard sales tax (16%): applied to most goods and services within Jordan.\nstandard sales tax (16%): applied to most goods and services within Jordan.\n- exempt transactions: for sales and services not subject to VAT, such as financial services or\nhealthcare.\nexempt transactions: for sales and services not subject to VAT, such as financial services or\nhealthcare.\n- export tax (0%): zero-rated tax applied to goods and services exported outside Jordan.\nexport tax (0%): zero-rated tax applied to goods and services exported outside Jordan.\n\n### Tax reporting\n\nThe VAT summary provides a detailed breakdown of\ntaxable, zero-rated, and exempt transactions. Like other financial reports , the VAT summary can be filtered by period, compared against other\nperiods, and exported in Excel and PDF formats, ensuring compliance with Jordanian tax laws.\n\n## E-invoicing with JoFotara\n\nE-invoicing with JoFotara is integrated with Odoo, ensuring compliance with Jordanian governmentâs\ntechnical and legal requirements for electronic invoicing. The JoFotara integration in Odoo directly\nconnects with the Jordanian e-invoicing platform, allowing companies to:\n- generate compliant electronic invoices\ngenerate compliant electronic invoices\n- submit invoices in real time for validation\nsubmit invoices in real time for validation\n- track invoice statuses directly within Odoo\ntrack invoice statuses directly within Odoo\nThe integration requires first creating an account with JoFotara, then generating API credentials,\nand finally entering those credentials in your Odoo database to link the two.\nGovernment manuals provide instructions for creating an account and generating the API\ncredentials.\n\n### Configuration\n\n#### Link Odoo to JoFotara\n\n- If you donât already have an account, create one by going to the government manuals page and following the steps in the Procedure Manual for Joining the Jordanian National\nElectronic Invoicing System .\nIf you donât already have an account, create one by going to the government manuals page and following the steps in the Procedure Manual for Joining the Jordanian National\nElectronic Invoicing System .\n- Generate API credentials (Activity Number, Secret Key, and Client ID) by going to the government\nmanuals page and following the steps in Procedure Manual for Linking to the\nJordanian National Electronic Invoicing System .\nGenerate API credentials (Activity Number, Secret Key, and Client ID) by going to the government\nmanuals page and following the steps in Procedure Manual for Linking to the\nJordanian National Electronic Invoicing System .\n- In your Odoo database, go to Accounting ⣠Configuration ⣠Settings . In the Electronic Invoicing (Jordan) section, enter the API credentials generated\npreviously: Activity Number (income source sequence) JoFotara Secret Key JoFotara Client ID\nIn your Odoo database, go to Accounting ⣠Configuration ⣠Settings . In the Electronic Invoicing (Jordan) section, enter the API credentials generated\npreviously:\n- Activity Number (income source sequence)\nActivity Number (income source sequence)\n- JoFotara Secret Key\n- JoFotara Client ID\n- Enter the Taxpayer type : Unregistered in the sales tax : for businesses not registered for sales tax. No tax\non the invoice line is required. Registered in the sales tax : for businesses registered under the standard sales tax\nsystem. One tax computed as a percentage is required per invoice line. Registered in the special sales tax : for businesses subject to special sales tax\nregulations. One tax computed as a percentage and one fixed tax per invoice line are required\nper invoice.\nEnter the Taxpayer type :\n- Unregistered in the sales tax : for businesses not registered for sales tax. No tax\non the invoice line is required.\nUnregistered in the sales tax : for businesses not registered for sales tax. No tax\non the invoice line is required.\n- Registered in the sales tax : for businesses registered under the standard sales tax\nsystem. One tax computed as a percentage is required per invoice line.\nRegistered in the sales tax : for businesses registered under the standard sales tax\nsystem. One tax computed as a percentage is required per invoice line.\n- Registered in the special sales tax : for businesses subject to special sales tax\nregulations. One tax computed as a percentage and one fixed tax per invoice line are required\nper invoice.\nRegistered in the special sales tax : for businesses subject to special sales tax\nregulations. One tax computed as a percentage and one fixed tax per invoice line are required\nper invoice.\n- Click Save .\nIf the Electronic Invoicing (Jordan) section is missing from the Settings , make sure the Jordan E-Invoicing module is installed .\n\n#### Company and customers\n\nThe JoFotara invoicing workflow requires address information related to the company that sends the\ninvoices and the customers who receive them:\n- Go to Settings ⣠Users & Companies ⣠Companies and select the company that\nwill use JoFotara.\nGo to Settings ⣠Users & Companies ⣠Companies and select the company that\nwill use JoFotara.\n- Fill in the Company Name , Tax ID (TIN), and Country . If\ndesired, fill in additional optional fields such as Street , City , State , and ZIP . Important The Country must be set to Jordan . The Company Name must match the name that is registered with the Income and\nSales Tax Department (ISTD). The companyâs Currency must be set to JOD .\nFill in the Company Name , Tax ID (TIN), and Country . If\ndesired, fill in additional optional fields such as Street , City , State , and ZIP .\n- The Country must be set to Jordan .\nThe Country must be set to Jordan .\n- The Company Name must match the name that is registered with the Income and\nSales Tax Department (ISTD).\nThe Company Name must match the name that is registered with the Income and\nSales Tax Department (ISTD).\n- The companyâs Currency must be set to JOD .\nThe companyâs Currency must be set to JOD .\n- Go to Accounting ⣠Customers ⣠Customers .\nGo to Accounting ⣠Customers ⣠Customers .\n- For each customer whose invoices will be sent to JoFotara, click on the customer to open the form\nview, and complete the Country and Tax ID . If desired, fill in additional\noptional fields such as Street , City , State , and ZIP .\nFor each customer whose invoices will be sent to JoFotara, click on the customer to open the form\nview, and complete the Country and Tax ID . If desired, fill in additional\noptional fields such as Street , City , State , and ZIP .\n\n### Sending invoices to JoFotara via Odoo\n\nOnce the company has been linked with JoFotara and\nthe company and customers have been properly configured , invoices can be sent to JoFotara via Odoo:\n- Go to Accounting ⣠Customers ⣠Invoices and open a confirmed (posted)\ninvoice.\nGo to Accounting ⣠Customers ⣠Invoices and open a confirmed (posted)\ninvoice.\n- Click Send .\n- In the Send window, select JoFotara (Jordan EDI) and click Send .\nIn the Send window, select JoFotara (Jordan EDI) and click Send .\nWhen an invoice is sent to JoFotara, Odoo does the following:\n- generates the invoice in the required format (UBL 1.2)\ngenerates the invoice in the required format (UBL 1.2)\n- submits the invoice to JoFotara for validation\nsubmits the invoice to JoFotara for validation\n- receives the QR code from JoFotara on the invoiceâs PDF\nreceives the QR code from JoFotara on the invoiceâs PDF\n- Multiple invoices can be sent at once to JoFotara.\nMultiple invoices can be sent at once to JoFotara.\n- From the Invoices list view, filter the invoices by their JoFotara State to see the invoices that have either been sent or\nnot been sent to JoFotara.\nFrom the Invoices list view, filter the invoices by their JoFotara State to see the invoices that have either been sent or\nnot been sent to JoFotara.\n- In the ( adjust settings ) menu, add the JoFotara State and JoFotara Error fields to see the sending state and\nany errors in the list view, respectively.\nIn the ( adjust settings ) menu, add the JoFotara State and JoFotara Error fields to see the sending state and\nany errors in the list view, respectively.\nThere is an inherent difference in how values are approximated in Odoo and ISTD due to the\ndiffering system architectures. JOD values in Odoo are stored and approximated to three decimals,\nwhereas ISTD expects values to have nine decimals. As a result, an insignificant difference is\ninevitable and arises between the values stores in Odoo and the values reported to ISTD, which\ncan have an error margin of <0.001.\n\n#### JoFotara State\n\nThe JoFotara State field in the Other Info tab of confirmed invoices\nreflects the current state of the document in JoFotara. It can be changed manually to reflect the\nactual state of the invoices in cases where a technical error or timeout prevents Odoo from updating\nit automatically.\n\n#### Validating QR codes (Sanad app)\n\nTo validate the QR code received from JoFotara on the invoice, follow these steps:\n- Install the Sanad app .\nInstall the Sanad app .\n- Navigate to More .\n- Click on Validate document and scan the QR code.\nClick on Validate document and scan the QR code.\n- Review results.\n\n#### Debit and credit notes\n\nTo send a debit or credit note to JoFotara, first create the debit or credit note . In the Send window, click JoFotara (Jordan EDI) to submit it for real-time validation. Upon successful validation,\nthe QR code from JoFotara is embedded in the debit or credit note PDF.\nEnsure that the Reason for generating a debit/credit note aligns with ISTD\nregulations.\n\n#### Discounts\n\nJoFotara does not support negative quantities or negative prices on invoice lines. As a result,\nglobal discount and fixed amount discount functionality are not supported.\nDiscounts must be applied per invoice line as a percentage instead of as a global discount or\nfixed amount.\nAttempting to submit invoices to JoFotara with negative invoice lines will result in validation\nerrors.", "headings": ["Modules", "Localization overview", "Taxes", "Tax reporting", "E-invoicing with JoFotara", "Configuration", "Sending invoices to JoFotara via Odoo"], "doc_id": "6ee6f1173f34399c"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/kenya.html", "title": "Kenya", "module": "invoicing", "section": "Kenya", "text": "# Kenya\n\n## Configuration\n\nInstall the ð°ðª Kenyan fiscal localization package to get\nall the features of the Kenyan localization.\n\n## eTIMS\n\nThe Kenya Revenue Authority (KRA) has implemented the electronic Tax Invoice Management System (eTIMS) for tax collection.\nTo submit documents through eTIMS, you must use an OSCU that\nintegrates with the existing Trader Invoicing System (TIS) , such as the one provided by Odoo.\nThe OSCU is used to validate, encrypt, sign, transmit, and store tax invoices.\nMake sure to install the Kenya eTIMS EDI modules to use the OSCU\ndevice fully.\n\n### OSCU device initialization\n\nThe OSCU must be initialized before use. To do so, navigate to Settings ⣠General\nSettings , click Update Info in the Companies section, and enter your Tax ID .\nTo initialize the OSCU:\n- Go to Settings ⣠General Settings and scroll down to the Kenya\neTIMS Integration section.\nGo to Settings ⣠General Settings and scroll down to the Kenya\neTIMS Integration section.\n- Set the eTIMS Server Mode to Test for the initialization.\nSet the eTIMS Server Mode to Test for the initialization.\n- Enter the Serial Number of the device and tick the two check boxes.\nEnter the Serial Number of the device and tick the two check boxes.\n- Click Initialize OSCU .\nClick Initialize OSCU .\nThree server modes are available:\n- Demo : Designed for demo purposes; it uses mock data and does not require an\ninitialized OSCU;\nDemo : Designed for demo purposes; it uses mock data and does not require an\ninitialized OSCU;\n- Test : Used to test the connection to eTIMS;\nTest : Used to test the connection to eTIMS;\n- Production : Used for live databases that are ready to send data.\nProduction : Used for live databases that are ready to send data.\nIf your device has already been initialized (through another ERP, for example), enable the Developer mode (debug mode) . Then, in the Kenya eTIMS Integration section,\nenter the ID of the unit in the Unit ID field and the key obtained through a previous\ninitialization in the CMC Key field. Click Save when done.\nOnce the OSCU module has been initialized , an OSCU serial number\nis generated for each company on that database with its country set to Kenya . The\nserial number is generated based on the VAT number of the company (regardless of its validity). It\nis a unique and sequential serial number starting with the prefix ODOO followed by the companyâs VAT number and a sequence of numbers.\n`ODOO`\n\n### Registering on eTIMS\n\nTaxpayers must sign up and create an account on the KRA portal .\nIf you do not have an account yet:\n- Sign up, enter your PIN , and verify that all information is correct, including your phone\nnumber, email address, and postal address. Correct any errors on the iTax page .\nSign up, enter your PIN , and verify that all information is correct, including your phone\nnumber, email address, and postal address. Correct any errors on the iTax page .\n- An OTP is sent to the phone number provided. Unblock promotional\nmessages if you do not receive it.\nAn OTP is sent to the phone number provided. Unblock promotional\nmessages if you do not receive it.\n- Upload the business owner ID or directorâs ID (as listed on iTax), along with the\nfilled-out and signed commitment form .\nUpload the business owner ID or directorâs ID (as listed on iTax), along with the\nfilled-out and signed commitment form .\n- On the eTIMS dashboard , click Service request at the top of the page. Select OSCU as the eTIMS type , enter Odoo KE LTD as the third-party integrator, and\nenter your companyâs OSCU serial number retrieved earlier.\nOn the eTIMS dashboard , click Service request at the top of the page. Select OSCU as the eTIMS type , enter Odoo KE LTD as the third-party integrator, and\nenter your companyâs OSCU serial number retrieved earlier.\n`OdooKELTD`\nService request approvals are usually quick. If thereâs a delay, contact the eTIMS operation\nor KRA office.\n- Part 1: Fill in the taxpayerâs information.\nPart 1: Fill in the taxpayerâs information.\n- Part 2: Fill in the business ownerâs or directorâs information.\nPart 2: Fill in the business ownerâs or directorâs information.\n- Part 3: Fill in your unique serial number found in Odoo.\nPart 3: Fill in your unique serial number found in Odoo.\n- Part 4: Tick OSCU , enter Odoo KE LTD PIN PO52112956W , and enter the Odoo version youâre\nusing (17.0 or onwards).\nPart 4: Tick OSCU , enter Odoo KE LTD PIN PO52112956W , and enter the Odoo version youâre\nusing (17.0 or onwards).\n`PO52112956W`\n- Part 5: Check the mandatory boxes, enter a date, and sign.\nPart 5: Check the mandatory boxes, enter a date, and sign.\n\n### eTIMS codes\n\nCommon standard codes are automatically fetched from the KRA eTIMS API servers every two days.\nTo fetch them manually, proceed as follows:\n- Enable the Developer mode (debug mode) .\nEnable the Developer mode (debug mode) .\n- Go to Settings ⣠Technical ⣠Automation: Scheduled Actions and search for KE eTIMS: Fetch KRA standard codes .\nGo to Settings ⣠Technical ⣠Automation: Scheduled Actions and search for KE eTIMS: Fetch KRA standard codes .\n- Click the action in the list, then click Run Manually to fetch the codes.\nClick the action in the list, then click Run Manually to fetch the codes.\nGo to Accounting ⣠Configuration ⣠KE OSCU Codes to view the complete list of\nfetched OSCU codes.\n\n### UNSPSC codes\n\nThe KRA needs UNSPSC codes for a product to be registered . UNSPSC codes are automatically fetched from the KRA eTIMS API servers every day. To fetch them manually, proceed as follows:\n- Enable the Developer mode (debug mode) .\nEnable the Developer mode (debug mode) .\n- Go to Settings ⣠Technical ⣠Automation: Scheduled Actions and search for KE eTIMS: Fetch UNSPSC codes from eTIMS .\nGo to Settings ⣠Technical ⣠Automation: Scheduled Actions and search for KE eTIMS: Fetch UNSPSC codes from eTIMS .\n- Click the action in the list, then click Run Manually to fetch the codes.\nClick the action in the list, then click Run Manually to fetch the codes.\nGo to the product form , and in the Accounting tab, click the UNSPSC\nCategory field to view the complete list of fetched UNSPSC codes.\n\n### Notices\n\nNotices are automatically fetched from the KRA eTIMS API servers every day. To fetch them manually , proceed as follows:\n- Enable the Developer mode (debug mode) .\nEnable the Developer mode (debug mode) .\n- Go to Settings ⣠Technical ⣠Automation: Scheduled Actions and search for KE eTIMS: Fetch KRA notices from eTIMS .\nGo to Settings ⣠Technical ⣠Automation: Scheduled Actions and search for KE eTIMS: Fetch KRA notices from eTIMS .\n- Click the action in the list, then click Run Manually to fetch the notices.\nClick the action in the list, then click Run Manually to fetch the notices.\nGo to Accounting ⣠Configuration ⣠KE OSCU Notices to view the complete list of\nfetched notices.\n\n### Multi-company\n\nIf you have multiple companies , you can centralize and manage them\nall on a single Odoo database. The KRA identifies and differentiates the parent company from\nits subsidiaries by using IDs. Furthermore, subsidiaries are classified as branches of the parent company.\nTo configure the companyâs ID, open the Settings app, click Update Info in the Companies section, and search for the eTIMS Branch Code field. The parent\ncompany has a branch ID equal to 00 in a multi-company environment. Companies that are not the\nparent company have a branch ID other than 00 and are assigned an ID by the KRA.\n`00`\n`00`\nTo fetch the branch ID from the KRA for your non-parent companies, ensure the parent company has\na Kenyan Tax ID and the OSCU device has been initialized .\nThen, go to the Branches tab and click Populate from KRA .\n- The KRA considers each place of supply as a separate branch (ID).\nThe KRA considers each place of supply as a separate branch (ID).\n- The OSCU device must be initialized independently for each\nbranch.\nThe OSCU device must be initialized independently for each\nbranch.\n\n### Contact branch ID\n\nTo attribute a branch ID to a contact, access the contact form, go to the Accounting tab, and enter the branch code in the eTIMS Branch Code field.\nBy default, contactsâ branch IDs are set to OO .\n`OO`\n\n### KRA sequences\n\nOdoo invoice sequences and KRA sequences are different .\nIn Odoo, invoice sequences depend on the parent company . Parent companies can see the invoices\nof branches, but branches cannot see the parent companyâs invoices or those of other branches.\nThe KRA needs independent sequences per branch. Therefore, Odoo manages sequences individually\nper branch.\nIf you have a parent company with two branches, the invoice sequence would be the following:\n- Creating an invoice on branch 1 : INV/2024/00001;\nCreating an invoice on branch 1 : INV/2024/00001;\n- Creating an invoice on branch 2 : INV/2024/00002;\nCreating an invoice on branch 2 : INV/2024/00002;\n- Creating an invoice on the parent company : INV/2024/00003.\nCreating an invoice on the parent company : INV/2024/00003.\nThis is how Odoo manages sequences to be compliant with the KRA regulations:\n- Creating an invoice on branch 1 : INV/2024/00001;\nCreating an invoice on branch 1 : INV/2024/00001;\n- Creating an invoice on branch 2 : INV/2024/00001;\nCreating an invoice on branch 2 : INV/2024/00001;\n- Creating an invoice on the parent company : INV/2024/00001.\nCreating an invoice on the parent company : INV/2024/00001.\n\n## Insurance\n\nFor health service providers , you can send insurance information about the parent and branch\ncompanies and update it in eTIMS. To do so, go to Accounting ⣠Configuration â£\nSettings , scroll to the Kenya eTIMS Integration section, and fill in the Code , Name , and Rate fields. Click Send Insurance\nDetails when done.\n\n## Product registration\n\nThe KRA requires products to be registered first before conducting business operations (such as\nstock movements, BOM , customer invoices, etc.). For a product to be\nregistered, the following fields must be defined on the product form:\n- In the General Information tab: Cost .\nIn the General Information tab: Cost .\n- In the Accounting tab: Packaging Unit ; Packaging Quantity ; Origin Country ; eTIMS Product Type ; Insurance Applicable ; UNSPSC Category .\nIn the Accounting tab:\n- Packaging Unit ;\n- Packaging Quantity ;\n- Origin Country ;\n- eTIMS Product Type ;\n- Insurance Applicable ;\nInsurance Applicable ;\n- UNSPSC Category .\nIf the elements above are defined, the product is automatically registered while sending the\noperation to the KRA. If not, you will be alerted by a yellow banner at the top of the screen\ninviting you to check the missing elements.\n\n## Stock movements\n\nAll stock movements must be sent to the KRA. They do not require an invoice if they are\ninternal operations or stock adjustments; therefore, Odoo automatically sends them if at least one\nof the following conditions are met:\n- No contact is set for the move;\nNo contact is set for the move;\n- The contact is your parent company or a branch of the parent company.\nThe contact is your parent company or a branch of the parent company.\nIf the stock moves are external operations (e.g., to contacts that are not part of the parent\ncompany or its branches), the stock moves are automatically sent after the invoice is sent to\neTIMS.\n- The stock move must be confirmed before sending the invoice to eTIMS.\nThe stock move must be confirmed before sending the invoice to eTIMS.\n- The product(s) must be registered for the stock move to be\nsent to eTIMS. If the product has not been registered yet, a yellow banner will prompt the\nproductsâ registration.\nThe product(s) must be registered for the stock move to be\nsent to eTIMS. If the product has not been registered yet, a yellow banner will prompt the\nproductsâ registration.\n\n## Purchases\n\nOdoo automatically fetches new vendor bills from eTIMS every day. You need to confirm the fetched\nvendor bills and send the confirmation to the KRA. To confirm a vendor bill, it must be linked to\none or several confirmed purchase order line(s).\nIn the case of purchases (not customs imports), the steps to link purchase order lines with bills\nare the following:\n- Go to Accounting ⣠Vendors ⣠Bills .\nThe vendor bill is fetched from the KRA servers. The JSON file is available in the chatter of the\nvendor bill if needed.\nGo to Accounting ⣠Vendors ⣠Bills .\nThe vendor bill is fetched from the KRA servers. The JSON file is available in the chatter of the\nvendor bill if needed.\n- Odoo looks at the Tax ID (PIN) of the vendor (partner); If it is unknown, a new contact (partner) is created. If it is known and the branch ID is the same, Odoo uses the known contact.\nOdoo looks at the Tax ID (PIN) of the vendor (partner);\n- If it is unknown, a new contact (partner) is created.\nIf it is unknown, a new contact (partner) is created.\n- If it is known and the branch ID is the same, Odoo uses the known contact.\nIf it is known and the branch ID is the same, Odoo uses the known contact.\n- In the fetched bill from the KRA, select the Product . Each vendor bill must contain\na product to be confirmed and sent to eTIMS later on.\nIn the fetched bill from the KRA, select the Product . Each vendor bill must contain\na product to be confirmed and sent to eTIMS later on.\n- Odoo checks existing purchase order lines matching the product(s) entered at the previous step\nand the partner (if any). Click the Purchase Order Line field, and select the correct\nrelated purchase order line(s) matching the product(s). The quantities on the bill must be the\nsame as the received quantities indicated on the purchase order. If no existing purchase order line matches the lines of the fetched bill, click Create Purchase Order and create a purchase order based on the unmatched line(s). Validate the resulting stock move and Confirm the bill.\nOdoo checks existing purchase order lines matching the product(s) entered at the previous step\nand the partner (if any). Click the Purchase Order Line field, and select the correct\nrelated purchase order line(s) matching the product(s). The quantities on the bill must be the\nsame as the received quantities indicated on the purchase order.\nIf no existing purchase order line matches the lines of the fetched bill, click Create Purchase Order and create a purchase order based on the unmatched line(s). Validate the resulting stock move and Confirm the bill.\n- Set a method in the eTIMS Payment Method field..\nSet a method in the eTIMS Payment Method field..\n- Once all steps are completed, click Send to eTIMS to send the vendor bill. When the\nvendor bill has been confirmed on eTIMS, the KRA invoice number can be found in the eTIMS Details tab.\nOnce all steps are completed, click Send to eTIMS to send the vendor bill. When the\nvendor bill has been confirmed on eTIMS, the KRA invoice number can be found in the eTIMS Details tab.\n\n## Invoicing\n\nThe KRA does not accept sales if the product is not in stock.\nThis is the advised sales flow in Odoo when selling:\n- Create a sales order .\nCreate a sales order .\n- Validate the delivery.\nValidate the delivery.\n- Confirm the invoice.\n- Click Send , and then enable Send to eTIMS .\nClick Send , and then enable Send to eTIMS .\n- Click Send to send the invoice.\nClick Send to send the invoice.\nOnce the invoice has been sent and signed by the KRA, the following information can be found on\nit:\n- KRA invoice number ;\n- Mandatory KRA invoice fields, such as SCU information , date , SCU ID , receipt\nnumber , item count , internal date , and receipt signature ;\nMandatory KRA invoice fields, such as SCU information , date , SCU ID , receipt\nnumber , item count , internal date , and receipt signature ;\n- The KRA tax table ;\n- A unique KRA QR code for the signed invoice.\nA unique KRA QR code for the signed invoice.\n\n## Imports\n\nCustoms import codes are automatically fetched from the KRA eTIMS API servers every day. To\nfetch them manually, proceed as follows:\n- Enable the Developer mode (debug mode) .\nEnable the Developer mode (debug mode) .\n- Go to Settings ⣠Technical ⣠Automation: Scheduled Actions and search for KE eTIMS: Receive Customs Imports from the OSCU .\nGo to Settings ⣠Technical ⣠Automation: Scheduled Actions and search for KE eTIMS: Receive Customs Imports from the OSCU .\n- Click the action in the list, then click Run Manually to fetch the codes.\nClick the action in the list, then click Run Manually to fetch the codes.\nGo to Accounting ⣠Vendors ⣠Customs Imports to view the imported codes.\nThe following steps are required to send and have customs imports signed by the KRA:\n- Go to Accounting ⣠Vendors ⣠Customs Imports ; The customs import is fetched\nautomatically from the KRA.\nGo to Accounting ⣠Vendors ⣠Customs Imports ; The customs import is fetched\nautomatically from the KRA.\n- Match the imported item with an existing registered product in the Product field (or\ncreate a product if no related product exists).\nMatch the imported item with an existing registered product in the Product field (or\ncreate a product if no related product exists).\n- Set a vendor in the Partner field.\nSet a vendor in the Partner field.\n- Based on the partner, match the imported item with its related purchase order (see purchase steps ). The stock must be correctly adjusted when the customs\nimport is approved. If no related purchase order exists, create one and Confirm it. Then, confirm the\ndelivery by clicking Receive Products , then Validate on the purchase\norder.\nBased on the partner, match the imported item with its related purchase order (see purchase steps ). The stock must be correctly adjusted when the customs\nimport is approved.\nIf no related purchase order exists, create one and Confirm it. Then, confirm the\ndelivery by clicking Receive Products , then Validate on the purchase\norder.\n- Click Match and Approve or Match and Reject , depending on the\nsituation of the goods.\nClick Match and Approve or Match and Reject , depending on the\nsituation of the goods.\nThe JSON file received from the KRA is attached to the chatter of the customs import.\n\n## BOM\n\nThe KRA requires all BOMs to be sent to them. To send BOMs to eTIMS, the product and its components must be registered . To access a productâs BOM, click on the\nproduct and then click the Bill of Materials smart button.\nMake sure the KRAâs required fields are filled in the KRA eTIMS details section of the Accounting tab in the product form, and\nclick Send to eTIMS . The successful sending of the BOM is confirmed in the chatter,\nwhere you can also find the sent information in an attached JSON file.\n\n## Credit notes\n\nThe KRA does not accept credit notes with quantities or prices higher than the initial invoice. When\ncreating a credit note, a KRA reason must be indicated: In the credit note form, go to the eTIMS Details tab, select the eTIMS Credit Note Reason , and then select the\ninvoice number in the Reversal of field.", "headings": ["Configuration", "eTIMS", "OSCU device initialization", "Registering on eTIMS", "eTIMS codes", "UNSPSC codes", "Notices", "Multi-company", "Contact branch ID", "KRA sequences", "Insurance", "Product registration", "Stock movements", "Purchases", "Invoicing", "Imports", "BOM", "Credit notes"], "doc_id": "ea4c64beca282ebd"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/luxembourg.html", "title": "Luxembourg", "module": "invoicing", "section": "Luxembourg", "text": "# Luxembourg\n\n## Modules\n\nThe following modules are installed automatically with the Luxembourgish localization:\nLuxembourg - Accounting\n`l10n_lu`\nDefault fiscal localization package\nLuxembourg - Accounting Reports\n`l10n_lu_reports`\nCountry-specific reports\nIn some cases, such as when upgrading to a version with additional modules, it is possible that\nmodules may not be installed automatically. Any missing modules can be manually installed .\nDocumentation on e-invoicingâs legality and compliance in Luxembourg\n\n## Localization overview\n\nThe Luxembourgish localization includes the following features:\n- Chart of accounts : a predefined set of accounts that follows the\ncurrent official accounting standards (PCN 2020)\nChart of accounts : a predefined set of accounts that follows the\ncurrent official accounting standards (PCN 2020)\n- Taxes : pre-configured tax rates, including standard (17%),\nreduced (14%, 8%, and 3%) and zero-rated VAT, intra-community, and zero-rated export taxes\nTaxes : pre-configured tax rates, including standard (17%),\nreduced (14%, 8%, and 3%) and zero-rated VAT, intra-community, and zero-rated export taxes\n- Fiscal positions (tax and account mapping) : automated account and tax adjustments based on\ncustomer or supplier\nFiscal positions (tax and account mapping) : automated account and tax adjustments based on\ncustomer or supplier\n- E-invoicing : E-invoicing with Peppol\nE-invoicing : E-invoicing with Peppol\n- Tax reporting : detailed overview of your VAT liability, and\ngeneration of monthly and annual VAT declarations in XML format to upload to the eCDF\nplatform\nTax reporting : detailed overview of your VAT liability, and\ngeneration of monthly and annual VAT declarations in XML format to upload to the eCDF\nplatform\n- FAIA audit file export : generation of audit files in the FAIA (Luxembourgish SAF-T) format\nFAIA audit file export : generation of audit files in the FAIA (Luxembourgish SAF-T) format\n\n### Taxes\n\nThe following taxes are available by default with the Luxembourgish\nlocalization package:\n- standard VAT (17%): applied to most goods and services within Luxembourg\nstandard VAT (17%): applied to most goods and services within Luxembourg\n- reduced VAT (14%, 8%, and 3%): applied to some goods and services within Luxembourg\nreduced VAT (14%, 8%, and 3%): applied to some goods and services within Luxembourg\n- zero-rated VAT: applied to goods and services not subject to VAT\nzero-rated VAT: applied to goods and services not subject to VAT\n- intra-community VAT: applied to goods and services sold to or purchased from VAT-registered\npersons located in other EU countries\nintra-community VAT: applied to goods and services sold to or purchased from VAT-registered\npersons located in other EU countries\n- export tax (0%): zero-rated tax applied to goods and services exported outside Luxembourg\nexport tax (0%): zero-rated tax applied to goods and services exported outside Luxembourg\n\n### E-invoicing\n\nOdoo users in Luxembourg can register on the Peppol network, which\nallows exchanging e-invoices and credit notes with other participants on the network.\nThe e-invoice format in Luxembourg is BIS Billing 3.0 .\nE-invoicing via Peppol is mandatory for all B2G transactions in Luxembourg.\n\n## Tax reporting\n\nIn Luxembourg, companies must submit a VAT declaration on a monthly, quarterly, or annual basis to\nthe tax office, depending on their turnover. Companies that submit a monthly or quarterly\ndeclaration are also required to submit the annual declaration.\nBoth monthly/quarterly and annual VAT declarations can be exported as XML files to upload on the eCDF platform .\n\n### Monthly / quarterly declaration\n\nGo to Accounting ⣠Reporting ⣠Tax Report .\nIn the Report selector, select Tax Report (LU) .\nIn the ( Period ) selector, choose the month or quarter for which to\ngenerate the declaration.\nCheck the amounts generated for all four sections of the report.\nIf you sold to customers under a VAT exemption for SMEs during the period, you need to manually\nenter the value of such sales in the editable fields at section I, items 481 and 482. To find the\namounts for these items, you can use the Partner Ledger report:\n- Go to Accounting ⣠Reporting ⣠Partner Ledger .\nGo to Accounting ⣠Reporting ⣠Partner Ledger .\n- In the ( Period ) selector, choose the appropriate month or\nquarter.\nIn the ( Period ) selector, choose the appropriate month or\nquarter.\n- In the ( Account ) selector, choose Receivable .\nIn the ( Account ) selector, choose Receivable .\n- In the ( Partners ) selector, choose the partners that fall under\nthe exemption.\nIn the ( Partners ) selector, choose the partners that fall under\nthe exemption.\n- Copy the total Balance for those partners for the given period.\nCopy the total Balance for those partners for the given period.\nOnce the declaration is correct, click the ( action menu ) icon, then click XML to export and download it in XML format. You can then submit the XML file on the\neCDF platform.\n\n### Annual declaration\n\n#### Account tag configuration\n\nThe following configuration allows values to be generated automatically for sections I and III, and\nAppendix A of the report, based on journal entries that impact accounts associated with each report\nline.\nThis requires using a different account for\neach type of operation subject to VAT, output and input VAT, and expense listed in those sections.\nAssign the following account tags to accounts you use for each type\nof operation subject to VAT listed in the declaration, if applicable:\n- 001 - Supply of inhouse manufactured goods\n001 - Supply of inhouse manufactured goods\n`001-Supplyofinhousemanufacturedgoods`\n- 002 - Supply of goods not manufactured inhouse\n002 - Supply of goods not manufactured inhouse\n`002-Supplyofgoodsnotmanufacturedinhouse`\n- 003 - Net profit margin\n003 - Net profit margin\n`003-Netprofitmargin`\n- 004 - Supply of services\n004 - Supply of services\n`004-Supplyofservices`\n- 005 - Disposal of tangible and intangible capital assets\n005 - Disposal of tangible and intangible capital assets\n`005-Disposaloftangibleandintangiblecapitalassets`\n- 008 - Application of goods for private use or for that of the staff\n008 - Application of goods for private use or for that of the staff\n`008-Applicationofgoodsforprivateuseorforthatofthestaff`\n- 009 - Application for the purpose of business of goods\n009 - Application for the purpose of business of goods\n`009-Applicationforthepurposeofbusinessofgoods`\n- 010 - Use of goods considered business assets\n010 - Use of goods considered business assets\n`010-Useofgoodsconsideredbusinessassets`\n- 011 - Supply of services carried out free of charge\n011 - Supply of services carried out free of charge\n`011-Supplyofservicescarriedoutfreeofcharge`\n- 013 - IC supply of goods\n013 - IC supply of goods\n`013-ICsupplyofgoods`\n- 202 - IC supply of new means of transport\n202 - IC supply of new means of transport\n`202-ICsupplyofnewmeansoftransport`\n- 203 - Supply of goods carried out abroad\n203 - Supply of goods carried out abroad\n`203-Supplyofgoodscarriedoutabroad`\nAssign the following account tags to the accounts you use for each type of output and input VAT, if\napplicable:\n- 077 - VAT on stock entries invoiced by other taxable persons\n077 - VAT on stock entries invoiced by other taxable persons\n`077-VATonstockentriesinvoicedbyothertaxablepersons`\n- 081 - VAT on capital expenditures invoiced by other taxable persons\n081 - VAT on capital expenditures invoiced by other taxable persons\n`081-VAToncapitalexpendituresinvoicedbyothertaxablepersons`\n- 085 - VAT on operational expenditures invoiced by other taxable persons\n085 - VAT on operational expenditures invoiced by other taxable persons\n`085-VATonoperationalexpendituresinvoicedbyothertaxablepersons`\n- 078 - VAT on stock entries due in respect of IC acquisitions\n078 - VAT on stock entries due in respect of IC acquisitions\n`078-VATonstockentriesdueinrespectofICacquisitions`\n- 082 - VAT on capital expenditures due in respect of IC acquisitions\n082 - VAT on capital expenditures due in respect of IC acquisitions\n`082-VAToncapitalexpendituresdueinrespectofICacquisitions`\n- 086 - VAT on operational expenditures due in respect of IC acquisitions\n086 - VAT on operational expenditures due in respect of IC acquisitions\n`086-VATonoperationalexpendituresdueinrespectofICacquisitions`\n- 079 - VAT on stock entries of importations of goods\n079 - VAT on stock entries of importations of goods\n`079-VATonstockentriesofimportationsofgoods`\n- 083 - VAT on capital expenditures of importations of goods\n083 - VAT on capital expenditures of importations of goods\n`083-VAToncapitalexpendituresofimportationsofgoods`\n- 087 - VAT on operational expenditures of importations of goods\n087 - VAT on operational expenditures of importations of goods\n`087-VATonoperationalexpendituresofimportationsofgoods`\n- 404 - VAT on stock entries due under the reverse charge\n404 - VAT on stock entries due under the reverse charge\n`404-VATonstockentriesdueunderthereversecharge`\n- 405 - VAT on capital expenditures due under the reverse charge\n405 - VAT on capital expenditures due under the reverse charge\n`405-VAToncapitalexpendituresdueunderthereversecharge`\n- 406 - VAT on operational expenditures due under the reverse charge\n406 - VAT on operational expenditures due under the reverse charge\n`406-VATonoperationalexpendituresdueunderthereversecharge`\nAssign the following account tags to the expense accounts you use for each type of expense, if\napplicable:\n- 188 - Appendix A - Expenses for other work carried out by third parties\n188 - Appendix A - Expenses for other work carried out by third parties\n`188-AppendixA-Expensesforotherworkcarriedoutbythirdparties`\n- 190 - Appendix A - Car expenses\n190 - Appendix A - Car expenses\n`190-AppendixA-Carexpenses`\n- 239 - Appendix A - Gross salaries\n239 - Appendix A - Gross salaries\n`239-AppendixA-Grosssalaries`\n- 244 - Appendix A - Gross wages\n244 - Appendix A - Gross wages\n`244-AppendixA-Grosswages`\n- 247 - Appendix A - Occasional salaries\n247 - Appendix A - Occasional salaries\n`247-AppendixA-Occasionalsalaries`\n- 250 - Appendix A - Compulsory social security contributions (employer's share)\n250 - Appendix A - Compulsory social security contributions (employer's share)\n`250-AppendixA-Compulsorysocialsecuritycontributions(employer'sshare)`\n- 253 - Appendix A - Accident insurance\n253 - Appendix A - Accident insurance\n`253-AppendixA-Accidentinsurance`\n- 260 - Appendix A - Staff travel and representation expenses\n260 - Appendix A - Staff travel and representation expenses\n`260-AppendixA-Stafftravelandrepresentationexpenses`\n- 269 - Appendix A - Accounting and bookkeeping fees\n269 - Appendix A - Accounting and bookkeeping fees\n`269-AppendixA-Accountingandbookkeepingfees`\n- 283 - Appendix A - Employer's travel and representation expenses\n283 - Appendix A - Employer's travel and representation expenses\n`283-AppendixA-Employer'stravelandrepresentationexpenses`\n- 285 - Appendix A - Electricity\n285 - Appendix A - Electricity\n`285-AppendixA-Electricity`\n- 289 - Appendix A - Gas\n289 - Appendix A - Gas\n`289-AppendixA-Gas`\n- 293 - Appendix A - Employer's travel and representation expenses\n293 - Appendix A - Employer's travel and representation expenses\n`293-AppendixA-Employer'stravelandrepresentationexpenses`\n- 301 - Appendix A - Telecommunications\n301 - Appendix A - Telecommunications\n`301-AppendixA-Telecommunications`\n- 305 - Appendix A - Renting/leasing of immovable property with application of VAT\n305 - Appendix A - Renting/leasing of immovable property with application of VAT\n`305-AppendixA-Renting/leasingofimmovablepropertywithapplicationofVAT`\n- 307 - Appendix A - Renting/leasing of immovable property with no application of VAT\n307 - Appendix A - Renting/leasing of immovable property with no application of VAT\n`307-AppendixA-Renting/leasingofimmovablepropertywithnoapplicationofVAT`\n- 310 - Appendix A - Renting/leasing of permanently installed equipment and machinery\n310 - Appendix A - Renting/leasing of permanently installed equipment and machinery\n`310-AppendixA-Renting/leasingofpermanentlyinstalledequipmentandmachinery`\n- 316 - Appendix A - Property tax\n316 - Appendix A - Property tax\n`316-AppendixA-Propertytax`\n- 324 - Appendix A - Business tax\n324 - Appendix A - Business tax\n`324-AppendixA-Businesstax`\n- 326 - Appendix A - Interest paid for long-term debts\n326 - Appendix A - Interest paid for long-term debts\n`326-AppendixA-Interestpaidforlong-termdebts`\n- 327 - Appendix A - Interest paid for short-term debts\n327 - Appendix A - Interest paid for short-term debts\n`327-AppendixA-Interestpaidforshort-termdebts`\n- 328 - Appendix A - Other financial costs\n328 - Appendix A - Other financial costs\n`328-AppendixA-Otherfinancialcosts`\n- 330 - Appendix A - Stock and business equipment insurance\n330 - Appendix A - Stock and business equipment insurance\n`330-AppendixA-Stockandbusinessequipmentinsurance`\n- 331 - Appendix A - Public and professional third party liability insurance\n331 - Appendix A - Public and professional third party liability insurance\n`331-AppendixA-Publicandprofessionalthirdpartyliabilityinsurance`\n- 332 - Appendix A - Office expenses\n332 - Appendix A - Office expenses\n`332-AppendixA-Officeexpenses`\n- 336 - Appendix A - Fees and subscriptions paid to professional associations and learned societies\n336 - Appendix A - Fees and subscriptions paid to professional associations and learned societies\n`336-AppendixA-Feesandsubscriptionspaidtoprofessionalassociationsandlearnedsocieties`\n- 337 - Appendix A - Papers and periodicals for business purposes\n337 - Appendix A - Papers and periodicals for business purposes\n`337-AppendixA-Papersandperiodicalsforbusinesspurposes`\n- 343 - Appendix A - Shipping and transport expenses\n343 - Appendix A - Shipping and transport expenses\n`343-AppendixA-Shippingandtransportexpenses`\n- 345 - Appendix A - Work clothes\n345 - Appendix A - Work clothes\n`345-AppendixA-Workclothes`\n- 347 - Appendix A - Advertising and publicity\n347 - Appendix A - Advertising and publicity\n`347-AppendixA-Advertisingandpublicity`\n- 349 - Appendix A - Packaging\n349 - Appendix A - Packaging\n`349-AppendixA-Packaging`\n- 351 - Appendix A - Repair and maintenance of equipment and machinery\n351 - Appendix A - Repair and maintenance of equipment and machinery\n`351-AppendixA-Repairandmaintenanceofequipmentandmachinery`\n- 353 - Appendix A - Other repairs\n353 - Appendix A - Other repairs\n`353-AppendixA-Otherrepairs`\n- 355 - Appendix A - New acquisitions (tools and equipment) if their cost can be fully allocated to the year of acquisition or creation\n355 - Appendix A - New acquisitions (tools and equipment) if their cost can be fully allocated to the year of acquisition or creation\n`355-AppendixA-Newacquisitions(toolsandequipment)iftheircostcanbefullyallocatedtotheyearofacquisitionorcreation`\n- 358 - Appendix A - Custom (value)\n358 - Appendix A - Custom (value)\n`358-AppendixA-Custom(value)`\n- 361 - Appendix A - Total 'Appendix to Operational expenditures'\n361 - Appendix A - Total 'Appendix to Operational expenditures'\n`361-AppendixA-Total'AppendixtoOperationalexpenditures'`\n\n#### Opening the declaration\n\nGo to Accounting ⣠Reporting ⣠Tax Report .\nIn the Report selector, select Annual VAT Declaration (LU) .\nIn the ( Period ) selector, choose the fiscal year dates for which to\ngenerate the declaration.\n\n#### Completing the declaration\n\nThe annual declaration contains five sections labelled I to V, seven appendices labelled A to G, and\nan additional Appendix to Operational Expenditures.\nSections I, III, and Appendix A can be pre-populated automatically based on the account tag\nconfiguration . After configuring the account tags, set the tax lock date to the end of the fiscal year. This will\ntrigger the pre-computation of those values.\nAlternatively, the yearâs total VAT debit and credit can be manually distributed among the various\nreport lines in sections I and III. You can use the ( Edit ) icon to\nmanually enter the value for each report line.\nSections II and IV are automatically computed.\nYou then need to manually complete appendices B through G, as well as the Appendix to Operational\nExpenditures, with any additional information to be reported.\n\n#### Exporting the declaration\n\nOnce the declaration is complete and correct, click the ( action menu )\nicon, then click XML to export and download it in XML format. You can then submit the\nXML file on the eCDF platform.\n- Tax return (VAT declaration)\nTax return (VAT declaration)\n- Tax office website - VAT declaration\nTax office website - VAT declaration\n- Platform for electronic gathering of financial data (eCDF)\nPlatform for electronic gathering of financial data (eCDF)\n\n## FAIA audit file export\n\nFAIA is the Luxembourgish version of the SAF-T format for\naccounting data interchange. It allows exporting complete accounting data for a period from a\ntaxpayerâs accounting system to the tax office.\nOdoo can generate an XML file in the FAIA format that contains the entire accounting data for a\nperiod.\nTo generate and download the FAIA file, open Accounting ⣠Reporting ⣠General\nLedger , choose the desired period, click the ( action menu ) icon, and\nclick Export FAIA .", "headings": ["Modules", "Localization overview", "Taxes", "E-invoicing", "Tax reporting", "Monthly / quarterly declaration", "Annual declaration", "FAIA audit file export"], "doc_id": "afe8944ad90b0d7d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/malaysia.html", "title": "Malaysia", "module": "invoicing", "section": "Malaysia", "text": "# Malaysia\n\n## Configuration\n\n### Modules installation\n\nInstall the following modules to get all the features of the Malaysian\nlocalization:\nMalaysia - Accounting\n`l10n_my`\nThis module includes the default fiscal localization package .\nMalaysia - Accounting Reports\n`l10n_my_reports`\nThis module includes the accounting reports for Malaysia.\n`l10n_my_ubl_pint`\nThis module includes the features required to export invoices in PINT format.\nMalaysia - E-invoicing\n`l10n_my_edi`\nThis module includes the features required for integration with MyInvois under IRBM.\nMalaysia - E-invoicing Extended Features\n`l10n_my_edi_extended`\nThis module improves the MyInvois E-invoicing feature by adding proper support for self\nbilling, rendering the MyInvois QR code in the invoice PDF file and allows better management\nof foreign customer TIN.\nMalaysia - E-invoicing (POS)\n`l10n_my_edi_pos`\nThis module includes the features required to send invoices and consolidated invoices to the\nMyInvois system when using the POS app.\n\n### Company information\n\nTo configure your company information, go to the Contacts app, search for your company,\nand select it. Then configure the following fields:\n- Address , including the City , State , Zip Code ,\nand Country . In the Street field, enter the street name, number, and any additional address\ninformation. In the Street 2 field, enter the neighborhood.\nAddress , including the City , State , Zip Code ,\nand Country .\n- In the Street field, enter the street name, number, and any additional address\ninformation.\nIn the Street field, enter the street name, number, and any additional address\ninformation.\n- In the Street 2 field, enter the neighborhood.\nIn the Street 2 field, enter the neighborhood.\n- Tax ID : Tax identification number\nTax ID : Tax identification number\n- SST : Malaysian Sales and Service Tax Number, if applicable\nSST : Malaysian Sales and Service Tax Number, if applicable\n- TTx : Malaysian Tourism Tax Number, if applicable\nTTx : Malaysian Tourism Tax Number, if applicable\n\n## E-invoicing integration with MyInvois\n\nThe MyInvois portal is a platform provided by the IRBM that facilitates the implementation of e-invoices for Malaysian taxpayers.\nOdoo supports integration with MyInvois to submit the invoices generated in Odoo.\n- The Malaysia - E-invoicing module ( l10n_my_edi ) must be installed to submit\ninvoices to MyInvois.\nThe Malaysia - E-invoicing module ( l10n_my_edi ) must be installed to submit\ninvoices to MyInvois.\n`l10n_my_edi`\n- Each company in the database requires an individual connection to the MyInvois portal using\nits own TIN .\nEach company in the database requires an individual connection to the MyInvois portal using\nits own TIN .\n\n### Set-up\n\n#### MyInvois registration\n\nTo send electronic invoices to MyInvois, you first need to register and log in to the MyInvois\nportal to grant Odoo the right to invoice as an intermediary for your company.\nIf this is the first time you log into the MyInvois portal, click User Manual on MyTax to learn more about the registration process. Both the pre-production ( testing\nenvironment to try the functions before using the actual (production) environment ) and production ( actual environment to submit e-invoices with accurate information )\nenvironments are supported.\n- Log into MyTax . Choose the ID Type and the corresponding identification number used to register for the digital certificate.\nLog into MyTax . Choose the ID Type and the corresponding identification number used to register for the digital certificate.\n- From the dashboard, click the (angle-down) icon in the\ntop-right corner and select View Taxpayer Profile .\nFrom the dashboard, click the (angle-down) icon in the\ntop-right corner and select View Taxpayer Profile .\n- In the Representatives section, click Add Intermediary in the top-right\ncorner.\nIn the Representatives section, click Add Intermediary in the top-right\ncorner.\n- Add ODOO S.A. as an intermediary using the following information: TIN : C57800417080 BRN : BE0477472701 Name : Production : ODOO S.A. Pre-production : OXXX_XXXXA.\nAdd ODOO S.A. as an intermediary using the following information:\n`ODOOS.A.`\n- TIN : C57800417080\n`C57800417080`\n- BRN : BE0477472701\n`BE0477472701`\n- Name : Production : ODOO S.A. Pre-production : OXXX_XXXXA.\n- Production : ODOO S.A.\nProduction : ODOO S.A.\n`ODOOS.A.`\n- Pre-production : OXXX_XXXXA.\nPre-production : OXXX_XXXXA.\n`OXXX_XXXXA.`\n- Grant the following permissions by clicking the (toggle-on) icon: Representation From Document - Submit Document - Cancel Document - Request Rejection Note Access can be revoked in the future if needed. Odoo, as an intermediary, does not store invoices sent on behalf of the client on the proxy\nserver.\nGrant the following permissions by clicking the (toggle-on) icon:\n- Representation From\n- Document - Submit\n- Document - Cancel\n- Document - Request Rejection\nDocument - Request Rejection\n- Access can be revoked in the future if needed.\nAccess can be revoked in the future if needed.\n- Odoo, as an intermediary, does not store invoices sent on behalf of the client on the proxy\nserver.\nOdoo, as an intermediary, does not store invoices sent on behalf of the client on the proxy\nserver.\n- Click Save . The status for ODOO S.A. is then Active .\nClick Save . The status for ODOO S.A. is then Active .\n`ODOOS.A.`\n\n#### Configuration in Odoo\n\nOpen the Settings app, navigate to the Companies section, and click Update Info . Make sure the Tax ID is entered and complete the following\nfields in the E-invoicing section:\n- Identification : Select the ID Type and enter the associated Identification number used to register for the digital certificate.\nIdentification : Select the ID Type and enter the associated Identification number used to register for the digital certificate.\n- Ind. Classification : Input the 5-digit numeric code that represents the nature and\nactivity of the business.\nInd. Classification : Input the 5-digit numeric code that represents the nature and\nactivity of the business.\nGo to Accounting ⣠Configuration ⣠Settings . In the Malaysian Electronic Invoicing section, select the relevant MyInvois mode based on the environment used for the companyâs MyInvois registration.\nMake sure to allow Odoo to process e-invoices by checking the box, then click Register .\nTo change the TIN reference, click Unregister ,\nchange the companyâs information and make sure the number registered on MyInvois matches, then Register again.\nFor taxpayers with a TIN starting with âIGâ and a ROB number, combine the TIN and ROB in the TIN:ROB format\nfor the Tax ID field.\nTo register, go to Accounting ⣠Configuration ⣠Settings , and in the Malaysian Electronic Invoicing section, click Register . Once the\nregistration is complete, the :ROB can be removed from the Tax ID .\nAdditionally, remember to log into MyTax account and set the Type of Role as Business Owner .\nAccess the contactâs form and fill in the following fields:\n- Country\n- Tax ID\n- Identification : the ID Type and the corresponding Identification number of the contact registered on MyTax.\nIdentification : the ID Type and the corresponding Identification number of the contact registered on MyTax.\nFor specific use casesâsuch as transactions with buyers without a TIN or foreign customersârefer to the list of general TINs\nprovided in the Appendix of the e-Invoice Specific Guideline .\nAll products to be included in e-invoices require a Malaysian classification code. To add it,\naccess the Product form and in the General Information tab, fill in the Malaysian classification code field.\nTo configure a taxâs Malaysian Tax Type field, go to Accounting â£\nConfiguration ⣠Accounting ⣠Taxes and open the relevant tax in the Taxes list\nview.\nWhen an invoice or bill includes a tax with the Malaysian Tax Type set to Tax Exempt , a Tax Exemption Reason must be specified in the MyInvois tab before the document is sent.\n\n### Workflow\n\n#### Send invoices to MyInvois\n\nInvoices can be sent to MyInvois once they have been confirmed. To do so, click Send to MyInvois .\nFor invoices in foreign currencies, the exchange rate applied to the invoice is sent to MyInvois .\n\n#### Send bills to MyInvois\n\nSending a bill to MyInvois is necessary when issuing an e-Invoice on behalf of a supplier. Once a\nbill is confirmed, click Send To MyInvois .\n- In MyInvois , these vendor bills are\ncategorized as Self-billed Invoice .\nIn MyInvois , these vendor bills are\ncategorized as Self-billed Invoice .\n- If a Bill Reference field is empty, Odooâs vendor bill number is used as the\nMyInvois number. If a reference is entered in the Bill Reference field, that\nreference is used instead.\nIf a Bill Reference field is empty, Odooâs vendor bill number is used as the\nMyInvois number. If a reference is entered in the Bill Reference field, that\nreference is used instead.\nThe current MyInvois status of an invoice or bill is shown in the MyInvois State field\nwithin the MyInvois tab.\n- Validation in Progress : the validation is being processed by MyInvois. A blue Processing banner is also displayed.\nValidation in Progress : the validation is being processed by MyInvois. A blue Processing banner is also displayed.\n- Valid : it is validated by MyInvois. The Submission UID , MyInvois and Validation Time are automatically updated with information\nfrom MyInvois.\nValid : it is validated by MyInvois. The Submission UID , MyInvois and Validation Time are automatically updated with information\nfrom MyInvois.\nOdoo automatically checks and updates the\nstatus every hour. To update it manually at any time, click Update MyInvois Status .\n\n#### Invoice cancellation\n\nSent invoices can be canceled within 72 hours from Validation time . In this case, open\nthe invoice and click Request Cancel . In the Cancel document window,\ninclude the cancellation Reason , then click Update Invoice . The MyInvois State is updated to cancelled .\n\n#### Send credit notes to MyInvois\n\nBefore sending a credit note, the original invoice must be successfully submitted to MyInvois.\nOtherwise, the credit noteâs MyInvois State is updated to Invalid .\nWhile Odoo uses a single credit note document, MyInvois categorizes these into two\ntypes: credit note and refund note , depending on how they are reconciled.\n- MyInvois Credit Note : This is created when an Odoo credit note is reconciled with the\noriginal invoice.\nMyInvois Credit Note : This is created when an Odoo credit note is reconciled with the\noriginal invoice.\n- MyInvois Refund Note : This is created when an Odoo credit note is reconciled with a\nfull payment instead of the original invoice.\nMyInvois Refund Note : This is created when an Odoo credit note is reconciled with a\nfull payment instead of the original invoice.\nIf a credit note is reconciled with only a partial payment before being sent, it is still\ncategorized as a credit note in MyInvois.\n- Create two separate credit notes in Odoo from the original invoice.\nCreate two separate credit notes in Odoo from the original invoice.\n- For a MyInvois Refund Note : Register a payment before sending it.\nFor a MyInvois Refund Note : Register a payment before sending it.\n- For a MyInvois Credit Note : Do not register a payment before sending it.\nFor a MyInvois Credit Note : Do not register a payment before sending it.\nThe same logic applies to credit notes created from bills: if reconciled with a full payment,\nthe credit note becomes a Self-billed Refund Note ; otherwise, it becomes a Self-billed Credit Note .\n\n#### Send debit notes to MyInvois\n\nIssue a debit note from an existing bill or invoice and click Send To MyInvois . In MyInvois, it appears then as a Debit Note if\nissued from an invoice or a Self-billed Debit Note from a vendor bill.\n\n### POS workflow\n\nTwo workflows are available to issue e-invoices in Point of Sale :\n- Individual e-invoice : Issue an e-invoice\nimmediately for a specific order using the customerâs details.\nIndividual e-invoice : Issue an e-invoice\nimmediately for a specific order using the customerâs details.\n- Consolidated e-invoice : Create orders as\nusual, then aggregate them periodically into a single consolidated e-invoice.\nConsolidated e-invoice : Create orders as\nusual, then aggregate them periodically into a single consolidated e-invoice.\n\n#### Individual e-invoice\n\nTo issue an individual e-invoice and send it to MyInvois, create an invoice , and ensure the selected customer has a valid TIN or Identification Number .\nIf the QR code does not appear on the invoice, the MyInvois validation is still in progress.\nOdoo automatically retrieves the status in the background. Simply reopen the invoice later to\nretrieve the validated version with the QR code.\n\n#### Consolidated e-invoice\n\nOrders that are not e-invoiced individually can be aggregated into a consolidated e-invoice.\n- Navigate to Point of Sale ⣠Orders ⣠Consolidated Invoice .\nNavigate to Point of Sale ⣠Orders ⣠Consolidated Invoice .\n- Click Consolidate Orders and set the Date From and Date To .\nClick Consolidate Orders and set the Date From and Date To .\n- Click Submit to MyInvois .\nClick Submit to MyInvois .\nOdoo automatically fetches all eligible POS orders within that timeframe that have not been\nindividually invoiced nor refunded .\nOrders belonging to an open POS session are not included in the\nconsolidation. Close the session to include them.\nTo submit the consolidation, click Submit to MyInvois on the form view.\nFor multiple records, click Consolidated Invoices to go back to the list view, and\nselect the relevant consolidated invoices. Then, click Submit to MyInvois .\nConsolidated e-invoices are issued to the pre-configured General Public contact.\n\n#### Refunds\n\nTo refund a customer, process a return .\nRefunds for orders e-invoiced individually or via consolidation must be issued as e-invoices\n(Refund Notes). To do so, click Invoice before processing the refund.\n\n### Access invoices via QR code\n\nWhen a document is successfully submitted to MyInvois, a QR code is added to its PDF version.\nScanning this code links directly to the validated document in MyInvois.\nTo download the PDF from an invoice or bill:\n- Click the (gear) icon\nClick the (gear) icon\n- Select Download\n- Choose either PDF or PDF without Payment\nChoose either PDF or PDF without Payment\n\n## Employment Hero payroll\n\nIf your business is already up and running with Employment Hero , you can use our connector as an\nalternative payroll solution.\nTo configure the Employment Hero API for Malaysia , use\nthe following value as Payroll URL : https://apimy.yourpayroll.io/ .\n`https://apimy.yourpayroll.io/`", "headings": ["Configuration", "Modules installation", "Company information", "E-invoicing integration with MyInvois", "Set-up", "Workflow", "POS workflow", "Access invoices via QR code", "Employment Hero payroll"], "doc_id": "955ec26623b32c6a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/mexico.html", "title": "Mexico", "module": "invoicing", "section": "Mexico", "text": "# Mexico\n\n## Modules\n\nThe following modules are automatically installed with the Mexican localization:\n`l10n_mx`\nThe default fiscal localization package adds accounting\ncharacteristics for the Mexican localization, such as: the most common taxes and the chart of\naccounts â based on the SAT account grouping code .\n`l10n_mx_edi`\nIncludes all the technical and functional requirements to generate and validate electronics documents â based\non the technical documentation published by the SAT . This allows you to send invoices (with\nor without addedums) and payment complements to the government.\nOdoo Mexican Localization Reports\n`l10n_mx_reports`\nAdapts reports for Mexicoâs electronic accounting: chart of accounts, trial balance, and DIOT .\nMexico - Month 13 Trial Balance\nl10n_mx_reports_closing\n`l10n_mx_reports_closing`\nNecessary to create the closing entry (also known as the month 13 move ).\nOdoo Mexican XML Polizas Export\n`l10n_mx_xml_polizas`\nAllows the export of XML files of journal entries for a compulsory audit.\nThe following modules are optional. Itâs recommended to install them only if meeting a specific requirement for the business.\nEDI for Mexico (Advanced Features)\n`l10n_mx_edi_extended`\nAdds the external trade complement to invoices (a legal requirement for selling products to\nforeign countries).\nMexico - Electronic Delivery Guide\n`l10n_mx_edi_stock`\nLets you create a Carta Porte : A bill of lading that proves to the government you are\nsending goods between A & B with a signed electronic document.\nOdoo Mexico Localization for Stock/Landing\n`l10n_mx_edi_landing`\nAllows managing customs numbers related to landed costs in electronic documents.\nCFDI 4.0 fields for sale orders\n`l10n_mx_edi_sale`\nAdds extra fields to the Sales module to comply with the Mexican\nElectronic Invoicing\nMexican Localization for the Point of Sale\n`l10n_mx_edi_pos`\nAdds extra fields to the Point of Sale module to comply\nwith the Mexican Electronic Invoicing\nMexican Localization for eCommerce\nl10n_mx_edi_website_sale\n`l10n_mx_edi_website_sale`\nAdds extra fields to the eCommerce module to comply with\nthe Mexican electronic invoicing requirements\n`l10n_mx_hr`\nAdds extra fields to the Employees module to comply with local\ninformation for employees.\nMexico - Payroll with Accounting\nl10n_mx_hr_payroll_account\n`l10n_mx_hr_payroll_account`\nAdds the required rules and parameters to manage local payroll calculation with the Payroll app.\n\n## Video tutorials\n\nVideos on the Mexican localization are also available. Basic workflows and most topics covered\non this page are also available in video format, please check out the following:\n- Odoo Smart Tutorial - Mexican localization\nOdoo Smart Tutorial - Mexican localization\n- Basic configurations and Youtube playlist\nBasic configurations and Youtube playlist\n\n## Localization overview\n\nThe Odoo Mexican localization modules allow for the signing of electronic invoices, according to the\nspecifications of the SAT for version 4.0 of the CFDI , a legal requirement, as\nof January 1, 2022. These modules also add relevant accounting reports including the DIOT , enable\nforeign trade, and enable the creation of delivery guides.\nIn order to electronically sign any documents in Odoo, the Sign application must be installed.\nDocumentation on e-invoicingâs legality and compliance in Mexico\n\n### Requirements\n\nIt is necessary to meet the following requirements before configuring the Mexican localization\nmodules in Odoo:\n- Be registered in the SAT with a valid RFC .\nBe registered in the SAT with a valid RFC .\n- Have a Certificado de Sello Digital / Digital Seal Certificate (CSD).\nHave a Certificado de Sello Digital / Digital Seal Certificate (CSD).\n- Choose a PAC . Currently, Odoo works with the following PAC s: Solución Factible , Quadrum , and SW Sapien - Smarter Web .\nChoose a PAC . Currently, Odoo works with the following PAC s: Solución Factible , Quadrum , and SW Sapien - Smarter Web .\n\n### Company\n\nAfter installing the correct modules, the next step is to verify that the company is configured with\nthe correct data. To do so, go to Settings ⣠Users & Companies ⣠Companies , and\nselect the company to configure.\nEnter the full Address in the resulting form, including: ZIP code, State , Country , and RFC ( Tax ID number).\nAccording to the requirements of the CFDI 4.0, the name of the main company contact must match the business name registered in the SAT , without the legal entity abbreviation. This is the\nsame for the ZIP code.\nFrom a legal point of view, Mexican companies must use the local currency (MXN). To use\nanother currency, let MXN be the default currency and use a pricelist instead.\nNext, go to Accounting ⣠Settings , and scroll to the MX Electronic\ninvoicing section. Under Service Tax Administration (SAT) , select the Fiscal\nRegime that applies to the company from the drop-down list, and click Save .\nIn order to test the Mexican localization, configure the company with a real address within\nMexico (including all fields). Add EKU9003173C9 as the Tax ID and ESCUELA KEMPER URGATE as the Company Name . For the Fiscal Regime , use General de Ley Personas Morales .\n`EKU9003173C9`\n`ESCUELAKEMPERURGATE`\n\n### Contacts\n\nInstall the Contacts application to access contact records.\nTo create a contact that can be invoiced, go to Contacts ⣠Create . Then, enter\nthe contact name, full Address including the ZIP code, State , Country , and RFC ( Tax ID ).\nAs with your own company, all contacts must have their correct business name registered in the SAT . This also applies to the Fiscal Regime , which needs to be added in the Sales & Purchase tab.\nHaving a RFC ( Tax ID ) set but no Country configured may result in\nincorrect invoices.\n\n### Taxes\n\nIn order to properly sign invoices, set the Factor Type and Tax\nObject fields on sales taxes.\n\n#### Factor type\n\nBoth the SAT Tax Type and Factor Type fields are pre-loaded in the default\ntaxes. If new taxes are created, these fields must be set. To do so, go to Accounting ⣠Configuration ⣠Taxes , then fill both fields in the Advanced Options tab for all tax records, with the Tax Type set as Sales .\nOdoo supports four groups of SAT Tax Types : IVA , ISR , IEPS , and Local .\nMexico manages two different kinds of 0% VAT to accommodate two scenarios:\n- For 0% VAT , set the Factor Type as Tasa\nFor 0% VAT , set the Factor Type as Tasa\n- For VAT Exempt , set the Factor Type as Exento\nFor VAT Exempt , set the Factor Type as Exento\n\n#### Tax object\n\nOne requirement of the CFDI 4.0 is that the resulting XML file handles the breakdown of taxes of the\noperation in accordance with the regulation. There are three different possible values that are\nadded in the XML file:\n- 01 : Not subject to tax: This value is added automatically if the invoice line doesnât contain\nany taxes.\n01 : Not subject to tax: This value is added automatically if the invoice line doesnât contain\nany taxes.\n`01`\n- 02 : Subject to tax: This is the default configuration of any invoice line that contains taxes.\n02 : Subject to tax: This is the default configuration of any invoice line that contains taxes.\n`02`\n- 03 : Subject to tax and not forced to break down: This value can be triggered on demand for\ncertain customers to replace the value 02 .\n03 : Subject to tax and not forced to break down: This value can be triggered on demand for\ncertain customers to replace the value 02 .\n`03`\n`02`\nTo use the 03 value for a contact, navigate to the contactâs Sales & Purchase tab, and\nactivate the No Tax Breakdown checkbox under the Fiscal Information section.\n`03`\nThe No Tax Breakdown value applies only to specific fiscal regimes and/or taxes.\nConsult your accountant first to see if it is needed for your business before making any\nmodification.\n\n#### Other tax configurations\n\nThe Mexican Localization uses cash basis taxes .\nWhen registering a payment, Odoo carries out the movement of taxes from the Cash Basis Transition\nAccount to the account set in the Definition tab of the tax record set on the invoice\nor bill line. For such movement, a tax base account is used: ( 899.01.99 Base Imponible de\nImpuestos en Base a Flujo de Efectivo ) in the journal entry when reclassifying taxes. Do not\ndelete this account .\n\n### Products\n\nTo configure products, go to Accounting ⣠Customers ⣠Products , then select a\nproduct to configure, or Create a new one. In the Accounting tab, in the UNSPSC Product Category field, select the category that represents the product. The\nprocess can be done manually, or through a bulk import .\nAll products need to have a SAT code associated with them in order to prevent validation\nerrors.\n\n### Electronic invoicing\n\n#### PAC credentials\n\nAfter processing your Private Key (CSD) with the SAT , you must register directly with the PAC of your choice before you start creating invoices from Odoo.\nOnce youâve created your account with any of these providers, go to Accounting â£\nConfiguration ⣠Settings and navigate to the MX Electronic invoicing section. Under\nthe Authorized Certification Provider (PAC) section, enter the name of your PAC with\nyour credentials ( PAC username and PAC password ).\nTo test the electronic invoicing without credentials, activate the MX PAC\ntest environment checkbox, and select Solucion Factible as the PAC . It\nis not required to add a username or password for a test environment.\n\n#### .cer and .key certificates\n\nThe digital certificates of the company must be uploaded within\nthe Certificates section. To do so, navigate to Settings â£\nGeneral Settings ⣠Certificates and Keys .\nUnder Manage your certificates , click the Keys link\nto access the Keys list view. Click Create , upload the digital Key file ( .key file), add a Name to the key, and enter the Private key password .\n`.key`\nFrom Settings ⣠General Settings ⣠Certificates and Keys , select Certificates to access the Certificate list view. Click Create ,\nupload the digital Certificate ( .cer file), add a Name to the\ncertificate, and select the Private Key created on the previous step from the drop-down\nmenu.\n`.cer`\nThe Certificate Password and Public Key fields on Certificate records are optional.\nIn order to test the electronic invoicing,\nthe following SAT test certificates are provided:\n- Certificate\n`Certificate`\n- Certificate Key\n`CertificateKey`\n- Password : 12345678a\n`12345678a`\n\n## Accounting\n\n### Electronic invoicing\n\nThe invoicing process in Odoo is based on Annex 20 version 4.0 of electronic\ninvoicing of the SAT .\n\n#### Customer invoices\n\nTo start invoicing from Odoo, a customer invoice must be created using the standard invoicing\nflow .\nWhile the document is in draft mode, changes can be made to it (the correct Payment Way or Usage that the customer might require can be added, for example.)\nAfter clicking on Confirm in the customer invoice, click the Send button\nto process the invoice with the government. Make sure that the CFDI checkbox is marked.\nAfter receiving the signed document back from the government, the Fiscal Folio field\nappears on the document, and the XML file appears both in the CFDI tab and attached in the\nchatter.\nIf an email address is configured on the customer contact record, marking the by Email and CFDI checkboxes sends both the XML and PDF files together.\nTo download the PDF file locally, click the Print button.\nWhen clicking Update SAT , the SAT status field on the invoice will\nconfirm if the XML file is Validated in the SAT .\nOn a testing environment, the message Not Found will always come up.\n\n#### Credit notes\n\nWhile an invoice is a document type âIâ (Ingreso), a credit note is a document type âEâ (Egreso).\nThe only addition to the standard flow for credit notes is that, as a requirement of the SAT , there has\nto be a relation between a credit note and an invoice through the fiscal folio.\nBecause of this requirement, the field CFDI Origin adds this relation with a 01| ,\nfollowed by the fiscal folio of the original invoice.\n`01|`\nFor the CFDI Origin field to be automatically added, use the Add Credit\nNote button from the invoice, instead of creating it manually.\n\n#### Payments\n\nOne addition of the Mexican localization is the Payment Policy field. According to\nthe SAT documentation ,\nthere are two types of payments:\n- PUE (Pago en una Sola Exhibición/Payment in a Single Exhibition)\nPUE (Pago en una Sola Exhibición/Payment in a Single Exhibition)\n- PPD (Pago en Parcialidades o Diferido/Payment in Installements or Deferred)\nPPD (Pago en Parcialidades o Diferido/Payment in Installements or Deferred)\nThe difference lies in the Due Date or Payment terms and installment plans of the invoice.\nTo configure PUE invoices, navigate to Accounting ⣠Customers ⣠Invoices ,\nand either select an invoice Due Date within the same month, or choose Payment terms that do not imply changing the due month (i.e., Immediate\nPayment , or 15 Days or 21 Days , as long as they fall within the current\nmonth).\nTo configure PPD invoices, navigate to Accounting ⣠Customers ⣠Invoices , and\nselect an invoice with a Due Date after the first day of the following month. This also\napplies if your Payment Term is due in the following month.\nIn both cases, the payment process in Odoo is the same , the main\ndifference being payments related to PPD invoices, by law, need to be sent to the government as a\ndocument type âPâ (Pago).\nIf a payment is related to a PUE invoice, it can be registered through the payment popup, and be\nassociated with the corresponding invoice. To do so, navigate to Accounting â£\nCustomers ⣠Invoices , and select an invoice. Then, click the Pay button to open the\npayment popup, set the Payment Way and any other fields, and click Create\nPayment .\n- Payments\n- Bank reconciliation\nWhile this process is the same for PPD invoices, the addition of creating an electronic\ndocument means some additional requirements\nare needed to correctly send the document to the SAT .\nFrom a legal perspective, PPD invoices must include the specific Payment Way that\nthe payment was received. Because of this, the Payment Way field cannot be set as To Define , thus the field will become invisible when selecting it.\n- If a bank account number is required, add it in the Accounting tab of a customerâs\ncontact record.\nIf a bank account number is required, add it in the Accounting tab of a customerâs\ncontact record.\n- The exact configurations are in the Anexo 20 of the SAT . Usually, the Bank Account needs to be 10 or 18 digits for transfers, 16 for credit or debit\ncards.\nThe exact configurations are in the Anexo 20 of the SAT . Usually, the Bank Account needs to be 10 or 18 digits for transfers, 16 for credit or debit\ncards.\nIf a fully-reconciled payment is related to an invoice with a Fiscal Folio , the Update Payments appears. Click the Update Payments button to send the payment complement XML file to the government automatically and display it in the CFDI tab in\nboth the invoice and the payment.\nWhile it is a bad fiscal practice, the PUE payments can also be sent to the government, however\nit is required to click Force CFDI in the CFDI tab for this.\nSimilar to an invoice or credit note, the PDF and XML can be sent to the final customer. To do so,\nclick the (gear) icon to open the actions drop-down menu and select Send receipt by email .\n\n#### Invoice cancellations\n\nIt is possible to cancel the EDI documents sent to the SAT . According to the Reforma Fiscal 2022 , since January 1st, 2022,\nthere are two requirements for this:\n- All cancellation requests require a cancellation reason .\nAll cancellation requests require a cancellation reason .\n- After 24 hours from the invoice creation, the client must be asked to approve the cancellation. If\nthere is no response within 72 hours, the cancellation is processed automatically.\nAfter 24 hours from the invoice creation, the client must be asked to approve the cancellation. If\nthere is no response within 72 hours, the cancellation is processed automatically.\nInvoice cancellations can be made for one of the following reasons:\n- 01 - Invoice issued with errors (with related document)\n01 - Invoice issued with errors (with related document)\n- 02 - Invoice issued with errors (no replacement)\n02 - Invoice issued with errors (no replacement)\n- 03 - The operation was not carried out\n03 - The operation was not carried out\n- 04 - Nominative operation related to the global invoice\n04 - Nominative operation related to the global invoice\nTo initiate a cancellation, go to Accounting ⣠Customers ⣠Invoices , select the\nposted invoice to cancel, and click Request Cancel . Then, refer to the Cancellation reason 01 or Cancellation reasons 02, 03, and 04 sections,\ndepending on the cancellation reason.\nAlternatively, request a cancellation from the CFDI tab by clicking Cancel on the line item.\n- If a cancellation is requested on a locked period, the CFDI will be cancelled but not the\naccounting entry.\nIf a cancellation is requested on a locked period, the CFDI will be cancelled but not the\naccounting entry.\n- If the client rejects the cancellation, the invoice cancellation line item is removed from the CFDI tab.\nIf the client rejects the cancellation, the invoice cancellation line item is removed from the CFDI tab.\n- In the Request CFDI Cancellation pop-up window, select 01 - Invoice issued\nwith errors (with related document) from the Reason field and click Create Replacement Invoice to create a new draft invoice. This new draft invoice\nreplaces the previous invoice, along with the related CFDI .\nIn the Request CFDI Cancellation pop-up window, select 01 - Invoice issued\nwith errors (with related document) from the Reason field and click Create Replacement Invoice to create a new draft invoice. This new draft invoice\nreplaces the previous invoice, along with the related CFDI .\n- Confirm the draft and Send the invoice.\nConfirm the draft and Send the invoice.\n- Return to the initial invoice (i.e., the invoice from which you first requested the\ncancellation). Notice the Substituted By field appears with a reference to the\nnew replacement invoice.\nReturn to the initial invoice (i.e., the invoice from which you first requested the\ncancellation). Notice the Substituted By field appears with a reference to the\nnew replacement invoice.\n- Click Request Cancel . In the Request CFDI Cancellation pop-up window, the 01 - Invoice issued with errors (with related document) option is automatically\nselected in the Reason field.\nClick Request Cancel . In the Request CFDI Cancellation pop-up window, the 01 - Invoice issued with errors (with related document) option is automatically\nselected in the Reason field.\n- Click Confirm .\nThe invoice cancellation is then generated with a reason line item in the CFDI tab.\nWhen using the 01 - Invoice issued with errors (with related document) cancellation\nreason, the 04| prefix appears in the Fiscal Folio field. This is an internal\nprefix used by Odoo to complete the cancellation and does not mean that the cancellation\nreason was 04 - Nominative operation related to the global invoice .\n`04|`\nIn the Request CFDI Cancellation pop-up window, select the desired cancellation Reason and Confirm the cancellation.\nUpon doing so, the invoice cancellation is generated with a reason line item in the CFDI tab.\nIf the SAT Status goes back to Validated it could be due to one of these three\nreasons:\n- The invoice is labeled as No Cancelable in the SAT Website .\ndue to the fact that it has a valid related document: Either another invoice linked with the CFDI Origin field or a Payment Complemement. If so, you need to cancel any other\nrelated document first.\nThe invoice is labeled as No Cancelable in the SAT Website .\ndue to the fact that it has a valid related document: Either another invoice linked with the CFDI Origin field or a Payment Complemement. If so, you need to cancel any other\nrelated document first.\n- The cancellation request is still being processed by the SAT . If so, wait a few minutes and\ntry again.\nThe cancellation request is still being processed by the SAT . If so, wait a few minutes and\ntry again.\n- The final customer needs to reject or accept the cancellation request in their Buzón Tributario . This\ncan take up to 72 hours and, in case that the cancellation requests gets rejected, you will\nneed to repeat the process again.\nThe final customer needs to reject or accept the cancellation request in their Buzón Tributario . This\ncan take up to 72 hours and, in case that the cancellation requests gets rejected, you will\nneed to repeat the process again.\nTool to validate Mexican Electronic Documents (CFDI) status\nFor the cancellation reasons 02 , 03 and 04 , the Create Replacement Invoice button is replaced by a Confirm button that requests the cancellation immediately.\nBoth the current State and Cancellation Reason can be found in the CFDI tab.\nTo cancel payment complements , go to the CFDI tab of the\nrelated invoice and click Cancel on the line of the payment complement.\nLike with invoices, go to the payment and click Update SAT in order to change the SAT Status and Status to Cancelled .\nJust like invoices, when creating a new payment complement, you can add the relation of the\noriginal document, by adding a 04| plus the fiscal folio in the CFDI Origin field.\nThis action cancels the invoice and marks the Reason as 01 - Invoice\nissued with errors (with related document) .\n`04|`\n\n#### Invoicing special use cases\n\nThe Main Currency in Mexico is MXN. While this is mandatory for all Mexican companies,\nit is possible to send and receive invoices (and payments) in different currencies. To enable the\nuse of multicurrency , navigate to the Accounting ⣠Configuration ⣠Currencies , and set [MX] Bank of\nMexico as the Service in the Automatic Currency Rates section. Then, set\nthe Interval field to the frequency you wish to update the exchange rates.\nThis way, the XML file of the document will have the correct exchange rate, and the total amount,\nin both the foreign currency and in MXN.\nIt is highly recommended to use separate bank accounts for each currency .\nThe only currencies that automatically update their exchange rate daily are: USD, EUR, GBP, JPY\nand CNY.\nBy law, electronic documents sent to the government cannot have negative lines, as this can trigger\nerrors. Therefore, when using Gift Cards or Loyalty Programs , the subsequent negative lines will be\ntranslated in the XML as if they were regular Discounts .\nIn order to set this up, navigate to Sales ⣠Products ⣠Products and create a\nproduct Discounts , make sure that it has a valid Tax (usually IVA at 16% ).\n`Discounts`\n`16%`\nAfter this, create and sign the invoice via CFDI, and add the Discounts product at the bottom. In the XML\nthe discount should be subtracted from the first invoice line available, Odoo will try to subtract\nfrom each line the total amount in order until all the discount has been applied.\n`Discounts`\nA Discount and UNSPSC Product Category for each product variant related to Gift\nCards or Loyalty Programs have to be created.\n`Discount`\n`UNSPSCProductCategory`\nA common practice in Mexico is the usage of down payments . Itâs usage primarily consists of cases where you receive\na payment for a good or service where either the product or the price (or both) hasnât been\ndeterminated at the moment.\nThe SAT allows two diferent ways to handle this process: both of them involve linking all invoices\nto each other with the CFDI Origin field.\nFor this process, the Sales app must be installed.\nThe official documentation for registration of down payments in Mexico .\nFirst, navigate to Sales ⣠Products ⣠Products to create a product Anticipo and configure it. The Product Type must be Service , and use the UNSPSC Category 84111506 Servicios de facturación .\n`Anticipo`\nThen, go to Sales ⣠Settings ⣠Invoicing ⣠Down Payments , and add the Anticipo product as the default.\nThis method consists of creating a down payment invoice, creating a invoice for the total amount,\nand finally, creating a credit note for the total of the down payment.\nFirst, create a sales order with the total amount, and create a down payment from it (either using a\npercentage or fixed amount). Then, sign the document via CFDI, and register the payment.\nWhen the time comes for the customer to get the final invoice, create it again from the same sales\norder. In the Create Invoice popup, select Regular Invoice . Make sure to\ndelete the line that contains the product Anticipo .\nWhen using down payments with the Mexican localization, make sure that the Invoicing\nPolicy of the products are Ordered quantities . Otherwise a customer credit note will\nbe created.\nThen, copy the Fiscal Folio from the down payment invoice, and paste it into the CDFI Origin of the final invoice, adding the prefix 07| before the value and sign\nthe document via CFDI.\n`07|`\nFinally, create a credit note for the first invoice. Copy the Fiscal Folio from the\nfinal invoice, and paste it in the CFDI Origin of the credit note, adding the prefix 07| . Then, sign the document via CFDI.\n`07|`\nWith this, all electronic documents are linked to each other. The final step is to fully pay the new\ninvoice. At the bottom of the new invoice, you can find the credit note in the Outstanding credits - add it as payment. Finally, register the remaining amount with the Pay popup.\nIn the sales order, all three documents should appear as âIn Paymentâ.\nAnother, simpler way to fulfill SAT requirements involves creating only the down payment invoice,\nand a second invoice for the remnant. This method involves the fact that negative lines are treated\nas discounts.\nFor this, follow the same process as Method A , up until the\ncreation of the final invoice. Do not delete the line that contains the Anticipo and instead\nrename the other products Description to include the text CFDI por remanente de un anticipo . Donât forget to add the Fiscal Folio of the down payment invoice in the CDFI Origin of the final invoice, adding the prefix 07| .\n`CFDIporremanentedeunanticipo`\n`07|`\nFinally, sign the final invoice via CFDI.\nIn certain occasions, such as when you are creating invoices in another software or in the SAT directly, you would want to upload the invoices in Odoo. The XML Reader allows you to retrieve the\ndata from an XML file. To do this, navigate to Accounting ⣠Customers â£\nInvoices and, in the list view, click the Upload button to select any number of XML\nfiles, and draft invoices will be automatically created. This can work also by dragging the files\nfrom your computer and dropping them in the view.\nThe draft invoices will retrieve the Customer information (if it doesnât exist, new ones\nwill be created), the Product Lines (only if products with the same name already exist)\nand will calculate all taxes and additional fields exclusive to the Mexican Localization. The import\ninformation will appear in the chatter.\nDepending on where the invoice was created, XML files could have different values from the total\ncalculated in Odoo. Always double-check any document uploaded this way.\nCustomer Invoices created this way will be able to create payment complements and to\nbe canceled at any time. If you use the Print button, the PDF document will have all the\ncorresponding information.\nThis can be done for Vendor Bills too.\nTo retrieve the Fiscal Folio , drag and drop XML files for already created draft\ninvoices.\nThe Mexican government requires that any goods or services that are sold must be backed up by\nan invoice. If the customer does not require an invoice or has no RFC , a CFDI to Public has to be created also known as a ânominativeâ invoice.\nA contact must be created and it must have a particular name.\nIf the CFDI to Public checkbox in either a sales order or an invoice is checked, the\nfinal XML will override the data in the invoice contact and will add the following characteristics:\n- RFC : XAXX010101000 if it is a national customer or XEXX010101000 if it is a foreign\ncustomer\nRFC : XAXX010101000 if it is a national customer or XEXX010101000 if it is a foreign\ncustomer\n- ZIP code: The same code of the company\nZIP code: The same code of the company\n- Usage : S01 - Without Fiscal Effects\nUsage : S01 - Without Fiscal Effects\nIf your contact Country is empty, the final invoice is considered as a CFDI to\nPublic for national customers. A non-blocking warning will be displayed before signing the\ndocument.\nIf the final customer doesnât share any details, create a generic Customer . The name\ncannot be PUBLICO EN GENERAL or an error will be triggered (it can be, for example, CLIENTE FINAL ).\n`PUBLICOENGENERAL`\n`CLIENTEFINAL`\nRegla 2.7.1.21 Expedición de comprobantes en operaciones con el público en general. .\nIf by the end of a certain period of time (that can vary from daily to bimonthly, depending of your\ncompanyâs legal needs and preferences) and the customer still has sales that werenât marked as\nregular invoices or individual CFDI to Public invoices, the SAT allows for the creation of a\nsingle invoice that can contain all operations, known as a global invoice .\nFor this process, the Sales app must be installed.\nGuÃa de llenado del CFDI global\nFirst, it is necessary to create a special Journal created in Accounting\n⣠Configuration ⣠Journals with the purpose of keeping a separate sequence.\nThen, make sure that all the sales orders that need to be signed have the following configurations:\n- CFDI to Public checkbox enabled\nCFDI to Public checkbox enabled\n- Invoice Status marked as To Invoice\nInvoice Status marked as To Invoice\nAfter this, go to Sales ⣠To Invoice ⣠Orders to Invoice , select all relevant\nsales orders and press Create Invoices . Make sure to disable the Consolidated\nBilling checkbox and click Create Draft Invoice .\nOdoo will redirect to a list of invoices. Select all of them and in the Actions drop-down menu select Post entries . Select all posted invoices again\nand go back to the Actions drop-down menu to select Create\nGlobal Invoice .\nIn the wizard, select the Periodicity indicated by a professional accountant and press Create . All invoices should be signed under the same XML file, with the same Fiscal Folio .\n- Click Show in the CFDI tab to display a list with all related invoices.\nClick Show in the CFDI tab to display a list with all related invoices.\n- Click Cancel in the CFDI tab to cancel the global invoice in both the SAT and Odoo.\nClick Cancel in the CFDI tab to cancel the global invoice in both the SAT and Odoo.\nGlobal invoices created this way wonât have a PDF in them as their information is already\nwithin Odoo and is not to be seen by a customer.\n\n### Electronic accounting (reporting)\n\nFor Mexico, Electronic Accounting refers to the\nobligation to keep accounting records and entries through electronic means, and to enter accounting\ninformation on a monthly basis, through the SAT website.\nIt consists of three main XML files:\n- The updated list of the chart of accounts that is currently in use\nThe updated list of the chart of accounts that is currently in use\n- A monthly trial balance, plus a closing entry report, also known as: Trial Balance Month 13\nA monthly trial balance, plus a closing entry report, also known as: Trial Balance Month 13\n- An export of the journal entries in the general ledger (optional except in the case of a\ncompulsory audit)\nAn export of the journal entries in the general ledger (optional except in the case of a\ncompulsory audit)\nThe resulting XML files follow the requirements of the Anexo Técnico de Contabilidad Electrónica\n1.3 .\nIn addition to this, it is possible to generate the DIOT : a report of vendorsâ journal entries that involve IVA taxes that can be\nexported in a TXT file.\nIn order to use these reports, the following modules must be installed:\n- Odoo Mexican Localization Reports l10n_mx_reports\nOdoo Mexican Localization Reports l10n_mx_reports\n`l10n_mx_reports`\n- Mexico - Month 13 Trial Balance l10n_mx_reports_closing\nMexico - Month 13 Trial Balance l10n_mx_reports_closing\n`l10n_mx_reports_closing`\n- Odoo Mexican XML Polizas Export l10n_mx_xml_polizas\nOdoo Mexican XML Polizas Export l10n_mx_xml_polizas\n`l10n_mx_xml_polizas`\nThe chart of accounts and the Trial Balance Month 13 reports can be found in Accounting ⣠Reporting ⣠Trial Balance . The DIOT report can be found in Accounting ⣠Reporting ⣠Tax Report .\nThe specific characteristics and obligations of the reports that you send might change according\nto your fiscal regime. Always contact your accountant before sending any documents to the\ngovernment.\n\n#### Chart of accounts\n\nThe chart of accounts in Mexico follows a\nspecific pattern based on SAT âsâ Código agrupador de cuentas .\nIt is possible to create any account, as long as it respects SAT âs encoding group: the pattern is NNN.YY.ZZ or NNN.YY.ZZZ .\n`NNN.YY.ZZ`\n`NNN.YY.ZZZ`\nSome examples are 102.01.99 or 401.01.001 .\n`102.01.99`\n`401.01.001`\nWhen a new account is created in Accounting ⣠Configuration ⣠Chart of\nAccounts , with the SAT encoding group pattern, the correct grouping code appears in Tags , and the account appears in the COA report.\nOnce all accounts are created, make sure the correct Tags are added as these mark the\nnature of the account.\nIt is not advised use any pattern that ends a section with a 0 (such as 100.01.01 , 301.00.003 or 604.77.00 ). This triggers errors in the report. By default Odoo will mark the accounts as\nyellow if the numbering will cause issue later on, this is to prevent reports from providing\ninaccurate data.\n`100.01.01`\n`301.00.003`\n`604.77.00`\nOnce everything is set up, go to Accounting ⣠Reporting ⣠Trial Balance , and\nclick the COA SAT (XML) button to generate an XML file containing all of the accounts.\nThis XML file is ready to upload to the SAT website.\n\n#### Trial balance\n\nThe trial balance reports the initial balance, credit, and total balance of your accounts, provided\nthat you added their correct encoding group .\nTo generate an XML file of the trial balance, go to Accounting ⣠Reporting â£\nTrial Balance , select the date, and click the (action menu) , then select SAT (XML) .\nOdoo does not generate the Balanza de Comprobación Complementaria .\nAn additional report is the Month 13 : a closing balance sheet that shows any adjustments or\nmovements made in the accounting to close the year.\nTo generate this XML document, navigate to Accounting ⣠Accounting ⣠Journal\nEntries , and create a new document. Here, add all amounts to modify, and balance the debit and/or\ncredit of each one.\nAfter this is done, go to the Other Info tab and check the Month 13 Closing field. If needed, go to Accounting ⣠Reporting ⣠Trial Balance and select the\ndate Month 13 , where it is possible to see the the total amount of the year, plus all\nthe additions of the journal entry. To generate the XML file, click the (action menu) , then select SAT (XML) .\n\n#### General ledger\n\nBy law, all transactions in Mexico must be recorded digitally. Since Odoo automatically creates all\nthe underlying journal entries of all invoices and payments, simply exporting the general ledger\ncomplies with SAT âs audits and/or tax refunds.\nThe report can be filtered by period or by journal, depending on the need.\nTo create the XML, go to Accounting ⣠Reporting ⣠General Ledger , click (action menu) , then click XML (Polizas) . Then, select among\nfour Export types:\n- Tax audit\n- Audit certification\n- Return of goods\n- Compensation\nFor Tax audit or Audit certification , add the Order Number provided by the SAT . For Return of goods or Compensation , add the Process Number , also provided by the SAT .\nTo see this report without sending it, use ABC6987654/99 for the Order\nNumber or AB123451234512 for the Process Number .\n`ABC6987654/99`\n`AB123451234512`\n\n#### DIOT report\n\nThe DIOT (Declaración Informativa de Operaciones con Terceros / Informative Declaration of\nOperations with Third Parties ) is an additional obligation with the SAT , where the current status\nof creditable and non-creditable payments, withholdings, import taxes, and refunds of VAT from your\nvendor bills are provided to the SAT .\nSince July 2025 the new 2025 version of the report is available.\nUnlike other reports, the DIOT is uploaded to a software provided by the SAT that contains the\nA-29 form. In Odoo, you can download the records of your transactions as a TXT file that can be\nuploaded to the form, avoiding direct capture of this data.\nThe transactions file contains the total amount of your payments registered in vendor bills, broken\ndown into the corresponding types of IVA. The VAT and Country is mandatory\nfor all vendors.\nTo download the DIOT report as a TXT file, go to Accounting ⣠Reports ⣠Tax\nReturn . Select the desired month, click (action menu) , and select DIOT (TXT) .\nIt is required to fill in the Type of Operation field in the Accounting tab of each vendor to prevent validation errors. Make sure that foreign customers have their Country set.\nSelecting 87 - Global Operations will cause the final TXT file to merge all vendors\nthat are part of the global operations under one generic VAT: XAXX010101000 .\n\n### External trade\n\nThe external trade is a complement to a regular invoice that adds certain values in both the XML and\nPDF, to invoices with a foreign customer according to SAT regulations , such as:\n- The specific address of the receiver and the sender\nThe specific address of the receiver and the sender\n- The addition of a Tariff Fraction that identifies the type of product\nThe addition of a Tariff Fraction that identifies the type of product\n- The correct Incoterms (International Commercial Terms)\nThe correct Incoterms (International Commercial Terms)\n- And more, such as the certificate of origin and special units of measure\nAnd more, such as the certificate of origin and special units of measure\nThis allows the correct identification of exporters and importers, in addition to expanding the\ndescription of the merchandise sold.\nSince January 1, 2018, external trade is a requirement for taxpayers who carry export operations of\ntype A1. While the current CFDI is 4.0, the external trade is currently on version 2.0.\nIn order to use this feature, the EDI for Mexico (Advanced Features) l10n_mx_edi_extended module must be installed.\n`l10n_mx_edi_extended`\nBefore installing, make sure your business needs to use this feature. Consult your accountant\nfirst, if needed, before installing any modules.\n\n#### Configuration\n\nTo configure your company contact for external trade, navigate to Accounting â£\nCustomers ⣠Customers , remove the default Customer Invoices filter, and select your Company name. While the CFDI 4.0 requirements require adding a valid ZIP code in the company contact record, the external trade complement adds the requirement that the City and the State must also be valid. All three fields must coincide with\nthe Official SAT Catalog for Carta Porte ,\nor it will produce an error.\nAdd the City and State in the companyâs contact record , not in the\ncompany record itself.\nOn the contact record, the optional fields Locality and Colony Code can also\nbe filled. These two fields also have to coincide with the data in the SAT .\nTo configure the contact data for a foreign receiving client, navigate to Accounting\n⣠Customers ⣠Customers , and select the foreign clientâs contact. The contact must have the\nfollowing fields completed to avoid errors:\n- The entire company Address , including a valid ZIP code and the foreign Country .\nThe entire company Address , including a valid ZIP code and the foreign Country .\n- The foreign RFC (tax identification number), in the correct format (for example:\nColombia 123456789-1 )\nThe foreign RFC (tax identification number), in the correct format (for example:\nColombia 123456789-1 )\n`123456789-1`\n- In the Sales & Purchase tab, to activate the Needs external trade? checkbox.\nIn the Sales & Purchase tab, to activate the Needs external trade? checkbox.\nDo not enable the No Tax Breakdown option for External Trade customers. Selecting\nthis option hides mandatory fields that are required for external trade contact configuration.\nIn the resulting XML and PDF files, the VAT is automatically replaced by the generic\nVAT for abroad transactions: XEXX010101000 .\n`XEXX010101000`\nAll products involved with external trade have four additional fields that are required, two of\nwhich are exclusive to external trade.\n- The Reference of the product must be set in the General Information tab.\nThe Reference of the product must be set in the General Information tab.\n- The Weight of the product in the Inventory tab must be more than 0 .\nThe Weight of the product in the Inventory tab must be more than 0 .\n`0`\n- The correct Tariff\nFraction of the product must be set in the Accounting tab for external trade.\nThe correct Tariff\nFraction of the product must be set in the Accounting tab for external trade.\n- The UMT Aduana in the Accounting tab must be set and correspond to the Tariff Fraction for external trade.\nThe UMT Aduana in the Accounting tab must be set and correspond to the Tariff Fraction for external trade.\n- If the UoM code of the Tariff Fraction is 01 , the correct UMT Aduana is kg .\nIf the UoM code of the Tariff Fraction is 01 , the correct UMT Aduana is kg .\n`01`\n`kg`\n- If the UoM code of the Tariff Fraction is 06 , the correct UMT Aduana is Units .\nIf the UoM code of the Tariff Fraction is 06 , the correct UMT Aduana is Units .\n`06`\n`Units`\n\n#### Invoicing flow\n\nBefore creating an invoice, it is important to take into account that external trade invoices\nrequire converting product prices into a foreign currency such as USD. Therefore, multicurrency must be enabled with the foreign\ncurrency activated in the Currencies section. The correct Service to run is [MX] Bank of Mexico . To convert product prices, create a pricelist in the foreign currency.\nThen, with the correct exchange rate set up in Accounting ⣠Settings â£\nCurrency , set the Incoterm and the optional Certificate Source fields in\nthe invoiceâs Other Info tab.\nFinally, confirm the invoice with the same process as a regular invoice, and click the Send button to sign it via CFDI.\n\n## Point of sale\n\nThe Point of sale adaptation of the Mexican Localization enables\nthe creation of invoices that comply with the SAT requirements directly in the POS session ,\nwith the added benefit of creating receipt tickets that allow self-invoicing in a special portal\nand creating global invoices.\n\n### Point of sale flow\n\nOther than the standard Point of Sale configuration , the only requirement for the Mexican localization is the\nadditional fact that each payment method needs to be configured with a correct Payment\nWay .\nBy default Odoo creates preconfigured payment methods for cash, credit card, and debit card.\nWhile selling on the Point of Sale , click the Customer button to either create or\nselect a customer. Here it is possible to review customer invoicing information (such as the RFC or Fiscal Regime ) and even modify it directly inside the session.\nAfter selecting a customer, tick the Invoice checkbox. This opens\na menu to select the Usage and to define if it is an invoice to the public. Click\nconfirm, select the payment method, and then click validate to complete the order. The PDF is then\ndownloaded and it is possible to send the invoice via mail to the final customer alongside the\nreceipt.\nTo create invoices from orders, go to the Orders menu, select the order, click Load Order , and tick the Invoice checkbox. This\nopens the same menu for the Usage and CFDI to Public .\nTo sign a credit note automatically, tick the Invoice checkbox\nwhen processing a refund .\nCredit notes for returned products will contain the relation type 03 - Devolución de\nmercancÃa sobre facturas o traslados previos .\n- In the Mexican localization, positive and negative lines in a POS session cannot be mixed.\nIn the Mexican localization, positive and negative lines in a POS session cannot be mixed.\n- If a SAT validation error occurs customer will get a Pro-Forma invoice instead.\nIf a SAT validation error occurs customer will get a Pro-Forma invoice instead.\n\n### Self-invoicing portal\n\nIf the final customer is not sure if they want to have their invoice generated at the exact moment\nof the sale, it is possible to give them the option of creating a receipt with either a QR code or a\nURL. To do so, follow these steps:\n- Go to Point of Sale ⣠Configuration .\nGo to Point of Sale ⣠Configuration .\n- Select the Point of Sale .\nSelect the Point of Sale .\n- Scroll to the Bills & Receipts section.\nScroll to the Bills & Receipts section.\n- Enable Self-service invoicing .\nEnable Self-service invoicing .\n- Set the Print field to QR code , URL , or QR code +\nURL .\nSet the Print field to QR code , URL , or QR code +\nURL .\nCustomers who scan this QR code or follow the URL will access to a menu where they can add their\nfiscal information, including the Usage and Fiscal Regime once they enter the five digit code\nthat is also provided on the receipt.\nReceipts and invoices\n\n### Global invoice\n\nAs with regular sales orders, global invoices can also be created from a POS session.\nFor this, make sure not to select a customer or the invoice option in the payment menu and go to Point of Sale ⣠Orders ⣠Orders . There, select all the orders to invoice, click Actions and select Create Global Invoice .\nLike with sales orders, choose the correct Periodicity and press Create .\nThis attaches an XML file to each of the selected orders. The XML files can be downloaded by going\nto the CFDI tab. If needed, it is possible to cancel the invoice from the same tab.\nIf eventually any of the orders that are part of the global invoice need to be addressed to a\ncustomer, it is still possible to send an invoice by entering a new POS session, clicking the (drop-down menu) , then click Orders . Change the All active orders filter to Paid , select the order, and click the Invoice button.\nGlobal invoices, just as regular invoices, can only be grouped by physical address. That is\ndetermined by the address set on the POS invoice journal, so when attempting to invoice two\naddresses a warning will come up to warn the user of the error.\n\n## eCommerce\n\nThe eCommerce adaptation of the Mexican Localization provides and extra step to create invoices that\ncomply with the SAT requirements on eCommerce by retrieving\nthe customer data after the Checkout and even allowing for the signature of automatic\ninvoices after the payment is processed, as well as sending customers the files via email and\ngranting them access to retrieve their PDF & XML files from their own customer portal.\n\n### eCommerce flow\n\nDuring the regular checkout process, a new Invoicing Info step appears, where it is\npossible to request an invoice or not. If No is selected, a CFDI to Public is\ncreated,. If Yes is selected, the RFC , Fiscal Regime ,\nand Usage are required in order to get all information in the sales order, where its\nstatus will change to To Invoice .\nMake sure to add a UNSPSC code to the shipping product .\nIf you enable the Automatic Invoicing in Settings ⣠Website â£\nInvoicing , the electronic document will be signed automatically.\n\n## Subscriptions\n\nWhile handling subscriptions, all the sales fields are used to create the recurrent invoices. These\nare automatically signed and sent via email with the PDF and XML attached with no additional manual\nactions required.\n\n## Inventory\n\n### Customs numbers\n\nA customs declaration (Pedimento Aduanero) is a fiscal document that certifies that all\ncontributions to the fiscal entity (the SAT ) have been paid for, including the import/export of\ngoods.\nAccording to the Annex 20 of\nCFDI 4.0, in documents where the invoiced goods come from a first-hand import operation, the Customs Number field, needs to be added to all lines of products involved with the\noperation.\nTo do so, the Odoo Mexico Localization for Stock/Landing l10n_mx_edi_landing module\nmust be installed, in addition to the Inventory , Purchase , and Sales apps.\n`l10n_mx_edi_landing`\nDo not confuse this feature with external trade. The customs numbers are directly related to\nimporting goods, while the external trade complement is related to exporting. Consult your\naccountant first if this feature is needed before doing any modifications.\n\n#### Configuration\n\nIn order to track the correct customs number for a specific invoice, Odoo uses landed costs . Go to Inventory ⣠Configuration ⣠Settings , and in the Valuation section,\nmake sure that Landed Costs is activated.\nBegin by creating a service-type product called, Pedimento . In the Purchase tab,\nactivate Is a Landed Cost , and select a Default Split Method .\n`Pedimento`\nThen, configure the goods-type products that hold the customs numbers. To do so, create the\nproducts, and make sure the Product Category has the following configuration:\n- Costing Method : Either FIFO or AVCO\nCosting Method : Either FIFO or AVCO\n- Inventory Valuation : Automated\nInventory Valuation : Automated\n- Stock Valuation Account : 115.01.01 Inventory\nStock Valuation Account : 115.01.01 Inventory\n- Stock Journal : Inventory Valuation\nStock Journal : Inventory Valuation\n- Stock Input Account : 115.05.01 Goods in transit\nStock Input Account : 115.05.01 Goods in transit\n- Stock Output Account : 115.05.01 Goods in transit\nStock Output Account : 115.05.01 Goods in transit\nSetting the Inventory Valuation to Automated requires first enabling the\nfeature. Go to Accounting ⣠Configuration ⣠Settings , and in the Stock Valuation section, enable Automatic Accounting .\n\n#### Purchase and sales flow\n\nAfter configuring the product, follow the standard purchase flow .\nCreate a purchase order from Purchase ⣠Orders ⣠Purchase Order . Then, confirm\nthe order to display a Receipt smart button. Click the Receipt smart\nbutton and Validate the receipt.\nGo to Inventory ⣠Operations ⣠Landed Costs , and create a new record. In the Transfer , add the receipt that was just validated, add the Customs number and in the Additional Costs tab, add the Pedimento product.\nOptionally, it is possible to add a cost amount. After this, Validate the landed cost.\nOnce Posted , all products related to that receipt have the customs number assigned.\nThe Pedimento Number field is not editable once it is set, so be careful when\nassociating the correct number with the transfer(s).\nNext, create a sales order and confirm it. Click the Delivery smart button that\nappears, and Validate the delivery order.\nFinally, create an invoice from the sales order , and confirm it.\nThe invoice line related to the product has a customs number on it. This number matches the customs\nnumber added in the landed cost record created earlier.\n\n### Delivery guide\n\nA Carta Porte is a bill of\nlading: a document that states the type, quantity, and destination of goods being carried.\nOn July 17th, 2024, version 3.1 of this CFDI was implemented for all transportation providers,\nintermediaries, and owners of goods. Odoo is able to generate a document type âTâ (Traslado), which,\nunlike other documents, is created in a delivery order instead of an invoice or payment.\nOdoo can create XML and PDF files with (or without) ground transport, and can process materials that\nare treated as Dangerous Hazards .\nIn order to use this feature, the Mexico - Electronic Delivery Guide l10n_mx_edi_stock module must be installed.\n`l10n_mx_edi_stock`\nAdditionally, it is necessary to have the Inventory and Sales apps installed.\nOdoo does not support Carta Porte type document type âIâ (Ingreso), air, or marine transport.\nConsult your accountant first if this feature is needed before doing any modifications.\n\n#### Configuration\n\nOdoo manages two different types of CFDI type âTâ. Both can be created from either incoming\nshipments or delivery orders .\n- No Federal Highways is used when the Distance to Destination is less\nthan 30 km .\nNo Federal Highways is used when the Distance to Destination is less\nthan 30 km .\n- Federal Transport is used when the Distance to Destination exceeds 30 km.\nFederal Transport is used when the Distance to Destination exceeds 30 km.\nOther than the standard requirements of regular invoicing (the RFC of the customer, the UNSPSC\ncode, etc.), if you are using No Federal Highways , no external configuration is needed.\nFor Federal Transport , several configurations have to be added to contacts, vehicle setups, and\nproducts. Those configurations are then included in the XML and PDF files.\nLike the external trade feature, the Address in both the company and the final customer\nmust be complete. The ZIP code, City , and State must coincide\nwith the Official SAT Catalog for Carta Porte .\nThe field, Locality , is optional for both addresses.\nThe origin address used for the delivery guide is set in Inventory â£\nConfiguration ⣠Warehouses . While this is set as the company address by default, you can\nchange it to your correct warehouse address.\nAnother addition to this feature is the Vehicle Setups menu found in Inventory ⣠Settings ⣠Vehicle Setups . This menu lets you add all the\ninformation related to the vehicle used for the delivery order.\nAll fields are mandatory to create a correct delivery guide.\nThe fields, Vehicle Plate Number and Number Plate , must contain between\n5 and 7 characters.\nIn the Intermediaries section, add the operator of the vehicle. The only mandatory\nfields for this contact are the VAT and Operator Licence .\nSimilar to regular invoicing, all products must have a UNSPSC category . In addition to\nthis, there are two extra configurations for products involved in delivery guides:\n- The Product Type must be set as Storable Product for stock movements to be\ncreated.\nThe Product Type must be set as Storable Product for stock movements to be\ncreated.\n- In the Inventory tab, the field Weight must be more than 0 .\nIn the Inventory tab, the field Weight must be more than 0 .\n`0`\nCreating a delivery guide of a product with the value 0 will trigger an error. As the Weight has been already stored in the delivery order, it is needed to return the\nproducts and create the delivery order (and delivery guide) again with the correct amounts.\n`0`\n\n#### Sales and inventory flow\n\nTo create a delivery guide, first, first create and confirm a sales order from Sales\n⣠Sales Order . Click the Delivery smart button that is generated, and Validate the transfer.\nAfter the status is set to Done , you can edit the transfer, and select the Transport Type in the Additional Info tab.\nIf using the No Federal Highways Transport Type , save the transfer, and then\nclick Generate Delivery Guide . The resulting XML can be found in the chatter.\nOther than the UNSPSC on all products, delivery guides that use No Federal\nHighways do not require any special configuration to be sent to the government.\nIf using the Federal Transport Transport Type , the tab MX EDI appears. There, enter a value in Distance to Destination (KM) greater than 0 , and\nselect the Vehicle Setup used for this delivery.\n`0`\nFinally, add a Gross Vehicle Weight and click Generate Delivery Guide .\nDelivery Guides can also be created from Receipts , either from the Inventory app or\nby the standard flow of the Purchase app.\nCertain values in the UNSPSC Category are considered in the official SAT catalog as dangerous\nhazards . These categories need additional considerations when creating a delivery guide with Federal Transport .\nFirst, select the product from Inventory ⣠Products ⣠Products . Then, in the Accounting tab, fill the Hazardous Material Designation Code and Hazardous Packaging fields with the correct code from the SAT catalog.\nThere exists the possibility that a UNSPSC Category may or may not be a dangerous\nhazard (for example 01010101 ). If it is not dangerous, enter 0 in the Hazardous\nMaterial Designation Code field.\n`0`\nIn Inventory ⣠Settings ⣠Vehicle Setup , complete the Environment\nInsurer and Environment Insurance Policy well. After this, continue with the regular\nprocess to create a delivery guide.\nIf your Carta Porte is for international operations (for exports), some additional fields need to be\ntaken into account.\nFirst, make sure that all relevant Products have the following configuration:\n- UNSPSC Category cannot be 01010101 Does not exist in the catalog .\nUNSPSC Category cannot be 01010101 Does not exist in the catalog .\n- Tariff Fraction and UMT Aduana must be set, similar to the external trade flow.\nTariff Fraction and UMT Aduana must be set, similar to the external trade flow.\n- Material Type must be set.\nMaterial Type must be set.\nThen, when creating a Delivery Guide from a delivery or receipt, fill the following\nfields:\n- Customs Regimes\n- Customs Document Type\nCustoms Document Type\n- Customs Document Identification\nCustoms Document Identification\nThen, when creating a Delivery Guide for a receipt where the Customs Document\nType is Pedimento , two new fields appear: Pedimento Number and Importer .\nThe field Pedimento Number should follow the pattern xx xx xxxx xxxxxxx . For\nexample, 15 48 3009 0001235 .\n`xxxxxxxxxxxxxxx`\n`154830090001235`", "headings": ["Modules", "Video tutorials", "Localization overview", "Requirements", "Company", "Contacts", "Taxes", "Products", "Electronic invoicing", "Accounting", "Electronic invoicing", "Electronic accounting (reporting)", "External trade", "Point of sale", "Point of sale flow", "Self-invoicing portal", "Global invoice", "eCommerce", "eCommerce flow", "Subscriptions", "Inventory", "Customs numbers", "Delivery guide"], "doc_id": "070f34439be4c719"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/netherlands.html", "title": "Netherlands", "module": "invoicing", "section": "Netherlands", "text": "# Netherlands\n\nDocumentation on e-invoicingâs legality and compliance in the Netherlands\n\n## XAF Export\n\nWith the Dutch accounting localization installed, you will be able to\nexport all your accounting entries in XAF format. For this, you have to\ngo in Accounting ⣠Reporting ⣠General Ledger , you\ndefine the entries you want to export using the filters (period, journals, â¦)\nand then you click on the button EXPORT (XAF) .\n\n## Dutch Accounting Reports\n\nIf you install the Dutch accounting localization, you will have access\nto some reports that are specific to the Netherlands such as :\n- Profit & Loss\n- Tax Report (Aangifte omzetbelasting)\nTax Report (Aangifte omzetbelasting)\n- Intrastat Report (ICP)\nIntrastat Report (ICP)", "headings": ["XAF Export", "Dutch Accounting Reports"], "doc_id": "aced25bb21af012a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/new_zealand.html", "title": "New Zealand", "module": "invoicing", "section": "New Zealand", "text": "# New Zealand\n\n## Modules\n\nThe following modules related to the New Zealand localization are available:\nNew Zealand - Accounting\n`l10n_nz`\nInstalled by default when the accounting fiscal localization package is set to New Zealand.\nThis module also installs the remittance advice report module.\nEmployment Hero NZ Payroll\n`l10n_employment_hero`\nThis module synchronizes all pay runs from Employment Hero with Odooâs journal entries.\n`l10n_nz_eft`\nThis module allows businesses to streamline bulk payments like payroll and vendor payments.\nEach bank has its specific format for these transactions.\nThe localizationâs core modules are installed automatically with the localization. The rest can\nbe manually installed .\n\n## Localization overview\n\n- Chart of accounts : a predefined structure tailored to New\nZealand accounting standards\nChart of accounts : a predefined structure tailored to New\nZealand accounting standards\n- Fiscal positions (tax and account mapping) : automated tax adjustments based on customer or\nsupplier registration status\nFiscal positions (tax and account mapping) : automated tax adjustments based on customer or\nsupplier registration status\n- Taxes and GST\n- Reporting\n\n### Taxes and GST\n\nThe default taxes impact the GST report , which can be\naccessed through Accounting ⣠Reporting ⣠Tax Return\nThe standard Goods and Service Tax (GST) rate is 15%, but different rates and exemptions exist\nfor specific categories of goods and services.\n\n#### Tax mapping\n\nWithin the New Zealand localization package, tax names encompass the tax rate as an integral part\nof their naming convention.\nThese are the taxes in Odoo.\nZero/Export (0%) Sale\nZero Rated (Export) Sales\nZero/Import (0%) Purch\nPurch (Imports Taxable)\nPurchase (Taxable Imports) - Tax Paid Separately\n\n### Reporting\n\n#### GST report\n\nThe Goods and Services Tax (GST) report is a critical tax reporting requirement for businesses\nregistered for GST. The GST return is used to report and remit GST to the Inland Revenue\nDepartment (IRD) .\nThe base and tax amounts are collected from the GST , which is pre-configured in Odoo to align\nwith GST Return requirements (Boxes 1-15). The GST can also be manually configured for special\nuse cases, such as specific GST treatments (e.g., zero-rating for exported agricultural goods).\nOnce the GST setup for each account is complete, Odoo automatically categorizes journal items\ninto the appropriate boxes. This ensures the GST return is accurate and fully reflects the\nbusinessâs financial activities.\nThe tax return periodicity must be set up before submitting the tax return ( GST report ) to the IRD .\nYear-end closing documentation\nBefore closing the entry for the first time, enable the developer mode and go to Accounting â£\nConfiguration ⣠Tax Groups to set the default GST payable account and GST receivable\naccount .\nOnce the GST payable and GST receivable accounts are set up, the Tax Return report\ngenerates an accurate journal closing entry automatically, balancing the GST balance with the GST\nclearing account.\nThe balance between GST receivable and payable is set against the tax clearing account\ndefined on the tax group. The amount to be paid to or received from IRD can then be reconciled\nwith a bank transaction.\nThe GST report is not submitted directly to the IRD . Instead, Odoo\nautomatically calculates the required values for each section, providing options to audit\nand review the data for a clearer understanding of its history. Businesses can then\nsubmit these values to the IRD portal .\n\n#### Remittance advice\n\nA remittance advice is a document used as proof of payment to a business. To access it, go to Accounting ⣠Vendors ⣠Payments and select the payment(s). Then click Print and select Payment Receipt .\n\n## Accounting\n\n### E-invoicing\n\nOdoo allows electronic invoicing settings to be\nconfigured per contact.\nValidating an invoice or credit note for a contact on the PEPPOL network will download a\ncompliant XML file that can be manually uploaded to the PEPPOL network. Odoo is currently in the\nprocess of becoming an access point for the ANZ region.\n\n### EFT batch payments\n\nAn EFT batch file is a digital format used to facilitate bulk\npayment processing for businesses. It allows companies to consolidate multiple inbound and outbound\npayments into a single electronic file. This process is commonly used by businesses handling\nmultiple payments at once, such as payroll or payments to multiple suppliers.\n\n#### Configuration\n\n- Install the EFT Batch Payment module ( l10n_nz_eft ).\nInstall the EFT Batch Payment module ( l10n_nz_eft ).\n`l10n_nz_eft`\n- Go to Accounting ⣠Configuration ⣠Settings . In the Customer Payments section, enable Batch Payments .\nGo to Accounting ⣠Configuration ⣠Settings . In the Customer Payments section, enable Batch Payments .\nGo to Accounting ⣠Configuration ⣠Journals to configure the bank journal .\nIn the Journal Entries tab, enter the Account Number and click Create and edit⦠. In the Create Account Number window, fill in the Bank and enable Send Money to set the bank account as trusted. The Currency field is optional.\nTo add banking information for a contact, navigate to Accounting ⣠Customers ⣠Customers , Accounting ⣠Vendors ⣠Vendors , or access the contact directly through the Contacts app. Select the relevant contact, then open the Accounting tab. Under the Bank Accounts section, click Add a line to enter the required details.\n- Account Number\n- Account Holder (it will automatically be selected for that contact)\nAccount Holder (it will automatically be selected for that contact)\n- Send Money must be enabled .\nSend Money must be enabled .\n\n#### Generate an EFT file\n\nGo to Accounting ⣠Customers ⣠Invoices or Accounting ⣠Vendors ⣠Bills . Select the invoices/bills to be paid from the\nlist and click Pay . In the Payment Method field, select New Zealand EFT and click Create Payment .\nThe Group Payment checkbox is optional. This option appears only if there are\nmultiple invoices or bills from the same contact.\nIn the payments window, the required EFT information for each payment, such as Particulars and Analysis Code , can be entered as needed.\nThe same payment information can be found under Accounting ⣠Customers â£\nPayments or Accounting ⣠Vendors ⣠Payments .\nThen, return to the payments list view, select the payments needing to be batched, and click Create Batch .\nIn the batch payment window, fill in the following fields:\n- EFT file format\n- Payment Reference\n- Payment Particulars\nThen, click Validate . Odoo will generate the EFT file in the chatter. Click on the file\nto preview or download it.\nEach bank has its specific format requirements for EFT batch payments. Make sure to choose the\ncorrect EFT file format. Some banks may also require the completion of additional fields, such\nas Direct Debit Information and Dishonour Account .\nBatch paments by bank deposit documentation\n\n## Industry-specific features\n\n### Starshipit shipping\n\nStarshipit is a shipping service operator that facilitates the\nintegration of Australasian shipping couriers with Odoo.\n- Starshipit webinar recording\nStarshipit webinar recording\n- Starshipit shipping\n\n### Buy Now, Pay Later solutions\n\nBuy Now, Pay Later solutions are popular payment methods for e-shops. Some of these solutions\nare available via the Stripe and AsiaPay payment providers.\n- AsiaPay Payment Provider documentation\nAsiaPay Payment Provider documentation\n- Stripe Payment Provider documentation\nStripe Payment Provider documentation\n\n### Point of Sale terminals\n\nTo have a direct connection between Odoo and a PoS terminal, a Stripe terminal is needed. Odoo\nsupports the EFTPOS payment solution.\nA Stripe payment terminal is not needed to use Odoo as the main POS system. The only drawback\nof not using Stripe is that cashiers must manually enter the final payment amount on the\nterminal.\n- Stripe Payment Provider documentation\nStripe Payment Provider documentation\n- Stripe.com Dashboard\n- Stripe.com Docs: Terminal\nStripe.com Docs: Terminal\n\n## Payroll\n\n### Employment Hero integration\n\nIf your business is already up and running with Employment Hero ,\nthe connector can be used as an alternative payroll solution.\nThe Employment Hero module automatically synchronises payslip accounting entries (e.g., expenses,\nsocial charges, liabilities, taxes) from Employment Hero to Odoo. Payroll administration is\nstill done in Employment Hero ; only the journal entries are recorded in Odoo.\nTo configure the Employment Hero API for New Zealand ,\nuse the following value as Payroll URL : https://api.nzpayroll.co.nz/ .\n`https://api.nzpayroll.co.nz/`", "headings": ["Modules", "Localization overview", "Taxes and GST", "Reporting", "Accounting", "E-invoicing", "EFT batch payments", "Industry-specific features", "Starshipit shipping", "Buy Now, Pay Later solutions", "Point of Sale terminals", "Payroll", "Employment Hero integration"], "doc_id": "272a6326c35d7eb3"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/oman.html", "title": "Oman", "module": "invoicing", "section": "Oman", "text": "# Oman\n\n## Modules\n\nThe following modules related to the Omani localization are available:\n`l10n_om`\nOmani fiscal localization package , complete with the\nlocal chart of accounts, taxes, tax report, and fiscal positions.\nOman - Accounting Reports\n`l10n_om_reports`\nAccounting reports for Oman.\nThe module automatically installs core configurations. A manual update may be required for missing elements or updates.\n\n## Localization overview\n\nThe Omani localization package provides the necessary accounting setup for companies operating in\nOman, including a pre-configured chart of accounts, taxes, fiscal positions, and a standard tax\nreport format. It ensures alignment with Oman VAT regulations and Royal Decree requirements.\nThe Omani localization package provides the following key features to ensure compliance with local\nfiscal and accounting regulations:\n- Chart of Accounts : based on Omani standards, with\nmapped account groups and default account mappings.\nChart of Accounts : based on Omani standards, with\nmapped account groups and default account mappings.\n- Taxes : standard 5% VAT, zero-rated domestic as well as exports,\nexempt, imports, and reverse charge taxes.\nTaxes : standard 5% VAT, zero-rated domestic as well as exports,\nexempt, imports, and reverse charge taxes.\n- Fiscal Positions : automated tax adjustments based\non customer or supplier registration status.\nFiscal Positions : automated tax adjustments based\non customer or supplier registration status.\n- Tax Report : structured according to the Oman VAT return\nformat, as issued by the Tax Authority.\nTax Report : structured according to the Oman VAT return\nformat, as issued by the Tax Authority.\n\n### Chart of accounts\n\nThe Omani chart of accounts is based on the\nlocal rules and regulations. This includes pre-configured account groups and mapped default\naccounts. Use the predefined structure or create new accounts, as\nneeded.\nAccounts are grouped under relevant categories such as assets, liabilities, income, and expenses\nin line with local standards.\n\n### Taxes\n\nThe following Taxes , included in the Omani VAT system, are available by\ndefault with the Omani localization package:\n- Standard Rate 5%: Applies to the sale of most goods and services within Oman.\nStandard Rate 5%: Applies to the sale of most goods and services within Oman.\n- Zero-Rated Supplies (0%): Applies to essential supplies where the seller can still reclaim input\nVAT.\nZero-Rated Supplies (0%): Applies to essential supplies where the seller can still reclaim input\nVAT.\n- Exports (0%): Applies to the supply of goods and services that are exported outside Oman.\nExports (0%): Applies to the supply of goods and services that are exported outside Oman.\n- Exempt Supplies: Applies to supplies that are not subject to VAT, and for which the supplier\ncannot reclaim input VAT on related purchases.\nExempt Supplies: Applies to supplies that are not subject to VAT, and for which the supplier\ncannot reclaim input VAT on related purchases.\n- Reverse Charge Mechanism (RCM): Applies to taxable businesses in Oman receiving services or goods\nfrom non-resident suppliers not registered for VAT in Oman.\nReverse Charge Mechanism (RCM): Applies to taxable businesses in Oman receiving services or goods\nfrom non-resident suppliers not registered for VAT in Oman.\n- Import VAT (5%): Applies to the importation of most goods into Oman, charged at the customs\npoint of entry.\nImport VAT (5%): Applies to the importation of most goods into Oman, charged at the customs\npoint of entry.\n\n### Tax report\n\nThe VAT return provides a consolidated overview of the taxable sales and\npurchases, VAT collected and paid, and the total amount owed or refundable for the reporting period.\n- The tax return aligns with official declarations required by Omanâs Tax Authority .\nThe tax return aligns with official declarations required by Omanâs Tax Authority .\n- VAT Taxpayer Guide .", "headings": ["Modules", "Localization overview", "Chart of accounts", "Taxes", "Tax report"], "doc_id": "5e3a33dca490e0f6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/peru.html", "title": "Peru", "module": "invoicing", "section": "Peru", "text": "# Peru\n\n## Modules\n\nInstall the following modules to utilize all the current features of the\nPeruvian localization.\n`l10n_pe`\nAdds accounting features for the Peruvian localization, which represent the minimal\nconfiguration required for a company to operate in Peru and under the SUNAT regulations and\nguidelines. The main elements included in this module are the chart of accounts, taxes,\ndocument types.\n`l10n_pe_edi`\nIncludes all technical and functional requirements to generate and receive electronic\ninvoices online based on the SUNAT regulations.\nPeru - Accounting Reports\n`l10n_pe_reports`\nIncludes the following financial reports:\n- 1st set of main financial reports: Registro de Ventas e Ingresos (RVIE) - 14.4 Registro de Compras Electrónico (RCE) - 8.4 Registro de Compras Electrónico - Información de Operaciones con Sujetos no Domiciliados\n(RCE) - 8.5\n1st set of main financial reports:\n- Registro de Ventas e Ingresos (RVIE) - 14.4\nRegistro de Ventas e Ingresos (RVIE) - 14.4\n- Registro de Compras Electrónico (RCE) - 8.4\nRegistro de Compras Electrónico (RCE) - 8.4\n- Registro de Compras Electrónico - Información de Operaciones con Sujetos no Domiciliados\n(RCE) - 8.5\nRegistro de Compras Electrónico - Información de Operaciones con Sujetos no Domiciliados\n(RCE) - 8.5\n- 2nd set of financial reports: PLE 5.1 General Journal PLE 5.3 Chart of Accounts PLE 6.1 General Ledger\n2nd set of financial reports:\n- PLE 5.1 General Journal\nPLE 5.1 General Journal\n- PLE 5.3 Chart of Accounts\nPLE 5.3 Chart of Accounts\n- PLE 6.1 General Ledger\nPLE 6.1 General Ledger\n- 3rd set of financial reports: PLE 1.1 Libro de Caja PLE 1.2 Libro de Bancos\n3rd set of financial reports:\n- PLE 1.1 Libro de Caja\nPLE 1.1 Libro de Caja\n- PLE 1.2 Libro de Bancos\nPLE 1.2 Libro de Bancos\nPeruvian - Electronic Delivery Note\n`l10n_pe_edi_stock`\nAdds the delivery guide (GuÃa de Remisión), which is needed as proof that you are sending\ngoods between A and B. It is only when a delivery order is validated that the delivery guide\ncan be created.\nl10n_pe_reports_stock\n`l10n_pe_reports_stock`\nEnables the PLE reports for permanent inventory record in physical\nunits and permanent valued inventory records.\n`l10n_pe_website_sale`\nEnables the identification type in eCommerce checkout forms and the ability to generate\nelectronic invoices.\nPeruvian - Point of Sale with PE Doc\n`l10n_pe_pos`\nEnables contact fiscal information to be editable from a PoS Session to generate electronic\ninvoices and refunds.\n- Odoo automatically installs the appropriate package for the company according to the country\nselected at the creation of the database.\nOdoo automatically installs the appropriate package for the company according to the country\nselected at the creation of the database.\n- The Peruvian - Electronic Delivery Guide module depends on the Inventory application to be\ninstalled.\nThe Peruvian - Electronic Delivery Guide module depends on the Inventory application to be\ninstalled.\n- App Tour - Localización de Peru\nApp Tour - Localización de Peru\n- Smart Tutorial - Localización de Peru (videos for workflows and configurations)\nSmart Tutorial - Localización de Peru (videos for workflows and configurations)\n- Documentation on e-invoicingâs legality and compliance in Peru\nDocumentation on e-invoicingâs legality and compliance in Peru\n\n## Configuration\n\n### Install the Peruvian localization modules\n\nGo to Apps and search for Peru, then click Install in the module Peru EDI. This module has a\ndependency with Peru - Accounting . In case this last one is not installed, Odoo installs it\nautomatically within EDI.\nWhen you install a database from scratch selecting Peru as country, Odoo automatically\ninstalls the base module: Peru - Accounting.\n\n#### Configure your company\n\nIn addition to the basic information in the Company, we need to set Peru as the Country, this is\nessential for the Electronic Invoice to work properly. The field Address Type Code represents\nthe establishment code assigned by the SUNAT when companies register their RUC (Unique Contributor\nRegistration):\nIn case the Address type code is unknown, you can set it as the default value: 0000. Be aware\nthat if an incorrect value is entered, the Electronic invoice validation might have errors.\nThe NIF should be set following the RUC format.\n\n#### Chart of Account\n\nThe chart of accounts is installed by default as part of the set of data included in the\nlocalization module, the accounts are mapped automatically in:\n- Default Account Payable.\nDefault Account Payable.\n- Default Account Receivable\nDefault Account Receivable\nThe chart of accounts for Peru is based on the most updated version of the PCGE , which is grouped in several categories and is compatible with NIIF\naccounting.\n\n### Accounting Settings\n\nOnce the modules are installed and the basic information of your company is set, you need to\nconfigure the elements required for Electronic Invoice. For this, go to Accounting\n⣠Settings ⣠Peruvian Localization .\n\n#### Basic Concepts\n\nHere are some terms that are essential on the Peruvian localization:\n- EDI : Electronic Data Interchange, which in this refers to the Electronic Invoice.\nEDI : Electronic Data Interchange, which in this refers to the Electronic Invoice.\n- SUNAT : is the organization that enforces customs and taxation in Peru.\nSUNAT : is the organization that enforces customs and taxation in Peru.\n- OSE : Electronic Service Operator, OSE SUNATâs definition .\nOSE : Electronic Service Operator, OSE SUNATâs definition .\n- CDR : Receipt certificate (Constancia de Recepción).\nCDR : Receipt certificate (Constancia de Recepción).\n- SOL Credentials : Sunat Operaciones en LÃnea. User and password are provided by the SUNAT and\ngrant access to Online Operations systems.\nSOL Credentials : Sunat Operaciones en LÃnea. User and password are provided by the SUNAT and\ngrant access to Online Operations systems.\n\n#### Signature Provider\n\nAs part of the requirements for Electronic Invoice in Peru, your company needs to select a\nSignature Provider that will take care of the document signing process and manage the SUNAT\nvalidation response. Odoo offers three options:\n- IAP (Odoo In-App Purchase)\nIAP (Odoo In-App Purchase)\n- Digiflow\nPlease refer to the sections below to check the details and considerations for each option.\nThis is the default and the suggested option, considering the digital ceritificate is included as\npart of the service.\nThis is a signature service offered directly by Odoo, the service takes care of the next process:\n- Provides the Electronic invoice Certificate, so you do not need to acquire one by yourself.\nProvides the Electronic invoice Certificate, so you do not need to acquire one by yourself.\n- Send the document to the OSE, in this case, Digiflow.\nSend the document to the OSE, in this case, Digiflow.\n- Receive the OSE validation and CDR.\nReceive the OSE validation and CDR.\nThe service requires Credits in order to process your electronic documents. Odoo provides 1000\ncredits for free in new databases. After these credits are consumed, you need to buy a Credit\nPackage.\nThe credits are consumed per each document that is sent to the OSE.\nIf you have a validation error and the document needs to be sent one more time, one additional\ncredit will be charged. Therefore, it is paramount that you verify all information is correct\nbefore sending your document to the OSE.\n- In Odoo, once your enterprise contract is activated and you start working in Production, you\nneed to buy credits once the first 1000 are consumed.\nIn Odoo, once your enterprise contract is activated and you start working in Production, you\nneed to buy credits once the first 1000 are consumed.\n- As Digiflow is the OSE used in the IAP, you need to affiliate it as the official OSE for your\ncompany on the SUNAT website. This is a simple process. For more information, please check OSE Affiliation guide .\nAs Digiflow is the OSE used in the IAP, you need to affiliate it as the official OSE for your\ncompany on the SUNAT website. This is a simple process. For more information, please check OSE Affiliation guide .\n- Register Digiflow as the authorized PSE, please check PSE Affiliation guide .\nRegister Digiflow as the authorized PSE, please check PSE Affiliation guide .\nThis option can be used as an alternative, instead of using the IAP services you can send your\ndocument validation directly to Digiflow. In this case you need to consider:\n- Buy your own digital Certificate: For more detail regarding the official vendor list, and the\nprocess to acquire it, please refer to SUNAT Digital Ceritifcates .\nBuy your own digital Certificate: For more detail regarding the official vendor list, and the\nprocess to acquire it, please refer to SUNAT Digital Ceritifcates .\n- Sign a service agreement directly with Digiflow .\nSign a service agreement directly with Digiflow .\n- Provide your SOL credentials.\nProvide your SOL credentials.\nIn case your company wants to sign directly with the SUNAT, it is possible to select this option\nin your configuration. In this case you need to consider:\n- Get the SUNAT Certification process accepted.\n- Buy your own digital Certificate: For more detail regarding the official vendor list, and the\nprocess to acquire it, please refer to SUNAT Digital Ceritifcates .\nBuy your own digital Certificate: For more detail regarding the official vendor list, and the\nprocess to acquire it, please refer to SUNAT Digital Ceritifcates .\n- Provide you SOL credentials.\nProvide you SOL credentials.\nWhen using direct connection with the SUNAT, the SOL User must be set with the Company RUT + User\nId. Example: 20121888549JOHNSMITH\n`20121888549JOHNSMITH`\n\n#### Testing environment\n\nOdoo provides a testing environment that can be activated before your company goes into production.\nWhen using the testing environment and the IAP signature, you donât need to buy testing credits\nfor your transactions as all of them are validated by default.\nBy default the databases are set to work on production, make sure to enable the testing mode\nif needed.\n\n#### Certificate\n\nIn case you donât use Odoo IAP, in order to generate the electronic invoice signature, a digital\ncertificate with the extension .pfx is required. Proceed to this section and load your file and\npassword.\n`.pfx`\n\n#### Multicurrency\n\nThe official currency exchange rate in Peru is provided by the SUNAT. Odoo can connect directly to\nits services and get the currency rate either automatically or manually.\nPlease refer to the next section in our documentation for more information about multicurrencies .\n\n### Configure Master data\n\n#### Taxes\n\nAs part of the localization module the taxes are created automatically with their related\nfinancial account and electronic invoice configuration.\nAs part of the taxes configuration, there are three new fields required for electronic invoice,\nthe taxes created by default have this data included, but in case you create new taxes make\nsure you fill in the fields:\n\n#### Fiscal Positions\n\nThere are two main fiscal positions included by default when you install the Peruvian localization.\nExtranjero - Exportación : Set this fiscal position on customers for Exportation transactions.\nLocal Peru : Set this fiscal position on local customers.\n\n#### Document Types\n\nIn some Latin American countries, including Peru, some accounting transactions like invoices and\nvendor bills are classified by document types, defined by the government fiscal authorities, in\nthis case by the SUNAT.\nEach document type can have a unique sequence per journal where it is assigned. As part of the\nlocalization, the Document Type includes the country on which the document is applicable;the data\nis created automatically when the localization module is installed.\nThe information required for the document types is included by default so the user does not need\nto fill anything on this view:\nCurrently the documents supported on customer invoices are: Invoice, Boleta, Debit Note and\nCredit Note.\n\n#### Journals\n\nWhen creating Sales Journals, the following information must be filled, in addition to the standard\nfields on the Journals:\nThis field is used to define if the journal uses Document Types. It is only applicable to\nPurchase and Sales journals, which are the ones that can be related to the different set of\ndocument types available in Peru. By default, all the sales journals created use documents.\nThis section indicates which EDI workflow is used in the invoice, for Peru we must select\nâPeru UBL 2.1â.\nBy default, the value Factur-X (FR) is always displayed, make sure you can uncheck it manually.\n\n#### Partner\n\nAs part of the Peruvian localization, the identification types defined by the SUNAT are now\navailable on the Partner form, this information is essential for most transactions either on\nthe sender company and in the customer, make sure you fill in this information in your records.\n\n#### Product\n\nAdditional to the basic information in your products, for the Peruvian localization, the UNSPC\nCode on the product is a required value to be configured.\n\n## Usage and testing\n\n### Customer invoice\n\n#### EDI Elements\n\nOnce you have configured your master data, the invoices can be created from your sales order or\nmanually. Additional to the basic invoice information described on our page about the\ninvoicing process , there are a couple of\nfields required as part of the Peru EDI:\n- Document type : The default value is âFactura Electronicaâ but you can manually change the\ndocument type if needed and select Boleta for example.\nDocument type : The default value is âFactura Electronicaâ but you can manually change the\ndocument type if needed and select Boleta for example.\n- Operation type : This value is required for Electronic Invoice and indicates the transaction\ntype, the default value is âInternal Saleâ but another value can be selected manually when needed,\nfor example Export of Goods.\nOperation type : This value is required for Electronic Invoice and indicates the transaction\ntype, the default value is âInternal Saleâ but another value can be selected manually when needed,\nfor example Export of Goods.\n- EDI Affectation Reason : In the invoice lines, additional to the Tax there is a field âEDI\nAffectation Reasonâ that determines the tax scope based on the SUNAT list that is displayed.\nAll the taxes loaded by default are associated with a default EDI affection reason, if needed\nyou can manually select another one when creating the invoice.\nEDI Affectation Reason : In the invoice lines, additional to the Tax there is a field âEDI\nAffectation Reasonâ that determines the tax scope based on the SUNAT list that is displayed.\nAll the taxes loaded by default are associated with a default EDI affection reason, if needed\nyou can manually select another one when creating the invoice.\n\n#### Invoice validation\n\nOnce you check all the information in your invoice is correct, you can proceed to validate it. This\naction registers the account move and triggers the Electronic invoice workflow to send it to the\nOSE and the SUNAT. The following message is displayed at the top of the invoice:\nAsynchronous means that the document is not sent automatically after the invoice has been posted.\nTo be Sent : Indicates the document is ready to be sent to the OSE, this can be\ndone either automatically by Odoo with a cron that runs every hour, or the user can send it\nimmediately by clicking on the button âSent nowâ.\nSent : Indicates the document was sent to the OSE and was successfully validated. As part of\nthe validation a ZIP file is downloaded and a message is logged in the chatter indicating the\ncorrect Government validation.\nIn case there is a validation error the Electronic Invoice status remains in âTo be sentâ so the\ncorrections can be made and the invoice can be sent again.\nOne credit is consumed each time that you send a document for validation, in this sense if an\nerror is detected on an invoice and you send it one more time, two credits are consumed in\ntotal.\n\n#### Common Errors\n\nThere are multiple reasons behind a rejection from the OSE or the SUNAT, when this happens Odoo\nsends a message at the top of the invoice indicating the error details and in the most common\ncases a hint to fix the issue.\nIf a validation error is received, you have two options:\n- In case the error is related to master data on the partner, customer or taxes, you can simply\napply the change on the record (example customer identification type) and once it is done click\non the Retry button.\nIn case the error is related to master data on the partner, customer or taxes, you can simply\napply the change on the record (example customer identification type) and once it is done click\non the Retry button.\n- If the error is related to some data recorded on the invoice directly (Operation type, missing\ndata on the invoice lines), the correct solution is to reset the invoice to Draft, apply the\nchanges, and then send the invoice again to the SUNAT for another validation.\nIf the error is related to some data recorded on the invoice directly (Operation type, missing\ndata on the invoice lines), the correct solution is to reset the invoice to Draft, apply the\nchanges, and then send the invoice again to the SUNAT for another validation.\nFor more detail please refert to Common errors in SUNAT .\n\n#### Invoice PDF Report\n\nAfter the invoice is accepted and validated by the SUNAT, the invoice PDF report can be printed.\nThe report includes a QR code, indicating the invoice is a valid fiscal document.\n\n#### IAP Credits\n\nOdooâs Electronic IAP offers 1000 credits for free, after these credits are consumed in your\nproduction database, your company must buy new credits in order to process your transactions.\nOnce you run out of credits a red label is displayed at the top of the invoice indicating that\nadditional credits are required, you can easily buy them by accessing the link provided in\nthe message.\nIn the IAP service includes packages with different pricing based on the number of credits.\nThe price list in the IAP is always displayed in EUR.\n\n#### Special Use cases\n\nSome scenarios require an invoice cancellation, for example, when an invoice was created by mistake.\nIf the invoice was already sent and validated by the SUNAT, the correct way to proceed is by\nclicking on the button Request Cancellation:\nIn order to cancel an invoice, please provide a cancellation Reason.\nTo Cancel : Indicates the cancellation request is ready to be sent to the OSE, this can be done\neither automatically by Odoo with a cron that runs every hour, or the user can send it\nimmediately by clicking on the button âSend nowâ. Once it is sent, a cancellation ticket is\ncreated, as a result the next message and CDR File are logged in the chatter:\nCancelled : Indicates the cancellation request was sent to the OSE and was successfully\nvalidated. As part of the validation a ZIP file is downloaded and a message is logged in the\nchatter indicating the correct Government validation.\nOne credit is consumed on each cancellation request.\nWhen creating exportation invoices, take into account the next considerations:\n- The Identification type on your customer must be Foreign ID.\nThe Identification type on your customer must be Foreign ID.\n- Operation type in your invoice must be an Exportation one.\nOperation type in your invoice must be an Exportation one.\n- The taxes included in the invoice lines should be EXP taxes.\nThe taxes included in the invoice lines should be EXP taxes.\nBecause the SUNAT does not allow negative in filings, a workaround is required when reporting\ndown payments.\n- Open the sales order requiring a down payment.\nOpen the sales order requiring a down payment.\n- Click Create Invoice and select Down payment (percentage) or Down payment (fixed amount) . Enter the amount, then click Create Draft .\nClick Create Invoice and select Down payment (percentage) or Down payment (fixed amount) . Enter the amount, then click Create Draft .\n- Check that all information is correct. If yes, click Confirm . If not, make the\nnecessary changes before confirming.\nCheck that all information is correct. If yes, click Confirm . If not, make the\nnecessary changes before confirming.\n- Navigate back to the sales order and click Create Invoice ⣠Regular Invoice â£\nCreate Draft to proceed with invoice creation.\nNavigate back to the sales order and click Create Invoice ⣠Regular Invoice â£\nCreate Draft to proceed with invoice creation.\n- From the invoice, remove the section separation and the down payment invoice line by clicking\nthe (trash bin) icon, and Confirm .\nFrom the invoice, remove the section separation and the down payment invoice line by clicking\nthe (trash bin) icon, and Confirm .\n- Once confirmed, click Credit Note , then Reverse , and finally remove all\ninvoice lines by clicking the (trash bin) icon. The invoice should\nbe clear of any product.\nOnce confirmed, click Credit Note , then Reverse , and finally remove all\ninvoice lines by clicking the (trash bin) icon. The invoice should\nbe clear of any product.\n- Next, click Add a line . Click the (bars) icon, enter a\ndescription (e.g., Down Payment ), and input the Price . Click Confirm .\nNext, click Add a line . Click the (bars) icon, enter a\ndescription (e.g., Down Payment ), and input the Price . Click Confirm .\n`DownPayment`\n- After issuing the credit note and if not done automatically, reconcile it with the final invoice.\nAfter issuing the credit note and if not done automatically, reconcile it with the final invoice.\n- The final invoiceâs remaining balance must be paid with a regular payment transaction.\nThe final invoiceâs remaining balance must be paid with a regular payment transaction.\nWhen creating invoices that is subject to Detractions, take into account the next considerations:\n- All the products included in the invoice must have these fields configured:\nAll the products included in the invoice must have these fields configured:\n- Operation type in your invoice must be 1001\nOperation type in your invoice must be 1001\n`1001`\n\n### Credit Notes\n\nWhen a correction or refund is needed over a validated invoice, a credit note must be generated,\nfor this just click on the button âAdd Credit Noteâ, a part of the Peruvian localization you need\nto prove a Credit Reason selecting one of the options in the list.\nWhen creating your first credit Note, select the Credit Method: Partial Refund, this allows you\nto define the credit note sequence.\nBy default the Credit Note is set in the document type:\nTo finish the workflow please follow the instructions on our page about Credit Notes .\nThe EDI workflow for the Credit notes works in the same way as the invoices.\n\n### Debit Notes\n\nAs part of the Peruvian localization, besides creating credit notes from an existing document\nyou can also create debit Notes. For this just use the button âAdd Debit Noteâ.\nBy default the Debit Note is set in the document type.\n\n### Electronic delivery guide 2.0\n\nThe GuÃa de Remisión Electrónica (GRE) is an electronic document generated by the shipper to\nsupport the transportation or transfer of goods from one place to another, such as a warehouse or\nestablishment. In Odoo, there are several configuration steps needed before you can successfully use\nthis feature.\nThe use of the guÃa de remisión electrónica electronic document is mandatory and required by SUNAT for taxpayers who need to transfer their products, except those under the Single Simplified\nRegime (régimen único simplificado or RUS).\n\n#### Delivery guide types\n\nThe Sender delivery guide type is issued when a sale is made, a service is rendered (including\nprocessing), goods are assigned for use, or goods are transferred between premises of the same\ncompany and others.\nThis delivery guide is issued by the owner of the goods (i.e., the sender) at the beginning of the\nshipment. The sender delivery guide is supported in Odoo.\nSUNAT guÃa de remisión\nThe Carrier delivery guide type justifies the transportation service the driver (or carrier)\nperforms.\nThis delivery guide is issued by the carrier and must be issued to each shipper when the shipment\ngoes through public transport.\nThe carrier delivery guide is not supported in Odoo.\nSUNAT guÃa de remisión transportista\n\n#### Transportation types\n\nThe Private transportation type option is used when the owner transfers goods using their own\nvehicles. In this case, a senderâs delivery guide must be issued.\nThe Public transportation type option is used when an external carrier moves the goods. In\nthis case, two delivery guides must be issued: the senderâs delivery guide and the carrierâs\ndelivery guide.\n\n#### Direct submission to SUNAT\n\nThe creation of the GRE delivery guide in Odoo must be sent directly to the SUNAT ,\nregardless of the electronic document provider: IAP, Digiflow, or SUNAT .\n\n#### Required information\n\nVersion 2.0 of the electronic delivery guide requires additional information on the general\nconfiguration, vehicles, contacts, and products. In the general configuration, it is necessary to\nadd new credentials that you can retrieve from the SUNAT portal.\n\n#### Cancellations\n\nBoth the sender and the carrier can cancel the electronic waybill as long as the following\nconditions are met:\n- The shipment has not been initiated.\nThe shipment has not been initiated.\n- If the shipment has been initiated, the receiver must be changed before reaching the final\ndestination.\nIf the shipment has been initiated, the receiver must be changed before reaching the final\ndestination.\nThe SUNAT no longer uses the term âAnulaâ, but now uses the term âDar de bajaâ for\ncancellations.\n\n#### Testing\n\nThe SUNAT does not support a test environment. This means that any delivery guides that were\ngenerated by mistake will be sent to the SUNAT .\nIf, by mistake, the waybill was created in this environment, it is necessary to delete it from the SUNAT portal.\n\n#### Configuration\n\n- Electronic senderâs GRE is currently the only supported type of waybill in Odoo.\nElectronic senderâs GRE is currently the only supported type of waybill in Odoo.\n- The delivery guide is dependent on the Odoo Inventory app, the l10n_pe_edi and l10n_pe modules.\nThe delivery guide is dependent on the Odoo Inventory app, the l10n_pe_edi and l10n_pe modules.\n- A second user must be added for the creation of electronic documents.\nA second user must be added for the creation of electronic documents.\nAfter following the steps to configure the electronic invoicing and the master data , install the Peruvian - Electronic Delivery Note 2.0 module ( l10n_pe_edi_stock_20 ).\n`l10n_pe_edi_stock_20`\nNext, you need to retrieve the client ID and client secret from SUNAT . To do so, follow the manual de servicios web plataforma nueva GRE .\nIn the SUNAT portal, it is important to have the correct access rights enabled, as they may\ndiffer from the user set for electronic invoicing.\nThese credentials should be used to configure the delivery guide general settings from Inventory ⣠Configuration ⣠Settings , and scroll down to the Peru\nDelivery Guide section.\nConfigure the following Sunat Delivery Guide API fields:\n- Guide Client ID : the unique API client ID generated in the SUNAT portal\nGuide Client ID : the unique API client ID generated in the SUNAT portal\n- Guide Client Secret : the unique API client secret generated in the SUNAT portal\nGuide Client Secret : the unique API client secret generated in the SUNAT portal\n- Guide SOL User : the RUC Number + SOL username\nGuide SOL User : the RUC Number + SOL username\n- Guide SOL Password : the SOL user password\nGuide SOL Password : the SOL user password\nIt is required to follow the format RUC + UsuarioSol (e.g., 20557912879SOLUSER ) for the Guide SOL User field, depending on the user selected when generating the GRE API\ncredentials in the SUNAT portal.\n`RUC+UsuarioSol`\n`20557912879SOLUSER`\nThe operator is the vehicleâs driver in cases where the delivery guide is through private transport.\nTo create a new operator, navigate to Contacts ⣠Create and fill out the contact\ninformation.\nFirst, select Individual as the Company Type . Then, add the Operator License in the Accounting tab of the contact form.\nFor the customer address, make sure the following fields are complete:\n- District\n- Tax ID ( DNI / RUC )\n- Tax ID Number\nThe carrier is used when the delivery guide is through public transport.\nTo create a new carrier, navigate to Contacts ⣠Create and fill out the contact\ninformation.\nFirst, select Company as the Company Type . Then, add the MTC\nRegistration Number , Authorization Issuing Entity , and the Authorization\nNumber .\nFor the company address, make sure the following fields are complete:\n- District\n- Tax ID ( DNI / RUC )\n- Tax ID Number\nTo configure the available vehicles, navigate to Inventory ⣠Configuration â£\nVehicles and fill in the vehicle form with the information needed for the vehicle:\n- Vehicle Name\n- License Plate\n- Is M1 or L?\n- Special Authorization Issuing Entity\nSpecial Authorization Issuing Entity\n- Authorization Number\n- Default Operator\n- Company\nIt is important to check the Is M1 or L? checkbox if the vehicle has fewer than four\nwheels or fewer than eight seats.\nTo configure the available products, navigate to Inventory ⣠Products and open\nthe product to be configured.\nMake sure that the applicable information in the product form is fully configured. The Partida Arancelaria (Tariff Item) field needs to be completed.\n\n#### Generating a GRE\n\nOnce the delivery from inventory is created during the sales workflow, make sure you complete the GRE fields on the top-right section of the transfer form for the fields:\n- Transport Type\n- Reason for Transfer\n- Departure start date\nIt is also required to complete the Vehicle and Operator fields under the Guia de Remision PE tab.\nThe delivery transfer has to be marked as Done for the Generar Guia de Remision button\nto appear on the left menu of the transfer form.\nOnce the transfer form is correctly validated by SUNAT , the generated XML file becomes available\nin the chatter. You can now print the delivery slip that shows the transfer details and the QR\ncode validated by SUNAT .\n\n#### Common errors\n\n- Diferente prefijo para productos (T001 en algunos, T002 en otros) At the moment, Odoo does not support the automation of prefixes for products. This can be done\nmanually for each product output. This can also be done for non-storable products. However, keep\nin mind that there will be no traceability.\nDiferente prefijo para productos (T001 en algunos, T002 en otros)\n`Diferenteprefijoparaproductos(T001enalgunos,T002enotros)`\nAt the moment, Odoo does not support the automation of prefixes for products. This can be done\nmanually for each product output. This can also be done for non-storable products. However, keep\nin mind that there will be no traceability.\n- 2325 - GrossWeightMeasure - El dato no cumple con el formato establecido \"Hace falta el campo\" \"Peso\"\" en el producto This error occurs when the weight on the product is set as 0.00 . To fix this, you need to cancel\nthe waybill and recreate it. Make sure that you fix the weight on the product before creating the\nnew waybill, or it will result in the same error.\n2325 - GrossWeightMeasure - El dato no cumple con el formato establecido \"Hace falta el campo\" \"Peso\"\" en el producto\n`2325-GrossWeightMeasure-Eldatonocumpleconelformatoestablecido\"Hacefaltaelcampo\"\"Peso\"\"enelproducto`\nThis error occurs when the weight on the product is set as 0.00 . To fix this, you need to cancel\nthe waybill and recreate it. Make sure that you fix the weight on the product before creating the\nnew waybill, or it will result in the same error.\n`0.00`\n- JSONDecodeError: Expecting value: line 1 column 1 (char 0) when creating a Delivery Guide This error is typically generated due to SOL user issues. Verify the userâs connection with the SUNAT ; the SOL user must be established with the company RUT + user ID. For example 2012188549JOHNSMITH .\nJSONDecodeError: Expecting value: line 1 column 1 (char 0) when creating a Delivery Guide\n`JSONDecodeError:Expectingvalue:line1column1(char0)whencreatingaDeliveryGuide`\nThis error is typically generated due to SOL user issues. Verify the userâs connection with the SUNAT ; the SOL user must be established with the company RUT + user ID. For example 2012188549JOHNSMITH .\n`2012188549JOHNSMITH`\n- El número de documento relacionado al traslado de mercancÃa no cumple con el formato establecido: error: documento relacionado The Related Document Type and Related Document Number fields only apply to invoices and\nreceipts.\nEl número de documento relacionado al traslado de mercancÃa no cumple con el formato establecido: error: documento relacionado\n`ElnúmerodedocumentorelacionadoaltrasladodemercancÃanocumpleconelformatoestablecido:error:documentorelacionado`\nThe Related Document Type and Related Document Number fields only apply to invoices and\nreceipts.\n- 400 Client error: Bad Request for URL This error is not solvable from Odoo; it is advised you reach out to the SUNAT and verify the\nuser. It may be necessary to create a new user.\n400 Client error: Bad Request for URL\n`400Clienterror:BadRequestforURL`\nThis error is not solvable from Odoo; it is advised you reach out to the SUNAT and verify the\nuser. It may be necessary to create a new user.\n- Invalid content was found starting with element 'cac:BuyerCustomerParty' This error occurs when the transfer reason is set as other . Please select another option.\nFollowing to the official documentation of the SUNAT âs waybill guide, the transfer reasons 03\n(sale with shipment to third party) or 12 (others) does not work in Odoo, since you should not\nhave an empty or blank customer.\nInvalid content was found starting with element 'cac:BuyerCustomerParty'\n`Invalidcontentwasfoundstartingwithelement'cac:BuyerCustomerParty'`\nThis error occurs when the transfer reason is set as other . Please select another option.\nFollowing to the official documentation of the SUNAT âs waybill guide, the transfer reasons 03\n(sale with shipment to third party) or 12 (others) does not work in Odoo, since you should not\nhave an empty or blank customer.\n- Duda cliente: consumo de créditos IAP al usar GRE 2.0 For live clients using IAP, no credit is consumed (in theory) because it does not go through the\nOSE, i.e., these documents are directly sent to the SUNAT .\nDuda cliente: consumo de créditos IAP al usar GRE 2.0\n`Dudacliente:consumodecréditosIAPalusarGRE2.0`\nFor live clients using IAP, no credit is consumed (in theory) because it does not go through the\nOSE, i.e., these documents are directly sent to the SUNAT .\n- Errores con formato credenciales GRE 2.0 (traceback error) Odoo currently throws an error with a traceback instead of a message that the credentials are not\ncorrectly configured in the database. If this occurs on your database, please verify your\ncredentials.\nErrores con formato credenciales GRE 2.0 (traceback error)\n`ErroresconformatocredencialesGRE2.0(tracebackerror)`\nOdoo currently throws an error with a traceback instead of a message that the credentials are not\ncorrectly configured in the database. If this occurs on your database, please verify your\ncredentials.\n\n### eCommerce electronic invoicing\n\nFirst, install the Peruvian eCommerce ( l10n_pe_website_sale ) module.\n`l10n_pe_website_sale`\nThe Peruvian eCommerce module enables the features and configurations to:\n- allow clients to create online accounts for eCommerce purposes;\nallow clients to create online accounts for eCommerce purposes;\n- support required fiscal fields in the eCommerce application;\nsupport required fiscal fields in the eCommerce application;\n- receive payments for sales orders online;\nreceive payments for sales orders online;\n- generate electronic documents from the eCommerce application.\ngenerate electronic documents from the eCommerce application.\nThe Peruvian eCommerce module is dependent on the previous installation of the Invoicing or Accounting app, as well as the Website app.\n\n#### Configuration\n\nAfter configuring the Peruvian electronic invoicing flow, complete\nthe following configurations for the eCommerce flow:\n- Client account registration ;\nClient account registration ;\n- Automatic invoice ;\n- Products : Set the Invoicing Policy to Ordered quantities and define the desired Customer taxes .\nProducts : Set the Invoicing Policy to Ordered quantities and define the desired Customer taxes .\n- Online payments ;\n- Delivery : For each shipping method, set\nthe Provider field to Fixed Price . Then, set a Fixed Price amount greater than 0.00 (not zero), as the shipping method price is added to the invoice line.\nDelivery : For each shipping method, set\nthe Provider field to Fixed Price . Then, set a Fixed Price amount greater than 0.00 (not zero), as the shipping method price is added to the invoice line.\n`0.00`\n- Mercado Pago is an online payment provider supported in Odoo\nthat covers several countries, currencies, and payment methods in Latin America.\nMercado Pago is an online payment provider supported in Odoo\nthat covers several countries, currencies, and payment methods in Latin America.\n- Make sure to define a Sales Price on the Delivery Product of the\nshipping method to prevent errors when validating the invoice with SUNAT .\nMake sure to define a Sales Price on the Delivery Product of the\nshipping method to prevent errors when validating the invoice with SUNAT .\n- To offer free delivery, manually remove the Delivery Product , or at least use $0.01 (one cent) for the invoice to be validated with SUNAT.\nTo offer free delivery, manually remove the Delivery Product , or at least use $0.01 (one cent) for the invoice to be validated with SUNAT.\n`$0.01`\nSet up the Mercado Pago payment provider.\n\n#### Invoicing flow for eCommerce\n\nOnce the configurations are all set, fiscal input fields will\nbe available during the checkout process for signed-in customers.\nWhen customers enter their fiscal data at checkout and complete a successful purchase, the invoice\nis generated with the corresponding EDI elements. The document type (Boleta/Factura) is selected\nbased on their tax ID (RUC/DNI). The invoice must then be sent to the OSE and the SUNAT . By default, all published invoices are sent once a day through\na scheduled action, but you can also send each invoice manually if needed.\nOnce the invoice is validated with SUNAT , customers can download the .zip file with the CDR, XML,\nand PDF files directly from the customer portal by clicking the Download button.\n\n## Reports\n\n### Permanent inventory reports:PLE12.1 andPLE13.1\n\nOdoo can produce two permanent inventory reports as .txt files for Peruvian accounting: PLE 12.1\nand PLE 13.1. All inventory transactions made need to be reported.\n`.txt`\n- PLE 12.1 only tracks inventory in physical units , focusing on the inflow and outflow of\ngoods for effective management and planning.\nPLE 12.1 only tracks inventory in physical units , focusing on the inflow and outflow of\ngoods for effective management and planning.\n- PLE 13.1 tracks both physical quantities and monetary values of inventory , providing a\ncomprehensive view for tax and management purposes.\nPLE 13.1 tracks both physical quantities and monetary values of inventory , providing a\ncomprehensive view for tax and management purposes.\nBoth reports must be maintained semi-annually (January-June and July-December), with monthly\ntransaction details reported within these periods. The submission deadlines are October 1st for the\nfirst semester and April 1st for the second semester, in accordance with the Resolución de\nSuperintendencia N° 169-2015 .\n\n#### Configuration\n\nBefore generating the PLE 12.1 or PLE 13.1 reports, make sure the Peru - Stock\nReports ( l10n_pe_reports_stock ) module is installed, then update the fields for:\n`l10n_pe_reports_stock`\n- Products\n- Warehouses\n- Inventory transfers\nSeveral configurations related to the product or product category are necessary for PLE reporting:\n- Type of existence : For all products needing PLE reporting, go to the product recordâs Accounting tab and select the Type of Existence according to SUNAT âs\ntable 5 for inventory reporting.\nType of existence : For all products needing PLE reporting, go to the product recordâs Accounting tab and select the Type of Existence according to SUNAT âs\ntable 5 for inventory reporting.\n- Automatic inventory valuation : For storable goods ( products with tracked inventory ),\nuse automatic inventory valuation .\nOnce automatic inventory valuation is enabled, this valuation method can be enabled for\na productâs product category .\nAutomatic inventory valuation : For storable goods ( products with tracked inventory ),\nuse automatic inventory valuation .\nOnce automatic inventory valuation is enabled, this valuation method can be enabled for\na productâs product category .\n- Costing method: Storable goods must use a costing method other than Standard Price , as the journal entries generated from stock moves are\nused to populate the PLE reports.\nCosting method: Storable goods must use a costing method other than Standard Price , as the journal entries generated from stock moves are\nused to populate the PLE reports.\nWhen setting up a warehouse , the Annex Establishment Code field must be filled. This code acts as a unique ID for each\nwarehouse and should only be a numeric combination, containing between 4 to 7 digits.\nTransferring inventory is a key process captured in the PLE 12.1 and PLE 13.1 reports. Inventory transfers include both incoming and outgoing shipments.\nWhen validating an inventory transfer (either on a warehouse receipt or delivery order), select the Type of Operation (PE) performed according to SUNAT âs table 12 for permanent inventory\nreporting.\n\n#### Generate a .txt file for permanent inventory Kardex reports\n\nPLE 12.1 and 13.1 come as two separate books. The books need to be downloaded in .txt file\nformat from Odoo, and then they should be submitted to the SUNAT PLE software.\n`.txt`\nOn the Inventory Valuation Report , click\nthe PLE Reports button. Then, select the Period and choose a report to\nexport: either the PLE 12.1 or PLE 13.1 . Odoo generates a .txt file\nfor the chosen report.\n`.txt`\nOnly a download of the report in .txt format is available. There is no preview or visualization\navailable within Odoo.\n`.txt`", "headings": ["Modules", "Configuration", "Install the Peruvian localization modules", "Accounting Settings", "Configure Master data", "Usage and testing", "Customer invoice", "Credit Notes", "Debit Notes", "Electronic delivery guide 2.0", "eCommerce electronic invoicing", "Reports", "Permanent inventory reports:PLE12.1 andPLE13.1"], "doc_id": "2fd3537ff4762dc9"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/philippines.html", "title": "Philippines", "module": "invoicing", "section": "Philippines", "text": "# Philippines\n\n## Configuration\n\nInstall the ðµð Philippines fiscal localization package to get all the default accounting features of the Philippine\nlocalization, such as a chart of accounts, taxes, and reports. These provide a base template to get\nstarted with using Philippine accounting.\n- When creating a new database and selecting the Philippines as a country, the fiscal\nlocalization module Philippines - Accounting is automatically installed.\nWhen creating a new database and selecting the Philippines as a country, the fiscal\nlocalization module Philippines - Accounting is automatically installed.\n`Philippines`\n- If the module is installed in an existing company, the chart of accounts and taxes will not be replaced if there are already posted journal entries.\nIf the module is installed in an existing company, the chart of accounts and taxes will not be replaced if there are already posted journal entries.\n\n### Chart of accounts and taxes\n\nA minimum configuration default chart of accounts is installed, and the following types of taxes are\ninstalled and linked to the relevant account:\n- Sales and Purchase VAT 12%\nSales and Purchase VAT 12%\n- Sales and Purchase VAT Exempt\nSales and Purchase VAT Exempt\n- Sales and Purchase VAT Zero-Rated\nSales and Purchase VAT Zero-Rated\n- Sales and Purchase Withholding\nSales and Purchase Withholding\nFor the withholding taxes ( Accounting ⣠Configuration ⣠Taxes ), there is an\nadditional Philippines ATC field under the Philippines tab.\nTaxesâ ATC codes are used for the BIR 2307 , SAWT and QAP reports . If a tax is created\nmanually, its ATC code must be added.\n\n### Contacts\n\nWhen a company or an individual (not belonging to a company) contact is located in the Philippines,\nfill in the Tax ID field with their Taxpayer Identification Number (TIN) .\n`TaxpayerIdentificationNumber(TIN)`\nFor individuals not belonging to a company, identify them by using the following additional fields:\n- First Name\n- Middle Name\n- Last Name\nFor both Company and Individual , the TIN should follow the NNN-NNN-NNN-NNNNN format. The branch code should follow the last digits of the TIN, or else it\ncan be left as 00000 .\n`NNN-NNN-NNN-NNNNN`\n`00000`\n\n## Reports\n\n### BIR 2307 report\n\nBIR 2307 reports, also known as Certificate of Creditable Tax Withheld at Source ,\ncan be generated for purchase orders and vendor payments with the applicable withholding taxes.\nTo generate a BIR 2307 report, select one or multiple vendor bills from the list view, and click Action ⣠Download BIR 2307 XLS .\nThe same action can be performed on a vendor bill from the form view.\nIn the pop-up that opens, review the selection and click Generate .\nThis generates the Form_2307.xls file that lists all the vendor bill lines with the applicable\nwithholding tax.\n`Form_2307.xls`\nThe process above can also be used for a single vendor payment if\nit is linked to one or more vendor bills with applied withholding\ntaxes.\n- If no withholding tax is applied, then the XLS file will not generate records for those vendor\nbill lines.\nIf no withholding tax is applied, then the XLS file will not generate records for those vendor\nbill lines.\n- When grouping payments for multiple bills, Odoo splits the payments based on the contact. From\na payment, clicking Action ⣠Download BIR 2307 XLS generates a report that\nonly includes vendor bills related to that contact.\nWhen grouping payments for multiple bills, Odoo splits the payments based on the contact. From\na payment, clicking Action ⣠Download BIR 2307 XLS generates a report that\nonly includes vendor bills related to that contact.\nOdoo cannot generate the BIR 2307 PDF report or DAT files directly. The generated Form_2307.xls file can be exported to an external tool to convert it to BIR DAT or PDF\nformat.\n`Form_2307.xls`\n\n### SLSP report\n\nTo access the SLSP report, go to Accounting ⣠Reporting ⣠Summary List of Sales and Purchases .\nClick the buttons at the top to display the desired report:\n- Sales for the SLS report. All customer invoices with the associated sales taxes applied are shown in this report.\n- Purchases for the SLP report. All vendor bills with the associated purchase taxes applied are shown in this report.\nBy default, both reports exclude journal entries containing partners without a TIN number set and\nthose with importation taxes set. To view or hide them, click Options: and select the\nrequired filter:\n- Including Partners Without TIN\nIncluding Partners Without TIN\n- Including Importations\nIncluding Importations\nTo export the SLSP report, click Export\nSLSP .\nOdoo cannot generate the DAT files directly. The Export SLSP and XLSX buttons are used to export an XLSX file, which can be processed using an external tool to\nconvert it to the DAT format.\n\n### 2550Q tax report\n\nThe tax report report is accessible by navigating to Accounting ⣠Reporting â£\nStatement Reports ⣠Tax Report ⣠2550Q(PH) . The form is based on the latest 2550Q\n(Quarterly Value-Added Tax Return) Jan. 2023 version.\nMost lines in the tax report are automatically computed based on the taxes. For more accurate\nreporting and filing of the tax report, manual journal entries can also be mapped to the tax\nreport through preconfigured Tax Grids for each tax report line.\nOdoo cannot generate the 2550Q BIR formatted PDF report directly. It should be used as a\nreference when externally filing the form manually or online.\n\n### QAP & SAWT reports\n\nTo access the QAP and SAWT reports, go to Accounting ⣠Reporting ⣠Tax Return , click\nthe Report: button, and select SAWT & QAP (PH) .\nClick the buttons at the top to display the desired report:\n- SAWT for the SAWT report. All customer invoices with the associated sales witholding taxes applied are shown in this\nreport.\n- QAP for the QAP report. All vendor bills with the associated purchase witholding taxes applied are shown in this report.\nTo export the SAWT and QAP reports in XLSX format, click Export SAWT & QAP .\nOdoo cannot generate the DAT files directly. The Export SAWT & QAP and XLSX buttons are used to export an XLSX file, which can be processed using an external tool to convert it to the DAT format.\n\n## Check printing\n\nThe Philippine check print layout follows the latest PCHC standardized format. To enable check printing, go to Accounting â£\nConfiguration ⣠Settings , enable Checks and set the Check Layout to Print Check - PH .\n`PrintCheck-PH`\nChecks are printed using the standard workflow .", "headings": ["Configuration", "Chart of accounts and taxes", "Contacts", "Reports", "BIR 2307 report", "SLSP report", "2550Q tax report", "QAP & SAWT reports", "Check printing"], "doc_id": "8131016796b7721f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/romania.html", "title": "Romania", "module": "invoicing", "section": "Romania", "text": "# Romania\n\n## Configuration\n\nInstall the following modules to get all the features of the Romanian\nlocalization.\n`l10n_ro`\nDefault fiscal localization package .\nRomanian SAF-T Export\n`l10n_ro_saft`\nModule to generate the D.406 declaration in the SAF-T format.\nDocumentation on e-invoicingâs legality and compliance in Romania\n\n## D.406 declaration\n\nStarting January 1, 2023, companies registered for tax purposes in Romania must report their\naccounting data to the Romanian Tax Agency monthly or quarterly in the D.406 declaration.\nOdoo provides all you need to export the data of this declaration in the SAF-T XML format, which you\ncan validate and sign using the software provided by the Romanian Tax Agency.\nCurrently, Odoo only supports the generation of the monthly/quarterly D.406 declaration\n(containing journal entries, invoices, vendor bills, and payments). The yearly declaration\n(including assets) and the on-demand declaration (including inventory) are not yet supported.\n\n### Configuration\n\n#### Company\n\n- Under Settings â> General Settings , in the Companies section, click Update Info and fill in the companyâs Country , City , and Telephone Number .\nUnder Settings â> General Settings , in the Companies section, click Update Info and fill in the companyâs Country , City , and Telephone Number .\n- Provide your companyâs CUI number or CIF number (for foreign companies) in the Company ID field,\nwithout the RO prefix (e.g., 18547290 ).\nProvide your companyâs CUI number or CIF number (for foreign companies) in the Company ID field,\nwithout the RO prefix (e.g., 18547290 ).\n`RO`\n`18547290`\n- If your company is registered for VAT in Romania, fill in the Tax ID field number,\nincluding the RO prefix (e.g., RO18547290 ). If the company is not registered for\nVAT in Romania, you must not fill in the Tax ID field.\nIf your company is registered for VAT in Romania, fill in the Tax ID field number,\nincluding the RO prefix (e.g., RO18547290 ). If the company is not registered for\nVAT in Romania, you must not fill in the Tax ID field.\n`RO`\n`RO18547290`\n- Open the Contacts app and search for your company. Open your companyâs profile, and in the Accounting tab, click Add a line and add your bank account number if\nnot informed already. Make sure the profile is set as Company above the name . You must have at least one contact person linked to your company in the Contacts app.\nIf no contact person is linked, create a new one by clicking New , set it\nas Individual , and select your company in the Company name field.\nOpen the Contacts app and search for your company. Open your companyâs profile, and in the Accounting tab, click Add a line and add your bank account number if\nnot informed already. Make sure the profile is set as Company above the name .\n- You must have at least one contact person linked to your company in the Contacts app.\nIf no contact person is linked, create a new one by clicking New , set it\nas Individual , and select your company in the Company name field.\nYou must have at least one contact person linked to your company in the Contacts app.\nIf no contact person is linked, create a new one by clicking New , set it\nas Individual , and select your company in the Company name field.\n\n#### Chart of accounts\n\nTo generate a file receivable by the Romanian Tax Agency, the chart of accounts must not deviate\nfrom an official chart of accounts, such as:\n- the chart of accounts for commercial companies ( PlanConturiBalSocCom ), which is installed\nby default when creating a company with the Romanian localization or;\nthe chart of accounts for commercial companies ( PlanConturiBalSocCom ), which is installed\nby default when creating a company with the Romanian localization or;\n- the chart of accounts for companies following IFRS ( PlanConturiIFRS ).\nthe chart of accounts for companies following IFRS ( PlanConturiIFRS ).\nUnder Settings â> Accounting , in the Romanian localization section, set the Tax Accounting Basis to reflect the accounting regulations and Chart of Accounts used\nby the company.\n\n#### Customer and supplier\n\nFill in the Country , City , and Zip Code of each partner that\nappears in your invoices, vendor bills, or payments through the Contacts app.\nFor partners that are companies, you must fill in the VAT number (including the country prefix) in\nthe Tax ID field. If the partner is a company based in Romania, you may instead fill in\nthe CUI number (without the âROâ prefix) in the Company ID field.\n\n#### Tax\n\nYou must indicate the Romanian SAF-T Tax Type (3-digit number) and Romanian\nSAF-T Tax Code (6-digit number) on each of the taxes you use. This is already done for the taxes\nthat exist by default in Odoo. To do so, go to Accounting ⣠Configuration â£\nTaxes , select the tax you wish to modify, click the Advanced Options tab, and fill in\nthe tax type and tax code fields.\nThe tax type and tax code are codes defined by the Romanian Tax Agency for the D.406\ndeclaration . These can be found in the Excel spreadsheet published as guidance for completing\nthe declaration, which you can find on the website of the Romanian Tax Agency .\n\n#### Product\n\nFor some types of goods transactions, the Intrastat Code (Cod NC) must be configured\non the product, as it is required by Romanian law:\n- import / export transactions;\nimport / export transactions;\n- acquisitions / supplies of food products subjected to reduced VAT rate;\nacquisitions / supplies of food products subjected to reduced VAT rate;\n- intra-community movements subjected to intrastat reporting;\nintra-community movements subjected to intrastat reporting;\n- acquisitions / supplies subjected to local reversed VAT charge (depending on Cod NC); and\nacquisitions / supplies subjected to local reversed VAT charge (depending on Cod NC); and\n- transactions with excisable products for which excise duties are determined based on the Cod NC.\ntransactions with excisable products for which excise duties are determined based on the Cod NC.\nIf the Intrastat Code is not specified on a non-service product, the default code â0â will be used.\nTo configure the Intrastat Codes , go to Accounting ⣠Customers ⣠Products , select a product, and in the Accounting tab, set a Commodity Code .\n\n#### Vendor bill\n\nYou must check the Is self-invoice (RO)? checkbox in the Other Info tab for\nany vendor bill that is a self-invoice (i.e. a vendor bill that you issued yourself in the absence\nof an invoice document received from a supplier).\n\n### Generating the declaration\n\n#### Exporting your data\n\nTo export the XML for the D.406 declaration, go to Accounting ⣠Reports â£\nGeneral Ledger and click on SAF-T .\nYou can then validate and sign the XML file using the Romanian Tax Agencyâs validation software, DUKIntegrator .\n\n#### Signing the report\n\nDownload and install the DUKIntegrator validation software found on the website of the Romanian\nTax Agency .\nOnce you have generated the XML, open âDUKIntegratorâ and select the file you have just generated.\nClick on Validare + creare PDF to create an unsigned PDF containing your report, or Validare + creare PDF semnat to create a signed PDF containing your report.\nIf the DUKIntegrator validator detects errors or inconsistencies in your data, it generates a file\nthat explains the errors. In this case, you need to correct those inconsistencies in your data\nbefore you can submit the report to the Romanian Tax Agency.", "headings": ["Configuration", "D.406 declaration", "Configuration", "Generating the declaration"], "doc_id": "2f98169af00bc930"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/saudi_arabia.html", "title": "Saudi Arabia", "module": "invoicing", "section": "Saudi Arabia", "text": "# Saudi Arabia\n\n## Configuration\n\nInstall the following modules to get all the features of the Saudi Arabian\nlocalization:\nSaudi Arabia - Accounting\n`l10n_sa`\nDefault fiscal localization package\nSaudi Arabia - E-invoicing\n`l10n_sa_edi`\nZATCA e-invoices implementation\nSaudi Arabia - Point of Sale\n`l10n_sa_pos`\nPoint of Sale compliance\n\n## ZATCA e-invoices\n\nThe ZATCA e-invoicing system is designed to streamline and digitize the invoicing process for\nbusinesses operating in Saudi Arabia.\nZATCA e-invoicing page\n\n### Company information\n\nGo to Settings ⣠General Settings ⣠Companies , click Update info ,\nand ensure the following company information is complete and up-to-date.\n- The Company Name , limited to a maximum of 63 characters to comply with ZATCA\nrequirements.\nThe Company Name , limited to a maximum of 63 characters to comply with ZATCA\nrequirements.\n- All relevant Address fields, including the Building Number and Plot Identification (four digits each).\nAll relevant Address fields, including the Building Number and Plot Identification (four digits each).\n- Select an enterprise Identification Scheme . It is recommended to use the Commercial Registration Number .\nSelect an enterprise Identification Scheme . It is recommended to use the Commercial Registration Number .\n- Enter the Identification Number for the selected Identification Scheme .\nEnter the Identification Number for the selected Identification Scheme .\n- The VAT number.\n- Ensure the Currency is set to SAR .\nEnsure the Currency is set to SAR .\nIt is also necessary to fill out similar information for partner companies.\n\n### Simulation mode\n\nIt is strongly recommended to thoroughly test all invoicing workflows using the Fatoora simulation portal first, as any invoice submitted to the regular Fatoora portal will be\naccounted for, which could lead to fines and penalties.\n\n#### Fatoora simulation portal\n\nLog in on the Fatoora portal using the companyâs ZATCA\ncredentials. Then, click the Fatoora Simulation Portal button to switch to the\nsimulation portal.\nZACTA Fatoora portal user manual version 3 (May 2023)\n\n#### ZATCA API integration\n\nOn Odoo, go to Accounting ⣠Configuration ⣠Settings . Under ZATCA\nAPI Integration , select the Simulation (Pre-Production) API mode and click Save .\n\n#### Sales journals\n\nEach sales journal on Odoo needs to be configured. To do so, go to Accounting â£\nConfiguration ⣠Journals , open any sales journal (e.g., Customer Invoices), and go to the ZATCA tab. Once there, enter any Serial Number to identify the journal.\nThe same serial number can be used for all of the companyâs sales journals.\nNext, click Onboard Journal . In the dialog box, providing an OTP code is required. To retrieve it, open the Fatoora simulation portal , click Onboard New Solution Unit/Device , choose the\nnumber of OTP codes to generate (one per journal to configure), and click Generate OTP\nCode . Copy an OTP code, it into the dialog box on Odoo, and click Request .\nOTP codes expire after one hour.\nIf any issue occurs during onboarding, click Regenerate CSR to start again.\n\n#### Testing\n\nWhen confirming an invoice, there is now an option to process the invoice, sending it directly the\nFatoora simulation portal. Odoo displays the portalâs response after each submission. Only rejected\ninvoices can be reset to draft and edited on Odoo. Furthermore, at the end of each day, Odoo sends\nall unprocessed invoices to the portal.\n- Testing all invoicing workflows, preferably with real invoices and for a reasonable amount of\ntime, is recommended.\nTesting all invoicing workflows, preferably with real invoices and for a reasonable amount of\ntime, is recommended.\n- Compare the invoices received statistics page on the Fatoora simulation portal with the list of\ninvoices on Odoo to ensure both align.\nCompare the invoices received statistics page on the Fatoora simulation portal with the list of\ninvoices on Odoo to ensure both align.\n\n#### Taxes\n\nWhen using a 0% tax in a customer invoice, it is necessary to specify the reason behind such a\nrate. To configure taxes, go to Accounting ⣠Configuration ⣠Settings â£\nTaxes , and open the tax to edit. Under the Advanced Options , select an Exemption Reason Code and click Save .\nWhen using retention or withholding an amount in a customer invoice, the tax used to retain\nthe amount needs to be specified.\n\n### Production mode\n\nWhen ready for production, change the API mode to Production and click Save .\nSetting the API mode to Production is irreversible .\nThe sales journals initially linked to the simulation portal now needs to be linked to the regular\nportal. To do so, onboard the journals again, ensuring to use the\nregular Fatoora portal this time.", "headings": ["Configuration", "ZATCA e-invoices", "Company information", "Simulation mode", "Production mode"], "doc_id": "f45987e846323e06"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/singapore.html", "title": "Singapore", "module": "invoicing", "section": "Singapore", "text": "# Singapore\n\n## Add PayNow QR codes to invoices\n\nPayNow is a payment service platform that allows customers to make instant domestic payments to\nindividuals and merchants in Singapore dollars via online and mobile banking.\n\n### Activate QR codes\n\nGo to Accounting ⣠Configuration ⣠Settings . Under the Customer\nPayments section, activate the QR Codes feature.\n\n### PayNow bank account configuration\n\nGo to Contacts ⣠Configuration ⣠Bank Accounts and select the bank account to\nactivate PayNow. Set the Proxy Type and fill in the Proxy Value field\ndepending on the chosen type.\n- The account holderâs country must be set to Singapore on its contact form.\nThe account holderâs country must be set to Singapore on its contact form.\n`Singapore`\n- The account holderâs city is mandatory.\nThe account holderâs city is mandatory.\n- You could also include the invoice number in the QR code by checking the Include\nReference checkbox.\nYou could also include the invoice number in the QR code by checking the Include\nReference checkbox.\nBank and cash accounts\n\n### Bank journal configuration\n\nGo to Accounting ⣠Configuration ⣠Journals , open the bank journal, then fill\nout the Account Number and Bank under the Journal Entries tab.\n\n### Issue invoices with PayNow QR codes\n\nWhen creating a new invoice, open the Other Info tab and set the Payment\nQR-code option to EMV Merchant-Presented QR-code .\nEnsure that the Recipient Bank is the one you configured, as Odoo uses this field to\ngenerate the PayNow QR code.\n\n## Employment Hero payroll\n\nIf your business is already up and running with Employment Hero , you can use our connector as an\nalternative payroll solution.\nTo configure the Employment Hero API for Singapore ,\nuse the following value as Payroll URL : HTTPS://apisg.yourpayroll.io/ .\n`HTTPS://apisg.yourpayroll.io/`", "headings": ["Add PayNow QR codes to invoices", "Activate QR codes", "PayNow bank account configuration", "Bank journal configuration", "Issue invoices with PayNow QR codes", "Employment Hero payroll"], "doc_id": "6b76d433363d4ae9"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/spain.html", "title": "Spain", "module": "invoicing", "section": "Spain", "text": "# Spain\n\n## Configuration\n\nInstall the ðªð¸ Spanish fiscal localization package to get all\nthe default accounting features of the Spanish localization.\nThree Spanish localizations exist, each with its own pre-configured PGCE charts of accounts:\n- Spain - SMEs (2008);\n- Spain - Complete (2008);\nSpain - Complete (2008);\n- Spain - Non-profit entities (2008).\nSpain - Non-profit entities (2008).\nTo select the one to use, go to Accounting ⣠Configuration ⣠Settings and\nselect a package in the Fiscal Localization section.\nYou can only change the accounting package as long as you have not created any accounting entry.\n- Documentation on e-invoicingâs legality and compliance in Spain\nDocumentation on e-invoicingâs legality and compliance in Spain\n- Documentation on e-invoicingâs legality and compliance in the Basque Country\nDocumentation on e-invoicingâs legality and compliance in the Basque Country\n\n## Chart of accounts\n\nYou can reach the Chart of Accounts by going to Accounting ⣠Configuration â£\nAccounting: Chart of Accounts .\nWhen you create a new Odoo Online database, Spain - SMEs (2008) is installed by default.\n\n## Taxes\n\nDefault Spain-specific taxes are created automatically when the Spanish - Accounting (PGCE 2008) (l10n_es) module is installed, and tax reports are\navailable when installing the module Spain - Accounting (PGCE 2008) (l10n_es_reports) .\nEach tax impacts the Spain-specific tax reports (Modelo) , available by going to Accounting ⣠Reporting ⣠Statements Reports: Tax Report .\n\n## Reports\n\nHere is the list of Spanish-specific statement reports available:\n- Balance Sheet;\n- Profit & Loss;\n- EC Sales List;\n- Tax Report (Modelo 111);\nTax Report (Modelo 111);\n- Tax Report (Modelo 115);\nTax Report (Modelo 115);\n- Tax Report (Modelo 130);\nTax Report (Modelo 130);\n- Tax Report (Modelo 303);\nTax Report (Modelo 303);\n- Tax Report (Modelo 347);\nTax Report (Modelo 347);\n- Tax Report (Modelo 349);\nTax Report (Modelo 349);\n- Tax Report (Modelo 390).\nTax Report (Modelo 390).\nYou can access Spain-specific tax reports by clicking on the book icon when on a report and\nselecting its Spain-specific version: (ES) .\n\n### Modelo 130\n\n#### Change the percentage\n\nIf you wish to change the percentage computation of the box [04] under the I section and/or of the box [09] under the II section:\n- Activate the developer mode , go to Accounting â£\nReporting ⣠Tax Report , and select the report Tax report (Modelo 130) .\nActivate the developer mode , go to Accounting â£\nReporting ⣠Tax Report , and select the report Tax report (Modelo 130) .\n- Click the ( cogs ) icon to the right of Report: Tax Report\n(Mod 130) (ES) .\nClick the ( cogs ) icon to the right of Report: Tax Report\n(Mod 130) (ES) .\n- Click the box you wish to change, and in the pop-up window, click on the percentage line. In the new pop-up window, change the value in the Formula field to the\npercentage you wish to apply.\nRepeat this action if you wish to modify the other box as well.\nClick the box you wish to change, and in the pop-up window, click on the percentage line. In the new pop-up window, change the value in the Formula field to the\npercentage you wish to apply.\nRepeat this action if you wish to modify the other box as well.\n\n#### Report agriculture activity\n\nIf you wish to have any amount input in the II section (from boxes [08] to [11] ), you must change the industry of the corresponding contact to Agriculture :\n- Go to the contact form ( Accounting ⣠Customers ⣠Customers or Accounting ⣠Vendors ⣠Vendors , for example), and select a contact.\nGo to the contact form ( Accounting ⣠Customers ⣠Customers or Accounting ⣠Vendors ⣠Vendors , for example), and select a contact.\n- In the Sales & Purchase tab, set the Industry field to Agriculture .\nIn the Sales & Purchase tab, set the Industry field to Agriculture .\nRepeat this operation for all contacts related to the agriculture industry.\n\n## Veri*Factu\n\nProducers of Veri*Factu billing systems must self-certify their compliance with the regulations. Download Odoo's \"declaración responsable\"\n`DownloadOdoo's\"declaraciónresponsable\"`\nVeri*Factu is an e-Invoicing system used by the Spanish Tax Agency. It is mandatory for most\ntaxpayers in Spain, except for those who use the SII system or are under a regional tax regime\n(i.e., TicketBai).\nOdoo allows invoices and Point of Sale orders to be automatically sent to the tax authorities.\n\n### Configuration\n\nTo enable Veri*Factu , follow these steps:\n- Open the Settings app to make sure your companyâs Country and Tax ID are\ncorrectly set in the Companies section.\nOpen the Settings app to make sure your companyâs Country and Tax ID are\ncorrectly set in the Companies section.\n- Install the Spain - Veri*Factu (l10n_es_edi_verifactu) module.\nInstall the Spain - Veri*Factu (l10n_es_edi_verifactu) module.\n- Go to Accounting ⣠Configuration ⣠Settings , scroll to the Veri*Factu section, check the Enable Veri*Factu option, and click Manage certificates to add a certificate.\nGo to Accounting ⣠Configuration ⣠Settings , scroll to the Veri*Factu section, check the Enable Veri*Factu option, and click Manage certificates to add a certificate.\n- In the Certificates for Veri*Factu list view, click New .\nIn the Certificates for Veri*Factu list view, click New .\n- Click Upload your file , then select a certificate file and enter the Password needed to open the certificate (if there is one).\nClick Upload your file , then select a certificate file and enter the Password needed to open the certificate (if there is one).\n- At least one certificate has to be uploaded.\nAt least one certificate has to be uploaded.\n- By default Veri*Factu is in testing mode. The data is sent to test servers\nand is not considered official. When official data can be sent to the production servers, go to\nthe Veri*Factu section in the Settings and disable Test\nEnvironment .\nBy default Veri*Factu is in testing mode. The data is sent to test servers\nand is not considered official. When official data can be sent to the production servers, go to\nthe Veri*Factu section in the Settings and disable Test\nEnvironment .\n\n### Invoices\n\nOnce an invoice is confirmed, it can be sent . In the Send window, the Veri*Factu option is\navailable if Veri*Factu has been enabled.\nClick Send to generate a JSON file containing the invoice details. This file is stored\nas a Veri*Factu document. In the Veri*Factu tab, all corresponding documents are\nlisted by their creation date and current status.\nTo download a JSON file, click on its document in the Veri*Factu tab. Then, in\nthe Open: Veri*Factu Documents window, click the link in the JSON field.\n- The document should be sent to the AEAT immediately. However, it may be delayed due to mandatory waiting periods between submissions\nrequired by the AEAT . In such cases,\nthe document is automatically sent the next time a scheduled action runs.\nThe document should be sent to the AEAT immediately. However, it may be delayed due to mandatory waiting periods between submissions\nrequired by the AEAT . In such cases,\nthe document is automatically sent the next time a scheduled action runs.\n- A Veri*Factu QR code appears on the invoice PDF. Scan this code to verify that the invoice\nhas been received and recognized by the AEAT .\nA Veri*Factu QR code appears on the invoice PDF. Scan this code to verify that the invoice\nhas been received and recognized by the AEAT .\n\n### Point of sale orders\n\nOnce an order has been paid , a JSON file containing the order details is\ngenerated. This file is stored as a Veri*Factu document.\nGo to Point of Sale ⣠Orders ⣠Orders . In the Orders list view,\nselect the relevant order. In the Veri*Factu tab, all the corresponding documents are\nlisted by their creation date and current status.\nTo download a JSON file, click on its document in the Veri*Factu tab. Then, in\nthe Open: Veri*Factu Documents window, click the link in the JSON field.\n- The document should be sent to the AEAT immediately. However, it may be delayed due to mandatory waiting periods between submissions\nrequired by the AEAT . In such cases,\nthe document is automatically sent the next time a scheduled action runs.\nThe document should be sent to the AEAT immediately. However, it may be delayed due to mandatory waiting periods between submissions\nrequired by the AEAT . In such cases,\nthe document is automatically sent the next time a scheduled action runs.\nIf an invoice is generated for an order during the payment process, the Veri*Factu document is created and sent for the invoice instead.\nA Veri*Factu QR code appears on the order receipt, even if an invoice is created for the\norder. Scan this code to verify that the invoice has been received and recognized by the AEAT\n\n## TicketBAI\n\nTicket BAI or TBAI is an e-Invoicing\nsystem used by the Basque government and its three provincial councils (Ãlava, Biscay, and\nGipuzkoa).\nOdoo supports the TicketBAI (TBAI) electronic invoicing format for all three regions of the Basque Country . To enable TicketBAI , set your companyâs Country and Tax ID under Settings ⣠General Settings in the Companies section.\nThen, install the module Spain -TicketBAI (l10n_es_edi_TBAI) ,\ngo to Accounting ⣠Configuration ⣠Settings , and select a region in the Spain Localization sectionâs Tax Agency for TBAI field.\nOnce a region is selected, click Manage certificates (SII/TicketBAI) , then click New , upload the certificate, and enter the password provided by the tax agency.\nIf you are testing certificates, enable Test Mode in the Spain Localization section, which can be found under Accounting in\nthe Settings app.\n\n### Use case\n\nOnce an invoice has been created and confirmed,\na TicketBAI banner appears at the top.\nOdoo sends invoices through TicketBAI automatically every 24 hours . However, you can click Process now to send the invoice immediately.\nWhen the invoice is sent , the status of the field Electronic Invoice changes to Sent , and the XML file can be found in the chatter . Under the EDI Documents tab, you can see the traceability of other generated documents related to\nthe invoice (e.g., if the invoice should also be sent through the SII , it will appear here).\nThe TBAI QR code is displayed on the invoice PDF.\n\n## FACe\n\nFACe is the e-Invoicing platform used by the public administrations in\nSpain to send electronic invoices.\nBefore configuring the FACe system, install the Spain - Facturae EDI (l10n_es_edi_facturae) module\nand other Facturae EDI -related modules.\nTo configure FACe, follow these steps:\n- Go to Accounting ⣠Configuration ⣠Certificates .\nGo to Accounting ⣠Configuration ⣠Certificates .\n- Click New to create a new certificate.\nClick New to create a new certificate.\n- Complete the fields, including uploading the file of the Certificate provided by the\ntax agency and the provided Certificate Password .\nComplete the fields, including uploading the file of the Certificate provided by the\ntax agency and the provided Certificate Password .\nIf using the Invoicing app instead of Accounting, go to Invoicing â£\nConfiguration ⣠Certificates .\n\n### Use case\n\nOnce you have created an invoice and confirmed\nit, click Send . Make sure Generate Facturae edi file is enabled, and\nclick Send again. Once the invoice is sent, the generated XML file is available\nin the chatter .\nThe file is NOT automatically sent. You have to send it yourself manually.\nYou can send FACe XML files in batch through the governmental portal .\n\n### Administrative centers\n\nIn order for FACe to work with administrative centers , the invoice must include specific\ndata about the centers.\nTo add administrative centers , create a new contact to add to the partner company.\nSelect FACe Center as the type , assign one or more role(s) to that contact, and Save . The three roles usually required are:\n- Ãrgano gestor: Receptor (Receiver);\nÃrgano gestor: Receptor (Receiver);\n- Unidad tramitadora: Pagador (Payer);\nUnidad tramitadora: Pagador (Payer);\n- Oficina contable: Fiscal (Fiscal).\nOficina contable: Fiscal (Fiscal).\n- If administrative centers need different Codes per role, you must create\ndifferent centers for each role.\nIf administrative centers need different Codes per role, you must create\ndifferent centers for each role.\n- When an electronic invoice is created using a partner with administrative centers , all administrative centers are included in the invoice.\nWhen an electronic invoice is created using a partner with administrative centers , all administrative centers are included in the invoice.\n- You can add one contact with multiple roles or multiple contacts with a different role each.\nYou can add one contact with multiple roles or multiple contacts with a different role each.", "headings": ["Configuration", "Chart of accounts", "Taxes", "Reports", "Modelo 130", "Veri*Factu", "Configuration", "Invoices", "Point of sale orders", "TicketBAI", "Use case", "FACe", "Use case", "Administrative centers"], "doc_id": "fb7a6061f7ed6c97"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/switzerland.html", "title": "Switzerland", "module": "invoicing", "section": "Switzerland", "text": "# Switzerland\n\n## ISR (In-payment Slip with Reference number)\n\nThe ISRs are payment slips used in Switzerland. You can print them\ndirectly from Odoo. On the customer invoices, there is a new button\ncalled Print ISR .\nThe button Print ISR only appears there is well a bank account\ndefined on the invoice. You can use CH6309000000250097798 as bank\naccount number and 010391391 as CHF ISR reference.\nThen you open a pdf with the ISR.\nThere exists two layouts for ISR: one with, and one without the bank\ncoordinates. To choose which one to use, there is an option to print the\nbank information on the ISR. To activate it, go in Accounting ⣠Configuration ⣠Settings ⣠Customer Invoices and enable Print bank on ISR :\n\n### ISR reference on invoices\n\nTo ease the reconciliation process, you can add your ISR reference as Payment Reference on your\ninvoices.\nTo do so, you need to configure the Journal you usually use to issue invoices. Go to Accounting ⣠Configuration ⣠Journals , open the Journal you want to modify (By\ndefault, the Journal is named Customer Invoices ), click en Edit , and open the Advanced\nSettings tab. In the Communication Standard field, select Switzerland , and click on Save .\n\n## Currency Rate Live Update\n\nYou can update automatically your currencies rates based on the Federal\nTax Administration from Switzerland. For this, go in Accounting ⣠Settings , activate the multi-currencies setting and choose the service\nyou want.\n\n## Updated VAT for January 2018\n\nStarting from the 1st January 2018, new reduced VAT rates will be\napplied in Switzerland. The normal 8.0% rate will switch to 7.7% and the\nspecific rate for the hotel sector will switch from 3.8% to 3.7%.\n\n### How to update your taxes in Odoo Enterprise (Odoo Online or On-premise)?\n\nIf you have the V11.1 version, all the work is already been done, you\ndonât have to do anything.\nIf you have started on an earlier version, you first have to update the\nmodule âSwitzerland - Accounting Reportsâ. For this, you go in Apps ⣠remove the filter âAppsâ ⣠search for âSwitzerland - Accounting Reportsâ ⣠open the module ⣠click on âupgradeâ .\nOnce it has been done, you can work on creating new taxes for the\nupdated rates.\nDo not suppress or modify the existing taxes (8.0% and 3.8%).\nYou want to keep them since you may have to use both rates for a short\nperiod of time. Instead, remember to archive them once you have encoded\nall your 2017 transactions.\nThe creation of such taxes should be done in the following manner:\n- Purchase taxes : copy the origin tax, change its name, label on\ninvoice, rate and tax group (effective from v10 only)\nPurchase taxes : copy the origin tax, change its name, label on\ninvoice, rate and tax group (effective from v10 only)\n- Sale taxes : copy the origin tax, change its name, label on\ninvoice, rate and tax group (effective from v10 only). Since the\nvat report now shows the details for old and new rates, you\nshould also set the tags accordingly to For 7.7% taxes: Switzerland VAT Form: grid 302 base, Switzerland\nVAT Form: grid 302 tax For 3.7% taxes: Switzerland VAT Form: grid 342 base, Switzerland\nVAT Form: grid 342 tax\nSale taxes : copy the origin tax, change its name, label on\ninvoice, rate and tax group (effective from v10 only). Since the\nvat report now shows the details for old and new rates, you\nshould also set the tags accordingly to\n- For 7.7% taxes: Switzerland VAT Form: grid 302 base, Switzerland\nVAT Form: grid 302 tax\nFor 7.7% taxes: Switzerland VAT Form: grid 302 base, Switzerland\nVAT Form: grid 302 tax\n- For 3.7% taxes: Switzerland VAT Form: grid 342 base, Switzerland\nVAT Form: grid 342 tax\nFor 3.7% taxes: Switzerland VAT Form: grid 342 base, Switzerland\nVAT Form: grid 342 tax\nYouâll find below, as examples, the correct configuration for all taxes\nincluded in Odoo by default\nTax Group (effective from V10)\nTVA 7.7% sur achat B&S (TN)\nSwitzerland VAT Form: grid 400\nTVA 7.7% sur achat B&S (Incl. TN)\nSwitzerland VAT Form: grid 400\nTVA 7.7% sur invest. et autres ch. (TN)\nSwitzerland VAT Form: grid 405\nTVA 7.7% sur invest. et autres ch. (Incl. TN)\nSwitzerland VAT Form: grid 405\nTVA 3.7% sur achat B&S (TS)\nSwitzerland VAT Form: grid 400\nTVA 3.7% sur achat B&S (Incl. TS)\nSwitzerland VAT Form: grid 400\nTVA 3.7% sur invest. et autres ch. (TS)\nSwitzerland VAT Form: grid 405\nTVA 3.7% sur invest. et autres ch. (Incl. TS)\nSwitzerland VAT Form: grid 405\nSwitzerland VAT Form: grid 302 base, Switzerland VAT Form: grid 302 tax\nTVA due à 7.7% (Incl. TN)\nSwitzerland VAT Form: grid 302 base, Switzerland VAT Form: grid 302 tax\nSwitzerland VAT Form: grid 342 base, Switzerland VAT Form: grid 342 tax\nTVA due a 3.7% (Incl. TS)\nSwitzerland VAT Form: grid 342 base, Switzerland VAT Form: grid 342 tax\nIf you have questions or remarks, please contact our support using\nodoo.com/help.\nDonât forget to update your fiscal positions. If you have a version\n11.1 (or higher), there is nothing to do. Otherwise, you will also\nhave to update your fiscal positions accordingly.", "headings": ["ISR (In-payment Slip with Reference number)", "ISR reference on invoices", "Currency Rate Live Update", "Updated VAT for January 2018", "How to update your taxes in Odoo Enterprise (Odoo Online or On-premise)?"], "doc_id": "734ae418e6a6467e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/taiwan.html", "title": "Taiwan", "module": "invoicing", "section": "Taiwan", "text": "# Taiwan\n\n## Modules\n\nThe following modules related to Taiwan localization are available:\n`l10n_tw`\nThis is the base module to manage the accounting chart for Taiwan.\n`l10n_tw_edi_ecpay`\nThis module allows the user to send their invoices to the Ecpay system.\nTaiwan - E-invoicing Ecommerce\nl10n_tw_edi_ecpay_website_sale\n`l10n_tw_edi_ecpay_website_sale`\nThis module allows the user to input Ecpay information in ecommerce for sending their invoices to the Ecpay system.\nTaiwan - Accounting Reports\n`l10n_tw_reports`\nThis module includes the accounting reports for Taiwan.\nIn some cases, such as when upgrading to a version with additional modules, modules may not be\ninstalled automatically. Any missing modules can be manually installed .\n\n## Localization overview\n\nThe Taiwanese localization package ensures compliance with Taiwanese fiscal and accounting\nregulations. It includes tools for managing taxes, fiscal positions, reporting, and a predefined\nchart of accounts tailored to Taiwanâs standards.\nThe Taiwanese localization package provides the following key features to ensure compliance with\nlocal fiscal and accounting regulations:\n- Chart of accounts : a predefined structure tailored to Taiwanese\naccounting standards.\nChart of accounts : a predefined structure tailored to Taiwanese\naccounting standards.\n- Taxes : pre-configured tax rates.\nTaxes : pre-configured tax rates.\n- Reporting\n- E-invoicing (ECPay) : integration for electronic\ninvoicing in line with Taiwanese government requirements.\nE-invoicing (ECPay) : integration for electronic\ninvoicing in line with Taiwanese government requirements.\n\n### Taxes\n\nThe standard tax rate in Taiwan is 5%, though special tax rates apply to specific industries. To\nconfigure special taxes for the GBRT , go to Accounting ⣠Configuration ⣠Taxes , click New , and configure the\nfollowing:\n- Fill in the standard fields and tax computation .\nFill in the standard fields and tax computation .\n- In the Ecpay Tax Type field, select Taxable (special tax rate) .\nIn the Ecpay Tax Type field, select Taxable (special tax rate) .\n- In the new Ecpay Special Tax Type field that appears, select the applicable\nindustry.\nIn the new Ecpay Special Tax Type field that appears, select the applicable\nindustry.\nIf Saloons and tea rooms, coffee shops and bars offering companionship services: Tax rate is 25% is selected, enter 25 in the Amount field.\n`25`\n\n## Contacts\n\nTo manage the distinction between B2C and B2B invoices, configure the following fields in their contact form:\n- Individual (B2C): Select the contact type and\nprovide the Email or Phone number.\nIndividual (B2C): Select the contact type and\nprovide the Email or Phone number.\n- Company (B2B): Select the contact type, enter the Tax ID , and provide the Email or Phone number.\nCompany (B2B): Select the contact type, enter the Tax ID , and provide the Email or Phone number.\n- Invoices sent to individuals not linked to a Company contact are treated as a B2C invoice .\nInvoices sent to individuals not linked to a Company contact are treated as a B2C invoice .\n- Invoices sent to individuals belonging to a Company contact are treated as a B2B\ninvoice (to the parent Company).\nInvoices sent to individuals belonging to a Company contact are treated as a B2B\ninvoice (to the parent Company).\n\n## Accounting\n\n### ECPay integration\n\nMake sure to install the Taiwan - E-invoicing ( l10n_tw_edi_ecpay ) module.\n`l10n_tw_edi_ecpay`\nOdoo supports integration with ECPay to submit generated invoices directly to their system.\n\n#### Set-up\n\nTo configure the integration, valid credentials must be retrieved from the ECPay vendor backend . Go to System Settings ⣠System Integration Settings ⣠Integration Information to get\nthe required information:\n- MerchantID\n- Hashkey\n- HashIV\nGo to Accounting ⣠Configuration ⣠Settings , scroll down to the Taiwan Electronic Invoicing section, and fill in the MerchantID , HashKey , and HashIV fields, retrieved from the ECPay vendor backend .\nFor testing purposes, do not use real credentials. Instead, enable the Staging mode option and use the Staging information provided by\nECPay.\n\n#### Workflow\n\nTo send a B2C invoice, follow these steps:\n- Navigate to Accounting ⣠Customers ⣠Invoices and create a new\ninvoice .\nNavigate to Accounting ⣠Customers ⣠Invoices and create a new\ninvoice .\n- Select a customer of the type Individual .\nSelect a customer of the type Individual .\n- In the Ecpay tab, configure delivery options: Get Printed Version : Check this to allow the customer to receive a printable ECPay\ninvoice. Love Code : Enter the Love Code if the customer wishes to donate the invoice to a\ncharity. Carrier Type : Select the carrier type if the customer uses a cloud-based carrier,\nand enter the Carrier Number (and Carrier Number 2 ) if required.\nIn the Ecpay tab, configure delivery options:\n- Get Printed Version : Check this to allow the customer to receive a printable ECPay\ninvoice.\nGet Printed Version : Check this to allow the customer to receive a printable ECPay\ninvoice.\n- Love Code : Enter the Love Code if the customer wishes to donate the invoice to a\ncharity.\nLove Code : Enter the Love Code if the customer wishes to donate the invoice to a\ncharity.\n- Carrier Type : Select the carrier type if the customer uses a cloud-based carrier,\nand enter the Carrier Number (and Carrier Number 2 ) if required.\nCarrier Type : Select the carrier type if the customer uses a cloud-based carrier,\nand enter the Carrier Number (and Carrier Number 2 ) if required.\n- Confirm the invoice, and click Send . Then, ensure the Send to Ecpay checkbox is selected, and click Send .\nConfirm the invoice, and click Send . Then, ensure the Send to Ecpay checkbox is selected, and click Send .\n- The Invoice Status , Ecpay Invoice Number , and Creation Date in the Ecpay tab will update automatically upon successful submission.\nThe Invoice Status , Ecpay Invoice Number , and Creation Date in the Ecpay tab will update automatically upon successful submission.\nTo print or download the ECpay invoice, follow these steps:\n- Make sure the Get Printed Version option is checked in the Ecpay tab.\nMake sure the Get Printed Version option is checked in the Ecpay tab.\n- Click the (gear) icon and select Print Ecpay invoice .\nClick the (gear) icon and select Print Ecpay invoice .\n- In the Print Ecpay Invoice window, select a Print Format (B2C) and\nclick Print Invoice .\nIn the Print Ecpay Invoice window, select a Print Format (B2C) and\nclick Print Invoice .\nTo send a B2B invoice, follow these steps:\n- Navigate to Accounting ⣠Customers ⣠Invoices and create a new\ninvoice .\nNavigate to Accounting ⣠Customers ⣠Invoices and create a new\ninvoice .\n- Select a customer who is either a Company or\nan Individual belonging to a Company .\nSelect a customer who is either a Company or\nan Individual belonging to a Company .\n- Confirm the invoice, and click Send . Then, ensure the Send to Ecpay checkbox is selected, and click Send .\nConfirm the invoice, and click Send . Then, ensure the Send to Ecpay checkbox is selected, and click Send .\n- The Invoice Status , Ecpay Invoice Number , and Creation Date in the Ecpay tab will update automatically upon successful submission.\nThe Invoice Status , Ecpay Invoice Number , and Creation Date in the Ecpay tab will update automatically upon successful submission.\nEnsure the Tax ID field of the customer is\nfilled in with the Tax Identification Number.\nBy default, B2B ECpay invoices are available to print or download. Please follow these steps:\n- Click the (gear) icon and select Print Ecpay invoice .\nClick the (gear) icon and select Print Ecpay invoice .\n- In the Print Ecpay Invoice window, select a Print Format (B2B) and\nclick Print Invoice .\nIn the Print Ecpay Invoice window, select a Print Format (B2B) and\nclick Print Invoice .\nCheck the invoiceâs Log Note for ECPay submission details. Failed attempts display\nerror messages, while successful submissions record the Ecpay invoice number and Invoice status .\nTo cancel a submitted invoice:\n- Open the relevant invoice and click Request Cancel .\nOpen the relevant invoice and click Request Cancel .\n- In the pop-up window, provide a cancellation Reason , then click Cancel Invoice .\nIn the pop-up window, provide a cancellation Reason , then click Cancel Invoice .\n- The Invoice Status changes to Invalid , and the Invalidate Reason is filled in with the cancellation Reason .\nThe Invoice Status changes to Invalid , and the Invalidate Reason is filled in with the cancellation Reason .\nBefore sending a credit note, the original invoice must be successfully submitted to ECPay.\nThe credit note amount cannot exceed the original invoice amount.\nTo send a B2C credit note to ECPay, follow these steps:\n- Click Credit Note on the relevant invoice and enter the Reason displayed on Credit Note .\nClick Credit Note on the relevant invoice and enter the Reason displayed on Credit Note .\n- Select the Agreement Type and the Allowance Notify Way , and click Reverse .\nSelect the Agreement Type and the Allowance Notify Way , and click Reverse .\n- Click Confirm , then Send , ensuring Send to Ecpay (Issue Allowance) is selected.\nClick Confirm , then Send , ensuring Send to Ecpay (Issue Allowance) is selected.\nThen, The Refund State updates to Agreed (for Offline agreements ) or To be agreed (for Online agreements ). Additionally, the Refund Invoice Number , Refund invoice Agreement Type and Allowance Notify Way updates accordingly\nin the Ecpay tab.\nTo send a B2B credit note to ECPay, follow these steps:\n- Click Credit Note on the relevant invoice, enter the Reason displayed on Credit Note , then click Reverse .\nClick Credit Note on the relevant invoice, enter the Reason displayed on Credit Note , then click Reverse .\n- Click Confirm , then Send , ensuring Send to Ecpay (Issue Allowance) is selected.\nClick Confirm , then Send , ensuring Send to Ecpay (Issue Allowance) is selected.\nThen the Refund Invoice Number is updated automatically in the Ecpay tab.\n\n## eCommerce\n\n### Set-up\n\nTo enable direct invoice submission via eCommerce:\n- Go to Website ⣠Configuration ⣠Settings .\nGo to Website ⣠Configuration ⣠Settings .\n- In the Invoicing section, enable Automatic Invoice .\nIn the Invoicing section, enable Automatic Invoice .\nThis ensures invoices are generated and sent to ECPay automatically once the online payment is\nconfirmed.\n\n### Checkout Process\n\n- B2C Customers : During checkout, customers must indicate whether they want to receive a\nphysical invoice using the Request a paper copy field No : No copy is provided. Yes : The invoice can be downloaded from the invoice view.\nB2C Customers : During checkout, customers must indicate whether they want to receive a\nphysical invoice using the Request a paper copy field\n- No : No copy is provided.\nNo : No copy is provided.\n- Yes : The invoice can be downloaded from the invoice view.\nYes : The invoice can be downloaded from the invoice view.\n- B2B Customers : An Invoicing Info page appears after delivery confirmation.\nCustomers can either select the Donate checkbox to donate the invoice, or choose an Ecpay e-invoice carrier from the following options, and provide the Carrier Number and Carrier Number 2 where applicable. Member Account Citizen Digital Certificate Mobile Barcode EasyCard iPass Note If no option has been selected, a Print Ecpay invoice can still be downloaded from\nthe invoice view.\nB2B Customers : An Invoicing Info page appears after delivery confirmation.\nCustomers can either select the Donate checkbox to donate the invoice, or choose an Ecpay e-invoice carrier from the following options, and provide the Carrier Number and Carrier Number 2 where applicable.\n- Member Account\n- Citizen Digital Certificate\nCitizen Digital Certificate\n- Mobile Barcode\n- EasyCard\nIf no option has been selected, a Print Ecpay invoice can still be downloaded from\nthe invoice view.", "headings": ["Modules", "Localization overview", "Taxes", "Contacts", "Accounting", "ECPay integration", "eCommerce", "Set-up", "Checkout Process"], "doc_id": "10479778c1369c2d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/thailand.html", "title": "Thailand", "module": "invoicing", "section": "Thailand", "text": "# Thailand\n\n## Configuration\n\nInstall the ð¹ð Thailand localization package to get all the\nfeatures of the Thai localization:\nThailand - Accounting\n`l10n_th`\nDefault fiscal localization package\nThailand - Accounting Reports\n`l10n_th_reports`\nCountry-specific accounting reports\n\n## Chart of accounts and taxes\n\nOdooâs fiscal localization package for Thailand includes the following taxes:\n- VAT 7%\n- VAT-exempted\n- Withholding tax\n- Withholding income tax\nWithholding income tax\n\n## Tax report\n\nOdoo allows users to generate Excel files to submit their VAT to the Revenue Department of\nThailand.\n\n### Sales and purchase tax report\n\nTo generate a sales and purchase tax report, go to Accounting ⣠Reporting ⣠Tax\nReport . Select a specific time or time range on the tax report, and click VAT-202-01 (xlsx) for purchase tax and VAT-202-02 (xlsx) for sales tax.\n\n### Withholding PND tax report\n\nPND report data displays the summarized amounts of the applicable withholding corporate income\ntax returns (domestic) from vendor bills under the PND53 (TH) and PND3 (TH) tax reports. It is installed by default with the Thai localization.\nWithholding corporate income tax returns (domestic) is the tax used in case the company has\nwithheld the tax from â Personal (PND3) â or â Corporate (PND53) â services provided such as\nrental, hiring, transportation, insurance, management fee, consulting, etc.\nThe PND tax report allows users to generate a CSV file for bills to upload on the RDprep for Thailand e-Filling application .\nTo generate a PND CSV file, go to Accounting ⣠Reporting ⣠Tax Report , select a\nspecific time or time range on the tax report, and click PND3 or PND53 .\nThis generates the Tax Report PND3.csv and Tax Report PND53.csv files that lists all\nthe vendor bill lines with the applicable withholding tax.\n`TaxReportPND3.csv`\n`TaxReportPND53.csv`\nOdoo cannot generate the PND or PDF report or withholding tax certificate directly. The\ngenerated Tax Report PND3.csv and Tax Report PND53.csv files must be exported\nto an external tool to convert them into a withholding PND report or a PDF file.\n`TaxReportPND3.csv`\n`TaxReportPND53.csv`\n\n## Tax invoice\n\nThe tax invoice PDF report can be generated from Odoo through the Invoicing module. Users\nhave the option to print PDF reports for normal invoices and tax invoices. To print out tax invoices , users can click on Print Invoices in Odoo. Regular invoices can be\nprinted as commercial invoices by clicking on Cog button (âï¸) ⣠Print â£\nCommercial Invoice .\n\n### Headquarter/Branch number settings\n\nYou can inform a companyâs Headquarters and Branch number in the Contacts app. Once\nin the app, open the contact form of the company and under the Sales & Purchase tab:\n- If the contact is identified as a branch, input the Branch number in the Company ID field.\nIf the contact is identified as a branch, input the Branch number in the Company ID field.\n- If the contact is a Headquarters , leave the Company ID field blank .\nIf the contact is a Headquarters , leave the Company ID field blank .\nThis information is used in the tax invoice PDF report and PND tax report export.\n\n## PromptPay QR code on invoices\n\nThe PromptPay QR code is a QR code that can be added to invoices to allow customers to pay their\nbills using the PromptPay-supported bank mobile application. The QR code is generated based on the invoice amount and one of the following merchant information :\n- Ewallet ID\n- Merchant Tax ID\n- Mobile Number\n\n### Activate QR codes\n\nGo to Accounting ⣠Configuration ⣠Settings . Under the Customer\nPayments section, activate the QR Codes feature.\n\n### PromptPay QR bank account configuration\n\nGo to Contacts ⣠Configuration ⣠Bank Accounts and select the bank account for\nwhich you want to activate PromptPay QR. Set the Proxy Type and fill in the Proxy Value field depending on the chosen type.\n- The account holderâs city is mandatory.\nThe account holderâs city is mandatory.\n- The Include Reference checkbox doesnât work for PromptPay QR codes.\nThe Include Reference checkbox doesnât work for PromptPay QR codes.\nBank and cash accounts\n\n### Bank journal configuration\n\nGo to Accounting ⣠Configuration ⣠Journals , open the bank journal, then fill\nin the Account Number and Bank under the Journal Entries tab.\n\n### Issue invoices with PromptPay QR code\n\nWhen creating a new invoice, open the Other Info tab and set the Payment\nQR-code option to EMV Merchant-Presented QR-code .\nEnsure that the Recipient Bank is the one you configured, as Odoo uses this field to\ngenerate the PromptPay QR code.", "headings": ["Configuration", "Chart of accounts and taxes", "Tax report", "Sales and purchase tax report", "Withholding PND tax report", "Tax invoice", "Headquarter/Branch number settings", "PromptPay QR code on invoices", "Activate QR codes", "PromptPay QR bank account configuration", "Bank journal configuration", "Issue invoices with PromptPay QR code"], "doc_id": "600da282b8d1dbc4"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/united_arab_emirates.html", "title": "United Arab Emirates", "module": "invoicing", "section": "United Arab Emirates", "text": "# United Arab Emirates\n\n## Installation\n\nInstall the following modules to get all the features of the United Arab\nEmirates localization:\nUnited Arab Emirates - Accounting\n`l10n_ae`\nDefault fiscal localization package .\nIncludes all accounts, taxes, and reports.\nUnited Arab Emirates - Corporate Tax Report\nl10n_ae_corporate_tax_report\n`l10n_ae_corporate_tax_report`\nAdds the Corporate Tax report.\nUnited Arab Emirates - Accounting Reports\n`l10n_ae_reports`\nAccounting reports for UAE.\nIn some cases, such as when upgrading to a version with additional modules, it is possible that\nmodules may not be installed automatically. Any missing modules can be manually installed .\nUnited Arab Emirates Payroll localization documentation\n\n## Chart of accounts\n\nGo to Accounting ⣠Configuration ⣠Chart of Accounts to view all default\naccounts available for the UAE localization package. You can filter by Code using the\nnumbers on the far left, or click into the search bar and group by Account Type .\nYou can Enable / Disable reconciliation or configure specific accounts\naccording to your needs.\n- Always keep at least one receivable account and one payable account active.\nAlways keep at least one receivable account and one payable account active.\n- It is also advised to keep the accounts below active , as they are used either as transitory\naccounts by Odoo or are specific to the UAE localization package . Code Account Name Type 102011 Accounts Receivable Receivable 102012 Accounts Receivable (POS) Receivable 201002 Payables Payable 101004 Bank Bank and Cash 105001 Cash Bank and Cash 100001 Liquidity Transfer Current Assets 101002 Outstanding Receipts Current Assets 101003 Outstanding Payments Current Assets 104041 VAT Input Current Assets 100103 VAT Receivable Non-current Assets 101001 Bank Suspense Account Current Liabilities 201017 VAT Output Current Liabilities 202001 End of Service Provision Current Liabilities 202003 VAT Payable Non-current Liabilities 999999 Undistributed Profits/Losses Current Year Earnings 400003 Basic Salary Expenses 400004 Housing Allowance Expenses 400005 Transportation Allowance Expenses 400008 End of Service Indemnity Expenses\nIt is also advised to keep the accounts below active , as they are used either as transitory\naccounts by Odoo or are specific to the UAE localization package .\nAccounts Receivable (POS)\nBank Suspense Account\nEnd of Service Provision\nNon-current Liabilities\nUndistributed Profits/Losses\nCurrent Year Earnings\nTransportation Allowance\nEnd of Service Indemnity\n\n## Taxes\n\nTo access your taxes, go to Accounting ⣠Configuration ⣠Taxes .\nActivate/deactivate, or configure the\ntaxes relevant to your business by clicking on them. Remember to only set tax accounts on the 5% tax group, as other groups do not need closing. To do so, enable the developer mode and go to Accounting ⣠Configuration ⣠Tax\nGroups . Then, set a Tax current account (payable) , Tax current account\n(receivable) , and an Advance Tax payment account for the 5% group.\nThe RCM is supported by Odoo.\n\n## Currency exchange rates\n\nTo update the currency exchange rates, go to Accounting ⣠Configuration â£\nSettings and scroll down to the Currencies section. Then, click the (refresh) icon in the Next Run field.\nTo launch the update automatically at set intervals, change the Interval from Manually to the desired frequency.\nBy default, the UAE Central Bank exchange rates web service is used. Several other providers are\navailable under the Service field.\n\n### Salary rules\n\nTo apply these rules to an employeeâs contract, go to Payroll ⣠Contracts â£\nContracts and select the employeeâs contract. In the Salary Structure Type field,\nselect UAE Employee .\nUnder the Salary Information tab, you can find details such as the:\n- Wage ;\n- Housing Allowance ;\n- Transportation Allowance ;\nTransportation Allowance ;\n- Other Allowances ;\n- Number of Days : used to calculate the end of service provision .\nNumber of Days : used to calculate the end of service provision .\n- Leave deductions are calculated using a salary rule linked to the unpaid leave time-off\ntype.\nLeave deductions are calculated using a salary rule linked to the unpaid leave time-off\ntype.\n- Any other deductions or reimbursements are made manually using other inputs.\nAny other deductions or reimbursements are made manually using other inputs.\n- Overtimes are added manually by going to Payroll ⣠Work Entries â£\nWork Entries .\nOvertimes are added manually by going to Payroll ⣠Work Entries â£\nWork Entries .\n- Salary attachments are generated by going to Payroll ⣠Contracts â£\nSalary Attachments . Then, Create an attachment and select the Employee and the Type (Attachment of Salary, Assignment of Salary, Child Support) .\nSalary attachments are generated by going to Payroll ⣠Contracts â£\nSalary Attachments . Then, Create an attachment and select the Employee and the Type (Attachment of Salary, Assignment of Salary, Child Support) .\nTo prevent a rule from appearing on a paycheck, go to Payroll ⣠Configuration\n⣠Rules . Click on UAE Employee Payroll Structure , select the rule to hide, and\nuncheck Appears on Payslip .\n\n### End of service provision\n\nThe provision is defined as the total monthly allowance divided by 30 and then multiplied by the\nnumber of days set in the field Number of days at the bottom of a contractâs form.\nThe provision is then calculated via a salary rule associated with two accounts: the End Of\nService Indemnity (Expense account) and the End of Service Provision (Non-current Liabilities\naccount) . The latter is used to pay off the end of service amount by settling it with the payables account .\nThe end of service amount is calculated based on the gross salary and the start and end dates of\nthe employeeâs contract.\n\n### Invoices\n\nThe UAE localization package allows the generation of invoices in English, Arabic, or both. The\nlocalization also includes a line to display the VAT amount per line.", "headings": ["Installation", "Chart of accounts", "Taxes", "Currency exchange rates", "Salary rules", "End of service provision", "Invoices"], "doc_id": "3c0f1e5bc6b7cbbe"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/united_kingdom.html", "title": "United Kingdom", "module": "invoicing", "section": "United Kingdom", "text": "# United Kingdom\n\n## Configuration\n\nInstall the UK - Accounting and the UK - Accounting\nReports modules to get all the features of the UK localization.\n`l10n_uk`\n- CT600-ready chart of accounts\nCT600-ready chart of accounts\n- VAT100-ready tax structure\nVAT100-ready tax structure\n- Infologic UK counties listing\nInfologic UK counties listing\nUK - Accounting Reports\n`l10n_uk_reports`\n- Accounting reports for the UK\nAccounting reports for the UK\n- Allows sending the tax report via the MTD-VAT API to HMRC.\nAllows sending the tax report via the MTD-VAT API to HMRC.\nUK BACS Payment Files\n`l10n_uk_bacs`\nAllows generating Bacs files for bill and invoice payments\nUK - Construction Industry Scheme\n`l10n_uk_reports_cis`\n- Allows sending the Monthly return to HMRC\nAllows sending the Monthly return to HMRC\n- CIS Deduction (GB) report for UK construction industry\nCIS Deduction (GB) report for UK construction industry\n`l10n_uk_hmrc`\nIncludes the HMRC basics.\n- Only UK-based companies can submit reports to HMRC.\nOnly UK-based companies can submit reports to HMRC.\n- Installing the module UK - Accounting Reports installs all two modules at once.\nInstalling the module UK - Accounting Reports installs all two modules at once.\n- The UK - Construction Industry Scheme module automatically includes the UK - HMRC API module during installation.\nThe UK - Construction Industry Scheme module automatically includes the UK - HMRC API module during installation.\n- HM Revenue & Customs\n- Overview of Making Tax Digital\nOverview of Making Tax Digital\n\n## Chart of accounts\n\nThe UK chart of accounts is included in the UK - Accounting module. Go to Accounting ⣠Configuration ⣠Accounting: Chart of Accounts to access it.\nSetup your CoA by going to Accounting ⣠Configuration\n⣠Settings ⣠Accounting Import section and choose to Review Manually or Import (recommended) your initial balances.\n\n## Taxes\n\nAs part of the localization module, UK taxes are created automatically with their related financial\naccounts and configuration.\nGo to Accounting ⣠Configuration ⣠Settings ⣠Taxes to update the Default Taxes , the Tax Return Periodicity or to Configure your\ntax accounts .\nTo edit existing taxes or to Create a new tax, go to Accounting â£\nConfiguration ⣠Accounting: Taxes .\n- Tutorial: Tax report and return .\nTutorial: Tax report and return .\n\n### Making Tax Digital (MTD)\n\nIn the UK, all VAT-registered businesses have to follow the MTD rules by using software to submit\ntheir VAT returns.\nThe UK - Accounting Reports module enables you to comply with the HM Revenue & Customs requirements regarding Making Tax Digital .\nIf your periodic submission is more than three months late, it is no longer possible to submit\nit through Odoo, as Odoo only retrieves open bonds from the last three months. Your submission\nhas to be done manually by contacting HMRC.\n\n#### Register your company to HMRC before the first submission\n\nGo to Accounting ⣠Reporting ⣠Tax report and click on Connect to HMRC . Enter your company information on the HMRC platform. You only need to\ndo it once.\n\n#### Periodic submission to HMRC\n\nImport your obligations HMRC, filter on the period you want to submit, and send your tax report by\nclicking Send to HMRC .\nYou can use dummy credentials to demo the HMRC flow. To do so, activate the developer mode and go to General Settings â£\nTechnical ⣠System Parameters . From here, search for l10n_uk_reports.hmrc_mode and change\nthe value line to demo . You can get such credentials from the HMRC Developer Hub .\n`l10n_uk_reports.hmrc_mode`\n`demo`\n\n#### Periodic submission to HMRC for multi-company\n\nOnly one company and one user can connect to HMRC simultaneously. If several UK-based companies are\non the same database, the user who submits the HMRC report must follow these instructions before\neach submission:\n- Log into the company for which the submission has to be done.\nLog into the company for which the submission has to be done.\n- Go to General Settings , and in the Users section, click Manage Users . Select the user who is connected to HMRC.\nGo to General Settings , and in the Users section, click Manage Users . Select the user who is connected to HMRC.\n- Go to the UK HMRC Integration tab and click Reset Authentication\nCredentials or Remove Authentication Credentials button.\nGo to the UK HMRC Integration tab and click Reset Authentication\nCredentials or Remove Authentication Credentials button.\n- Register your company to HMRC and submit\nthe companyâs tax report.\nRegister your company to HMRC and submit\nthe companyâs tax report.\n- Repeat the steps for other companiesâ HMRC submissions.\nRepeat the steps for other companiesâ HMRC submissions.\nDuring this process, the Connect to HMRC button no longer appears for other UK-based\ncompanies.\n\n## Bacs files\n\nBacs files are electronic files used in the UK to\nprocess payments and transfers between bank accounts.\nTo enable the use of Bacs files, make sure the UK BACS Payment Files module is installed, then:\n- Configure your Bacs Service User Number: Go to Accounting ⣠Configuration ⣠Settings and scroll down to the Customer Payments section. Enter your Service User Number under BACS and manually save.\nConfigure your Bacs Service User Number:\n- Go to Accounting ⣠Configuration ⣠Settings and scroll down to the Customer Payments section.\nGo to Accounting ⣠Configuration ⣠Settings and scroll down to the Customer Payments section.\n- Enter your Service User Number under BACS and manually save.\nEnter your Service User Number under BACS and manually save.\n- Configure your bank journal: Go to Accounting ⣠Configuration ⣠Journals and select your bank journal. In the Journal Entries tab, configure the Account Number and Bank fields. In the Incoming Payments and Outgoing Payments tabs, make sure the BACS Direct Debit payment method is enabled.\nConfigure your bank journal:\n- Go to Accounting ⣠Configuration ⣠Journals and select your bank journal.\nGo to Accounting ⣠Configuration ⣠Journals and select your bank journal.\n- In the Journal Entries tab, configure the Account Number and Bank fields.\nIn the Journal Entries tab, configure the Account Number and Bank fields.\n- In the Incoming Payments and Outgoing Payments tabs, make sure the BACS Direct Debit payment method is enabled.\nIn the Incoming Payments and Outgoing Payments tabs, make sure the BACS Direct Debit payment method is enabled.\n- Configure the contacts for whom you wish to use Bacs files: Access the contact form and, in\nthe Accounting tab, click Add a line and fill in the Account Number and Bank fields.\nConfigure the contacts for whom you wish to use Bacs files: Access the contact form and, in\nthe Accounting tab, click Add a line and fill in the Account Number and Bank fields.\n\n### Bill payments\n\nTo generate Bacs files for bill payments, set the Payment Method to BACS Direct Debit when registering vendor payments .\nThen, create a vendor batch payment:\n- Go to Accounting ⣠Vendors ⣠Batch Payments , and click New .\nGo to Accounting ⣠Vendors ⣠Batch Payments , and click New .\n- Select the bank journal in the Bank field, set the Payment Method to BACS Direct Credit , and select a BACS Processing Date .\nSelect the bank journal in the Bank field, set the Payment Method to BACS Direct Credit , and select a BACS Processing Date .\n- Optionally, you can also: select a BACS Expiry Date ; enable BACS Multi Mode to process the payments on their individual date.\nOptionally, you can also:\n- select a BACS Expiry Date ;\nselect a BACS Expiry Date ;\n- enable BACS Multi Mode to process the payments on their individual date.\nenable BACS Multi Mode to process the payments on their individual date.\n- Click Add a line , select the payments you want to include, click Select ,\nthen Validate .\nClick Add a line , select the payments you want to include, click Select ,\nthen Validate .\nOnce validated, the Bacs file is available in the chatter. You can also Re-generate\nExport File if you need a new Bacs file for that batch payment.\n\n### Invoice payments\n\nBefore generating Bacs files for invoice payments, you must first create a BACS Direct Debit\nInstruction : Go to Accounting ⣠Customers ⣠BACS Direct Debit Instructions and click New . Select a Customer , their IBAN , and the Journal you wish to use.\nTo generate Bacs files for invoice payments, set the Payment Method to BACS Direct Debit when registering invoice payments .\nIf you register the payment for an invoice linked to a subscription or via Accounting ⣠Customers ⣠Payments , you can select the BACS\nPayment Type :\n- Direct debit-first collection of a series ;\nDirect debit-first collection of a series ;\n- Direct debit single collection ;\nDirect debit single collection ;\n- Direct debit repeating collection in a series ;\nDirect debit repeating collection in a series ;\n- Direct debit-final collection of a series .\nDirect debit-final collection of a series .\nThen, create a customer batch payment:\n- Go to Accounting ⣠Customers ⣠Batch Payments , and click New .\nGo to Accounting ⣠Customers ⣠Batch Payments , and click New .\n- Select the bank journal in the Bank field, set the Payment Method to BACS Direct Credit , and select a BACS Processing Date .\nSelect the bank journal in the Bank field, set the Payment Method to BACS Direct Credit , and select a BACS Processing Date .\n- Optionally, you can also: select a BACS Expiry Date ; enable BACS Multi Mode to process the payments on their individual date.\nOptionally, you can also:\n- select a BACS Expiry Date ;\nselect a BACS Expiry Date ;\n- enable BACS Multi Mode to process the payments on their individual date.\nenable BACS Multi Mode to process the payments on their individual date.\n- Click Add a line , select the payments you want to include, click Select ,\nthen Validate .\nClick Add a line , select the payments you want to include, click Select ,\nthen Validate .\nOnce validated, the Bacs file is available in the chatter. You can also Re-generate\nExport File if you need a new Bacs file for that batch payment.\n\n## Employment Hero payroll\n\nIf your business is already up and running with Employment Hero , you can use our connector as an\nalternative payroll solution.\nTo configure the Employment Hero API for United\nKingdom , use the following value as Payroll URL : https://api.yourpayroll.co.uk/ .\n`https://api.yourpayroll.co.uk/`\n\n## CIS deduction\n\nThe Construction Industry Scheme deduction (CIS deduction) is a tax deduction system used in the UK\ndesigned specifically for the construction industry. It requires contractors to deduct a percentage\nof payments made to subcontractors and forward these deductions to HM Revenue and Customs (HMRC).\nThese deductions apply only to the labor portion of the payments and serve as advance payments\ntowards the subcontractorâs tax and National Insurance contributions. Contractors are required to\nregister for the scheme, but subcontractors are not. However, subcontractors who are not registered\nface higher payment deductions. Under the CIS , contractors must deduct 20% from payments to\nregistered subcontractors, while the deduction increases to 30% for unregistered ones.\n- Construction Industry Scheme (CIS)\nConstruction Industry Scheme (CIS)\n- Guidelines for CIS contractors\nGuidelines for CIS contractors\n- Guidelines for CIS subcontractors\nGuidelines for CIS subcontractors\nAs a contractor, you are required to register with the CIS before hiring subcontractors and to\ncheck whether each subcontractor is registered with the CIS . You must also maintain records of all\npayments and deductions and submit monthly returns to HMRC, including the following details:\n- information about the subcontractors\ninformation about the subcontractors\n- records of payments made and any deductions applied\nrecords of payments made and any deductions applied\n- a declaration confirming that the employment status of all subcontractors has been reviewed\na declaration confirming that the employment status of all subcontractors has been reviewed\n- a declaration confirming that all subcontractors requiring verification have been verified\na declaration confirming that all subcontractors requiring verification have been verified\nIf no payments were made to subcontractors in the previous tax month, contractors must notify HMRC by the 19th of the month to avoid a penalty.\nTo submit Monthly Returns to HMRC , install the UK - Construction Industry Scheme module.\nTo enable the Test mode and use test credentials, open the Settings app, activate the developer mode and go to Settings ⣠Technical â£\nSystem Parameters . Search for l10n_uk_hmrc.api_mode , select it, and change the Value from production to test .\n`l10n_uk_hmrc.api_mode`\n`production`\n`test`\n\n### Monthly returns\n\nMonthly returns only work for vendor bills and vendor refunds. To submit a complete return to HMRC , several steps must be followed to report all payments made to subcontractors under the\nscheme during the previous tax month:\n- Contractor (company) setup\nContractor (company) setup\n- Subcontractor setup\n- Vendor bills\n- Monthly returns sending\nMonthly returns sending\n\n#### Contractor (company) setup\n\nTo configure your companyâs HMRC information, go to the Settings app and, in the Companies section, click Update Info . Open the HMRC tab and\nconfigure the information in the HMRC Credentials and the Contractor details sections. All fields are mandatory.\n\n#### Subcontractor setup\n\nAccess the subcontractorâs contact form and select the Accounting tab. In the HMRC Details section, enable the Construction Industry Scheme option; the CIS -related fields are displayed.\nBy default, the Deduction rate is set to 30%. To modify it, first enter the Verification Number provided by HMRC when verifying the subcontractorâs status, then\nupdate the Deduction Rate accordingly.\nThe Forename and Surname fields are mandatory if the contact type is set\nto Individual .\n\n#### Vendor bills\n\nThe appropriate CIS tax must be applied to labor items on vendor bills based on the\nsubcontractorâs Deduction Rate : 0% CIS , 20% CIS or 30% CIS . To apply the rate, go to the Invoice Lines section of the vendor\nbill and select the appropriate CIS tax rate in the Taxes column of the labor items.\n- The CIS tax rate is not necessary for material items on vendor bills.\nThe CIS tax rate is not necessary for material items on vendor bills.\n- A yellow banner appears at the top of the page if: The Construction Industry Scheme option hasnât been enabled in the subcontractor âs Contact form when creating a vendor bill. The CIS tax used in the vendor bill does not match the expected CIS deduction rate for a subcontractor .\nA yellow banner appears at the top of the page if:\n- The Construction Industry Scheme option hasnât been enabled in the subcontractor âs Contact form when creating a vendor bill.\nThe Construction Industry Scheme option hasnât been enabled in the subcontractor âs Contact form when creating a vendor bill.\n- The CIS tax used in the vendor bill does not match the expected CIS deduction rate for a subcontractor .\nThe CIS tax used in the vendor bill does not match the expected CIS deduction rate for a subcontractor .\n\n#### Monthly returns sending\n\nOn the 6th of each month, Odoo sends a reminder email to submit a monthly return to HMRC . The\nrecipient email address is the one entered in the company Email field. To send monthly\nreturns to HMRC , go to Accounting ⣠Reporting ⣠Tax Return and follow these\nsteps:\n- Click Report: and select CIS Deduction (GB) .\nClick Report: and select CIS Deduction (GB) .\n- In the (calendar) date selector, the Tax Period is\nautomatically adjusted to match the CIS deduction period.\nIn the (calendar) date selector, the Tax Period is\nautomatically adjusted to match the CIS deduction period.\n- Click on Send to HMRC in the top-left corner.\nClick on Send to HMRC in the top-left corner.\n- In the CIS monthly return window, select the required options in the Declaration section: Employment Status : To declare that the employment status of all subcontractors has\nbeen reviewed. Subcontractor Verification : To declare that all submitted subcontractors requiring\nverification have been verified. Inactivity Indicator : To declare temporary inactivity.\nIn the CIS monthly return window, select the required options in the Declaration section:\n- Employment Status : To declare that the employment status of all subcontractors has\nbeen reviewed.\nEmployment Status : To declare that the employment status of all subcontractors has\nbeen reviewed.\n- Subcontractor Verification : To declare that all submitted subcontractors requiring\nverification have been verified.\nSubcontractor Verification : To declare that all submitted subcontractors requiring\nverification have been verified.\n- Inactivity Indicator : To declare temporary inactivity.\nInactivity Indicator : To declare temporary inactivity.\n- In the Information correct declaration section, confirm the information is true and\ncomplete by checking the box. Then, enter the Password used in the HMRC Credentials section during contractor setup .\nIn the Information correct declaration section, confirm the information is true and\ncomplete by checking the box. Then, enter the Password used in the HMRC Credentials section during contractor setup .\n- Click Send to prompt Odoo to request HMRC to initiate the transaction.\nClick Send to prompt Odoo to request HMRC to initiate the transaction.\nWhen HMRC replies to a transaction, Odoo automatically notifies the user who submitted it by\nemail. The email informs them that the response is available in the companyâs chatter with an\nattached XML document for download. Both the electronic and paper versions of the HMRC receipt\nshould be retained. If an error is detected, a new submission is required to comply with HMRC requirements.\n- Transactions are updated daily. To manually update the HMRC request, click the (gear) icon and select Refresh HMRC request .\nTransactions are updated daily. To manually update the HMRC request, click the (gear) icon and select Refresh HMRC request .\n- CIS invoices are included in the CIS Deduction (GB) report but are not sent to HMRC .\nCIS invoices are included in the CIS Deduction (GB) report but are not sent to HMRC .", "headings": ["Configuration", "Chart of accounts", "Taxes", "Making Tax Digital (MTD)", "Bacs files", "Bill payments", "Invoice payments", "Employment Hero payroll", "CIS deduction", "Monthly returns"], "doc_id": "588cc3c961eb0450"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/united_states.html", "title": "United States", "module": "invoicing", "section": "United States", "text": "# United States\n\nThe Odoo fiscal localization package for the United States follows the Generally Acceptable\nAccounting Principles (GAAP) accounting standards and rules used to prepare financial statements,\nas outlined by the Financial Accounting Standards Board (FASB) and adopted by the Securities and\nExchange Commission (SEC).\n- Financial Accounting Standards Board (FASB)\nFinancial Accounting Standards Board (FASB)\n- Securities and Exchange Commission (SEC)\nSecurities and Exchange Commission (SEC)\nIn addition, a series of videos on the subject of Accounting are available through Odooâs eLearning\nplatform. These videos cover how to start from scratch, set up configurations, complete common\nworkflows, and provide in-depth looks at some specific use cases, as well.\n- Odoo Tutorials: Accounting & Invoicing\nOdoo Tutorials: Accounting & Invoicing\n- Odoo SmartClass: Accounting\nOdoo SmartClass: Accounting\n\n## Configuration\n\nBelow are the available modules in Odoo for accounting use in the United States.\nThe modules listed below are either for reference only or are optional, as the core requirements\nto operate under the US fiscal localization in Odoo are already included under the default\npackage that came installed during database initialization.\nVerify the default package is in use by navigating to Accounting App â£\nSettings and under the Fiscal Localization section at the top, look for the Generic Chart Template selection to be listed next to the Package field label. This chart\ntemplate includes the necessary settings for the US localization for the Odoo Accounting app.\n`GenericChartTemplate`\n\n### Modules installation\n\nInstall the following modules to get all the features of the United States\nlocalization:\nUnited States - Accounting\n`l10n_us`\nBase accounting module for United States localization.\nUS - Accounting Reports\n`l10n_us_reports`\nAdds United States accounting reports.\nl10n_us_check_printing\n`l10n_us_check_printing`\nEnables the printing of payments on pre-printed check paper. Supports the three most common\ncheck formats and will work out of the box with the linked checks from checkdepot.net .\n- Check on top: Quicken / QuickBooks standard\nCheck on top: Quicken / QuickBooks standard\n- Check on middle: Peachtree standard\nCheck on middle: Peachtree standard\n- Check on bottom: ADP standard\nCheck on bottom: ADP standard\nl10n_us_payment_nacha\n`l10n_us_payment_nacha`\nExport payments as NACHA files for use in the United States.\n`l10n_us_1099`\nExport 1099 data for e-filing with a 3rd party.\n`account_avatax`\nModule for the AvaTax integration with Odoo.\nUnited States - Payroll\n`l10n_us_hr_payroll`\nIncludes the necessary rules for United States payroll, including:\n- Employee Details\n- Employee Contracts\n- Passport-based Contracts\nPassport-based Contracts\n- Allowances/Deductions\nAllowances/Deductions\n- Allow Configurations for Basic/Gross/Net Salary\nAllow Configurations for Basic/Gross/Net Salary\n- Employee Payslip\n- Integration with Leaves Management\nIntegration with Leaves Management\nUnited States - Payroll with Accounting\nl10n_us_hr_payroll_account\n`l10n_us_hr_payroll_account`\nContains the necessary accounting data for the United States payroll rules.\nUnited States - Payroll - Export to ADP\nl10n_us_hr_payroll_adp\n`l10n_us_hr_payroll_adp`\nExport Work Entries to the ADP payroll software.\n\n## Chart of accounts\n\nThe chart of accounts (COA) for the United\nStates localization, in Odoo, follows the standard GAAP structure, with accounts grouped into\nseven main categories, with corresponding numeric values that prefix individual journal entries:\n- Receivable : the balance of money (or credit) due to the business for goods or services\ndelivered or used, but not yet paid for by customers. AR is indicated by the journal code\nlabeled (or beginning) with 1 .\nReceivable : the balance of money (or credit) due to the business for goods or services\ndelivered or used, but not yet paid for by customers. AR is indicated by the journal code\nlabeled (or beginning) with 1 .\n- Payable : the businessâs short-term obligations owed to its creditors or suppliers, which have\nnot yet been paid. AP is indicated by the journal code labeled (or beginning) with 2 .\nPayable : the businessâs short-term obligations owed to its creditors or suppliers, which have\nnot yet been paid. AP is indicated by the journal code labeled (or beginning) with 2 .\n- Equity : the amount of money that would be returned to a companyâs shareholders if all of the\nassets were liquidated and all of the companyâs debt was paid off in the case of liquidation.\nEquity is indicated by the journal code labeled (or beginning) with 3 or 9 .\nEquity : the amount of money that would be returned to a companyâs shareholders if all of the\nassets were liquidated and all of the companyâs debt was paid off in the case of liquidation.\nEquity is indicated by the journal code labeled (or beginning) with 3 or 9 .\n- Assets : items listed on the balance sheet that contains economic value or have the ability to\ngenerate cash flows in the future, such as a piece of machinery, a financial security, or a\npatent. Assets are indicated by the journal code labeled (or beginning) with 1 .\nAssets : items listed on the balance sheet that contains economic value or have the ability to\ngenerate cash flows in the future, such as a piece of machinery, a financial security, or a\npatent. Assets are indicated by the journal code labeled (or beginning) with 1 .\n- Liability : refers to a companyâs financial debts or obligations that arise during the course\nof business operations. Liabilities are indicated by the journal code labeled (or beginning) with 2 .\nLiability : refers to a companyâs financial debts or obligations that arise during the course\nof business operations. Liabilities are indicated by the journal code labeled (or beginning) with 2 .\n- Income : synonymous with net income , this is the profit a company retains after paying off\nall relevant expenses from sales revenue earned. Income is indicated by the journal code labeled\n(or beginning) with 4 or 6 .\nIncome : synonymous with net income , this is the profit a company retains after paying off\nall relevant expenses from sales revenue earned. Income is indicated by the journal code labeled\n(or beginning) with 4 or 6 .\n- Expenses : the cost of operations that a company incurs to generate revenue. Expenses are\nindicated by the journal code labeled (or beginning) with a 6 .\nExpenses : the cost of operations that a company incurs to generate revenue. Expenses are\nindicated by the journal code labeled (or beginning) with a 6 .\nPredefined accounts are included in Odoo, as part of the CoA thatâs installed with the US\nlocalization package. The accounts listed below are preconfigured to perform certain operations\nwithin Odoo. It is recommended to not delete these accounts; however, if changes are needed,\nrename the accounts instead.\nCurrent Year Earnings\nUndistributed Profits/Losses\n- Chart of accounts\n- Accounting cheat sheet\nAccounting cheat sheet\n\n### View, edit, and sort accounts\n\nAccess the Chart of Accounts dashboard in Odoo by navigating to Accounting app\n⣠Configuration ⣠Accounting: Chart of Accounts .\nFrom the Chart of Accounts dashboard, create new accounts by clicking the New button in the top-left corner of the dashboard and filling in the\ncorresponding form . Search and sort through existing accounts by using\nspecific Filters and Group By criteria, which are available in the search\ndrop-down menu.\nTo filter accounts by category, click the (caret down) icon to\naccess the drop-down menu and look under the Filters column for individual selections.\nClicking on a specific category will only show accounts that match that particular filter.\nTo view all the available account types, remove all of the filters in the search bar, and then click\nthe (caret down) icon to access the drop-down menu. From there,\nselect Account Type under the Group By column heading to list all of the\naccount types in the table.\nBesides structure, there are other key differences in the chart of accounts in the United States,\ncompared to other countries:\n- Specificity : US GAAP often requires more detailed accounts compared to some other countries.\nThis can include separate accounts for various types of revenue, expenses, and assets, providing\nmore granular information in financial reports.\nSpecificity : US GAAP often requires more detailed accounts compared to some other countries.\nThis can include separate accounts for various types of revenue, expenses, and assets, providing\nmore granular information in financial reports.\n- Regulatory Requirements : In the United States, there are specific regulatory requirements set\nby bodies such as the SEC for publicly traded companies. These requirements may influence the\nstructure and content of the CoA to ensure compliance with reporting standards.\nRegulatory Requirements : In the United States, there are specific regulatory requirements set\nby bodies such as the SEC for publicly traded companies. These requirements may influence the\nstructure and content of the CoA to ensure compliance with reporting standards.\n- Industry Practices : Certain industries in the United States may have unique accounting\nrequirements or specialized CoA structures. For example, financial institutions often have\nspecific accounts related to loans, investments, and interest income.\nIndustry Practices : Certain industries in the United States may have unique accounting\nrequirements or specialized CoA structures. For example, financial institutions often have\nspecific accounts related to loans, investments, and interest income.\n- Tax Considerations : The CoA may also reflect tax considerations, such as accounts for\ndeductible expenses, deferred tax assets, and liabilities, to ensure compliance with tax laws and\nfacilitate tax reporting.\nTax Considerations : The CoA may also reflect tax considerations, such as accounts for\ndeductible expenses, deferred tax assets, and liabilities, to ensure compliance with tax laws and\nfacilitate tax reporting.\nThese differences, ultimately, should be reflected in the CoA structure itself, with the addition\nof new accounts, as needed, in order to meet the demands of US accounting reporting requirements.\n- Create a new account\n- Search, filter, and group records\nSearch, filter, and group records\n\n## Taxes\n\nIn the United States, tax rates and what is considered taxable vary by jurisdiction. Default Sales and Purchase taxes are created automatically when the Odoo Accounting application is installed.\nTo manage existing or configure additional taxes, navigate to Accounting â£\nConfiguration ⣠Taxes .\n\n### AvaTax\n\nAvalara AvaTax is a cloud-based tax calculation and compliance software that integrates with\nOdoo for several localizations. Integrating AvaTax with Odoo provides real-time and region-specific\ntax calculations when items are sold, purchased, and invoiced in the database.\nAvaTax is available for integration with databases/companies that have locations in the United\nStates and Canada. Reference the Fiscal country documentation for more\ninformation.\nRefer to the documentation articles below to integrate and configure an AvaTax account with an\nOdoo database:\n- AvaTax integration\n- Avalara management portal\nAvalara management portal\n- Calculate taxes with AvaTax\nCalculate taxes with AvaTax\n- US Tax Compliance: AvaTax elearning video\nUS Tax Compliance: AvaTax elearning video\n- Avalaraâs support documents: About AvaTax\nAvalaraâs support documents: About AvaTax\n\n## Reports\n\nA number of report selections are readily available for the US\nlocalization, under the Accounting app ⣠Reporting drop-down menu:\n- Balance Sheet : a âsnapshotâ of a companyâs financial\nposition at a specific point in time, which contains an overview of a companyâs assets,\nliabilities, and equity.\nBalance Sheet : a âsnapshotâ of a companyâs financial\nposition at a specific point in time, which contains an overview of a companyâs assets,\nliabilities, and equity.\n- Profit & Loss : otherwise known as a P&L statement or income statement , provides a summary of a companyâs revenues, expenses, and profits/losses over\na given period of time.\nProfit & Loss : otherwise known as a P&L statement or income statement , provides a summary of a companyâs revenues, expenses, and profits/losses over\na given period of time.\n- Cash Flow Statement : shows how much cash and cash equivalents\na company has received and spent in a given period.\nCash Flow Statement : shows how much cash and cash equivalents\na company has received and spent in a given period.\n- Executive Summary : an overview report that covers\nthe key performance indicators of a companyâs financial position, such as revenue, profit, and\ndebt.\nExecutive Summary : an overview report that covers\nthe key performance indicators of a companyâs financial position, such as revenue, profit, and\ndebt.\n- Tax Report : an official form filed for a tax authority\nthat reports income, expenses, and other pertinent tax information. Tax reports allow taxpayers to\ncalculate their tax liability, schedule tax payments, or request refunds for the overpayment of\ntaxes. In Odoo, the tax report can be made monthly, every two months, quarterly, every 4 months,\nsemi-annually, and annually.\nTax Report : an official form filed for a tax authority\nthat reports income, expenses, and other pertinent tax information. Tax reports allow taxpayers to\ncalculate their tax liability, schedule tax payments, or request refunds for the overpayment of\ntaxes. In Odoo, the tax report can be made monthly, every two months, quarterly, every 4 months,\nsemi-annually, and annually.\n- Check Register : a report that displays cash transactions (regardless of the journal)\nwith their running balance after the transaction. Only visible with the US - Accounting Reports ( l10n_us_reports ) module installed.\nCheck Register : a report that displays cash transactions (regardless of the journal)\nwith their running balance after the transaction. Only visible with the US - Accounting Reports ( l10n_us_reports ) module installed.\n`l10n_us_reports`\n- 1099 Report : a CSV download of payments made to non-employees in a\nperiod to file electronically in a third-party service. Only visible with the 1099 Reporting ( l10n_us_1099 ) module installed.\n1099 Report : a CSV download of payments made to non-employees in a\nperiod to file electronically in a third-party service. Only visible with the 1099 Reporting ( l10n_us_1099 ) module installed.\n`l10n_us_1099`\nDepending on the type of report, certain filters are available at the top of the dashboard:\n- a date filter, indicated by a (calendar) icon that precedes a\ndate in MM/DD/YYYY format. Use this to select a specific date or date range for the report.\na date filter, indicated by a (calendar) icon that precedes a\ndate in MM/DD/YYYY format. Use this to select a specific date or date range for the report.\n- a Comparison filter, to compare reporting periods against each\nother\na Comparison filter, to compare reporting periods against each\nother\n- a journal filter, as indicated by a (book) icon and the default\nsetting of All Journals . Use this filter to specify which journals should be included\nin the report.\na journal filter, as indicated by a (book) icon and the default\nsetting of All Journals . Use this filter to specify which journals should be included\nin the report.\n- an entries type filter, as indicated by a (filter) icon, with the\ndefault setting of Posted Entries Only, Accrual Basis . Use this filter to determine\nwhich type of journal entries should be included in the report (e.g. posted or draft), along with\nthe type of accounting method (e.g. accrual or cash basis). There are view options in this filter, as well, one that will Hide lines at 0 for\nmore relevant viewing, along with a Split Horizontally option to keep the report\nabove the screenâs fold, removing the need to scroll.\nan entries type filter, as indicated by a (filter) icon, with the\ndefault setting of Posted Entries Only, Accrual Basis . Use this filter to determine\nwhich type of journal entries should be included in the report (e.g. posted or draft), along with\nthe type of accounting method (e.g. accrual or cash basis).\n- There are view options in this filter, as well, one that will Hide lines at 0 for\nmore relevant viewing, along with a Split Horizontally option to keep the report\nabove the screenâs fold, removing the need to scroll.\nThere are view options in this filter, as well, one that will Hide lines at 0 for\nmore relevant viewing, along with a Split Horizontally option to keep the report\nabove the screenâs fold, removing the need to scroll.\n- a decimal filter, that by default, includes figures with cents, as indicated by the In .$ setting. Use the other options in the drop-down menu to change figures in the\nreport to whole numbers ( In $ ), thousands ( In K$ ), or millions\n( In M$ ) formats.\na decimal filter, that by default, includes figures with cents, as indicated by the In .$ setting. Use the other options in the drop-down menu to change figures in the\nreport to whole numbers ( In $ ), thousands ( In K$ ), or millions\n( In M$ ) formats.\n- a report customization filter, indicated by the (gears) icon. Use\nthis filter to customize the current reportâs sections and line items, or build new reports, as\ndesired.\na report customization filter, indicated by the (gears) icon. Use\nthis filter to customize the current reportâs sections and line items, or build new reports, as\ndesired.\n- Accounting reporting\n- Search, filter, and group records\nSearch, filter, and group records\n\n### 1099 report\n\nThe 1099 report, available by installing the 1099 Reporting ( l10n_us_1099 ) module, includes payments that are made to non-employees across a given reporting\nperiod. Use the available CSV download from the report in Odoo to file 1099 payments electronically\nvia a third-party service.\n`l10n_us_1099`\nTo generate a 1099 report, navigate to Accounting app ⣠Reporting ⣠Management:\n1099 Report to open a 1099 Report wizard.\nFirst, enter the date range of the transactions to report in the Start Date and End Date fields.\nThen, edit the journal items that appear on the wizard. Click Add a line to add any\nitems that are missing. Be sure to remove any items that should not be included in the report by\nclicking (delete) on the row.\nFinally, once all necessary items are included in the 1099 report, click on the Generate button. Doing so downloads a CSV file that groups transactions by the partner that received the\npayments.\n\n### Cash flow statement\n\nNavigate to the Cash Flow Statement (CFS) dashboard by going to Accounting app â£\nReporting ⣠Statement Reports: Cash Flow Statement . From here, CFS reports can be generated\nusing the various filters that are available at the top of the\ndashboard.\nOdoo uses the direct cash flow method to compile cash flow statements, which measures actual cash\ninflows and outflows from the companyâs operations, such as when cash is received from customers or\nwhen cash payments are made to suppliers.\nBy default, an account labeled with any of the three default Tags on the Chart of Accounts dashboard will be included in the report, which includes: Operating Activities , Financing Activities , and Investing &\nExtraordinary Activities .\nAdditionally, the cash flow statement in Odoo:\n- is limited to the Bank and Cash journals to reflect money coming in or out; and\nis limited to the Bank and Cash journals to reflect money coming in or out; and\n- also contains Expenses accounts, to show the counterpart transactions versus Bank or Cash journal entries, while excluding AR and AP activity.\nalso contains Expenses accounts, to show the counterpart transactions versus Bank or Cash journal entries, while excluding AR and AP activity.\nCreate a vendor bill for $100, as an operating expense (not AP ). Doing so will not reflect\na transaction on the cash flow statement. However, register a corresponding payment for $100,\nand the transaction will reflect on the cash flow statement as Cash paid for\noperating activities .\n\n## Cash discount\n\nCash discounts can be configured from Accounting app ⣠Payment Terms . Each\npayment term can be set up with a cash discount and reduced tax.\nCash discounts and tax reduction\n\n## Writing checks\n\nUsing checks is still a common payment practice in the US. Be sure the US Checks Layout ( l10n_us_check_printing ) module for the US localization is installed .\n`l10n_us_check_printing`\nTo enable check printing from Odoo, navigate to Accounting ⣠Configuration â£\nSettings and find the Vendor Payments section. From here, tick the Checks checkbox to reveal several fields for check configuration.\nSelect a pre-printed or blank Check Layout from the drop-down menu:\n- Print Check (Top) - US\nPrint Check (Top) - US\n- Print Check (Middle) - US\nPrint Check (Middle) - US\n- Print Check (Bottom) - US\nPrint Check (Bottom) - US\n- Print Blank Check (Top) - US\nPrint Blank Check (Top) - US\n- Print Blank Check (Middle) - US\nPrint Blank Check (Middle) - US\n- Print Blank Check (Bottom) - US\nPrint Blank Check (Bottom) - US\nNext, choose whether or not to enable the Multi-Pages Check Stub checkbox.\nOptionally set a Check Top Margin and Check Left Margin , if required.\nOnce all check configurations are complete, Save the settings.\nPre-printed check formats (non-blank checks) require pre-printed paper from a third-party vendor. Pre-printed checks from checkdepot.net are\nrecommended.\nUse one of the blank check formats to print the information of the check ad-hoc when needed. This\nrequires the use of both MICR ink or toner complying\nwith the standards for check printing, as well as check quality paper .\nOther information, such as the company name, bank account, and check number, is printed when\ncreating the blank check.\n\n## Payroll\n\nThe Payroll application is responsible for calculating an employeeâs pay, taking into account all\nwork, vacation, and sick time, benefits, and deductions. The Payroll app pulls information from\nthe Attendances , Timesheets , Time Off , Employees and Expenses applications, to calculate\nthe worked hours and compensation for each employee.\nWhen using an external payroll provider, such as ADP , it is necessary to export the various\npayroll-related data, such as work entries, repayment of expenses, taxes, commissions, and any other\nrelevant data, so the data can be uploaded into the payroll provider, who then issues the actual\npaychecks or directly deposits the funds into an employeeâs bank account.\nIn order to export the payroll data, the work entries must first be validated and correct. Refer to\nthe work entries documentation for more information\nregarding validating work entries.\nOnce work entries are validated, the information can be exported to ADP .\nAfter payments have been issued to employees, payslips can be processed into batches, validated, and\nposted to the corresponding accounting journals to keep all financial records in Odoo current.\n\n### Required information\n\nIt is important to have the Employees application installed, and all employee information\npopulated. Several fields in both the employee records , as\nwell as in an employee contracts , are necessary to\nproperly process the employeeâs pay. Ensure the following fields are filled out in their respective\nplaces.\n\n#### Employee records\n\nIn each employee record, there is various information the Payroll application requires to properly\nprocess payslips, including various banking, tax, and work information.\nNavigate to the Employees app and select an employee record to view the sections of\nthe employee form that directly affect Payroll :\n- Work Information tab: Work Address : indicates where the employee is located, including the state, which\naffects the tax calculations. Working Hours : determines how pay is calculated, and determines if an employee earns\novertime.\nWork Information tab:\n- Work Address : indicates where the employee is located, including the state, which\naffects the tax calculations.\nWork Address : indicates where the employee is located, including the state, which\naffects the tax calculations.\n- Working Hours : determines how pay is calculated, and determines if an employee earns\novertime.\nWorking Hours : determines how pay is calculated, and determines if an employee earns\novertime.\n- Private Information tab: SSN No : the last four digits of the employeeâs Social Security Number (SSN) appears\non payslips. Bank Account Number : the bank account associated with the NACHA payment file.\nPrivate Information tab:\n- SSN No : the last four digits of the employeeâs Social Security Number (SSN) appears\non payslips.\nSSN No : the last four digits of the employeeâs Social Security Number (SSN) appears\non payslips.\n- Bank Account Number : the bank account associated with the NACHA payment file.\nBank Account Number : the bank account associated with the NACHA payment file.\n- HR Settings tab: Federal Tax Filing Status : the tax status an employee uses for Payroll tax\ncalculations, which can be different from their state status. State Tax Filing Status : the tax status an employee uses for their state portion of\nthe Payroll tax calculation. W-2 Form : a US tax form indicating the summary of wages, taxes, and benefits paid to\nan employee during a tax period (typically one year). W-4 Form : an IRS form that helps outline the amount of federal taxes to withhold for\nan employee, which is paid to the IRS by the company.\n- Federal Tax Filing Status : the tax status an employee uses for Payroll tax\ncalculations, which can be different from their state status.\nFederal Tax Filing Status : the tax status an employee uses for Payroll tax\ncalculations, which can be different from their state status.\n- State Tax Filing Status : the tax status an employee uses for their state portion of\nthe Payroll tax calculation.\nState Tax Filing Status : the tax status an employee uses for their state portion of\nthe Payroll tax calculation.\n- W-2 Form : a US tax form indicating the summary of wages, taxes, and benefits paid to\nan employee during a tax period (typically one year).\nW-2 Form : a US tax form indicating the summary of wages, taxes, and benefits paid to\nan employee during a tax period (typically one year).\n- W-4 Form : an IRS form that helps outline the amount of federal taxes to withhold for\nan employee, which is paid to the IRS by the company.\nW-4 Form : an IRS form that helps outline the amount of federal taxes to withhold for\nan employee, which is paid to the IRS by the company.\n\n#### Employee contracts\n\nAdditionally, there is information that is found in an employee contract that also affects the Payroll application.\nNavigate to the Employees app ⣠Employees ⣠Contracts and select a contract\nrecord to view the sections of a contract that directly affect Payroll :\n- General Information : Salary Structure Type: United States: Employee : defines when the employee is paid,\ntheir working schedule, and the work entry type. Work Entry source : determines how work entries are calculated.\nGeneral Information :\n- Salary Structure Type: United States: Employee : defines when the employee is paid,\ntheir working schedule, and the work entry type.\nSalary Structure Type: United States: Employee : defines when the employee is paid,\ntheir working schedule, and the work entry type.\n- Work Entry source : determines how work entries are calculated.\nWork Entry source : determines how work entries are calculated.\n- Salary Information tab: SSN No : the last four digits of the employeeâs Social Security Number (SSN) appears\non payslips. Wage type : determines how the employee is paid, wether a Fixed wage (salary) or\nHourly wage. Schedule Pay : defines how often the employee is paid, either Annually , Semi-annually , Quarterly , Bi-monthly , Monthly , Semi-monthly , Bi-weekly , Weekly , or Daily . In\nthe US, Semi-monthly (24 payments a year) or bi-weekly (26 payments a year) are the most common. Wage, Yearly, and Monthly cost : used to show the total cost of an employee. It is\nrecommended to populate the Yearly wage first, as it auto-populates the other\nfields. Pre-tax benefits : populate this section according to the employeeâs selections.\nPre-tax benefits decrease the gross wage, which lowers the base amount that is taxed. These are\ndisplayed at the beginning of the payslip. Post-tax benefits : these benefits are deductions made after taxes are calculated.\nThese appear towards the end of the payslip before the net amount is displayed.\nSalary Information tab:\n- SSN No : the last four digits of the employeeâs Social Security Number (SSN) appears\non payslips.\nSSN No : the last four digits of the employeeâs Social Security Number (SSN) appears\non payslips.\n- Wage type : determines how the employee is paid, wether a Fixed wage (salary) or\nHourly wage.\nWage type : determines how the employee is paid, wether a Fixed wage (salary) or\nHourly wage.\n- Schedule Pay : defines how often the employee is paid, either Annually , Semi-annually , Quarterly , Bi-monthly , Monthly , Semi-monthly , Bi-weekly , Weekly , or Daily . In\nthe US, Semi-monthly (24 payments a year) or bi-weekly (26 payments a year) are the most common.\nSchedule Pay : defines how often the employee is paid, either Annually , Semi-annually , Quarterly , Bi-monthly , Monthly , Semi-monthly , Bi-weekly , Weekly , or Daily . In\nthe US, Semi-monthly (24 payments a year) or bi-weekly (26 payments a year) are the most common.\n- Wage, Yearly, and Monthly cost : used to show the total cost of an employee. It is\nrecommended to populate the Yearly wage first, as it auto-populates the other\nfields.\nWage, Yearly, and Monthly cost : used to show the total cost of an employee. It is\nrecommended to populate the Yearly wage first, as it auto-populates the other\nfields.\n- Pre-tax benefits : populate this section according to the employeeâs selections.\nPre-tax benefits decrease the gross wage, which lowers the base amount that is taxed. These are\ndisplayed at the beginning of the payslip.\nPre-tax benefits : populate this section according to the employeeâs selections.\nPre-tax benefits decrease the gross wage, which lowers the base amount that is taxed. These are\ndisplayed at the beginning of the payslip.\n- Post-tax benefits : these benefits are deductions made after taxes are calculated.\nThese appear towards the end of the payslip before the net amount is displayed.\nPost-tax benefits : these benefits are deductions made after taxes are calculated.\nThese appear towards the end of the payslip before the net amount is displayed.\nEmployees documentation\n\n### Export work entries to ADP\n\n#### Requirements\n\nIn order to create a report that can be uploaded to ADP, there are some initial configuration steps\nthat must be completed first.\nFirst, ensure the United States - Payroll - Export to ADP ( l10n_us_hr_payroll_adp ) module is installed .\n`l10n_us_hr_payroll_adp`\nThen, the company must have an ADP Code entered in the company settings. To do so, navigate\nto Payroll app ⣠Configuration ⣠Settings . Enter the ADP Code in\nthe US Localization section.\nNext, work entry types must have the correct ADP code listed in the External Code field for\neach work entry type that is being referenced.\nLastly, every employee must have an ADP Code entered on their employee form. To do so,\nnavigate to Employees app , select an employee record, and open the HR\nSettings tab. Enter the ADP Code in the ADP Information section.\nThe ADP Code code is how ADP identifies that particular employee, and is typically a\nsix-digit number.\n- Add a new work entry\n- New employees\n\n#### Export data\n\nOnce work entries have been verified, the information can be\nexported to a CSV file, which can then be uploaded into ADP.\nTo export the data, navigate to Payroll app ⣠Reporting ⣠United States: ADP\nExport , then click New . Next, enter the Start Date and End Date for the work entries using the calendar pop-over.\nThen, enter a Batch ID in the corresponding field. The recommendation for this field is\nto enter the date in a YY-MM-DD format, followed by any other characters to distinguish that\nspecific batch, such as a department name, or any other defining characteristics for the batch.\n`YY-MM-DD`\nEnter a Batch Description in the corresponding field. This should be short and\ndescriptive, but distinct from the Batch Name .\nEnsure the correct company populates the Company field. Change the selected company with\nthe drop-down menu, if needed.\nLastly, add the employeeâs work entry information to the list. Click Add a line and an Add: Employee pop-up window loads. The list can be filtered to more easily find the employees to add to the list.\nProcess the data export in multiple groups instead of in one large group that contains all\nemployees. This helps to meaningfully differentiate the batches and makes processing more\ntenable, overall. The most common ways to group employees is by department, or by wage type\n(hourly or salaried).\nSelect the employees to add to the list by ticking the box to the left of their name. Once all\ndesired employees have been selected, click the Select button in the lower-left corner,\nand the employees appear in the list.\nTo create the CSV file, click the Generate button in the top-left corner.\n\n## ACH - electronic transfers\n\nAutomated Clearing House (ACH) payments are a modern way to transfer funds electronically between\nbank accounts, replacing traditional paper-based methods. ACH payments are commonly used for\ndirect deposits, bill payments, and business transactions.\n\n### Receive ACH payments: payment provider integration\n\nACH payments are supported by Authorize.net and Stripe payment integrations in Odoo.\n- Setting up Authorize.net for ACH payments (Odoo)\nSetting up Authorize.net for ACH payments (Odoo)\n- Authorize.netâs ACH payment processing for small businesses documentation\nAuthorize.netâs ACH payment processing for small businesses documentation\n- Setting up Stripe for ACH payments (Odoo)\nSetting up Stripe for ACH payments (Odoo)\n- Stripeâs ACH Direct Debit documentation\nStripeâs ACH Direct Debit documentation\n\n### Send payments: NACHA files\n\nOdoo can generate a National Automated Clearing House Association (NACHA) compatible ACH file to\nsend to a companyâs bank. For each individual Bank journal that the company wishes to pay vendors\nwith, a NACHA configuration section needs to be filled out on the Odoo database.\n\n#### Configuration\n\nFirst, navigate to the Accounting app ⣠Configuration ⣠Journals . Open the\nbank journal and click into the Outgoing Payments tab.\nThe following NACHA configuration information is normally provided by the companyâs financial\ninstitution once they have been approved to send payments via their account.\nUnder the section labeled, NACHA configuration are the fields required to generate a NACHA compatible ACH file to send to a companyâs bank. First, enter the routing number of the\nfinancial institution in the field labeled, Immediate Destination . This information is\nwidely available on the Internet and generally varies by bank location. This number is usually\nprovided during the initial account setup.\nNext, enter the registered name of the financial institution in the field called, Destination . This information will be provided by the bank or credit union.\nFollowing the Destination field is the Immediate Origin field. Enter the\n9-digit company ID or Employer Identification Number (EIN) into this field. This information is\nprovided by the financial institution.\nNext, enter the Company Identification number, which is a 10-digit number made from\ncombining the 9-digit company ID or Employer Identification Number (EIN), along with an additional\nnumber at the start of the sequence. This number is often a 1 . Check with the financial\ninstitution should this first number differ to verify that it is correct, as this number is provided\nfor ACH approved accounts.\n`1`\nEnter the Originating DFI Identification number next, which should contain an assigned\n8-digit number from the financial institution.\nEnter the numerical values in this section exactly as the companyâs financial institution\n(e.g. bank or credit union) has provided them, otherwise risk failing a successful NACHA configuration in Odoo.\nThere are two options for the next field: Standard Entry Class Code . Select the\ndrop-down menu to the right of the field and pick either Corporate Credit or Debit (CCD) or Prearranged Payment and Deposit (PPD) . Again, this information will be provided by\nthe financial institution. By default Corporate Credit or Debit (CCD) is selected.\nFinally, the last option is for Generated Balanced Files . Tick the checkbox to the right\nof the field to enable Generated Balanced Files . Consult the companyâs accountant or\nfinancial advisor to make an informed decision for this field.\nManually save the configuration by clicking the (cloud upload) icon, or navigate away from this screen to auto-save. The configuration is now complete.\n\n#### Create batch payment\n\nNow, record each payment in Odoo using the NACHA payment method.\nRegister Payments in Odoo\nBe aware of the cut-off time for same-day payments. Either the file needs to have a future date\nassociated with each payment or the file needs to be sent prior to the cut-off, if the dates\nincluded in it match todayâs date. Consult the financial institution for the exact cut-off time\nfor their processing of same-day payments.\nOnce all the payments to be included in the NACHA ACH file have been made, a batch payment needs\nto be made from the Action menu.\nTo create the batch payments, access the payments page, by navigating to Accounting\n⣠Vendors ⣠Payments . Select all the payments that should be included in the NACHA ACH file, by ticking the checkboxes to the far-left of the rows.\nAll payments in the batch must share the same NACHA payment method.\nNext, navigate to the batched payment ( Accounting ⣠Vendors ⣠Batch Payments ).\nClick into the payment just created and then click into the Exported File tab. The\ngenerated file is listed with the Generation Date . Click the (download) button to download the file.\nIf any adjustments need to be made, click the Re-generate Export File button to recreate\na new NACHA ACH file.\n- Batch payments\n- Europeâs direct debiting\nEuropeâs direct debiting", "headings": ["Configuration", "Modules installation", "Chart of accounts", "View, edit, and sort accounts", "Taxes", "AvaTax", "Reports", "1099 report", "Cash flow statement", "Cash discount", "Writing checks", "Payroll", "Required information", "Export work entries to ADP", "ACH - electronic transfers", "Receive ACH payments: payment provider integration", "Send payments: NACHA files"], "doc_id": "97564512661fd0fe"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/uruguay.html", "title": "Uruguay", "module": "invoicing", "section": "Uruguay", "text": "# Uruguay\n\n## Introduction\n\nWith the Uruguayan localization, you can generate electronic documents with its XML, fiscal folio,\nelectronic signature and connection to tax authority Dirección General Impositiva (DGI) through\nUruware.\nThe supported documents are:\n- e-Invoice , e-Invoice Credit Note , e-Invoice Debit Note ;\ne-Invoice , e-Invoice Credit Note , e-Invoice Debit Note ;\n- e-Ticket , e-Ticket Credit Note , e-Ticket Debit Note ;\ne-Ticket , e-Ticket Credit Note , e-Ticket Debit Note ;\n- Export e-Invoice , Export e-Invoice Credit Note , Export\ne-Invoice Debit Note .\nExport e-Invoice , Export e-Invoice Credit Note , Export\ne-Invoice Debit Note .\nThe localization requires an Uruware account, which enables users to generate electronic documents\nwithin Odoo.\nDocumentation on e-invoicingâs legality and compliance in Uruguay\n\n### Glossary\n\nThe following terms are used throughout the Uruguayan localization:\n- DGI : Dirección General Impositiva is the government entity responsible for enforcing tax\npayments in Uruguay.\nDGI : Dirección General Impositiva is the government entity responsible for enforcing tax\npayments in Uruguay.\n- EDI : Electronic Data Interchange refers to the sending of electronic documents.\nEDI : Electronic Data Interchange refers to the sending of electronic documents.\n- Uruware : is the third-party organization that facilitates the interchange of electronic\ndocuments between companies and the Uruguayan government.\nUruware : is the third-party organization that facilitates the interchange of electronic\ndocuments between companies and the Uruguayan government.\n- CAE : Constancia de Autorización de Emisión is a document requested from the tax authorityâs\nwebsite to enable electronic invoice issuance.\nCAE : Constancia de Autorización de Emisión is a document requested from the tax authorityâs\nwebsite to enable electronic invoice issuance.\n\n## Configuration\n\n### Modules installation\n\nInstall the following modules to get all the features of the Uruguayan\nlocalization:\n`l10n_uy`\nThe default fiscal localization package . It adds accounting\ncharacteristics for the Uruguayan localization, which represent the minimum configuration\nrequired for a company to operate in Uruguay according to the guidelines set by the DGI .\nThe moduleâs installation automatically loads: chart of accounts, taxes, documents types, and\ntax supported types.\nUruguay Accounting EDI\n`l10n_uy_edi`\nIncludes all the technical and functional requirements to generate and validate Electronics Documents , based on\nthe technical documentation published by the DGI . The authorized documents are listed\nabove .\nOdoo automatically installs the base module Uruguay - Accounting when a database is installed\nwith Uruguay selected as the country. However, to enable electronic invoicing, the Uruguay\nAccounting EDI ( l10n_uy_edi ) module needs to be manually installed .\n`Uruguay`\n`l10n_uy_edi`\n\n### Company\n\nTo configure your company information, open the Settings app, scroll down to the Companies section, click Update Info , and configure the following:\n- Company Name\n- Address , including the Street , City , State , ZIP , and Country\nAddress , including the Street , City , State , ZIP , and Country\n- Tax ID : enter the identification number for the selected taxpayer type.\nTax ID : enter the identification number for the selected taxpayer type.\n- DGI Main Branch Code : this is part of the XML when creating an electronic document. If\nthis field is not set, all electronic documents will be rejected. To find the DGI Main Branch Code , follow these steps: From your DGI account , go to Servicios en lÃnea DGI ⣠Registro único tributario ⣠Consulta de datos . Select Consulta de Datos Registrales ⣠Consulta de Datos de Entidades . Open the generated PDF to get the DGI Main Branch Code from the Domicilio Fiscal\nNúmero de Local section.\nDGI Main Branch Code : this is part of the XML when creating an electronic document. If\nthis field is not set, all electronic documents will be rejected.\nTo find the DGI Main Branch Code , follow these steps:\n- From your DGI account , go to Servicios en lÃnea DGI ⣠Registro único tributario ⣠Consulta de datos .\nFrom your DGI account , go to Servicios en lÃnea DGI ⣠Registro único tributario ⣠Consulta de datos .\n- Select Consulta de Datos Registrales ⣠Consulta de Datos de Entidades .\nSelect Consulta de Datos Registrales ⣠Consulta de Datos de Entidades .\n- Open the generated PDF to get the DGI Main Branch Code from the Domicilio Fiscal\nNúmero de Local section.\nOpen the generated PDF to get the DGI Main Branch Code from the Domicilio Fiscal\nNúmero de Local section.\nAfter configuring the company in the database settings, navigate to Contacts and\nsearch for your company to verify the following:\n- the company type is set to Company .\nthe company type is set to Company .\n- the Identification Number Type is RUT / RUC .\nthe Identification Number Type is RUT / RUC .\n\n### Set up a Uruware account\n\nTo set up a Uruware account, follow these steps:\n- Verify that you have a valid Odoo subscription.\nVerify that you have a valid Odoo subscription.\n- Locate the Uruware credentials settings by navigating to the Accounting â£\nConfiguration ⣠Settings .\nLocate the Uruware credentials settings by navigating to the Accounting â£\nConfiguration ⣠Settings .\n- Scroll down to the Uruguayan Localization section and select the environment\n( Production or Testing ).\nScroll down to the Uruguayan Localization section and select the environment\n( Production or Testing ).\n- Click Create Uruware Account .\nClick Create Uruware Account .\nUpon doing so, an email is sent to the address associated with your Odoo subscription with the\npassword to enter Uruwareâs portal and set up your account.\n- The email with the credentials is not immediate; it might take up to 48 hours for the account to\nbe created.\nThe email with the credentials is not immediate; it might take up to 48 hours for the account to\nbe created.\n- The companyâs Tax ID needs to be set up to be able to create an Uruware account.\nThe companyâs Tax ID needs to be set up to be able to create an Uruware account.\n- The password sent expires after 24 hours. In this case, reset it by using the Forgot Password link in Uruwareâs portal.\nThe password sent expires after 24 hours. In this case, reset it by using the Forgot Password link in Uruwareâs portal.\nThis action will create an account with Uruware with the following information:\n- Legal name (razón social)\nLegal name (razón social)\n- RUT from the company\n- Username (the Odoo subscription email or RUT .odoo. For example: 213344556677.odoo )\nUsername (the Odoo subscription email or RUT .odoo. For example: 213344556677.odoo )\n`RUT`\n`213344556677.odoo`\n- Odoo database link\nTo ensure your account is created correctly, please add any missing information from above.\nOnce the account is created and you have received the email containing the credentials, configure\nyour accounts directly in the Uruware testing portal or production portal :\nUse the account credentials in the email to log in to the to the corresponding ( test or production )\nportal.\nIn Uruwareâs portal, the following steps are needed to be able to issue invoices from Odoo:\n- Complete and correct the companyâs information.\nComplete and correct the companyâs information.\n- Add your digital certificate.\nAdd your digital certificate.\n- Add your CAEs for each document-type you plan\nto issue.\nAdd your CAEs for each document-type you plan\nto issue.\n- Configure the format of the PDF to be printed and sent to your customers.\nConfigure the format of the PDF to be printed and sent to your customers.\nBe sure to configure two accounts, one for testing and one for production. The certificate is\nneeded in both environments, but CAEs are only\nneeded in production.\n- Odoo Tutorials: Uruguay Localization\nOdoo Tutorials: Uruguay Localization\n- Odoo Help Forum: Uruguay\nOdoo Help Forum: Uruguay\n\n### Electronic invoice data\n\nTo configure the electronic invoice data, an environment and credentials need to be configured. To\ndo so, navigate to Accounting ⣠Configuration ⣠Settings and scroll down to the Uruguayan Localization section.\nFirst, select the UCFE Web Services environment:\n- Production : for production databases. In this mode, electronic documents are sent to DGI through Uruware for their validation.\nProduction : for production databases. In this mode, electronic documents are sent to DGI through Uruware for their validation.\n- Testing : for test databases. In this mode, the direct connection flows can be tested,\nwith the files sent to the DGI testing environment through Uruware.\nTesting : for test databases. In this mode, the direct connection flows can be tested,\nwith the files sent to the DGI testing environment through Uruware.\n- Demo : files are created and accepted automatically in demo mode but are not sent\nto the DGI . For this reason, rejection errors will not appear in this mode. Every internal\nvalidation can be tested in demo mode. Avoid selecting this option in a production database.\nDemo : files are created and accepted automatically in demo mode but are not sent\nto the DGI . For this reason, rejection errors will not appear in this mode. Every internal\nvalidation can be tested in demo mode. Avoid selecting this option in a production database.\nUsing Demo mode does not require a Uruware account.\nThen, enter the Uruware Data :\n- Uruware WS Password\n- Commerce Code\n- Terminal Code\nThis data can be obtained from the Uruware portal after configuring the Uruware account .\nTo get the Uruware WS Password , go to Configuration ⣠Company â£\nEdit and look for the Validators and Additional Information tab to find WS Password .\nTo get the Commerce Code , go to Configuration ⣠Branches .\nTo get the Terminal Code , go to Configuration ⣠Issuing Points .\n\n### Master data\n\n#### Chart of accounts\n\nThe chart of accounts is installed by default\nas part of the set of data included in the localization module, the accounts are mapped\nautomatically in taxes, default accounts payable, and default accounts receivable.\nAccounts can be added or deleted according to the companyâs needs.\n\n#### Contacts\n\nTo create a contact, navigate to Contacts app and select New . Then\nenter the following information:\n- Company Name\n- Address : Street : required to confirm an electronic invoice. City State ZIP Country : required to confirm an electronic invoice.\n- Street : required to confirm an electronic invoice.\nStreet : required to confirm an electronic invoice.\n- Country : required to confirm an electronic invoice.\nCountry : required to confirm an electronic invoice.\n- Identification Number : Type : select a identification type. Number : required to confirm an electronic invoice.\nIdentification Number :\n- Type : select a identification type.\nType : select a identification type.\n- Number : required to confirm an electronic invoice.\nNumber : required to confirm an electronic invoice.\n\n#### Taxes\n\nAs part of the Uruguay localization module, taxes are automatically created with its configuration\nand related financial accounts.\n\n#### Document types\n\nSome accounting transactions, like customer invoices and vendor bills are classified by document\ntypes. These are defined by the government fiscal authorities, in this case by the DGI .\nEach document type can have a unique sequence per journal where it is assigned. The data is created\nautomatically when the localization module is installed, and the information required for the\ndocument types is included by default.\nTo review the document types included in the localization, navigate to Accounting\n⣠Configuration ⣠Document Types .\nIn Uruguay, CAEs must be uploaded in Uruware. Sequences (and PDFs) are received in Odoo\nfrom Uruware, based on their CAEs . CAEs are only used in production. When testing, only a\nrange of sequences used in Uruware need to be set.\n\n#### Sales journals\n\nTo generate and confirm an electronic document that will be validated by DGI , the sales journal\nneeds to be configured with the following:\n- Invoicing Type : by default Electronic option is set. This is necessary to\nsend electronic documents via web service to the Uruguayan government through Uruware. The other\noption, Manual , is for open invoices previously stamped in another system, for\nexample, in the DGI .\nInvoicing Type : by default Electronic option is set. This is necessary to\nsend electronic documents via web service to the Uruguayan government through Uruware. The other\noption, Manual , is for open invoices previously stamped in another system, for\nexample, in the DGI .\n- Use Documents? : Activate this option if this journal will use documents from the list\nof document types in Odoo.\nUse Documents? : Activate this option if this journal will use documents from the list\nof document types in Odoo.\n\n## Workflows\n\nOnce you have configured your database, you can create your documents.\n\n### Sales documents\n\n#### Customer invoices\n\nCustomer invoices are electronic documents that, when\nvalidated, are sent to DGI via Uruware. These documents can be created from your sales order or\nmanually. They must contain the following data:\n- Customer : type the customerâs information.\nCustomer : type the customerâs information.\n- Due date : to compute if the invoice is due now or later ( contado or crédito ,\nrespectively).\nDue date : to compute if the invoice is due now or later ( contado or crédito ,\nrespectively).\n- Journal : select the electronic sales journal.\nJournal : select the electronic sales journal.\n- Document Type : document type in this format, for example, (111) e-Invoice .\nDocument Type : document type in this format, for example, (111) e-Invoice .\n`(111)e-Invoice`\n- Products : specify the product(s) with the correct taxes.\nProducts : specify the product(s) with the correct taxes.\nEvery document type has a specific credit note and debit note (e.g., the document type (111) e-Invoice has an (112) e-Invoice Credit Note ).\n\n#### Customer credit note\n\nThe Customer credit note is an electronic\ndocument that, when validated, is sent to DGI via Uruware. It is necessary to have a validated\n(posted) invoice to register a credit note. On the invoice, click the Credit note button\nto access the Create credit note form, then complete the following information:\n- Reason : type the reason for the credit note.\nReason : type the reason for the credit note.\n- Journal : select the journal that has to be electronic and has the Use\nDocuments? option active.\nJournal : select the journal that has to be electronic and has the Use\nDocuments? option active.\n- Document Type : select the credit note document type.\nDocument Type : select the credit note document type.\n- Reversal Date : type the date.\nReversal Date : type the date.\n\n#### Customer debit note\n\nThe Customer debit note is an electronic\ndocument that, when validated, is sent to DGI via Uruware. It is necessary to have a validated\n(posted) invoice to register a debit note. On the invoice, click the ( action menu ) icon, select the Debit note option to access the Create credit note form, then complete the following information:\n- Reason : Type the reason for the debit note.\nReason : Type the reason for the debit note.\n- Journal : Select the journal that has to be electronic and has the Use\nDocuments? option active.\nJournal : Select the journal that has to be electronic and has the Use\nDocuments? option active.\n- Copy lines : Tick the checkbox to copy the invoice lines to the debit note.\nCopy lines : Tick the checkbox to copy the invoice lines to the debit note.\n- Debit note date : Type the date.\nDebit note date : Type the date.\nConfirm the invoice to create it with an internal reference. To send the document to DGI via\nUruware, click Send and select the checkbox Create CFE . The\nlegal document sequence (number) is brought from Uruware once the document has been processed.\nMake sure you have CAEs available in Uruware.\nThe PDF of the validated document is pulled from Uruware following the specification by the\nUruguayan government (DGI).\n\n## Addendas and disclosures\n\nAddendas and disclosures are additional notes and comments added to an electronic document that\ncan be mandatory or optional. To create a new addenda, go to Accounting â£\nConfiguration ⣠Addendas and disclosures and click New .\nEnter the following information:\n- Name : name of the addenda or mandatory disclosure.\nName : name of the addenda or mandatory disclosure.\n- Type : Select the type of remark, this will add it to the specific section in the XML.\nType : Select the type of remark, this will add it to the specific section in the XML.\n- Is legend : Select this box if the text is a mandatory disclosure, leave it blank if it\nis additional information.\nIs legend : Select this box if the text is a mandatory disclosure, leave it blank if it\nis additional information.\n- Content : Add the complete text of the addenda or disclosure.\nContent : Add the complete text of the addenda or disclosure.\n\n### Leyenda and additional information in product\n\nTo add a leyenda or additional information to the product and XML, it is necessary to add the\npreconfigured addenda and disclosure to the product in the invoice line. Add the leyenda in the Disclosure field of the product specified in the line.\n\n### Leyenda and additional information\n\nTo add a leyenda or additional information to the electronic invoice and XML, access the invoice,\ngo to the Other Info tab, and select the desired addenda in the Addenda and\nDisclosure field. The addenda and disclosures added here will appear in the XML and visibly in the\nPDF document.\nThis applies to the following types of addendas :\n- Document\n- Issuer\n- Receiver\n- Addendas\nTo add a temporary note to the electronic document, use the Terms and Conditions field. This information will be sent in the addenda of the invoice, but it wonât be saved for\nfuture documents.", "headings": ["Introduction", "Glossary", "Configuration", "Modules installation", "Company", "Set up a Uruware account", "Electronic invoice data", "Master data", "Workflows", "Sales documents", "Addendas and disclosures", "Leyenda and additional information in product", "Leyenda and additional information"], "doc_id": "ba694a28e0a42fb9"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/vietnam.html", "title": "Vietnam", "module": "invoicing", "section": "Vietnam", "text": "# Vietnam\n\n## Modules\n\nThe following modules are installed automatically with the Vietnamese localization:\n`l10n_vn`\nThis module includes the default fiscal localization package .\nVietnam - E-invoicing\n`l10n_vn_edi_viettel`\nThis module includes the features required for integration with SInvoice .\nIn some cases, such as when upgrading to a version with additional modules, it is possible that\nmodules may not be installed automatically. Any missing modules can be manually installed .\n\n## Company\n\nTo use all the features of this fiscal localization, the following fields are required on the company record :\n- Address , including the City , State , Zip Code ,\nand Country . In the Street field, enter the street name, number, and any additional address\ninformation. In the Street 2 field, enter the neighborhood.\nAddress , including the City , State , Zip Code ,\nand Country .\n- In the Street field, enter the street name, number, and any additional address\ninformation.\nIn the Street field, enter the street name, number, and any additional address\ninformation.\n- In the Street 2 field, enter the neighborhood.\nIn the Street 2 field, enter the neighborhood.\n- Tax ID : tax identification number.\nTax ID : tax identification number.\n\n## E-invoicing with SInvoice\n\nSInvoice is an e-invoice service platform provided by Viettel, one of the biggest e-invoice service\nproviders in Vietnam. Odoo supports integration with SInvoice to submit invoices generated in Odoo.\n\n### Configuration\n\n#### SInvoice platform\n\nTo send electronic invoices to SInvoice, the following must be created on SInvoice :\n- SInvoice account\n- Invoice template\n- Invoice symbol\n- Invoice issuance notice\nInvoice issuance notice\nTo create an account, go to SInvoice and register for the desired plan. Fill in the form that\nopens to be contacted by SInvoice to create an account.\nOnce you have an account, log into SInvoice using your Username and Password .\n- On the left side of the overview page, in the Release management menu, click Create business information .\nOn the left side of the overview page, in the Release management menu, click Create business information .\n- In the Update key information step, fill in the following fields and other optional\ninformation if needed: Unit name , Address , Contact person , Type of representative documents .\nIn the Update key information step, fill in the following fields and other optional\ninformation if needed: Unit name , Address , Contact person , Type of representative documents .\n- Click Update .\n- In the Look up digital certificate step, click Add new to add a digital\ncertificate.\nIn the Look up digital certificate step, click Add new to add a digital\ncertificate.\n- Select the Branch/Enterprise and the Type of digital certificate , then\nfill in the required fields for each type: Supplier : CloudCA Signer ID : CloudCA Digital Certificate : CloudCA How to download file : HSM File Upload : HSM, USB-TOKEN\nSelect the Branch/Enterprise and the Type of digital certificate , then\nfill in the required fields for each type:\n- Supplier : CloudCA\n- Signer ID : CloudCA\n- Digital Certificate : CloudCA\nDigital Certificate : CloudCA\n- How to download file : HSM\nHow to download file : HSM\n- File Upload : HSM, USB-TOKEN\nFile Upload : HSM, USB-TOKEN\n- Click Generate key pair to generate encryption keys for authentication, and Save .\nClick Generate key pair to generate encryption keys for authentication, and Save .\n- In the Manage invoice templates step, add a new Invoice template .\nIn the Manage invoice templates step, add a new Invoice template .\n- Select the Invoice type and fill in the Invoice template code , Invoice template name , and other optional information if needed.\nSelect the Invoice type and fill in the Invoice template code , Invoice template name , and other optional information if needed.\n- Click Update .\nSInvoice documentation on electronic invoice template creation\nOn the left side of the main screen, in the Release management menu, click Invoice symbol and follow these steps:\n- Click Add new and select the Invoice template .\nClick Add new and select the Invoice template .\n- Set the Status to Active to activate the symbol and fill in the Invoice symbol .\nSet the Status to Active to activate the symbol and fill in the Invoice symbol .\n- Enable Stop automatic sending to tax authorities and Default for built-in\nAPI based on preference.\nEnable Stop automatic sending to tax authorities and Default for built-in\nAPI based on preference.\n- Click Save .\nOn the left side of the main screen, in the Release management menu, click Create issuance notice and follow these steps:\n- Click Add new , select the Name of the business unit to issue an e-invoice and the Tax agency name . Based on the business unit and tax agency selected, the Tax code , Address , Phone number , and Separator\nused are automatically filled and uneditable.\nClick Add new , select the Name of the business unit to issue an e-invoice and the Tax agency name . Based on the business unit and tax agency selected, the Tax code , Address , Phone number , and Separator\nused are automatically filled and uneditable.\n- Click Select the invoice type for issuance , and then select and fill in the\nfollowing information : Invoice type : The invoice type on which to declare an issuance notice. Invoice template : Select from the list of templates available based on the invoice\ntype. Symbol : Select from the list of symbols available based on the invoice type. Quantity : Total number of invoices to issue for the selected type. Based on the\ntype and template selected, this field is filled in automatically. It can be changed if needed. Start date of use : The date from which the invoice template, range, and quantity\nare used for the issuance notice.\nClick Select the invoice type for issuance , and then select and fill in the\nfollowing information :\n- Invoice type : The invoice type on which to declare an issuance notice.\nInvoice type : The invoice type on which to declare an issuance notice.\n- Invoice template : Select from the list of templates available based on the invoice\ntype.\nInvoice template : Select from the list of templates available based on the invoice\ntype.\n- Symbol : Select from the list of symbols available based on the invoice type.\nSymbol : Select from the list of symbols available based on the invoice type.\n- Quantity : Total number of invoices to issue for the selected type. Based on the\ntype and template selected, this field is filled in automatically. It can be changed if needed.\nQuantity : Total number of invoices to issue for the selected type. Based on the\ntype and template selected, this field is filled in automatically. It can be changed if needed.\n- Start date of use : The date from which the invoice template, range, and quantity\nare used for the issuance notice.\nStart date of use : The date from which the invoice template, range, and quantity\nare used for the issuance notice.\n- Click Save and select more invoice types if necessary by repeating the steps above.\nClick Save to finish drafting the notice.\nClick Save and select more invoice types if necessary by repeating the steps above.\nClick Save to finish drafting the notice.\n- Click Send to tax authorities for approval. Once approved, the noticeâs Status is changed to Active .\nClick Send to tax authorities for approval. Once approved, the noticeâs Status is changed to Active .\n\n#### Odoo database\n\nTo connect Odoo with SInvoice, go to Accounting ⣠Configuration ⣠Settings .\nIn the Vietnamese Integration section, fill in your SInvoice Username and Password . Add a Default symbol to generate a prefix for the invoice number\nmanaged in SInvoice if needed.\nTo create SInvoice templates, go to Accounting ⣠Configuration ⣠Templates .\nClick New and add a Template code and a Template Invoice Type .\nThe Template code is the initial sequence of digits in the name assigned by SInvoice.\nFor example, if the invoice template is 1/001 - Hóa ÄÆ¡n GTGT - ND123 , the Template\ncode is 1/001 . The SInvoice templates in Odoo must match the ones in SInvoice.\n`1/001-HóaÄÆ¡nGTGT-ND123`\n`1/001`\nTo add Invoice Symbols , click Add a new line .\n\n### Sending invoices to SInvoice\n\nInvoices can be sent to SInvoice once they have been confirmed. To do so, follow the invoice sending steps. In the popup window, enable Send to SInvoice and click Send .\nOnce the invoice has been successfully submitted to SInvoice, the SInvoice Status field\nin the SInvoice tab of the invoice is updated to Sent . The SInvoice Number , Issue Date , Secret Code and eInvoice\nNumber fields are also updated. The same information is available on SInvoice.\n\n#### Replacement or adjustment invoices\n\nA replacement invoice is issued to correct an invoice that has yet to be tax declared , whereas\nan adjustment invoice is issued to correct one that has already been tax declared . Follow these\nsteps to issue a replacement or adjustment invoice:\n- Open the invoice and click Credit Note .\nOpen the invoice and click Credit Note .\n- In the Credit Note popup, fill in the following fields: Reason displayed on Credit Note Adjustment type Agreement Name Agreement Date Journal Reversal date\nIn the Credit Note popup, fill in the following fields:\n- Reason displayed on Credit Note\nReason displayed on Credit Note\n- Adjustment type\n- Agreement Name\n- Agreement Date\n- Journal\n- Reversal date\n- Click Reverse and Create Invoice to issue a replacement invoice, or Reverse to issue an adjustment invoice.\nClick Reverse and Create Invoice to issue a replacement invoice, or Reverse to issue an adjustment invoice.\nThe SInvoice Status in the SInvoice invoice tab is updated to Replaced for a replacement invoice or Adjusted for an adjustment invoice.\n\n#### Invoice cancellation\n\nIf an invoice needs to be canceled, open the invoice and click Request Cancel . In the Invoice Cancellation popup, enter the cancellation Reason , Agreement Name , and Agreement Date , and click Request\nCancellation .\nThe SInvoice Status in the SInvoice invoice tab is updated to Canceled .\n\n## QR banking codes\n\nVietnamese QR banking is a payment service platform that allows customers to make instant domestic\npayments to individuals and merchants in Vietnamese dong via online and mobile banking.\n\n### Configuration\n\nTo activate QR banking codes, go to Accounting ⣠Configuration ⣠Settings and\nenable QR Codes in the Customer Payments section.\n\n#### Bank account\n\nTo activate QR banking for a bank account, go to Contacts ⣠Configuration â£\nBank Accounts and select the bank account. Fill in the Bank Identifier Code , Proxy Type (based on the information used to identify the Merchant Account ,\nsuch as the card number and bank account numbers), and Proxy Value fields.\nEnable Include Reference to include the invoice number in the QR code.\n- The account holderâs country must be set to Vietnam , and their city must be specified on the\ncontact form.\nThe account holderâs country must be set to Vietnam , and their city must be specified on the\ncontact form.\n`Vietnam`\n- The account number and bank must be set on the Bank journal.\nThe account number and bank must be set on the Bank journal.\nBank and cash accounts\n\n### Generating QR codes on invoices\n\nWhen creating a new invoice, open the Other Info tab and select EMV\nMerchant-Presented QR-code in the Payment QR-code field.\nEnsure the Recipient Bank is configured, as Odoo uses this field to generate QR\ncodes.", "headings": ["Modules", "Company", "E-invoicing with SInvoice", "Configuration", "Sending invoices to SInvoice", "QR banking codes", "Configuration", "Generating QR codes on invoices"], "doc_id": "76ce06c815833555"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/payment_providers.html", "title": "Online payments", "module": "invoicing", "section": "Online payments", "text": "# Online payments\n\nOdoo embeds several payment providers that allow your customers to pay online, on their customer portals , or on your eCommerce website . They can pay sales orders, invoices, or\nsubscriptions with recurring payments using their favorite payment methods, such as credit cards .\nEach payment provider is linked to a list of supported payment methods that can be (de)activated based on your needs.\nOdoo apps delegate the handling of sensitive information to the certified payment provider so\nthat you donât ever have to worry about PCI compliance. No sensitive information (such as credit\ncard numbers) is stored on Odoo servers or Odoo databases hosted elsewhere. Instead, Odoo apps\nuse a unique reference number for the data stored safely in the payment providersâ systems.\n\n## Supported payment providers\n\nTo access the supported payment providers, go to Accounting ⣠Configuration â£\nPayment Providers , Website ⣠Configuration ⣠Payment Providers , or Sales ⣠Configuration ⣠Payment Providers .\n\n### Online payment providers\n\nAmazon Payment Services\nThe providerâs website\nThe providerâs website\nThe providerâs website\nThe providerâs website\nThe providerâs website\nThe providerâs website\nThe providerâs website\nThe providerâs website\nOdoo or the providerâs website\nRefer to the Xendit documentation for more information.\n- Each provider has its own specific configuration flow, depending on which feature is\navailable.\nEach provider has its own specific configuration flow, depending on which feature is\navailable.\n- Some of these online payment providers can also be added as bank accounts , but this is not the same process as adding them as payment\nproviders. Payment providers allow customers to pay online, and bank accounts are added and\nconfigured in the Accounting app to do a bank reconciliation .\nSome of these online payment providers can also be added as bank accounts , but this is not the same process as adding them as payment\nproviders. Payment providers allow customers to pay online, and bank accounts are added and\nconfigured in the Accounting app to do a bank reconciliation .\nIn addition to the regular payment providers that integrate with an API, such as Stripe, PayPal,\nor Adyen, Odoo bundles the Demo payment provider . This payment\nprovider allows you to test business flows involving online payments. No credentials are required\nas the demo payments are dummy payments.\n\n### Bank payments\n\n- Wire Transfer When selected, Odoo displays your payment information with a payment reference. You have to\napprove the payment manually once you have received it in your bank account.\n- SEPA Direct Debit Your customers can make a bank transfer to register a SEPA Direct Debit mandate and get their\nbank account charged directly.\n\n## Enabling a payment provider\n\nTo add a new payment provider and make its related payment methods available to your customers,\nproceed as follows:\n- Go to the payment providerâs website, create an account, and make sure you have the API\ncredentials requested for third-party use. These are necessary for Odoo to communicate with the\npayment provider.\nGo to the payment providerâs website, create an account, and make sure you have the API\ncredentials requested for third-party use. These are necessary for Odoo to communicate with the\npayment provider.\n- In Odoo, navigate to the Payment providers by going to Accounting â£\nConfiguration ⣠Payment Providers , Website ⣠Configuration ⣠Payment\nProviders , or Sales ⣠Configuration ⣠Payment Providers .\nIn Odoo, navigate to the Payment providers by going to Accounting â£\nConfiguration ⣠Payment Providers , Website ⣠Configuration ⣠Payment\nProviders , or Sales ⣠Configuration ⣠Payment Providers .\n- Select the provider and configure the Credentials tab.\nSelect the provider and configure the Credentials tab.\n- Set the State field to Enabled .\nSet the State field to Enabled .\n- The fields available in the Credentials tab depend on the payment provider. Refer\nto the related documentation for more\ninformation.\nThe fields available in the Credentials tab depend on the payment provider. Refer\nto the related documentation for more\ninformation.\n- Once you have enabled the payment provider, it is automatically published on your website.\nIf you wish to unpublish it, click the Published button. Customers cannot make\npayments through an unpublished provider, but they can still manage (delete and assign to a subscription) their existing tokens linked to such a provider.\nOnce you have enabled the payment provider, it is automatically published on your website.\nIf you wish to unpublish it, click the Published button. Customers cannot make\npayments through an unpublished provider, but they can still manage (delete and assign to a subscription) their existing tokens linked to such a provider.\n\n### Test mode\n\nWe recommend using the test mode on a duplicate or a test database to avoid potential\nissues with invoice numbering.\nTo try a payment provider without affecting live transactions, set the State field in\nthe payment provider form to Test mode . Then, enter the providerâs dedicated test or\nsandbox credentials in the Credentials tab. Each payment provider has its own separate\ntest account or environment for this purpose.\nBy default, the payment provider remains unpublished in test mode so that itâs not visible to\nvisitors.\n\n## Payment methods\n\nEach payment provider is related to a list of supported payment methods; the methods listed in the Payment methods field in the Configuration tab of the payment provider form\nare the ones that have been activated. To activate or deactivate a payment method for a provider,\nclick Enable Payment Methods , then click the toggle button of the related method.\nPayment methods are displayed on your website based on their sequence order. To reorder them,\nclick Enable Payment Methods in the payment provider form, then, in the Payment Methods list, drag and drop the payment methods in the desired order.\n\n### Icons and brands\n\nThe icons displayed next to the payment method on your website are either the icons of the brands\nactivated for the payment method or, if there arenât any, the icons of the payment methods\nthemselves. To modify them, go to Accounting ⣠Configuration ⣠Payment Methods , Website ⣠Configuration ⣠Payment Methods or Sales â£\nConfiguration ⣠Payment Methods , then click on the payment method.\nTo modify a payment methodâs icon, hover your mouse over the image in the upper-right corner of the\npayment methodâs form and click the ( pencil ) icon.\nSelect the Brands tab to view the brands that have been activated for the payment\nmethod. The brands and their related icons are displayed based on their sequence order; to reorder\nthem, drag and drop them in the desired order. To modify a brandâs icon, select the brand, then,\nin the popup window that opens, hover the mouse over the image in the upper-right corner and click\nthe ( pencil ) icon.\n\n### Advanced configuration\n\nTo configure payment methods further, go to Accounting ⣠Configuration ⣠Payment\nMethods , Website ⣠Configuration ⣠Payment Methods or Sales\n⣠Configuration ⣠Payment Methods . Click on the payment method, then activate the developer mode . Click the Configuration tab to adapt the\nfeatures.\n- Each payment method is preconfigured in a way that aligns with the payment providersâ\nbehavior and their integration with Odoo. Any change to this configuration may result in errors\nand should be tested on a duplicate or test database first.\nEach payment method is preconfigured in a way that aligns with the payment providersâ\nbehavior and their integration with Odoo. Any change to this configuration may result in errors\nand should be tested on a duplicate or test database first.\n- Modifications to the payment methodâs configuration only work to the extent of the methodâs\nand providerâs capabilities. For example, adding countries for a payment method only supported in one country or\nenabling tokenization for a method linked to a provider\nthat does not support it will not produce the intended results.\nModifications to the payment methodâs configuration only work to the extent of the methodâs\nand providerâs capabilities. For example, adding countries for a payment method only supported in one country or\nenabling tokenization for a method linked to a provider\nthat does not support it will not produce the intended results.\n\n## Tokenization\n\nIf the payment provider supports this feature , customers\ncan save their payment method details for later. To enable this feature, go to the Configuration tab of the selected payment provider and enable Allow Saving\nPayment Methods .\nIn this case, a payment token is created in Odoo to be used as a payment method for subsequent\npayments without the customer having to enter their payment method details again. This is\nparticularly useful for the eCommerce conversion rate and subscriptions that use recurring payments.\nTo add or delete their saved payment method details, customers can click Manage\npayment methods in the customer portal .\nPCI DSS and Attestation of Compliance\nOdoo is not PCI DSS-certified because it does not\nstore cardholder data or process payments. Instead, it outsources tokenization and payment to external payment providers , which means that as an\nOdoo customer, you only need to complete the minimal Self-Assessment Questionnaire (SAQ) with\nthe provider to obtain the Attestation of Compliance (AoC) and achieve PCI compliance. Odoo\nshould not be mentioned as a payment processor or a third-party service provider in the SAQ .\n\n## Manual capture\n\nIf the payment provider supports this feature , you can\nauthorize and capture payments in two steps instead of one. To enable this feature, go to the Configuration tab of the selected payment provider and enable Capture Amount\nManually .\nWhen you authorize a payment, the funds are reserved on the customerâs payment method but not\nimmediately charged. They are charged when you manually capture the payment later on. You can also\nvoid the authorization to cancel it and release the reserved funds. Capturing payments manually is\nhelpful in many situations:\n- Receive the payment confirmation and wait until the order is shipped to capture the payment.\nReceive the payment confirmation and wait until the order is shipped to capture the payment.\n- Review and verify that orders are legitimate before the payment is completed and the fulfillment\nprocess starts.\nReview and verify that orders are legitimate before the payment is completed and the fulfillment\nprocess starts.\n- Avoid potentially high refund fees for refunded payments: payment providers will not charge you\nfor voiding an authorization.\nAvoid potentially high refund fees for refunded payments: payment providers will not charge you\nfor voiding an authorization.\n- Hold a security deposit to return later, minus any deductions (e.g., in case of damages).\nHold a security deposit to return later, minus any deductions (e.g., in case of damages).\nTo capture the payment after it was authorized, go to the related sales order or invoice and click\nthe Capture Transaction button. To release the funds, click the Void\nTransaction button.\n- Some payment providers support capturing only part of the authorized amount. The remaining\namount can then be either captured or voided. These providers have the value Full and\npartial in the table above . The providers that\nonly support capturing or voiding the total amount have the value Full only .\nSome payment providers support capturing only part of the authorized amount. The remaining\namount can then be either captured or voided. These providers have the value Full and\npartial in the table above . The providers that\nonly support capturing or voiding the total amount have the value Full only .\n- The funds are likely not reserved forever. After a certain time, they may be automatically\nreleased back to the customerâs payment method. Refer to your payment providerâs documentation\nfor the exact reservation duration.\nThe funds are likely not reserved forever. After a certain time, they may be automatically\nreleased back to the customerâs payment method. Refer to your payment providerâs documentation\nfor the exact reservation duration.\n- Adyen and Stripe allow to capture payments\nmanually directly from their website interface.\nAdyen and Stripe allow to capture payments\nmanually directly from their website interface.\n\n## Refunds\n\nIf your payment provider supports this feature, you can refund payments directly from Odoo. It does\nnot need to be enabled first. To refund a customer payment, navigate to it and click the Refund button.\n- Some payment providers support refunding only part of the amount. The remaining amount can then\noptionally be refunded, too. These providers have the value Full and partial in the table above . The providers that only support\nrefunding the total amount have the value Full only .\nSome payment providers support refunding only part of the amount. The remaining amount can then\noptionally be refunded, too. These providers have the value Full and partial in the table above . The providers that only support\nrefunding the total amount have the value Full only .\n- Adyen and Stripe allow to refund payments\ndirectly from their website interface.\nAdyen and Stripe allow to refund payments\ndirectly from their website interface.\n\n## Express checkout\n\nIf the payment provider supports this feature , you can\nallow customers to use the Google Pay and Apple Pay buttons and pay their\neCommerce orders in one click. When they use one of these buttons, customers go straight from the\ncart to the confirmation page without filling out the contact form. They just have to validate the\npayment on Googleâs or Appleâs payment form.\nTo enable this feature, go to the Configuration tab of the selected payment provider and\nenable Allow Express Checkout .\nAll prices shown on the express checkout payment form always include taxes.\n\n## Availability\n\nYou can adapt the payment providerâs availability by specifying the Maximum amount allowed and modifying the Currencies and Countries in the Configuration tab.\nTo display an availability report for payment providers and payment methods, and to help diagnose\npotential availability issues on the payment form, enable the Developer mode (debug mode) , then click\nthe ( bug ) icon next to the Choose a payment method heading on the payment form. The report includes a list of enabled payment providers and payment\nmethods, reasons for any payment providers or methods not being available, if applicable, and a\nlist of supported providers for each payment method.\n\n### Currencies and countries\n\nAll payment providers have a different list of available currencies and countries. They serve as a\nfirst filter during payment operations, i.e., the payment methods linked to the payment provider are\nnot available for selection if the customerâs currency or country is not in the supported list. As\nthere might be errors, updates, and unknowns in the lists of available currencies and countries,\nadding or removing a payment providerâs supported currencies or countries is possible.\n- Payment methods also have their own list of\navailable currencies and countries that serves as another filter during payment operations.\nPayment methods also have their own list of\navailable currencies and countries that serves as another filter during payment operations.\n- If the list of supported currencies or countries is empty, it means the list is too long to be\ndisplayed, or Odoo does not have information on that payment provider. The payment provider\nremains available, even though it is possible the payment will be refused at a later stage\nshould the country or currency not be supported.\nIf the list of supported currencies or countries is empty, it means the list is too long to be\ndisplayed, or Odoo does not have information on that payment provider. The payment provider\nremains available, even though it is possible the payment will be refused at a later stage\nshould the country or currency not be supported.\n\n### Maximum amount\n\nYou can restrict the Maximum Amount that can be paid with the selected provider. Leave\nthe field to 0.00 to make the payment provider available regardless of the payment amount.\n`0.00`\nThis feature is not intended to work on pages that allow the customer to update the payment\namount, e.g., the Donation snippet and the Checkout page when paid shipping methods are enabled.\n\n## Payment journal\n\nA payment journal must be defined for the payment provider to record the\npayments on an outstanding account . By default, the Bank journal is added as the\npayment journal for all payment providers. To modify it, go to the Configuration tab of\nthe selected payment provider and select another Payment journal .\n- The payment journal must be a Bank journal.\nThe payment journal must be a Bank journal.\n- The same journal can be used for several payment providers.\nThe same journal can be used for several payment providers.\n- Payment journals must only be configured if the Invoicing or Accounting app is installed.\nPayment journals must only be configured if the Invoicing or Accounting app is installed.\n\n### Accounting perspective\n\nFrom an accounting perspective, there are two types of online payment workflows: the payments that\nare directly deposited into your bank account and follow the usual reconciliation workflow, and those coming from third-party online payment\nproviders and require you to follow another accounting\nworkflow. For these payments, you need to consider how you want to record your paymentsâ journal\nentries. We recommend you ask your accountant for advice.\nBy default, the Bank Account defined for the payment journal is used, but you can also specify an outstanding account for each payment provider to separate the providerâs\npayments from other payments.\n- Wire transfers\n- SEPA Direct Debit\n- Authorize.Net\n- AsiaPay\n- Buckaroo\n- Mercado Pago\n- Mollie\n- PayPal\n- Razorpay\n- Stripe\n- Worldline\n- Xendit\n- Bank and cash accounts\nBank and cash accounts", "headings": ["Supported payment providers", "Online payment providers", "Bank payments", "Enabling a payment provider", "Test mode", "Payment methods", "Icons and brands", "Advanced configuration", "Tokenization", "Manual capture", "Refunds", "Express checkout", "Availability", "Currencies and countries", "Maximum amount", "Payment journal", "Accounting perspective"], "doc_id": "472afc964f04ef53"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/payment_providers/adyen.html", "title": "Adyen", "module": "invoicing", "section": "Adyen", "text": "# Adyen\n\nAdyen is a Dutch company that offers several online payment\npossibilities.\nAdyen only works with customers processing more than 10 million annually or invoicing a minimum of 1000 transactions per month .\n\n## Adyen configuration\n\n- Create an Adyen account if necessary and log into your Adyen Customer Area. Tip Log into your Test account to try the integration without charging customers.\nSwitch to your Live account once you are ready to accept payments.\nCreate an Adyen account if necessary and log into your Adyen Customer Area.\nLog into your Test account to try the integration without charging customers.\nSwitch to your Live account once you are ready to accept payments.\n- Contact the Adyen support team to enable the Multiple partial capture feature.\nContact the Adyen support team to enable the Multiple partial capture feature.\n- In the Adyen Customer Area, go to Developers ⣠API credentials and click the\nrelevant API credential user name in the list or click Create new credential to\ncreate a new one.\nIn the Adyen Customer Area, go to Developers ⣠API credentials and click the\nrelevant API credential user name in the list or click Create new credential to\ncreate a new one.\n- In the Server settings section, click Generate API key , then click the ( Copy API key ) icon and save the value for the Odoo configuration step.\nIn the Server settings section, click Generate API key , then click the ( Copy API key ) icon and save the value for the Odoo configuration step.\n- In the Client settings section, click Generate client key , then\nclick the ( Copy API key ) icon and save the value for\nthe Odoo configuration step.\nIn the Client settings section, click Generate client key , then\nclick the ( Copy API key ) icon and save the value for\nthe Odoo configuration step.\n- Enter your Odoo website URL in the Add allowed origins field, then click Add .\nEnter your Odoo website URL in the Add allowed origins field, then click Add .\n- Click Save changes at the bottom of the page.\nClick Save changes at the bottom of the page.\n- Go to Developers ⣠Webhooks in the left menu and click Create new\nwebhook .\nGo to Developers ⣠Webhooks in the left menu and click Create new\nwebhook .\n- In the Create new webhook popup, click Add on to the Standard\nwebhook line.\nIn the Create new webhook popup, click Add on to the Standard\nwebhook line.\n- On the Webhook generation form, in the Server configuration section,\nenter your Odoo database URL followed by /payment/adyen/notification .\nOn the Webhook generation form, in the Server configuration section,\nenter your Odoo database URL followed by /payment/adyen/notification .\n`/payment/adyen/notification`\n- In the Security section, click Generate under HMAC , then\nclick the ( Copy HMAC to the clipboard ) icon and save the value for\nthe Odoo configuration step.\nIn the Security section, click Generate under HMAC , then\nclick the ( Copy HMAC to the clipboard ) icon and save the value for\nthe Odoo configuration step.\n- Click Save configuration at the bottom of the page.\nClick Save configuration at the bottom of the page.\n- Go to Developers ⣠API URLs , then copy the Prefix and save it for\nthe Odoo configuration step.\nGo to Developers ⣠API URLs , then copy the Prefix and save it for\nthe Odoo configuration step.\n\n## Odoo configuration\n\n- Navigate to the Adyen payment provider .\nNavigate to the Adyen payment provider .\n- Fill in the Merchant account , API Key , Client Key , HMAC Key , and API URL Prefix fields with the values saved at the Adyen configuration step .\nFill in the Merchant account , API Key , Client Key , HMAC Key , and API URL Prefix fields with the values saved at the Adyen configuration step .\n- Configure the remaining options as needed.\nConfigure the remaining options as needed.\n- Set the State field to Enabled .\nSet the State field to Enabled .\nIf you want to test Adyen without affecting live transactions , use your Test account credentials, enter https://checkout-test.adyen.com in the API URL Prefix field, and set the State field to Test Mode .\n`https://checkout-test.adyen.com`\n\n## Manual capture\n\nTo enable manual capture for Adyen payments, follow\nthese steps:\n- Navigate to the Adyen payment provider .\nNavigate to the Adyen payment provider .\n- Go to the Configuration tab and enable Capture Amount Manually .\nGo to the Configuration tab and enable Capture Amount Manually .\n- Log in to your Adyen Customer Area, then go to Settings and click Company in the Account management section.\nLog in to your Adyen Customer Area, then go to Settings and click Company in the Account management section.\n- In the General section, click the ( Edit property )\nicon next to the Capture Delay field.\nIn the General section, click the ( Edit property )\nicon next to the Capture Delay field.\n- In the popup, set the Capture delay field to Manual and click Save .\nIn the popup, set the Capture delay field to Manual and click Save .\n- If the transaction is not captured within 7 days, the customer is entitled to revoke it.\nIf the transaction is not captured within 7 days, the customer is entitled to revoke it.\n- You can manually capture and refund payments directly from your Adyen Customer Area.\nYou can manually capture and refund payments directly from your Adyen Customer Area.", "headings": ["Adyen configuration", "Odoo configuration", "Manual capture"], "doc_id": "0cbbf511187df441"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/payment_providers/amazon_payment_services.html", "title": "Amazon Payment Services", "module": "invoicing", "section": "Amazon Payment Services", "text": "# Amazon Payment Services\n\nAmazon Payment Services or APS is an online payment provider\nestablished in Dubai offering several online payment options.\n\n## Configuration on APS Dashboard\n\n- Log into your Amazon Payment Services Dashboard and go to Integration Settings ⣠Security Settings . Generate the Access Code if none has been generated yet. Copy the values of the Merchant Identifier , Access Code , SHA Request Phrase and SHA Response Phrase fields, and save them for later.\nLog into your Amazon Payment Services Dashboard and go to Integration Settings ⣠Security Settings . Generate the Access Code if none has been generated yet. Copy the values of the Merchant Identifier , Access Code , SHA Request Phrase and SHA Response Phrase fields, and save them for later.\n- Enter your Odoo database URL in the Origin URL , for example: https://yourcompany.odoo.com/ . Then, click on Save Changes .\nEnter your Odoo database URL in the Origin URL , for example: https://yourcompany.odoo.com/ . Then, click on Save Changes .\n`https://yourcompany.odoo.com/`\n- Navigate to Integration Settings ⣠Technical Settings and click on Redirection . Make sure Status is set to Active and select your\npreferred payment methods underneath in Payment Options .\nNavigate to Integration Settings ⣠Technical Settings and click on Redirection . Make sure Status is set to Active and select your\npreferred payment methods underneath in Payment Options .\n`Active`\n- Set Send Response Parameters to Yes and enter your database URL\nfollowed by /payment/aps/return in the Redirection URL . For example https://yourcompany.odoo.com/payment/aps/return . Enter your database URL followed by /payment/aps/webhook in the Direct Transaction Feedback and Notification URL fields. For example https://yourcompany.odoo.com/payment/aps/webhook . Click on Save Changes .\n`/payment/aps/return`\n`https://yourcompany.odoo.com/payment/aps/return`\n`/payment/aps/webhook`\n`https://yourcompany.odoo.com/payment/aps/webhook`\n- Under Integration Settings ⣠Payment Page Template you can customize the\nlook and feel of the Amazon Payment Services payment page (where customers fill out their\ncredit card details during payment).\nUnder Integration Settings ⣠Payment Page Template you can customize the\nlook and feel of the Amazon Payment Services payment page (where customers fill out their\ncredit card details during payment).\n\n## Configuration on Odoo\n\n- Navigate to the payment provider Amazon Payment Services ,\nchange its state to Enabled , and make sure it is Published .\nNavigate to the payment provider Amazon Payment Services ,\nchange its state to Enabled , and make sure it is Published .\n- In the Credentials tab, fill the Merchant Identifier , Access Code , SHA Request Phrase and SHA Response Phrase with\nthe values you saved at the step Configuration on APS Dashboard .\nIn the Credentials tab, fill the Merchant Identifier , Access Code , SHA Request Phrase and SHA Response Phrase with\nthe values you saved at the step Configuration on APS Dashboard .\n- Configure the rest of the options to your liking.\nConfigure the rest of the options to your liking.", "headings": ["Configuration on APS Dashboard", "Configuration on Odoo"], "doc_id": "60f787cc96541275"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/payment_providers/asiapay.html", "title": "AsiaPay", "module": "invoicing", "section": "AsiaPay", "text": "# AsiaPay\n\nAsiaPay is an online payments provider established in Hong Kong and\ncovering several Asian countries and payment methods.\n\n## Configuration on AsiaPay Dashboard\n\n- Log into AsiaPay Dashboard according to the account provided by AsiaPay. PayDollar : For markets in HK,\nCN, MO, TW, SG, MY, IN, VN, NZ and AU PesoPay : For market in PH SiamPay : For market in TH BimoPay : For market in ID\nLog into AsiaPay Dashboard according to the account provided by AsiaPay.\n- PayDollar : For markets in HK,\nCN, MO, TW, SG, MY, IN, VN, NZ and AU\nPayDollar : For markets in HK,\nCN, MO, TW, SG, MY, IN, VN, NZ and AU\n- PesoPay : For market in PH\nPesoPay : For market in PH\n- SiamPay : For market in TH\nSiamPay : For market in TH\n- BimoPay : For market in ID\nBimoPay : For market in ID\n- Go to Profile ⣠Account Information . Copy the values of the Currency and Secure Hash fields and save them for later.\nGo to Profile ⣠Account Information . Copy the values of the Currency and Secure Hash fields and save them for later.\n- Go to Profile ⣠Payment Account Settings and enable the option Return Value Link (Datefeed) ; Enter your Odoo database URL followed by /payment/asiapay/webhook in the Return Value Link (Datefeed) text field. For example: https://yourcompany.odoo.com/payment/asiapay/webhook ; Click on Test to check if the webhook is working correctly.\n`/payment/asiapay/webhook`\n`https://yourcompany.odoo.com/payment/asiapay/webhook`\n- Click on Update to finalize the configuration.\nClick on Update to finalize the configuration.\n\n## Configuration on Odoo\n\n- Navigate to the payment provider AsiaPay and change its state\nto Enabled .\nNavigate to the payment provider AsiaPay and change its state\nto Enabled .\n- In the Credentials tab, choose the Brand of your Asiapay account. Then\nfill in the Merchant ID and Secure Hash Secret , and the Currency in the Configuration tab with the values you saved at the\nstep Configuration on AsiaPay Dashboard ; By default, the payment provider AsiaPay is configured to verify the secret hash with the hash\nfunction SHA1 . If a different function is set on your account , activate the developer mode and set the same value to the field Secure Hash Function in the Credentials tab.\n`SHA1`\n- Configure the rest of the options to your liking.\nConfigure the rest of the options to your liking.\n- Online payments", "headings": ["Configuration on AsiaPay Dashboard", "Configuration on Odoo"], "doc_id": "57978dd72adb63cf"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/payment_providers/authorize.html", "title": "Authorize.Net", "module": "invoicing", "section": "Authorize.Net", "text": "# Authorize.Net\n\nAuthorize.Net is a United States-based online payment solution\nprovider, allowing businesses to accept credit cards .\n\n## Configuration\n\n- Enabling a payment provider\nEnabling a payment provider\n\n### Credentials tab\n\nOdoo needs your API Credentials & Keys to connect with your Authorize.Net account, which\ncomprise:\n- API Login ID : The ID solely used to identify the account with Authorize.Net.\nAPI Login ID : The ID solely used to identify the account with Authorize.Net.\n- API Transaction Key\n- API Signature Key\n- API Client Key\nTo retrieve them, log into your Authorize.Net account, go to Account ⣠Settings\n⣠Security Settings ⣠API Credentials & Keys , generate your Transaction Key and Signature Key , and paste them on the related fields in Odoo. Then, click on Generate Client\nKey .\nTo test Authorize.Net with a sandbox account, change the State to Test\nMode . We recommend doing this on a test Odoo database, rather than on your main database.\nIf you use the Test Mode with a regular account, it results in the following error: The merchant login ID or password is invalid or the account is inactive .\n\n### Configuration tab\n\n#### Place a hold on a card\n\nWith Authorize.Net, you can enable the manual capture . If enabled, the funds are reserved for 30 days on the\ncustomerâs card, but not charged yet.\nAfter 30 days , the transaction is voided automatically by Authorize.Net.\n- Online payments\n\n## ACH payments (USA only)\n\nACH is an electronic funds transfer system used between bank\naccounts in the United States.\n\n### Configuration\n\nTo give customers the possibility to pay using ACH, sign up for Authorize.Net eCheckâs service . Once eCheck is activated, duplicate the\npreviously configured Authorize.Net payment provider on Odoo by going to Accounting\n⣠Configuration ⣠Payment Providers ⣠Authorize.net . Then, click the cog icon\n( â ) and select Duplicate . Change the providerâs name to differentiate both\nversions (e.g., Authorize.net - Banks ).\n`Authorize.net-Banks`\nWhen ready, change the providerâs State to Enabled for a regular account or Test Mode for a sandbox account.\n\n## Import an Authorize.Net statement\n\n### Export from Authorize.Net\n\nDownload the Excel import template.\n`DownloadtheExcelimporttemplate.`\n- Log in to Authorize.Net.\nLog in to Authorize.Net.\n- Go to Account ⣠Statements ⣠eCheck.Net Settlement Statement .\nGo to Account ⣠Statements ⣠eCheck.Net Settlement Statement .\n- Define an export range using an opening and closing batch settlement. All transactions within\nthe two batch settlements will be exported to Odoo.\nDefine an export range using an opening and closing batch settlement. All transactions within\nthe two batch settlements will be exported to Odoo.\n- Select all transactions within the desired range, copy them, and paste them into the Report 1 Download sheet of the Excel import template .\nSelect all transactions within the desired range, copy them, and paste them into the Report 1 Download sheet of the Excel import template .\nIn this case, the first batch (01/01/2021) of the year belongs to the settlement of 12/31/2020,\nso the opening settlement is from 12/31/2020.\nOnce the data is in the Report 1 Download sheet:\n- Go to the Transaction Search tab on Authorize.Net.\nGo to the Transaction Search tab on Authorize.Net.\n- Under the Settlement Date section, select the previously used range of batch\nsettlement dates in the From: and To: fields and click Search .\nUnder the Settlement Date section, select the previously used range of batch\nsettlement dates in the From: and To: fields and click Search .\n- When the list has been generated, click Download to File .\nWhen the list has been generated, click Download to File .\n- In the pop-up window, select Expanded Fields with CAVV Response/Comma Separated ,\nenable Include Column Headings , and click Submit .\nIn the pop-up window, select Expanded Fields with CAVV Response/Comma Separated ,\nenable Include Column Headings , and click Submit .\n- Open the text file, select All , copy the data, and paste it into the Report\n2 Download sheet of the Excel import template .\nOpen the text file, select All , copy the data, and paste it into the Report\n2 Download sheet of the Excel import template .\n- Transit lines are automatically filled in and updated in the transit for report 1 and transit for report 2 sheets of the Excel import template . Make sure all entries are present, and if not , copy the formula\nfrom previously filled-in lines of the transit for report 1 or 2 sheets\nand paste it into the empty lines.\nTransit lines are automatically filled in and updated in the transit for report 1 and transit for report 2 sheets of the Excel import template . Make sure all entries are present, and if not , copy the formula\nfrom previously filled-in lines of the transit for report 1 or 2 sheets\nand paste it into the empty lines.\nTo get the correct closing balance, do not remove any line from the Excel sheets.\n\n### Import into Odoo\n\nTo import the data into Odoo:\n- Open the Excel import template .\nOpen the Excel import template .\n- Copy the data from the transit for report 2 sheet and use paste special to only\npaste the values in the Odoo Import to CSV sheet.\nCopy the data from the transit for report 2 sheet and use paste special to only\npaste the values in the Odoo Import to CSV sheet.\n- Look for blue cells in the Odoo Import to CSV sheet. These are chargeback entries\nwithout any reference number. As they cannot be imported as such, go to Authorize.Net ⣠Account ⣠Statements ⣠eCheck.Net Settlement Statement .\nLook for blue cells in the Odoo Import to CSV sheet. These are chargeback entries\nwithout any reference number. As they cannot be imported as such, go to Authorize.Net ⣠Account ⣠Statements ⣠eCheck.Net Settlement Statement .\n- Look for Charge Transaction/Chargeback , and click it.\nLook for Charge Transaction/Chargeback , and click it.\n- Copy the invoice description, paste it into the Label cell of the Odoo\nImport to CSV sheet, and add Chargeback / before the description.\nCopy the invoice description, paste it into the Label cell of the Odoo\nImport to CSV sheet, and add Chargeback / before the description.\n`Chargeback/`\n- If there are multiple invoices, add a line into the Excel import template for each invoice and copy/paste the description into each respective Label line.\nIf there are multiple invoices, add a line into the Excel import template for each invoice and copy/paste the description into each respective Label line.\nFor combined chargeback/returns in the payouts, create a new line in the Excel import\ntemplate for each invoice.\n- Next, delete zero transaction and void transaction line items, and change the format\nof the Amount column in the Odoo Import to CSV sheet to Number .\nNext, delete zero transaction and void transaction line items, and change the format\nof the Amount column in the Odoo Import to CSV sheet to Number .\n- Go back to eCheck.Net Settlement Statement ⣠Search for a Transaction and\nsearch again for the previously used batch settlements dates.\nGo back to eCheck.Net Settlement Statement ⣠Search for a Transaction and\nsearch again for the previously used batch settlements dates.\n- Verify that the batch settlement dates on eCheck.Net match the related paymentsâ dates found in\nthe Date column of the Odoo Import to CSV .\nVerify that the batch settlement dates on eCheck.Net match the related paymentsâ dates found in\nthe Date column of the Odoo Import to CSV .\n- If it does not match, replace the date with the one from eCheck.Net. Sort the column by date ,\nand make sure the format is MM/DD/YYYY .\nIf it does not match, replace the date with the one from eCheck.Net. Sort the column by date ,\nand make sure the format is MM/DD/YYYY .\n`MM/DD/YYYY`\n- Copy the data - column headings included - from the Odoo Import to CSV sheet, paste\nit into a new Excel file, and save it using the CSV format.\nCopy the data - column headings included - from the Odoo Import to CSV sheet, paste\nit into a new Excel file, and save it using the CSV format.\n- Open the Accounting app, go to Configuration ⣠Journals , tick the Authorize.Net box, and click Favorites ⣠Import records ⣠Load\nfile . Select the CSV file and upload it into Odoo.\nOpen the Accounting app, go to Configuration ⣠Journals , tick the Authorize.Net box, and click Favorites ⣠Import records ⣠Load\nfile . Select the CSV file and upload it into Odoo.\nList of eCheck.Net return codes", "headings": ["Configuration", "Credentials tab", "Configuration tab", "ACH payments (USA only)", "Configuration", "Import an Authorize.Net statement", "Export from Authorize.Net", "Import into Odoo"], "doc_id": "0887a32fb4e71c9f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/payment_providers/buckaroo.html", "title": "Buckaroo", "module": "invoicing", "section": "Buckaroo", "text": "# Buckaroo\n\nBuckaroo is a Dutch-based company that offers several online payment\npossibilities.\n\n## Configuration on Buckaroo Plaza\n\n- Log into Buckaroo Plaza , go to My Buckaroo â£\nWebsites and select the Push settings tab.\nLog into Buckaroo Plaza , go to My Buckaroo â£\nWebsites and select the Push settings tab.\n- Tick the Enable Push Response check box in the Delayed and Push responses section.\nTick the Enable Push Response check box in the Delayed and Push responses section.\n- Enter the URL of your Odoo database, followed by /payment/buckaroo/webhook in both the Push URI Success/Pending and Push URI Failure text fields. For example: https://yourcompany.odoo.com/payment/buckaroo/webhook .\nEnter the URL of your Odoo database, followed by /payment/buckaroo/webhook in both the Push URI Success/Pending and Push URI Failure text fields. For example: https://yourcompany.odoo.com/payment/buckaroo/webhook .\n`/payment/buckaroo/webhook`\n`https://yourcompany.odoo.com/payment/buckaroo/webhook`\n- Leave the other fields as they are and click Save .\nLeave the other fields as they are and click Save .\n- In the General tab, copy the website Key (i.e., the key used to uniquely\nidentify your website with Buckaroo) and save it for later.\nIn the General tab, copy the website Key (i.e., the key used to uniquely\nidentify your website with Buckaroo) and save it for later.\n- Go to Configuration ⣠Security ⣠Secret key , enter or Generate a Secret key and click Save . Save the key for later.\nGo to Configuration ⣠Security ⣠Secret key , enter or Generate a Secret key and click Save . Save the key for later.\n\n## Configuration on Odoo\n\n- Navigate to the payment provider Buckaroo and change its state\nto Enabled .\nNavigate to the payment provider Buckaroo and change its state\nto Enabled .\n- In the Credentials tab, fill the Website Key and Secret Key fields with the values you saved at the step Configuration on Buckaroo Plaza .\nIn the Credentials tab, fill the Website Key and Secret Key fields with the values you saved at the step Configuration on Buckaroo Plaza .\n- Configure the options in the other tabs to your liking.\nConfigure the options in the other tabs to your liking.", "headings": ["Configuration on Buckaroo Plaza", "Configuration on Odoo"], "doc_id": "09849198ca9851c6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/payment_providers/demo.html", "title": "Demo", "module": "invoicing", "section": "Demo", "text": "# Demo\n\nOdooâs Demo Payment Provider allows you to test business flows involving online transactions\nwithout requiring real banking credentials.\n\n## Configuration\n\nEnabling a payment provider\nSwitch the state to Test Mode .\n\n## Payment outcome\n\nUpon checkout or when paying a bill online, you can choose the payment outcome when using the demo\npayment provider. To do so, click on the Payment Status drop-down menu and select the\ndesired outcome.\n\n## Transaction state\n\nIf you selected Pending as payment outcome , you can change the state of the\ntransaction straight from its form view. To access a transactionâs form view, activate the developer mode , and go to Accounting / Website â£\nConfiguration ⣠Payment Transactions . Then, change the status of a transaction by clicking on the\nstate bar ( Draft, Pending, Authorized, Confirmed, Cancelled, Error ).", "headings": ["Configuration", "Payment outcome", "Transaction state"], "doc_id": "4c0037c3fda22e05"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/payment_providers/flutterwave.html", "title": "Flutterwave", "module": "invoicing", "section": "Flutterwave", "text": "# Flutterwave\n\nFlutterwave is an online payments provider established in Nigeria and\ncovering several African countries and payment methods.\n\n## Configuration on Flutterwave Dashboard\n\n- Log into Flutterwave Dashboard and go to Settings ⣠API . Copy the values of the Public Key and Secret Key fields and save them for later.\nLog into Flutterwave Dashboard and go to Settings ⣠API . Copy the values of the Public Key and Secret Key fields and save them for later.\n- Go to Settings ⣠Webhooks and enter your Odoo database URL followed by /payment/flutterwave/webhook in the URL text field. For example: https://yourcompany.odoo.com/payment/flutterwave/webhook .\n`/payment/flutterwave/webhook`\n`https://yourcompany.odoo.com/payment/flutterwave/webhook`\n- Fill the Secret hash with a password that you generate and save its value for later.\nFill the Secret hash with a password that you generate and save its value for later.\n- Make sure all the remaining checkboxes are ticked.\nMake sure all the remaining checkboxes are ticked.\n- Click on Save to finalize the configuration.\nClick on Save to finalize the configuration.\n\n## Configuration on Odoo\n\n- Navigate to the payment provider Flutterwave and change its\nstate to Enabled .\nNavigate to the payment provider Flutterwave and change its\nstate to Enabled .\n- In the Credentials tab, fill the Public Key , Secret Key , and Webhook Secret with the values you saved at the step Configuration on Flutterwave Dashboard .\nIn the Credentials tab, fill the Public Key , Secret Key , and Webhook Secret with the values you saved at the step Configuration on Flutterwave Dashboard .\n- Configure the rest of the options to your liking. Important If you choose to allow saving payment methods, it is recommended to only enable card payments\nfrom Flutterwave dashboard, as only cards can be saved as payment tokens. To do so, go to your\nFlutterwave Dashboard and then to Settings ⣠Account Settings .\nConfigure the rest of the options to your liking.\nIf you choose to allow saving payment methods, it is recommended to only enable card payments\nfrom Flutterwave dashboard, as only cards can be saved as payment tokens. To do so, go to your\nFlutterwave Dashboard and then to Settings ⣠Account Settings .\n- Online payments", "headings": ["Configuration on Flutterwave Dashboard", "Configuration on Odoo"], "doc_id": "6139a72d05c11347"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/payment_providers/mercado_pago.html", "title": "Mercado Pago", "module": "invoicing", "section": "Mercado Pago", "text": "# Mercado Pago\n\nMercado Pago is an online payment provider covering several\ncountries, currencies and payment methods in Latin America.\n\n## Configuration on Mercado Pago Dashboard\n\n- Log into the Mercado Pago Dashboard and select your application or create a new one.\nLog into the Mercado Pago Dashboard and select your application or create a new one.\n- Select Credenciales de producción in the left part of the application page, then\nselect the industry, optionally enter your domain, and click Activar credenciales\nde producción .\nSelect Credenciales de producción in the left part of the application page, then\nselect the industry, optionally enter your domain, and click Activar credenciales\nde producción .\n- Copy the Access token and save it for later.\nCopy the Access token and save it for later.\nIf you are trying Mercado Pago as a test, select Credienciales de prueba in the left\npart of the application page, then copy the test Access token .\n\n## Configuration on Odoo\n\n- Navigate to the payment provider Mercado Pago and change its\nstate to Enabled .\nNavigate to the payment provider Mercado Pago and change its\nstate to Enabled .\n- In the Credentials tab, fill in the Access Token with the value you saved\nat the Configuration on Mercado Pago Dashboard step.\nIn the Credentials tab, fill in the Access Token with the value you saved\nat the Configuration on Mercado Pago Dashboard step.\n- Configure the rest of the options to your liking.\nConfigure the rest of the options to your liking.\n- Online payments\n- Mercado Pago Odoo webinar\nMercado Pago Odoo webinar", "headings": ["Configuration on Mercado Pago Dashboard", "Configuration on Odoo"], "doc_id": "5d15abfa0cdb7574"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/payment_providers/mollie.html", "title": "Mollie", "module": "invoicing", "section": "Mollie", "text": "# Mollie\n\nMollie is an online payments platform established in the Netherlands.\n\n## Mollie configuration\n\n- Create a Mollie account if necessary\nand log in to the Mollie Dashboard .\nCreate a Mollie account if necessary\nand log in to the Mollie Dashboard .\n- Go to Payments in the top menu, then click API keys .\nGo to Payments in the top menu, then click API keys .\n- Copy the Live API Key (or the Test API Key if you\nwish to test the integration without affecting live transactions) and save it for the Odoo configuration step.\nCopy the Live API Key (or the Test API Key if you\nwish to test the integration without affecting live transactions) and save it for the Odoo configuration step.\n\n## Odoo configuration\n\n- Navigate to the payment provider Mollie\nNavigate to the payment provider Mollie\n- Fill in the API Key with the value previously saved .\nFill in the API Key with the value previously saved .\n- Configure the remaining options as needed.\nConfigure the remaining options as needed.\n- Set the State field to Enabled (or Test Mode if you\nwant to test the integration without affecting live transactions ).\nSet the State field to Enabled (or Test Mode if you\nwant to test the integration without affecting live transactions ).", "headings": ["Mollie configuration", "Odoo configuration"], "doc_id": "39c3bcdf8a20e648"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/payment_providers/nuvei.html", "title": "Nuvei", "module": "invoicing", "section": "Nuvei", "text": "# Nuvei\n\nNuvei is a Canadian-based payment solution provider that covers\nseveral Latin American countries, the US, and Canada. It allows businesses to accept credit cards\nand several local payment methods.\n\n## Configuration on the Nuvei Dashboard\n\n- Create a Nuvei account, if necessary, via our referral page .\nCreate a Nuvei account, if necessary, via our referral page .\n- Nuvei uses two separate portals for Sandbox and Production environments. Utilize the Sandbox Dashboard to test the integration without charging\nyour customers. Once you are ready to accept payments, switch to the Production Dashboard .\nNuvei uses two separate portals for Sandbox and Production environments. Utilize the Sandbox Dashboard to test the integration without charging\nyour customers. Once you are ready to accept payments, switch to the Production Dashboard .\n- Go to Settings in the left sidebar, select My Integration Settings , then\nselect your payment page in the Website dropdown menu.\nGo to Settings in the left sidebar, select My Integration Settings , then\nselect your payment page in the Website dropdown menu.\n- Copy the Merchant ID and Site ID values and save them for later .\nCopy the Merchant ID and Site ID values and save them for later .\n- Click Reveal , then copy the Secret Key and save it for later .\nClick Reveal , then copy the Secret Key and save it for later .\nNuvei supports additional functionality relating to error handling from the same page as above.\nFor example, the following options are available for handling failed transactions: Enable User Trap to redirect users back to the payment page and allow them to attempt\nanother deposit or Decline Recovery to display a popup suggesting alternative or\nsimilar payment methods.\n\n## Configuration on Odoo\n\n- Navigate to the payment provider Nuvei and fill in the Merchant Identifier , Site Identifier , and Secret Key fields\nwith the information saved at the step Configuration on the Nuvei Dashboard .\nNavigate to the payment provider Nuvei and fill in the Merchant Identifier , Site Identifier , and Secret Key fields\nwith the information saved at the step Configuration on the Nuvei Dashboard .\n- To activate the provider, change its state to Enabled or Test Mode .\nTo activate the provider, change its state to Enabled or Test Mode .\n- Configure the rest of the options to your liking.\nConfigure the rest of the options to your liking.\nYou can also test Nuvei using the test mode and your Sandbox\nDashboard values.\n\n## Payment methods\n\nMost Nuvei payment methods are region specific . The supported payment methods and brands for\neach country are listed below:\n- Boleto\n- Card (AMEX, Mastercard, Visa)\nCard (AMEX, Mastercard, Visa)\n- Card (AMEX, Mastercard, Visa)\nCard (AMEX, Mastercard, Visa)\n- AstroPay TEF (Banco Guayaquil,\nBanco Pichincha, Facilito)\nAstroPay TEF (Banco Guayaquil,\nBanco Pichincha, Facilito)\n- Boleto\n- Card (AMEX, Mastercard, Visa)\nCard (AMEX, Mastercard, Visa)\n- Card (AMEX, Mastercard, Visa)\nCard (AMEX, Mastercard, Visa)\n- Oxxo Pay\n- Card (AMEX, Mastercard, Visa)\nCard (AMEX, Mastercard, Visa)\n- Card (AMEX, Mastercard, Visa)\nCard (AMEX, Mastercard, Visa)\n- Boleto\n- Card (AMEX, Mastercard, Visa)\nCard (AMEX, Mastercard, Visa)\n- WebPay\n- Card (AMEX, Mastercard, Visa)\nCard (AMEX, Mastercard, Visa)\n- Card (AMEX, Mastercard, Visa)\nCard (AMEX, Mastercard, Visa)\n- Card (AMEX, Mastercard, Visa)\nCard (AMEX, Mastercard, Visa)\n- Local Payments (Abitab,\nRedPagos)\nLocal Payments (Abitab,\nRedPagos)", "headings": ["Configuration on the Nuvei Dashboard", "Configuration on Odoo", "Payment methods"], "doc_id": "38060e8abba28f5b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/payment_providers/paypal.html", "title": "PayPal", "module": "invoicing", "section": "PayPal", "text": "# PayPal\n\nPaypal is an American online payment provider available worldwide and\none of the few that does not charge a subscription fee.\nWhile PayPal is available in over 200 countries/regions , only a selection of currencies are\nsupported .\n\n## Configuration in PayPal\n\n- Log into your PayPal Developer Dashboard .\nLog into your PayPal Developer Dashboard .\n- Click Apps & Credentials and click Create App .\nClick Apps & Credentials and click Create App .\n- Enter an App Name and click Create App .\nEnter an App Name and click Create App .\n- Copy the Client ID and Secret and save them for later .\nCopy the Client ID and Secret and save them for later .\nIf you use customer names or addresses that include accented or non-Latin characters, you must configure the encoding format of the payment request sent by Odoo to PayPal to avoid\ntransaction failures without notice. To do so, access the PayPal button language encoding\nsetting , click More Options , and set the Encoding field to UTF-8 .\nIf you are trying PayPal as a test, access your PayPal Sandbox account and configure the encoding format for your sandbox account .\nFor encrypted website payments & EWP_SETTINGS errors, please check the PayPal documentation .\n\n## Configuration in Odoo\n\n- Navigate to the payment provider PayPal .\nNavigate to the payment provider PayPal .\n- In the Credentials tab, enter the Email linked to your PayPal account,\nthen fill in the Client ID and Client Secret fields with the values you\nsaved at the step Configuration in PayPal .\nIn the Credentials tab, enter the Email linked to your PayPal account,\nthen fill in the Client ID and Client Secret fields with the values you\nsaved at the step Configuration in PayPal .\n- Click Generate your webhook to create the Webhook ID .\nClick Generate your webhook to create the Webhook ID .\n- Set the State field to Enabled , and make sure the PayPal payment provider\nis Published .\nSet the State field to Enabled , and make sure the PayPal payment provider\nis Published .\n- Configure the remaining options as desired.\nConfigure the remaining options as desired.\n\n## Testing\n\nPayPal provides two sandbox accounts that you can use to simulate live transactions:\n- A business account (to use as the merchant account, e.g., ab-1abc12345678@business.example.com );\nA business account (to use as the merchant account, e.g., ab-1abc12345678@business.example.com );\n`ab-1abc12345678@business.example.com`\n- A default personal account (to use as the shopper account, e.g., ba-9cba87654321@personal.example.com ).\nA default personal account (to use as the shopper account, e.g., ba-9cba87654321@personal.example.com ).\n`ba-9cba87654321@personal.example.com`\nTo test the PayPal payment workflow in Odoo:\n- Log into the Paypal Developer Site using your PayPal\ncredentials and go to Testing Tools ⣠Sandbox Accounts .\nLog into the Paypal Developer Site using your PayPal\ncredentials and go to Testing Tools ⣠Sandbox Accounts .\n- Click the ( ellipsis ) icon next to the sandbox business account\nand select View/Edit account .\nClick the ( ellipsis ) icon next to the sandbox business account\nand select View/Edit account .\n- Copy the Email , Client ID , and Secret and save them for the\nnext step.\nCopy the Email , Client ID , and Secret and save them for the\nnext step.\n- In Odoo, configure the PayPal payment provider with the values saved at the previous step and set the State field to Test Mode .\nIn Odoo, configure the PayPal payment provider with the values saved at the previous step and set the State field to Test Mode .\nYou can then run a test transaction from Odoo using the sandbox personal account.\n- Test mode\n- Online payments", "headings": ["Configuration in PayPal", "Configuration in Odoo", "Testing"], "doc_id": "0a8f4f45d2056776"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/payment_providers/razorpay.html", "title": "Razorpay", "module": "invoicing", "section": "Razorpay", "text": "# Razorpay\n\nRazorpay is an online payments provider established in India that\nsupports more than 100 payment methods.\n\n## Create a Razorpay account with Odoo (Indian companies only)\n\n- This method is only available for Indian companies.\nThis method is only available for Indian companies.\n- This flow does not support the test mode .\nThis flow does not support the test mode .\n- Navigate to the Razorpay payment provider and\nclick Connect .\nNavigate to the Razorpay payment provider and\nclick Connect .\n- Go through the account creation process and enter the verification codes when prompted. Tip If you already have a Razorpay account, enter your Razorpay credentials, select the account\nyou want to link to your Odoo database (if applicable), then click Continue .\nGo through the account creation process and enter the verification codes when prompted.\nIf you already have a Razorpay account, enter your Razorpay credentials, select the account\nyou want to link to your Odoo database (if applicable), then click Continue .\n- At the end of the process, click Authorize . If all required information\nhas been submitted, you are then redirected to Odoo, and the payment provider is Enabled .\nAt the end of the process, click Authorize . If all required information\nhas been submitted, you are then redirected to Odoo, and the payment provider is Enabled .\n\n## Manual credentials and webhook input\n\n### Razorpay configuration\n\n- Create a Razorpay account if necessary and log into the Razorpay Dashboard .\nCreate a Razorpay account if necessary and log into the Razorpay Dashboard .\n- Go to the Payments tab at the top of the page.\nGo to the Payments tab at the top of the page.\n- Toggle the Test Mode switch in the left menu to try the integration without\ncharging customers. Toggle it off once you are ready to accept real payments.\nToggle the Test Mode switch in the left menu to try the integration without\ncharging customers. Toggle it off once you are ready to accept real payments.\n- Click Account & Settings in the left menu, then, under Website and app\nsettings , select API Keys .\nClick Account & Settings in the left menu, then, under Website and app\nsettings , select API Keys .\n- Copy the values of the Key Id and Secret Key fields and save them for\nlater.\nCopy the values of the Key Id and Secret Key fields and save them for\nlater.\n- Click Account & Settings in the left menu, then, under Website and app\nsettings , select Webhooks .\nClick Account & Settings in the left menu, then, under Website and app\nsettings , select Webhooks .\n- Click Add New Webhook , then enter your Odoo database URL followed by /payment/razorpay/webhook in the Webhook URL field. For example: https://example.odoo.com/payment/razorpay/webhook .\n`/payment/razorpay/webhook`\n`https://example.odoo.com/payment/razorpay/webhook`\n- Fill the Secret field with a password of your choice and save it for later.\nFill the Secret field with a password of your choice and save it for later.\n- Enable the following events: payment.authorized , payment.captured , payment.failed , refund.failed , and refund.processed .\nEnable the following events: payment.authorized , payment.captured , payment.failed , refund.failed , and refund.processed .\n- Click Create Webhook to finalize the configuration.\nClick Create Webhook to finalize the configuration.\nThe Recurring payments feature must\nbe activated to accept recurring payments. To enable this feature, submit a request to the Razorpay Support team .\n\n### Odoo configuration\n\n- Activate developer mode .\nActivate developer mode .\n- Navigate to the Razorpay payment provider .\nNavigate to the Razorpay payment provider .\n- In the Credentials tab, fill the Key Id , Key Secret , and Webhook Secret with the values you saved during Razorpay configuration .\nIn the Credentials tab, fill the Key Id , Key Secret , and Webhook Secret with the values you saved during Razorpay configuration .\n- Configure the remaining options as needed.\nConfigure the remaining options as needed.\n- Set the State field to Enabled (or Test Mode if you are\ntrying Razorpay as a test ).\nSet the State field to Enabled (or Test Mode if you are\ntrying Razorpay as a test ).\nIf you configure Odoo to capture amounts manually :\n- Manual voiding of a transaction is not supported by Razorpay.\nManual voiding of a transaction is not supported by Razorpay.\n- Transactions that remain uncaptured for more than five days are automatically voided .\nTransactions that remain uncaptured for more than five days are automatically voided .", "headings": ["Create a Razorpay account with Odoo (Indian companies only)", "Manual credentials and webhook input", "Razorpay configuration", "Odoo configuration"], "doc_id": "cba023e484d6b8ba"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/payment_providers/sdd.html", "title": "SEPA Direct Debit", "module": "invoicing", "section": "SEPA Direct Debit", "text": "# SEPA Direct Debit\n\nSEPA (Single Euro Payments Area) is a payment-integration initiative of the European Union that\nfacilitates standardized and simplified electronic payments in euros across participating countries.\nSEPA Direct Debit (SDD) is a payment provider that allows future payments to be collected from\ncustomersâ bank accounts based on a signed SEPA Direct Debit mandate . This is particularly useful for recurring payments based on a subscription .\nTo use the SEPA Direct Debit (SDD) payment provider and create SEPA Direct Debit mandates :\n- The invoice being paid must be for an amount in euros.\nThe invoice being paid must be for an amount in euros.\n- The SEPA Direct Deposit (SDD) feature must be enabled, and the companyâs Creditor Identifier must be defined in the Accounting or Invoicing settings .\nThe SEPA Direct Deposit (SDD) feature must be enabled, and the companyâs Creditor Identifier must be defined in the Accounting or Invoicing settings .\n\n## Configuration\n\nTo configure SEPA Direct Debit , follow these steps:\n- Navigate to the SEPA Direct Debit payment provider .\nNavigate to the SEPA Direct Debit payment provider .\n- In the Configuration tab, select whether the memo or Communication to be\ndisplayed alongside the payment instructions should be: Based on Document Reference : the sales order or invoice number Based on Customer ID : the customer identifier\nIn the Configuration tab, select whether the memo or Communication to be\ndisplayed alongside the payment instructions should be:\n- Based on Document Reference : the sales order or invoice number\nBased on Document Reference : the sales order or invoice number\n- Based on Customer ID : the customer identifier\nBased on Customer ID : the customer identifier\n- Select the Enable QR codes check box to activate QR code payments. Note Additional accounting setup is required\nto use QR codes.\nSelect the Enable QR codes check box to activate QR code payments.\nAdditional accounting setup is required\nto use QR codes.\n- Edit the default payment instructions in the Messages tab to include your bank\naccount number . These instructions are displayed at the end of the checkout process on your\necommerce website or on the customer portal.\nEdit the default payment instructions in the Messages tab to include your bank\naccount number . These instructions are displayed at the end of the checkout process on your\necommerce website or on the customer portal.\n- Set the State field to Enabled .\nSet the State field to Enabled .\n- Leave the Currencies field set to the default EUR tag to ensure SDD is only available for payments in euros.\nLeave the Currencies field set to the default EUR tag to ensure SDD is only available for payments in euros.\n- The Bank Account defined for the Payment Journal must be a valid IBAN.\nThe Bank Account defined for the Payment Journal must be a valid IBAN.\nYou can also test SEPA direct debit payments using the Test mode .\n\n## Online payments withSDD\n\nCustomers selecting SDD as a payment method are prompted to enter their IBAN to complete the SEPA Direct Debit mandate .\nThe SDD mandate is then automatically created in Draft based on the provided IBAN. To\nvalidate the information, customers must confirm each new mandate with a successful bank transfer of\nthe expected amount using the specified payment reference (communication) defined in the SEPA Direct Debit payment providerâs form . Once this initial payment is\nreceived and reconciled , the mandate is automatically\nvalidated and updated to the Active status. Once a mandate is active, it is reused for\nall subsequent payments made with the SDD payment method. You can then collect them by uploading them to your online banking interface .\nSEPA Direct Debit (SDD) customer payments\n- Mandates are automatically closed 36 months\nafter the date of the last collection.\nMandates are automatically closed 36 months\nafter the date of the last collection.\n- SDD is also available as a payment method through other providers, such as Adyen , Buckaroo , and Stripe . In these cases, SDD mandates are handled\nexternally by the payment provider.\nSDD is also available as a payment method through other providers, such as Adyen , Buckaroo , and Stripe . In these cases, SDD mandates are handled\nexternally by the payment provider.", "headings": ["Configuration", "Online payments withSDD"], "doc_id": "f00d828c2670bc41"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/payment_providers/stripe.html", "title": "Stripe", "module": "invoicing", "section": "Stripe", "text": "# Stripe\n\nStripe is a United States-based online payment solution provider allowing\nbusinesses to accept credit cards and other payment methods.\n- List of countries supported by Stripe\nList of countries supported by Stripe\n- List of payment methods supported by Stripe\nList of payment methods supported by Stripe\n- Online payments\n- Use Stripe as a payment terminal in Point of Sale\nUse Stripe as a payment terminal in Point of Sale\n\n## Create your Stripe account with Odoo\n\nTo create a new Stripe account and link it to your Odoo database, make sure the companyâs Email is configured in the companyâs settings , then\nfollow the steps below according to your hosting type:\n- Navigate to the payment provider Stripe and\nclick Connect Stripe .\nNavigate to the payment provider Stripe and\nclick Connect Stripe .\n- Go through the setup process and confirm your email address when Stripe sends you a\nconfirmation email.\nGo through the setup process and confirm your email address when Stripe sends you a\nconfirmation email.\n- At the end of the process, click Agree and submit . If all requested information\nhas been submitted, you are then redirected to Odoo, and your payment provider is enabled.\nAt the end of the process, click Agree and submit . If all requested information\nhas been submitted, you are then redirected to Odoo, and your payment provider is enabled.\n- Navigate to the payment provider Stripe and\nclick Connect Stripe .\nNavigate to the payment provider Stripe and\nclick Connect Stripe .\n- Go through the setup process and confirm your email address when Stripe sends you a\nconfirmation email.\nGo through the setup process and confirm your email address when Stripe sends you a\nconfirmation email.\n- At the end of the process, click Agree and submit ; you are then redirected to\nthe payment provider Stripe in Odoo.\nAt the end of the process, click Agree and submit ; you are then redirected to\nthe payment provider Stripe in Odoo.\n- Fill in your credentials .\nFill in your credentials .\n- Set the State field to Enabled .\nSet the State field to Enabled .\nIf you have created an account instead of linking an existing one , enable the developer mode , then\nclick Reset your Stripe Account on the Stripe payment provider form, then fill in your Stripe accountâs credentials .\n\n## Manual credential input\n\nManual credential input is needed, for example, when linking an existing Stripe account to your\nOdoo database, when using an account created on Odoo.sh or On-premise , or when testing Stripe without affecting live\ntransactions .\n\n### Stripe configuration\n\n- Go to the API keys page on Stripe , or log into\nyour Stripe dashboard and go to Developers ⣠API Keys .\nGo to the API keys page on Stripe , or log into\nyour Stripe dashboard and go to Developers ⣠API Keys .\n- In the Standard keys section, copy the Publishable key and the Secret key and save them for the Odoo configuration step.\nIn the Standard keys section, copy the Publishable key and the Secret key and save them for the Odoo configuration step.\n\n### Odoo configuration\n\n- Enable the developer mode .\nEnable the developer mode .\n- Navigate to the Stripe payment provider .\nNavigate to the Stripe payment provider .\n- In the Credentials tab, fill in the Publishable Key and Secret Key fields with the values you previously saved .\nIn the Credentials tab, fill in the Publishable Key and Secret Key fields with the values you previously saved .\n- Click Generate your webhook .\nClick Generate your webhook .\n- Configure the remaining options as needed.\nConfigure the remaining options as needed.\n- Set the State field to Enabled .\nSet the State field to Enabled .\n- You can also test Stripe without affecting live transactions using the test mode and the API keys of your Stripe accountâs Test Mode or\na sandbox environment .\nYou can also test Stripe without affecting live transactions using the test mode and the API keys of your Stripe accountâs Test Mode or\na sandbox environment .\n- To link the same Stripe account to multiple companies in a database, create an account and fill in the credentials for one company, then reuse the same credentials and\nwebhook for the others. To view the webhook, go to the Webhooks page on Stripe , or log into your Stripe dashboard and go to Developers ⣠Webhooks . Click the destination in the list, then click the ( Reveal secret ) icon next to the Signing secret field and copy the value.\nTo link the same Stripe account to multiple companies in a database, create an account and fill in the credentials for one company, then reuse the same credentials and\nwebhook for the others. To view the webhook, go to the Webhooks page on Stripe , or log into your Stripe dashboard and go to Developers ⣠Webhooks . Click the destination in the list, then click the ( Reveal secret ) icon next to the Signing secret field and copy the value.\n\n## Enable Apple Pay\n\nTo allow customers to use the Apple Pay button to pay for their eCommerce orders, navigate to\nthe Stripe payment provider , then go to the Configuration tab, enable Allow Express Checkout , and click Enable Apple Pay .\nExpress checkout and Google Pay\nStripe allows to manually capture and refund payments either from Odoo or directly from the Stripe dashboard.", "headings": ["Create your Stripe account with Odoo", "Manual credential input", "Stripe configuration", "Odoo configuration", "Enable Apple Pay"], "doc_id": "9e733c6682c88b22"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/payment_providers/wire_transfer.html", "title": "Wire transfers", "module": "invoicing", "section": "Wire transfers", "text": "# Wire transfers\n\nThe Wire Transfer payment method allows you to provide payment instructions to your customers,\nsuch as your bank details and a reference to include with the payment. These instructions are\ndisplayed after the customer selects Wire Transfer as the payment method and clicks the Pay now button at the end of the checkout process on your ecommerce website or\non the customer portal.\n- While this method is widely accessible and requires minimal setup, it is not efficient\nprocess-wise. It is recommended to set up a payment provider instead.\nWhile this method is widely accessible and requires minimal setup, it is not efficient\nprocess-wise. It is recommended to set up a payment provider instead.\n- Online orders remain in the Quotation sent (i.e., unpaid order) stage until you\nreceive the payment and manually Confirm the order.\nOnline orders remain in the Quotation sent (i.e., unpaid order) stage until you\nreceive the payment and manually Confirm the order.\nWire transfer can be used as a template for other payment methods that are processed\nmanually, such as checks, by renaming or duplicating it.\n\n## Configuration\n\nTo configure Wire Transfer :\n- Navigate to the Wire Transfer payment provider .\nNavigate to the Wire Transfer payment provider .\n- In the Configuration tab, select whether the memo or Communication to be\ndisplayed alongside the payment instructions should be: Based on Document Reference : the sales order or invoice number Based on Customer ID : the customer identifier\nIn the Configuration tab, select whether the memo or Communication to be\ndisplayed alongside the payment instructions should be:\n- Based on Document Reference : the sales order or invoice number\nBased on Document Reference : the sales order or invoice number\n- Based on Customer ID : the customer identifier\nBased on Customer ID : the customer identifier\n- Enable Enable QR codes to activate QR code payments. Note Additional accounting setup is required\nto use QR codes.\nEnable Enable QR codes to activate QR code payments.\nAdditional accounting setup is required\nto use QR codes.\n- Define the payment instructions in the Messages tab. If a bank account has already been defined, the account number is automatically added to the\ndefault message generated by Odoo. You can also add it afterward and update the message by\nclicking Reload pending message .\nDefine the payment instructions in the Messages tab. If a bank account has already been defined, the account number is automatically added to the\ndefault message generated by Odoo. You can also add it afterward and update the message by\nclicking Reload pending message .\n- Set the State field to Enabled .\nSet the State field to Enabled .\nYou can also test wire transfers using the Test mode .", "headings": ["Configuration"], "doc_id": "04dad1940c86e260"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/payment_providers/worldline.html", "title": "Worldline", "module": "invoicing", "section": "Worldline", "text": "# Worldline\n\nWorldline is a France-based company and the worldâs fourth largest\npayment provider.\n\n## Settings in Worldline\n\n### Create an API user\n\nIt is recommended to set up an API user to create transactions from Odoo to ensure that your\nWorldline configuration remains safe even if credentials are compromised. Additionally, API users do\nnot require frequent password updates like regular accounts.\nTo create an API user , proceed as follows:\n- Log into your Worldline Merchant Portal ,\nclick the ( menu ) icon, and select Back Office .\nLog into your Worldline Merchant Portal ,\nclick the ( menu ) icon, and select Back Office .\n- Go to Configuration ⣠Users and click on New User .\nGo to Configuration ⣠Users and click on New User .\n- Configure the following fields: Specify a UserID , Userâs name , E-mail address , and Timezone of your choice. Set the Profile field to Admin . Enable Special user for API .\nConfigure the following fields:\n- Specify a UserID , Userâs name , E-mail address , and Timezone of your choice.\nSpecify a UserID , Userâs name , E-mail address , and Timezone of your choice.\n- Set the Profile field to Admin .\nSet the Profile field to Admin .\n- Enable Special user for API .\nEnable Special user for API .\n- If you have already set up a user, make sure it is activated without any error.\nIf you have already set up a user, make sure it is activated without any error.\n- To test the payment flow with Worldline, use their test environment together with the test mode .\nTo test the payment flow with Worldline, use their test environment together with the test mode .\n\n### Set up Worldline for Odoo\n\nWorldline must now be configured to accept payments from Odoo.\n- From your merchant portal, go to Developer ⣠Payment API and click on Generate API key . Copy the API key ID and the Secret API key and save them for later .\nFrom your merchant portal, go to Developer ⣠Payment API and click on Generate API key . Copy the API key ID and the Secret API key and save them for later .\n- Go to Developer ⣠Webhooks and click on Generate webhook keys .\nCopy the Webhook ID and the associated Secret webhook key and\nsave them for later .\nGo to Developer ⣠Webhooks and click on Generate webhook keys .\nCopy the Webhook ID and the associated Secret webhook key and\nsave them for later .\n- Click Add webhook endpoint , enter your Odoo databaseâs URL followed by /payment/worldline/webhook in the Endpoint url field, and Confirm . For example: https://example.odoo.com/payment/worldline/webhook .\n`/payment/worldline/webhook`\n`https://example.odoo.com/payment/worldline/webhook`\n\n## Settings in Odoo\n\nTo set up Worldline in Odoo:\n- Navigate to the payment provider Worldline and change its\nstate to Enabled .\nNavigate to the payment provider Worldline and change its\nstate to Enabled .\n- In the Credentials tab, enter the PSPID of your Worldline account and\nfill in the API Key , API Secret , Webhook Key , and Webhook Secret with the values you saved at the step Set up Worldline for\nOdoo .\nIn the Credentials tab, enter the PSPID of your Worldline account and\nfill in the API Key , API Secret , Webhook Key , and Webhook Secret with the values you saved at the step Set up Worldline for\nOdoo .\n- Configure the rest of the options to your liking.\nConfigure the rest of the options to your liking.", "headings": ["Settings in Worldline", "Create an API user", "Set up Worldline for Odoo", "Settings in Odoo"], "doc_id": "0d712f34e11f1666"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/finance/payment_providers/xendit.html", "title": "Xendit", "module": "invoicing", "section": "Xendit", "text": "# Xendit\n\nXendit is an Indonesian-based payment solution provider that covers\nseveral Southeast Asian countries. It allows businesses to accept credit cards as well as several\nlocal payment methods.\n- Credit card payments are processed through Odoo, while all other payment methods are handled\nvia Xenditâs website.\nCredit card payments are processed through Odoo, while all other payment methods are handled\nvia Xenditâs website.\n- Xendit supports card payment tokenization, provided the customer has requested Merchant\nInitiated Transaction (MIT) from Xendit Support .\nXendit supports card payment tokenization, provided the customer has requested Merchant\nInitiated Transaction (MIT) from Xendit Support .\n\n## Configuration on the Xendit Dashboard\n\n- Create a Xendit account if necessary\nand log in to the Xendit Dashboard .\nCreate a Xendit account if necessary\nand log in to the Xendit Dashboard .\n- Check your account mode in the top left corner of the page. Use the Test Mode to try\nthe integration without charging your customers. Switch to Live Mode once you are\nready to accept payments.\nCheck your account mode in the top left corner of the page. Use the Test Mode to try\nthe integration without charging your customers. Switch to Live Mode once you are\nready to accept payments.\n- Navigate to Configuration: Settings in the left part of the application page.\nIn the Developers section, click API Keys .\nNavigate to Configuration: Settings in the left part of the application page.\nIn the Developers section, click API Keys .\n- Click Generate Secret Key . In the popup box, enter any API key name ,\nselect Write for the Money-in Products permission and None for all other permissions then click Generate key .\nClick Generate Secret Key . In the popup box, enter any API key name ,\nselect Write for the Money-in Products permission and None for all other permissions then click Generate key .\n- Confirm your password to display your API key. Copy or download the key and save\nthis information securely for later . This is the only time the API key can be viewed or\ndownloaded.\nConfirm your password to display your API key. Copy or download the key and save\nthis information securely for later . This is the only time the API key can be viewed or\ndownloaded.\n- Once completed, scroll down the page to the Webhooks section to generate\nthe webhook token.\nOnce completed, scroll down the page to the Webhooks section to generate\nthe webhook token.\n- Under Webhook verification token , click View Webhook Verification Token ,\nthen confirm your password to display the token. Save it for later.\nUnder Webhook verification token , click View Webhook Verification Token ,\nthen confirm your password to display the token. Save it for later.\n- In the Webhook URL section, enter your Odoo databaseâs URL, followed by /payment/xendit/webhook (e.g., https://example.odoo.com/payment/xendit/webhook ) in the field Invoices paid and click the Test and save button next to it.\nIn the Webhook URL section, enter your Odoo databaseâs URL, followed by /payment/xendit/webhook (e.g., https://example.odoo.com/payment/xendit/webhook ) in the field Invoices paid and click the Test and save button next to it.\n`/payment/xendit/webhook`\n`https://example.odoo.com/payment/xendit/webhook`\n- To allow recurring payments for credit cards, go to Configuration: Payment\nChannels in the left part of the application page. Then, hover your mouse over the Visa, Mastercard, JCB, Amex channel, click View Details , and enable Recurring Payments by toggling the related switch.\nTo allow recurring payments for credit cards, go to Configuration: Payment\nChannels in the left part of the application page. Then, hover your mouse over the Visa, Mastercard, JCB, Amex channel, click View Details , and enable Recurring Payments by toggling the related switch.\n\n## Configuration on Odoo\n\n- Navigate to the payment provider Xendit and change its state\nto Enabled .\nNavigate to the payment provider Xendit and change its state\nto Enabled .\n- Fill in the Secret Key and Webhook Token fields with the\ninformation saved at the step Configuration on the Xendit Dashboard .\nFill in the Secret Key and Webhook Token fields with the\ninformation saved at the step Configuration on the Xendit Dashboard .\n- Configure the rest of the options to your liking.\nConfigure the rest of the options to your liking.", "headings": ["Configuration on the Xendit Dashboard", "Configuration on Odoo"], "doc_id": "0230142a4b026f1f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/apps_modules.html", "title": "Apps and modules", "module": "general", "section": "Apps and modules", "text": "# Apps and modules\n\nInstall , upgrade and uninstall any needed apps and modules from the Apps dashboard.\nBy default, an Apps filter is applied. To search for modules too, select Extra from the Filters .\nAdding or removing apps can significantly affect other apps in the database and modify\nsubscription costs. Consider carefully or test the changes in a staging environment before\nproceeding.\n- Administrators manage the database : The administrator of the database is responsible for\nits usage, as they know best how their organization works.\nAdministrators manage the database : The administrator of the database is responsible for\nits usage, as they know best how their organization works.\n- Odoo apps can have dependencies : Installing some apps and features with dependencies may\nalso install additional apps and modules that are technically required, even if database users\ndo not actively use them.\nOdoo apps can have dependencies : Installing some apps and features with dependencies may\nalso install additional apps and modules that are technically required, even if database users\ndo not actively use them.\n- Duplicate the database to test apps : Testing on a duplicate database reveals what app\ndependencies may be required or what database may be erased. Learn how to duplicate an Odoo Online database or an Odoo On-premise\ndatabase .\nDuplicate the database to test apps : Testing on a duplicate database reveals what app\ndependencies may be required or what database may be erased. Learn how to duplicate an Odoo Online database or an Odoo On-premise\ndatabase .\n\n## Install apps and modules\n\nFrom the main Odoo dashboard, open the Apps app, then click on the search bar to\nfind the app to be installed or scroll to find it. From here, click Activate on the\nappâs card.\nIf the app or module to be installed is not listed, update the app list by activating developer mode , and then go to Apps ⣠Update Apps\nList , and then click Update .\n\n## Upgrade apps and modules\n\nWith each new Odoo release , new improvements\nor app features are added. Upgrade the app to use these new improvements and features.\nGo to Apps and then on the app to upgrade, click the (vertical ellipsis) icon and select Upgrade .\n\n## Uninstall apps and modules\n\nUninstalling apps also deletes their database records. Test uninstalling apps on a duplicated\ndatabase before removing apps on a production database.\nSome apps have dependencies, meaning that one app requires another. Therefore, uninstalling one\napp may uninstall multiple apps and modules.\nGo to Apps and then on the app to uninstall, click the (vertical ellipsis) icon and select Uninstall to open the Uninstall module pop-up window.\nThe Apps to Uninstall section lists the applications to be uninstalled.\nSelect the Show All checkbox to display all module dependencies.\nThe Documents to Delete section lists the database records to be deleted.\nTo proceed with uninstalling the app, its dependencies, and all related database records, click Uninstall .\nThe Restaurant app requires the Point of Sale app to function, so uninstalling the Point of Sale app will also uninstall the Restaurant app, and any related records.", "headings": ["Install apps and modules", "Upgrade apps and modules", "Uninstall apps and modules"], "doc_id": "e47e4df5b67630d3"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/companies.html", "title": "Companies", "module": "general", "section": "Companies", "text": "# Companies\n\nIn Odoo, a company is an individual business entity that operates independently, with its own legal\nidentity, financial records, and specific operational settings.\n- Branches\n- Multi-company\n\n## Configuration\n\nTo set up a company, follow these steps:\n- Configure the company details .\nConfigure the company details .\n- Manage users and their access rights .\nManage users and their access rights .\n- Customize the document layout .\nCustomize the document layout .\n\n### Company\n\nTo create a company, open the Settings app, navigate to the Companies section, and click Manage Companies . In the Companies list view, click New and configure the following fields:\n- Company Name\n- Address\n- Tax ID : tax identification number.\nTax ID : tax identification number.\n- LEI : legal entity identifier.\nLEI : legal entity identifier.\n- Company ID : companyâs registry number, if different from Tax ID\nCompany ID : companyâs registry number, if different from Tax ID\n- Currency\n- Phone and Mobile\n- Website\n- Email Domain\nUpload the companyâs logo and Save .\n- Alternatively, it is possible to create a company by going to Settings â£\nUsers & Companies ⣠Companies .\nAlternatively, it is possible to create a company by going to Settings â£\nUsers & Companies ⣠Companies .\n- The companyâs General information may vary based on the fiscal localization .\nThe companyâs General information may vary based on the fiscal localization .\n\n### Users\n\nAfter setting up a company, add users and configure their access and access rights .\nUsers in multi-company environment\n\n### Document layout\n\nConfigure the default layout for all company documents.\n\n## Branches\n\nBranches represent subdivisions within a company, such as regional offices or departments, that\noperate under a common parent company. They support hierarchical company structures through configurable settings , enabling comprehensive or branch-specific views with\nflexible access control , entity-specific or\nshared record visibility , and customizable reporting .\nIndependent subsidiaries should be created as additional companies, not branches.\n- Multi-company\n- Branch accounting\n\n### Configuration\n\nEach branch is linked to its parent company but may contain different or specific information, such\nas its address or logo. A branch can be a parent company of branches at a lower level to create a\nmulti-level architecture.\n- Clarify the companyâs structure and hierarchy before creating companies and branches in Odoo. A\ncompany defined as a parent cannot be converted into a branch later, as doing so may result in access rights issues.\nClarify the companyâs structure and hierarchy before creating companies and branches in Odoo. A\ncompany defined as a parent cannot be converted into a branch later, as doing so may result in access rights issues.\n- Always create the parent company first.\nAlways create the parent company first.\nTo create a branch, follow these steps in the Settings app:\n- Navigate to the Companies section, click Manage\nCompanies , or go to Settings ⣠Users & Companies ⣠Companies .\nNavigate to the Companies section, click Manage\nCompanies , or go to Settings ⣠Users & Companies ⣠Companies .\n- In the Companies list view, open the desired parent company form.\nIn the Companies list view, open the desired parent company form.\n- In the Branches tab, click Add a line and fill in the General\nInformation fields in the Create Branches window.\nIn the Branches tab, click Add a line and fill in the General\nInformation fields in the Create Branches window.\nTo create branches from a branch and create a multi-level architecture, click Add a line in the new branchâs Branches tab.\nActivate the developer mode to set social media accounts and company-specific email system\nparameters.\nAdding a branch to a company enables multi-company functions.\n\n### Comprehensive or branch-specific view\n\nSelecting the parent company automatically links all its branches, while selecting a branch\nconnects to that branch only. To switch between them, use the company selector .\nAll configurations, except for accounting settings inherited from the\nparent company, must be set individually per branch. This allows for branch-specific setups such as loyalty programs , price lists , or inventory locations .\n\n#### User access\n\nLike in a multi-company environment, parent companies and branches support flexible user\naccess control and access rights . User access\ncan be granted or restricted at the parent company level, the branch level, or both. For example, a\nuser can be limited to a specific branch, while an administrator with access to the parent company\ncan manage all associated branches.\n\n#### Shared records\n\nIn Odoo, some records are, by default, either specific to a single entity or shared across the\nparent company and all its branches.\nWhen creating a quotation, invoice, or vendor bill, the active company or branch is automatically\nselected and displayed in the Company field. If the active company is the parent company\nor one of its branches, then records specifically linked to that entity are accessible only within\nthat entity and will only be visible when the company or branch is selected using the company\nselector .\nIn contrast, some records, such as products or contacts , are not tied to any particular entity and are\nshared by default across the parent company and all its branches. However, they can be restricted to\na single entity by setting the appropriate value in the Company field, if needed.\n\n#### Reporting\n\nAll reports can be generated for the parent company alone\nor with its branches, based on user access .", "headings": ["Configuration", "Company", "Users", "Document layout", "Branches", "Configuration", "Comprehensive or branch-specific view"], "doc_id": "37bfaeee77ef1885"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/companies/digest_emails.html", "title": "Digest emails", "module": "general", "section": "Digest emails", "text": "# Digest emails\n\nDigest Emails are periodic snapshots sent via email to users in an organization that include\nhigh-level information about how the business is performing.\nTo start sending digest emails, begin by navigating to Settings app ⣠Statistics\nsection , activate the Digest Emails feature, and click Save .\nA variety of settings can be configured for digest emails, such as:\n- Deciding which KPIs are shared in the digest emails\nDeciding which KPIs are shared in the digest emails\n- Determining how often digest emails are sent\nDetermining how often digest emails are sent\n- Choosing who in the organization receives digest emails\nChoosing who in the organization receives digest emails\n- Creating custom digest email templates\nCreating custom digest email templates\n- Adding additional KPIs ( Studio app required)\nAdding additional KPIs ( Studio app required)\nBy default, the Digest Email feature is enabled. Your Odoo Periodic\nDigest serves as the primary template, which includes all KPI measurements across the Odoo database, and is sent daily to administrators.\nWhen creating duplicates of databases that have sending capabilities (not testing-mode), the\ndigest emails continue to send from the duplicate database, unless deactivated.\nTo deactivate the digest email, navigate to Settings ⣠Statistics section .\nThen, deactivate the Digest Emails feature, by un-ticking the checkbox, and clicking Save . See the section on Deactivate digest email .\n\n## Customize default digest email\n\nTo customize the default digest email ( Your Odoo Periodic Digest ), go to Settings\napp ⣠Statistics section ⣠Digest Email field . Then, select Your Odoo Periodic\nDigest , and click on the âï¸ (External link) icon, next to the drop-down menu selection.\nA pop-up window appears, and presents a variety of editable settings, which include:\n- Digest Name : the name of the digest email.\nDigest Name : the name of the digest email.\n- Periodicity : control how often digest emails are sent ( Daily , Weekly , Monthly , or Quarterly ).\nPeriodicity : control how often digest emails are sent ( Daily , Weekly , Monthly , or Quarterly ).\n- Next Send Date : the date on which the digest email will be sent again.\nNext Send Date : the date on which the digest email will be sent again.\n- KPIs tab: check/uncheck each calculated KPI that\nappears in digest emails. A ticked box indicates an active KPI in the digest email. See the section on KPIs .\nKPIs tab: check/uncheck each calculated KPI that\nappears in digest emails. A ticked box indicates an active KPI in the digest email. See the section on KPIs .\n- Recipients tab: add/remove users who receive the digest emails. See the section on Recipients .\nRecipients tab: add/remove users who receive the digest emails. See the section on Recipients .\nThe KPIs can be customized using Odoo Studio . Additional\ncosts to the database subscription are incurred should Studio need to be installed. See this\nsection on Custom KPIs with Odoo Studio .\n\n## Deactivate digest email\n\nTo manually deactivate an individual digest email, first navigate to Settings app\n⣠Statistics section , and click Configure Digest Emails . Then, select the desired\ndigest email from the list that should be deactivated.\nNext, click DEACTIVATE FOR EVERYONE to deactivate the digest email for everyone, or UNSUBSCRIBE ME to remove the logged in user from the mailing list. These buttons are\nlocated in the top menu, just above the Digest Name .\n\n## Manually send digest email\n\nTo manually send a digest email, first navigate to Settings app ⣠Statistics\nsection , and click Configure Digest Emails . Then, select the desired digest email, and\nclick SEND NOW . This button is located in the top menu, just above the Digest\nName .\n\n## KPIs\n\nPre-configured KPIs can be added to the digest email from the KPIs tab of the digest email template form.\nFirst, navigate to Settings app ⣠Statistics section , and click Configure Digest Emails .\nThen, select the desired digest email, and open the KPIs tab.\nTo add a KPI to the digest email, tick the checkbox next to the\ndesired KPI . After all KPIs are added (or deselected), click Save .\nThe following KPIs are available in the KPIs tab on\na digest email template form out-of-box in Odoo:\n- Connected Users\n- Messages\n- Open Tasks\n- Employees\n- New Leads/Opportunities\nNew Leads/Opportunities\n- Opportunities Won\n- All Sales\n- eCommerce Sales\n- POS Sales\n- % of Happiness\n- Conversations handled\nConversations handled\n- Time to answer (sec)\n- Tickets Closed\n- Revenue\n- Banks and Cash Moves\n\n## Recipients\n\nDigest email recipients are added from the Recipients tab of the digest email template\nform.\nTo add a recipient, navigate to Settings app ⣠Statistics section , and click Configure Digest Emails . Then, select the desired digest email, and open the Recipients tab.\nTo add a recipient, click Add a line , and an Add Recipients pop-up window\nappears, with all available users to add as recipients.\nFrom the pop-up window, tick the checkbox next to the Name of the user(s), and click the Select button.\nTo remove a user as a recipient, click the â (remove) icon to the far-right of the user\nlisted in the Recipients tab.\nClick Save to implement the changes.\n\n## Create digest emails\n\nTo create a new digest email, navigate to Settings app ⣠Statistics section , and\nclick Configure Digest Emails . Then, click Create to create a new digest\nemail.\nA separate page, with a blank digest email template appears, and presents a variety of editable\nsettings, including:\n- Digest Name : the name of the digest email.\nDigest Name : the name of the digest email.\n- Periodicity : control how often digest emails are sent ( Daily , Weekly , Monthly , or Quarterly ).\nPeriodicity : control how often digest emails are sent ( Daily , Weekly , Monthly , or Quarterly ).\n- Next Send Date : the date on which the digest email will be sent again.\nNext Send Date : the date on which the digest email will be sent again.\n- KPIs tab: check/uncheck each calculated KPI that\nappears in digest emails. A ticked box indicates an active KPI in the digest email. See the section on KPIs .\nKPIs tab: check/uncheck each calculated KPI that\nappears in digest emails. A ticked box indicates an active KPI in the digest email. See the section on KPIs .\n- Recipients tab: add/remove users who receive the digest emails. See the section on Recipients .\nRecipients tab: add/remove users who receive the digest emails. See the section on Recipients .\nFrom there, give the digest email a Digest Name , specify Periodicity ,\nchoose the desired KPIs , and add Recipients , as\nneeded.\nAfter clicking Save , the new custom digest email is available as a selection in the Digest Email field, located in the Settings app ⣠Statistics section .\n\n## Custom KPIs with Odoo Studio\n\nThe KPIs on a digest email template form, in the KPIs tab, can be customized using Odoo Studio .\nAdditional costs to the database subscription are incurred, should Odoo Studio need to be\ninstalled.\nTo begin, click the ð ï¸ (tools) icon in the top-right of the screen. This is the link to\nthe Odoo Studio application.\nIn order to create additional fields, create two fields on the digest object:\n- Create a boolean field called kpi_myfield , and display it in the KPIs tab.\nCreate a boolean field called kpi_myfield , and display it in the KPIs tab.\n`kpi_myfield`\n- Create a computed field called kpi_myfield_value that computes the customized KPI .\nCreate a computed field called kpi_myfield_value that computes the customized KPI .\n`kpi_myfield_value`\n- Select the KPIs in the KPIs tab.\nSelect the KPIs in the KPIs tab.\nHere is the source code for the digest.py file, which guides the programmer in the coding of the computed field.\n`digest.py`\nUsers can also click the Recipients tab, and then the vertical three-dot (kebab) menu to edit this view. Either click EDIT LIST VIEW or EDIT FORM VIEW to modify this tab.\n\n### Computed values reference table\n\nkpi_res_users_connected_value\n`kpi_res_users_connected_value`\nkpi_mail_message_total_value\n`kpi_mail_message_total_value`\nkpi_crm_lead_created_value\n`kpi_crm_lead_created_value`\nkpi_crm_opportunities_won_value\n`kpi_crm_opportunities_won_value`\nkpi_project_task_opened_value\n`kpi_project_task_opened_value`\nkpi_helpdesk_tickets_closed_value\n`kpi_helpdesk_tickets_closed_value`\nkpi_livechat_rating_value\n`kpi_livechat_rating_value`\nConversations handled\nkpi_livechat_conversations_value\n`kpi_livechat_conversations_value`\nkpi_livechat_response_value\n`kpi_livechat_response_value`\nkpi_all_sale_total_value\n`kpi_all_sale_total_value`\nkpi_website_sale_total_value\n`kpi_website_sale_total_value`\nkpi_account_total_revenue_value\n`kpi_account_total_revenue_value`\nkpi_account_bank_cash_value\n`kpi_account_bank_cash_value`\n`kpi_pos_total_value`\nkpi_hr_recruitment_new_colleagues_value\n`kpi_hr_recruitment_new_colleagues_value`", "headings": ["Customize default digest email", "Deactivate digest email", "Manually send digest email", "KPIs", "Recipients", "Create digest emails", "Custom KPIs with Odoo Studio", "Computed values reference table"], "doc_id": "9a86ac96dd500b74"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/companies/email_template.html", "title": "Email templates", "module": "general", "section": "Email templates", "text": "# Email templates\n\nEmail templates are saved emails that are used repeatedly to send emails from the database. They\nallow users to send quality communications, without having to compose the same text repeatedly.\nCreating different templates that are tailored to specific situations lets users choose the right\nmessage for the right audience. This increases the quality of the message and the overall\nengagement rate with the customer.\nEmail templates in Odoo use QWeb or XML, which allows for editing emails in their final\nrendering, making customizations more robust, without having to edit any code whatsoever. This\nmeans that Odoo can use a Graphical User Interface (GUI) to edit emails, which edits the backend\ncode. When the received email is read by the end userâs program, different formatting and\ngraphics will appear in the final form of it.\nAccess email templates in developer mode by navigating to Settings app ⣠Technical menu ⣠Email ⣠Email Templates .\n\n## Editing email templates\n\nThe powerbox feature can be used when working with email templates. This feature provides the\nability to directly edit the formatting and text in an email template, as well as the ability to add\nlinks, buttons, appointment options, or images.\nAdditionally, the XML/HTML code of the email template can be edited directly, via the </> icon. Dynamic placeholders (referencing fields within Odoo) are also available for\nuse in the email template.\n\n### Powerbox\n\nThe powerbox feature is an enriched text editor with various formatting, layout, and text options.\nIt can also be used to add XML/HTML features in an email template. The powerbox feature is activated\nby typing a forward slash / in the body of the email template.\n`/`\nWhen a forward slash / is typed in the body of an email template, a drop-down menu appears with\nthe following options:\n`/`\n- Bulleted list : Create a simple bulleted list.\nBulleted list : Create a simple bulleted list.\n- Numbered list : Create a list with numbering.\nNumbered list : Create a list with numbering.\n- Checklist : Track tasks with a checklist.\nChecklist : Track tasks with a checklist.\n- Table : Insert a table.\nTable : Insert a table.\n- Separator : Insert a horizontal rule separator.\nSeparator : Insert a horizontal rule separator.\n- Quote : Add a blockquote section.\nQuote : Add a blockquote section.\n- Code : Add a code section.\nCode : Add a code section.\n- 2 columns : Convert into two columns.\n2 columns : Convert into two columns.\n- 3 columns : Convert into three columns.\n3 columns : Convert into three columns.\n- 4 columns : Convert into four columns.\n4 columns : Convert into four columns.\n- Heading 1 : Big section heading.\nHeading 1 : Big section heading.\n- Heading 2 : Medium section heading.\nHeading 2 : Medium section heading.\n- Heading 3 : Small section heading.\nHeading 3 : Small section heading.\n- Switch direction : Switch the textâs direction.\nSwitch direction : Switch the textâs direction.\n- Text : Paragraph block.\nText : Paragraph block.\n- Image : Insert an image.\nImage : Insert an image.\n- Article : Link an article.\nArticle : Link an article.\n- Link : Add a link.\n- Button : Add a button.\nButton : Add a button.\n- Appointment : Add a specific appointment.\nAppointment : Add a specific appointment.\n- Calendar : Schedule an appointment.\nCalendar : Schedule an appointment.\n- 3 Stars : Insert a rating over three stars.\n3 Stars : Insert a rating over three stars.\n- 5 Stars : Insert a rating over five stars.\n5 Stars : Insert a rating over five stars.\n- Signature : Insert your signature.\nSignature : Insert your signature.\n- Dynamic Placeholders : Insert personalized content.\nDynamic Placeholders : Insert personalized content.\nTo use any of these options, click on the desired feature from the powerbox drop-down menu. To\nformat existing text with a text-related option (e.g. Heading 1 , Switch\ndirection , etc.), highlight the text, then type in the activator key (forward slash) / , and\nselect the desired option from the drop-down menu.\n`/`\nUsing dynamic placeholders\n\n### XML/HTML code editor\n\nTo access the XML/HTML editor for an email template, first enter developer mode . Then, click the </> icon in the upper-right corner of the template,\nand proceed to edit the XML/HTML. To return to the standard text editor, click the </> icon again.\nThe XML/HTML editor should be accessed with caution as this is the backend code of the template.\nEditing the code can cause the email template to break immediately or when upgrading the\ndatabase.\n\n### Dynamic placeholders\n\nDynamic placeholders reference certain fields within the Odoo database to produce unique data in\nthe email template.\nMany companies like to customize their emails with a personalized piece of customer information\nto grab attention. This can be accomplished in Odoo by referencing a field within a model by\ninserting a dynamic placeholder. For example, a customerâs name can be referenced in the email\nfrom the Customer field on the Sales Order model. The dynamic placeholder\nfor this field is: {{ object.partner_id }} .\n`{{object.partner_id}}`\nDynamic placeholders are encoded to display fields from within the database. Dynamic placeholders\ncan be used in the Body ( Content Tab) of the email template. They can also\nbe used in the fields present in the Email Configuration tab, the Subject of\nthe email, and the Language .\nTo use the dynamic placeholders in the Body of an email open the powerbox feature by\ntyping in / into the body of the email template under the Content tab. Scroll to the\nbottom of the options list, to Marketing Tools . Next, select Dynamic\nPlaceholder . Then select the dynamic placeholder from a list of available options and follow the\nprompts to configure it with the desired corresponding Odoo field. Each dynamic placeholder will\nvary in configuration.\n`/`\nEach unique combination of Fields , Sub-models and Sub-fields creates a different dynamic placeholder. Imagine it as a combination to the field that is being\ncreated.\nTo search the available fields, simply type in the front-end name (on user-interface) of the\nfield in the search. This will find a result from all of the available fields for the model that\nthe email template is created for.\nCustomizing email templates are out of the scope of Odoo Support.\n\n### Rich text editor\n\nA rich text editor toolbar can be accessed by highlighting text in the email template. This can be\nused to change the heading, font size/style, color, add a list type, or a link.\n\n### Resetting email templates\n\nShould the email template not work because the code has been altered it can be reset to restore it\nback to the out-of-box default template. Simply click on the Reset Template button in\nthe upper left-hand of the screen and the template will be reset.\n\n### Default reply on email templates\n\nUnder the Email Configuration tab on an email template, there is a Reply To field. In this field, add email addresses to which replies are redirected when sending emails en\nmasse using this template.\nAdd multiple email addresses by adding a comma , between the addresses or dynamic\nplaceholders.\n`,`\nThe Reply To field is only used for mass mailing (sending emails in bulk). Bulk\nemails can be sent in almost every Odoo application that has a list view option.\nTo send mass mails, while in list view, check the boxes next to the desired records\nwhere the emails are to be sent, click the Action button (represented by a âï¸\n(gear) icon), and select the desired email option from the Action drop-down menu. Email\noptions can vary by the particular list view and application.\nIf it is possible to send an email, a mail composer pop-up window appears, with values that can be\ndefined and customized. This option will be available on the Action button on pages\nwhere emails can be sent in bulkâfor example, on the Customers page of the CRM app.\nThis action occurs throughout the Odoo database.\n\n## Transactional emails and corresponding URLs\n\nIn Odoo, multiple events can trigger the sending of automated emails. These emails are known as transactional emails , and sometimes contain links redirecting to the Odoo database.\nBy default, links generated by the database use the dynamic web.base.url key defined in the system\nparameters. For more information about this, see system parameters .\n`web.base.url`\nIf the Website application is not installed, the web.base.url key will always be the default\nparameter used to generate all the links.\n`web.base.url`\nThe web.base.url key can only have a single value, meaning that, in a multi-website or\nmulti-company database environment, even if there is a specific domain name for each website, the\nlinks generated to share a document (or the links within a transactional email) may remain the\nsame, regardless of which website/company is related to the sending of the email/document.\n`web.base.url`\nIf the Value of the web.base.url system parameter is equal to https://www.mycompany.com and there are two separate companies in Odoo with different\nwebsite URLs: https://www.mycompany2.com and https://www.mycompany1.com , the links created\nby Odoo to share a document, or send a transactional email, come from the domain: https://www.mycompany.com , regardless of which company sends the document or email.\n`https://www.mycompany.com`\n`https://www.mycompany2.com`\n`https://www.mycompany1.com`\n`https://www.mycompany.com`\nThis is not always the case, as some Odoo applications ( eCommerce , for example) have a link\nestablished in the database with the Website application. In that case, if a specific domain is\ndefined for the website, the URL generated in the email template uses the domain defined on the\ncorresponding website of the company.\nWhen a customer makes a purchase on an Odoo eCommerce website, the order has an established\nlink with that website. As a result, the links in the confirmation email sent to the customer\nuse the domain name for that specific website.\nA document shared using the Documents application will always use the web.base.url key,\nas the document shared is not associated with any particular website. This means that the URL\nwill always be the same (the web.base.url key value), no matter what company itâs shared from.\nThis is a known limitation.\n`web.base.url`\n`web.base.url`\nFor more information about how to configure domains, check out the domain name documentation .\n\n### Updating translations within email templates\n\nIn Odoo, email templates are automatically translated for all users in the database for all of the\nlanguages installed. Changing the translations shouldnât be necessary. However, if for a specific\nreason, some of the translations need to be changed, it can be done.\nLike any modification in the code, if translation changes are not done correctly (for example,\nmodifications leading to bad syntax), it can break the template, and as a result, the template\nwill appear blank.\nIn order to edit translations, first enter developer mode . Then, on the\nemail template, click on the Edit button, and then click on the language button,\nrepresented by the initials of the language currently being used (e.g. EN for English).\nIf there arenât multiple languages installed and activated in the database, or if the user does\nnot have administration access rights, the language button will not appear.\nA pop-up window with the different languages installed on the database appears. From this pop-up,\nediting of translations is possible. When the desired changes have been made, click the Save button to save the changes.\nWhen editing the translations, the default language set in the database appears in bold .", "headings": ["Editing email templates", "Powerbox", "XML/HTML code editor", "Dynamic placeholders", "Rich text editor", "Resetting email templates", "Default reply on email templates", "Transactional emails and corresponding URLs", "Updating translations within email templates"], "doc_id": "39173be6d2c83a78"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/companies/multi_company.html", "title": "Multi-company", "module": "general", "section": "Multi-company", "text": "# Multi-company\n\nIn Odoo, multiple companies can be configured under one database. This allows some data to be shared\namong companies while maintaining some separation between entities.\nA centralized management environment allows authorized users to select multiple companies\nsimultaneously and set their specific warehouses, customers, equipment, and contacts. It also\ngenerates reports of aggregated figures without switching interfaces, facilitating daily tasks and\nenhancing the overall management process.\nEnabling multi-company functionality in an Odoo database on a Standard plan automatically\ntriggers an upsell to the Custom plan. This does not apply to databases on the One-App Free plan.\n- For yearly or multi-year contracts : An upsell order is created with a 30-day limit.\nFor yearly or multi-year contracts : An upsell order is created with a 30-day limit.\n- For monthly contracts : The subscription automatically switches to the Custom plan and\nthe new rate is applied when the next bill is generated.\nFor monthly contracts : The subscription automatically switches to the Custom plan and\nthe new rate is applied when the next bill is generated.\nFor more information, refer to Odooâs pricing page or\ncontact your account manager.\n\n## Configuration\n\nOpen the Settings app, navigate to the Companies section, and click Manage Companies . Then, click New and fill in\nthe form with the companyâs information or select an existing company\nto edit it.\nAlternatively, it is possible to create a company by going to Settings ⣠Users\n& Companies ⣠Companies .\nTo archive a company, follow these steps:\n- In the Settings app, navigate to the Companies section and click Manage Companies .\nIn the Settings app, navigate to the Companies section and click Manage Companies .\n- In the Companies list view, select the company to be archived.\nIn the Companies list view, select the company to be archived.\n- Click the Actions menu and select Archive .\nClick the Actions menu and select Archive .\n- Click Archive to confirm.\nClick Archive to confirm.\n\n## Multi-company environment\n\nIn a multi-company environment, users are granted access to one or more companies , and data is created or modified based on its intended\nuse within that structure.\n\n### User access\n\nA multi-company environment allows flexible control over user access and access rights that can be granted or restricted as needed.\n\n### Company selector\n\nTo switch between (or select) multiple companies, follow these steps:\n- Click the company selector in the top-right corner of the header menu.\nClick the company selector in the top-right corner of the header menu.\n- In the drop-down list, select the checkboxes next to the desired companies.\nIn the drop-down list, select the checkboxes next to the desired companies.\n- The highlighted company indicates the current active environment.\nThe highlighted company indicates the current active environment.\n- To switch to another company, click its name in the list of selected companies.\nTo switch to another company, click its name in the list of selected companies.\nIn the example below, the user can access six companies, two of which are selected. The current\nactive company is My Company (San Francisco) .\n\n### Shared and company-specific records\n\nData, such as products, contacts, and equipment can either be shared across companies or restricted\nto a specific company by setting the Company field on the relevant records:\n- either leave the field blank to make it accessible to all companies;\neither leave the field blank to make it accessible to all companies;\n- or select the company to make it visible to users logged in to that specific company.\nor select the company to make it visible to users logged in to that specific company.\nRecords specifically linked to a particular company are accessible only within that entity. For\ninstance, quotations, invoices, and vendor bills associated with a company are visible only when\nlogged into that company, and the corresponding company is automatically selected by default and\ndisplayed in the Company field.\nIn a multi-company database, new products and contacts are shared across companies by default. To restrict them to a\nspecific company, set the Company field on the recordâs form.\n\n## Inter-company transactions\n\nThe Inter-Company Transactions feature allows one company in the database to sell or\npurchase goods and services from another company within the same database. Depending on the\nconfiguration settings, counterpart documents for orders and invoices can be automatically generated\nand synchronized.\nTo handle inter-company transactions correctly, general and specific configurations must be set properly,\nincluding fiscal positions and localizations .\nTo activate inter-company transactions, select the relevant company in the company selector , open the Settings app, navigate to the Companies section, enable Inter-Company Transactions , and Save .\nThen, select the option(s) to create a counterpart for the selected company:\n- Generate Bills and Refunds : Generate a bill/refund when a company confirms an\ninvoice/credit note for the selected company. To generate a validated bill/refund, select Create and validate .\nGenerate Bills and Refunds : Generate a bill/refund when a company confirms an\ninvoice/credit note for the selected company. To generate a validated bill/refund, select Create and validate .\n- Generate Sales Orders : Generate a quotation (drafted sales order) when a sales order\nis confirmed for the selected company. To generate a validated sales order instead of a quotation,\nselect Create and validate .\nGenerate Sales Orders : Generate a quotation (drafted sales order) when a sales order\nis confirmed for the selected company. To generate a validated sales order instead of a quotation,\nselect Create and validate .\n- Generate Purchase Orders : Generate a request for quotation (drafted purchase order)\nusing the selected company warehouse in the Use Warehouse field when a purchase order\nis confirmed for the selected company. To generate a validated purchase order instead of a request\nfor quotation, select Create and validate .\nGenerate Purchase Orders : Generate a request for quotation (drafted purchase order)\nusing the selected company warehouse in the Use Warehouse field when a purchase order\nis confirmed for the selected company. To generate a validated purchase order instead of a request\nfor quotation, select Create and validate .\nFor inter-company transactions, the products must be shared among the involved companies.\nGenerate Bills and Refunds : when an invoice for Customer JS Store US is\nposted on JS Store Belgium , a vendor bill is automatically created in JS Store US .\n`JSStoreUS`\n`JSStoreBelgium`\n`JSStoreUS`\nGenerate Sales Orders : when a sales order for Customer JS Store US is confirmed on JS Store Belgium , a purchase order on JS Store US is automatically\ncreated (and confirmed if the Create and validate option is selected).\n`JSStoreUS`\n`JSStoreBelgium`\n`JSStoreUS`\n- Multi-company Guidelines\nMulti-company Guidelines\n- Multi-currency system\nMulti-currency system\n\n## Use cases\n\n### Multinational companies\n\nA multinational retail chain operating in the United States and Canada must manage transactions in\nUSD and CAD.\nSince each country has its own tax laws and regulations, using Odooâs multi-company feature is\nhighly beneficial.\nThis setup allows for inter-company transactions, which is essential for managing cross-border\ninventory transfers. It also simplifies the sales process by enabling customers transactions in\ntheir local currency.\n\n### Separate processes\n\nA small furniture company is launching a new product line that requires separate procurement,\ninventory, and manufacturing workflows. These new products differ significantly from the existing\ncatalog. To manage this efficiently, the company is considering using the multi-company feature to\nmanage the new line as a separate business entity.\nHowever, creating a completely new company might add unnecessary complexity to the database.\nInstead, the company can leverage existing features such as analytic accounting and multiple warehouses to manage the new\nproduct line without complicating overall operations.", "headings": ["Configuration", "Multi-company environment", "User access", "Company selector", "Shared and company-specific records", "Inter-company transactions", "Use cases", "Multinational companies", "Separate processes"], "doc_id": "f568fe9a2ab69139"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/developer_mode.html", "title": "Developer mode (debug mode)", "module": "general", "section": "Developer mode (debug mode)", "text": "# Developer mode (debug mode)\n\nThe developer mode, also known as debug mode, unlocks access to advanced tools and settings in Odoo.\nProceed with caution, as some developer tools and technical settings are considered advanced and\nmay have associated risks. Only use them if you understand the implications and are confident in\nyour actions.\nThe developer mode is also available with assets ,\nwhich are used to debug JavaScript code, and with tests assets , which are used to run test tours.\n\n## Activation\n\nTo activate it, open the Settings app, scroll down to the Developer Tools section, and click Activate the developer mode .\nOnce activated, the Deactivate the developer mode option becomes available.\nTo activate the developer mode from anywhere in the database , add ?debug=1 at the end of the\nURL (e.g., https://example.odoo.com/odoo?debug=1 ). To deactivate it, use ?debug=0 instead.\n`?debug=1`\n`https://example.odoo.com/odoo?debug=1`\n`?debug=0`\nUse ?debug=assets to activate the developer mode with assets and ?debug=tests to activate it\nwith tests assets.\n`?debug=assets`\n`?debug=tests`\nOpen the command palette by pressing Ctrl + K or Cmd â + K , then type debug to\nactivate the developer mode with assets or deactivate it.\n`Ctrl+K`\n`Cmdâ+K`\n`debug`\nThe Odoo Debug browser extension adds an icon to toggle\ndeveloper mode on or off from the browserâs toolbar. It is available on the Chrome Web Store and Firefox Add-ons .\n\n## Developer tools and technical menu\n\nOnce the developer mode is activated, the developer tools can be accessed by clicking the (bug) icon. The menu contains tools useful for understanding or editing\ntechnical data, such as a viewâs field, filters, or actions. The options available depend on where\nthe menu is accessed from.\nDatabase administrators can access the technical menu from the Settings app. It contains\nadvanced database settings, such as ones related to the database structure, security, actions, etc.", "headings": ["Activation", "Developer tools and technical menu"], "doc_id": "f2326f38258e5113"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/email_communication.html", "title": "Communication in Odoo by email", "module": "general", "section": "Communication in Odoo by email", "text": "# Communication in Odoo by email\n\nCommunication in Odoo related to records such as CRM opportunities, sales orders, invoices, â¦\nhave a discussion thread called chatter , often displayed on the right side of the record.\nOn the chatter, you can send direct emails or Odoo notifications to the followers of a document\n(depending on their notification preferences), log internal notes, send WhatsApp messages or SMSes,\nand schedule activities.\nIf a follower replies to a message, the reply updates the chatter, and Odoo relays it to the\nfollowers as a notification. All emails - outgoing and incoming - appear in the same chatter.\n\n## Odoo Online and Odoo.sh users\n\nOn Odoo Online and Odoo.sh, outgoing and incoming emails work out of the box, nothing needs to be\ndone . Everything is already configured on your subdomain.\nBy default, outgoing emails use the following notification email address notifications@company-name.odoo.com .\n`notifications@company-name.odoo.com`\n\n### Using another domain\n\nIf you prefer not to have outgoing emails sent from Odooâs subdomain @company-name.odoo.com but\ninstead from your own domain , additional configuration will\nbe necessary on the domain and within Odoo. This introduces an extra layer of complexity and\nnecessitates technical knowledge (mainly regarding DNS and mail protocols).\n`@company-name.odoo.com`\nBy adding a domain and configuring the administration access rights, you can also access the new domain alias page to configure the alias of your companies.\nIf only one domain is configured, this domain will be shared by all companies on the database.\nIf you want to keep using Odooâs mail server, you will have to configure the SPF and DKIM .\nIf you want to use your own mail server , you will\nhave to follow the mail server providerâs specific documentation.\nFor incoming emails, after adding your own domain, replies from customers will come back to\nyour domain , and you will need to use one of the three possible ways\nto get the emails back into Odoo (using either incoming mail server , redirection/forwarding or DNS MX record ). Everything is covered in the Manage inbound messages\ndocumentation .\n\n## On-premise users\n\nIf you are on-premise, you will have to completely configure your outgoing and incoming emails:\n- For outgoing emails, you will need to use an SMTP server and a custom domain .\nFor outgoing emails, you will need to use an SMTP server and a custom domain .\n- For incoming emails, set the frequency at which you fetch new emails low enough for responsiveness\nbut high enough in order not to stress your system or provider. Due to this reason and the\nsimplicity of this configuration, we usually advise on using incoming mail servers. To use an SMTP\nserver, check out the âUse a custom domain for inbound messagesâ documentation .\nFor incoming emails, set the frequency at which you fetch new emails low enough for responsiveness\nbut high enough in order not to stress your system or provider. Due to this reason and the\nsimplicity of this configuration, we usually advise on using incoming mail servers. To use an SMTP\nserver, check out the âUse a custom domain for inbound messagesâ documentation .\n\n## Using a third-party providerâs mail server\n\nOdooâs documentation also covers several popular mail servers. As they require specific\nauthorizations and configuration, they add a layer of complexity. For this reason, using Odooâs\noutgoing mail server is recommended.\n- Outlook documentation\nOutlook documentation\n- Gmail documentation\n- Mailjet documentation\nMailjet documentation\nEvery provider has its own limitations. Research the desired provider before configuring it.\nFor example, Outlook and Gmail might not be suitable for large marketing campaigns.\n- Activities\n- Discuss app\n- Digest emails\n- Email Marketing app\n- Email templates\n- Expense creation using an email alias\nExpense creation using an email alias\n- Helpdesk ticket creation using an email alias\nHelpdesk ticket creation using an email alias\n- Lead creation using an email alias\nLead creation using an email alias\n- Project task creation using an email alias\nProject task creation using an email alias\n- Technical mail gateway for on-premise users\nTechnical mail gateway for on-premise users\n- Technical start of Odoo database with an outgoing mail server configured from the\ncommand-line interface\nTechnical start of Odoo database with an outgoing mail server configured from the\ncommand-line interface", "headings": ["Odoo Online and Odoo.sh users", "Using another domain", "On-premise users", "Using a third-party providerâs mail server"], "doc_id": "b5319911140d907c"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/email_communication/azure_oauth.html", "title": "Connect Microsoft Outlook 365 to Odoo using Azure OAuth", "module": "general", "section": "Connect Microsoft Outlook 365 to Odoo using Azure OAuth", "text": "# Connect Microsoft Outlook 365 to Odoo using Azure OAuth\n\nOdoo is compatible with Microsoftâs Azure OAuth for Microsoft 365. In order to send and receive\nsecure emails from a custom domain, all that is required is to configure a few settings on the Azure\nplatform and on the back end of the Odoo database. This configuration works with either a personal\nemail address or an address created by a custom domain.\nMicrosoft Learn: Register an application with the Microsoft identity platform\n- Microsoft Azure sign-in authentication\nMicrosoft Azure sign-in authentication\n- Outlook Calendar synchronization\nOutlook Calendar synchronization\n\n## Setup in Microsoft Azure Portal\n\n### Create a new application\n\nTo get started, go to Microsoftâs Azure Portal . Log in with the Microsoft Outlook Office 365 account if there is one, otherwise log in with the personal Microsoft account . A user with administrative access to the Azure Settings will need to\nconnect and perform the following configuration. Next, navigate to the section labeled Manage Microsoft Entra ID (formally Azure Active Directory ).\nNow, click on Add (+) , located in the top menu, and then select App\nregistration . On the Register an application screen, rename the Name to Odoo or something recognizable. Under the Supported account types section select Accounts in any organizational directory (Any Microsoft Entra ID directory - Multitenant)\nand personal Microsoft accounts (e.g. Skype, Xbox) .\n`Odoo`\nUnder the Redirect URL section, select Web as the platform, and then input https://<web base url>/microsoft_outlook/confirm in the URL field. The web.base.url is subject to change depending on the URL used to log in to the database.\n`https://<webbaseurl>/microsoft_outlook/confirm`\n`web.base.url`\nThe documentation about the web.base.url explains how to freeze\na unique URL. It is also possible to add different redirect URLs on the Microsoft app.\nAfter the URL has been added to the field, Register the application, so it is created.\n\n### API permissions\n\nThe API permissions should be set next. Odoo will need specific API permissions to be\nable to read (IMAP) and send (SMTP) emails in the Microsoft 365 setup. First, click the API permissions link, located in the left menu bar. Next, click on the (+)\nAdd a Permission button and select Microsoft Graph under Commonly Used\nMicrosoft APIs . After, select the Delegated Permissions option.\nIn the search bar, search for the following Delegated permissions and click Add permissions for each one:\n- SMTP.Send\n- IMAP.AccessAsUser.All\nIMAP.AccessAsUser.All\nThe User.Read permission will be added by default.\n\n## Assign users and groups\n\nAfter adding the API permissions, navigate back to the Overview of the Application in the top of the left sidebar menu.\nNow, add users to this application. Under the Essentials overview table, click on the\nlink labeled Managed Application in Local Directory , or the last option on the bottom\nright-hand side of the table.\nIn the left sidebar menu, select Users and Groups . Next, click on (+) Add\nUser/Group . Depending on the account, either a Group and a User can be\nadded, or only Users . Personal accounts will only allow for Users to be\nadded.\nUnder Users or Groups , click on None Selected and add the users\nor group of users that will be sending emails from the Microsoft account in Odoo. Add the users/groups, click Select , and then Assign them to the\napplication.\n\n### Create credentials\n\nNow that the Microsoft Azure app is set up, credentials need to be created for the Odoo setup. These\ninclude the Client ID and Client Secret . To start, the Client ID can be copied from the Overview page of the app. The Client ID or Application ID is located under the Display Name in the Essentials overview of the app.\nNext, the Client Secret Value needs to be retrieved. To get this value, click on Certificates & Secrets in the left sidebar menu. Then, a Client Secret needs\nto be produced. In order to do this, click on the (+) New Client Secret button.\nA window on the right will populate with a button labeled Add a client secret . Under Description , type in Odoo Fetchmail or something recognizable, and then set the expiration date .\n`OdooFetchmail`\nA new Client Secret will need to be produced and configured if the first one expires.\nIn this event, there could be an interruption of service, so the expiration date should be noted\nand set to the furthest possible date.\nNext, click on Add when these two values are entered. A Client Secret Value and Secret ID will be created. It is important to copy the Value or Client Secret Value into a notepad as it will become encrypted after leaving this page.\nThe Secret ID is not needed.\nAfter these steps, the following items should be ready to be set up in Odoo:\n- A client ID ( Client ID or Application ID )\nA client ID ( Client ID or Application ID )\n- A client secret ( Value or Client Secret Value )\nA client secret ( Value or Client Secret Value )\nThis completes the setup on the Microsoft Azure Portal side.\n\n## Setup in Odoo\n\n### Enter Microsoft Outlook credentials\n\nFirst, open the Odoo database and navigate to the Apps module. Then, remove the Apps filter from the search bar and type in Outlook . After that, install the module\ncalled Microsoft Outlook .\n`Outlook`\nNext, navigate to Settings ⣠General Settings , and under the Emails section,\nensure that the checkbox for Use Custom Email Servers is checked. This populates a new\noption for Outlook Credentials .\nThen, copy and paste the ID (Application ID) and Secret (Client Secret\nValue) into the respective fields and Save the settings.\n\n### Configure outgoing email server\n\nOn the General Settings page, under the Custom Email Servers setting, click\nthe Outgoing Email Servers link to configure the Microsoft account.\nThen, create a new email server and check the box for Outlook . Next, fill in the Name (it can be anything) and the Microsoft Outlook email Username .\nIf the From Filter field is empty, enter either a domain or email address .\nThen, click on Connect your Outlook account .\nA new window from Microsoft opens to complete the authorization process . Select the\nappropriate email address that is being configured in Odoo.\nThen, allow Odoo to access the Microsoft account by clicking on Yes . After this, the\npage will navigate back to the newly configured Outgoing Mail Server in Odoo. The\nconfiguration automatically loads the token in Odoo, and a tag stating Outlook Token Valid appears in green.\nFinally, click Test Connection . A confirmation message should appear. The Odoo database\ncan now send safe, secure emails through Microsoft Outlook using OAuth authentication.\n\n#### Configuration with a single outgoing mail server\n\nConfiguring a single outgoing server is the simplest configuration available for Microsoft Azure and\nit doesnât require extensive access rights for the users in the database.\nA generic email address would be used to send emails for all users within the database. For example\nit could be structured with a notifications alias ( notifications@example.com ) or contact alias\n( contact@example.com ). This address must be set as the FROM Filtering on the server.\nThis address must also match the {mail.default.from}@{mail.catchall.domain} key combination in the\nsystem parameters.\n`notifications`\n`notifications@example.com`\n`contact`\n`contact@example.com`\n`{mail.default.from}@{mail.catchall.domain}`\nVisit the From Filtering documentation for more information.\nThe System Parameters can be accessed by activating Developer mode (debug mode) in the Settings ⣠Technical ⣠Parameters ⣠System Parameters menu.\nWhen using this configuration, every email that is sent from the database will use the address of\nthe configured notification mailbox. However it should be noted that the name of the sender will\nappear but their email address will change:\n`notification`\nSingle outgoing mail server configuration:\n- Outgoing mail server username (login) = notifications@example.com\nOutgoing mail server username (login) = notifications@example.com\n`notifications@example.com`\n- Outgoing mail server FROM Filtering = notifications@example.com\nOutgoing mail server FROM Filtering = notifications@example.com\n`notifications@example.com`\n- mail.catchall.domain in system parameters = example.com\nmail.catchall.domain in system parameters = example.com\n`mail.catchall.domain`\n`example.com`\n- mail.default.from in system parameters = notifications\nmail.default.from in system parameters = notifications\n`mail.default.from`\n`notifications`\n\n#### User-specific (multiple user) configuration\n\nIn addition to a generic email server, individual email servers can be set up for users in a\ndatabase. These email addresses must be set as the FROM Filtering on each individual\nserver for this configuration to work.\nThis configuration is the more difficult of the two Microsoft Azure configurations, in that it\nrequires all users configured with email servers to have access rights to settings in order to\nestablish a connection to the email server.\nEach user should have a separate email server set up. The FROM Filtering should be set\nso that only the userâs email is sent from that server. In other words, only a user with an email\naddress that matches the set FROM Filtering is able to use this server.\nVisit the From Filtering documentation for more information.\nA fallback server must be setup to allow for the sending of notifications . The FROM Filtering for this server should have the value of\nthe {mail.default.from}@{mail.catchall.domain} .\n`{mail.default.from}@{mail.catchall.domain}`\nThe System Parameters can be accessed by activating Developer mode (debug mode) in the Settings ⣠Technical ⣠Parameters ⣠System Parameters menu.\nThe configuration for this transactional email server can work alongside an outgoing mass-mailing\nemail server. The FROM Filtering for the mass-mailing email server can remain empty,\nbut itâs require to be added in the settings of the Email Marketing application.\nFor more information on setting the mass-mailing email server visit Sending emails with an external SMTP server .\nMultiple user outgoing mail server configuration:\n- User #1 mailbox Outgoing mail server #1 username (login) = john@example.com Outgoing mail server #1 FROM Filtering = john@example.com\n- Outgoing mail server #1 username (login) = john@example.com\nOutgoing mail server #1 username (login) = john@example.com\n`john@example.com`\n- Outgoing mail server #1 FROM Filtering = john@example.com\nOutgoing mail server #1 FROM Filtering = john@example.com\n`john@example.com`\n- User #2 mailbox Outgoing mail server #2 username (login) = jane@example.com Outgoing mail server #2 FROM Filtering = jane@example.com\n- Outgoing mail server #2 username (login) = jane@example.com\nOutgoing mail server #2 username (login) = jane@example.com\n`jane@example.com`\n- Outgoing mail server #2 FROM Filtering = jane@example.com\nOutgoing mail server #2 FROM Filtering = jane@example.com\n`jane@example.com`\n- Notifications mailbox Outgoing mail server #3 username (login) = notifications@example.com Outgoing mail server #3 FROM Filtering = notifications@example.com\n- Outgoing mail server #3 username (login) = notifications@example.com\nOutgoing mail server #3 username (login) = notifications@example.com\n`notifications@example.com`\n- Outgoing mail server #3 FROM Filtering = notifications@example.com\nOutgoing mail server #3 FROM Filtering = notifications@example.com\n`notifications@example.com`\n- System Parameters mail.catchall.domain in system parameters = example.com mail.default.from in system parameters = notifications\n- mail.catchall.domain in system parameters = example.com\nmail.catchall.domain in system parameters = example.com\n`mail.catchall.domain`\n`example.com`\n- mail.default.from in system parameters = notifications\nmail.default.from in system parameters = notifications\n`mail.default.from`\n`notifications`\n\n### Configure incoming email server\n\nThe incoming account should be configured in a similar way to the outgoing email account. Navigate\nto the Incoming Mail Servers in the Technical Menu and Create a\nnew configuration. Check or Select the button next to Outlook Oauth Authentication and\nenter the Microsoft Outlook username . Click on Connect your Outlook\naccount . Odoo will state: Outlook Token Valid Now Test and Confirm the\naccount. The account should be ready to receive email to the Odoo database.", "headings": ["Setup in Microsoft Azure Portal", "Create a new application", "API permissions", "Assign users and groups", "Create credentials", "Setup in Odoo", "Enter Microsoft Outlook credentials", "Configure outgoing email server", "Configure incoming email server"], "doc_id": "2ba312fdf19265fa"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/email_communication/email_domain.html", "title": "Configure DNS records to send emails in Odoo", "module": "general", "section": "Configure DNS records to send emails in Odoo", "text": "# Configure DNS records to send emails in Odoo\n\nThis documentation presents three complementary authentication protocols (SPF, DKIM, and DMARC) used\nto prove the legitimacy of an email sender. Not complying with these protocols will greatly reduce\nchances of your emails to reach their destination.\nOdoo Online and Odoo.sh databases using the default Odoo subdomain address (e.g., @company-name.odoo.com ) are pre-configured to send authenticated emails compliant with the\nSPF, DKIM, and DMARC protocols.\n`@company-name.odoo.com`\nIf choosing to use a custom domain instead, configuring SPF and DKIM records correctly is\nessential to prevent emails from being quarantined as spam or not being delivered to recipients.\nIf using the default Odoo email server to send emails from a custom domain , the SPF and DKIM records must be configured as\npresented below. If using an outgoing email server, it is required to use the SPF and DKIM records\nspecific to that email service and a custom domain.\nEmail service providers apply different rules to incoming emails. An email may be classified as\nspam even if it passes the SPF and DKIM checks.\n\n## SPF (Sender Policy Framework)\n\nThe Sender Policy Framework (SPF) protocol allows the owner of a domain name to specify which\nservers are allowed to send emails from that domain. When a server receives an incoming email, it\nchecks whether the IP address of the sending server is on the list of allowed IPs according to the\nsenderâs SPF record.\nIn Odoo, the SPF test is performed on the bounce address defined under the Alias\nDomain field found under the databaseâs General Settings . If using a custom domain as Alias Domain , it is necessary to configure it to be SPF-compliant.\nThe SPF policy of a domain is set using a TXT record. The way to create or modify this record\ndepends on the provider hosting the DNS zone of the domain name.\nIf the domain name does not yet have an SPF record, create one using the following input:\nIf the domain name already has an SPF record, the record must be updated . Do not create a new\none, as a domain must have only one SPF record.\nIf the TXT record is v=spf1 include:_spf.google.com ~all , edit it to add include:_spf.odoo.com : v=spf1 include:_spf.odoo.com include:_spf.google.com ~all\n`v=spf1include:_spf.google.com~all`\n`include:_spf.odoo.com`\n`v=spf1include:_spf.odoo.cominclude:_spf.google.com~all`\nCheck the SPF record using a tool like MXToolbox SPF Record Check . The process to create or modify an SPF record depends on the\nprovider hosting the DNS zone of the domain name. The most common providers and their documentation are listed below.\n\n## DKIM (DomainKeys Identified Mail)\n\nThe DomainKeys Identified Mail (DKIM) allows a user to authenticate emails with a digital signature.\nWhen sending an email, the Odoo email server includes a unique DKIM signature in the headers. The\nrecipientâs server decrypts this signature using the DKIM record in the databaseâs domain name. If\nthe signature and the key contained in the record match, it proves the message is authentic and has\nnot been altered during transport.\nEnabling DKIM is required when sending emails from a custom domain using the Odoo email\nserver.\n\n### Add a CNAME record for domain\n\nTo enable DKIM, add a canonical name (CNAME) record to the domain name system (DNS) zone of the\ndomain name:\nIf the domain name is company-name.com , make sure to create a CNAME record where the CNAME record\n(key/name) is odoo._domainkey.company-name.com , and the canonical name (value/content) is odoo._domainkey.odoo.com. . For example, note the differences between each key/value in italics:\n`odoo._domainkey.company-name.com`\n`odoo._domainkey.odoo.com.`\nodoo._domainkey. odoo.com.\nodoo._domainkey. dbname .odoo.com.\n⦠where dbname is the name of the Odoo database.\nOn most DNS platforms, the DNS provider adds the custom domain (e.g., company-name.com ) by\ndefault. In this case, the key looks different while the value remains the same:\nodoo._domainkey. company-name.com\n⦠where company-name.com is the custom domain.\nodoo._domainkey. odoo.com.\nodoo._domainkey. dbname .odoo.com.\n⦠where dbname is the name of the Odoo database.\nIf the DNS provider does not add the custom domain by default, make sure to include it.\n\n### Add a CNAME record for subdomain\n\nIf thereâs a subdomain (e.g., marketing in marketing .company-name.com), add a CNAME record to include it\nfor compliance as well:\nodoo._domainkey. marketing\n⦠where marketing is the subdomain.\nodoo._domainkey.marketing. company-name.com\n⦠where company-name.com is the custom domain.\nodoo._domainkey. odoo.com.\nodoo._domainkey. dbname .odoo.com.\n⦠where dbname is the name of the Odoo database.\n\n### See DNS provider documentation\n\nThe way to create or modify a CNAME record depends on the provider hosting the DNS zone of the\ndomain name. The most common providers and their\ndocumentation are listed below.\nCheck if the DKIM record is valid using a tool like MXToolbox DKIM Record Lookup . Enter example.com:odoo in the DKIM lookup tool, specifying\nthat the selector being tested is odoo for the custom domain example.com .\n`example.com:odoo`\n\n## DMARC (Domain-based Message Authentication, Reporting and Conformance)\n\nThe DMARC record is a\nprotocol that unifies SPF and DKIM . The instructions contained in the DMARC record of a domain name tell the destination server\nwhat to do with an incoming email that fails the SPF and/or DKIM check.\nThe aim of this documentation is to help understand the impact DMARC has on the deliverability\nof emails , rather than give precise instructions for creating a DMARC record. Refer to a\nresource like DMARC.org to set the DMARC record.\nThere are three DMARC policies:\n- p=none\n`p=none`\n- p=quarantine\n`p=quarantine`\n- p=reject\n`p=reject`\np=quarantine and p=reject instruct the server that receives an email to quarantine that email or\nignore it if the SPF or DKIM check fails.\n`p=quarantine`\n`p=reject`\nFor the DMARC to pass, the DKIM or SPF check needs to pass and the domains must be in\nalignment. If the hosting type is Odoo Online, DKIM configuration on the sending domain is\nrequired to pass the DMARC.\nPassing DMARC generally means that the email will be successfully delivered. However, itâs important\nto note that other factors like spam filters can still reject or quarantine a message .\np=none is used for the domain owner to receive reports about entities using their domain. It\nshould not impact the deliverability.\n`p=none`\n_dmarc IN TXT âv=DMARC1; p=none; rua=mailto:postmaster@example.comâ means that\naggregate DMARC reports will be sent to postmaster@example.com .\n`_dmarcINTXTâv=DMARC1;p=none;rua=mailto:postmaster@example.comâ`\n`postmaster@example.com`\n\n## SPF, DKIM and DMARC documentation of common providers\n\n- OVH DNS\n- GoDaddy TXT record\n- GoDaddy SPF, DKIM, or DMARC records\nGoDaddy SPF, DKIM, or DMARC records\n- NameCheap\n- CloudFlare DNS\n- Squarespace DNS records\nSquarespace DNS records\n- Azure DNS\nTo fully test the configuration, use the Mail-Tester tool, which\ngives a full overview of the content and configuration in one sent email. Mail-Tester can also be\nused to configure records for other, lesser-known providers.\n- Using Mail-Tester to set SPF Records for specific carriers\nUsing Mail-Tester to set SPF Records for specific carriers\n- Magic Sheet - SPF, DKIM and DMARC configuration [PDF]\nMagic Sheet - SPF, DKIM and DMARC configuration [PDF]", "headings": ["SPF (Sender Policy Framework)", "DKIM (DomainKeys Identified Mail)", "Add a CNAME record for domain", "Add a CNAME record for subdomain", "See DNS provider documentation", "DMARC (Domain-based Message Authentication, Reporting and Conformance)", "SPF, DKIM and DMARC documentation of common providers"], "doc_id": "253decd16a5052b0"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/email_communication/email_servers_inbound.html", "title": "Manage inbound messages", "module": "general", "section": "Manage inbound messages", "text": "# Manage inbound messages\n\nAn inbound message is an email delivered to an Odoo database. Anyone can send an email to an email\nalias created in the database or reply to an email that was previously sent from the database based\non the reply-to header.\n\n## Email aliases\n\n### Model specific aliases\n\nSome applications have their specific aliases (sales teams, helpdesk teams, projects, etc.). These\naliases are used to:\n- Create a record when an email is sent directly to the alias,\nCreate a record when an email is sent directly to the alias,\n- Receive replies to an email initially sent from a record.\nReceive replies to an email initially sent from a record.\nIn the example displayed above, sending an email to info@company-name.odoo.com will create a\nnew opportunity or a new lead automatically assigned to the corresponding sales team. If an email\nis sent from the chatter of an existing opportunity, the reply-to will be info@company-name.odoo.com . The reply will be posted in the right chatter, according to the message-id header.\n`info@company-name.odoo.com`\n`info@company-name.odoo.com`\n\n### Catchall\n\nIf an application does not have an alias, a generic fallback alias is used: the catchall. An email\nsent from a chatter has a reply address set to this catchall alias. A reply sent to the catchall is\nposted to the right chatter thanks to the message-id header.\nBy default, the local-part catchall will be used. Enable Developer mode (debug mode) and go to Settings ⣠Technical ⣠Emails: Alias Domains to access the configuration.\nAn email to the catchall always needs to be a reply to a previous email sent from the database. If\nan email is sent directly to the catchall, the sender will receive the following message:\nThe email address info@company-name.com displayed in the screenshot above is the email address\nset on the company. Upon entering the developer mode on a company profile, additional\nconfiguration options (such as catchall and bounce) become readable. It can be modified by\nclicking on the internal link of the Email Domain. It is generally not recommended to modify\nthese options unless specific needs dictate, as it will affect all replies to previously sent\nemails.\n`info@company-name.com`\nAn alias can be configured on a sales team in the CRM app. When a customer replies to an email\ncoming from the CRM app, the reply-to is info@company-name.odoo.com .\n`info@company-name.odoo.com`\nWhen an email is sent from the Contact app, the reply address is catchall@company-name.odoo.com because there is no alias on the contact model.\n`catchall@company-name.odoo.com`\nIt is advised to keep the local-part of the catchall and the bounce unchanged. If this value is\nmodified, previous emails sent from the database will still have the previous local-part values.\nThis could lead to replies not being correctly received in the database.\n\n### Bounce\n\nIn the same way the catchall alias is used to build the reply address, the bounce alias is used to\nbuild the return-path of the email. The return-path is used when emails cannot be delivered to\nthe recipient and an error is returned to the sender.\nBy default the name bounce will be used. Enable Developer mode (debug mode) and go to Settings ⣠Technical ⣠Emails: Alias Domains to access the configuration.\nOn Odoo Online, when using the default outgoing email server, the return-path address is forced\nto the value bounce@company-name.odoo.com independently of the value set as bounce alias.\n`bounce@company-name.odoo.com`\nWhen an error occurs, a notification is received and displayed in a red envelope in the chatter. In\nsome cases, the red envelope can just contain a no error message, meaning there is an error that\ncould not be handled by Odoo.\n`noerror`\nA notification will also be displayed in the Discuss icon on the navigation bar.\nIf the email address of the recipient is incorrect, by clicking on the red envelope in the\nchatter an error message containing the reason for the failure will be given.\n\n## Receive emails with Odooâs default configuration\n\nOn Odoo Online and Odoo.sh , the email alias, reply, and bounce addresses are pre-configured.\nThese addresses use the alias domain automatically added to a standard database.\nAssuming the database URL is https://mydatabase.odoo.com , the alias domain mydatabase.odoo.com is automatically created. Catchall and bounce can be used and their address\nis respectively catchall@mydatabase.odoo.com , and bounce@mydatabase.odoo.com .\n`https://mydatabase.odoo.com`\n`mydatabase.odoo.com`\n`catchall@mydatabase.odoo.com`\n`bounce@mydatabase.odoo.com`\nIf the CRM app is installed, and a sales team with the alias info is created, the info@mydatabase.odoo.com address can be used immediately. The same goes for any other alias\ncreated in other applications.\n`info`\n`info@mydatabase.odoo.com`\nThe database domain is ready to be used to receive emails without any additional configuration.\n\n## Use multiple Odoo subdomains\n\nOn Odoo Online , the only Odoo subdomain is the one defined at the database creation.\nOn Odoo.sh , it is possible to use several Odoo subdomains. In the settings of the branch,\nadditional Odoo subdomains can be added as long as they are not used yet in another branch. These\ndomains must then be added to the alias domains to be used by a company.\n\n## Use a custom domain for inbound messages\n\nThe alias domain must be selected in the general\nsettings. If you have multiple companies, each one must be configured.\nAll the aliases will use this custom domain. Replies on models for which an alias is configured\nare done to [alias]@my-custom-domain.com . Replies to other models are sent to the catchall through catchall@my-custom-domain.com .\n`[alias]@my-custom-domain.com`\n`catchall@my-custom-domain.com`\nIf emails are sent using Odooâs email servers while using a custom domain, follow the âUsing a custom domain with Odooâs email serverâ instructions .\nSince this custom domain is used, all emails using an alias (replies, bounces and direct\nsends) are sent to an address of the domain. They are thus delivered to the email server linked to the domain (MX record). To\ndisplay them in the chatter or to create new records, it is necessary to retrieve these incoming\nemails in the Odoo database.\nEasy to set up, emails are directly sent to the database.\nEach alias of a database needs to be configured.\nIncoming mail servers\nAllows to keep a copy of the email in your mailbox (with IMAP).\nAllows to create records in the chosen model.\nDepends on a CRON, meaning emails are not retrieved immediately in the database.\nEach alias of a database needs to be configured.\nOnly one record needs to be created to make all aliases work properly.\nUsing a subdomain is required.\nRequires advanced technical knowledge.\nFor on-premise databases , the redirection and the MX record methods also require configuring\nthe mail gateway script . Going\nthrough this script requires advanced technical and infrastructure knowledge .\nRefer to your providerâs documentation for more detailed information on how to handle the methods\ndetailed below.\n\n### Redirections\n\nIf the database is hosted on Odoo Online or Odoo.sh , using redirections is recommended. They\nallow messages to be received without delay in the database.\nWhen configuring email redirections with Microsoft 365 (Exchange Online), be aware that certain\ntechnical limitations may affect your setup. Some users have reported that Microsoft 365 does not\nsupport true redirection and only allows forwarding, which may not behave as needed for Odooâs\nemail routing.\nFor more information on Microsoft Exchange configuration, visit Microsoft Learn .\nIt is mandatory to redirect the catchall and bounce address to the Odoo subdomain of the database.\nEvery other alias used must be redirected as well.\nWith one sales team, the following redirections are required:\n- catchall@company-name.com â catchall@company-name.odoo.com\ncatchall@company-name.com â catchall@company-name.odoo.com\n`catchall@company-name.com`\n`catchall@company-name.odoo.com`\n- bounce@company-name.com â bounce@company-name.odoo.com\nbounce@company-name.com â bounce@company-name.odoo.com\n`bounce@company-name.com`\n`bounce@company-name.odoo.com`\n- info@company-name.com â info@company-name.odoo.com\ninfo@company-name.com â info@company-name.odoo.com\n`info@company-name.com`\n`info@company-name.odoo.com`\nSome providers ask to validate the redirection by sending a link to the target email address.\nThis procedure is an issue for catchall and bounce since they are not used to create records.\n- Modify the catchall value on the mail alias domain. Developer mode (debug mode) must be enabled to\naccess this menu. For example, it can be changed from catchall to temp-catchall . This will\nallow to use catchall as the local-part of another alias.\nModify the catchall value on the mail alias domain. Developer mode (debug mode) must be enabled to\naccess this menu. For example, it can be changed from catchall to temp-catchall . This will\nallow to use catchall as the local-part of another alias.\n`catchall`\n`temp-catchall`\n`catchall`\n- Open an app that uses an alias. For example, CRM contains aliases for each sales team. Set catchall as the local-part of the alias of a sales team.\nOpen an app that uses an alias. For example, CRM contains aliases for each sales team. Set catchall as the local-part of the alias of a sales team.\n`catchall`\n- The validation email will create a record in the CRM app. The email sent will be visible in\nthe chatter, allowing you to validate the redirection.\nThe validation email will create a record in the CRM app. The email sent will be visible in\nthe chatter, allowing you to validate the redirection.\n- Do not forget to change back the alias of the sales team and the catchall value on the mail\nalias domain, just as they were before this procedure.\nDo not forget to change back the alias of the sales team and the catchall value on the mail\nalias domain, just as they were before this procedure.\nAn alternative to redirections is forwarding . With forwarding, the address forwarding the\nemail will be identified as the sender , while with redirections, the original sender will\nalways remain.\n\n### Incoming mail servers\n\nAs mentioned earlier, using redirections is the recommended method to receive emails in Odoo.\nHowever, it is also possible to set up incoming mail servers. Using this method means creating an\nincoming email server for each mailbox on your server, catchall, bounce, and every alias of the\ndatabase, in order to fetch all incoming emails.\nOdooâs Incoming Mail Servers feature is designed for shared inboxes (e.g., sales@yourcompany.com or support@yourcompany.com ) to route messages to team pipelines,\ntickets, or documents.\n`sales@yourcompany.com`\n`support@yourcompany.com`\nUsing personal email addresses (e.g., mitchell.admin@yourcompany.com ) as incoming mail servers\nis not recommended. Doing so can lead to increased security risks, unintended message\nrouting, privacy issues, and difficulties syncing replies correctly.\n`mitchell.admin@yourcompany.com`\nIncoming mail servers are created by going to Settings ⣠Technical ⣠Emails:\nIncoming Mail Servers .\nWe recommend using the IMAP protocol over the POP protocol, as IMAP fetches all unread emails,\nwhile POP fetches all the emailsâ history and then tags them as deleted in your mailbox.\nIt is also possible to connect a mailbox through Gmail with Google OAuth or Outlook with Microsoft Azure OAuth .\nRegardless of the protocol chosen, emails are fetched using the Mail: Fetchmail Service scheduled\naction.\nAdditionally, using an incoming mail server in Odoo gives the opportunity to create new records in a\nspecified model. Each incoming mail server can create records in a different model.\nEmails received on task@company-name.com are fetched by the Odoo database. All fetched emails will\ncreate a new project task in the database.\n`task@company-name.com`\n\n### MX record\n\nA third option is to create a MX record in your DNS zone which specifies the mail server managing\nemails sent to your domain. Advanced technical knowledge is required.\nThis configuration only works with a subdomain on the Odoo Online or Odoo.sh infrastructure\n(e.g., @mail.mydomain.com )\n`@mail.mydomain.com`\nBelow are presented some specifications depending on the hosting type:\nThe custom subdomain must be added to your Odoo Portal .\nThe custom subdomain must be added to the settings of the project :\n\n## Infinite email loops\n\nIn some cases, infinite mailing loops can be created. Odoo provides some protection against such\nloops, ensuring the same sender cannot send too many emails that would create records to an\nalias in a specific time span.\nBy default, an email address can send up to 20 emails in 120 minutes. If more emails are sent, they\nare blocked and the sender receives the following message:\nTo change the default behavior, enable Developer mode (debug mode) , then go to Settings\n⣠Technical ⣠Parameters: System Parameters to add two parameters.\n- For the first parameter, enter mail.gateway.loop.minutes as the Key and choose a\nnumber of minutes as the Value ( 120 is the default behavior).\nFor the first parameter, enter mail.gateway.loop.minutes as the Key and choose a\nnumber of minutes as the Value ( 120 is the default behavior).\n`mail.gateway.loop.minutes`\n`120`\n- For the second parameter, enter mail.gateway.loop.threshold as the Key and choose a\nnumber of emails as the Value ( 20 is the default behavior).\nFor the second parameter, enter mail.gateway.loop.threshold as the Key and choose a\nnumber of emails as the Value ( 20 is the default behavior).\n`mail.gateway.loop.threshold`\n`20`\n\n## Allow alias domain system parameter\n\nIncoming aliases are set in the Odoo database to create records by receiving incoming emails. To\nview aliases set in the Odoo database, first activate the developer mode .\nThen, go to Settings app ⣠Technical ⣠Aliases .\nThe following system parameter, mail.catchall.domain.allowed , set with allowed alias domain\nvalues, separated by commas, filters out correctly addressed emails to aliases. Setting the domains\nfor which the alias can create a ticket, lead, opportunity, etc., eliminates false positives where\nemail addresses with only the prefix alias, not the domain, are present.\n`mail.catchall.domain.allowed`\nIn some instances, matches have been made in the Odoo database when an email is received with the\nsame alias prefix and a different domain on the incoming email address. This is true in the sender,\nrecipient, and CC email addresses of an incoming email.\nWhen Odoo receives emails with the commercial prefix alias in the sender, recipient, or CC email addresses (e.g. commercial@example.com), the database falsely\ntreats the email as the full commercial alias, with a different domain, and therefore, creates\na ticket/lead/opportunity/etc.\n`commercial`\n`commercial`\nTo add the mail.catchall.domain.allowed system parameter, first, activate the developer mode . Then, go to Settings app ⣠Technical ⣠System Parameters .\nClick New . Then, type in mail.catchall.domain.allowed for the Key field.\n`mail.catchall.domain.allowed`\n`mail.catchall.domain.allowed`\nNext, for the Value field, add the domains separated by commas. Manually (Save) , and the system parameter takes immediate effect.\n\n## Local-part based incoming detection\n\nWhen creating a new alias, there is an option to enable Local-part based incoming\ndetection . If enabled, Odoo only requires the local-part to match for routing an incoming email. If\nthis feature is turned off, Odoo requires the whole email address to match for routing an incoming\nemail.", "headings": ["Email aliases", "Model specific aliases", "Catchall", "Bounce", "Receive emails with Odooâs default configuration", "Use multiple Odoo subdomains", "Use a custom domain for inbound messages", "Redirections", "Incoming mail servers", "MX record", "Infinite email loops", "Allow alias domain system parameter", "Local-part based incoming detection"], "doc_id": "06e32c04c9a2711f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/email_communication/email_servers_outbound.html", "title": "Manage outbound messages", "module": "general", "section": "Manage outbound messages", "text": "# Manage outbound messages\n\n## Sending emails with Odooâs default configuration\n\nOn Odoo Online and Odoo.sh , sending and receiving emails works out of the box. No\nconfiguration is required.\nWhen a database is created, the subdomain company-name.odoo.com is used to send and receive\nemails. The deliverability is optimized for this subdomain as it uses Odooâs DNS configuration.\n`company-name.odoo.com`\nIf the database subdomain is company-name.odoo.com and all mailing configurations are the\ndefault ones, all emails will be sent from notifications@company-name.odoo.com .\n`company-name.odoo.com`\n`notifications@company-name.odoo.com`\nThis configuration is handled by the system parameter mail.default.from_filter .\nIn case where the senderâs domain do not match the value of this parameter, the notification address\nis used instead. Multiple values can be defined in this system parameter: comma-separated, domains\nor full email addresses are all allowed. Once an outgoing mail server is configured , the system parameter is no longer considered\nand the value used is the FROM filtering of the mail server.\n`mail.default.from_filter`\nEmails are sent with catchall@company-name.odoo.com as the reply-to address. In addition,\ndelivery errors are sent to bounce@company-name.odoo.com .\n`catchall@company-name.odoo.com`\n`bounce@company-name.odoo.com`\nThe catchall, bounce, and notification addresses do not work like other aliases. They do not have\nthe vocation to create records in a database. Emails sent to an alias are automatically routed\nand will reply to an existing and linked record or will create a new one in the database.\n\n## Using a custom domain to send emails\n\nThe database can be configured to use a custom domain, in which case all default email addresses are\nbuilt using the custom domain. If the custom domain is company-name.com , the sender address will\nbe notifications@company-name.com , the reply-to address catchall@company-name.com , and the bounce address bounce@company-name.com . The custom domain can be utilized when sending emails\neither with Odooâs email servers or an external one.\n`company-name.com`\n`notifications@company-name.com`\n`catchall@company-name.com`\n`bounce@company-name.com`\nThis section assumes ownership of a custom domain. If not, a custom domain must be purchased from a\ndomain registrar such as GoDaddy, Namecheap, or any alternative provider.\nMagic Sheet - Email domain name configuration [PDF]\n\n### Using a custom domain with Odooâs email server\n\nOn Odoo Online or Odoo.sh , some configurations are mandatory in the custom domainâs DNS to\nensure good deliverability.\nMost of the configuration will be done on the domain providerâs side, and it might require some\nconfiguration on the mail server itself. Some technical knowledge is required.\nThe first step is to configure the SPF and DKIM to be compliant with Odooâs mail server.\nNext, the custom domain must be set as the alias domain of a company. Select the company, open the Settings , and add the custom domain under the Alias Domain field.\nAfter adding the alias domain, click the ( internal link ) icon to\nassign more companies to the custom domain if needed. Enable the Developer mode (debug mode) mode to\nmodify the default aliases if desired:\n- Bounce Alias : the mailbox used to catch delivery errors and populate the red\nenvelope on the corresponding message.\nBounce Alias : the mailbox used to catch delivery errors and populate the red\nenvelope on the corresponding message.\n- Catchall Alias : the default mailbox used to centralize all replies.\nCatchall Alias : the default mailbox used to centralize all replies.\n- Default From Alias : the default sender address.\nDefault From Alias : the default sender address.\nAt the creation of the first alias domain, all companies will use it. If you create a new\ncompany, the alias domain automatically set is the one with the lowest priority (ad displayed on\nthe alias domain list in Developer mode (debug mode) ).\nAll email aliases (e.g., related to CRM or Helpdesk teams) must have their corresponding mailbox in\nthe custom domain mail server.\nTo receive emails in the Odoo database within the corresponding chatter (CRM, invoices, sales\norders, etc.), one of these three methods must be used:\n- Redirections/forwarding ,\nRedirections/forwarding ,\n- Incoming mail servers ,\nIncoming mail servers ,\n- MX record (requires advanced technical knowledge)\nMX record (requires advanced technical knowledge)\nUsing a custom domain implies that specific local-parts might be used by Odoo to send emails.\n\n### Sending emails with an external SMTP server\n\nIf utilizing your own outgoing mail server, it must be paired with your own domain, as updating\nthe DNS of an Odoo subdomain is not feasible.\nTo add an external SMTP server in Odoo, open Settings , and enable the Use\nCustom Email Servers option found under the Emails section. Then, click Save at the top of the page to save the changes.\nReturning to the Emails section, click Outgoing Email Servers , then New to\ncreate an outgoing mail server record. Most fields are the common parameters used to set up a\nconnection to an SMTP server; use the values provided by your email provider.\n`New`\nOnce completed, click Test Connection . Note that a successful test connection does not\nconfirm that the email will go out as some restriction might remain on the provider side, thus, it\nis recommended to consult your providerâs documentation.\n\n#### Local-part values\n\nBelow are presented the different local-part values that can be used by Odoo to send emails. It\nmight be required to whitelist them in your mail server:\n- The Alias Domain Bounce Alias (default value = bounce ),\nThe Alias Domain Bounce Alias (default value = bounce ),\n`bounce`\n- The Alias Domain Default From (default value = notifications ),\nThe Alias Domain Default From (default value = notifications ),\n`notifications`\n- The default admin address admin@company-name.odoo.com or, if changed, the new value),\nThe default admin address admin@company-name.odoo.com or, if changed, the new value),\n`admin@company-name.odoo.com`\n- The default Odoobot address odoobot@company-name.odoo.com or, if changed, the new value),\nThe default Odoobot address odoobot@company-name.odoo.com or, if changed, the new value),\n`odoobot@company-name.odoo.com`\n- The specific FROM defined on an email marketing campaign,\nThe specific FROM defined on an email marketing campaign,\n- The specific FROM that can be defined in an email template.\nThe specific FROM that can be defined in an email template.\n- Connect Gmail to Odoo using Google OAuth\nConnect Gmail to Odoo using Google OAuth\n- Connect Microsoft Outlook 365 to Odoo using Azure OAuth\nConnect Microsoft Outlook 365 to Odoo using Azure OAuth\n\n## Setting up different servers for transactional and mass emails\n\n### Personalized mail servers\n\nTransactional emails and mass mailings can be sent using separate email servers in Odoo. Doing so\nmeans day-to-day emails, quotations, or invoices sent to clients will be handled as transactional\nemails . Mass mailing emails , including the sending of batches of invoices or quotations, will be\nmanaged by the Marketing Automation or Email Marketing application.\nYou can use services like Gmail, Amazon SES, or Brevo for transactional emails, and services like\nMailgun, Sendgrid, or Mailjet for mass mailings.\nFirst, activate the Developer mode (debug mode) and go to Settings ⣠Technical â£\nEmail: Outgoing Mail Servers . There, add two outgoing email server records, one for the\ntransactional emails server and one for the mass mailings server. Enter a lower Priority value for the transactional server (e.g., 1 ) over the mass mailings server (e.g., 2 ) so\ntransactional emails are given priority.\n`1`\n`2`\nNow, go to Email Marketing ⣠Configuration ⣠Settings , enable Dedicated Server , and select the appropriate email server. Odoo uses the server with the\nlowest priority value for transactional emails, and the server selected here for mass mailings.\n\n#### FROM filtering\n\nItâs highly recommended to configure the FROM Filtering on the outgoing mail servers as per\nthe instructions of your provider.\nThe FROM Filtering field allows for the use of a specific outgoing email server\ndepending on the From email address or domain that Odoo is sending on behalf of. The value must\nbe a domain or a complete address that matches the senderâs email address and is trusted on the\noutgoing mail server providerâs side.\nIf FROM filtering is not used, emails will go out using the notification address.\nSome outgoing mail servers require a specific configuration of the FROM filter.\nWhen an email is sent from Odoo, the following sequence is used to choose the outgoing email server:\n- First, Odoo searches for a server that has the same FROM filtering value as the From value (i.e.,\nemail address) defined in the outgoing email. This configuration is ideal if all users of a\ncompany share the same domain but have different local-parts.\nFirst, Odoo searches for a server that has the same FROM filtering value as the From value (i.e.,\nemail address) defined in the outgoing email. This configuration is ideal if all users of a\ncompany share the same domain but have different local-parts.\nIf the senderâs email address is test@example.com , only an email server having a FROM filtering\nvalue equal to test@example.com or example.com can be used.\n`test@example.com`\n`test@example.com`\n`example.com`\n- If no server is found based on the first criteria, Odoo looks for the first server without a FROM\nfiltering value set. The email will be overridden with the notification address.\nIf no server is found based on the first criteria, Odoo looks for the first server without a FROM\nfiltering value set. The email will be overridden with the notification address.\n- If no server is found based on the second criteria, Odoo uses the first server, and the email will\nbe overridden with the notification address.\nIf no server is found based on the second criteria, Odoo uses the first server, and the email will\nbe overridden with the notification address.\nTo determine which server is first, Odoo uses the priority value (the lower the value is, the\nhigher the priority is). Failing to do so, the first server is determined by the serversâ names,\nusing alphabetical order.\n- If there is no mail server, Odoo relies on the system parameter value.\nIf there is no mail server, Odoo relies on the system parameter value.\nIt is also possible to use Odooâs mail server for transactional emails in addition to mass mailings.\n\n### Using an external email server and Odooâs default server\n\nOn Odoo Online and Odoo.sh, databases are started with Odooâs SMTP server. If no outgoing mail\nserver is set, the default Odooâs SMTP server will be used.\nIf an outgoing mail server is used simultaneously with Odooâs default server (CLI), the FROM\nfilter of the outgoing mail server must contain a custom domain, and the FROM filter of the CLI\nmust contain Odooâs subdomain. If there is no FROM filtering, the email will go out using the\nnotification address.\nOn Odoo Online, the command line interface is equivalent to the default Odoo mail server, using\nthe same limit as if there was no outgoing mail server in place.\nOn Odoo Online, the page also shows your daily email usage and your daily limit. On Odoo.sh, you\nneed to check on the monitor page the number of outgoing emails that were sent.\nOn Odoo.sh, to use the command-line interface, an outgoing mail server can be configured on the\nconfiguration file.\nOdooâs mail server is meant for transactional emails and small-scale marketing campaigns. The daily limit depends on the\ndatabase type and the applications used.\n\n## Using a custom domain with an external email server\n\nSimilar to the previous chapter , proper\nconfiguration might be needed to ensure that the external email server is allowed to send emails\nusing your custom domain. Refer to your providerâs documentation to properly set up the relevant\nrecords (SPF, DKIM, and DMARC). A list of the most common providers is available .\nDNS configuration is required when you use your own domain. If an external outgoing mail server\nis used, configuring the records as described in the Odoo DNS configuration for our mail\nservers documentation will not have the desired effect , as it is independent\nof Odoo when using a custom email server. Odoo does not allow the configuration of Odooâs\nsubdomain.\n\n## Port restriction\n\nPort 25 is blocked for security reasons on Odoo Online and Odoo.sh. Try using port 465, 587, or 2525\ninstead.\n\n## Alias domain\n\nThe catchall domain is company-specific. By default, all companies share Odooâs subdomain (e.g., company-name.odoo.com ), but each company may have its own custom email domain.\n`company-name.odoo.com`\nWhen the Developer mode (debug mode) is activated, the alias domain options are available by going to Settings ⣠Technical ⣠Email: Alias Domains .\nAny modification of the alias domain must be done very carefully. If one of the aliases (bounce,\ncatchall, default from) is changed, all previous emails that are not properly redirected to the\nnew aliases will be lost.\nThe Default From Alias field can be filled with a local-part of the email address (by\ndefault notifications ) or a full email address. Configure it to determine the FROM header of\nyour emails. If a full email address is used, all outgoing emails will be overwritten with this\naddress.\n`notifications`\n`FROM`\n\n## Notification system\n\nWhen an email is sent from the chatter, customers can reply directly to it. If a customer replies\ndirectly to an email, the answer is logged in the same chatter, thus functioning as a message thread\nrelated to the record.\nUpon receiving the reply, Odoo then uses the subscribed followers (based on the subscribed subtypes)\nto send them a notification by email, or in the Odoo inbox, depending on the userâs preferences.\nIf a customer with the email address âMaryâ <mary@customer.example.com> makes a direct reply to\nan email coming from the Odoo database, Odooâs default behavior is to redistribute the emailâs\ncontent to all other followers within the thread.\n`âMaryâ<mary@customer.example.com>`\nAs Maryâs domain does not belong to the alias domain, Odoo overrides the email address and uses\nthe notification email address to notify the followers. This override depends on the\nconfiguration done in the database. By default, on Odoo Online and Odoo.sh, the email FROM address will be overridden with the value notifications@company-name.odoo.com instead of mary@customer.example.com .\n`FROM`\n`notifications@company-name.odoo.com`\n`mary@customer.example.com`\nThe address is constructed using the name of the sender and {alias domain, default from alias}`@`{alias domain, domain name} , by default, notifications@company-name.odoo.com .\n`{aliasdomain,defaultfromalias}`@`{aliasdomain,domainname}`\n`notifications@company-name.odoo.com`\n\n## Using a unique email address for all outgoing emails\n\nTo force the email address from which emails are sent, activate the Developer mode (debug mode) , and go to Settings ⣠Technical ⣠Email: Alias Domains . On the Default From\nAlias , use the local-part or a complete email address as the value.\nIf a complete address is used as the Default From Alias value, all outgoing\nemails will be overwritten by this address.", "headings": ["Sending emails with Odooâs default configuration", "Using a custom domain to send emails", "Using a custom domain with Odooâs email server", "Sending emails with an external SMTP server", "Setting up different servers for transactional and mass emails", "Personalized mail servers", "Using an external email server and Odooâs default server", "Using a custom domain with an external email server", "Port restriction", "Alias domain", "Notification system", "Using a unique email address for all outgoing emails"], "doc_id": "091b5ce561c5dfc0"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/email_communication/faq.html", "title": "Common emailing issues and solutions", "module": "general", "section": "Common emailing issues and solutions", "text": "# Common emailing issues and solutions\n\nThis page lists the most common emailing issues and their solutions.\n\n## Odoo is not an email provider\n\nOdoo does not function like a classic email inbox, such as Gmail, Outlook, Yahoo, etc.\nWhile Odoo uses emails as a way to notify and communicate with users/customers, it is, by design,\nnot a replacement for a dedicated email server. Therefore, it might not behave in the expected way\nwhen compared to a traditional email inbox.\nThe main differences are the following:\n- By default, once a notification or transactional email (quote, invoice, direct message to a\ncontact) is sent out successfully, the email object is deleted. The email messageâs content lives\nin the chatter of the related record. It prevents cluttering the database with multiple copies of\nthe content of the same email (when sent to multiple recipients) if the content is already present\nin the chatter.\nBy default, once a notification or transactional email (quote, invoice, direct message to a\ncontact) is sent out successfully, the email object is deleted. The email messageâs content lives\nin the chatter of the related record. It prevents cluttering the database with multiple copies of\nthe content of the same email (when sent to multiple recipients) if the content is already present\nin the chatter.\n- There is no concept of (blind) carbon copy ([B]CC). Odoo uses the concept of followers added to\na chatter to automatically decide when and how a contact is notified or receives a copy of an email.\nThere is no concept of (blind) carbon copy ([B]CC). Odoo uses the concept of followers added to\na chatter to automatically decide when and how a contact is notified or receives a copy of an email.\n- Incoming emails are handled by checking if the TO email address is a valid email address in the\nOdoo database or, in case of a reply email, if there is a reference in the email header that\nmatches a message sent from the Odoo database. All other emails will be bounced and not temporarily parked in a spam or quarantine folder. In other words, any email unrelated to an Odoo\ndatabase is lost.\nIncoming emails are handled by checking if the TO email address is a valid email address in the\nOdoo database or, in case of a reply email, if there is a reference in the email header that\nmatches a message sent from the Odoo database. All other emails will be bounced and not temporarily parked in a spam or quarantine folder. In other words, any email unrelated to an Odoo\ndatabase is lost.\n\n## Outgoing emails\n\n### Changing the email address of the admin user account\n\nWhen an Odoo database is created, the main admin account is assigned a placeholder email address. It\nis recommended to replace the admin email address with a valid email address to prevent outgoing\nemail issues.\nTo do so, on the admin account, click the user icon, click My Profile (or Preferences ), and update the Email field found under the Preferences tab. Either use any other email address or use your Odoo subdomain (e.g., company-name.odoo.com ) and admin for the local-part (e.g., admin@company-name.odoo.com ).\n`company-name.odoo.com`\n`admin`\n`admin@company-name.odoo.com`\n\n### Delivery failure\n\nWhen a message is sent, an (envelope) icon is displayed in the\nchatter. The icon turns red when delivery has failed for at least one recipient.\nLeft-click the envelope to display information about the delivery, and, if possible, the relevant error messages .\nClick See Error Details to get extra information for the fail reason, if Odoo was\nable to process the original error or bounce email.\nClick Send & close to retry sending the email to all toggled-on ( ) recipients under the Try Again column. All toggled-off ( ) recipients will be ignored.\nClick Ignore all to ignore all currently failing emails and turn the envelope icon from\nred to white.\nUnsent emails also appear in the Odoo email queue. To access it, activate the developer mode and go to Settings ⣠Technical ⣠Email: Emails .\nFailed emails display the Delivery Failed status. Click Retry to put a\nfailed email in the email queue again. It will then appear with the Outgoing status. The\nemail will be sent again the next time the scheduled action for the email queue runs.\nOptionally, queued emails can be sent immediately by clicking Send Now . Click Cancel Email to remove it from the email queue.\nSent emails are periodically cleaned from the queue. This is controlled by the Auto-Vacuum scheduled action that cleans redundant data on your Odoo database.\n\n#### Common error messages\n\nOdoo limits the number of emails that can be sent from an Odoo Online database. Most email service\nproviders (e.g., Google, Yahoo, etc.) will blacklist Odooâs server IP if Odooâs email server is\nsending too many emails to addresses that do not exist or are no longer valid. It also applies to\nunsolicited spam emails sent through an Odoo database.\nThe default daily email limit varies between 5 and 200 emails . The exact limit is depends on\nseveral factors (subject to change):\n- Type of database subscription (one app free, trial, paying subscription)\nType of database subscription (one app free, trial, paying subscription)\n- Apps installed (i.e., Email Marketing, Marketing Automation)\nApps installed (i.e., Email Marketing, Marketing Automation)\n- If a database migration is ongoing\nIf a database migration is ongoing\nIf the daily limit is reached, you can:\n- Contact Odoo Support to increase your email quota. The following factors\nwill be taken into account: Numbers of users on the database Apps installed Bounce rate (the percentage of email addresses that did not receive emails because they were\nreturned by an email server on their way to the final recipient). Whether your email aliases are correctly set up and use the appropriate custom domains . Tip When using a custom domain, verify that SPF , DKIM , and DMARC are correctly configured so that Odooâs email servers are allowed to send emails on your custom domainâs behalf .\nContact Odoo Support to increase your email quota. The following factors\nwill be taken into account:\n- Numbers of users on the database\nNumbers of users on the database\n- Apps installed\n- Bounce rate (the percentage of email addresses that did not receive emails because they were\nreturned by an email server on their way to the final recipient).\nBounce rate (the percentage of email addresses that did not receive emails because they were\nreturned by an email server on their way to the final recipient).\n- Whether your email aliases are correctly set up and use the appropriate custom domains . Tip When using a custom domain, verify that SPF , DKIM , and DMARC are correctly configured so that Odooâs email servers are allowed to send emails on your custom domainâs behalf .\nWhether your email aliases are correctly set up and use the appropriate custom domains .\nWhen using a custom domain, verify that SPF , DKIM , and DMARC are correctly configured so that Odooâs email servers are allowed to send emails on your custom domainâs behalf .\n- Use an external outgoing email server to be independent of Odooâs\nemail limit.\nUse an external outgoing email server to be independent of Odooâs\nemail limit.\n- Wait until the next day, and retry sending the email. To do so, activate the developer mode , go to Settings ⣠Technical ⣠Email: Emails , and click Retry next to the unsent email.\nWait until the next day, and retry sending the email. To do so, activate the developer mode , go to Settings ⣠Technical ⣠Email: Emails , and click Retry next to the unsent email.\nThe daily email limit counts every email leaving your Odoo database, triggered either manually\nor automatically. By default, any internal message, notification, logged note, etc., counts as an\nemail if it notifies someone via email. This can be mitigated by receiving notifications in\nOdoo instead of by email.\nSimple Mail Transport Protocol (SMTP) is a standard used to transmit\nemails between email servers and/or email clients.\nIf you use an external STMP server to send emails ,\na standard set of SMTP error codes exists . While the\ncode numbers are not specific to Odoo, the exact content of the error message might vary from email\nserver to email server.\nA 550 SMTP permanent delivery error from sendgrid.com:\nThe error message indicates that you tried sending an email from an unverified email address.\nInvestigating the outgoing email server configuration or the default FROM address of your\ndatabase is a good starting point to troubleshoot the issue, and verify that you whitelisted the\nemail address on the side of sendgrid.com.\nUsually, inputting the error message content in a Google search can yield information on what the\nroot cause might be and how to correct the issue.\nIf the issue cannot be resolved and keeps occurring, contact Odoo Support .\nOdoo is not always capable of providing information on the reason a delivery failed. The different\nemail providers implement their own policy on bounced emails, and it is not always possible for Odoo\nto interpret it correctly.\nIf there is a recurring problem with the same customer or the same domain, contact Odoo\nSupport .\nOne of the most common reasons for an email failing to be sent with no error message is related\nto the SPF or DKIM configuration. Also,\nverify that the implemented email notification setup is adapted to your business needs. See the Communication in Odoo by email documentation for more\ninformation.\n\n### Execution time\n\nThe exact time of an email is sent is handled by a system utility cron (scheduled action) that can\nbe used to schedule tasks to run automatically at predetermined intervals. Odoo uses this approach\nto send emails that are considered ânot urgentâ (i.e., newsletters formats such as mass mailing,\nmarketing automation, and events). This avoids cluttering the mail servers and, instead, prioritizes\nindividual communication.\nA cron is an action that Odoo runs in the background to execute particular code to complete a\ntask. Odoo also creates cron triggers in certain workflows that can trigger a scheduled action\nearlier than its scheduled date. Running a scheduled action manually or changing its frequency\nis generally not recommended, as it might create errors or break specific workflows.\nBy default, for the normal email queue, the Mail: Email Queue Manager cron runs every 60\nminutes. The lowest running interval for a cron is 5 minutes. Odoo recommends an interval of 15\nminutes to ensure proper operation. If the interval is too short, not all emails may be processed,\nwhich may cause the cron to timeout.\nEmails that are considered urgent (from one person to another, such as sales orders, invoices,\npurchase orders, etc.) are sent immediately. They do not show up under Settings â£\nTechnical ⣠Email: Emails , unless their delivery fails.\nEmail campaigns are sent as soon as possible (after clicking the Send button) or at a\nscheduled time (after clicking the Schedule button).\nFor the email marketing queue, the Mail Marketing: Process queue cron runs once a day,\nbut will be automatically triggered early if a campaign is scheduled outside of this default\nfrequency. If a mailing list contains a large number of recipients, triggering the cron manually\nmultiple times is not recommended , as it will not accelerate the processing time and might\ncreate errors.\nTo edit crons, enable the developer mode and go to Settings ⣠Technical ⣠Automation: Scheduled Actions .\nFor more information about crons when using Odoo.sh, check out Odoo.sh frequent technical\nquestions .\n\n#### Email Marketing campaigns stuck in the queue\n\nIf multiple Email Marketing campaigns are put in the queue, they are processed in chronological\norder based on their creation date.\nIf there are three campaigns: Campaign_1 (created 1st of January), Campaign_2 (created 2nd of\nJanuary), and Campaign_3 (created 3rd of January), they are put in the queue by clicking Send on all three of them.\nThe cron will try to process Campaign_1, then Campaign_2, and finally Campaign_3. It will not\nstart processing Campaign_2 until it finishes processing Campaign_1.\nIf an email campaign never leaves the queue, there might be an issue with the campaign at the top\nof the queue. To troubleshoot, we could remove Campaign_1 from the queue by clicking the Cancel button, and see if the two other campaigns are sent. Then we could try to fix\nCampaign_1 or contact Odoo Support .\n\n## Incoming emails\n\nWhen there is an issue with incoming emails, there might not be an indication, per se, in Odoo. It\nis the sending email client, who tries to contact a database, that will get a bounce message (most\nof the time a 550: mailbox unavailable error message).\n\n### Email is not received\n\nContact Odoo Support if there is a recurring issue with the same\nclient or domain.\nYou can use database logs to understand and fix issues. Logs are a stored collection of all\nthe tasks completed in a database. They are a text-only representation, complete with\ntimestamps of every action taken on the Odoo database. This can be helpful to track emails\nleaving the database. Sending failures can also be seen by logs when they indicate that the\nmessage tried to send repeatedly. Logs show every action to the email servers from the\ndatabase.\nLive logs are located in the ~/logs/ folder (accessed by the command line or on the\nOdoo.sh dashboard). Log files are created everyday at 5:00 AM (UTC).\n`~/logs/`\nThe two most recent files, for the current day and the previous one, are named odoo.log and odoo.log.1 .\n`odoo.log`\n`odoo.log.1`\nLog files for older dates are named using their dates and are compressed. Use the commands grep and zgrep (for the compressed ones) to search through the files.\nFor more information on logs and how to access them via the Odoo.sh dashboard, refer to the Odoo.sh logs documentation .\nFor more information on accessing logs via the command line, refer to the developer\nlogging documentation .\n\n## Information for Odoo Support\n\nHere is a list of helpful information to include when reaching out to Odoo Support :\n- An export of the full email from the inbox. These are usually in .eml or .msg file formats\ncontaining technical information required for an investigation. The exact process to download the\nfile depends on your third-party email provider. See also Gmail Help Center: Trace an email with its full header Microsoft Support: View internet message headers in Outlook When using a local email software (e.g., Thunderbird, Apple Mail, Outlook, etc.) to synchronize\nemails, it is usually possible to export the local copies of emails as EML/MSG files. Refer to\nthe documentation of the software used for more information. Tip If possible, the EML/MSG file should be based on the original email that was sent and is\nfailing or is causing issues. For incoming emails : if possible contact the original email sender and request an EML/MSG\ncopy of the original email. Sending a copy of the original email (forwarded) only contains\npartial information related to the troubleshooting. For outgoing emails : either provide the EML/MSG of the email or specify what record in the\ndatabase is affected (e.g., sales order number, contact name, invoice number) and the\ndate/time when the email was sent (e.g., email sent on the 10th January 2024 11:45 AM Central\nEuropean Time).\nAn export of the full email from the inbox. These are usually in .eml or .msg file formats\ncontaining technical information required for an investigation. The exact process to download the\nfile depends on your third-party email provider.\n`.eml`\n`.msg`\n- Gmail Help Center: Trace an email with its full header\nGmail Help Center: Trace an email with its full header\n- Microsoft Support: View internet message headers in Outlook\nMicrosoft Support: View internet message headers in Outlook\nWhen using a local email software (e.g., Thunderbird, Apple Mail, Outlook, etc.) to synchronize\nemails, it is usually possible to export the local copies of emails as EML/MSG files. Refer to\nthe documentation of the software used for more information.\nIf possible, the EML/MSG file should be based on the original email that was sent and is\nfailing or is causing issues.\nFor incoming emails : if possible contact the original email sender and request an EML/MSG\ncopy of the original email. Sending a copy of the original email (forwarded) only contains\npartial information related to the troubleshooting.\nFor outgoing emails : either provide the EML/MSG of the email or specify what record in the\ndatabase is affected (e.g., sales order number, contact name, invoice number) and the\ndate/time when the email was sent (e.g., email sent on the 10th January 2024 11:45 AM Central\nEuropean Time).\n- An explanation of the exact flow that is being followed to normally receive those emails in Odoo.\nTry to answer the following questions: Is this a notification message from a reply being received in Odoo? Is this a message being sent from the Odoo database? Is there an incoming email server being used, or is the email being redirected/forwarded\nthrough a custom email server or provider? Is there an example of an email that has been correctly forwarded? Have you changed any email-related settings recently? Did it stop working after those changes?\nAn explanation of the exact flow that is being followed to normally receive those emails in Odoo.\nTry to answer the following questions:\n- Is this a notification message from a reply being received in Odoo?\nIs this a notification message from a reply being received in Odoo?\n- Is this a message being sent from the Odoo database?\nIs this a message being sent from the Odoo database?\n- Is there an incoming email server being used, or is the email being redirected/forwarded\nthrough a custom email server or provider?\nIs there an incoming email server being used, or is the email being redirected/forwarded\nthrough a custom email server or provider?\n- Is there an example of an email that has been correctly forwarded?\nIs there an example of an email that has been correctly forwarded?\n- Have you changed any email-related settings recently? Did it stop working after those changes?\nHave you changed any email-related settings recently? Did it stop working after those changes?\n- An answer to the following questions: Is it a generic issue or is it specific to a use case? If specific to a use case, which one? Is it working as expected? In case the email is sent using Odoo, the bounce email should reach\nthe Odoo database and display the red envelope .\nAn answer to the following questions:\n- Is it a generic issue or is it specific to a use case? If specific to a use case, which one?\nIs it a generic issue or is it specific to a use case? If specific to a use case, which one?\n- Is it working as expected? In case the email is sent using Odoo, the bounce email should reach\nthe Odoo database and display the red envelope .\nIs it working as expected? In case the email is sent using Odoo, the bounce email should reach\nthe Odoo database and display the red envelope .", "headings": ["Odoo is not an email provider", "Outgoing emails", "Changing the email address of the admin user account", "Delivery failure", "Execution time", "Incoming emails", "Email is not received", "Information for Odoo Support"], "doc_id": "a86b784363afc698"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/email_communication/google_oauth.html", "title": "Connect Gmail to Odoo using Google OAuth", "module": "general", "section": "Connect Gmail to Odoo using Google OAuth", "text": "# Connect Gmail to Odoo using Google OAuth\n\nOdoo is compatible with Googleâs OAuth for Gmail. In order to send secure emails from a custom\ndomain, all that is required is to configure a few settings on Googleâs Workspace platform, as\nwell as on the back end of the Odoo database. This configuration works by using either a personal\nemail address or an address created by a custom domain.\nFor more information, visit Googleâs documentation on setting up OAuth.\n- Google Sign-In Authentication\nGoogle Sign-In Authentication\n- Google Calendar synchronization\nGoogle Calendar synchronization\n\n## Setup in Google\n\n### Create a new project\n\nTo get started, go to the Google API Console . Log in\nwith your Google Workspace account if you have one, otherwise log in with your personal Gmail\naccount (this should match the email address you want to configure in Odoo).\nAfter that, click on Create Project , located on the far right of the OAuth\nconsent screen . If a project has already been created in this account, then the New\nProject option will be located on the top right under the Select a project drop-down\nmenu.\nOn the New Project screen, rename the Project name to Odoo and\nbrowse for the Location . Set the Location as the Google Workspace\norganization . If you are using a personal Gmail account, then leave the Location as No Organization .\n`Odoo`\nClick on Create to finish this step.\n\n### OAuth consent screen\n\nIf the page doesnât redirect to the User Type options, click on OAuth\nconsent screen in the left menu.\nUnder User Type options, select the appropriate User Type , and then click on Create again, which will finally navigate to the Edit app registration page.\nPersonal Gmail Accounts are only allowed to be External User Type, which means Google may\nrequire an approval, or for Scopes to be added on. However, using a Google WorkSpace account\nallows for Internal User Type to be used.\nNote, as well, that while the API connection is in the External testing mode, then no approval is\nnecessary from Google. User limits in this testing mode is set to 100 users.\n\n### Edit app registration\n\nNext we will configure the app registration of the project.\nOn the OAuth consent screen step, under the App information section, enter Odoo in the App name field. Select the organizationâs email address under the User support email field.\n`Odoo`\nNext, under App Domain ⣠Authorized domains , click on Add Domain and\nenter odoo.com .\n`odoo.com`\nAfter that, under the Developer contact information section, enter the organizationâs\nemail address. Google uses this email address to notify the organization about any changes to your\nproject.\nNext, click on the Save and Continue button. Then, skip the Scopes page\nby scrolling to the bottom and clicking on Save and Continue .\nIf continuing in testing mode (External), add the email addresses being configured under the Test users step, by clicking on Add Users , and then the Save and\nContinue button. A summary of the app registration appears.\nFinally, scroll to the bottom and click on Back to Dashboard to finish setting up the\nproject.\n\n### Create Credentials\n\nNow that the project is set up, credentials should be created, which includes the Client ID and Client Secret . First, click on Credentials in the left sidebar menu.\nThen, click on Create Credentials in the top menu and select OAuth client ID from the dropdown menu.\n- Under Application Type , select Web Application from the dropdown menu.\nUnder Application Type , select Web Application from the dropdown menu.\n- In the Name field, enter Odoo .\nIn the Name field, enter Odoo .\n`Odoo`\n- Under the Authorized redirect URIs label, click the button ADD URI , and\nthen input https://yourdbname.odoo.com/google_gmail/confirm in the URIs 1 field.\nBe sure to replace the yourdbname part of the URL with the actual Odoo database name.\nUnder the Authorized redirect URIs label, click the button ADD URI , and\nthen input https://yourdbname.odoo.com/google_gmail/confirm in the URIs 1 field.\nBe sure to replace the yourdbname part of the URL with the actual Odoo database name.\n`https://yourdbname.odoo.com/google_gmail/confirm`\n- Next, click on Create to generate an OAuth Client ID and Client\nSecret . Finally, copy each generated value for later use when configuring in Odoo, and then\nnavigate to the Odoo database.\nNext, click on Create to generate an OAuth Client ID and Client\nSecret . Finally, copy each generated value for later use when configuring in Odoo, and then\nnavigate to the Odoo database.\n\n## Setup in Odoo\n\n### Enter Google Credentials\n\nFirst, open Odoo and navigate to the Apps module. Then, remove the Apps filter from the search bar and type in Google . Install the module called Google\nGmail .\n`Google`\nNext, navigate to Settings ⣠General Settings , and under the Discuss section, ensure that the checkbox for Custom Email Servers or External Email\nServers is checked. This populates a new option for Gmail Credentials or Use\na Gmail Sever . Then, copy and paste the respective values into the Client ID and Client Secret fields and Save the settings.\n\n### Configure outgoing email server\n\nTo configure the external Gmail account, return to the top of the Custom Email Servers setting and then click the Outgoing Email Servers link.\nThen, click on New or Create to create a new email server, and fill in the Name , Description , and the email Username (if required).\nNext, click on Gmail OAuth Authentication or Gmail (under the Authenticate with or Connection section). Finally, click on Connect your Gmail Account .\nA new window labeled Google opens to complete the authorization process. Select the\nappropriate email address that is being configured in Odoo.\nIf the email address is a personal account, then an extra step pops up, so click Continue to allow the verification and connect the Gmail account to Odoo.\nThen, allow Odoo to access the Google account by clicking on Continue or Allow . After that, the page navigates back to the newly configured outgoing email\nserver in Odoo. The configuration automatically loads the token in Odoo, and a tag stating Gmail Token Valid appears in green.\nFinally, Test the Connection . A confirmation message should appear. The Odoo database\ncan now send safe, secure emails through Google using OAuth authentication.\n\n## Google OAuth FAQ\n\n### Production VS Testing Publishing Status\n\nChoosing Production as the Publishing Status (instead of Testing ) will display the following warning message:\nTo correct this warning, navigate to the Google API Platform . If the Publishing status is In Production , click Back to Testing to correct the issue.\n\n### No Test Users Added\n\nIf no test users are added to the OAuth consent screen, then a 403 access denied error will\npopulate.\nTo correct this error, return to the OAuth consent screen under APIs &\nServices and add test user(s) to the app. Add the email that you are configuring in Odoo.\n\n### Gmail Module not updated\n\nIf the Google Gmail module in Odoo has not been updated to the latest version, then a Forbidden error message populates.\nTo correct this error, go to the Apps module and clear out the search terms. Then,\nsearch for Gmail or Google and upgrade the Google Gmail module. Finally, click\non the three dots on the upper right of the module and select Upgrade .\n`Gmail`\n`Google`\n\n### Application Type\n\nWhen creating the credentials (OAuth Client ID and Client Secret ), if Desktop App is\nselected for the Application Type , an Authorization Error appears.\nTo correct this error, delete the credentials already created and create new credentials, selecting Web Application for the Application Type . Then, under Authorized\nredirect URIs , click ADD URI and type: https://yourdbname.odoo.com/google_gmail/confirm in the field, being sure to replace yourdbname in the URL with the Odoo database name.\n`https://yourdbname.odoo.com/google_gmail/confirm`", "headings": ["Setup in Google", "Create a new project", "OAuth consent screen", "Edit app registration", "Create Credentials", "Setup in Odoo", "Enter Google Credentials", "Configure outgoing email server", "Google OAuth FAQ", "Production VS Testing Publishing Status", "No Test Users Added", "Gmail Module not updated", "Application Type"], "doc_id": "d827b4e8ad3a9c83"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/email_communication/mailjet_api.html", "title": "Mailjet API", "module": "general", "section": "Mailjet API", "text": "# Mailjet API\n\nOdoo is compatible with Mailjetâs API for mass mailing.\nSet up a dedicated mass mailing server through Mailjet by configuring settings in the Mailjet\naccount and the Odoo database. In some circumstances, settings need to be configured on the custom\ndomainâs DNS settings as well.\n\n## Set up in Mailjet\n\n### Create API credentials\n\nTo get started, sign in to the Mailjet Account Information page. Next, navigate to the Senders & Domains section and click on SMTP and\nSEND API Settings .\nThen, copy the SMTP configuration settings onto a notepad.\nThey can be found under the Configuration (SMTP only) section. The SMTP configuration settings include the server address, the security option\nneeded (Use SSL / TLS ), and the port\nnumber. The settings are needed to configure Mailjet in Odoo, which is covered in the last\nsection .\nMailjet: How can I configure my SMTP parameters?\nOdoo blocks port 25 on Odoo Online and Odoo.sh\ndatabases.\nNext, click on the button labeled Retrieve your API credentials to retrieve the Mailjet\nAPI credentials.\nThen, click on the eye icon to reveal the API key . Copy this key to a notepad, as this\nserves as the Username in the Odoo configuration. Next, click on the Generate\nSecret Key button to generate the Secret Key . Copy this key to a notepad, as this\nserves as the Password in the Odoo configuration.\n\n### Add verified sender address(es)\n\nThe next step is to add a sender address or a domain to the Mailjet account settings so that the\nemail address or domain is approved to send emails using Mailjetâs servers. First, navigate to the Mailjet Account Information page. Next, click on the Add a Sender Domain or Address link under the Senders & Domains section.\nDetermine if a senderâs email address or the entire domain needs to be added to the Mailjet\nsettings. It may be easier to configure the domain as a whole if DNS access is available. Jump to the Add a domain section for\nsteps on adding the domain.\nEither all email addresses of the Odoo database users who are sending emails using Mailjetâs\nservers need to be configured or the domain(s) of the usersâ email addresses can be configured.\nBy default, the email address originally set up in the Mailjet account is added as a trusted sender.\nTo add another email address, click on the button labeled Add a sender address . Then,\nadd the email address that is configured to send from the custom domain.\nAt minimum the following email addresses should be set up in the provider and verified in Mailjet:\n- notifications@yourdomain.com\nnotifications@yourdomain.com\n- bounce@yourdomain.com\nbounce@yourdomain.com\n- catchall@yourdomain.com\ncatchall@yourdomain.com\nReplace yourdomain with the custom domain for the Odoo database. If there isnât one, then use\nthe mail.catchall.domain system parameter.\n`yourdomain`\nAfter that, fill out the Email Information form, making sure to select the appropriate\nemail type: transactional email or mass emails. After completing the form, an activation email is\nsent to the email address and the trusted sender can be activated.\nTo prevent emails from being marked as spam, set up a custom domain . Using the Odoo-provided subdomain ( dbname.odoo.com ) with the Mailjet\nserver may lead to email deliverability issues, because the email authentication protocols\n( SPF , DKIM , and DMARC ) cannot be\nconfigured on that subdomain.\n- Mailjetâs SPF/DKIM documentation\nMailjetâs SPF/DKIM documentation\n- Mailjetâs DMARC documentation\nMailjetâs DMARC documentation\n\n### Add a domain\n\nBy adding an entire domain to the Mailjet account, all the sender addresses related to that domain\nare automatically validated for sending emails using Mailjet servers. First, navigate to the Mailjet Account Information page. Next, click on Add\na Sender Domain or Address link under the Senders & Domains section. Then, click on Add domain to add the custom domain.\nThe domain needs to be added to the Mailjet account and then validated through the DNS .\nAfter that, fill out the Add a new Domain page on Mailjet and click Continue .\nAfter adding the domain, a validation page will populate. Unless the Odoo database is on-premise (in\nwhich case, choose Option 1 ), choose Option 2: Create a DNS Record . Copy the\nTXT record information to a notepad and then navigate to the domainâs DNS provider to complete validation.\n\n#### Setup in the domainâs DNS\n\nAfter getting the TXT record information from the Mailjet account, add a TXT record to the domainâs DNS . This process varies depending on the DNS provider. Consult the provider for specific configuration processes. The TXT record\ninformation consists of the Host and Value . Paste these into the\ncorresponding fields in the TXT record.\n\n#### Return to Mailjet account information\n\nAfter adding the TXT record to the domainâs DNS , navigate back to the\nMailjet account. Then, navigate to Account Information ⣠Add a Sender Domain or\nAddress , click the gear icon next to Domain , and select Validate .\nThis action can also be done by going to the Sender domains & addresses page on the Mailjet account information and clicking on Manage .\nNext, click Check Now to validate the TXT record that was added on the domain. A success\nscreen will appear if the domain is configured correctly.\nAfter successfully setting up the domain, there is an option to Authenticate this domain\n(SPF/DKIM) . This button populates SPF & DKIM provider.\nMailjetâs SPF/DKIM/DMARC documentation\n\n## Set up in Odoo\n\nTo complete the setup, navigate to the Odoo database and go to the Settings . With Developer mode (debug mode) turned on, go to the Technical Menu ⣠Email ⣠Outgoing\nMail Servers . Then, create a new outgoing server configuration by clicking on the Create button.\nNext, input the SMTP server (in-v3.mailjet.com), port number (587 or 465), and Security (SSL/TLS) that was copied earlier from the Mailjet account. They can also be found here . It is recommended to use SSL / TLS even though Mailjet may not require it.\n`SMTPserver`\n`portnumber`\n`Security(SSL/TLS)`\nFor the Username , input the API KEY . For the Password , input the SECRET KEY that was copied from the Mailjet account to the notepad earlier. These\nsettings can be found on Mailjet ⣠Account Settings ⣠SMTP and SEND API\nSettings .\nThen, if the Mailjet server is used for mass emailing, set the Priority value higher\nthan that of any transactional email server(s). Finally, save the settings and Test the\nConnection .", "headings": ["Set up in Mailjet", "Create API credentials", "Add verified sender address(es)", "Add a domain", "Set up in Odoo"], "doc_id": "b1c8229a7359d1ea"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/integrations/cloud_storage.html", "title": "Cloud Storage", "module": "general", "section": "Cloud Storage", "text": "# Cloud Storage\n\nThe cloud storage integration allows to store chatter and email attachments on the Google Cloud or Microsoft Azure platform instead of the databaseâs server.\nThe module can be used to prevent large files from being uploaded to and downloaded from a\ndatabaseâs server or when a database requires more data storage.\n- Files generated by Odoo (e.g., sales orders) and Documents/Sign app files are always stored on\nthe databaseâs server.\nFiles generated by Odoo (e.g., sales orders) and Documents/Sign app files are always stored on\nthe databaseâs server.\n- A databaseâs storage limit depends on its hosting solution: Odoo Online: 100 GB Odoo.sh: Shared hosting: 512 GB Dedicated hosting: 4 TB On-premise: limited by the infrastructure in place.\nA databaseâs storage limit depends on its hosting solution:\n- Odoo Online: 100 GB\n- Odoo.sh: Shared hosting: 512 GB Dedicated hosting: 4 TB\n- Shared hosting: 512 GB\nShared hosting: 512 GB\n- Dedicated hosting: 4 TB\nDedicated hosting: 4 TB\n- On-premise: limited by the infrastructure in place.\nOn-premise: limited by the infrastructure in place.\n\n## Google Cloud\n\nFirst, register and sign in to Google Cloud .\n\n### Service account\n\n- Open the navigation sidebar on the Google Cloud console, then go to IAM & Admin\n⣠Service Accounts ⣠Create service account .\nOpen the navigation sidebar on the Google Cloud console, then go to IAM & Admin\n⣠Service Accounts ⣠Create service account .\n- Define a Service account name , click Create and continue , then Done .\nDefine a Service account name , click Create and continue , then Done .\n- Note down the service accountâs Email as it will be used during the cloud\nstorage bucket configuration .\nNote down the service accountâs Email as it will be used during the cloud\nstorage bucket configuration .\n- Click the ( Actions ) button, then select Manage\nkeys .\nClick the ( Actions ) button, then select Manage\nkeys .\n- Go to Add key ⣠Create new key , select JSON as the Key\ntype , and click Create . Store the downloaded JSON file containing the key securely.\nIt will be used when configuring Odoo .\nGo to Add key ⣠Create new key , select JSON as the Key\ntype , and click Create . Store the downloaded JSON file containing the key securely.\nIt will be used when configuring Odoo .\n\n### Cloud storage bucket\n\n- Open the navigation sidebar on the Google Cloud console, then go to Cloud\nStorage ⣠Buckets ⣠Create .\nOpen the navigation sidebar on the Google Cloud console, then go to Cloud\nStorage ⣠Buckets ⣠Create .\n- Enter a bucket name following the bucket naming guidelines and note it down as it will be used when configuring Odoo .\nEnter a bucket name following the bucket naming guidelines and note it down as it will be used when configuring Odoo .\n- Configure the bucket as desired and click Create when done.\nConfigure the bucket as desired and click Create when done.\n- Click the ( More actions ) button, then select Edit\naccess .\nClick the ( More actions ) button, then select Edit\naccess .\n- Click Add principal and paste the service accountâs email in the New\nprincipals field.\nClick Add principal and paste the service accountâs email in the New\nprincipals field.\n- Select Storage Admin as Role under the Cloud Storage section\nand click Save .\nSelect Storage Admin as Role under the Cloud Storage section\nand click Save .\n\n### Odoo configuration\n\n- Install the Cloud Storage Google module.\nInstall the Cloud Storage Google module.\n- Open the Settings app and select Cloud Storage in the navigation sidebar.\nOpen the Settings app and select Cloud Storage in the navigation sidebar.\n- Select Google Cloud Storage as the Cloud Storage Provider for new\nattachments .\nSelect Google Cloud Storage as the Cloud Storage Provider for new\nattachments .\n- Enter the Google Bucket Name as previously set .\nEnter the Google Bucket Name as previously set .\n- Click Upload your file next to Google Service Account Key and select the downloaded JSON file .\nClick Upload your file next to Google Service Account Key and select the downloaded JSON file .\n- Set a Minimum File Size (bytes) for attachments to be stored on Google Cloud.\nSet a Minimum File Size (bytes) for attachments to be stored on Google Cloud.\n\n## Microsoft Azure\n\nFirst, register and sign it to Microsoft Azure .\n\n### App registration\n\n- On the Microsoft Azure portal, search for the App registrations service and open it.\nOn the Microsoft Azure portal, search for the App registrations service and open it.\n- Click New registration , enter an application Name , select Accounts in any organizational directory (Any Microsoft Entra ID tenant -\nMultitenant) under Supported account types , and click Register .\nClick New registration , enter an application Name , select Accounts in any organizational directory (Any Microsoft Entra ID tenant -\nMultitenant) under Supported account types , and click Register .\n- Note down the Application (client) ID and Directory (tenant) ID as they\nwill be used when configuring Odoo .\nNote down the Application (client) ID and Directory (tenant) ID as they\nwill be used when configuring Odoo .\n- Click Add a certificate or secret next to Client credentials , click New client secret , then Add . Important For security reasons, leave the Expires field on 180 days (6 months) or choose a\nshorter expiration interval. Before the secret expires, adding a new client secret and\nupdating Odooâs configuration with the new value is\nnecessary.\nClick Add a certificate or secret next to Client credentials , click New client secret , then Add .\nFor security reasons, leave the Expires field on 180 days (6 months) or choose a\nshorter expiration interval. Before the secret expires, adding a new client secret and\nupdating Odooâs configuration with the new value is\nnecessary.\n`180days(6months)`\n- Copy the client secretâs Value and store it securely. It will be used when configuring Odoo .\nCopy the client secretâs Value and store it securely. It will be used when configuring Odoo .\n\n### Storage account\n\n- Search for the Storage accounts service, open it, and click Create .\nSearch for the Storage accounts service, open it, and click Create .\n- Click Create new below the Resource group field, enter a Name , and click OK .\nClick Create new below the Resource group field, enter a Name , and click OK .\n- Enter a unique Storage account name and note it down as it will be used when configuring Odoo .\nEnter a unique Storage account name and note it down as it will be used when configuring Odoo .\n- Configure the storage account as desired, and, when done, click Review + create , then Create .\nConfigure the storage account as desired, and, when done, click Review + create , then Create .\n\n#### Container\n\n- Open your storage account resource, for example by searching for its name, and select Containers under Data storage in the navigation sidebar.\nOpen your storage account resource, for example by searching for its name, and select Containers under Data storage in the navigation sidebar.\n- Enter a Name , note it down as it will be used when configuring Odoo , and click Create .\nEnter a Name , note it down as it will be used when configuring Odoo , and click Create .\n\n#### Resource sharing\n\n- Select Resource sharing (CORS) under Settings on the storage accountâs\nnavigation sidebar.\nSelect Resource sharing (CORS) under Settings on the storage accountâs\nnavigation sidebar.\n- Create a first CORS blob service rule: Allowed origins : * Allowed methods : GET Allowed headers : Content-Type Exposed headers : Content-Type Max age : 0\nCreate a first CORS blob service rule:\n- Allowed origins : *\n`*`\n- Allowed methods : GET\nAllowed methods : GET\n`GET`\n- Allowed headers : Content-Type\nAllowed headers : Content-Type\n`Content-Type`\n- Exposed headers : Content-Type\nExposed headers : Content-Type\n`Content-Type`\n- Max age : 0\n`0`\n- Create a second CORS blob service rule and click Save : Allowed origins : * Allowed methods : PUT Allowed headers : content-type,x-ms-blob-type Exposed headers : content-type,x-ms-blob-type Max age : 0\nCreate a second CORS blob service rule and click Save :\n- Allowed origins : *\n`*`\n- Allowed methods : PUT\nAllowed methods : PUT\n`PUT`\n- Allowed headers : content-type,x-ms-blob-type\nAllowed headers : content-type,x-ms-blob-type\n`content-type,x-ms-blob-type`\n- Exposed headers : content-type,x-ms-blob-type\nExposed headers : content-type,x-ms-blob-type\n`content-type,x-ms-blob-type`\n- Max age : 0\n`0`\n\n#### Role assignment\n\n- Select Access control (IAM) on the storage accountâs navigation sidebar, then click Add and select Add role assignment .\nSelect Access control (IAM) on the storage accountâs navigation sidebar, then click Add and select Add role assignment .\n- Search for Storage Blobs Data Contributor and click Next . Note To remove the unnecessary delete permission, create a custom role and search for the custom roleâs name instead.\nSearch for Storage Blobs Data Contributor and click Next .\nTo remove the unnecessary delete permission, create a custom role and search for the custom roleâs name instead.\n`delete`\n- Click Select members , enter the name of the previously registered application , select it, and click Select .\nClick Select members , enter the name of the previously registered application , select it, and click Select .\n- Click Review + assign twice.\nClick Review + assign twice.\nThis step is optional . However, removing the delete permission would prevent anyone\nmanaging to access the cloud storageâs credentials from deleting files.\n`delete`\n- Open your subscription resource, for example by searching for its name, select Access\ncontrol (IAM) in the navigation sidebar, click Add and select Add custom\nrole .\nOpen your subscription resource, for example by searching for its name, select Access\ncontrol (IAM) in the navigation sidebar, click Add and select Add custom\nrole .\n- Select the JSON tab and click Edit . Copy the code below, add your subscription-id under assignableScopes and change the roleName ( Custom role ) if desired,\npaste it, and click Save .\nSelect the JSON tab and click Edit . Copy the code below, add your subscription-id under assignableScopes and change the roleName ( Custom role ) if desired,\npaste it, and click Save .\n`subscription-id`\n`assignableScopes`\n`roleName`\n`Customrole`\n\n### Odoo configuration\n\n- Install the Cloud Storage Azure module.\nInstall the Cloud Storage Azure module.\n- Open the Settings app and select Cloud Storage in the navigation sidebar.\nOpen the Settings app and select Cloud Storage in the navigation sidebar.\n- Select Azure Cloud Azure as the Cloud Storage Provider for new\nattachments .\nSelect Azure Cloud Azure as the Cloud Storage Provider for new\nattachments .\n- Enter: the storage account name in the Azure\nAccount Name field; the container name in the Azure Container\nName field; the directory (tenant) ID in the Azure Tenant\nID field; the application (client) ID in the Azure Client\nID field; and the client secretâs value in the Azure Client\nSecret field.\n- the storage account name in the Azure\nAccount Name field;\nthe storage account name in the Azure\nAccount Name field;\n- the container name in the Azure Container\nName field;\nthe container name in the Azure Container\nName field;\n- the directory (tenant) ID in the Azure Tenant\nID field;\nthe directory (tenant) ID in the Azure Tenant\nID field;\n- the application (client) ID in the Azure Client\nID field; and\nthe application (client) ID in the Azure Client\nID field; and\n- the client secretâs value in the Azure Client\nSecret field.\nthe client secretâs value in the Azure Client\nSecret field.\n- Set a Minimum File Size (bytes) for attachments to be stored on Microsoft Azure.\nSet a Minimum File Size (bytes) for attachments to be stored on Microsoft Azure.", "headings": ["Google Cloud", "Service account", "Cloud storage bucket", "Odoo configuration", "Microsoft Azure", "App registration", "Storage account", "Odoo configuration"], "doc_id": "ac8a624a64861069"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/integrations/geolocation.html", "title": "Geolocation", "module": "general", "section": "Geolocation", "text": "# Geolocation\n\nYou can locate contacts or places and generate routes on a map in Odoo.\nTo use the feature, open the Settings app, and, under the Integrations ,\nsection, activate Geo Localization . Then, choose between using the OpenStreetMap or\nGoogle Places API.\nOpenStreetMap is a free, open geographic database updated and maintained by volunteers. To use it,\nselect Open Street Map .\nOpenStreetMap might not always be accurate. You can join the OpenStreetMap community to fix any issues encountered.\nGoogle Places API map\nThe Google Places API map provides detailed info on places, businesses, and points of interest. It\nsupports location-based features like search, navigation, and recommendations.\nUsing the Google Places API could require payment to Google .\nTo use it, select Google Place Map and enter your API Key .", "headings": [], "doc_id": "d1f3dd990deca1b7"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/integrations/google_translate.html", "title": "Google Translate", "module": "general", "section": "Google Translate", "text": "# Google Translate\n\nGoogle Translate can be used to translate user generated text in the Odoo chatter.\n\n## Google API console\n\nA majority of the setup for integrating Google Translate into Odoo is done with the Google API\nconsole . Once the following processes are complete, an API key is created to input in Odoo.\nGoogle Translate setup on Google\n\n### Create a new project\n\nTo get started, go to the Google API Console . Then, log\nin with a Google Workspace account, if there is one. If not, log in with a personal Gmail account\n(this should match the email address that has billing attached to it).\nNext, click Create Project on the far-right of the OAuth consent screen .\nIf the Google API Console has existing projects, click the drop-down menu next to the Google Cloud icon, and a pop-over window appears. Next, click New Project top-right of the pop-over window.\nOn the New Project screen, rename the Project name to Odoo Translate , and\nbrowse for the Location . Set the Location as the Google Workspace\norganization . If a personal Gmail account is being used, leave the Location as No Organization .\n`OdooTranslate`\nClick on Create to finish this step.\n\n### API library\n\nNext, the Cloud Translation API needs to be installed on this newly-created project. To do that,\nclick Library in the left menu. Then, search the term Cloud Translation API , and\nclick into the result. This should be a Google Enterprise API labeled Cloud Translation\nAPI .\n`CloudTranslationAPI`\nClick Enable to install the library on this project.\nUsing the Google Translate API requires a current billing account with Google .\nOnce a billing account is setup with Google and the library is enabled, click Manage to finish configuration on the API.\n\n### Create credentials\n\nNow that the project is set up, and the Cloud Translation API is enabled, credentials must be\ncreated. This includes the API key .\nTo begin this process, click Credentials in the left sidebar menu.\nThen, click Create Credentials in the top menu, and select API key from the\ndrop-down menu.\nCopy the API key for use in the next section.\nFor security purposes, the usage of the API key can be restricted.\nTo do that, go to the API restrictions by clicking on Edit API key in the pop-over\nwindow, or by clicking on the listed API key on the Credentials page. From here, key\nrestrictions can be set. This includes setting an application to restrict the use of the API key,\nand whether this API key can call any API.\nIt is recommended that the Odoo Translate API be restricted to only allow requests from the\nconfigured Odoo database and to the Cloud Translation API .\nTo add the website restriction, click Websites , under the Set an\napplication restriction . Then, enter the address of the database Google Translate is being\nused in, by clicking on Add . Lastly, add the URL ,\nand click Done .\nTo restrict use of the key to a selected API, first, select Restrict key , under the API restrictions section. Then use the drop-down menu to choose the API being\nconfigured ( Cloud Translation API ).\n- Save the API key: copy the API key and store it somewhere secure.\nSave the API key: copy the API key and store it somewhere secure.\n- Do not share the API key publicly or expose it in client-side code.\nDo not share the API key publicly or expose it in client-side code.\n\n## Odoo configuration\n\nTo access the integration in Odoo, navigate to the Settings app ⣠Discuss\nsection . Enter the API key into the field labeled Message Translation . Then, Save the settings, and Google Translate can be used in any chatter throughout the\ndatabase.\n\n## Translate chatter\n\nTo translate a userâs text from another language, click the ⦠(three dot) icon menu to\nthe right of the chatter. Then, select Translate . The content translates to the language set on the userâs preferences.", "headings": ["Google API console", "Create a new project", "API library", "Create credentials", "Odoo configuration", "Translate chatter"], "doc_id": "2ed1bc8dcb3d2ec6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/integrations/mail_plugins.html", "title": "Mail Plugins", "module": "general", "section": "Mail Plugins", "text": "# Mail Plugins\n\nMail Plugins are connectors that bridge your mailbox with your Odoo database. With them, you can\ninteract with your Odoo database directly from your mailbox by:\n- Creating leads and centralizing prospectsâ emails into the CRM app.\nCreating leads and centralizing prospectsâ emails into the CRM app.\n- Generating tasks in any Odoo project.\nGenerating tasks in any Odoo project.\n- Creating tickets in the Helpdesk app.\nCreating tickets in the Helpdesk app.\n- Searching and storing insights on your contacts.\nSearching and storing insights on your contacts.\nMail Plugins are available for Outlook and Gmail .\n\n## Pricing\n\nMail Plugins are free to install and use.\nHowever, they can provide Lead Enrichment , which is part of a paid service known as Lead\nGeneration .\nMail plugins allow you to test Lead Enrichment for free, whether you connect the plugins to a\ndatabase or not. After a while, the plugins ask you to buy In-app purchases (IAP) credits if you would like to keep using this service.\n\n### Lead Generation IAP service\n\nLead Enrichment uses the Lead Generation IAP service . Each request consumes one Lead Generation\ncredit .\nTo buy credits, go to Settings ⣠CRM ⣠Lead Enrichment ⣠Buy credits and\nselect a package.\n- If you are out of credits, the only information populated when clicking on the suggested\ncompany is its website link and logo.\nIf you are out of credits, the only information populated when clicking on the suggested\ncompany is its website link and logo.\n- Check out the Lead Generation IAP service Privacy Policy .\nCheck out the Lead Generation IAP service Privacy Policy .\n- In-app purchases (IAP)\nIn-app purchases (IAP)\n- Odoo Tutorials: Lead Enrichment\nOdoo Tutorials: Lead Enrichment", "headings": ["Pricing", "Lead Generation IAP service"], "doc_id": "0b580ca50c228ce9"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/integrations/mail_plugins/gmail.html", "title": "Gmail Plugin", "module": "general", "section": "Gmail Plugin", "text": "# Gmail Plugin\n\nThe Gmail Plugin integrates an Odoo database with a Gmail inbox, so users can keep track of all\ntheir work between Gmail and Odoo, without losing any information.\nMake sure to check the database version in the Settings app ⣠General Settings , at\nthe bottom of the page.\nFor database versions 19.2 and later, see the latest documentation for installation instructions.\n\n## Odoo Online users\n\nFor databases hosted on Odoo Online (or Odoo.sh), follow the steps below to configure the Gmail\nPlugin.\n\n### Install the Gmail Plugin\n\nFirst, log in to the Gmail account that the user wishes to connect to Odoo.\nFrom the Gmail inbox, click the plus sign icon on the right side panel to get add-ons. If the side\npanel is not visible, click on the arrow icon at the bottom right corner of the inbox to reveal it.\nThen, use the search bar to search for Odoo and locate the Odoo Inbox Addin .\n`Odoo`\nOr, go directly to the Odoo Inbox Addin page on the Google Workspace Marketplace .\nOnce the plugin is located, click Install . Then, click Continue to start\nthe installation.\nNext, select which Gmail account the user wishes to connect to Odoo. Then click Allow to let Odoo access the Google account. Google will then show a pop-up window confirming that the\ninstallation was successful.\n\n### Configure the Odoo database\n\nThe Mail Plugin feature must be enabled in the Odoo database in order to use the Gmail\nPlugin. To enable the feature, go to Settings ⣠General Settings . Under the Integrations section, activate Mail Plugin , and then click Save .\n\n### Configure the Gmail inbox\n\nIn the Gmail inbox, a purple Odoo icon is now visible on the right side panel. Click on the Odoo\nicon to open up the Odoo plugin window. Then, click on any email in the inbox. Click Authorize Access in the plugin window to grant Odoo access to the Gmail inbox.\nNext, click Login . Then, enter the URL of the Odoo database that the user wishes to\nconnect to the Gmail inbox, and log in to the database.\nUse the general URL for the database, not the URL of a specific page in the database. For\nexample, use https://mycompany.odoo.com , not https://mycompany.odoo.com/web#cids=1&action=menu .\n`https://mycompany.odoo.com`\n`https://mycompany.odoo.com/web#cids=1&action=menu`\nFinally, click Allow to let Gmail access the Odoo database. The browser will then show\na Success! message. After that, close the window. The Gmail inbox and Odoo database are\nnow connected.\n\n## Odoo On-Premise users\n\nFor databases hosted on servers other than Odoo Online (or Odoo.sh), follow the steps below to\nconfigure the Gmail Plugin.\nAs part of their security guidelines, Google requires add-on creators to provide a list of URLs\nthat can be used in actions and redirections launched by the add-on. This protects users by\nensuring, for example, that no add-on redirects users toward a malicious website. (Read more on Google Apps Script .)\nSince Odoo can only list the odoo.com domain and not every on-premise customerâs unique server\ndomain, on-premise customers cannot install the Gmail Plugin from the Google Workspace\nMarketplace.\n`odoo.com`\n\n### Install the Gmail Plugin\n\nFirst, access the GitHub repository for the\nOdoo Mail Plugins. Next, click on the green Code button. Then, click Download ZIP to download the Mail Plugin files onto the userâs computer.\nOpen the ZIP file on the computer. Then, go to mail-client-extensions-master â£\ngmail ⣠src ⣠views , and open the login.ts file using any text editor software,\nsuch as Notepad (Windows), TextEdit (Mac), or Visual Studio Code.\n`login.ts`\nDelete the following three lines of text from the login.ts file:\n`login.ts`\nThis removes the odoo.com domain constraint from the Gmail Plugin program.\n`odoo.com`\nNext, in the ZIP file, go to mail-client-extensions-master ⣠gmail , and open the\nfile called appsscript.json . In the urlFetchWhitelist section, replace all\nthe references to odoo.com with the Odoo customerâs unique server domain.\n`odoo.com`\nThen, in the same gmail folder, open the file called README.md . Follow the\ninstructions in the README.md file to push the Gmail Plugin files as a Google Project.\nThe computer must be able to run Linux commands in order to follow the instructions on the README.md file.\nAfter that, share the Google Project with the Gmail account that the user wishes to connect to Odoo.\nThen, click Publish and Deploy from manifest . Lastly, click Install the add-on to install the Gmail Plugin.\n\n### Configure the Odoo database\n\nThe Mail Plugin feature must be enabled in the Odoo database in order to use the Gmail\nPlugin. To enable the feature, go to Settings ⣠General Settings . Under the Integrations section, activate Mail Plugin , and then click Save .\n\n### Configure the Gmail inbox\n\nIn the Gmail inbox, a purple Odoo icon is now visible on the right side panel. Click on the Odoo\nicon to open up the Odoo plugin window. Then, click on any email in the inbox. Click Authorize Access in the plugin window to grant Odoo access to the Gmail inbox.\nNext, click Login . Then, enter the URL of the Odoo database that the user wishes to\nconnect to the Gmail inbox, and log in to the database.\nUse the general URL for the database, not the URL of a specific page in the database. For\nexample, use https://mycompany.odoo.com , not https://mycompany.odoo.com/web#cids=1&action=menu .\n`https://mycompany.odoo.com`\n`https://mycompany.odoo.com/web#cids=1&action=menu`\nFinally, click Allow to let Gmail access the Odoo database. The browser will then show\na Success! message. After that, close the window. The Gmail inbox and Odoo database are\nnow connected.", "headings": ["Odoo Online users", "Install the Gmail Plugin", "Configure the Odoo database", "Configure the Gmail inbox", "Odoo On-Premise users", "Install the Gmail Plugin", "Configure the Odoo database", "Configure the Gmail inbox"], "doc_id": "7596fce5e1a7279d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/integrations/mail_plugins/outlook.html", "title": "Outlook Plugin", "module": "general", "section": "Outlook Plugin", "text": "# Outlook Plugin\n\nOutlook allows for third-party applications to connect in order to execute database actions from\nemails. Odoo has a plugin for Outlook that allows for the creation of an opportunity from the email\npanel.\nThe Outlook plugin is available for both the desktop and web versions of Outlook. See Microsoftâs add-in article .\n\n## Configuration\n\nThe Outlook Mail Plugin needs to be configured both on Odoo and Outlook.\nMake sure to check the database version in the Settings app â> General Settings , at\nthe bottom of the page.\nFor database versions 19.2 and later, see the latest documentation for installation instructions.\n\n### Enable Mail Plugin\n\nFirst, enable the Mail Plugin feature in the database. Go to Settings ⣠General\nSettings ⣠Integrations , enable Mail Plugin , and Save the configuration.\n\n### Install the Outlook Plugin\n\nDownload ( Save Page As ⣠Web Page XML only ) the following XML file to upload\nlater: https://download.odoocdn.com/plugins/outlook/manifest.xml .\nNext, open the Outlook mailbox, and select any email. After completing this, click on the More actions button in the upper right-side and select Get Add-ins .\nFor locally installed versions of Microsoft Outlook, access the Get Add-ins menu item\nwhile in preview mode ( not with a message open). First, click on the â¦\n(ellipsis) icon in the upper right of the previewed message, then scroll down, and click on Get Add-ins .\nFollowing this step, select the My add-ins tab on the left-side.\nUnder Custom add-ins towards the bottom, click on + Add a custom add-in , and\nthen on Add from fileâ¦\nFor the next step, attach the manifest.xml file downloaded above, and press OK . Next,\nread the warning and click on Install .\n`manifest.xml`\n\n### Connect the database\n\nNow, Outlook will be connected to the Odoo database. First, open any email in the Outlook mailbox,\nclick on the More actions button in the upper right-side, and select Odoo for\nOutlook .\nThe right-side panel can now display Company Insights . At the bottom, click on Login .\nOnly a limited amount of Company Insights ( Lead Enrichment ) requests are available as a\ntrial database. This feature requires prepaid credits .\nIf, after a short while, the panel is still empty, it is possible that the browser cookie\nsettings prevented it from loading. Note that these settings also change if the browser is in\nâIncognitoâ mode.\nTo fix this issue, configure the browser to always allow cookies on Odooâs plugin page.\nFor Google Chrome, change the browser cookie settings by following the guide at: https://support.google.com/chrome/answer/95647 and adding download.odoo.com to the list of Sites that can always use cookies .\n`download.odoo.com`\nOnce this is complete, the Outlook panel needs to be opened again.\nNow, enter the Odoo database URL and click on Login .\nNext, click on Allow to open the pop-up window.\nIf the user isnât logged into the database, enter the credentials. Click on Allow to let\nthe Outlook Plugin connect to the database.\n\n### Add a shortcut to the plugin\n\nBy default, the Outlook Plugin can be opened from the More actions menu. However, to save time,\nitâs possible to add it next to the other default actions.\nIn the Outlook mailbox, click on Settings , then on View all Outlook\nsettings .\nNow, select Customize actions under Mail , click on Odoo for\nOutlook , and then Save .\nFollowing this step, open any email; the shortcut should be displayed.\n\n### Using the plugin\n\nNow that the plug-in is installed and operational, all that needs to be done to create a lead is to\nclick on the O [Odoo icon] or navigate to More actions and click on Odoo\nfor Outlook . The side panel will appear on the right-side, and under Opportunities click on New . A new window with the created opportunity in the Odoo database will\npopulate.\n`O`", "headings": ["Configuration", "Enable Mail Plugin", "Install the Outlook Plugin", "Connect the database", "Add a shortcut to the plugin", "Using the plugin"], "doc_id": "3e6cd1806d054648"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/integrations/unsplash.html", "title": "Unsplash", "module": "general", "section": "Unsplash", "text": "# Unsplash\n\nUnsplash is a recognized stock photography library integrated with Odoo.\nIf your database is hosted on Odoo Online , you can access Unsplash pictures without\nconfiguration.\nIf your database is hosted on Odoo.sh or on-premise , proceed as follows:\n- To generate an Unsplash access key , create or sign in to an Unsplash account .\nTo generate an Unsplash access key , create or sign in to an Unsplash account .\n- Access your applications dashboard , click New Application , select all checkboxes, and click Accept terms .\nAccess your applications dashboard , click New Application , select all checkboxes, and click Accept terms .\n- In the pop-up window, enter your Application Name , starting with the\nprefix Odoo: (e.g., Odoo: connection ), so Unsplash recognizes it as an Odoo instance. Then,\nadd a Description and click Create application .\nIn the pop-up window, enter your Application Name , starting with the\nprefix Odoo: (e.g., Odoo: connection ), so Unsplash recognizes it as an Odoo instance. Then,\nadd a Description and click Create application .\n`Odoo:`\n`Odoo:connection`\n- On the application details page, scroll down to the Keys section and copy the Access Key and Application ID .\nOn the application details page, scroll down to the Keys section and copy the Access Key and Application ID .\n- In Odoo, go to General Settings and enable the Unsplash Image\nLibrary feature. Then, enter the Unsplash Access Key and Application ID .\nIn Odoo, go to General Settings and enable the Unsplash Image\nLibrary feature. Then, enter the Unsplash Access Key and Application ID .\nAs a non-Odoo Online user, you are limited to a test key with a maximum of 50 Unsplash requests\nper hour.", "headings": [], "doc_id": "28afafdbaae329c9"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/iot.html", "title": "Internet of Things (IoT)", "module": "general", "section": "Internet of Things (IoT)", "text": "# Internet of Things (IoT)\n\nOdoo Internet of Things (IoT) allows to connect physical devices such as barcode scanners, receipt\nprinters, payment terminals, measurement tools, etc. to an Odoo database using an IoT system.\nThe following IoT systems are supported:\n- IoT box : micro-computer, plug-and-play device (i.e., the Odoo IoT program is\npre-installed);\nIoT box : micro-computer, plug-and-play device (i.e., the Odoo IoT program is\npre-installed);\n- Windows virtual IoT : Odoo IoT program for Windows that can be installed\non a Windows computer.\nWindows virtual IoT : Odoo IoT program for Windows that can be installed\non a Windows computer.\n- MRP devices, including cameras and measurement tools,\nare not compatible with Windows virtual IoT.\nMRP devices, including cameras and measurement tools,\nare not compatible with Windows virtual IoT.\n- Multiple IoT systems can be used at the same time.\nMultiple IoT systems can be used at the same time.\n- It is also possible to create a Windows Virtual Machine on a MacOS/Linux computer. However,\nthis option is not supported by Odoo, and no troubleshooting assistance will be provided.\nIt is also possible to create a Windows Virtual Machine on a MacOS/Linux computer. However,\nthis option is not supported by Odoo, and no troubleshooting assistance will be provided.\n\n## IoT box subscription\n\nAn IoT box subscription is required for production use of IoT systems. If you have issues related\nto your subscription, contact the databaseâs account manager or Odoo partner for assistance.\nIf the subscription is linked to an Odoo.com portal user, check the\ninformation on the portalâs subscription page.\n- Odooâs compatible IoT devices\nOdooâs compatible IoT devices\n- Odoo Tutorials: Internet of Things (IoT) Tutorials\nOdoo Tutorials: Internet of Things (IoT) Tutorials\n- IoT system FAQ\n- Magic Sheet - Odoo Internet of Things [PDF]\nMagic Sheet - Odoo Internet of Things [PDF]\n\n#### IoT box\n\n#### Windows virtual IoT\n\nSet up Windows virtual IoT.\n\n#### IoT system connection to Odoo\n\nConnect the IoT system to your Odoo database and troubleshoot potential connection issues.\n\n#### Devices\n\nConnect devices such as printers, screens, measurement tools, etc., to the IoT system.\n\n#### HTTPS certificate\n\nVerify your IoT system and database meet the eligibility requirements for HTTPS certificate\ngeneration and address any related issues.\n\n#### IoT system updates\n\nUpdate your IoT systemâs image, core code, and handlers to benefit from the latest IoT fixes\nand features or reset the IoT system if needed.", "headings": ["IoT box subscription"], "doc_id": "b0038bfa592e59cc"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/iot/connect.html", "title": "IoT system connection to Odoo", "module": "general", "section": "IoT system connection to Odoo", "text": "# IoT system connection to Odoo\n\n## Prerequisites\n\nTo connect the IoT system to an Odoo database, the following prerequisites must be met:\n- The Internet of Things (IoT) app must be installed .\nThe Internet of Things (IoT) app must be installed .\n- The IoT system must be connected to the network.\nThe IoT system must be connected to the network.\n- The computer connecting to Odoo must be on the same network as the IoT system.\nThe computer connecting to Odoo must be on the same network as the IoT system.\nIt is recommended to connect the IoT system to a production instance, as other types of\nenvironments may cause issues (e.g., with HTTPS certificate generation ).\n- IoT box\n- Windows virtual IoT\n\n## Connection\n\nThe IoT system can be connected to the Odoo database using a pairing code or a connection token .\n\n### Connection using a pairing code\n\n- The pairing code is displayed for up to 5 minutes after the IoT system starts. If the code is\nno longer visible, reboot the IoT box or restart the Windows virtual IoT service to display the pairing code again. Alternatively, connect the IoT\nsystem to the database using a connection token .\nThe pairing code is displayed for up to 5 minutes after the IoT system starts. If the code is\nno longer visible, reboot the IoT box or restart the Windows virtual IoT service to display the pairing code again. Alternatively, connect the IoT\nsystem to the database using a connection token .\n- The pairing code is not displayed if the IoT system is already connected to a database (e.g.,\na test database).\nThe pairing code is not displayed if the IoT system is already connected to a database (e.g.,\na test database).\n- Retrieve the IoTâs system pairing code: IoT box Windows virtual IoT Connect the IoT box to an external monitor or printer. If the IoT box was already plugged\nprior to this, reboot it by unplugging it for a few seconds and replugging it. External monitor: The pairing code should be displayed on the screen a few minutes after\nrebooting the IoT box. Printer: The pairing code should be printed automatically. Tip If no external monitor or printer is connected to the IoT box, access the IoT\nboxâs homepage ; the code is displayed in the Pairing\nCode section. On the computer with the Windows virtual IoT installed, open the IoT systemâs homepage\nin a web browser by navigating to the URL http://localhost:8069 . Then, scroll to the Pairing Code section.\nRetrieve the IoTâs system pairing code:\nConnect the IoT box to an external monitor or printer. If the IoT box was already plugged\nprior to this, reboot it by unplugging it for a few seconds and replugging it.\n- External monitor: The pairing code should be displayed on the screen a few minutes after\nrebooting the IoT box.\nExternal monitor: The pairing code should be displayed on the screen a few minutes after\nrebooting the IoT box.\n- Printer: The pairing code should be printed automatically.\nPrinter: The pairing code should be printed automatically.\nIf no external monitor or printer is connected to the IoT box, access the IoT\nboxâs homepage ; the code is displayed in the Pairing\nCode section.\nOn the computer with the Windows virtual IoT installed, open the IoT systemâs homepage\nin a web browser by navigating to the URL http://localhost:8069 . Then, scroll to the Pairing Code section.\n`http://localhost:8069`\n- In Odoo, open the IoT app and click Connect .\nIn Odoo, open the IoT app and click Connect .\n- In the Connect an IoT Box popup that opens, enter the Pairing code .\nIn the Connect an IoT Box popup that opens, enter the Pairing code .\n- Click Pair .\n\n### Connection using a connection token\n\n- In Odoo, open the IoT app and click Connect .\nIn Odoo, open the IoT app and click Connect .\n- In the Connect an IoT Box popup that opens, copy the Token .\nIn the Connect an IoT Box popup that opens, copy the Token .\n- Access the IoT boxâs or Windows virtual IoTâs homepage.\nAccess the IoT boxâs or Windows virtual IoTâs homepage.\n- In the Odoo database connected section, click Configure .\nIn the Odoo database connected section, click Configure .\n- Paste the token into the Server Token field and click Connect .\nPaste the token into the Server Token field and click Connect .\n\n## IoT system form\n\nOnce the IoT system is connected to the Odoo database, it is displayed as a card in the IoT app.\nClick the IP address on the card to access the IoT boxâs or Windows virtual IoTâs homepage. Click the card to access the\nlist of devices connected to the IoT system.\nEnable the developer mode to access the IoT systemâs Technical Information , such as its Identifier , Domain\naddress , and Image version .\nBy default, drivers are automatically updated every time the\nIoT system is restarted. To disable automatic updates, uncheck the Automatic drivers\nupdate option.\n\n## Troubleshooting\n\n### The pairing code does not appear or does not work\n\nThe pairing code might not be displayed or printed under the\nfollowing circumstances:\n- The IoT system is not connected to the Internet.\nThe IoT system is not connected to the Internet.\n- The IoT system is already connected to an Odoo database.\nThe IoT system is already connected to an Odoo database.\n- The pairing code display time has expired. Reboot the IoT box\nor restart the Windows virtual IoT service to display the pairing\ncode again.\nThe pairing code display time has expired. Reboot the IoT box\nor restart the Windows virtual IoT service to display the pairing\ncode again.\n- The IoT systemâs image version is too old and needs to be updated .\nThe IoT systemâs image version is too old and needs to be updated .\n\n### The IoT system is connected but does not appear in the database\n\nThe IoT system might take a few minutes to restart when it connects to a database. If it still does\nnot appear after a few minutes:\n- Verify that the IoT system can reach the database and the server does not use a multi-database\nenvironment.\nVerify that the IoT system can reach the database and the server does not use a multi-database\nenvironment.\n- Reboot the IoT box or restart the Windows virtual IoT service .\nReboot the IoT box or restart the Windows virtual IoT service .\n\n### The IoT box is connected to the Odoo database but cannot be reached\n\nVerify that the IoT system and the computer running the Odoo database are connected to the same\nnetwork.\n\n### The Windows virtual IoTâs homepage cannot be accessed from another device\n\nCheck the Windows Firewall configuration .\n\n### The IoT system is disconnected from the database after an Odoo upgrade\n\nUpdate the IoT systemâs image by flashing the IoT boxâs card or uninstalling the Windows virtual IoT program and reinstalling the latest package for Windows matching your\ndatabaseâs version .", "headings": ["Prerequisites", "Connection", "Connection using a pairing code", "Connection using a connection token", "IoT system form", "Troubleshooting", "The pairing code does not appear or does not work", "The IoT system is connected but does not appear in the database", "The IoT box is connected to the Odoo database but cannot be reached", "The Windows virtual IoTâs homepage cannot be accessed from another device", "The IoT system is disconnected from the database after an Odoo upgrade"], "doc_id": "1b938c607bb75dfa"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/iot/devices.html", "title": "Devices", "module": "general", "section": "Devices", "text": "# Devices\n\n- Connect a Worldline payment terminal\nConnect a Worldline payment terminal\n- Connect an Ingenico payment terminal\nConnect an Ingenico payment terminal", "headings": [], "doc_id": "d6ec515dc8d56d32"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/iot/devices/camera.html", "title": "Connect a camera", "module": "general", "section": "Connect a camera", "text": "# Connect a camera\n\nA camera can be connected to an IoT box with an Odoo database in just a\nfew steps. Once a camera is connected to an IoT box, it can be used in\na manufacturing process, or it can be linked to a quality control point/quality check. Doing so\nallows for the taking of pictures when a chosen quality control point/check has been reached, or\nwhen a specific key is pressed during manufacturing.\n\n## Connection\n\nTo connect a camera to an IoT box, simply connect the two via cable.\nThis is usually done with a USB cable of some sort.\nIf the camera is supported , there is no need to set up\nanything, as itâll be detected as soon as itâs connected.\n\n## Link camera to quality control point in manufacturing process\n\nIn the Quality app , a device can be set up on a Quality Control Point .\nTo do that, navigate to the Quality app ⣠Quality Control ⣠Control Points and\nopen the desired Control Point thatâll be linked to the camera.\nOn the control point form, edit the control point by selecting the Type field, and\nclicking on Take a Picture from the drop-down menu. Doing so reveals a field called Device , wherein the attached device can be selected. Save the changes, if\nrequired.\nThe camera is now useable with the selected quality control point. When the quality control point\nis reached during the manufacturing process, the database prompts the operator to take a picture.\nQuality control points can also be accessed by navigating to IoT App â£\nDevices . From here, select the device. There is a Quality Control Points tab, where\nthey can be added with the device.\nOn a quality check form, the Type of check can also be specified to Take a\nPicture . Navigate to Quality app ⣠Quality Control ⣠Quality Checks ⣠New to create a new quality check from the Quality Checks page.\n- Quality control points\nQuality control points\n- Quality alerts\n\n## Link camera to a work center in the Manufacturing app\n\nTo link a camera to an action, it first needs to be configured on a work center. Navigate to Manufacturing app ⣠Configuration ⣠Work Centers . Next, go to the desired Work Center in which a camera will be used to reveal that specific work centerâs detail\nform. From here, add the device in the IoT Triggers tab, in the Device column, by clicking Add a Line .\nNow, the camera device can be linked to the Action column drop-down option labeled Take a Picture . A key can also be added to trigger the action.\nThe first trigger listed is chosen first. The order of triggers matters, and they can be dragged\ninto any desired order.\nOn the Work Order screen, a status graphic indicates whether the database is\ncorrectly connected to the camera.\nIntegrate IoT devices", "headings": ["Connection", "Link camera to quality control point in manufacturing process", "Link camera to a work center in the Manufacturing app"], "doc_id": "954947c80caf0ae7"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/iot/devices/footswitch.html", "title": "Connect a footswitch", "module": "general", "section": "Connect a footswitch", "text": "# Connect a footswitch\n\nWhen working in a manufacturing environment, itâs always better for an operator to have both hands\navailable at all times. Odooâs IoT box makes this possible when using a\nfootswitch.\nIn fact, with a footswitch, the operator is able to go from one screen to another, and perform\nactions using their foot. This can be configured in just a few steps on the work center in the Manufacturing app.\n\n## Connection\n\nTo connect a footswitch to the IoT box, connect the two devices via\ncable. More often than not, this is done with a USB cable.\nIf the footswitch is a supported device , there is no\nneed to take further action, since itâll be automatically detected when connected.\n\n## Link a footswitch to a work center in the Odoo Manufacturing app\n\nTo link a footswitch to an action, it first needs to be configured on a work center. Navigate to Manufacturing app ⣠Configuration ⣠Work Centers . From here, go to the desired Work Center in which the footswitch will be used, and add the device in the IoT Triggers tab, under the Device column, by selecting Add a\nLine . Doing so means the footswitch can be linked to an option in the Action column\ndrop-down, and optionally, a key can be added to trigger it. An example of an Action in\nthe Manufacturing app could be the Validate or Mark as Done buttons on a\nmanufacturing work order.\nIt should be noted that the first listed trigger is chosen first. So, the order matters, and\nthese triggers can be dragged into any order. In the picture above, using the footswitch\nautomatically skips the part of the process thatâs currently being worked on.\nOn the Work Order screen, a status graphic indicates whether the database is\ncorrectly connected to the footswitch.\nIntegrate IoT devices", "headings": ["Connection", "Link a footswitch to a work center in the Odoo Manufacturing app"], "doc_id": "6ca777f491ee4ed4"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/iot/devices/measurement_tool.html", "title": "Connect a measurement tool", "module": "general", "section": "Connect a measurement tool", "text": "# Connect a measurement tool\n\nWith Odooâs IoT box, it is possible to connect measurement tools to the\nOdoo database for use in the Quality app on a quality control point/quality check, or for use in a\nwork center during the manufacturing process.\nFind the list of supported devices here: Supported devices .\n\n## Connect with universal serial bus (USB)\n\nTo add a device connected by USB , plug the USB cable into the IoT box, and the device appears in the Odoo\ndatabase.\n\n## Connect with bluetooth\n\nActivate the Bluetooth functionality on the device (see the device manual for further explanation),\nand the IoT box automatically connects to the device.\n\n## Link a measurement tool to a quality control point in the manufacturing process\n\nIn the Quality app , a device can be set up on a quality control point. To do that, navigate to Quality app ⣠Quality Control ⣠Control Points , and open the desired control\npoint to which the measurement tool should be linked.\nFrom here, edit the control point, by selecting the Type field, and clicking Measure from the drop-down menu. Doing so reveals a field called Device ,\nwhere the attached device can be selected.\nAdditionally, Norm and Tolerance can be configured. Save the\nchanges, if required.\nAt this point, the measurement tool is linked to the chosen quality control point. The value, which\nusually needs to be changed manually, is automatically updated while the tool is being used.\nQuality control points can also be accessed by navigating to IoT App â£\nDevices , then select the device. There is a Quality Control Points tab, where they\ncan be added with the device.\nOn a quality check detail form, the Type of check can also be specified to Measure . Access a new quality check detail page, by navigating to Quality app ⣠Quality Control ⣠Quality Checks ⣠New .\n- Quality control points\nQuality control points\n- Quality alerts\n\n## Link a measurement tool to a work center in the Manufacturing app\n\nTo link a measurement tool to an action, it first needs to be configured on a work center. To do\nthat, navigate to Manufacturing app ⣠Configuration ⣠Work Centers . Then,\nselect the desired work center in which the measurement tool will be used.\nOn the work center page, add the device in the IoT Triggers tab, under the Device column, by selecting Add a Line . Then, the measurement tool can be\nlinked to the Action drop-down menu option labeled Take Measure . A key can\nbe added to trigger the action.\nIt should be noted that the first listed trigger is chosen first. The order matters, and these\ntriggers can be dragged into any order.\nOn the Work Order screen, a status graphic indicates whether the database is\ncorrectly connected to the measurement tool.\nIntegrate IoT devices", "headings": ["Connect with universal serial bus (USB)", "Connect with bluetooth", "Link a measurement tool to a quality control point in the manufacturing process", "Link a measurement tool to a work center in the Manufacturing app"], "doc_id": "944bc54a9a5a37de"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/iot/devices/printer.html", "title": "Connect a printer", "module": "general", "section": "Connect a printer", "text": "# Connect a printer\n\nPrinter installation can be done in a few easy steps. The printer can be used to print receipts,\nlabels, orders, or even reports from the different Odoo apps. In addition, printer actions can be\nassigned as an action on a trigger during the manufacturing process, or added onto a quality\ncontrol point or a quality check.\nThe only way to connect a printer directly to an Odoo database is through the use of an IoT\nsystem. Without an IoT system, printing can still occur, but it is managed through the printer\nitself, which is not the recommended process.\n\n## Connection\n\nIoT systems support printers connected through USB or network connection. Supported printers are detected automatically, and\nappear in the Devices list of the IoT app.\nPrinters can take up to two minutes to appear in the IoT app Devices list.\n\n## Link a printer\n\n### Link work orders to a printer\n\nWork orders can be linked to printers, via a quality control point, to print labels for\nmanufactured products.\nIn the Quality app , a device can be set up on a\nquality control point. To do so, go to the Quality ⣠Quality Control ⣠Control\nPoints , and open the desired control point.\nA manufacturing operation and work order operation need to be attached to a quality control\npoint before the Type field allows for the Print Label option to be\nselected.\nFrom here, edit the control point by selecting the Type field, and selecting Print Label from the dropdown menu of options. Doing so reveals the Device field, where the attached device can be selected.\nThe printer can now be used with the selected quality control point. When the quality control point\nis reached during the manufacturing process, the database presents the option to print labels for a\nspecific product.\nQuality control points can also be accessed by navigating to IoT â£\nDevices , then selecting the device. Go to the Quality Control Points tab to add them\nto the device.\nOn a quality check form , the Type of check can also be set to Print Label .\n- Quality control points\nQuality control points\n- Quality alerts\n\n### Link reports to a printer\n\nIt is possible to link report types to a specific printer. To do so:\n- Go to IoT ⣠Devices and select the desired printer.\nGo to IoT ⣠Devices and select the desired printer.\n- Go to the Printer Reports tab and click Add a line .\nGo to the Printer Reports tab and click Add a line .\n- In the pop-up that opens, select the types of reports to be linked to the printer and click Select .\nIn the pop-up that opens, select the types of reports to be linked to the printer and click Select .\nReports can also be configured by enabling the developer mode and going\nto Settings ⣠Technical ⣠Reports . Select the desired report from the list\nand set an IoT Device .\nThe first time a linked report is selected to print, a Select Printers pop-up window\nappears. Tick the checkbox next to the correct printer for the report, and click Print .\nAt that point, the report is linked to the printer.\n\n#### Clear device printer cache\n\nAfter a printer is linked to print a report, the setting is saved in a browserâs cache. This means\na user can have different devices saved in their cache for different reports, based on the device\nthey use to access Odoo. It also means different users can have a report automatically printed from\ndifferent printers, based on their preferences.\nTo unlink a report from a printer, navigate to IoT ⣠Configuration ⣠Reset\nLinked Printers . This generates a list of reports that are linked to a printer on the current\ndevice. Click the Unlink button next to each report to remove the link.\nThis step only prevents the report from automatically printing to the listed printer from\nthe current browser. The report is still linked on the device, under\nthe Printer Reports tab.\n\n## Potential issues\n\n### The printer is not detected\n\nIf a printer does not appear in the devices list, go to the IoT boxâs or Windows virtual IoTâs homepage, click Show in\nthe Devices section, and make sure the printer is listed.\nIf the printer does not appear on the IoT systemâs homepage, click Printer Server , then Administration , and Add Printer . If the printer is not in the list, it is\nlikely not connected properly.\n\n### The printer outputs random text\n\nFor most printers, the correct driver should be automatically detected and selected. However, in\nsome cases, the automatic detection mechanism might not be enough, and if no driver is found, the\nprinter might print random characters.\nThe solution is to manually select the corresponding driver. On the IoT systemâs homepage, click Printer Server , then Printers , and select the printer in the list.\nIn the Administration dropdown menu, click Modify Printer . Follow the steps\nand select the printerâs make and model .\nEpson receipt printers and Zebra label printers do not need a driver to work. Make sure that no\ndriver is selected for those printers.\n\n### The printer is detected but is not recognized correctly\n\nIf Odoo and the IoT system do not recognize the printer correctly, go to IoT\n⣠Devices , click the deviceâs card to access its form, and set the Subtype field to\nthe appropriate option: Receipt Printer , Label Printer , or Office\nPrinter .\n\n#### Epson configuration special case\n\nMost Epson printers support printing receipts in Odoo Point of Sale using the GS v 0 command.\nHowever, the following Epson printer models do not support this command:\n`GSv0`\n- TM-U220\n- TM-U230\n- TM-P60\n- TMP-P60II\nTo bypass this issue, you can configure the printer to use the ESC * command.\n`ESC*`\nFirst, review Epsonâs website for compatibility for both the GS v 0 and ESC * commands.\nIf the printer is incompatible with GS v 0 but supports ESC * , configure the IoT system to use\nthe ESC * command as follows:\n`GSv0`\n`ESC*`\n`ESC*`\n- Access the IoT boxâs or Windows virtual IoTâs homepage.\nAccess the IoT boxâs or Windows virtual IoTâs homepage.\n- Click the Printer server button, then click Administration on the CUPS\npage.\nClick the Printer server button, then click Administration on the CUPS\npage.\n- Click Add Printer in the Printers section, select the printer, and click Continue . Tip If the printerâs name is still uncertain, take the following steps: Take note of the listed printers on the CUPS page. Turn the printer off and refresh the page. Compare the difference with the first list to see which printer disappeared. Turn the printer back on and refresh the page again. Double-check the list again to see if the printer re-appears. The printer that disappeared and reappears again on the listed printers is the name of the\nprinter in question. It can be Unknown under Local printers .\nClick Add Printer in the Printers section, select the printer, and click Continue .\nIf the printerâs name is still uncertain, take the following steps:\n- Take note of the listed printers on the CUPS page.\nTake note of the listed printers on the CUPS page.\n- Turn the printer off and refresh the page.\nTurn the printer off and refresh the page.\n- Compare the difference with the first list to see which printer disappeared.\nCompare the difference with the first list to see which printer disappeared.\n- Turn the printer back on and refresh the page again.\nTurn the printer back on and refresh the page again.\n- Double-check the list again to see if the printer re-appears.\nDouble-check the list again to see if the printer re-appears.\n- The printer that disappeared and reappears again on the listed printers is the name of the\nprinter in question. It can be Unknown under Local printers .\nThe printer that disappeared and reappears again on the listed printers is the name of the\nprinter in question. It can be Unknown under Local printers .\n- On the Add Printer page, specify the printerâs Name using the following\nconvention: <printer_name>__IMC_<param_1>_<param_2>_..._<param_n>__ , where: printer_name is the printerâs name. It can contain any character except _ , / , # , or ` `\n(space character). IMC : This stands for Image Mode Column (the simplified name for ESC * ). param_1 : This stands for the specific parameter: SCALE<X> : Scale of the picture (with the same aspect ratio). X should be an integer\ndescribing the scale percentage that should be used. For example, 100 is the original size, 50 is half the size, and 200 is twice the size. LDV : Low Density Vertical (will be set to High Density Vertical if not specified). LDH : Low Density Horizontal (will be set to High Density Horizontal if not specified). Note Density parameters might need to be configured in a particular way, depending on the\nprinter model. Refer to Epsonâs ESC * documentation to determine if the printer requires these parameters to be set. Example The following are examples of proper and improper name formatting: Proper name formatting: EPSONTMm30II__IMC__ EPSON_TM_U220__IMC_LDV_LDH_SCALE80__ Improper name formatting (this will not prevent printing, but the result might not have the\nexpected printed output): EPSON TMm 30II : The name cannot contain spaces. EPSONTMm30II : The name itself is correct, but it will not use ESC * . EPSONTMm30II__IMC : This name is missing the end __ . EPSONTMm30II__IMC_XDV__ : The parameter XDV does not match any existing parameters. EPSONTMm30II__IMC_SCALE__ : The parameter SCALE is missing the scale value.\nOn the Add Printer page, specify the printerâs Name using the following\nconvention: <printer_name>__IMC_<param_1>_<param_2>_..._<param_n>__ , where:\n`<printer_name>__IMC_<param_1>_<param_2>_..._<param_n>__`\n- printer_name is the printerâs name. It can contain any character except _ , / , # , or ` `\n(space character).\nprinter_name is the printerâs name. It can contain any character except _ , / , # , or ` `\n(space character).\n`printer_name`\n`_`\n`/`\n`#`\n- IMC : This stands for Image Mode Column (the simplified name for ESC * ).\nIMC : This stands for Image Mode Column (the simplified name for ESC * ).\n`IMC`\n`ESC*`\n- param_1 : This stands for the specific parameter: SCALE<X> : Scale of the picture (with the same aspect ratio). X should be an integer\ndescribing the scale percentage that should be used. For example, 100 is the original size, 50 is half the size, and 200 is twice the size. LDV : Low Density Vertical (will be set to High Density Vertical if not specified). LDH : Low Density Horizontal (will be set to High Density Horizontal if not specified). Note Density parameters might need to be configured in a particular way, depending on the\nprinter model. Refer to Epsonâs ESC * documentation to determine if the printer requires these parameters to be set.\nparam_1 : This stands for the specific parameter:\n`param_1`\n- SCALE<X> : Scale of the picture (with the same aspect ratio). X should be an integer\ndescribing the scale percentage that should be used. For example, 100 is the original size, 50 is half the size, and 200 is twice the size.\nSCALE<X> : Scale of the picture (with the same aspect ratio). X should be an integer\ndescribing the scale percentage that should be used. For example, 100 is the original size, 50 is half the size, and 200 is twice the size.\n`SCALE<X>`\n`X`\n`100`\n`50`\n`200`\n- LDV : Low Density Vertical (will be set to High Density Vertical if not specified).\nLDV : Low Density Vertical (will be set to High Density Vertical if not specified).\n`LDV`\n- LDH : Low Density Horizontal (will be set to High Density Horizontal if not specified).\nLDH : Low Density Horizontal (will be set to High Density Horizontal if not specified).\n`LDH`\n- Density parameters might need to be configured in a particular way, depending on the\nprinter model.\nDensity parameters might need to be configured in a particular way, depending on the\nprinter model.\n- Refer to Epsonâs ESC * documentation to determine if the printer requires these parameters to be set.\nRefer to Epsonâs ESC * documentation to determine if the printer requires these parameters to be set.\nThe following are examples of proper and improper name formatting:\nProper name formatting:\n- EPSONTMm30II__IMC__\n`EPSONTMm30II__IMC__`\n- EPSON_TM_U220__IMC_LDV_LDH_SCALE80__\nEPSON_TM_U220__IMC_LDV_LDH_SCALE80__\n`EPSON_TM_U220__IMC_LDV_LDH_SCALE80__`\nImproper name formatting (this will not prevent printing, but the result might not have the\nexpected printed output):\n- EPSON TMm 30II : The name cannot contain spaces.\nEPSON TMm 30II : The name cannot contain spaces.\n`EPSONTMm30II`\n- EPSONTMm30II : The name itself is correct, but it will not use ESC * .\nEPSONTMm30II : The name itself is correct, but it will not use ESC * .\n`EPSONTMm30II`\n`ESC*`\n- EPSONTMm30II__IMC : This name is missing the end __ .\nEPSONTMm30II__IMC : This name is missing the end __ .\n`EPSONTMm30II__IMC`\n`__`\n- EPSONTMm30II__IMC_XDV__ : The parameter XDV does not match any existing parameters.\nEPSONTMm30II__IMC_XDV__ : The parameter XDV does not match any existing parameters.\n`EPSONTMm30II__IMC_XDV__`\n`XDV`\n- EPSONTMm30II__IMC_SCALE__ : The parameter SCALE is missing the scale value.\nEPSONTMm30II__IMC_SCALE__ : The parameter SCALE is missing the scale value.\n`EPSONTMm30II__IMC_SCALE__`\n`SCALE`\n- Once the printerâs name has been defined using the appropriate naming convention, click Continue .\nOnce the printerâs name has been defined using the appropriate naming convention, click Continue .\n- Set the Make value to Raw and the Model value to Raw Queue (en) .\nSet the Make value to Raw and the Model value to Raw Queue (en) .\n- Click Add Printer . If everything was done correctly, the page should redirect to the Banners page.\nClick Add Printer . If everything was done correctly, the page should redirect to the Banners page.\n- Wait a few minutes for the IoT system to detect the printer and sync to Odooâs server.\nWait a few minutes for the IoT system to detect the printer and sync to Odooâs server.\n- Access the POS settings and select your POS, or click the\nvertical ellipsis button ( â® ) on a POS card and click Edit . Scroll down\nto the Connected Devices section, enable IoT Box , and select the printer\nin the Receipt Printer field. Click Save .\nAccess the POS settings and select your POS, or click the\nvertical ellipsis button ( â® ) on a POS card and click Edit . Scroll down\nto the Connected Devices section, enable IoT Box , and select the printer\nin the Receipt Printer field. Click Save .\nIf the printer was set up incorrectly (e.g., it continues to print random text, or the printed\nreceipt is too large or too small), it cannot be modified via the printerâs name in CUPS.\nInstead, configure a new printer from scratch with modified parameters, following the steps\nabove.\nThe following is an example of the troubleshooting process for a TM-U220B printer model using the ESC * command. The receipt pictured below is an example of a receipt that is printing correctly\ndue to proper formatting (in theory):\n`ESC*`\nPrinting this receipt immediately without proper formatting will not work, as the TM-U220B\nprinter model does not support the GS v 0 command. Instead, random characters will be printed:\n`GSv0`\nTo properly configure formatting for the Epson TM-U220B printer model, follow these steps:\n- After checking Epsonâs website for compatibility with both the GS v 0 and ESC * commands,\nthe TM-U220B printer is indeed incompatible with GS v 0 but supports ESC * .\nAfter checking Epsonâs website for compatibility with both the GS v 0 and ESC * commands,\nthe TM-U220B printer is indeed incompatible with GS v 0 but supports ESC * .\n`GSv0`\n`ESC*`\n- When adding the printer, CUPS displays the list of available printers: In this case, the printer is connected via USB, so it is not part of the Discovered Network Printers . Instead, it is likely part of the Unknown selection under Local Printers . By unplugging the printerâs USB cable from the IoT\nsystem and refreshing the page, the Unknown printer disappears. By plugging it\nback in, the printer reappears.\nWhen adding the printer, CUPS displays the list of available printers:\nIn this case, the printer is connected via USB, so it is not part of the Discovered Network Printers . Instead, it is likely part of the Unknown selection under Local Printers . By unplugging the printerâs USB cable from the IoT\nsystem and refreshing the page, the Unknown printer disappears. By plugging it\nback in, the printer reappears.\n- For the naming convention, since the printer must print using the ESC * command, it is\nimperative to add __IMC . For this particular model (TM-U220) m should be equal to 0 or 1. While referencing the Description table on Epsonâs ESC * website , the m values could be 0, 1, 32, or 33. So, in this case, the m value cannot be 32 or 33\n(otherwise, random characters will be printed). The table includes the numeric values 32 and 33; they both occur if the Number of\nbits for vertical data is set to 24, i.e. it has a High Vertical Density . In the case of\nconfiguring the Epson TM-U220, the Low Vertical Density will need to be forced, as\nthis printer model does not support High Vertical Density for this command ESC * . To add a Low Vertical Density , add the LDV parameter to the naming convention.\nFor the naming convention, since the printer must print using the ESC * command, it is\nimperative to add __IMC .\n`ESC*`\n`__IMC`\nFor this particular model (TM-U220) m should be equal to 0 or 1. While referencing the Description table on Epsonâs ESC * website , the m values could be 0, 1, 32, or 33. So, in this case, the m value cannot be 32 or 33\n(otherwise, random characters will be printed).\n`m`\n`m`\n`m`\nThe table includes the numeric values 32 and 33; they both occur if the Number of\nbits for vertical data is set to 24, i.e. it has a High Vertical Density . In the case of\nconfiguring the Epson TM-U220, the Low Vertical Density will need to be forced, as\nthis printer model does not support High Vertical Density for this command ESC * .\n`ESC*`\nTo add a Low Vertical Density , add the LDV parameter to the naming convention.\n`LDV`\n- Click Continue to proceed. Next, set the Make value to Raw and the Model value to Raw Queue (en) . However, when trying to print with the naming convention EpsonTMU220B__IMC_LDV__ , the\nreceipt is printed, but it is too large and outside the margin. To resolve this, add a new\nprinter (and naming convention) with the SCALE<X> parameter to adapt to the receiptâs size. Here are some examples: Printer Naming Convention EpsonTMU220B__IMC_LDV__ EpsonTMU220B__IMC_LDV_SCALE75__ EpsonTMU220B__IMC_LDV_LDH__ EpsonTMU220B__IMC_LDV_LDH_SCALE35__\nClick Continue to proceed. Next, set the Make value to Raw and the Model value to Raw Queue (en) .\nHowever, when trying to print with the naming convention EpsonTMU220B__IMC_LDV__ , the\nreceipt is printed, but it is too large and outside the margin. To resolve this, add a new\nprinter (and naming convention) with the SCALE<X> parameter to adapt to the receiptâs size.\n`EpsonTMU220B__IMC_LDV__`\n`SCALE<X>`\nHere are some examples:\nPrinter Naming Convention\nEpsonTMU220B__IMC_LDV__\n`EpsonTMU220B__IMC_LDV__`\nEpsonTMU220B__IMC_LDV_SCALE75__\n`EpsonTMU220B__IMC_LDV_SCALE75__`\nEpsonTMU220B__IMC_LDV_LDH__\n`EpsonTMU220B__IMC_LDV_LDH__`\nEpsonTMU220B__IMC_LDV_LDH_SCALE35__\n`EpsonTMU220B__IMC_LDV_LDH_SCALE35__`\n\n### DYMO LabelWriter print issue\n\nThe DYMO LabelWriter has a known issue in printing with IoT systems. The OpenPrinting CUPS server\ninstalls the printer using Local RAW Printer drivers. In order to print anything, the\ncorrect Make and Model needs to be set to reference the correct driver when using the\ndevice.\nAdditionally, a new printer needs to be added to reduce the print delay that occurs after updating\nthe driver.\nThe DYMO LabelWriter 450 DUO printer is the recommended DYMO printer for use with Odoo and IoT\nsystems. This device combines two printers: a label printer and a tape printer. When configuring\nthe following processes, it is essential to select the correct model (either DYMO LabelWriter 450\nDUO Label (en) or DYMO LabelWriter 450 DUO Tape (en)). For consistency, the following processes\noutline configuration steps for the DYMO LabelWriter 450 DUO Label (en) model. Adjust the model\nselections as needed.\n\n#### DYMO LabelWriter not printing\n\nIf the DYMO LabelWriter fails to print, install a new driver:\n- Access the IoT systemâs homepage and click Printer server to open the\nOpenPrinting CUPS console.\nAccess the IoT systemâs homepage and click Printer server to open the\nOpenPrinting CUPS console.\n- Click Printers in the top menu, then click the printer in the list.\nClick Printers in the top menu, then click the printer in the list.\n- Select Maintenance in the first dropdown menu.\nSelect Maintenance in the first dropdown menu.\n- Select Modify Printer in the second dropdown menu.\nSelect Modify Printer in the second dropdown menu.\n- Select the specific network connection/printer on which the modification should be made and\nclick Continue .\nSelect the specific network connection/printer on which the modification should be made and\nclick Continue .\n- On the next page, click Continue , then select DYMO from the Make dropdown list.\nOn the next page, click Continue , then select DYMO from the Make dropdown list.\n- Click on Continue and set the Model to DYMO LabelWriter 450\nDUO Label (en) (or whichever DYMO printer model is being used).\nClick on Continue and set the Model to DYMO LabelWriter 450\nDUO Label (en) (or whichever DYMO printer model is being used).\n- Click Modify Printer to set the new driver; a confirmation page appears.\nClick Modify Printer to set the new driver; a confirmation page appears.\n- Click Printers in the top menu; all printers installed on the OpenPrinting CUPS\nserver appear, including the newly updated DYMO LabelWriter 450 DUO Label (or\nwhichever DYMO printer model is being used).\nClick Printers in the top menu; all printers installed on the OpenPrinting CUPS\nserver appear, including the newly updated DYMO LabelWriter 450 DUO Label (or\nwhichever DYMO printer model is being used).\n- Click the newly updated printer, then click the Maintenance dropdown menu and\nselect Print Test Page to print a test label. The test label is printed after a few\nseconds if the driver update was successful.\nClick the newly updated printer, then click the Maintenance dropdown menu and\nselect Print Test Page to print a test label. The test label is printed after a few\nseconds if the driver update was successful.\nTo reduce this delay, add a new printer using the steps below.\n\n#### DYMO LabelWriter print delay\n\nIf the DYMO LabelWriter 450 DUO printer is not printing at all, or is not recognized (i.e., it\nhas a RAW driver type), then update the drivers on the device .\nTo resolve the delay issue after modifying the driver, reinstall the printer:\n- Access the IoT systemâs homepage and click Printer server to open the\nOpenPrinting CUPS console.\nAccess the IoT systemâs homepage and click Printer server to open the\nOpenPrinting CUPS console.\n- Click Administration in the top menu, then click Add a Printer .\nClick Administration in the top menu, then click Add a Printer .\n- On the next page, in the Local Printers section, select DYMO\nLabelWriter 450 DUO Label (DYMO LabelWriter 450 DUO Label) (or whichever DYMO printer model is\nbeing used) pre-installed printer. Click Continue .\nOn the next page, in the Local Printers section, select DYMO\nLabelWriter 450 DUO Label (DYMO LabelWriter 450 DUO Label) (or whichever DYMO printer model is\nbeing used) pre-installed printer. Click Continue .\n- On the following screen, update the Name to something easily identifiable, as the\noriginal printer will remain in the list. Then, click Continue .\nOn the following screen, update the Name to something easily identifiable, as the\noriginal printer will remain in the list. Then, click Continue .\n- Set the Model field to DYMO LabelWriter 450 DUO Label (en) (or\nwhichever DYMO printer model is being used), then click Add Printer to complete\nthe installation.\nSet the Model field to DYMO LabelWriter 450 DUO Label (en) (or\nwhichever DYMO printer model is being used), then click Add Printer to complete\nthe installation.\n- Click Printers in the top menu and click the newly installed printer DYMO LabelWriter 450 DUO Label (or whichever DYMO printer model is being used) from\nin the list.\nClick Printers in the top menu and click the newly installed printer DYMO LabelWriter 450 DUO Label (or whichever DYMO printer model is being used) from\nin the list.\n- Click the Maintenance dropdown list and select Print Test Page to print\na test label. The test label should print out immediately, or after one or two seconds.\nClick the Maintenance dropdown list and select Print Test Page to print\na test label. The test label should print out immediately, or after one or two seconds.\n\n### The Zebra printer does not print anything\n\nZebra printers are quite sensitive to the format of the printed Zebra Programming Language (ZPL)\ncode. If nothing comes out of the printer or blank labels are printed, try changing the format\nof the report sent to the printer. To do so, activate the developer mode , go\nto Settings ⣠Technical ⣠User Interface ⣠Views , and search for the\ncorresponding template.\nZebraâs instructions on printing ZPL files\n\n### The printer appears multiple times\n\nIf the printer appears multiple times on the IoT boxâs or Windows virtual IoTâs homepage and/or in the list of Devices on the IoT systemâs form , the cause is usually the\nCUPS auto-discovery feature. This feature allows to list all detected printers together with all\navailable drivers, creating one entry for each printerâdriver pair.\nSimply select the entry that works best and ignore the others.\nWorkarounds exist to disable the CUPS auto-discovery feature.\n\n## Barcode scanner issues\n\n### The characters read by the barcode scanner do not match the barcode\n\nBy default, most barcode scanners are configured in the US QWERTY format. If the barcode scanner\nuses a different layout, go to IoT ⣠Devices and click the barcode deviceâs card.\nThen, select the correct language in the Keyboard Layout field.\nThe Keyboard Layout is language-specific, with available options varying based on\nthe device and the language of the database (e.g., English (UK) , English\n(US) , etc.).\n\n### Nothing happens when a barcode is scanned\n\nMake sure the correct device is selected in the Point of Sale settings (when applicable) and the barcode is\nconfigured to send an ENTER character (keycode 28) at the end of every barcode.\n`ENTER`\n\n### The barcode scanner is detected as a keyboard\n\nSome barcode scanners are identified as USB keyboards rather than barcode scanners and are not\nrecognized by IoT systems.\nTo change the device type manually, go to IoT ⣠Devices and click the barcode\ndeviceâs card. Then, enable Is scanner .\n\n### The barcode scanner processes barcode characters individually\n\nWhen accessing the mobile version of Odoo from a mobile device or tablet paired with a barcode\nscanner via the IoT system, the scanner might interpret each character in a barcode as a separate\nscan. To resolve this, go to IoT ⣠Devices and click the barcode deviceâs\ncard. Then, select the correct language in the Keyboard Layout field.\nThe Keyboard Layout is language-specific, with available options varying based on\nthe device and the language of the database (e.g., English (UK) , English\n(US) , etc.).", "headings": ["Connection", "Link a printer", "Link work orders to a printer", "Link reports to a printer", "Potential issues", "The printer is not detected", "The printer outputs random text", "The printer is detected but is not recognized correctly", "DYMO LabelWriter print issue", "The Zebra printer does not print anything", "The printer appears multiple times", "Barcode scanner issues", "The characters read by the barcode scanner do not match the barcode", "Nothing happens when a barcode is scanned", "The barcode scanner is detected as a keyboard", "The barcode scanner processes barcode characters individually"], "doc_id": "e5076f0ac1916f60"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/iot/devices/scale.html", "title": "Connect a scale", "module": "general", "section": "Connect a scale", "text": "# Connect a scale\n\nIn EU member states, certification is legally required to use a scale as an integrated device.\nTo connect a scale to the IoT system, use a USB cable. In some cases, you may need a serial-to-USB\nadapter to complete the connection. If the scale is compatible with an IoT system , no additional setup is required; the scale is\nautomatically detected as soon as it is connected. If the scale is not detected, reboot the IoT box\nor restart the Windows virtual IoT service and update the\nscaleâs drivers .\nIf the scale still does not function after updating the drivers, it might not be compatible with\nthe Odoo IoT system . In such cases, a different scale\nmust be used.\nOnce the scale is connected to the IoT system, configure it in the POS settings .\nConnect an IoT system to a POS\n\n## Ariva S scales\n\nFor Ariva S series scales (manufactured by Mettler-Toledo, LLC.) to function with IoT systems, a\nspecific setting must be modified, and a dedicated Mettler USB-to-proprietary RJ45 cable is required.\nThe official Mettler USB-to-RJ45 cable (Mettler part number 72256236) must be used. Contact\nMettler or a partner to purchase an authentic cable. No other cable works for this\nconfiguration.\nTo configure the Ariva S scale for IoT system recognition, refer to page 17 of Mettlerâs Setup\nGuide for Ariva S series scales and follow these steps:\n- Hold the >T< button for eight seconds, or until CONF appears.\nHold the >T< button for eight seconds, or until CONF appears.\n- Press >T< until GRP 3 appears, then press >0< to confirm.\nPress >T< until GRP 3 appears, then press >0< to confirm.\n- At step 3.1 , make sure the value is set to 1 (USB Virtual COM ports) by\npressing >T< to cycle through the options.\nAt step 3.1 , make sure the value is set to 1 (USB Virtual COM ports) by\npressing >T< to cycle through the options.\n- Press >0< until 3.6 (if available, otherwise skip the next step).\nPress >0< until 3.6 (if available, otherwise skip the next step).\n- At step 3.6 , make sure the value is set to 3 (8217 Mettler-Toledo (WO))\nby pressing >T< to cycle through the options.\nAt step 3.6 , make sure the value is set to 3 (8217 Mettler-Toledo (WO))\nby pressing >T< to cycle through the options.\n- Press >0< (multiple times if necessary) until GRP 4 appears.\nPress >0< (multiple times if necessary) until GRP 4 appears.\n- Press >T< until EXIT appears. Important Do not make any other changes unless otherwise needed.\nPress >T< until EXIT appears.\nDo not make any other changes unless otherwise needed.\n- Press >0< .\n- Press >0< again to SAVE ; the scale restarts.\nPress >0< again to SAVE ; the scale restarts.\n- Reboot the IoT box or restart the Windows virtual IoT service .\nThe scale should then appear as Toledo 8217 , as opposed to the previous display, where it\nappeared as Adam Equipment Serial .\nReboot the IoT box or restart the Windows virtual IoT service .\nThe scale should then appear as Toledo 8217 , as opposed to the previous display, where it\nappeared as Adam Equipment Serial .\n`Toledo8217`\n`AdamEquipmentSerial`", "headings": ["Ariva S scales"], "doc_id": "9caac03ba2a2bcdb"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/iot/devices/screen.html", "title": "Connect a screen", "module": "general", "section": "Connect a screen", "text": "# Connect a screen\n\nIn Odoo, an IoT box can be connected to a screen display. After being\nconfigured, the screen can be used to display a Point of Sale (PoS) order to a client.\nAn example of a PoS (point of sale) order on a screen display.\nAccess the customer display by going to the IoT box homepage and\nclicking on the PoS Display button. To get to the IoT box\nhomepage, navigate to IoT app ⣠IoT Boxes and click on the IoT box homepage link.\n\n## Connection\n\nThe way to connect the screen display to the IoT box differs depending\non the model.\nConnect up to two screens with micro-HDMI cables on the side of the IoT box. If two screens are connected, they can display distinct content (see Screen Usage ).\nConnect the screen with an HDMI cable on the side of the IoT box.\nSee the Raspberry Pi Schema .\nScreen(s) should be connected before the IoT box is switched on. If\nit is already on, connect the screen(s), and then restart the IoT box by unplugging it for ten seconds and plugging it back into its power source.\nThe usage of HDMI/micro-HDMI adapters may cause issues which will result in a blank, black screen\non the screen display. Using the specific cable for the display connection is recommended.\nIf the connection was successful, the screen should display the POS Client display screen.\nThe screen should also appear in the list of Displays on the IoT box homepage. Alternatively, the display can be seen by accessing IoT app\n⣠Devices .\nIf no screen is detected, a default display named Distant Display will be displayed\ninstead. This indicates that there is no hardware screen connected.\n\n## Usage\n\n### Show Point of Sale orders to customers\n\nTo use the screen in the Point of Sale app , go to Point of Sale â£\nConfiguration ⣠Point of Sale , select a PoS , click Edit if\nnecessary, and enable the IoT Box feature.\nNext, select the screen from the Customer Display drop-down menu. Then click Save , if required.\nThe screen is now available for PoS sessions. A screen icon will appear in\nthe menu at the top of the screen to indicate the screenâs connection status.\nThe screen will automatically show the PoS orders and update when changes\nare made to the order.\n\n### Display a website on the screen\n\nOpen the screen form view by accessing IoT app ⣠Devices ⣠Customer Display .\nThis allows the user to choose a particular website URL to display on the screen using the Display URL field.", "headings": ["Connection", "Usage", "Show Point of Sale orders to customers", "Display a website on the screen"], "doc_id": "2f444eb1da86ec81"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/iot/iot_advanced/https_certificate_iot.html", "title": "HTTPS certificate (IoT)", "module": "general", "section": "HTTPS certificate (IoT)", "text": "# HTTPS certificate (IoT)\n\nHypertext Transfer Protocol Secure (HTTPS) is the secure and encrypted version of Hypertext\nTransfer Protocol (HTTP), which is the primary protocol used for data communication between a web\nbrowser and a website. It secures communications by using an encryption protocol known as Transport\nLayer Security (TLS), previously called Secure Sockets Layer (SSL). The security of HTTPS relies on TLS / SSL certificates, which authenticate the provider and verify their\nidentity.\nThe use of HTTPS is required to communicate with certain network devices, particularly payment\nterminals. If the HTTPS certificate is not valid, some devices cannot interact with the IoT\nsystem.\nIn this documentation and throughout Odoo, the term HTTPS certificate refers to a valid\nSSL certificate that allows an HTTPS connection.\n\n## HTTPS certificate generation\n\nThe HTTPS certificate is generated automatically. When the IoT system is (re-)started (e.g., after\nit is connected to the Odoo database), a request is sent to https://www.odoo.com , which returns\nthe HTTPS certificate if the IoT system and database meet the eligibility criteria:\n- The database must be a production instance. The database instance should not be a copy, a\nduplicate, a staging, or a development environment.\nThe database must be a production instance. The database instance should not be a copy, a\nduplicate, a staging, or a development environment.\n- The Odoo subscription must be ongoing ( In Progress status) and have an IoT\nbox subscription line.\nThe Odoo subscription must be ongoing ( In Progress status) and have an IoT\nbox subscription line.\nWhen the certificate has been received:\n- The IoT systemâs homepage address is updated to a new HTTPS URL ending with .odoo-iot.com . Click\nthe URL to establish a secure HTTPS connection.\nThe IoT systemâs homepage address is updated to a new HTTPS URL ending with .odoo-iot.com . Click\nthe URL to establish a secure HTTPS connection.\n`.odoo-iot.com`\n- The HTTPS certificate banner displays the certificateâs validity period. To view this\ninformation, click the ( cogs ) button on the IoT systemâs homepage.\nThe HTTPS certificate banner displays the certificateâs validity period. To view this\ninformation, click the ( cogs ) button on the IoT systemâs homepage.\n\n## HTTPS certificate generation issues and errors\n\n### The HTTPS certificate does not generate\n\nPotential causes include the following:\n- No IoT box subscription is linked to your account.\nNo IoT box subscription is linked to your account.\n- The IoT box subscription was added after connecting the IoT\nsystem to the database. In this case, refresh the IoT systemâs homepage or reboot/ restart the IoT system to regenerate the HTTPS certificate.\nThe IoT box subscription was added after connecting the IoT\nsystem to the database. In this case, refresh the IoT systemâs homepage or reboot/ restart the IoT system to regenerate the HTTPS certificate.\n- The firewall is preventing the HTTPS certificate from generating correctly. In this case,\ndeactivate the firewall until the certificate is successfully generated. Note Some devices, such as routers with a built-in firewall, can prevent the HTTPS certificate from\ngenerating.\nThe firewall is preventing the HTTPS certificate from generating correctly. In this case,\ndeactivate the firewall until the certificate is successfully generated.\nSome devices, such as routers with a built-in firewall, can prevent the HTTPS certificate from\ngenerating.\n\n### The IoT systemâs homepage can be accessed using its IP address but not thexxx.odoo-iot.comURL\n\n`xxx.odoo-iot.com`\nContact your system or network administrator to address the issue. Network-related problems are\nbeyond the scope of Odoo support services.\n- If the router allows manual DNS configuration, update the settings to\nuse Google DNS .\nIf the router allows manual DNS configuration, update the settings to\nuse Google DNS .\n- If the router does not support this, you need to update the DNS settings directly on each device\nthat interacts with the IoT system to use Google DNS . Instructions for configuring DNS on individual\ndevices can be found on the respective manufacturerâs website.\nIf the router does not support this, you need to update the DNS settings directly on each device\nthat interacts with the IoT system to use Google DNS . Instructions for configuring DNS on individual\ndevices can be found on the respective manufacturerâs website.\n- Some IoT devices, such as payment terminals, likely do not require DNS changes, as they are\ntypically pre-configured with custom DNS settings.\nSome IoT devices, such as payment terminals, likely do not require DNS changes, as they are\ntypically pre-configured with custom DNS settings.\n- On some browsers, an error code mentioning the DNS (such as DNS_PROBE_FINISHED_NXDOMAIN ) is\ndisplayed.\nOn some browsers, an error code mentioning the DNS (such as DNS_PROBE_FINISHED_NXDOMAIN ) is\ndisplayed.\n`DNS_PROBE_FINISHED_NXDOMAIN`\n\n### Errors\n\nA specific error code is displayed on the IoT systemâs homepage if any issues occur during the\ngeneration or reception of the HTTPS certificate.\nWhen you access the IoT systemâs homepage, it automatically checks for an HTTPS certificate and\nattempts to generate one if it is missing. If an error appears, refresh the page to see if the\nissue is resolved.\n\n#### ERR_IOT_HTTPS_CHECK_NO_SERVER\n\n`ERR_IOT_HTTPS_CHECK_NO_SERVER`\nThe server configuration is missing, i.e., the Odoo instance is not connected to\nthe IoT system.\n\n#### ERR_IOT_HTTPS_CHECK_CERT_READ_EXCEPTION\n\n`ERR_IOT_HTTPS_CHECK_CERT_READ_EXCEPTION`\nAn error occurred while attempting to read the existing HTTPS certificate.\nVerify that the HTTPS certificate file is readable.\n\n#### ERR_IOT_HTTPS_LOAD_NO_CREDENTIAL\n\n`ERR_IOT_HTTPS_LOAD_NO_CREDENTIAL`\nThe contract and/or database UUID is missing form the IoT.\nVerify that both values are correctly configured. To update them, access the IoT boxâs or Windows virtual IoTâs homepage ,\nclick the ( cogs ) button, then click Credential .\n\n#### ERR_IOT_HTTPS_LOAD_REQUEST_EXCEPTION\n\n`ERR_IOT_HTTPS_LOAD_REQUEST_EXCEPTION`\nAn unexpected error occurred while the IoT system tried to reach https://www.odoo.com . This is\nlikely due to network-related issues, such as:\n- The IoT system does not have Internet access.\nThe IoT system does not have Internet access.\n- Network restrictions (e.g., firewalls or VPNs) are preventing communication with https://www.odoo.com .\nNetwork restrictions (e.g., firewalls or VPNs) are preventing communication with https://www.odoo.com .\n- To access the full request exception details with information regarding the error, enable\nthe developer mode , click the IoT systemâs card in the IoT app, and click Download logs on the IoT systemâs form .\nTo define the log levels recorded in the IoT systemâs log file, access the IoT boxâs or Windows virtual IoTâs homepage,\nclick the ( cogs ) button, then Log level at the\nbottom of the page.\nTo access the full request exception details with information regarding the error, enable\nthe developer mode , click the IoT systemâs card in the IoT app, and click Download logs on the IoT systemâs form .\nTo define the log levels recorded in the IoT systemâs log file, access the IoT boxâs or Windows virtual IoTâs homepage,\nclick the ( cogs ) button, then Log level at the\nbottom of the page.\n- To address network-related issues, contact your system or network administrator; these issues\nare beyond the scope of Odoo support services.\nTo address network-related issues, contact your system or network administrator; these issues\nare beyond the scope of Odoo support services.\n\n#### ERR_IOT_HTTPS_LOAD_REQUEST_STATUS\n\n`ERR_IOT_HTTPS_LOAD_REQUEST_STATUS`\nThe IoT system successfully reached https://www.odoo.com but received an unexpected HTTP response (status codes) .\nThis error code includes the HTTP status. For example, ERR_IOT_HTTPS_LOAD_REQUEST_STATUS 404 means\nthe server returned a âPage Not Foundâ response.\n`ERR_IOT_HTTPS_LOAD_REQUEST_STATUS404`\n- Open https://www.odoo.com in a web browser to check if the website is temporarily down for\nmaintenance.\nOpen https://www.odoo.com in a web browser to check if the website is temporarily down for\nmaintenance.\n- If https://www.odoo.com is down for maintenance, wait for it to resume. If the website is operational, open a support ticket and make\nsure to include the 3-digit HTTPS status code in the ticket.\n\n#### ERR_IOT_HTTPS_LOAD_REQUEST_NO_RESULT\n\n`ERR_IOT_HTTPS_LOAD_REQUEST_NO_RESULT`\nThe IoT system successfully connected to https://www.odoo.com , but the server refused to\nprovide the HTTPS certificate.\nCheck that the IoT system and database meet the eligibility requirements for an HTTPS certificate.", "headings": ["HTTPS certificate generation", "HTTPS certificate generation issues and errors", "The HTTPS certificate does not generate", "The IoT systemâs homepage can be accessed using its IP address but not thexxx.odoo-iot.comURL", "Errors"], "doc_id": "57e815f323019c2c"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/iot/iot_advanced/ssh_connect.html", "title": "IoT box SSH connection", "module": "general", "section": "IoT box SSH connection", "text": "# IoT box SSH connection\n\nSSH connections are only available for IoT boxes , not the Windows\nvirtual IoT .\n- This feature should only be used with trusted parties, as it provides administrative\naccess to the IoT box, which can create security issues.\nThis feature should only be used with trusted parties, as it provides administrative\naccess to the IoT box, which can create security issues.\n- Managing an SSH connection is not covered under the standard Odoo support scope. Visit\nthe Odoo Support page for additional information about what is\ncovered.\nManaging an SSH connection is not covered under the standard Odoo support scope. Visit\nthe Odoo Support page for additional information about what is\ncovered.\nTo provide an SSH connection to an IoT box, you must generate a\npassword:\n- Access the IoT boxâs homepage by opening the IoT app and clicking the IP address displayed\non the IoT boxâs card.\nAccess the IoT boxâs homepage by opening the IoT app and clicking the IP address displayed\non the IoT boxâs card.\n- Click the ( cogs ) button at the top-right, then Remote\nDebug .\nClick the ( cogs ) button at the top-right, then Remote\nDebug .\n- In the Remote Debugging popup that opens, click Generate and save the\npassword securely. Once you close the popup, the password will no longer be available.\nIn the Remote Debugging popup that opens, click Generate and save the\npassword securely. Once you close the popup, the password will no longer be available.\n- Enter the Authentication Token provided by the user attempting to connect to the IoT\nbox.\nEnter the Authentication Token provided by the user attempting to connect to the IoT\nbox.\n- Click Enable Remote Debugging .\nClick Enable Remote Debugging .\n- IoT box\n- IoT system connection to Odoo\nIoT system connection to Odoo", "headings": [], "doc_id": "3dac586404952226"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/iot/iot_advanced/updating_iot.html", "title": "IoT system updates", "module": "general", "section": "IoT system updates", "text": "# IoT system updates\n\nDue to the complexity of IoT systems, the term updating can refer to several processes, including:\n- Updating the IoT systemâs image and/or core code ;\nUpdating the IoT systemâs image and/or core code ;\n- Updating the handlers , which include the interfaces and drivers.\nUpdating the handlers , which include the interfaces and drivers.\n\n## Image and core code update\n\nTo check if the IoT box is up-to-date (and update it if needed), access the IoT boxâs\nhomepage , click the ( cogs ) button at the\ntop-right, then Update in the Version section.\nEnable the developer mode to view the current versions of the IoT\nboxâs image and core code.\nTo update the IoT boxâs image, flash its SD card. Flashing can be performed using balenaEtcher , a free and open-source tool for writing disk\nimages to SD cards.\n- Updating the IoT systemâs image is often required after upgrading the Odoo database to a\nnewer version.\nUpdating the IoT systemâs image is often required after upgrading the Odoo database to a\nnewer version.\n- A computer with a micro SD card reader/adapter is required to flash the micro SD card.\nA computer with a micro SD card reader/adapter is required to flash the micro SD card.\n- An alternative software for flashing the micro SD card is Raspberry Pi Imager .\nAn alternative software for flashing the micro SD card is Raspberry Pi Imager .\n- Download balenaEtcher.\nDownload balenaEtcher.\n- Insert the IoT boxâs micro SD card into the computer or adapter.\nInsert the IoT boxâs micro SD card into the computer or adapter.\n- Open balenaEtcher, click Flash from URL , and enter the following URL: http://nightly.odoo.com/master/iotbox/iotbox-latest.zip .\nOpen balenaEtcher, click Flash from URL , and enter the following URL: http://nightly.odoo.com/master/iotbox/iotbox-latest.zip .\n`http://nightly.odoo.com/master/iotbox/iotbox-latest.zip`\n- Click Select target and select the SD card.\nClick Select target and select the SD card.\n- Click Flash and wait for the process to finish.\nClick Flash and wait for the process to finish.\nTo update the IoT boxâs core code, click Update under IoT Box Update in the Update popup.\nThis process may take over 30 minutes. Do not turn off or unplug the IoT box during\nthis time, as doing so could leave the device in an inconsistent state, requiring the IoT\nbox to be reflashed with a new image.\nTo update the Windows virtual IoTâs image and code, uninstall the program and reinstall the latest\npackage.\n\n## Handler (driver) update\n\nTo update the IoT systemâs handlers (i.e., drivers and interfaces) and synchronize them with the\nconfigured server handlerâs code, for example, to resolve issues where devices are not functioning properly with the IoT system, proceed as follows:\n- Access the IoT boxâs or Windows virtual IoTâs homepage and click the ( cogs ) button at\nthe top-right.\nAccess the IoT boxâs or Windows virtual IoTâs homepage and click the ( cogs ) button at\nthe top-right.\n- Click Update in the Version section.\nClick Update in the Version section.\n- In the Update popup that opens, click Force Drivers Update .\nIn the Update popup that opens, click Force Drivers Update .\nIf you have an on-premise or Odoo.sh database, the configured server must be up-to-date to ensure the\nhandlersâ code includes the latest fixes and patches.\nA handler update is also performed automatically every time the IoT system is restarted unless\nthe Automatic drivers update option is disabled in the Technical\ninformation tab in the IoT systemâs form in Odoo.", "headings": ["Image and core code update", "Handler (driver) update"], "doc_id": "ced815c2c331e141"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/iot/iot_box.html", "title": "IoT box", "module": "general", "section": "IoT box", "text": "# IoT box\n\nTo start using an IoT box:\n- Make sure you have a valid IoT box subscription in addition to\nyour Odoo subscription.\nMake sure you have a valid IoT box subscription in addition to\nyour Odoo subscription.\n- Connect your devices to the IoT box.\nConnect your devices to the IoT box.\n- Connect the IoT box to the network .\nConnect the IoT box to the network .\n- Connect the IoT box to your Odoo database .\nConnect the IoT box to your Odoo database .\nVideo: How to Set Up and Use the Odoo IoT Box: A Beginnerâs Guide\nDevices can also be connected after the IoT box is added to the network and/or connected to the\ndatabase; however, a reboot of the IoT box might be required.\nNever make the IoT box accessible from the public Internet.\nIoT systems are designed to provide your database with access to devices on your local network.\nExposing them to the public Internet would create a security risk .\n\n## Network connection\n\nThe IoT box can be connected to the network via Ethernet or Wi-Fi .\nAll devices must be connected to the same network : the IoT box, the device(s) connected\nto the IoT box, and the computer connected to Odoo.\n\n### Ethernet\n\nPlug the Ethernet cable into the IoT boxâs Ethernet port and an available port on your router, then\nconnect the IoT box to a power source.\n\n### Wi-Fi\n\nMake sure no Ethernet cable is connected to the IoT box and follow these steps:\n- Connect the IoT box to a power source and wait a few minutes for it to power on.\nConnect the IoT box to a power source and wait a few minutes for it to power on.\n- Access your computerâs Wi-Fi settings and select the IoT boxâs network. The network name is in\nthe format IoTBox-xxxxxxxxxxxx (where xxxxxxxxxxxx is a unique identifier).\nAccess your computerâs Wi-Fi settings and select the IoT boxâs network. The network name is in\nthe format IoTBox-xxxxxxxxxxxx (where xxxxxxxxxxxx is a unique identifier).\n`IoTBox-xxxxxxxxxxxx`\n`xxxxxxxxxxxx`\n- Connect to the IoT boxâs Wi-Fi network and sign into it; your browser should automatically\nopen and redirect to the IoT boxâs homepage . Note Depending on your operating system, the browser might not open and redirect to the IoT boxâs\nhomepage. In this case, open your browser manually and navigate to http://10.11.12.1 or any url starting with http (e.g., http://odoo.com ).\nConnect to the IoT boxâs Wi-Fi network and sign into it; your browser should automatically\nopen and redirect to the IoT boxâs homepage .\nDepending on your operating system, the browser might not open and redirect to the IoT boxâs\nhomepage. In this case, open your browser manually and navigate to http://10.11.12.1 or any url starting with http (e.g., http://odoo.com ).\n`http://10.11.12.1`\n`http://odoo.com`\n- On the IoT boxâs homepage, click Configure next to the Internet Status section.\nOn the IoT boxâs homepage, click Configure next to the Internet Status section.\n- Wait a few minutes for the available networks to be scanned, select the network, enter the\nWi-Fiâs password, and click Connect .\nWait a few minutes for the available networks to be scanned, select the network, enter the\nWi-Fiâs password, and click Connect .\nOnce connected to the Wi-Fi network, the IoT box stops emitting its Wi-Fi signal, and the\ncomputer should automatically reconnect to its original network. If it does not, reconnect to it\nmanually.\n\n## IoT box homepage\n\nTo access the IoT boxâs homepage, open a web browser on the same network as the IoT box and\nnavigate to the IoT boxâs IP address.\nThe IoT boxâs IP address can be retrieved by:\n- connecting the IoT box to an external monitor: the IP address is displayed on the screen.\nconnecting the IoT box to an external monitor: the IP address is displayed on the screen.\n- connecting the IoT box to a supported receipt or label printer with a USB cable: the IP address is automatically printed.\nconnecting the IoT box to a supported receipt or label printer with a USB cable: the IP address is automatically printed.\n- accessing the administrator interface of the router to which the IoT box is connected or using\nthird-party software to scan the network.\naccessing the administrator interface of the router to which the IoT box is connected or using\nthird-party software to scan the network.\nOnce the IoT box is connected to the Odoo database , its homepage can be accessed\nfrom Odoo by opening the IoT app and clicking the URL displayed on the IoT boxâs card.", "headings": ["Network connection", "Ethernet", "Wi-Fi", "IoT box homepage"], "doc_id": "3c432ceb85a0b93d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/iot/windows_iot.html", "title": "Windows virtual IoT", "module": "general", "section": "Windows virtual IoT", "text": "# Windows virtual IoT\n\nTo start using the Windows virtual IoT:\n- Make sure all prerequisites are met.\nMake sure all prerequisites are met.\n- Install the Windows virtual IoT on a Windows computer.\nInstall the Windows virtual IoT on a Windows computer.\n- Configure the Windows Firewall .\nConfigure the Windows Firewall .\n- Connect your devices to the Windows virtual IoT.\nConnect your devices to the Windows virtual IoT.\n- Connect the Windows virtual IoT to your Odoo database .\nConnect the Windows virtual IoT to your Odoo database .\n\n## Prerequisites\n\nThe following prerequisites must be met before setting up and using the Windows virtual IoT:\n- A valid IoT box subscription .\nA valid IoT box subscription .\n- An updated and recent version of Windows (i.e., Windows 10 or Windows 11) installed on a Windows\ncomputer (laptop, desktop, or server).\nAn updated and recent version of Windows (i.e., Windows 10 or Windows 11) installed on a Windows\ncomputer (laptop, desktop, or server).\n- MRP devices, including cameras and measurement tools,\nare not compatible with Windows virtual IoT.\nMRP devices, including cameras and measurement tools,\nare not compatible with Windows virtual IoT.\n- It is also possible to create a Windows Virtual Machine on a MacOS/Linux computer. However,\nthis option is not supported by Odoo, and no troubleshooting assistance will be provided.\nIt is also possible to create a Windows Virtual Machine on a MacOS/Linux computer. However,\nthis option is not supported by Odoo, and no troubleshooting assistance will be provided.\nNever make the Windows virtual IoT accessible from the public Internet.\nIoT systems are designed to provide your database with access to devices on your local network.\nExposing them to the public Internet would create a security risk .\n\n## Installation\n\nTo install the Windows virtual IoT on a Windows computer:\n- Access Odooâs download page and download the Community edition\nof Odoo for Windows matching your databaseâs version .\nAccess Odooâs download page and download the Community edition\nof Odoo for Windows matching your databaseâs version .\n- Open the downloaded .exe file, allow the app to make changes to your device, select\na language, and click OK .\nOpen the downloaded .exe file, allow the app to make changes to your device, select\na language, and click OK .\n`.exe`\n- Click Next , then I Agree to accept the terms and conditions and continue.\nClick Next , then I Agree to accept the terms and conditions and continue.\n- Select Odoo IoT from the Select the type of install dropdown list. The\nfollowing components should be selected: Odoo Server, Odoo IoT, Nginx WebServer, and Ghostscript\ninterpreter.\nSelect Odoo IoT from the Select the type of install dropdown list. The\nfollowing components should be selected: Odoo Server, Odoo IoT, Nginx WebServer, and Ghostscript\ninterpreter.\n- Verify you have the required space on your computer and click Next .\nVerify you have the required space on your computer and click Next .\n- In the Destination folder , enter C:\\odoo and click Install . Warning Do not install Odooâs Windows virtual IoT in any Windows user directory, as this can cause\nissues with HTTPS certificate generation .\nIn the Destination folder , enter C:\\odoo and click Install .\nDo not install Odooâs Windows virtual IoT in any Windows user directory, as this can cause\nissues with HTTPS certificate generation .\n- Once the installation is complete, click Next .\nOnce the installation is complete, click Next .\n- Set up GPL Ghostscript: Click Next , agree to the terms and conditions, click Install , then Finish .\nSet up GPL Ghostscript: Click Next , agree to the terms and conditions, click Install , then Finish .\n- Click Next , Next , and Finish to complete the setup. The IoT systemâs homepage automatically opens in a web browser with\nthe URL http://localhost:8069 . Tip If the web browser does not show anything, restart the\nWindows virtual IoT service.\nClick Next , Next , and Finish to complete the setup. The IoT systemâs homepage automatically opens in a web browser with\nthe URL http://localhost:8069 .\n`http://localhost:8069`\nIf the web browser does not show anything, restart the\nWindows virtual IoT service.\n- Check that you can access the IoT systemâs homepage in a web\nbrowser: on the Windows virtual IoT computer, and on another device on the same network as the IoT system by navigating to the URL http://xxx:8069 (where xxx is the IoT systemâs IP address). on another device on the same network as the IoT system by navigating to the URL https://xxx (where xxx is the IoT systemâs IP address) to test for HTTPS connection. Tip If you cannot access the IoT systemâs homepage from\nanother device, create a Windows Firewall rule to allow\ncommunication through port 8069 .\nCheck that you can access the IoT systemâs homepage in a web\nbrowser:\n- on the Windows virtual IoT computer, and\non the Windows virtual IoT computer, and\n- on another device on the same network as the IoT system by navigating to the URL http://xxx:8069 (where xxx is the IoT systemâs IP address).\non another device on the same network as the IoT system by navigating to the URL http://xxx:8069 (where xxx is the IoT systemâs IP address).\n`http://xxx:8069`\n`xxx`\n- on another device on the same network as the IoT system by navigating to the URL https://xxx (where xxx is the IoT systemâs IP address) to test for HTTPS connection. Tip If you cannot access the IoT systemâs homepage from\nanother device, create a Windows Firewall rule to allow\ncommunication through port 8069 .\non another device on the same network as the IoT system by navigating to the URL https://xxx (where xxx is the IoT systemâs IP address) to test for HTTPS connection.\n`https://xxx`\n`xxx`\nIf you cannot access the IoT systemâs homepage from\nanother device, create a Windows Firewall rule to allow\ncommunication through port 8069 .\n`8069`\n\n## Windows Firewall configuration\n\nFirewalls help keep devices secure but can sometimes block legitimate connections. If the Windows\nvirtual IoT isnât accessible on the LAN , for example from another\ndevice, it could be due to a firewall blocking the connection. To prevent this issue, configure\nexceptions for network discovery in the OS or firewall settings.\nIf third-party firewall software is installed on the Windows computer, refer to the softwareâs\ndocumentation to configure firewall exceptions.\nTo create a rule on Windows Defender and allow communication through port 8069 , follow these\nsteps:\n`8069`\n- Search the Windows start menu for firewall and select the Windows Defender Firewall\nwith Advanced Security app.\nSearch the Windows start menu for firewall and select the Windows Defender Firewall\nwith Advanced Security app.\n`firewall`\n- In the left part of the window, select Inbound Rules .\nIn the left part of the window, select Inbound Rules .\n- In the right part of the window, under Actions , click New Rule .\nIn the right part of the window, under Actions , click New Rule .\n- In the New Inbound Rule Wizard that opens, select the Port type of rule\nand click Next .\nIn the New Inbound Rule Wizard that opens, select the Port type of rule\nand click Next .\n- On the Protocols and Ports page, make sure TCP and Specified\nlocal ports are selected, enter the following in the field: 8069, 80, 443 , and click Next . Note Other ports may be necessary depending on your IoT devices. For example, for the Worldline payment terminal,\nadd the 9050 port.\nOn the Protocols and Ports page, make sure TCP and Specified\nlocal ports are selected, enter the following in the field: 8069, 80, 443 , and click Next .\n`8069,80,443`\nOther ports may be necessary depending on your IoT devices. For example, for the Worldline payment terminal,\nadd the 9050 port.\n`9050`\n- On the Action page, select Allow the connection and click Next .\nOn the Action page, select Allow the connection and click Next .\n- On the Profile page, disable any connection type(s) that donât apply to your\nWindows computer and click Next .\nOn the Profile page, disable any connection type(s) that donât apply to your\nWindows computer and click Next .\n- On the Name page, provide a Name (e.g., Odoo ) and, optionally, a brief Description , then click Finish .\nOn the Name page, provide a Name (e.g., Odoo ) and, optionally, a brief Description , then click Finish .\n`Odoo`\nWindows Firewall rules documentation\n\n## Windows virtual IoT homepage\n\nTo access the Windows virtual IoTâs homepage, navigate to the URL http://localhost:8069 on the\nWindows virtual IoT computer or open a web browser from another computer on the same network as\nthe IoT system and navigate to the URL http://xxx:8069 (where xxx is the IoT systemâs IP\naddress).\n`http://localhost:8069`\n`http://xxx:8069`\n`xxx`\nOnce the Windows virtual IoT is connected to the Odoo database , its homepage can\nbe accessed from Odoo by opening the IoT app and clicking the URL displayed on the IoT systemâs\ncard.\nMake sure the Windows Firewall is configured to allow access.\n\n## Device connection\n\nMost devices automatically connect to the Windows computer used for the Windows\nVirtual IoT through Windows Plug and Play (PnP) .\nHowever, if Windows does not recognize the device automatically upon connection, the administrator\nmay need to manually install the appropriate drivers.\nAfter connecting the devices to the computer, refresh the IoT systemâs homepage to verify that the device is listed. If the device does not appear, reload the handlers from the IoT systemâs homepage .\n\n## Windows virtual IoT restart\n\nTo manually restart the Windows IoT server, search the Windows start menu for services and\nselect the Services app. Scroll down to the odoo-server-xxx service (where xxx is the odoo version), right-click it, and select Start or Restart .\n`services`\n`xxx`\n\n## Windows virtual IoT uninstall\n\nTo uninstall the Windows virtual IoT, uninstall the Odoo program on your Windows computer. Confirm the uninstallation and complete the steps in the Odoo Uninstall dialog.", "headings": ["Prerequisites", "Installation", "Windows Firewall configuration", "Windows virtual IoT homepage", "Device connection", "Windows virtual IoT restart", "Windows virtual IoT uninstall"], "doc_id": "1d6cd2fa782174ce"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/users.html", "title": "Users", "module": "general", "section": "Users", "text": "# Users\n\nOdoo defines a user as someone who has access to a database. An administrator can add as many\nusers as the company needs and, in order to restrict the type of information each user can access,\nrules can be applied to each user. Users and access rights can be added and changed at any point.\n- Change languages\n- Access rights\n- Superuser mode\n- Create and modify groups\nCreate and modify groups\n\n## Add individual users\n\nTo add new users, navigate to Settings app ⣠Users section ⣠Manage Users , and\nclick on New .\nFill in the form with all the required information. Under the Access Rights tab, choose the group within each application the user can have access to.\nThe list of applications shown is based on the applications installed on the database.\nAfter filling out all the necessary fields on the page, (Save\nmanually) . An invitation email is automatically sent to the user, using the email in the Email Address field. The user must click on the link included in the email to accept the\ninvitation, and to create a database login.\nIf the company is on a monthly subscription plan, the database automatically updates to reflect\nthe added users. If the company is on a yearly or multi-year plan, an expiration banner appears\nin the database. An upsell quotation can be created by clicking the banner to update the\nsubscription. Alternatively, send a support ticket to resolve the\nissue.\n\n### User type\n\nUser Type can be chosen on the Manage Users page by clicking on the search\nbar, and then setting a filter for either Internal\nUser or Portal User .\nOdoo databases have three types of users: Internal User , Portal , and Public . Users are considered internal database users. Portal users are external\nusers , who only have access to the database portal to view records. Public users are those visiting\nwebsites, via the websiteâs frontend. See the documentation on Portal access .\nThe Portal user option does not allow the administrator to choose access rights.\nThese users have specific access rights pre-set (such as, record rules and restricted menus), and\nusually do not belong to the usual Odoo groups.\n\n## User devices\n\nFor security purposes, when a user logs into the database, the various login information, such as\nthe IP address, is stored in the userâs profile. It is best practice to check this periodically, to\nensure all access is from the user, and no one else has accessed the database.\nTo check the logged-in devices, click the user icon in the upper-right corner, and click My Profile . This opens the userâs profile in the Settings app. Click the Devices tab to view a Kanban list of all devices the user has logged into the database\nwith. Any device currently logged into the system displays a green circle next to the device name on\nthe Kanban card.\nClick on a card to view the details for the device. Each card displays the User name,\nthe Name of the device, the Last IP Address used as well as the Linked IP Address . It also shows the First Activity and Last\nActivity , which shows when the device first logged into the database, and the last time it was\nactive on the database.\nIf a device is legitimate and should be retained, click Save .\nIf the device is legitimate but should not be retained, and does not pose a security risk, click Delete .\n\n### Revoke devices\n\nIf a listed device is not a legitimate user device, and could be a potential security risk,\nremove the device and revoke access by clicking the Revoke button.\nA Security Control pop-up window loads, asking to Please confirm your identity by entering your password . Enter the userâs password, then click Confirm Password .\n`Pleaseconfirmyouridentitybyenteringyourpassword`\nThe device disappears from the Devices tab and can no longer be used to log into the\ndatabase.\n\n## Deactivate users\n\nTo deactivate (i.e. archive) a user, navigate to Settings app ⣠Users section â£\nManage Users . Then, tick the checkbox to the left of the users to be deactivated.\nAfter selecting the appropriate user to be archived, click the (Actions) icon, and select Archive from the resulting drop-down menu. Then, click OK from the Confirmation pop-up window that appears.\nNever deactivate the main/administrator user (admin). Making changes to admin users can have\na detrimental impact on the database. This includes impotent admin , which means that no user in\nthe database can make changes to the access rights. For this reason, Odoo recommends contacting\nan Odoo Business Analyst, or our Support Team, before making changes.\n\n### Error: too many users\n\nIf there are more users in an Odoo database than provisioned in the Odoo Enterprise subscription,\nthe following message is displayed.\nWhen the message appears, the database administrator has 30 days to act before the database expires.\nThe countdown is updated every day.\nTo resolve the issue, either:\n- Add more users to the subscription by clicking the Upgrade your subscription link\ndisplayed in the message to validate the upsell quotation, and pay for the extra users.\nAdd more users to the subscription by clicking the Upgrade your subscription link\ndisplayed in the message to validate the upsell quotation, and pay for the extra users.\n- Deactivate users , and reject the upsell quotation.\nDeactivate users , and reject the upsell quotation.\nIf the company is on a monthly subscription plan, the database automatically updates to reflect\nthe added users. If the company is on a yearly or multi-year plan, an expiration banner appears\nin the database. An upsell quotation can be created by clicking the banner to update the\nsubscription. Alternatively, users can send a support ticket to\nresolve the issue.\nOnce the database has the correct number of users, the expiration message disappears automatically\nafter a few days, when the next verification occurs.\n\n## Password management\n\nPassword management is an important part of granting users autonomous access to the database at all\ntimes. Odoo offers a few different methods to reset a userâs password.\nOdoo has a setting to specify the length needed for a password. This setting can be accessed by\nnavigating to Settings app ⣠Permissions section, and entering the desired\npassword length in the Minimum Password Length field. By default the value is 8 .\n`8`\n\n### Reset password\n\nSometimes, users might wish to reset their personal password for added security, so they are the\nonly ones with access to the password. Odoo offers two different reset options: one initiated by the\nuser to reset the password, and another where the administrator triggers a reset.\n\n#### Enable password reset from login page\n\nIt is possible to enable/disable password resets directly from the login page. This action is\ncompleted by the individual user, and this setting is enabled by default.\nTo change this setting, go to Settings app ⣠Permissions section, activate Password Reset , and then click Save .\nOn the login page, click Reset Password to initiate the password reset process, and have\na reset-token sent to the email on file.\n\n#### Send reset instructions\n\nGo to Settings app ⣠Users & Companies ⣠Users , select the user from the list,\nand click on Send Password Reset Instructions on the user form. An email is\nautomatically sent to them with password reset instructions.\nThe Send Password Reset Instructions button only appears if the Odoo invitation\nemail has already been confirmed by the user. Otherwise, a Re-send Invitation Email button appears.\nThis email contains all the instructions needed to reset the password, along with a link redirecting\nthe user to an Odoo login page.\n\n### Change user password\n\nGo to Settings app ⣠Users & Companies ⣠Users , and select a user to access its\nform. Click on the (Actions) icon, and select Change Password from the resulting drop-down menu. Enter a new password in the New Password column of\nthe Change Password pop-up window that appears, and confirm the change by clicking Change Password .\nThis operation only modifies the password of the users locally, and does not affect their\nOdoo account.\nIf the Odoo password needs to be changed, use the send the password reset . Odoo.com passwords grant access to the My Databases page, and\nother portal features.\nAfter clicking Change Password , the page is redirected to an Odoo login page where the\ndatabase can be re-accessed using the new password.\n\n## Multi Companies\n\nThe Multi Companies field on a user form allows an administrator to provide access to\nmultiple companies for users. To configure a multi-company environment for a user, navigate to the\ndesired user by going to: Settings app ⣠Users section ⣠Manage users . Then,\nselect the user to open their user form, and configure with multi-company access.\nUnder Multi Companies in the Access Rights tab, set the fields labeled Allowed Companies and Default Company .\nThe Allowed Companies field can contain multiple companies. These are the companies the\nuser can access and edit, according to the set access rights. The Default Company is the\ncompany the user defaults to, upon logging in each time. This field can contain only one company.\nIf multi-company access is not configured correctly, it could lead to inconsistent multi-company\nbehaviors. Because of this, only experienced Odoo users should make access rights changes to\nusers for databases with a multi-company configuration. For technical explanations, refer to the\ndeveloper documentation on Multi-company Guidelines .", "headings": ["Add individual users", "User type", "User devices", "Revoke devices", "Deactivate users", "Error: too many users", "Password management", "Reset password", "Change user password", "Multi Companies"], "doc_id": "19eccfd8611c63bf"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/users/2fa.html", "title": "Two-factor authentication", "module": "general", "section": "Two-factor authentication", "text": "# Two-factor authentication\n\nTwo-factor authentication (2FA) is a way to improve security, and prevent unauthorized persons\nfrom accessing user accounts.\nPractically, 2FA means storing a secret inside an authenticator , usually on a mobile phone, and\nexchanging a code from the authenticator when trying to log in.\nThis means an unauthorized user would need to guess the account password and have access to the\nauthenticator, which is a more difficult proposition.\nSome governments, such as the Australian government, require 2FA . For these fiscal localizations , it is not possible to deactivate 2FA .\n\n## Requirements\n\nThese lists are just examples. They are not endorsements of any specific software.\nPhone-based authenticators are the easiest and most commonly used. Examples include:\n- FreeOTP\n- Google Authenticator\n- LastPass Authenticator\nLastPass Authenticator\n- Microsoft Authenticator\nMicrosoft Authenticator\nPassword managers are another option. Common examples include:\n- 1Password\n- Bitwarden\nThe remainder of this document uses Google Authenticator as an example, as it is one of the most\ncommonly used. This is not an endorsement of the product.\n\n## Two-factor authentication setup\n\nAfter selecting an authenticator, log in to Odoo, then click the profile avatar in the upper-right\ncorner, and select My Profile from the resulting drop-down menu.\nClick the Account Security tab, then slide the Two-Factor Authentication toggle to active .\nThis generates a Security Control pop-up window that requires password confirmation to\ncontinue. Enter the appropriate password, then click Confirm Password . Next, a Two-Factor Authentication Activation pop-up window appears, with a QR code.\nUsing the desired authenticator application, scan the QR code when prompted.\nIf scanning the screen is not possible (e.g. the setup is being completed on the same device as\nthe authenticator application), clicking the provided Cannot scan it? link, or\ncopying the secret to manually set up the authenticator, is an alternative.\nAfterwards, the authenticator should display a verification code .\nEnter the code into the Verification Code field, then click Activate .\n\n## Logging in\n\nTo confirm 2FA setup is complete, log out of Odoo.\nOn the login page, input the username and password, then click Log in . On the Two-factor Authentication page, input the code provided by the chosen authenticator in\nthe Authentication Code field, then click Log in .\nIf a user loses access to their authenticator, an administrator must deactivate 2FA on the\naccount before the user can log in.\n\n## Enforce two-factor authentication\n\nTo enforce the use of 2FA for all users, first navigate to Main Odoo Dashboard â£\nApps . Remove the Apps filter from the Search⦠bar, then search for 2FA by mail .\n`2FAbymail`\nClick Install on the Kanban card for the 2FA by mail module.\nAfter installation is complete, go to Settings app: Permissions . Tick the checkbox\nlabeled, Enforce two-factor authentication . Then, use the radio buttons to choose\nwhether to apply this setting to Employees only , or All users .\nSelecting All users applies the setting to portal users, in addition to employees.\nClick Save to commit any unsaved changes.", "headings": ["Requirements", "Two-factor authentication setup", "Logging in", "Enforce two-factor authentication"], "doc_id": "32dd49bb33d084de"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/users/access_rights.html", "title": "Access rights", "module": "general", "section": "Access rights", "text": "# Access rights\n\nAccess rights are permissions that determine the content and applications users can access and\nedit. In Odoo, these permissions can be set for individual users or for groups of users. Limiting\npermissions to only those who need them ensures that users do not modify or delete anything they\nshould not have access to.\nOnly an administrator can change access rights.\nMaking changes to access rights can have a detrimental impact on the database. This includes impotent admin , which means that no user in the database can make changes to the access rights.\nFor this reason, Odoo recommends contacting an Odoo Business Analyst, or our Support Team, before\nmaking changes.\nA user must have the specific Administration access rights set on their user profile, in\norder to make changes on another userâs settings for access rights.\nTo access this setting, navigate to Settings app ⣠Manage users ⣠select a\nuser ⣠Access Rights tab ⣠Administration section ⣠Administration field .\nOnce at the setting, an already existing administrator must change the setting in the Administration field to Access Rights .\nOnce complete, click Save to save the changes, and implement the user as an\nadministrator.\n\n## Users\n\nThe access rights for individual users are set when the user is added\nto the database, but they can be adjusted at any point in the userâs profile.\nTo make changes to a userâs rights, click on the desired user to edit their profile.\nOn the userâs profile page, in the Access Rights tab, scroll down to view the current\npermissions.\nFor each app, use the drop-down menu to select what level of permission this user should have. The\noptions vary for each section, yet the most common are: Blank/None , User: Own\nDocuments , User: All Documents , or Administrator .\nThe Administration field in the Access Rights tab has the following options: Settings or Access Rights .\n\n## Create and modify groups\n\nGroups are app-specific sets of permissions that are used to manage common access rights for a\nlarge amount of users. Administrators can modify the existing groups in Odoo, or create new ones to\ndefine rules for models within an application.\nTo access groups, first activate Odooâs developer mode , then go to Settings app ⣠Users & Companies ⣠Groups .\nTo create a new group from the Groups page, click Create . Then, from the\nblank group form, select an Application , and complete the group form (detailed below).\nTo modify existing groups, click on an existing group from the list displayed on the Groups page, and edit the contents of the form.\nEnter a Name for the group and tick the checkbox next to Share Group , if\nthis group was created to set access rights for sharing data with some users.\nAlways test the settings being changed to ensure they are being applied to the correct users.\nThe group form contains multiple tabs for managing all elements of the group. In each tab, click Add a line to add a new row for users or rules, and click the (cancel) icon to remove a row.\n- Users tab: lists the current users in the group. Users listed in black have\nadministrative rights. Users without administrative access appear in blue. Click Add a\nline to add users to this group.\nUsers tab: lists the current users in the group. Users listed in black have\nadministrative rights. Users without administrative access appear in blue. Click Add a\nline to add users to this group.\n- Inherited tab: Inherited means that users added to this group are automatically added\nto the groups listed on this tab. Click Add a line to add inherited groups. Example For example, if the group Sales/Administrator lists the group Website/Restricted Editor in\nits Inherited tab, then any users added to the Sales/Administrator group\nautomatically receive access to the Website/Restricted Editor group, as well.\nInherited tab: Inherited means that users added to this group are automatically added\nto the groups listed on this tab. Click Add a line to add inherited groups.\nFor example, if the group Sales/Administrator lists the group Website/Restricted Editor in\nits Inherited tab, then any users added to the Sales/Administrator group\nautomatically receive access to the Website/Restricted Editor group, as well.\n- Menus tab: defines which models the group can have access to. Click Add a line to add a specific menu.\nMenus tab: defines which models the group can have access to. Click Add a line to add a specific menu.\n- Views tab: lists which views in Odoo the group has access to. Click Add a\nline to add a view to the group.\nViews tab: lists which views in Odoo the group has access to. Click Add a\nline to add a view to the group.\n- Access Rights tab: lists the first level of rights (models) that this group has. The Name column represents the name for the current groupâs access to the model\nselected in the Model column. To link a new access right to a group, click Add a line . Select the appropriate model\nfrom the Model drop-down, then enter a name for the access right in the Name column. For each model, enable the following options as appropriate: Read : Users can see the objectâs existing values. Write : Users can edit the objectâs existing values. Create : Users can create new values for the object. Delete : Users can delete values for the object. Tip While there are no conventions for naming access rights, it is advisable to choose a name that\nidentifies its purpose. For example, the access that purchase managers have to the Contact model could be\nnamed res.partner.purchase.manager . This consists of the technical name of the model,\nfollowed by a name identifying the group of users in question. To find the modelâs technical name from the current view, first enter a placeholder text\nin the Name field, then click the Model name, then the (Internal link) icon.\nAccess Rights tab: lists the first level of rights (models) that this group has. The Name column represents the name for the current groupâs access to the model\nselected in the Model column.\nTo link a new access right to a group, click Add a line . Select the appropriate model\nfrom the Model drop-down, then enter a name for the access right in the Name column. For each model, enable the following options as appropriate:\n- Read : Users can see the objectâs existing values.\nRead : Users can see the objectâs existing values.\n- Write : Users can edit the objectâs existing values.\nWrite : Users can edit the objectâs existing values.\n- Create : Users can create new values for the object.\nCreate : Users can create new values for the object.\n- Delete : Users can delete values for the object.\nDelete : Users can delete values for the object.\nWhile there are no conventions for naming access rights, it is advisable to choose a name that\nidentifies its purpose.\nFor example, the access that purchase managers have to the Contact model could be\nnamed res.partner.purchase.manager . This consists of the technical name of the model,\nfollowed by a name identifying the group of users in question.\n`res.partner.purchase.manager`\nTo find the modelâs technical name from the current view, first enter a placeholder text\nin the Name field, then click the Model name, then the (Internal link) icon.\n- Record Rules : lists the second layer of editing and visibility rights. Record Rules overwrite, or refine, the groupâs access rights. Click Add a\nline to add a record rule to this group. For each rule, choose values for the following options: Apply for Read . Apply for Write . Apply for Create . Apply for Delete . Important Record rules are written using a domain , or conditions that filter data. A domain expression\nis a list of such conditions. For example: [('mrp_production_ids', 'in', user.partner_id.commercial_partner_id.production_ids.ids)] This record rule is to enable MRP consumption warnings for subcontractors. Odoo has a library of preconfigured record rules for ease of use. Users without knowledge of\ndomains (and domain expressions) should consult an Odoo Business Analyst, or the Odoo Support\nTeam, before making changes.\nRecord Rules : lists the second layer of editing and visibility rights. Record Rules overwrite, or refine, the groupâs access rights. Click Add a\nline to add a record rule to this group. For each rule, choose values for the following options:\n- Apply for Read .\n- Apply for Write .\n- Apply for Create .\n- Apply for Delete .\nRecord rules are written using a domain , or conditions that filter data. A domain expression\nis a list of such conditions. For example:\n[('mrp_production_ids', 'in', user.partner_id.commercial_partner_id.production_ids.ids)]\n`[('mrp_production_ids','in',user.partner_id.commercial_partner_id.production_ids.ids)]`\nThis record rule is to enable MRP consumption warnings for subcontractors.\nOdoo has a library of preconfigured record rules for ease of use. Users without knowledge of\ndomains (and domain expressions) should consult an Odoo Business Analyst, or the Odoo Support\nTeam, before making changes.\n\n## Superuser mode\n\nSuperuser mode allows the user to bypass record rules and access rights. To activate Superuser\nmode , first, activate developer mode . Then, navigate to the debug menu,\nrepresented by a (debug) icon, located in the top banner.\nFinally, towards the bottom of the menu, click Become Superuser .\nOnly users with Settings access for the Administration section of the Access Rights (in\ntheir user profile) are allowed to log in to Superuser mode .\nSuperuser mode allows for circumvention of record rules and access rights, and therefore,\nshould be exercised with extreme caution.\nUpon exiting Superuser mode , users may be locked out of the database, due to changes that were\nmade. This can cause impotent admin , or an administrator without the ability to change access\nrights/settings.\nIn this case contact Odoo Support here: new help ticket . The\nsupport team is able to restore access using a support login.\nTo leave Superuser mode , log out of the account, by navigating to the upper-right corner, and\nclicking on the OdooBot username. Then, select the Log out option.\nAn alternative way to activate Superuser mode is to login as a superuser. To do that, navigate\nto the login screen, and enter the appropriate Email and Password .\nInstead of clicking Login , click Log in as superuser .", "headings": ["Users", "Create and modify groups", "Superuser mode"], "doc_id": "bb82078e6427f973"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/users/azure.html", "title": "Microsoft Azure sign-in authentication", "module": "general", "section": "Microsoft Azure sign-in authentication", "text": "# Microsoft Azure sign-in authentication\n\nThe Microsoft Azure OAuth sign-in authentication is a useful function that allows Odoo users to sign\nin to their database with their Microsoft Azure account.\nThis is particularly helpful if the organization uses Azure Workspace, and wants employees within\nthe organization to connect to Odoo using their Microsoft Accounts.\nDatabases hosted on Odoo.com should not use OAuth login for the owner or administrator of the\ndatabase as it would unlink the database from their Odoo.com account. If OAuth is set up for that\nuser, the database will no longer be able to be duplicated, renamed, or otherwise managed from\nthe Odoo.com portal.\n- Outlook Calendar synchronization\nOutlook Calendar synchronization\n- Connect Microsoft Outlook 365 to Odoo using Azure OAuth\nConnect Microsoft Outlook 365 to Odoo using Azure OAuth\n\n## Configuration\n\nIntegrating the Microsoft sign-in function requires configuration on Microsoft and Odoo.\n\n### Odoo System Parameter\n\nFirst activate the developer mode , and then go to Settings\n⣠Technical ⣠System Parameters .\nClick Create and on the new/blank form that appears, add the following system parameter auth_oauth.authorization_header to the Key field, and set the Value to 1 . Then click Save to finish.\n`auth_oauth.authorization_header`\n`1`\n\n### Microsoft Azure dashboard\n\n#### Create a new application\n\nNow that the system parameters in Odoo have been set up, itâs time to create a corresponding\napplication inside of Microsoft Azure. To get started creating the new application, go to Microsoftâs Azure Portal . Log in with the Microsoft\nOutlook Office 365 account if there is one, otherwise, log in with a personal Microsoft\naccount .\nA user with administrative access to the Azure Settings must connect and perform the following\nconfiguration steps below.\nNext, navigate to the section labeled Manage Microsoft Entra ID (formally Azure Active\nDirectory ). The location of this link is usually in the center of the page.\nNow, click on the Add (+) icon, located in the top menu, and then select App\nregistration from the drop-down menu. On the Register an application screen, rename the Name field to Odoo Login OAuth or a similarly recognizable title. Under the Supported account types section select the option for Accounts in this\norganizational directory only (Default Directory only - Single tenant) .\n`OdooLoginOAuth`\nThe Supported account types can vary by Microsoft account type and end use of the\nOAuth. For example: Is the login meant for internal users within one organization or is it meant\nfor customer portal access? The above configuration is used for internal users in an\norganization.\nChoose Personal Microsoft accounts only if the target audience is meant for portal\nusers. Choose Accounts in this organizational directory only (Default Directory only -\nSingle tenant) if the target audience is company users.\nUnder the Redirect URL section, select Web as the platform, and then input https://<odoo base url>/auth_oauth/signin in the URL field. The Odoo base URL is the canonical domain at which your Odoo instance can be reached (e.g. mydatabase.odoo.com if you are hosted on Odoo.com) in the URL field. Then, click Register , and the application is created.\n`https://<odoobaseurl>/auth_oauth/signin`\n\n#### Authentication\n\nEdit the new appâs authentication by clicking on the Authentication menu item in the\nleft menu after being redirected to the applicationâs settings from the previous step.\nNext, the type of tokens needed for the OAuth authentication will be chosen. These are not\ncurrency tokens but rather authentication tokens that are passed between Microsoft and Odoo.\nTherefore, there is no cost for these tokens; they are used merely for authentication purposes\nbetween two APIs . Select the tokens that should be\nissued by the authorization endpoint by scrolling down the screen and check the boxes labeled: Access tokens (used for implicit flows) and ID tokens (used for implicit and\nhybrid flows) .\nClick Save to ensure these settings are saved.\n\n#### Gather credentials\n\nWith the application created and authenticated in the Microsoft Azure console, credentials will be\ngathered next. To do so, click on the Overview menu item in the left-hand column. Select\nand copy the Application (client) ID in the window that appears. Paste this credential\nto a clipboard / notepad, as this credential will be used in the Odoo configuration later.\nAfter finishing this step, click on Endpoints on the top menu and click the copy icon next to OAuth 2.0 authorization endpoint (v2) field. Paste this value in the clipboard /\nnotepad.\n\n### Odoo setup\n\nFinally, the last step in the Microsoft Azure OAuth configuration is to configure some settings in\nOdoo. Navigate to Settings ⣠Integrations ⣠OAuth Authentication and check the\nbox to activate the OAuth login feature. Click Save to ensure the progress is saved.\nThen, sign in to the database once the login screen loads.\nOnce again, navigate to Settings ⣠Integrations ⣠OAuth Authentication and\nclick on OAuth Providers . Now, select New in the upper-left corner and name\nthe provider Azure .\n`Azure`\nPaste the Application (client) ID from the previous section into the Client\nID field. After completing this, paste the new OAuth 2.0 authorization endpoint (v2) value into the Authorization URL field.\nFor the UserInfo URL field, paste the following URL : https://graph.microsoft.com/oidc/userinfo\n`https://graph.microsoft.com/oidc/userinfo`\nIn the Scope field, paste the following value: openid profile email . Next, the Windows\nlogo can be used as the CSS class on the login screen by entering the following value: fa fa-fw fa-windows , in the CSS class field.\n`openidprofileemail`\n`fafa-fwfa-windows`\nCheck the box next to the Allowed field to enable the OAuth provider. Finally, add Microsoft Azure to the Login button label field. This text will appear next to the\nWindows logo on the login page.\n`MicrosoftAzure`\nSave the changes to complete the OAuth authentication setup in Odoo.\n\n### User experience flows\n\nFor a user to log in to Odoo using Microsoft Azure, the user must be on the Odoo\npassword reset page . This is the only way that Odoo is able to link the Microsoft Azure account and\nallow the user to log in.\nExisting users must reset their password to access the Odoo password reset page . New Odoo users must click the new user invitation link\nthat was sent via email, then click on Microsoft Azure . Users should not set a new\npassword.\nTo sign in to Odoo for the first time using the Microsoft Azure OAuth provider, navigate to the Odoo password reset page (using the new user invitation link). A password reset\npage should appear. Then, click on the option labeled Microsoft Azure . The page will\nredirect to the Microsoft login page.\nEnter the Microsoft Email Address and click Next . Follow the process to sign\nin to the account. Should 2FA be turned on, then an extra step\nmay be required.\nFinally, after logging in to the account, the page will redirect to a permissions page where the\nuser will be prompted to Accept the conditions that the Odoo application will access\ntheir Microsoft information.", "headings": ["Configuration", "Odoo System Parameter", "Microsoft Azure dashboard", "Odoo setup", "User experience flows"], "doc_id": "41bd5bea3e363ae3"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/users/facebook.html", "title": "Facebook sign-in authentication", "module": "general", "section": "Facebook sign-in authentication", "text": "# Facebook sign-in authentication\n\nThe Facebook OAuth sign-in function allows Odoo users to sign in to their database with their\nFacebook account.\nDatabases housed on Odoo.com should not use OAuth login for the owner or administrator of the\ndatabase, as it would unlink the database from their Odoo.com account. If OAuth is setup for\nthat user, the database can no longer be duplicated, renamed, or otherwise managed from the\nOdoo.com portal.\n\n## Meta for Developers setup\n\nGo to Meta for Developers and log in. Click My\nApps . On the Apps page, click Create App .\nOn the Use cases page, select Authenticate and request data from users with\nFacebook Login , then click Next .\nIn the Add an app name field, enter Odoo Login OAuth , or a similar title.\n`OdooLoginOAuth`\nThe App contact email automatically defaults to the email address associated with the\nMeta account. If this email address is not regularly monitored, it may be wise to use another\nemail address.\nClick Next . Review the Publishing requirements , the Meta\nPlatform Terms , and Developer Policies . Then, click Create app .\nClicking Create app may require password re-entry.\n\n### Customize app\n\nAfter the new app is created, the Dashboard page appears, with a list of steps to be\ncompleted before the app can be published. From here, click Customize adding a Facebook\nLogin button .\nOn the Customize page, click Settings .\nIn the Valid OAuth Redirect URIs field, enter https://<odoo base url>/auth_oauth/signin , replacing <odoo base url> with the URL of the applicable database.\n`https://<odoobaseurl>/auth_oauth/signin`\n`<odoobaseurl>`\nIf a database has the URL https://example.odoo.com , the URL https://example.odoo.com/auth_oauth/signin would be entered in the Valid OAuth\nRedirect URIs field.\n`https://example.odoo.com`\n`https://example.odoo.com/auth_oauth/signin`\nClick Save changes when finished.\n\n### Configure settings\n\nAt the far left of the page, click App settings ⣠Basic . This page contains\nadditional settings that are required before the app can be submitted for approval.\nIn the Privacy Policy URL field, enter https://www.odoo.com/privacy .\n`https://www.odoo.com/privacy`\nhttps://www.odoo.com/privacy is the default privacy policy for databases hosted on Odoo.com.\nClick the App Icon field to open a file upload window. From here, select and upload an\napp icon.\nIn the User data deletion field, enter https://www.odoo.com/documentation/17.0/administration/odoo_accounts.html .\n`https://www.odoo.com/documentation/17.0/administration/odoo_accounts.html`\nThis document provides instructions on how a user can delete their Odoo account.\nLastly, click the Category field, and select Business and pages from the\ndrop-down menu.\n\n### Capture app ID\n\nAfter the app is created, and approved, select and copy the App ID . Paste this\ninformation on a clipboard or notepad file, as it is needed in a later step to complete the setup.\n\n### Publish\n\nOn the left side of the page, click Publish . Depending on the status of the connected\nFacebook account, additional verification and testing steps may be required, and are listed on this\npage.\nAfter reviewing the information, click Publish .\nAdditional information regarding Meta App Development, including further details on building,\ntesting, and use cases, can be found in the Meta for developers documentation .\n\n## Odoo setup\n\nFirst, activate Developer mode .\nNavigate to the Settings app , and scroll down to the Integrations section. There, tick the checkbox labeled, OAuth Authentication . Click Save .\nThen, sign in to the database once the login screen loads.\nAfter successfully logging in, navigate to Settings app ⣠Users & Companies â£\nOAuth Providers . Click Facebook Graph .\nIn the Client ID field, enter the App ID from the previous\nsection, then tick the Allowed checkbox.", "headings": ["Meta for Developers setup", "Customize app", "Configure settings", "Capture app ID", "Publish", "Odoo setup"], "doc_id": "0139aa08760a0307"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/users/google.html", "title": "Google Sign-In Authentication", "module": "general", "section": "Google Sign-In Authentication", "text": "# Google Sign-In Authentication\n\nThe Google Sign-In Authentication is a useful function that allows Odoo users to sign in to their\ndatabase with their Google account.\nThis is particularly helpful if the organization uses Google Workspace, and wants employees within\nthe organization to connect to Odoo using their Google Accounts.\nDatabases hosted on Odoo.com should not use Oauth login for the owner or administrator of the\ndatabase as it would unlink the database from their Odoo.com account. If Oauth is set up for that\nuser, the database will no longer be able to be duplicated, renamed or otherwise managed from\nthe Odoo.com portal.\n- Google Calendar synchronization\nGoogle Calendar synchronization\n- Connect Gmail to Odoo using Google OAuth\nConnect Gmail to Odoo using Google OAuth\n\n## Configuration\n\nThe integration of the Google sign-in function requires configuration both on Google and Odoo.\n\n### Google API Dashboard\n\n- Go to the Google API Dashboard .\nGo to the Google API Dashboard .\n- Make sure the right project is opened. If there isnât a project yet, click on Create\nProject , fill out the project name and other details of the company, and click on Create . Tip Choose the name of the company from the drop-down menu.\nMake sure the right project is opened. If there isnât a project yet, click on Create\nProject , fill out the project name and other details of the company, and click on Create .\nChoose the name of the company from the drop-down menu.\n\n#### OAuth consent screen\n\n- On the left side menu, click on OAuth consent screen .\nOn the left side menu, click on OAuth consent screen .\n- Choose one of the options ( Internal / External ), and click on Create . Warning Personal Gmail Accounts are only allowed to be External User Type, which means Google\nmay require an approval, or for Scopes to be added on. However, using a Google WorkSpace account allows for Internal User Type to be used. Note, as well, that while the API connection is in the External testing mode, then no\napproval is necessary from Google. User limits in this testing mode is set to 100 users.\nChoose one of the options ( Internal / External ), and click on Create .\nPersonal Gmail Accounts are only allowed to be External User Type, which means Google\nmay require an approval, or for Scopes to be added on. However, using a Google WorkSpace account allows for Internal User Type to be used.\nNote, as well, that while the API connection is in the External testing mode, then no\napproval is necessary from Google. User limits in this testing mode is set to 100 users.\n- Fill out the required details and domain info, then click on Save and Continue .\nFill out the required details and domain info, then click on Save and Continue .\n- On the Scopes page, leave all fields as is, and click on Save and\nContinue .\nOn the Scopes page, leave all fields as is, and click on Save and\nContinue .\n- Next, if continuing in testing mode ( External ), add the email addresses being configured under\nthe Test users step by clicking on Add Users , and then the Save and Continue button. A summary of the app registration appears.\nNext, if continuing in testing mode ( External ), add the email addresses being configured under\nthe Test users step by clicking on Add Users , and then the Save and Continue button. A summary of the app registration appears.\n- Finally, scroll to the bottom, and click on Back to Dashboard .\nFinally, scroll to the bottom, and click on Back to Dashboard .\n\n#### Credentials\n\n- On the left side menu, click on Credentials .\nOn the left side menu, click on Credentials .\n- Click on Create Credentials , and select OAuth client ID .\nClick on Create Credentials , and select OAuth client ID .\n- Select Web Application as the Application Type . Now, configure the\nallowed pages on which Odoo will be redirected. In order to achieve this, in the Authorized redirect URIs field, enter the databaseâs\ndomain immediately followed by /auth_oauth/signin . For example: https://mydomain.odoo.com/auth_oauth/signin , then click on Create .\nSelect Web Application as the Application Type . Now, configure the\nallowed pages on which Odoo will be redirected.\nIn order to achieve this, in the Authorized redirect URIs field, enter the databaseâs\ndomain immediately followed by /auth_oauth/signin . For example: https://mydomain.odoo.com/auth_oauth/signin , then click on Create .\n`/auth_oauth/signin`\n`https://mydomain.odoo.com/auth_oauth/signin`\n- Now that the OAuth client has been created, a screen will appear with the Client ID and Client Secret . Copy the Client ID for later, as it will be necessary\nfor the configuration in Odoo, which will be covered in the following steps.\nNow that the OAuth client has been created, a screen will appear with the Client ID and Client Secret . Copy the Client ID for later, as it will be necessary\nfor the configuration in Odoo, which will be covered in the following steps.\n\n### Google Authentication on Odoo\n\n#### Retrieve the Client ID\n\nOnce the previous steps are complete, two keys are generated on the Google API Dashboard: Client ID and Client Secret . Copy the Client ID .\n\n#### Odoo activation\n\n- Go to Odoo General Settings ⣠Integrations and activate OAuth\nAuthentication . Note Odoo may prompt the user to log-in again after this step.\nGo to Odoo General Settings ⣠Integrations and activate OAuth\nAuthentication .\nOdoo may prompt the user to log-in again after this step.\n- Go back to General Settings ⣠Integrations ⣠OAuth Authentication , activate\nthe selection and Save . Next, return to General Settings â£\nIntegrations ⣠Google Authentication and activate the selection. Then fill out the Client ID with the key from the Google API Dashboard, and Save . Note Google OAuth2 configuration can also be accessed by clicking on OAuth Providers under the OAuth Authentication heading in Integrations .\nGo back to General Settings ⣠Integrations ⣠OAuth Authentication , activate\nthe selection and Save . Next, return to General Settings â£\nIntegrations ⣠Google Authentication and activate the selection. Then fill out the Client ID with the key from the Google API Dashboard, and Save .\nGoogle OAuth2 configuration can also be accessed by clicking on OAuth Providers under the OAuth Authentication heading in Integrations .\n\n## Log in to Odoo with Google\n\nTo link the Google account to the Odoo profile, click on Log in with Google when first\nlogging into Odoo.\nExisting users must reset their password to access the Reset Password page, while new users can directly click on Log in with\nGoogle , instead of choosing a new password.\n- Google Cloud Platform Console Help - Setting up OAuth 2.0\nGoogle Cloud Platform Console Help - Setting up OAuth 2.0", "headings": ["Configuration", "Google API Dashboard", "Google Authentication on Odoo", "Log in to Odoo with Google"], "doc_id": "57af8c170217dfb6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/users/language.html", "title": "Change languages", "module": "general", "section": "Change languages", "text": "# Change languages\n\nYou select the language of your database upon its creation. However, you can add and install additional languages to allow users\nto manage the database in another language or to translate your website.\n\n## Add languages\n\nTo download additional languages:\n- either click the profile icon in the upper-right corner, select My profile , and\nclick the ( globe ) icon next to the Language field;\neither click the profile icon in the upper-right corner, select My profile , and\nclick the ( globe ) icon next to the Language field;\n- or go to the Settings app, and click Add Languages in the Languages section.\nor go to the Settings app, and click Add Languages in the Languages section.\nYou can then select the languages you want from the dropdown menu and click Add .\n\n## Change languages\n\nTo select their preferred language, users can click the profile icon in the upper-right corner, go\nto My profile , and select a Language in the dropdown list.\n\n### Change another userâs language\n\nTo change the database language for a user:\n- Go to the Settings app and click Manage Users in the Users section.\nGo to the Settings app and click Manage Users in the Users section.\n- Click on the user whose language you want to change.\nClick on the user whose language you want to change.\n- Go to the Preferences tab and select a previously installed language from the Language dropdown menu.\nGo to the Preferences tab and select a previously installed language from the Language dropdown menu.\nEmails and documents will be sent to the user in the selected language.", "headings": ["Add languages", "Change languages", "Change another userâs language"], "doc_id": "b9dfc9b9628d7201"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/users/ldap.html", "title": "LDAP authentication", "module": "general", "section": "LDAP authentication", "text": "# LDAP authentication\n\nTo configure LDAP authentication in Odoo:\n- Open the Settings app, scroll down to the Integrations section, and enable LDAP Authentication .\nOpen the Settings app, scroll down to the Integrations section, and enable LDAP Authentication .\n- Click Save , then go back to the Integrations section and click LDAP Server .\nClick Save , then go back to the Integrations section and click LDAP Server .\n- In the Set up your LDAP Server list, click New , then select the required\ncompany in the dropdown list.\nIn the Set up your LDAP Server list, click New , then select the required\ncompany in the dropdown list.\n- In the Server information section, enter the serverâs IP address and port in the LDAP server address and LDAP Server port fields, respectively.\nIn the Server information section, enter the serverâs IP address and port in the LDAP server address and LDAP Server port fields, respectively.\n- Enable Use TLS to request secure TLS/SSL encryption when connecting to the LDAP\nserver, providing the server has StartTLS enabled.\nEnable Use TLS to request secure TLS/SSL encryption when connecting to the LDAP\nserver, providing the server has StartTLS enabled.\n- In the Login information section, enter the ID and password of the account used to\nquery the server in the LDAP binddn and LDAP password fields,\nrespectively. If the fields are left empty, the server will perform the query anonymously.\nIn the Login information section, enter the ID and password of the account used to\nquery the server in the LDAP binddn and LDAP password fields,\nrespectively. If the fields are left empty, the server will perform the query anonymously.\n- In the Process parameter section, enter: the LDAP serverâs name in the LDAP base field using LDAP format\n(e.g., dc=example,dc=com ); uid=%s in the LDAP filter field.\nIn the Process parameter section, enter:\n- the LDAP serverâs name in the LDAP base field using LDAP format\n(e.g., dc=example,dc=com );\nthe LDAP serverâs name in the LDAP base field using LDAP format\n(e.g., dc=example,dc=com );\n`dc=example,dc=com`\n- uid=%s in the LDAP filter field.\nuid=%s in the LDAP filter field.\n`uid=%s`\n- In the User information section: Enable Create user to create a user profile in Odoo the first time someone logs in\nusing LDAP; Select the User template to be used to create the new user profiles. If no template\nis selected, the administratorâs profile is used.\nIn the User information section:\n- Enable Create user to create a user profile in Odoo the first time someone logs in\nusing LDAP;\nEnable Create user to create a user profile in Odoo the first time someone logs in\nusing LDAP;\n- Select the User template to be used to create the new user profiles. If no template\nis selected, the administratorâs profile is used.\nSelect the User template to be used to create the new user profiles. If no template\nis selected, the administratorâs profile is used.\nWhen using Microsoft Active Directory (AD) for LDAP authentication, if users experience login\nissues despite using valid credentials, create a new system parameter to disable referral chasing\nin the LDAP client:\n- Activate the developer mode.\nActivate the developer mode.\n- Go to Settings ⣠Technical ⣠System Parameters and click New .\nGo to Settings ⣠Technical ⣠System Parameters and click New .\n- Fill in the fields: Key : auth_ldap.disable_chase_ref Value : True\n- Key : auth_ldap.disable_chase_ref\nKey : auth_ldap.disable_chase_ref\n`auth_ldap.disable_chase_ref`\n- Value : True\n`True`", "headings": [], "doc_id": "73d6c6376d89fc31"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/general/users/portal.html", "title": "Portal access", "module": "general", "section": "Portal access", "text": "# Portal access\n\nPortal access is given to users who need the ability to view certain documents or information within\nan Odoo database.\nSome common use cases for providing portal access include allowing customers to read/view any or all\nof the following in Odoo:\n- leads/opportunities\n- quotations/sales orders\nquotations/sales orders\n- purchase orders\n- invoices & bills\n- projects\n- timesheets\n- tickets\n- signatures\n- subscriptions\nPortal users only have read/view access, and will not be able to edit any documents in the\ndatabase.\n\n## Provide portal access to customers\n\nFrom the main Odoo dashboard, select the Contacts application. If the contact is not yet\ncreated in the database, click on the Create button, enter the details of the contact,\nand then click Save . Otherwise, choose an existing contact, and then click on the Action drop-down menu located at the top-center of the interface.\nThen select Grant portal access . A pop-up window appears, listing three fields:\n- Contact : the recorded name of the contact in the Odoo database\nContact : the recorded name of the contact in the Odoo database\n- Email : the contactâs email address that they will use to log into the portal\nEmail : the contactâs email address that they will use to log into the portal\n- In Portal : whether or not the user has portal access\nIn Portal : whether or not the user has portal access\nTo grant portal access, first enter the contactâs Email they will use to log into the\nportal. Then, check the box under the In Portal column. Optionally, add text to the\ninvitation message the contact will receive. Then click Apply to finish.\nAn email will be sent to the specified email address, indicating that the contact is now a portal\nuser for that Odoo database.\nTo grant portal access to multiple users at once, navigate to a company contact, then click Action ⣠Grant portal access to view a list of all of the companyâs related\ncontacts. Check the box under the In Portal column for all the contacts that need\nportal access, then click Apply .\nAt any time, portal access can be revoked by navigating to the contact, clicking Action ⣠Grant portal access , and then unselecting the checkbox under the In Portal column and clicking Apply .\n\n## Change portal username\n\nThere may be times when a portal user wants to change their user login. This can be done by any user\nin the database with administrator access rights. The following process outlines the necessary steps\nto change the portal user login.\nSee the documentation on setting access rights .\nFirst, navigate to Settings app ⣠Users . Then, under Filters , select Portal Users , or select Add Custom Filter and set the following\nconfiguration Groups > contains > portal . After making this selection,\nsearch for (and open) the portal user that needs to be edited.\n`portal`\nNext, click Edit (if necessary), click into the Email Address field, and\nproceed to make any necessary changes to this field. The Email Address field is used to\nlog into the Odoo portal.\nChanging the Email Address (or login) only changes the username on the customerâs\nportal login.\nIn order to change the contact email, this change needs to take place on the contact template in\nthe Contacts app. Alternatively, the customer can change their email directly from the portal,\nbut the login cannot be changed. See change customer info .\n\n## Customer portal changes\n\nThere may be times when the customer would like to make changes to their contact information,\npassword/security, or payment information attached to the portal account. This can be performed by\nthe customer from their portal. The following process is how a customer can change their contact\ninformation.\n\n### Change customer info\n\nFirst enter the username and password (login) into the database login page to access the portal user\naccount. A portal dashboard will appear upon successfully logging in. Portal documents from the\nvarious installed Odoo applications will appear with the number count of each.\nPortal access documentation .\nNext, navigate to the upper-right corner of the portal, and click the Edit button, next\nto the Details section. Then, change the pertinent information, and click Confirm .\n\n### Change password\n\nFirst enter the username and password (login) into the database login page to access the portal user\naccount. A portal dashboard will appear upon successfully logging in.\nIf the customer would like to change their password for portal access, click on the Edit\nSecurity Settings link, below the Account Security section. Then, make the necessary\nchanges, by typing in the current Password , New Password , and verify the new\npassword. Lastly, click on Change Password to complete the password change.\nIf a customer would like to change the login, as documented above, contact the Odoo database\npoint-of-contact. See above documentation on changing the portal username .\nPasswords for portal users and Odoo.com users remain separate, even if the same email address is\nused.\n\n### Add two-factor authentication\n\nFirst enter the username and password (login) into the database login page to access the portal user\naccount. A portal dashboard will appear upon successfully logging in.\nIf the customer would like to turn on two-factor authentication (2FA) for portal access, click on\nthe Edit Security Settings link, below the Account Security section.\nClick on Enable two-factor authentication to turn on 2FA . Confirm the current portal password in the Password field. Then, click\non Confirm Password . Next, activate 2FA in a 2FA app (Google Authenticator, Authy, etc.), by scanning the QR code or entering a Verification Code .\nFinally, click Enable two-factor authentication to complete the setup.\n\n### Change payment info\n\nFirst enter the username and password (login) into the database login page to access the portal user\naccount. A portal dashboard will appear upon successfully logging in.\nIf the customer would like to manage payment options, navigate to the Manage payment\nmethods in the menu on the right. Then, add the new payment information, and select Add\nnew card .", "headings": ["Provide portal access to customers", "Change portal username", "Customer portal changes", "Change customer info", "Change password", "Add two-factor authentication", "Change payment info"], "doc_id": "95da45f624a29ab7"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/employees.html", "title": "Employees", "module": "employees", "section": "Employees", "text": "# Employees\n\nOdoo Employees centralizes personnel files , employment contracts , and departmental hierarchies in\none system. Properly configuring its settings ensures the dashboard shows each employeeâs real-time\nattendance and work locationâdata that drives payroll accuracy, capacity planning, and compliance\nreporting.\n\n#### New employees\n\nSet up new employee records.\n\n#### Departments\n\nCreate and manage the departments employees are a part of.\n\n#### Contracts\n\nManage and create employee contracts.\n\n#### Certifications\n\nCertify employees as subject matter experts with certifications.\n\n#### Badges\n\nGrant badges to employees for performance and achievements.\n\n#### Equipment\n\nManage and track employee equipment.\n\n#### Offboarding\n\nTake care of employee records when collaboration ends.\n\n#### Employee retention report\n\nGain insight to the retention rate for a company.\n\n## Settings\n\nTo view and configure the available settings, navigate to Employees app â£\nConfiguration ⣠Settings .\n\n### Employees\n\n- Presence Display : select how the employeeâs availability status is calculated. Based on attendances : marked available when checked into the Attendances app. Based on user status in system : marked available when the employee logs in to\nOdoo .\nPresence Display : select how the employeeâs availability status is calculated.\n- Based on attendances : marked available when checked into the Attendances app.\nBased on attendances : marked available when checked into the Attendances app.\n- Based on user status in system : marked available when the employee logs in to\nOdoo .\nBased on user status in system : marked available when the employee logs in to\nOdoo .\n- Advanced Presence Control : when enabled, presence status can be calculated from\noperational signals rather than check-ins or logins: Based on number of emails sent : an employee is marked present if they send at least\n# emails per hour; otherwise, they are marked absent. Enter the minimum number of emails that\nmust be sent in the Sent Emails field. Based on IP Address : an employee is marked present only when connected from one of\nthe specified corporate IP addresses. Enter the IP addresses in the IP Addresses field, separating each address with a comma.\nAdvanced Presence Control : when enabled, presence status can be calculated from\noperational signals rather than check-ins or logins:\n- Based on number of emails sent : an employee is marked present if they send at least\n# emails per hour; otherwise, they are marked absent. Enter the minimum number of emails that\nmust be sent in the Sent Emails field.\nBased on number of emails sent : an employee is marked present if they send at least\n# emails per hour; otherwise, they are marked absent. Enter the minimum number of emails that\nmust be sent in the Sent Emails field.\n- Based on IP Address : an employee is marked present only when connected from one of\nthe specified corporate IP addresses. Enter the IP addresses in the IP Addresses field, separating each address with a comma.\nBased on IP Address : an employee is marked present only when connected from one of\nthe specified corporate IP addresses. Enter the IP addresses in the IP Addresses field, separating each address with a comma.\n- Skills Management : enable this option to display the resumé tab on employee profiles. This allows for the display of work experience , skills , and certifications .\nSkills Management : enable this option to display the resumé tab on employee profiles. This allows for the display of work experience , skills , and certifications .\n- Remote Work : enable this option to allow for a detailed schedule to appear on the\nemployee form, in the Work Information tab. When enabled, the\nspecific location can be set for each working day for the employee. The corresponding icon is\ndisplayed in the upper-right corner of the employee card, indicating their location by icon, and\nstatus by color. Example A green (home) icon indicates the employee is working from home\nthat day. A (building) icon means the employee is scheduled to\nwork at the office. The color of the icon indicates the employeeâs status, with green indicating present, yellow\nindicating absent, and gray indicating it is outside of the employeeâs working hours.\nRemote Work : enable this option to allow for a detailed schedule to appear on the\nemployee form, in the Work Information tab. When enabled, the\nspecific location can be set for each working day for the employee. The corresponding icon is\ndisplayed in the upper-right corner of the employee card, indicating their location by icon, and\nstatus by color.\nA green (home) icon indicates the employee is working from home\nthat day. A (building) icon means the employee is scheduled to\nwork at the office.\nThe color of the icon indicates the employeeâs status, with green indicating present, yellow\nindicating absent, and gray indicating it is outside of the employeeâs working hours.\n\n### Work organization\n\nUsing the drop-down menu, select the default Company Working Hours . The default options\nare Standard 40 hours/week , Appointment Resource Default Calendar , and Standard 32 hours/week (4 work days, Friday free) .\nThe available working hours listed are the same as the configured working schedules in the Payroll app. Working hours can be created and modified from\nboth the Payroll and Employees apps.\n\n### Employee update rights\n\nEnable the Employee Editing option to allow employees to edit their own data on their\nemployee record.", "headings": ["Settings", "Employees", "Work organization", "Employee update rights"], "doc_id": "9068946c1f325ed0"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/employees/badges.html", "title": "Badges", "module": "employees", "section": "Badges", "text": "# Badges\n\nIn Odoo, employees can earn badges, either automatically through challenges created in the CRM\napp , through eLearning courses, or manually, as\nmanagers decide to award them.\nBadges are a way to gamify the work day, can be created for any reason, and can be granted to any\nuser.\nBadges can only be awarded to users of the database , and if\nthe eLearning app is installed.\n\n## View available badges\n\nTo view the available badges that are configured by default, navigate to Employees\napp ⣠Configuration ⣠Badges .\nAll badges appear in a default Kanban view, with the badgeâs Name and image displayed.\nAdditionally, the number of users awarded the badge for both the current month, and in total,\nappears, along with the badge description, and the avatar for each user who received the badge.\nEach badge has a Grant button to award the badge from the Badges dashboard.\n\n## Create badges\n\nBadges can be created in the database when the default badges are not sufficient. This can be done\nfrom the Badges dashboard in the Employees app, or from the CRM app.\nTo add a badge in the Employees app, first navigate to Employees app â£\nConfiguration ⣠Badges , then click the New button in the upper-left corner.\nFill out the badge form as outlined in the CRM documentation .\n\n## View employee badges\n\nTo view badges awarded to an employee, open the Employees app, and click on an employee record.\nClick on the Received Badges tab to view any awarded badges.\nIf this tab is not visible, it means there is no Related User in the Settings tab. Once a user is populated in the Related User field, the Badges tab appears.\n\n## Grant badges\n\nTo grant a badge to an employee, open the employee record, and click into the Received\nBadges tab. Click the Grant a Badge button to load a Reward Employee pop-up\nwindow.\nUsing the drop-down menu, select the badge being awarded in the What are you thankful\nfor? field. The default options are Good Job , Problem Solver , and Brilliant .\nAdditional options appear (e.g., Get Started , Power user , community Hero ) which are associated with challenges. These are automatically granted\nthrough completed challenges. While these can be awarded at any time, it is advised to grant\nbadges manually that are not associated with a challenge.\nNext, enter a brief summary of why the badge is being granted in the field displaying Describe what they did and why it matters (will be public) field. Last, click the Reward Employee button, and the badge is awarded, and is visible in the Badges tab.\nUsers cannot grant themselves badges. An error message appears if attempted.", "headings": ["View available badges", "Create badges", "View employee badges", "Grant badges"], "doc_id": "3c284bcee79be0c2"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/employees/certifications.html", "title": "Certifications", "module": "employees", "section": "Certifications", "text": "# Certifications\n\nWhen jobs require specific knowledge, it is necessary to track employee certifications to ensure the\nnecessary knowledge and certifications are in place.\nWhen jobs require specific knowledge, track employee certifications (e.g., classes, tests, seminars)\nto verify required skills. Odoo accepts any certification type without restriction.\nTo add certifications to an employee profile, and to access the Employee Certifications report,\nthe Surveys app must be installed.\n\n## View certifications\n\nTo view a full list of all employee certifications, navigate to Employees app â£\nReporting ⣠Certifications .\nAll certifications appear in a list view, grouped by employee. Each certification entry displays the\nfollowing:\n- Employee : the employeeâs name, along with their avatar image.\nEmployee : the employeeâs name, along with their avatar image.\n- Name : the title of the certification.\nName : the title of the certification.\n- Validity Start : when the employee received the certification.\nValidity Start : when the employee received the certification.\n- Validity End : when the certification expires.\nValidity End : when the certification expires.\n- Certification : the corresponding course in the Surveys app that was completed by\nthe employee, if applicable.\nCertification : the corresponding course in the Surveys app that was completed by\nthe employee, if applicable.\nThe entries are also color-coded. Current certifications that are still valid appear in black,\nexpired certifications appear in red, and certifications that are going to expire within the next 90\ndays appear in orange.\nOnly certification records with the Display Type set to Certification on their certification form appear on the Employee\nCertifications report. All other certifications appear in the resume section of the employee form .\n\n### View certifications by expiration status\n\nWhen managing a large number of employees with a variety of certifications, it can be difficult to\ndetermine which employees need to keep necessary certifications current in the default list view. In\nthis scenario, it is beneficial to view the certifications by expiration status.\nTo do so, navigate to Employees app ⣠Reporting ⣠Certifications . Next, click\nthe (Toggle Search Panel) icon in the search bar, then click Add Custom Group , revealing a drop-down menu. Click Expiration Status , then click away from the drop-down menu to close it.\nAfter doing so, all the certifications are organized by status, starting with Expired certifications, then certifications that are Expiring soon (within the next 90 days),\nand lastly, certifications that are still Valid .\nFilter certifications by expiration status to identify certifications expiring soon, and identify\nemployees who must renew.\n\n## Log a certification\n\nTo log a certification for an employee, navigate to Employees app ⣠Learning â£\nCertifications . Click New , and a blank certification form loads. Enter the following\ninformation on the form:\n- Title : Enter a short description for the certification in this field.\nTitle : Enter a short description for the certification in this field.\n- Employee : Using the drop-down menu, select the employee who received the\ncertification.\nEmployee : Using the drop-down menu, select the employee who received the\ncertification.\n- Type : Using the drop-down menu, select the type of certification received. This field\ndetermines where on the employeeâs resume the certification appears. To create a new Type , enter the type in the field, then click Create [type] . The default options are: Experience : Select this option to have the certification appear in the Experience section of the Resume tab on the employee form . Experience entries are\ntypically previous jobs or internships. Education : Select this option to have the certification appear in the Education section of the Resume tab on the employee form . Social Media : Select this option to have the certification appear in the Social\nMedia section of the Resume tab on the employee form . Social Media\nentries typically relate to certifications relating to digital marketing, social media\nmanagement, and specific trainings from social media platforms. Internal Certification : Select this option to have the certification appear in the Internal Certification section of the Resume tab on the employee form .\nInternal certifications entries are tied to courses, training, or programs created by the\ncompany, that once completed, have a certification associated with it. Completed Internal Training : Select this option to have the certification appear in\nthe Completed Internal Training section of the Resume tab on the employee form . Completed internal training entries are typically associated with trainings\ncreated by the company, for company-specific processes. These do not result in any\ncertifications, but are logged on the employee profile to indicate completed training.\nType : Using the drop-down menu, select the type of certification received. This field\ndetermines where on the employeeâs resume the certification appears. To create a new Type , enter the type in the field, then click Create [type] .\nThe default options are:\n- Experience : Select this option to have the certification appear in the Experience section of the Resume tab on the employee form . Experience entries are\ntypically previous jobs or internships.\nExperience : Select this option to have the certification appear in the Experience section of the Resume tab on the employee form . Experience entries are\ntypically previous jobs or internships.\n- Education : Select this option to have the certification appear in the Education section of the Resume tab on the employee form .\nEducation : Select this option to have the certification appear in the Education section of the Resume tab on the employee form .\n- Social Media : Select this option to have the certification appear in the Social\nMedia section of the Resume tab on the employee form . Social Media\nentries typically relate to certifications relating to digital marketing, social media\nmanagement, and specific trainings from social media platforms.\nSocial Media : Select this option to have the certification appear in the Social\nMedia section of the Resume tab on the employee form . Social Media\nentries typically relate to certifications relating to digital marketing, social media\nmanagement, and specific trainings from social media platforms.\n- Internal Certification : Select this option to have the certification appear in the Internal Certification section of the Resume tab on the employee form .\nInternal certifications entries are tied to courses, training, or programs created by the\ncompany, that once completed, have a certification associated with it.\nInternal Certification : Select this option to have the certification appear in the Internal Certification section of the Resume tab on the employee form .\nInternal certifications entries are tied to courses, training, or programs created by the\ncompany, that once completed, have a certification associated with it.\n- Completed Internal Training : Select this option to have the certification appear in\nthe Completed Internal Training section of the Resume tab on the employee form . Completed internal training entries are typically associated with trainings\ncreated by the company, for company-specific processes. These do not result in any\ncertifications, but are logged on the employee profile to indicate completed training.\nCompleted Internal Training : Select this option to have the certification appear in\nthe Completed Internal Training section of the Resume tab on the employee form . Completed internal training entries are typically associated with trainings\ncreated by the company, for company-specific processes. These do not result in any\ncertifications, but are logged on the employee profile to indicate completed training.\n- Display Type : Select the visibility of the certification in this field. The default\noptions are: Classic : Select this option to have the certification appear in the Resume section\nof the employee form, and not appear on the Employee Certifications report. Certification : select this option to have the certification appear in the Resume section of the employee form, and appear on the Employee Certifications report. Once this\nis selected, a Certification field appears beneath the Display Type field. Using the drop-down menu, select the corresponding Surveys app certification the\nemployee took. This field only appears if the Surveys app is installed. Course : Select this option to have the certification appear in the Resume section\nof the employee form, and not appear on the Employee Certifications report. Once this\noption is selected, a Course field appears beneath the Display Type field. Using the drop-down menu, select the corresponding eLearning course the employee\ntook. This field only appears if the eLearning app is installed.\nDisplay Type : Select the visibility of the certification in this field. The default\noptions are:\n- Classic : Select this option to have the certification appear in the Resume section\nof the employee form, and not appear on the Employee Certifications report.\nClassic : Select this option to have the certification appear in the Resume section\nof the employee form, and not appear on the Employee Certifications report.\n- Certification : select this option to have the certification appear in the Resume section of the employee form, and appear on the Employee Certifications report. Once this\nis selected, a Certification field appears beneath the Display Type field. Using the drop-down menu, select the corresponding Surveys app certification the\nemployee took. This field only appears if the Surveys app is installed.\nCertification : select this option to have the certification appear in the Resume section of the employee form, and appear on the Employee Certifications report. Once this\nis selected, a Certification field appears beneath the Display Type field. Using the drop-down menu, select the corresponding Surveys app certification the\nemployee took. This field only appears if the Surveys app is installed.\n- Course : Select this option to have the certification appear in the Resume section\nof the employee form, and not appear on the Employee Certifications report. Once this\noption is selected, a Course field appears beneath the Display Type field. Using the drop-down menu, select the corresponding eLearning course the employee\ntook. This field only appears if the eLearning app is installed.\nCourse : Select this option to have the certification appear in the Resume section\nof the employee form, and not appear on the Employee Certifications report. Once this\noption is selected, a Course field appears beneath the Display Type field. Using the drop-down menu, select the corresponding eLearning course the employee\ntook. This field only appears if the eLearning app is installed.\n- Description : Enter a description for the certification in this field.\nDescription : Enter a description for the certification in this field.\n- Duration : Click into the first field, and a calendar pop-over window appears. Click on\nthe start and end dates for the certification validity period. When the correct dates are\nselected, click Apply , and both fields are populated.\nDuration : Click into the first field, and a calendar pop-over window appears. Click on\nthe start and end dates for the certification validity period. When the correct dates are\nselected, click Apply , and both fields are populated.\nOnce a certification is logged for an employee, a new certification of the same type (i.e. Education or Internal Certification ) can be added directly from the\nemployee form, instead of the Employee Certifications dashboard.\nIn the main Employees app dashboard, click on an employee profile to open their employee\nform. In the RESUME tab, click the ADD button at the end of the\ncorresponding certification line.\nThis ADD button only appears on employee profiles that already have a\ncertification.", "headings": ["View certifications", "View certifications by expiration status", "Log a certification"], "doc_id": "c85fa74174555866"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/employees/departments.html", "title": "Departments", "module": "employees", "section": "Departments", "text": "# Departments\n\nAll employees in the Employees app fall under specific departments within a company.\n\n## Create new departments\n\nTo make a new department, navigate to Employees app ⣠Departments , then click the New button in the top-left corner to reveal a blank department form. Fill out the\nfollowing information on the department form:\n- Department Name : enter a name for the department.\nDepartment Name : enter a name for the department.\n- Manager : using the drop-down menu, select the department manager.\nManager : using the drop-down menu, select the department manager.\n- Parent Department : if the new department is housed within another department (has a\nparent department), select the parent department using the drop-down menu.\nParent Department : if the new department is housed within another department (has a\nparent department), select the parent department using the drop-down menu.\n- Company : using the drop-down menu, select the company the department is part of. This\nfield only appears in a multi-company database.\nCompany : using the drop-down menu, select the company the department is part of. This\nfield only appears in a multi-company database.\n- Color : select a color for the department. Click the colored box to display all the\ncolor options. Click on a color to select it.\nColor : select a color for the department. Click the colored box to display all the\ncolor options. Click on a color to select it.\n- Appraisal Templates : using the drop-down menu, select the appraisal form to be used\nfor all employee appraisals within this department. If a new appraisal is desired, enter the name\nfor the appraisal, then click Create and edit⦠to modify the new appraisal form.\nThis field only appears if the Appraisals app is installed.\nAppraisal Templates : using the drop-down menu, select the appraisal form to be used\nfor all employee appraisals within this department. If a new appraisal is desired, enter the name\nfor the appraisal, then click Create and edit⦠to modify the new appraisal form.\nThis field only appears if the Appraisals app is installed.\n- Appraisal Survey : using the drop-down menu, select the default survey to use for the\ndepartment when requesting feedback from employees within the department. The default options are Employee Opinion Form , 360 Feedback , and Employee Appraisal Form .\nThis field only appears if the Appraisals app is installed, and the 360 Feedback option is enabled in the settings.\nAppraisal Survey : using the drop-down menu, select the default survey to use for the\ndepartment when requesting feedback from employees within the department. The default options are Employee Opinion Form , 360 Feedback , and Employee Appraisal Form .\nThis field only appears if the Appraisals app is installed, and the 360 Feedback option is enabled in the settings.\nAfter the form is completed, click the (cloud upload) icon to\nmanually save the changes. When saved, a DEPARTMENT ORGANIZATION chart appears in the\ntop-right of the department card, illustrating where the department lies in the organization.\nThe form auto-saves while data is entered, however the Department Organization chart\ndoes not appear until the form is manually saved. If the form is not saved, the Department Organization chart is visible upon opening the department card from the Departments dashboard.\n\n## Departments dashboard\n\nTo view the currently configured departments, navigate to Employees app â£\nDepartments . All departments appear in a Kanban view, and are listed in alphabetical order.\nThe default view for the Departments dashboard is a Kanban view . It is possible to view the departments in two other forms: a list view and a hierarchy view .\n\n### Kanban view\n\nEach department has its own Kanban card on the main Departments dashboard. Each\ndepartment card displays the following information, if available:\n- Name : the name of the department.\nName : the name of the department.\n- Manager : the name and image of the department manager.\nManager : the name and image of the department manager.\n- Company : the company the department is part of, including the location icon.\nCompany : the company the department is part of, including the location icon.\n- Employees : the number of employees within the department.\nEmployees : the number of employees within the department.\n- Appraisals : the number of appraisals scheduled for employees in the department.\nAppraisals : the number of appraisals scheduled for employees in the department.\n- Time Off Requests : the number of unapproved time off requests for employees in the\ndepartment awaiting approval . This only appears if there\nare requests to approve.\nTime Off Requests : the number of unapproved time off requests for employees in the\ndepartment awaiting approval . This only appears if there\nare requests to approve.\n- Allocation Requests : the number of unapproved allocation requests for employees in the\ndepartment awaiting approval . This only appears if there\nare requests to approve.\nAllocation Requests : the number of unapproved allocation requests for employees in the\ndepartment awaiting approval . This only appears if there\nare requests to approve.\n- New Applicants : the number of new applicants for a position\nwithin the department. This only appears if there are new applicants.\nNew Applicants : the number of new applicants for a position\nwithin the department. This only appears if there are new applicants.\n- Expense Reports : the number of employees in the department with open expense\nreports to approve . This only appears if there are\nany expense reports waiting for approval.\nExpense Reports : the number of employees in the department with open expense\nreports to approve . This only appears if there are\nany expense reports waiting for approval.\n- Absence : the number of employees with approved time off for the current day.\nAbsence : the number of employees with approved time off for the current day.\n- Color bar: the selected color for the department appears as a vertical bar on the left side of the\ndepartment card.\nColor bar: the selected color for the department appears as a vertical bar on the left side of the\ndepartment card.\nClick on an alert in a department card, such as Time Off Requests , to reveal a list\nview of the requests to approve for that department\n\n### List view\n\nTo view the departments in a list view, click the (list) icon\nin the top-right corner. The departments appear in a list view, which displays the Department Name , Company , Manager , Employees , Parent Department , and Color for each department.\nThe departments are sorted alphabetically by Department Name , by default.\n\n### Hierarchy view\n\nTo view the departments in a hierarchy view, click the (Hierarchy) icon in the top-right corner. The departments appear in an organizational\nchart format, with the highest-level department at the top (typically Executive Management ), and\nall other departments beneath it. All child departments of the first-level child departments are\nfolded.\n`ExecutiveManagement`\nEach department card displays the Department Name , the Manager (and their\nprofile image), the Number of Employees in the department, and the number of any child\ndepartments.\nClick the Unfold button on a department card to expand it. Once expanded, the Unfold button changes to a Fold button. To collapse the department, click\nthe Fold button. Only one department per row can be unfolded at a time.\nClick anywhere on a department card to open the department form. Click the (#) Employees smart button to view a list of all the employees in that department.", "headings": ["Create new departments", "Departments dashboard", "Kanban view", "List view", "Hierarchy view"], "doc_id": "a031d608bd63f710"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/employees/equipment.html", "title": "Equipment", "module": "employees", "section": "Equipment", "text": "# Equipment\n\nMany employees are given various items to use while they work, such as laptops, phones, and\nprinters. Most companies track their equipment, to see who is using what, as well as having a record\nof important information regarding the equipment, such as serial numbers, warranty information, and\nmaintenance history.\nTo track employee equipment, the Maintenance app must be installed.\n\n## Individual employee equipment\n\nEmployee equipment is tracked on the employee record. To view all equipment currently assigned to an\nemployee, navigate to the Employees app, and click on the desired employee record.\nAt the top of the record, an Equipment Count smart button appears, with\na number indicating how many, if any, items are currently assigned to that employee.\nClick the Equipment Count smart button, and all equipment currently\nassigned to the employee appears in individual Kanban cards.\nEach Kanban card displays the equipmentâs name and model on the first line, followed by the serial\nnumber (if available), and lastly, the employeeâs name. Any current maintenance requests appear at\nthe bottom of the card in a red box.\nA serial number is not required when logging equipment.\n\n## All employee equipment\n\nTo view all equipment for all employees, start on the equipment record of an individual\nemployee .\nIt does not matter what employee is selected, or whether they have any equipment assigned to\nthem. This step is only used to get to the Equipment list.\nIn the Kanban view of the employeeâs equipment, clear the default Assigned Employee filter in the search bar. This presents all equipment in the database, including those assigned to\nindividual employees and whole departments.\nClick into the search bar, and select Employee in the Group\nBy column. The equipment is now organized in a Kanban view, by employee.\nIn the Kanban view displaying all employee equipment records, equipment can be reassigned by\nclicking and dragging an equipment card to the desired employee. This changes ownership of the\nequipment.\n\n## Add equipment to an employee record\n\nTo add equipment to an employeeâs record, open the Employees app, click on the\ndesired employee record, then click the Equipment Count smart button at\nthe top.\nAll equipment currently assigned to the employee appears in individual Kanban cards. To add a new\nequipment record, click the New button in the upper-left corner, and a blank Equipment form loads.\nFill out the equipment form for the\nemployeeâs equipment.\nInstead of filling out a new Equipment form for the same item, a form can be\nduplicated, then updated.\nOn the Equipment form, click the (Actions) icon in the\nupper-left corner, then select Duplicate .\nAn identical form appears, with all the information filled out, except for the Serial Number .\nEnter the Serial Number on the form, and make any other necessary changes, such as\nthe assigned Employee .", "headings": ["Individual employee equipment", "All employee equipment", "Add equipment to an employee record"], "doc_id": "8f4dfb1695053cca"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/employees/new_employee.html", "title": "New employees", "module": "employees", "section": "New employees", "text": "# New employees\n\nWhen a new employee is hired, the first step is to create a new employee record. This record is a\ncentralized place where all important information about the employee is stored, including general information , job history and skills , various work information , personal\ndetails , payroll-related information , and\nvarious settings that affect integrations with other apps in the\ndatabase.\nTo begin, open the Employees app, then click the New button in the\nupper-left corner. Doing so reveals a blank employee form.\nProceed to fill out the required information, along with any additional details.\nThe current company phone number and name are populated in the Work Phone and Company fields. If the Appraisals application is installed, the Next\nAppraisal Date field is populated with a date six months from the current date.\n\n## General information\n\nFill out the following employee details.\nThe employee form automatically saves as data is entered. However, the form can be saved manually\nat any time by clicking the (Save manually) icon.\n- Employeeâs Name : enter the employeeâs name. This field is required.\nEmployeeâs Name : enter the employeeâs name. This field is required.\n- Job Position : this field appears below the employee name and can be filled in\nmanually. Alternatively, select a position from the drop-down menu in the Job Position field beneath the Department field to auto-populate the top field. The two fields do\nnot need to match. Example While it is recommended to have the job positions match, the typed-in description in this top\nfield can contain more specific information than the selected drop-down Job\nPosition , if desired. For instance, if someone is hired for a sales representative position configured as Sales Representative in the Recruitment app, that can be selected in the\ndrop-down Job Position field. In the typed-in Job Position field beneath the Employeeâs Name , the\nposition can be more specific, such as Sales Representative - Subscriptions if the employee\nis focused solely on subscription sales.\nJob Position : this field appears below the employee name and can be filled in\nmanually. Alternatively, select a position from the drop-down menu in the Job Position field beneath the Department field to auto-populate the top field. The two fields do\nnot need to match.\nWhile it is recommended to have the job positions match, the typed-in description in this top\nfield can contain more specific information than the selected drop-down Job\nPosition , if desired.\nFor instance, if someone is hired for a sales representative position configured as Sales Representative in the Recruitment app, that can be selected in the\ndrop-down Job Position field.\nIn the typed-in Job Position field beneath the Employeeâs Name , the\nposition can be more specific, such as Sales Representative - Subscriptions if the employee\nis focused solely on subscription sales.\n`SalesRepresentative-Subscriptions`\n- Photo : in the top-right image box of the employee form, click on the (Edit) icon, then select a photo to upload.\nPhoto : in the top-right image box of the employee form, click on the (Edit) icon, then select a photo to upload.\n- Work Contact Information : enter the employeeâs Work Email , Work Phone ,\nand Work Mobile , information, if not already auto-populated.\nWork Contact Information : enter the employeeâs Work Email , Work Phone ,\nand Work Mobile , information, if not already auto-populated.\n- Tags : select a tag from the drop-down menu to add relevant tags to the employee. Any\ntag can be created in this field by typing it in. Once created, the new tag is available for all\nemployee records. There is no limit to the amount of tags that can be added on an employee form.\nTags : select a tag from the drop-down menu to add relevant tags to the employee. Any\ntag can be created in this field by typing it in. Once created, the new tag is available for all\nemployee records. There is no limit to the amount of tags that can be added on an employee form.\n- Company : from the drop-down menu in this field, select the company the new employee\nwas hired by, or create a new company by typing the name in the field, and clicking Create or Create and edit⦠from the mini drop-down menu that appears.\nThis field is required.\nCompany : from the drop-down menu in this field, select the company the new employee\nwas hired by, or create a new company by typing the name in the field, and clicking Create or Create and edit⦠from the mini drop-down menu that appears.\nThis field is required.\n- Department : select the employeeâs department from the drop-down menu.\nDepartment : select the employeeâs department from the drop-down menu.\n- Job Position : select the employeeâs job position from the drop-down menu. If using the Recruitment app, this list reflects configured job positions. Once a selection is made, the Job Position field beneath the Employeeâs Name field automatically updates\nto reflect the currently selected job position, but is still editable.\nJob Position : select the employeeâs job position from the drop-down menu. If using the Recruitment app, this list reflects configured job positions. Once a selection is made, the Job Position field beneath the Employeeâs Name field automatically updates\nto reflect the currently selected job position, but is still editable.\n- Manager : select the employeeâs manager from the drop-down menu.\nManager : select the employeeâs manager from the drop-down menu.\n- Coach : select the employeeâs coach from the drop-down menu.\nCoach : select the employeeâs coach from the drop-down menu.\n- Next Appraisal Date : this field is only visible if the Appraisals application\nis installed. The date automatically populates with a date that is computed according to the\nsettings configured in the Appraisals application. This date can be modified using the\ncalendar selector.\nNext Appraisal Date : this field is only visible if the Appraisals application\nis installed. The date automatically populates with a date that is computed according to the\nsettings configured in the Appraisals application. This date can be modified using the\ncalendar selector.\nAfter a Department is selected, the departmentâs configured manager and coach\nautomatically populates the respective Manager and Coach fields.\nTo make edits to the selected Department , Manager , Coach , or Company , click the (Internal link) arrow next to\nthe respective selection. The (Internal link) arrow opens the\nselected form, allowing for modifications. Click Save after any edits are made.\n\n## Resumé tab\n\n### Resumé\n\nEnter the employeeâs work history in the Resumé tab. Each resumé line must be entered\nindividually. When creating an entry for the first time, click Create a new entry , and\nthe Create Resumé lines form appears. After an entry is added, the Create a\nnew entry button is replaced with an ADD button. Enter the following information for\neach entry.\n- Title : type in the title of the previous work experience.\nTitle : type in the title of the previous work experience.\n- Employee : select the employee from the drop-down menu.\nEmployee : select the employee from the drop-down menu.\n- Type : from the drop-down menu, select either Experience , Education , Social Media , or Internal Certification . To create\na new Type , enter the name of the type, then click Create â(Type)â .\nType : from the drop-down menu, select either Experience , Education , Social Media , or Internal Certification . To create\na new Type , enter the name of the type, then click Create â(Type)â .\n- Display Type : from the drop-down menu, choose Classic for typical work\nexperience, or Certification for experience gained through a certification.\nDisplay Type : from the drop-down menu, choose Classic for typical work\nexperience, or Certification for experience gained through a certification.\n- Duration : enter the start and end dates for the work experience. To select a date,\nclick the first empty field to reveal a calendar pop-up window. Proceed to use the (left arrow) and (right\narrow) icons to scroll to the desired month, then click on the day to select it. Repeat this\nprocess to locate and select the end date. When the desired dates have been selected, click Apply .\nDuration : enter the start and end dates for the work experience. To select a date,\nclick the first empty field to reveal a calendar pop-up window. Proceed to use the (left arrow) and (right\narrow) icons to scroll to the desired month, then click on the day to select it. Repeat this\nprocess to locate and select the end date. When the desired dates have been selected, click Apply .\n- Description : enter any relevant details in this field.\nDescription : enter any relevant details in this field.\nOnce all the information is entered, click the Save & Close button if there is only one\nentry to add, or click the Save & New button to save the current entry and create\nanother resumé line.\nAfter the new employee form is saved, the current position and company is automatically added to\nthe Resumé tab, with the end date listed as current .\n`current`\n\n### Skills\n\nAn employeeâs skills can be entered in the Resumé tab in the same manner that a resumé\nline is created.\nIn order to add a skill to an employee record, the skill types must first be configured. By default,\nOdoo comes with two Skill Types preconfigured: Languages and Soft Skills . Configure the rest of the skill types before adding any skills to the\nemployee record.\nWhen adding the first skill to an employee record, a Pick a skill from the list button\nappears in the Skills section of the Resumé tab. Click the Pick a\nskill from the list button, and select the following information for each skill.\n- Skill Type : select a skill type by clicking the radio\nbutton next to the skill type.\nSkill Type : select a skill type by clicking the radio\nbutton next to the skill type.\n- Skill : after selecting a Skill Type , the corresponding skills associated\nwith that selected Skill Type appear in a drop-down menu. For example, selecting Language as the Skill Type presents a variety of languages to select from\nunder the Skills field. Select the appropriate preconfigured skill from the list. Important If the desired skill does not appear in the list, it is not possible to add the new skill\nfrom this window. New skills must be added from the Skill Types dashboard.\nSkill : after selecting a Skill Type , the corresponding skills associated\nwith that selected Skill Type appear in a drop-down menu. For example, selecting Language as the Skill Type presents a variety of languages to select from\nunder the Skills field. Select the appropriate preconfigured skill from the list.\nIf the desired skill does not appear in the list, it is not possible to add the new skill\nfrom this window. New skills must be added from the Skill Types dashboard.\n- Skill Level : pre-defined skill levels associated with the selected Skill\nType appear in a drop-down menu. First, select a Skill Level , then the progress bar\nautomatically displays the pre-defined progress for that specific skill level. Skill levels can be\ncreated and modified from the Skill Types dashboard.\nSkill Level : pre-defined skill levels associated with the selected Skill\nType appear in a drop-down menu. First, select a Skill Level , then the progress bar\nautomatically displays the pre-defined progress for that specific skill level. Skill levels can be\ncreated and modified from the Skill Types dashboard.\nClick the Save & Close button if there is only one skill to add, or click the Save & New button to save the current entry and immediately add another skill.\nAt any point, a new line can be added by clicking the ADD button next to the\ncorresponding section.\nOnly users with Officer: Manage all employees or Administrator rights for\nthe Employees app can add or edit skills.\n\n#### Skill types\n\nIn order to add a skill to an employeeâs form, the Skill Types must be configured. Go to Employees app ⣠Configuration ⣠Skill Types to view the currently configured\nskill types and create new skill types.\nThe default skill of Languages is preconfigured with twenty-one skills, and the\ndefault Soft Skills is preconfigured with fifteen skills.\nClick the New button in the upper-left corner, and a new Skill Type form\nappears. Fill out the following details for the new skill type. Repeat this for all the needed skill\ntypes.\n- Skill Type : enter the name of the skill type. This acts as the parent category for\nmore specific skills and should be generic.\nSkill Type : enter the name of the skill type. This acts as the parent category for\nmore specific skills and should be generic.\n- SKILLS : click Add a line , and enter the Name for the new\nskill, then repeat for all other needed skills.\nSKILLS : click Add a line , and enter the Name for the new\nskill, then repeat for all other needed skills.\n- LEVELS : click Add a line , and enter a Name and Progress percentage ( 0 - 100 ) for each level. Set a Default Level by clicking the toggle on the desired line (only one level can be\nselected). The toggle turns green to indicate the default level. Typically, the lowest level is\nchosen, but any level can be selected.\nLEVELS : click Add a line , and enter a Name and Progress percentage ( 0 - 100 ) for each level.\n`0`\n`100`\nSet a Default Level by clicking the toggle on the desired line (only one level can be\nselected). The toggle turns green to indicate the default level. Typically, the lowest level is\nchosen, but any level can be selected.\n- DISPLAY : click the colored box next to the Color field to reveal a list of\navailable colors for the skill type. Click on a color to select it. Example To add a math skill set in yellow, enter Math in the Name field. Then, in the Skills field, enter Algebra , Calculus , and Trigonometry . Next, in the Levels field enter Beginner , Intermediate , and Expert , with the Progress listed as 25 , 50 , and 100 , respectively. Click Set\nDefault on the Beginner line to set this as the default skill level. Last, click the colored\nbox next to Color , and select yellow.\nDISPLAY : click the colored box next to the Color field to reveal a list of\navailable colors for the skill type. Click on a color to select it.\nTo add a math skill set in yellow, enter Math in the Name field. Then, in the Skills field, enter Algebra , Calculus , and Trigonometry . Next, in the Levels field enter Beginner , Intermediate , and Expert , with the Progress listed as 25 , 50 , and 100 , respectively. Click Set\nDefault on the Beginner line to set this as the default skill level. Last, click the colored\nbox next to Color , and select yellow.\n`Math`\n`Algebra`\n`Calculus`\n`Trigonometry`\n`Beginner`\n`Intermediate`\n`Expert`\n`25`\n`50`\n`100`\n`Beginner`\nOnce the form is completely filled out, click the (Save\nmanually) icon at the top of the screen, and the Levels rearrange in descending\norder, with the highest level at the top, and the lowest at the bottom, regardless of the default\nlevel and the order they were entered.\n\n## Work information tab\n\nThe Work Information tab contains job-related details such as the employeeâs schedule,\nroles, approvers (for time off, timesheets, and expenses), remote work setup, and work location.\nClick on the Work Information tab to access this section, and enter the following\ninformation for the new employee, for the various sections listed below.\n\n### LOCATION\n\nThis section is visible for all employees, and does not require any other apps to be installed for\nthis section to be visible.\n- Work Address : select the Work Address from the drop-down menu. The current\ncompany populates this field, by default. To modify the address, hover over the first line (if\nthere are multiple lines) of the address to reveal an (Internal\nLink) arrow. Click the (Internal Link) arrow to open up the\ncompany form, and make any edits. Use the breadcrumb links to navigate back to the new employee form when done. If a new work address is needed, add the address by typing it in the field, then click Create (new address) to add the address, or Create and edit⦠to add the\nnew address and edit the address form.\nWork Address : select the Work Address from the drop-down menu. The current\ncompany populates this field, by default. To modify the address, hover over the first line (if\nthere are multiple lines) of the address to reveal an (Internal\nLink) arrow. Click the (Internal Link) arrow to open up the\ncompany form, and make any edits.\nUse the breadcrumb links to navigate back to the new employee form when done.\nIf a new work address is needed, add the address by typing it in the field, then click Create (new address) to add the address, or Create and edit⦠to add the\nnew address and edit the address form.\n- Work Location : using the drop-down menu, select where the Work Address is\nlocated. The default options are Home , Office , or Other . To add a new location, type in the location name, then click Create (new location) to\nadd the location, or Create and edit⦠to add the location, assign a Work\nAddress , and a Cover Image .\nWork Location : using the drop-down menu, select where the Work Address is\nlocated. The default options are Home , Office , or Other .\nTo add a new location, type in the location name, then click Create (new location) to\nadd the location, or Create and edit⦠to add the location, assign a Work\nAddress , and a Cover Image .\n\n### APPROVERS\n\nTo see this section, the user must have either Administrator or Officer:\nManage all employees rights set for the Employees application. For the category to appear, the\nrespective app must be installed. For example, if the Time Off app is not installed, the Time Off approver field does not appear. Only one selection can be made for each field.\nThe users that appear in the drop-down menu for the Approvers section must have Administrator rights set for the corresponding human resources role.\nTo check who has these rights, go to Settings app and click Manage Users in the Users section. Then, click\non an employee, then click into the Access Rights tab. Scroll to the HUMAN RESOURCES and check the various settings.\n- In order for the user to appear as an approver for Expenses , they must have\neither Team Approver , All Approver , or Administrator set\nfor the Expenses role.\nIn order for the user to appear as an approver for Expenses , they must have\neither Team Approver , All Approver , or Administrator set\nfor the Expenses role.\n- In order for the user to appear as an approver for Time Off , they must have\neither Officer:Manage all Requests or Administrator set for the Time Off role.\nIn order for the user to appear as an approver for Time Off , they must have\neither Officer:Manage all Requests or Administrator set for the Time Off role.\n- In order for the user to appear as an approver for Timesheets , they must have either Officer:Manage all contracts or Administrator set for the Payroll role.\nIn order for the user to appear as an approver for Timesheets , they must have either Officer:Manage all contracts or Administrator set for the Payroll role.\n- In order for the user to appear as an approver for Attendances , they must have Administrator set for the Payroll role.\nIn order for the user to appear as an approver for Attendances , they must have Administrator set for the Payroll role.\n- Expense : using the drop-down menus, select the user responsible for approving all\nexpenses for the employee.\nExpense : using the drop-down menus, select the user responsible for approving all\nexpenses for the employee.\n- Time Off : using the drop-down menus, select the user responsible for approving all\ntime off requests from this employee.\nTime Off : using the drop-down menus, select the user responsible for approving all\ntime off requests from this employee.\n- Timesheet : using the drop-down menus, select the user responsible for approving all\nthe employeeâs timesheet entries.\nTimesheet : using the drop-down menus, select the user responsible for approving all\nthe employeeâs timesheet entries.\n- Attendance : using the drop-down menus, select the user responsible for approving all\nattendance entries for the employee.\nAttendance : using the drop-down menus, select the user responsible for approving all\nattendance entries for the employee.\n\n### REMOTE WORK\n\nThis section only appears if the Remote Work setting is enabled in the configuration menu.\nUse the drop-down menu to select the default location the employee works, for each day of the week.\nThe default options are Home , Office , or Other .\nA new location can be typed into the field, then click either Create (new location) to\nadd the location, or Create and edit⦠to add the new location and edit the form.\nAfter edits are done, click Save & Close , and the new location is added, and populates\nthe field.\nLeave the field blank ( Unspecified ) for non-working days, such as Saturday and Sunday.\nIt is also possible to add or modify work locations by navigating to Employees\napp ⣠Configuration ⣠Work Locations . To modify a location, click on an existing location,\nthen make any changes on the form.\nClick New to create a new location, then enter the following information on the form.\nAll fields are required .\n- Work Location : enter the name for the location. This can be as general or as\nspecific, as needed, such as Home or Building 1, Second Floor , respectfully.\nWork Location : enter the name for the location. This can be as general or as\nspecific, as needed, such as Home or Building 1, Second Floor , respectfully.\n`Home`\n`Building1,SecondFloor`\n- Work Address : using the drop-down menu, select the address for the location.\nWork Address : using the drop-down menu, select the address for the location.\n- Cover Image : click on the icon to select it for the Cover Image .\nOptions are a (home) icon, an (building) icon, and a (map marker) icon.\nCover Image : click on the icon to select it for the Cover Image .\nOptions are a (home) icon, an (building) icon, and a (map marker) icon.\n- Company : using the drop-down menu, select the company the location applies to. The\ncurrent company populates this field, by default. This field only appears in a\nmulti-company database.\nCompany : using the drop-down menu, select the company the location applies to. The\ncurrent company populates this field, by default. This field only appears in a\nmulti-company database.\n\n### SCHEDULE\n\nThis section defines when the employee is expected to work.\n- Working Hours : using the drop-down menu, select the hours the employee is expected to\nwork. By default, a Standard 40 hour/week working schedule is available. If the Timesheets app is installed, an Appointment Resource Default Calendar option is\nalso available. To view and modify the specific daily working hours, click the (Internal link) arrow at the end of the Working Hours line. Working hours\ncan be modified or deleted here. Note Working Hours are related to a companyâs working schedules, and an Employee cannot have working hours that are outside of a companyâs working schedule. Each individual working schedule is company-specific. For multi-company databases, each company must have its own working hours set. If an employeeâs working hours are not configured as a working schedule for the company, new\nworking schedules can be added, or existing working schedules can be modified. Working hours can be modified in the Payroll application, where they are referred to as Working Schedules . For more information on how to create or modify Working Schedules in the Payroll application, refer to the Payroll documentation. After the new working time is created, or an existing one is modified, the Working\nHours can be selected on the employee form.\nWorking Hours : using the drop-down menu, select the hours the employee is expected to\nwork. By default, a Standard 40 hour/week working schedule is available. If the Timesheets app is installed, an Appointment Resource Default Calendar option is\nalso available.\nTo view and modify the specific daily working hours, click the (Internal link) arrow at the end of the Working Hours line. Working hours\ncan be modified or deleted here.\nWorking Hours are related to a companyâs working schedules, and an Employee cannot have working hours that are outside of a companyâs working schedule.\nEach individual working schedule is company-specific. For multi-company databases, each company must have its own working hours set.\nIf an employeeâs working hours are not configured as a working schedule for the company, new\nworking schedules can be added, or existing working schedules can be modified.\nWorking hours can be modified in the Payroll application, where they are referred to as Working Schedules .\nFor more information on how to create or modify Working Schedules in the Payroll application, refer to the Payroll documentation.\nAfter the new working time is created, or an existing one is modified, the Working\nHours can be selected on the employee form.\n- Timezone : using the drop-down menu, select the timezone for the employee.\nTimezone : using the drop-down menu, select the timezone for the employee.\n\n### PLANNING\n\nThis section is only visible if the Planning app is installed, as this section affects what\nthe employee can be assigned in the Planning app.\n- Roles : using the drop-down menu, select all the roles the employee can perform. There\nare no preconfigured roles available, so all roles must be configured in the Planning app . There is no limit to the number of roles assigned to an employee.\nRoles : using the drop-down menu, select all the roles the employee can perform. There\nare no preconfigured roles available, so all roles must be configured in the Planning app . There is no limit to the number of roles assigned to an employee.\n- Default Role : using the drop-down menu, select the default role the employee will\ntypically perform. If the Default Role is selected before the Roles field\nis configured, the selected role is automatically added to the list of Roles .\nDefault Role : using the drop-down menu, select the default role the employee will\ntypically perform. If the Default Role is selected before the Roles field\nis configured, the selected role is automatically added to the list of Roles .\n\n## Private information tab\n\nNo information in the Private Information tab is required to create an employee,\nhowever, some information in this section may be necessary for the companyâs payroll department.\nIn order to properly process payslips and ensure all deductions are accounted for, it is recommended\nto check with the accounting department and payroll department to ensure all required fields are\npopulated.\nEnter the various information in the following sections and fields of the Private\nInformation tab. Fields are entered either using a drop-down menu, ticking a checkbox, or typing in\nthe information.\nDepending on the localization setting, other fields may be present. For example, for the United\nStates, a SSN No (Social Security Number) field is present.\n\n### PRIVATE CONTACT\n\n- Private Address : enter the employeeâs private home address.\nPrivate Address : enter the employeeâs private home address.\n- Private Email : enter the employeeâs personal email address.\nPrivate Email : enter the employeeâs personal email address.\n- Private Phone : enter the employeeâs personal phone number.\nPrivate Phone : enter the employeeâs personal phone number.\n- Bank Account : enter the bank account number for the employee, and click Create and edit.. . A Create Bank Account form loads with the bank account\nnumber populating the Account Number field. Next, select the Bank using\nthe drop-down menu. If the bank is not already configured, click Create and edit⦠and a blank Create Bank form loads, with the bank name populating the Bank field.\nNext, enter the Bank Identifier Code , also referred to as a BIC or SWIFT code. Then\nenter the Bank Address , Phone , and Email . Once the form is\ncomplete, click Save & Close , and the new bank populates the Bank field. Next, enter the ABA/Routing number for the bank account, then select the Account Holder , which is typically the employee. Finally, click the Send Money toggle. This changes the toggle color to green, and the\nstatus changes from Untrusted in black text, to Trusted in green text. Important All bank accounts must be marked as Trusted , if not payments cannot be\nprocessed and sent to the bank account. Having an Untrusted bank account for an\nemployee will cause an error in the Payroll application.\nBank Account : enter the bank account number for the employee, and click Create and edit.. . A Create Bank Account form loads with the bank account\nnumber populating the Account Number field. Next, select the Bank using\nthe drop-down menu.\nIf the bank is not already configured, click Create and edit⦠and a blank Create Bank form loads, with the bank name populating the Bank field.\nNext, enter the Bank Identifier Code , also referred to as a BIC or SWIFT code. Then\nenter the Bank Address , Phone , and Email . Once the form is\ncomplete, click Save & Close , and the new bank populates the Bank field.\nNext, enter the ABA/Routing number for the bank account, then select the Account Holder , which is typically the employee.\nFinally, click the Send Money toggle. This changes the toggle color to green, and the\nstatus changes from Untrusted in black text, to Trusted in green text.\nAll bank accounts must be marked as Trusted , if not payments cannot be\nprocessed and sent to the bank account. Having an Untrusted bank account for an\nemployee will cause an error in the Payroll application.\n- Home-Work Distance : enter the number, in miles or kilometers, the employee commutes to\nwork, in one direction. The unit of measure can be changed from kilometers ( km ) to\nmiles ( mi ) using the drop-down menu. This field is only necessary if the employee is\nreceiving any type of commuter benefits or tax deductions based on commute distances.\nHome-Work Distance : enter the number, in miles or kilometers, the employee commutes to\nwork, in one direction. The unit of measure can be changed from kilometers ( km ) to\nmiles ( mi ) using the drop-down menu. This field is only necessary if the employee is\nreceiving any type of commuter benefits or tax deductions based on commute distances.\n- Private Car Plate : enter the license plate for the employeeâs personal car.\nPrivate Car Plate : enter the license plate for the employeeâs personal car.\n\n### EMERGENCY\n\nThis section details the person to contact in the event of an emergency.\n- Contact Name : enter the emergency contactâs name.\nContact Name : enter the emergency contactâs name.\n- Contact Phone : enter the emergency contactâs phone number. It is recommended to enter\na phone number that the person has the most access to, typically a mobile phone.\nContact Phone : enter the emergency contactâs phone number. It is recommended to enter\na phone number that the person has the most access to, typically a mobile phone.\n\n### FAMILY STATUS\n\nThis section is used for tax purposes, and affects the Payroll app. Enter the following\ninformation in the fields.\n- Marital Status : select the marital status for the employee using the drop-down menu.\nThe default options are Single , Married , Legal Cohabitant , Widower , and Divorced . If Married or Legal Cohabitant is selected, two additional fields appear: Spouse Complete Name and Spouse Birthdate . Enter these fields with the\nrespective information.\nMarital Status : select the marital status for the employee using the drop-down menu.\nThe default options are Single , Married , Legal Cohabitant , Widower , and Divorced .\nIf Married or Legal Cohabitant is selected, two additional fields appear: Spouse Complete Name and Spouse Birthdate . Enter these fields with the\nrespective information.\n- Number of Dependent Children : enter the number of dependent children. This number is\nthe same number used for calculating tax deductions, and should follow all tax regulations\nregarding applicable dependents.\nNumber of Dependent Children : enter the number of dependent children. This number is\nthe same number used for calculating tax deductions, and should follow all tax regulations\nregarding applicable dependents.\n\n### CITIZENSHIP\n\nThis section outlines all the information relating to the employeeâs citizenship. This section is\nprimarily for employees who are working in a different country than their citizenship. For employees\nworking outside of their home country, for example on a work visa, this information may be required.\nInformation for all fields may not be available.\n- Nationality (Country) : using the drop-down menu, select the country the employee is\nfrom.\nNationality (Country) : using the drop-down menu, select the country the employee is\nfrom.\n- Identification No : enter the employeeâs identification number in this field.\nIdentification No : enter the employeeâs identification number in this field.\n- SSN No : enter the employeeâs social security number.\nSSN No : enter the employeeâs social security number.\n- Passport No : enter the employeeâs passport number.\nPassport No : enter the employeeâs passport number.\n- Gender : select the employeeâs gender from the drop-down menu. The default options are Male , Female , and Other .\nGender : select the employeeâs gender from the drop-down menu. The default options are Male , Female , and Other .\n- Date of Birth : using the calendar selector, select the birthday of the employee.\nDate of Birth : using the calendar selector, select the birthday of the employee.\n- Place of Birth : enter the city or town the employee was born.\nPlace of Birth : enter the city or town the employee was born.\n- Country of Birth : using the drop-down menu, select the country the employee was born.\nCountry of Birth : using the drop-down menu, select the country the employee was born.\n- Non-resident : tick this checkbox if the employee lives in a foreign country.\nNon-resident : tick this checkbox if the employee lives in a foreign country.\n\n### EDUCATION\n\nThis section allows for only one entry, and should be populated with the highest degree the employee\nhas earned.\n- Certificate Level : using the drop-down menu, select the highest degree the employee\nhas earned. The default options are Graduate , Bachelor , Master , Doctor , and Other .\nCertificate Level : using the drop-down menu, select the highest degree the employee\nhas earned. The default options are Graduate , Bachelor , Master , Doctor , and Other .\n- Field of Study : type in the subject the employee studied, such as Business or Computer Science .\nField of Study : type in the subject the employee studied, such as Business or Computer Science .\n`Business`\n`ComputerScience`\n- School : type in the name of the school the employee earned the degree from.\nSchool : type in the name of the school the employee earned the degree from.\n\n### WORK PERMIT\n\nThis section should be filled in if the employee is working on some type of work permit. This\nsection may be left blank if they do not require any work permits for employment.\n- Visa No : enter the employeeâs visa number.\nVisa No : enter the employeeâs visa number.\n- Work Permit No : enter the employeeâs work permit number.\nWork Permit No : enter the employeeâs work permit number.\n- Visa Expiration Date : using the calendar selector, select the date the employeeâs visa\nexpires.\nVisa Expiration Date : using the calendar selector, select the date the employeeâs visa\nexpires.\n- Work Permit Expiration Date : using the calendar selector, select the date the\nemployeeâs work permit expires.\nWork Permit Expiration Date : using the calendar selector, select the date the\nemployeeâs work permit expires.\n- Work Permit : click Upload your file , then navigate to the work permit file\nin the file explorer, and click Select to add the permit.\nWork Permit : click Upload your file , then navigate to the work permit file\nin the file explorer, and click Select to add the permit.\n\n## Payroll tab\n\nDepending on the installed localization , the sections and\nfields in this tab may vary considerably. Due to the specific nature of localizations and the\nvariety of information that may be requested in this tab, it is recommended to check with the\naccounting department to fill out this section correctly.\nThe following fields are universal for all localizations:\n- Legal Name : enter the legal name for the employee. This is the name that typically is\nused for filing taxes.\nLegal Name : enter the legal name for the employee. This is the name that typically is\nused for filing taxes.\n- Payslip Language : enter the desired language to be used when printing payslips for\nthis employee.\nPayslip Language : enter the desired language to be used when printing payslips for\nthis employee.\n- Registration Number of the Employee : enter the employees registration number.\nRegistration Number of the Employee : enter the employees registration number.\nPayroll localizations\n\n## Settings tab\n\nThis tab provides various fields for different applications within the database. Depending on what\napplications are installed, different fields may appear in this tab.\n\n### STATUS\n\n- Employee Type : using the drop-down menu, select the type of employee. The default\noptions are Employee , Worker , Student , Trainee , Contractor , and Freelancer .\nEmployee Type : using the drop-down menu, select the type of employee. The default\noptions are Employee , Worker , Student , Trainee , Contractor , and Freelancer .\n- Related User : using the drop-down menu, select a user in the database to link to this\nemployee. Important Employees do not need to be users of the database. Employees do not count towards the Odoo subscription billing, while Users do count\ntowards billing. If the new employee should also be a user, the user must be created. After the employee is created, click Create User at the end of the Related User line. A Create User form appears. The employee name populates the Name field by default. If the Email\nAddress , Phone , Mobile , and photo are populated on the\nemployee form, the corresponding fields are auto-populated on the Create User form. Once the form is completed, click the Save button. The user is created, and\npopulates the Related User field. Users can also be created manually. For more information on how to manually add a user, refer\nto the Users document.\nRelated User : using the drop-down menu, select a user in the database to link to this\nemployee.\nEmployees do not need to be users of the database.\nEmployees do not count towards the Odoo subscription billing, while Users do count\ntowards billing. If the new employee should also be a user, the user must be created.\nAfter the employee is created, click Create User at the end of the Related User line. A Create User form appears.\nThe employee name populates the Name field by default. If the Email\nAddress , Phone , Mobile , and photo are populated on the\nemployee form, the corresponding fields are auto-populated on the Create User form.\nOnce the form is completed, click the Save button. The user is created, and\npopulates the Related User field.\nUsers can also be created manually. For more information on how to manually add a user, refer\nto the Users document.\n\n### APPLICATION SETTINGS\n\nThis section affects the Fleet and Manufacturing apps. Enter the following information in\nthis section.\n- Hourly Cost : enter the hourly cost for the employee, in a XX.XX format. This cost is\nfactored in when the employee is working at a work center . Note Manufacturing costs are added to the costs for producing a product, if the value of the\nmanufactured product is not a fixed amount. This cost does not affect the Payroll application.\nHourly Cost : enter the hourly cost for the employee, in a XX.XX format. This cost is\nfactored in when the employee is working at a work center .\nManufacturing costs are added to the costs for producing a product, if the value of the\nmanufactured product is not a fixed amount. This cost does not affect the Payroll application.\n- Fleet Mobility Card : if applicable, enter the Fleet Mobility Card number\nFleet Mobility Card : if applicable, enter the Fleet Mobility Card number\n\n### ATTENDANCE/POINT OF SALE\n\nThis section determines how employees sign in to either the Attendances or Point Of Sale apps, and only appear if either of these apps is installed.\n- PIN Code : enter the employeeâs pin number in this field. This code is used to sign in\nand out of Attendances app kiosks, and a POS system.\nPIN Code : enter the employeeâs pin number in this field. This code is used to sign in\nand out of Attendances app kiosks, and a POS system.\n- Badge ID : click Generate at the end of the Badge ID line to\ncreate a badge number. Once generated, the badge number populates the Badge ID field,\nand Generate changes to Print Badge . Click Print Badge to\ncreate a PDF file of the employeeâs badge. The badge can be printed and used to log into a POS system or check-in on an Attendances app kiosk.\nBadge ID : click Generate at the end of the Badge ID line to\ncreate a badge number. Once generated, the badge number populates the Badge ID field,\nand Generate changes to Print Badge . Click Print Badge to\ncreate a PDF file of the employeeâs badge. The badge can be printed and used to log into a POS system or check-in on an Attendances app kiosk.", "headings": ["General information", "Resumé tab", "Resumé", "Skills", "Work information tab", "LOCATION", "APPROVERS", "REMOTE WORK", "SCHEDULE", "PLANNING", "Private information tab", "PRIVATE CONTACT", "EMERGENCY", "FAMILY STATUS", "CITIZENSHIP", "EDUCATION", "WORK PERMIT", "Payroll tab", "Settings tab", "STATUS", "APPLICATION SETTINGS", "ATTENDANCE/POINT OF SALE"], "doc_id": "c464a0c1ebee8e4f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/employees/offboarding.html", "title": "Offboarding", "module": "employees", "section": "Offboarding", "text": "# Offboarding\n\nWhen an employee leaves the company, it is important to have an offboarding plan to ensure all necessary steps are followed, such as returning equipment,\nrevoking access to business systems, filling out HR forms, having an exit interview, and more.\nDepending on the company, there could be several different offboarding plans, configured for\nspecific departments or divisions, that have different requirements and steps from the main\noffboarding plan.\nIn addition to an offboarding plan, the employee record must be updated to reflect their\ndeparture , log the reason why they left, close any open activities associated\nwith the employee, and provide them with any important documents .\n\n## View offboarding plan\n\nBefore offboarding can begin, it is recommended to check the default offboarding plan that comes\npreconfigured with the Employees app. To view the current default plan, navigate to Employees app ⣠Configuration ⣠Activity Plan . Click Offboarding to\nview the detailed offboarding plan form.\n\n### Offboarding plan steps\n\nThe default Offboarding plan is minimal, with two default steps (three if the Fleet app is installed). All steps are To-Do activities, and are scheduled for the day the\noffboarding plan is launched ( 0 days Before Plan Date ).\n- Organize knowledge transfer inside the team : The manager must ensure all knowledge the\nemployee has relating to their job position, is either documented or shared with colleagues so\nthere is no knowledge gap.\nOrganize knowledge transfer inside the team : The manager must ensure all knowledge the\nemployee has relating to their job position, is either documented or shared with colleagues so\nthere is no knowledge gap.\n- Take Back Fleet : The fleet manager ensures any vehicles assigned to the employee are\neither unassigned (available for other employees) or the next driver is assigned. This step only\nappears if the Fleet app is installed.\nTake Back Fleet : The fleet manager ensures any vehicles assigned to the employee are\neither unassigned (available for other employees) or the next driver is assigned. This step only\nappears if the Fleet app is installed.\n- Take Back HR Materials : The manager must obtain any documents and materials the HR\ndepartment requires. It is recommended to check with the HR department to ensure everything\nrequired for this step is completed.\nTake Back HR Materials : The manager must obtain any documents and materials the HR\ndepartment requires. It is recommended to check with the HR department to ensure everything\nrequired for this step is completed.\n\n## Modify offboarding plan\n\nThe default offboarding plan is minimal, so that modifications can be made to accommodate any\ncompanyâs offboarding needs. Every company has different requirements, therefore it is necessary to\nadd the required steps to the offboarding plan.\nIf the offboarding plan is universal, add or modify the default offboarding plan. If the offboarding\nplan needed is only for a specific department, then a new plan should be created, specifically for\nthat department.\nTo modify the default plan, first navigate to Employees app ⣠Configuration â£\nActivity Plan , then click on Offboarding .\nTo modify a step, click on the step and an Open: Activities pop-up window appears. Make\nany desired modifications to the step, then click Save to accept the changes and close\nthe pop-up window.\nTo add a new step, click Add a line at the bottom of the listed activities in the Activities To Create tab, and a blank Create Activities pop-up window\nappears. Enter all the information in the pop-up window, then click Save & Close if\nthere are no other steps to add, or click Save & New if more steps are needed.\nConfigure all the desired steps for the offboarding plan.\n\n## Create offboarding plan\n\nFor some companies, specific offboarding plans may be necessary for some departments. For these\ncases, a new department-specific offboarding plan may be needed.\nTo create a new offboarding plan, first navigate to Employees app â£\nConfiguration ⣠Activity Plan . Click the New button in the upper-left corner, and a\nblank plan form loads.\nEnter the following information on the form:\n- Plan Name : the specific name for the plan.\nPlan Name : the specific name for the plan.\n- Model : This field specifies where this plan can be used. In this case, in the Employees app. This field is not able to be modified.\nModel : This field specifies where this plan can be used. In this case, in the Employees app. This field is not able to be modified.\n- Department : if left blank (the default setting) the plan is available for all\ndepartments. To make the plan department-specific, select a department using the drop-down menu.\nDepartment : if left blank (the default setting) the plan is available for all\ndepartments. To make the plan department-specific, select a department using the drop-down menu.\nNext, add the various steps for the plan by clicking Add a line at the bottom of the\nlisted activities in the Activities To Create tab, and a blank Create\nActivities pop-up window appears.\nEnter the following information in the pop-up window:\n- Activity Type : Using the drop-down menu, select the specific activity to be scheduled.\nThe default options are Email , Call , Meeting , To-Do , or Upload Document . If the Sign app is installed, a Request Signature option is available.\nActivity Type : Using the drop-down menu, select the specific activity to be scheduled.\nThe default options are Email , Call , Meeting , To-Do , or Upload Document . If the Sign app is installed, a Request Signature option is available.\n- Summary : Enter a short description for the step.\nSummary : Enter a short description for the step.\n- Assignment : Using the drop-down menu, select the person assigned to perform the\nactivity. The default options are: Ask at launch , Default user , Coach , Manager , and Employee . If the Fleet app is\ninstalled, a Fleet Manager option is available. Note The selection for the Assignment role is in relation to the employee. If Coach is selected, the employeeâs coach is assigned to the activity. If Default user is selected, an Assigned to field appears. Using the\ndrop-down menu, select the user who will always be assigned this activity.\nAssignment : Using the drop-down menu, select the person assigned to perform the\nactivity. The default options are: Ask at launch , Default user , Coach , Manager , and Employee . If the Fleet app is\ninstalled, a Fleet Manager option is available.\nThe selection for the Assignment role is in relation to the employee. If Coach is selected, the employeeâs coach is assigned to the activity.\nIf Default user is selected, an Assigned to field appears. Using the\ndrop-down menu, select the user who will always be assigned this activity.\n- Interval : Configure the fields in this line to determine the due date of the activity.\nEnter a number in the first field, then, using the drop-down menus in the following two fields,\nconfigure when the due date should be created; ( # ) of days , weeks , or months , either Before Plan Date or After Plan Date .\nInterval : Configure the fields in this line to determine the due date of the activity.\nEnter a number in the first field, then, using the drop-down menus in the following two fields,\nconfigure when the due date should be created; ( # ) of days , weeks , or months , either Before Plan Date or After Plan Date .\n`#`\nWhen the Create Activities for is completed, click Save & Close if there are\nno other steps to add, or click Save & New to add more steps, as needed.\nA company specializing in after-school art programs has two separate offboarding plans, one for\nthe teachers working in the field, and one for office workers.\nThe offboarding plan for the teachers is set for the Art Program Teachers department,\nand includes specialized tasks relating to those jobs. These include ensuring all art supplies\nare catalogued and returned, all student feedback forms are turned in, and all access badges and\nkeys for the various locations are returned.\n\n## Launch offboarding plan\n\nAfter an employee has given notice (typically two weeks) or once the company has decided to\nterminate the working relationship with the employee, the offboarding plan should be launched.\nNavigate to the Employees app and click on the departing employee profile. Click\nthe Launch Plan button, and a blank Launch Plan pop-up window loads.\nUsing the drop-down menu, select the desired offboarding plan in the Plan field. Then,\nusing the calendar selector, set a date in the Plan Date field. This is typically the\nday the employee gave notice, but any date can be selected.\nThe right-side of the Launch Plan pop-up window displays all the steps in the selected\nplan, grouped by what was selected in the Assignment fields for the various plan steps.\nOnce the Plan and Plan Date fields are configured, click the Schedule button, and Odoo schedules everything in the plan, according to their\nrespective due dates. All scheduled activities appear in the chatter of the employee profile.\n\n## Archive an employee\n\nIn Odoo, when an employee leaves the company they must be archived . This step should be done after the employee has been fully offboarded. To archive an employee, first navigate to the Employees app . From here, locate the employee who is leaving the company, and click\non their employee card.\nThe employee form loads, displaying all their information. Click the (gear) icon in the top-left corner, and a drop-down menu appears. Click Archive , and an Employee Termination pop-up window\nappears.\nFill out the following fields on the form:\n- Departure Reason : Select a reason the employee is leaving from the drop-down menu. The\ndefault options are: Fired : Select this option when an employee is being let go, and the company has\ngiven notice. Resigned : Select this option when the employee no longer wishes to be employed, and\nthe employee has given notice. Resigned: Retired : Select this option when the employee is retiring. Became Freelance : Select this option when the employee is no longer working for the\ncompany, but is becoming a freelance worker instead. Mutual Agreement : Select this option when both parties have agreed to terminate\ntheir working relationship.\nDeparture Reason : Select a reason the employee is leaving from the drop-down menu. The\ndefault options are:\n- Fired : Select this option when an employee is being let go, and the company has\ngiven notice.\nFired : Select this option when an employee is being let go, and the company has\ngiven notice.\n- Resigned : Select this option when the employee no longer wishes to be employed, and\nthe employee has given notice.\nResigned : Select this option when the employee no longer wishes to be employed, and\nthe employee has given notice.\n- Resigned: Retired : Select this option when the employee is retiring.\nResigned: Retired : Select this option when the employee is retiring.\n- Became Freelance : Select this option when the employee is no longer working for the\ncompany, but is becoming a freelance worker instead.\nBecame Freelance : Select this option when the employee is no longer working for the\ncompany, but is becoming a freelance worker instead.\n- Mutual Agreement : Select this option when both parties have agreed to terminate\ntheir working relationship.\nMutual Agreement : Select this option when both parties have agreed to terminate\ntheir working relationship.\n- Contract End Date : Using the calendar selector, select the last day the employee is\nworking for the company.\nContract End Date : Using the calendar selector, select the last day the employee is\nworking for the company.\n- Detailed Reason : Enter a short description for the employeeâs departure in this field.\nDetailed Reason : Enter a short description for the employeeâs departure in this field.\n- Close Activities : Tick the checkbox next to each type of activity to close or delete\nany open activities associated with it. It is recommended to tick all checkboxes that are\napplicable. The available options are: Appraisals : cancels all appraisals scheduled after the contract end date. Contract : applies an end date for the current contract. Company Car : removes the employee as the driver for their current company car, and assigns the next driver , if applicable. Equipment : unassigns the employee from any assigned equipment.\nClose Activities : Tick the checkbox next to each type of activity to close or delete\nany open activities associated with it. It is recommended to tick all checkboxes that are\napplicable. The available options are:\n- Appraisals : cancels all appraisals scheduled after the contract end date.\nAppraisals : cancels all appraisals scheduled after the contract end date.\n- Contract : applies an end date for the current contract.\nContract : applies an end date for the current contract.\n- Company Car : removes the employee as the driver for their current company car, and assigns the next driver , if applicable.\nCompany Car : removes the employee as the driver for their current company car, and assigns the next driver , if applicable.\n- Equipment : unassigns the employee from any assigned equipment.\nEquipment : unassigns the employee from any assigned equipment.\n- HR Info : Tick the checkbox next to Send Access Link to send a download\nlink to the employeeâs personal email address, containing all their personal HR files.\nHR Info : Tick the checkbox next to Send Access Link to send a download\nlink to the employeeâs personal email address, containing all their personal HR files.\n- Private Email : This field appears if the HR Info checkbox is ticked. If\nthere is a private email listed on the employee profile, this field is automatically populated. If\nno private email address is on their record, enter the private email address for the employee.\nPrivate Email : This field appears if the HR Info checkbox is ticked. If\nthere is a private email listed on the employee profile, this field is automatically populated. If\nno private email address is on their record, enter the private email address for the employee.\nWhen the form is complete, click Apply . The employee record is archived, an email with a\ndownload link to their personal documents is sent to the employeeâs private email address (if\nselected), and a red Archived banner appears in the top-right corner of the employee\nform. The chatter logs the Departure Date and Departure Reason , and if an\naccess link was emailed.\nWhile attempting to send the HR documents access link, an Invalid Operation pop-up\nwindow may appear, displaying the following error message:\nEmployeeâs related user and private email must be set to use âSend Access Linkâ\nfunction: (Employee Name)\nIf this error appears, click Close to close the pop-up window, then tick the Send Access Link checkbox to deselect it on the Employee Termination pop-up window.\nClick Apply to archive the employee and close the selected activities on the Employee Termination pop-up window, returning to the employee form.\nOnce the employee form, ensure the following fields are populated:\n- Private Information tab: Ensure an email address is entered in the Email field.\nPrivate Information tab: Ensure an email address is entered in the Email field.\n- HR Settings tab: Ensure a Related User is selected in the corresponding\nfield.\nHR Settings tab: Ensure a Related User is selected in the corresponding\nfield.\nAfter the necessary information is entered, resend the HR documents access link\n\n### Send HR documents access link\n\nIf the access link was not sent when first archiving the employee on the Employee Termination form, it can be sent after the employee is archived at any point.\nAfter an employee is archived, they are no longer visible on the main Employees app dashboard.\nTo view the archived employees, navigate to the Employees app dashboard, and click\nthe (down arrow) in the search bar to reveal a drop-down menu.\nSelect Archived , towards the bottom of the Filters column,\nthen click away from the drop-down window to close it.\nNow, only archived employees appear on the dashboard. Click on the desired employee to open their\nemployee form. On this form, click the (gear) icon in the top-left\ncorner, then click Send HR Documents Access Link from the resulting drop-down menu. The\nchatter logs that the link was sent.", "headings": ["View offboarding plan", "Offboarding plan steps", "Modify offboarding plan", "Create offboarding plan", "Launch offboarding plan", "Archive an employee", "Send HR documents access link"], "doc_id": "8668735664153cb0"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/employees/onboarding.html", "title": "Onboarding", "module": "employees", "section": "Onboarding", "text": "# Onboarding\n\nWhen a new employee is hired, it is important to have an onboarding procedure that can be followed.\nThis ensures that information, equipment, and training are provided to the employee and any other\nnecessary steps for the business are assigned to the correct individuals.\nProper onboarding ensures that new employees are given all the information and tools needed to be\nsuccessful in their roles and have a smooth transition to their new job.\n\n## View onboarding plan\n\nBefore onboarding can begin, it is recommended to check the default onboarding plan that comes\npreconfigured with the Employees app. To view the current default plan, navigate to Employees app ⣠Configuration ⣠Activity Plan . Click Onboarding to\nview the detailed onboarding plan form.\nThe plan form displays the following information:\n- Plan Name : the specific name for the onboarding plan.\nPlan Name : the specific name for the onboarding plan.\n- Model : specifies where this plan can be used. In this case, in the Employees app.\nModel : specifies where this plan can be used. In this case, in the Employees app.\n- Department : if left blank (the default setting) this plan is available for all\ndepartments. Limit the use of the plan to a specific department by selecting the department using\nthe drop-down menu.\nDepartment : if left blank (the default setting) this plan is available for all\ndepartments. Limit the use of the plan to a specific department by selecting the department using\nthe drop-down menu.\n- Activities To Create : this tab lists all the onboarding steps. Each row displays: Activity Type : the specific activity for the step. The default options are Email , Call , Meeting , To-Do , or Upload Document . If the Sign app is installed, a Request Signature option is available. Summary : a one line description of the step. Assignment : chooses who completes the activity, relative to the new hire: Ask at launch : choose the user in the Assigned To field when launching the onboarding plan . Default user : choose a user who always handles this activity. Defined in the Assigned to field. Manager : assigns the employeeâs manager as defined on the employee record. Coach : assigns the employeeâs coach as defined on the employee record. Employee : the new hire completes the activity. Fleet Manager : assigns the designated Fleet app manager. This option is only\navailable if the Fleet app is installed. Assigned to : this field remains blank, unless Default user is selected\nfor the Assignment field. If Default user is selected, this field is\npopulated with the selected user. Document to sign : the corresponding document requiring a signature. Interval : the time when the activity is active. Unit : the set time interval, either days , weeks , or months . Trigger : how scheduling is determined for the activity. Options are either Before Plan Date or After Plan Date . Example A laptop must be set up and registered to a new employee the day before they start work. The\nperson who performs this step should always be the IT Manager, Abby Jones. To configure this activity with these parameters, the Activity Type is set to To-Do , with a summary of Assign Laptop . The Assignment field is set to Default user , and the Assigned to field is set to Abby Jones . The Interval is 1 , and the Unit is set to days . The Trigger is Before Plan Date .\nActivities To Create : this tab lists all the onboarding steps. Each row displays:\n- Activity Type : the specific activity for the step. The default options are Email , Call , Meeting , To-Do , or Upload Document . If the Sign app is installed, a Request Signature option is available.\nActivity Type : the specific activity for the step. The default options are Email , Call , Meeting , To-Do , or Upload Document . If the Sign app is installed, a Request Signature option is available.\n- Summary : a one line description of the step.\nSummary : a one line description of the step.\n- Assignment : chooses who completes the activity, relative to the new hire: Ask at launch : choose the user in the Assigned To field when launching the onboarding plan . Default user : choose a user who always handles this activity. Defined in the Assigned to field. Manager : assigns the employeeâs manager as defined on the employee record. Coach : assigns the employeeâs coach as defined on the employee record. Employee : the new hire completes the activity. Fleet Manager : assigns the designated Fleet app manager. This option is only\navailable if the Fleet app is installed.\nAssignment : chooses who completes the activity, relative to the new hire:\n- Ask at launch : choose the user in the Assigned To field when launching the onboarding plan .\nAsk at launch : choose the user in the Assigned To field when launching the onboarding plan .\n- Default user : choose a user who always handles this activity. Defined in the Assigned to field.\nDefault user : choose a user who always handles this activity. Defined in the Assigned to field.\n- Manager : assigns the employeeâs manager as defined on the employee record.\nManager : assigns the employeeâs manager as defined on the employee record.\n- Coach : assigns the employeeâs coach as defined on the employee record.\nCoach : assigns the employeeâs coach as defined on the employee record.\n- Employee : the new hire completes the activity.\nEmployee : the new hire completes the activity.\n- Fleet Manager : assigns the designated Fleet app manager. This option is only\navailable if the Fleet app is installed.\nFleet Manager : assigns the designated Fleet app manager. This option is only\navailable if the Fleet app is installed.\n- Assigned to : this field remains blank, unless Default user is selected\nfor the Assignment field. If Default user is selected, this field is\npopulated with the selected user.\nAssigned to : this field remains blank, unless Default user is selected\nfor the Assignment field. If Default user is selected, this field is\npopulated with the selected user.\n- Document to sign : the corresponding document requiring a signature.\nDocument to sign : the corresponding document requiring a signature.\n- Interval : the time when the activity is active.\nInterval : the time when the activity is active.\n- Unit : the set time interval, either days , weeks , or months .\nUnit : the set time interval, either days , weeks , or months .\n- Trigger : how scheduling is determined for the activity. Options are either Before Plan Date or After Plan Date . Example A laptop must be set up and registered to a new employee the day before they start work. The\nperson who performs this step should always be the IT Manager, Abby Jones. To configure this activity with these parameters, the Activity Type is set to To-Do , with a summary of Assign Laptop . The Assignment field is set to Default user , and the Assigned to field is set to Abby Jones . The Interval is 1 , and the Unit is set to days . The Trigger is Before Plan Date .\nTrigger : how scheduling is determined for the activity. Options are either Before Plan Date or After Plan Date .\nA laptop must be set up and registered to a new employee the day before they start work. The\nperson who performs this step should always be the IT Manager, Abby Jones.\nTo configure this activity with these parameters, the Activity Type is set to To-Do , with a summary of Assign Laptop . The Assignment field is set to Default user , and the Assigned to field is set to Abby Jones . The Interval is 1 , and the Unit is set to days . The Trigger is Before Plan Date .\n\n### Onboarding plan steps\n\nThe default Onboarding plan includes three default steps. All steps are To-Do activities, and are scheduled for the day the onboarding plan is launched\n( 0 days Before Plan Date ).\n- Setup IT Materials : the manager must gather and configure all IT materials.\nSetup IT Materials : the manager must gather and configure all IT materials.\n- Plan Training : the manager must plan the training for the new employee.\nPlan Training : the manager must plan the training for the new employee.\n- Training : the new employee must complete the training planned by the manager.\nTraining : the new employee must complete the training planned by the manager.\n\n## Modify onboarding plan\n\nA single onboarding plan works only if the flow works for the entire company.\nIf the onboarding plan is universal, add to or modify the default onboarding plan. If\ndepartment-specific onboarding plans are needed, create a new onboarding plan .\nTo modify the default plan, first navigate to Employees app ⣠Configuration â£\nActivity Plan , then click on Onboarding .\nTo modify a step, click on it. In the Open: Activities pop-up window, make any desired\nmodifications to the step, then click Save .\nTo add a new step, click Add a line at the bottom of the listed activities in the Activities To Create tab, and a blank Create Activities pop-up window\nappears. Enter all the information in the pop-up window, then click Save & Close if\nthere are no other steps to add, or click Save & New if more steps are needed.\n\n## Create onboarding plan\n\nSome companies require different onboarding plans, when there are department-specific onboarding\nprocedures that do not apply to the whole company. For these cases, a new department-specific\nonboarding plan must be created.\nTo create a new onboarding plan, navigate to the desired plan and configure all the desired\nsteps .\nA company specializing in the manufacturing and selling of outdoor metal furniture may have a\nlarge factory that produces the products, and a separate sales office. This company may have two\nseparate onboarding plans, one for factory workers, and one for office workers.\nThe onboarding plan for the factory workers is set for the Manufacturing department,\nand includes specialized tasks relating to factory jobs. These include gathering the new\nemployees uniform and safety gear, assigning a safety course, emailing their team about the new\nhire, going over benefits, and more.\n\n## Launch onboarding plan\n\nAfter an employee has been hired and their employee profile is created , navigate to the desired employeeâs profile by clicking on their Kanban\ncard on the Employees app dashboard, then click the Launch Plan button on their\nemployee profile, and a blank Launch Plan pop-up window loads.\nIn the Plan field, choose the desired onboarding plan. Then, using the calendar\nselector, set a date in the Plan Date field. This is typically the employeeâs first day,\nbut any date can be selected.\nThe right side of the Launch Plan pop-up window displays all the steps in the selected\nplan, grouped by what was selected in the Assignment fields on the plan form .\nOnce the Plan and Plan Date fields are configured, click the Schedule button, and Odoo schedules everything in the plan, according to their\nrespective due dates.\nAll scheduled activities appear in the both chatter of the employee profile, and in the chatter of\nthe userâs with assignments relating to the plan.\nIf any activity assignments were configured to Ask at launch , an Assigned\nto field appears on the Launch Plan pop-up window. Using the drop-down menu, select\nthe user responsible for all the unassigned activities.", "headings": ["View onboarding plan", "Onboarding plan steps", "Modify onboarding plan", "Create onboarding plan", "Launch onboarding plan"], "doc_id": "4a333747a87e7400"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/employees/retention_report.html", "title": "Employee retention report", "module": "employees", "section": "Employee retention report", "text": "# Employee retention report\n\nIt is possible to determine the retention rate for a company by modifying an existing report.\nFirst, navigate to Employees app ⣠Reporting ⣠Contracts to open the Employee Analysis report. This report shows the number of all employees for the Last 365 Days , in a default Line Chart .\nNext, click the Measures button in the upper-left corner,\nrevealing a drop-down menu. Click # Departure Employee in the list, then click away from\nthe drop-down menu to close it. Now, the report shows all the employees who were archived for the Last 365 Days .\nTo view this information in an easier format, click the (Pivot) icon in the upper-right corner, and the data is presented in a pivot table.\nThe various employees, organized by department, populate the rows. The columns display the following\ntotals: the monthly Wage , the Fuel Card budget, total Annual\nEmployee Budget (also referred to as the annual salary ), the number of New Employees ,\nas well as the number of Departure Employees (employees who left).\n\n## Employee retention rate comparison report\n\nIt is possible to compare data only for employees who left, compared to the total current employees,\nbetween two separate time periods. This is commonly referred to as the employee retention rate .\nTo view these metrics, first open the Employee Analysis report by navigating to Employees app ⣠Reporting ⣠Contracts . Click the (Pivot) icon in the upper-right corner to view the information in a pivot table.\nNext, click the Measures button in the upper-left corner,\nrevealing a drop-down menu. Click # New Employees , Annual Employee Budget , Fuel Card , and Wage in the list, to deselect these metrics and hide them in\nthe table. Then, click Count at the bottom of the list to enable that metric.\nClick away from the drop-down menu to close it. Now, the report shows all the employees who left the\ncompany ( # Departure Employee ), as well as the total number of employees\n( Count ), for the Last 365 Days .\nTo compare the data for the current year with the previous year, click the (down arrow) in the search bar, revealing multiple filter and grouping options. Click Last 365 Days in the Filters column, to turn off that\nfilter. Then, click Date , and click the current year (in this example, 2024 )\nfrom the resulting drop-down menu.\nOnce a selection is made beneath Date in the Filters column, a Comparison column appears. Click Date: Previous\nYear in the new column, then click off of the drop-down menu to close it.\nIn Odoo, in order to access the Comparison column, a specific time other than Last 365 Days must be selected. If not, the Comparison column is not visible.\nNow, the pivot table displays the total number of employees who left the company ( #\nDeparture Employee ), as well as the total number of employees ( Count ) in the columns.\nThese are further divided by the two different years, and also displays the Variation between the two.\nThe rows display the departments, and lists each individual employee for each department, in the\nrows.\nFor a more concise view of this report, click Total above the\ntop row of the departments and employees, to collapse the rows. Now, the table presents the total\nnumber of employees who left the company for both years, compared to the total number of employees\nfor both years, including the difference, in a percentage.\nIn this example, 3 employees out of 83 left in 2023, and 8 employees out of 202 left in 2024. There was a 166.67% increase in the\nemployees who left in 2024 as compared to 2023. Additionally, there was a 143.37% increase in the total number of employees in 2024 as compared to 2023.\nTo view more detailed rates for each department, click Total in\nthe single row, revealing a drop-down menu, and click Department . Click away from the\ndrop-down to close it, and now the pivot table displays the total number of employees who left\n( # Departure Employee ), the total number of employees ( Count ), and the Variation (in a percentage) for both 2023 and 2024, organized by department.\nIn this example, it can be determined that the Management department had the best\nretention rate in 2024 as compared to 2023, with a Variation rate of -100% . Additionally, it can be determined that the Management / Research &\nDevelopment department had the most turnover, with a Variation of 300% .", "headings": ["Employee retention rate comparison report"], "doc_id": "c29fb628ac468e2b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/fleet/accidents.html", "title": "Accidents", "module": "fleet", "section": "Accidents", "text": "# Accidents\n\nWhen managing a fleet, accidents are inevitable. Tracking accidents is crucial for understanding\nvehicle maintenance costs and identifying safe drivers.\nOdooâs Fleet app offers multiple ways of tracking accidents. Below are step-by-step instructions\nfor one possible method to monitor accidents and repair costs.\n\n## Structure\n\nFor this use case, go to Fleet app ⣠Fleet ⣠Services . On the service\nform , two service types are created: Accident - Driver's Fault and Accident - No Fault .\n`Accident-Driver'sFault`\n`Accident-NoFault`\nThis setup records repairs associated with accidents and organizes them by fault.\nWhen an accident occurs, a service record is created. The specific repairs needed for the accident\nare logged in the Description of the service record, and the details about the accident are logged\nin the Notes section.\nWith this organizational structure, it is possible to view all accidents organized by fault, car,\ndriver, or cost.\nTo manage accidents, the creation of service records is required .\nRefer to the Services documentation for detailed instructions on creating service records\nin Odooâs Fleet app.\n\n## Log accidents and repairs\n\nTo log an accident and initiate the repair process, the first step is to create a service\nrecord detailing the specific repairs needed.\nSome accidents require multiple repairs with several different vendors. For these scenarios, a\nseparate service record is needed for each vendor performing repairs. To keep records organized,\nit is recommended to keep the Notes field identical, and attach the same important\ndocumentation, such as a police report.\nNavigate to Fleet app ⣠Fleet ⣠Services to view the main Services dashboard. Click New in the top-left corner, and a blank service form loads.\nEnter the following information on the form:\n- Description : enter the description of repairs needed to fully repair the vehicle, such\nas Bodywork , Windshield Replacement , or Replacement Bumper, Tires, and Windows .\nDescription : enter the description of repairs needed to fully repair the vehicle, such\nas Bodywork , Windshield Replacement , or Replacement Bumper, Tires, and Windows .\n`Bodywork`\n`WindshieldReplacement`\n`ReplacementBumper,Tires,andWindows`\n- Service Type : for this example, select either Accident - Driver's Fault or Accident - No Fault , depending on the situation. When entering either of these two Service Types for the first time, type in the new\nservice type, then click Create (new service type) . A Create Service Type pop-up window appears, with the new service type populating the Name field. In the Category field, select Service from the drop-down menu, then click the Save & Close button. Once an accident service type has been added to the database, it is available to select from the\ndrop-down menu in the Service Type field.\nService Type : for this example, select either Accident - Driver's Fault or Accident - No Fault , depending on the situation.\n`Accident-Driver'sFault`\n`Accident-NoFault`\nWhen entering either of these two Service Types for the first time, type in the new\nservice type, then click Create (new service type) . A Create Service Type pop-up window appears, with the new service type populating the Name field. In the Category field, select Service from the drop-down menu, then click the Save & Close button.\nOnce an accident service type has been added to the database, it is available to select from the\ndrop-down menu in the Service Type field.\n- Date : using the calendar popover window, select the date the accident occurred.\nNavigate to the desired month using the (arrow) icons, then click the date to select it.\nDate : using the calendar popover window, select the date the accident occurred.\nNavigate to the desired month using the (arrow) icons, then click the date to select it.\n- Cost : leave this field blank, as the repair cost is not yet known.\nCost : leave this field blank, as the repair cost is not yet known.\n- Vendor : select the vendor performing the repairs using the drop-down menu. If the\nvendor has not already been entered in the system, type in the vendor name, and click either Create to add them, or Create and edit⦠to add and configure the\nvendor .\nVendor : select the vendor performing the repairs using the drop-down menu. If the\nvendor has not already been entered in the system, type in the vendor name, and click either Create to add them, or Create and edit⦠to add and configure the\nvendor .\n- Vehicle : select the vehicle that was in the accident from the drop-down menu. When the\nvehicle is selected, the Driver field is populated, and the unit of measure for the Odometer Value field appears.\nVehicle : select the vehicle that was in the accident from the drop-down menu. When the\nvehicle is selected, the Driver field is populated, and the unit of measure for the Odometer Value field appears.\n- Driver : the current driver listed for the selected vehicle populates this field when\nthe Vehicle is selected. If a different driver was operating the vehicle when the\naccident occurred, select the correct driver from the drop-down menu.\nDriver : the current driver listed for the selected vehicle populates this field when\nthe Vehicle is selected. If a different driver was operating the vehicle when the\naccident occurred, select the correct driver from the drop-down menu.\n- Odometer Value : enter the odometer reading when the accident occurred. The units of\nmeasure are either in kilometers ( km ) or miles ( mi ), depending on how the\nselected vehicle was configured.\nOdometer Value : enter the odometer reading when the accident occurred. The units of\nmeasure are either in kilometers ( km ) or miles ( mi ), depending on how the\nselected vehicle was configured.\n- NOTES : enter the specific details of the accident at the bottom of the service form,\nsuch as Hit a deer or Rear-ended at an intersection while stopped .\nNOTES : enter the specific details of the accident at the bottom of the service form,\nsuch as Hit a deer or Rear-ended at an intersection while stopped .\n`Hitadeer`\n`Rear-endedatanintersectionwhilestopped`\nOdoo provides the ability to attach any important paperwork, such as repair estimates and police\nreports, to the service record. To do so, click the (paperclip) icon, located in the chatter of the form, and a file explorer pop-up window appears. Navigate to\nthe desired record, and click Open to upload the file.\nOnce a file is added to a service record, a Files section appears in the chatter .\nTo attach more records, click Attach files to add more\ndocuments.\n\n## Service stages\n\nIn Odooâs Fleet app, there are four default service stages:\nThe default stage when a service record is created. The service has been requested, but\nrepairs have not begun. The Cost field for this stage remains zero.\nThe repair is in-process, but not yet complete. The estimate for repairs is listed in the Cost field.\nAll repairs listed on the service form have been completed. The Cost field is\nupdated to reflect the final total cost charged for the repairs.\nThe service request has been cancelled.\nDuring the repair process, change the service status to reflect the vehicleâs current state in one\nof two ways: on the individual service record , or in the Kanban\nservice view .\n\n### Service record\n\nOpen the main Services dashboard, by navigating to Fleet app ⣠Fleet â£\nServices . Next, click on the individual service record to open the detailed service form. Click the\ndesired stage in the top-right corner, above the service form, to change the status.\n\n### Kanban view\n\nOpen the main Services dashboard, by navigating to Fleet app ⣠Fleet â£\nServices . First, click the Kanban icon in the top-right of the\nscreen, which organizes all repairs by vehicle.\nNext, remove the default Service Type filter in the search bar. Upon doing so, all\nservices appear in a Kanban view, organized by their respective Status .\nDrag-and-drop the service record to the desired stage.\n\n## Accident reporting\n\nOne of the main reasons to track accidents using the method outlined in this document is the ability\nto view the total accident cost, determine the safest drivers, and calculate the actual total cost\nfor specific vehicles.\nThe main Services dashboard displays all the various accident\ninformation, while the Reporting dashboard displays the total\ncost for specific vehicles.\n\n### Services dashboard\n\nNavigate to Fleet app ⣠Fleet ⣠Services to view the Services dashboard. All service records are displayed in a (List) view,\ngrouped alphabetically, by Service Type .\nThe two service types created for accident tracking appear in the list: Accident - Driver\nFault and Accident - No Fault .\nEach grouping displays the number of records within each type, and lists the individual records\nbeneath each grouping title.\nIn this example, there are three accidents where the driver was at fault, and one accident that\nwas not the driverâs fault. This dashboard also displays the estimated total Cost for\nall the accidents in each group.\nAn estimated $3,284.00 dollars are costs from driver-caused accident repairs. The no-fault\naccident has no cost associated with it, since the repair has not been completed, and no estimate\nexists yet.\n`$3,284.00`\nThe total Cost calculates all costs on the repair form, including estimated\ncosts, as well as final repair costs. This number may not be accurate, if there are any repairs\nin the Running stage, and the final bill has not yet been calculated.\n\n### Reporting dashboard\n\nNavigate to Fleet app ⣠Reporting ⣠Costs to view the Cost\nAnalysis report. This report displays a (Bar Chart) of all Contract and Service costs for the current year, organized by month\n( Date : (year) ), by default. The Sum , represented by a gray dotted line, is\nthe combined total of both the Contract and Service costs.\nTo view the total cost by vehicle, click the (Toggle Search Bar) icon at the right of the search bar, revealing a drop-down menu. Click Vehicle in the Group By column, and the data is organized by vehicle.\nThis displays the true cost for each vehicle, including both the contract cost (such as the monthly\nvehicle lease cost) and all service costs, including all accidents. Hover over a column to reveal a\ndata popover window, which displays the vehicle name and the total cost. This allows for a more\ncomplete view of the vehicle cost.\nTo view the individual cost details for both contract costs and repairs, click the (Pivot) icon in the top-right corner of the Cost\nAnalysis dashboard. This displays each vehicle on a separate line, and displays the Contract cost and Service cost, as well as the Total cost.\nThe (Pivot) view organizes the data by vehicle, by default,\ntherefore grouping the data by Vehicle is not required. If this filer is already\nactivated, it does not affect the presented data.\n\n## Manage accident repairs\n\nFor companies with multiple employees, who manage a large fleet of vehicles, displaying only service\nrecords in the New and Running stages can be time-saving, if there are a\nlarge number of records in the Services dashboard.\nNavigate to Fleet app ⣠Fleet ⣠Services , where all service requests are\norganized by Service Type . Next, click the (Toggle\nSearch Panel) icon at the right of the search bar, revealing a drop-down menu. Click Add\nCustom Filter in the Filters column, and a Add Custom\nFilter pop-up window appears.\nThree drop-down fields need to be configured on the pop-up window.\nIn the first field, scroll down, and select Stage .\nLeave the second field set to = .\nSelect Running from the drop-down menu in the last field.\nNext, click the (plus) icon to the right of the last field, and an\nidentical rule appears beneath the current rule.\nThen, change Running to New in the third field of the second rule, leaving\nthe other fields as-is.\nClick the Add button at the bottom to add the new custom filter.\nThis slight modification only presents services in the New and Running stages. This is a helpful report for a company managing a high number of repairs at any given time.\nTo have this report appear as the default report when opening the Services dashboard,\nclick the (Toggle Search Panel) icon at the far-right of the\nsearch bar. Next, click Save current search , beneath the Favorites column, which reveals another drop-down column beneath it. Tick the checkbox\nbeside Default Filter , then click Save . Then, this customized Services dashboard appears, by default, any time the Services dashboard is\naccessed.", "headings": ["Structure", "Log accidents and repairs", "Service stages", "Service record", "Kanban view", "Accident reporting", "Services dashboard", "Reporting dashboard", "Manage accident repairs"], "doc_id": "89550535b930c571"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/fleet/cost_analysis.html", "title": "Cost analysis report", "module": "fleet", "section": "Cost analysis report", "text": "# Cost analysis report\n\nThe Fleet app allows for analysis on total vehicle costs , including\nboth contract costs and service and repair charges. Data can be adjusted to view total costs by vehicle or driver . Additionally, costs can be\ncompared with the previous year, quarter, or month, to view changes in fleet costs over time.\n\n## Total costs\n\nTo view the Cost Analysis Report , navigate to Fleet app ⣠Reporting ⣠Costs .\nThe default report shows a bar chart of service and contract costs for the current year, organized\nby month.\nIn this report, it is possible to determine that June had the highest total costs, with almost\n$14,000 dollars in contract and repair costs, while January had the lowest costs, with less than\n$2,000 of contract costs and no repairs.\n\n## Cost by vehicle\n\nSome companies want to view costs not by month, but by vehicle. This allows fleet managers to\ndetermine which vehicles cost the most to keep on the road, aiding in decision making for future\npurchases and repairs.\nTo view these metrics, open the default cost analysis report . Next, click\ninto the search bar, and click Vehicle under the Group By column.\nFrom this report, it can be determined the Toyota Corolla with the license plate STU-1718 cost the most, with almost $14,000 in costs for the year. Additionally, the both Nissan Micro vehicles and the Ford Focus cost the least, with under $5,000 in total costs each.\n`ToyotaCorolla`\n`STU-1718`\n`NissanMicro`\n`FordFocus`\n\n## Cost by driver\n\nAnother useful metric is to determine which drivers incur the most repair costs, allowing fleet\nmanagers to determine which vehicles to assign which drivers. To view this configuration, open the\ndefault cost analysis report . Next, click into the search bar, and click Driver under the Group By column. Finally, click the (Pivot) icon.\nThe report now shows the totals for both Contract and Service costs for each\ndriver in the database. This allows fleet managers to see which drivers incur the most repair costs.\nThis report shows that Sandra Elvis had no service costs for the year, while both Doris Cole and David Armstrong had almost $9,000 in repairs. While this does not explain why those two\ndrivers incurred the most costs, it is possible for the fleet manager to investigate the\nservice records for those two drivers, to determine why there were such\nhigh costs for the year.\n`SandraElvis`\n`DorisCole`\n`DavidArmstrong`\n\n## Detailed comparison\n\nAll reports in the Fleet app are able to compare costs from previous time periods, either year,\nquarter, or month. To view a detailed cost comparison between the third and fourth quarter, open the\ndefault cost analysis report , then click the (Pivot) icon. Next, click into the search bar and click Q4 in the Filters column, then Date: Previous Period in the Comparison column.\nThe report now shows detailed contract and service costs for each vehicle, with a Variation column, showing increases or decreases in costs from the third and fourth\nquarter of the current year.\nIn this example, it can be determined that the Ford Focus had the greatest change in terms of\nlowered total costs, with a 75.25% reduction in costs. Additionally, the Nissan Micro with the\nlicense plate of DEF-456 was the only vehicle with an overall increase in total costs, with an\nincrease of 41.78%.\n`FordFocus`\n`NissanMicro`\n`DEF-456`", "headings": ["Total costs", "Cost by vehicle", "Cost by driver", "Detailed comparison"], "doc_id": "dabe8d6659f5d0c6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/fleet/models.html", "title": "Models & manufacturers", "module": "fleet", "section": "Models & manufacturers", "text": "# Models & manufacturers\n\nOdooâs Fleet app categorizes each vehicle by manufacturer and model (e.g. BMW , X2 ).\nBefore the vehicle can be added to the Odoo database, its manufacturer and a model records must already exist in the database.\n`BMW`\n`X2`\n\n## Manufacturers\n\nOdooâs Fleet app comes preconfigured with sixty-six commonly used car and bicycle manufacturers\nin the database, along with their logos. To view the pre-loaded manufacturers, go to Fleet app ⣠Configuration ⣠Manufacturers .\nThe default filter, With Models , displays only manufacturers that already have vehicle\nmodels. Remove the default filter to view all manufacturers.\nManufacturers re listed alphabetically, and each card shows how many specific models are configured for each particular manufacturer.\n\n### Add a manufacturer\n\nTo add a new manufacturer to the database, click New in the upper-left corner, to open a\nblank manufacturers form. Type the name of the manufacturer in the Name field, and\nselect an image to upload for the logo.\n\n## Models\n\nWhen adding a vehicle to the fleet, specify the vehicle model to maintain updated records, which\nkeeps track of specific details, like maintenance schedules and parts compatibility.\nUnlike manufacturers , models do not come preconfigured in the Fleet app. When a new vehicle model joins the fleet, the model (and, if necessary, the\nmanufacturer) must be added to the database .\n\n### Add a model\n\nTo add a new vehicle model, navigate to Fleet app ⣠Configuration ⣠Models .\nClick New in the upper-left corner, and enter the following information on the new model\nform.\nDepending on the installed localization , some fields\nor sections may not appear.\n- Model name : Enter the model name in the field.\nModel name : Enter the model name in the field.\n- Manufacturer : Using the drop-down menu, select the manufacturer. If it is not\nconfigured, add the manufacturer\nManufacturer : Using the drop-down menu, select the manufacturer. If it is not\nconfigured, add the manufacturer\n- Vehicle Type : Using the drop-down menu, select one of two preconfigured vehicle types,\neither Car or Bike . Important Additional vehicle types can not be added. Fleet keeps them fixed to preserve its Payroll integration, where vehicles may count as employee benefits.\nVehicle Type : Using the drop-down menu, select one of two preconfigured vehicle types,\neither Car or Bike .\nAdditional vehicle types can not be added. Fleet keeps them fixed to preserve its Payroll integration, where vehicles may count as employee benefits.\n- Category : Using the drop-down menu, select a category for\nthe vehicle or create a new one .\nCategory : Using the drop-down menu, select a category for\nthe vehicle or create a new one .\n\n### Information tab\n\nIn the Information tab, specify details about the car model, such as the car size,\npassenger capacity, cost settings (applicable to the Belgium localization only), and engine\ninformation.\n\n#### Model\n\n- Seats Number : Enter how many passengers the vehicle can accommodate.\nSeats Number : Enter how many passengers the vehicle can accommodate.\n- Doors Number : Enter the number of doors the vehicle has.\nDoors Number : Enter the number of doors the vehicle has.\n- Model Year : Enter the year the vehicle was manufactured.\nModel Year : Enter the year the vehicle was manufactured.\n- Trailer Hitch : Tick this checkbox if the vehicle has a trailer hitch installed.\nTrailer Hitch : Tick this checkbox if the vehicle has a trailer hitch installed.\n\n#### Salary\n\nThe Salary section only appears if the company has their localization setting set to\nBelgium. The cost values are all monthly , with the exception of the Catalog Value (VAT\nIncl.) .\n- Can be requested : Tick this checkbox if employees can request this model vehicle, if a\nvehicle is part of their employee contract.\nCan be requested : Tick this checkbox if employees can request this model vehicle, if a\nvehicle is part of their employee contract.\n- Catalog Value (VAT Incl.) : enter the MSRP for the vehicle at the time of purchase or lease.\nCatalog Value (VAT Incl.) : enter the MSRP for the vehicle at the time of purchase or lease.\n- C02 fee : Represents the carbon dioxide emission fee paid to the Belgian government.\nThis value is automatically calculated, based on Belgian laws and regulations, and cannot be\nmodified. The value is based on the figure entered in the CO2 Emissions field (in the Engine section of the Information tab) on the vehicle form.\nC02 fee : Represents the carbon dioxide emission fee paid to the Belgian government.\nThis value is automatically calculated, based on Belgian laws and regulations, and cannot be\nmodified. The value is based on the figure entered in the CO2 Emissions field (in the Engine section of the Information tab) on the vehicle form.\nModifying the CO2 Emissions field adjusts the value in the CO2 fee field.\n- Cost (Depreciated) : Enter the monthly vehicle cost, which appears in the salary\nconfigurator for future employees. This value impacts the gross and net salary of the employee\nassigned to the vehicle. This figure is depreciated over time, according to local tax laws. The Cost (Depreciated) does not depreciate automatically on the vehicle model , it\nonly depreciates based on the contract linked to a specific vehicle.\nCost (Depreciated) : Enter the monthly vehicle cost, which appears in the salary\nconfigurator for future employees. This value impacts the gross and net salary of the employee\nassigned to the vehicle. This figure is depreciated over time, according to local tax laws. The Cost (Depreciated) does not depreciate automatically on the vehicle model , it\nonly depreciates based on the contract linked to a specific vehicle.\n- Total Cost (Depreciated) : This value is the combination of the Cost\n(Depreciated) and the C02 fee fields. It also depreciated over time.\nTotal Cost (Depreciated) : This value is the combination of the Cost\n(Depreciated) and the C02 fee fields. It also depreciated over time.\n\n#### Engine\n\n- Fuel Type : Using the drop-down menu, select the type of fuel the vehicle uses. The\ndefault options are Diesel , Gasoline , Full Hybrid Plug-in Hybrid Diesel , Plug-in Hybrid Gasoline , CNG , LPG , Hydrogen , or Electric .\nFuel Type : Using the drop-down menu, select the type of fuel the vehicle uses. The\ndefault options are Diesel , Gasoline , Full Hybrid Plug-in Hybrid Diesel , Plug-in Hybrid Gasoline , CNG , LPG , Hydrogen , or Electric .\n- Range : Enter the distance the vehicle can travel on one tank of gas, or one battery\ncharge, in kilometers.\nRange : Enter the distance the vehicle can travel on one tank of gas, or one battery\ncharge, in kilometers.\n- CO2 Emissions : Enter the average carbon dioxide emissions the vehicle produces in\ngrams per kilometer (g/km). This information is provided by the car manufacturer.\nCO2 Emissions : Enter the average carbon dioxide emissions the vehicle produces in\ngrams per kilometer (g/km). This information is provided by the car manufacturer.\n- CO2 Standard : Enter the standard amount of carbon dioxide in grams per kilometer\n(g/km) for a similar-sized vehicle.\nCO2 Standard : Enter the standard amount of carbon dioxide in grams per kilometer\n(g/km) for a similar-sized vehicle.\n- Transmission : Using the drop-down menu, select the type of transmission, either Manual or Automatic .\nTransmission : Using the drop-down menu, select the type of transmission, either Manual or Automatic .\n- Power Unit : Using the drop-down menu, select how the vehicleâs power is measured,\neither in kilowatts or horsepower.\nPower Unit : Using the drop-down menu, select how the vehicleâs power is measured,\neither in kilowatts or horsepower.\n- Power : If the vehicle is electric or hybrid, enter the power the vehicle uses in\nkilowatts ( kW ). This field only appears if kW is selected for the Power field.\nPower : If the vehicle is electric or hybrid, enter the power the vehicle uses in\nkilowatts ( kW ). This field only appears if kW is selected for the Power field.\n- Horsepower : Enter the vehicleâs horsepower in this field. This field only appears if Horsepower is selected for the Power field.\nHorsepower : Enter the vehicleâs horsepower in this field. This field only appears if Horsepower is selected for the Power field.\n- Horsepower Taxation : Enter the amount that is taxed, based on the size of the\nvehicleâs engine. This is determined by local taxes and regulations, and varies depending on the\nlocation. It is recommended to check with the accounting department to ensure this value is\ncorrect. This field only appears if Horsepower is selected for the Power field.\nHorsepower Taxation : Enter the amount that is taxed, based on the size of the\nvehicleâs engine. This is determined by local taxes and regulations, and varies depending on the\nlocation. It is recommended to check with the accounting department to ensure this value is\ncorrect. This field only appears if Horsepower is selected for the Power field.\n- Horsepower Taxation : Enter the amount of taxes incurred according to the engine\nspecifications. The number is dependent on the local tax laws, therefore it is recommended to\ncheck with the accounting department to ensure the correct taxation amount is entered. This field\nonly appears if the Power field is set to Horsepower .\nHorsepower Taxation : Enter the amount of taxes incurred according to the engine\nspecifications. The number is dependent on the local tax laws, therefore it is recommended to\ncheck with the accounting department to ensure the correct taxation amount is entered. This field\nonly appears if the Power field is set to Horsepower .\n- Tax Deduction : The percentage that can be deducted from taxes is populated based on\nthe localization, and cannot be modified. This field only appears for certain localizations.\nTax Deduction : The percentage that can be deducted from taxes is populated based on\nthe localization, and cannot be modified. This field only appears for certain localizations.\n\n### Vendors tab\n\nSpecify the vendors a vehicle can be purchased from in this tab. With proper setup, requests\nfor quotations for vehicles can be created\nthrough Odooâs Purchase app.\nTo add a vendor, click Add in the upper-left corner of the Vendors tab. This\nopens an Add: Vendors pop-up window, with a list of all the vendors currently in the\ndatabase. Add a vendor by ticking the checkbox next to the vendor name, then click Select . No limitations exist on the number of vendors that can be added to this list.\nIf a vendor is not already in the database, add a vendor by clicking New in the\nbottom-left of the Add: Vendors pop-up window. In the Create Vendors form\nthat appears, enter the necessary information, then click Save & Close to add the\nvendor, or click Save & New to add the current vendor and create another new vendor.\n\n## Model category\n\nTo aid with fleet organization, it is recommended to have vehicle models housed under a specific\ncategory. Model categories are set on the vehicle model form .\nOdoo does not come with any categories preconfigured; all categories must be added.\nTo view any categories currently set up in the database, navigate to Fleet app â£\nConfiguration ⣠Categories . All categories are displayed in a list view.\n\n### Add a new model category\n\nTo add a new category, click the New button in the top-left corner of the Categories dashboard. A new entry line appears at the bottom of the list. Type in the\nnew category, then either click Save , or click anywhere on the screen, to save the\nentry.\nTo reorganize how the categories appear in the list, click on the (draggable) icon to the left of any desired category name, and drag the line to the\ndesired position.\nThe order of the list does not affect the database in any way. However, it may be preferable to\nview the vehicle categories in a specific order, for example, by size, or the number of passengers\nthe vehicle can carry.\nWhen used with the Inventory app, the Max Weight and Max Volume fields track a vehicleâs capacity. This helps manage in-house deliveries by showing how\nmuch space and weight remain for loading products .", "headings": ["Manufacturers", "Add a manufacturer", "Models", "Add a model", "Information tab", "Vendors tab", "Model category", "Add a new model category"], "doc_id": "49e46888fb62106b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/fleet/new_vehicle.html", "title": "Adding vehicles", "module": "fleet", "section": "Adding vehicles", "text": "# Adding vehicles\n\nOdooâs Fleet app manages all vehicles, and the accompanying documentation that comes with\nvehicle maintenance and driver records.\nUpon opening the Fleet application, all vehicles are organized within the Vehicles dashboard, which is the default dashboard. Each vehicle is displayed in its\ncorresponding Kanban stage, based on its status. The default stages are New Request , To Order , Registered , and Downgraded .\n\n## Settings\n\nBefore registering any vehicles, review two Fleet settings that directly affect day-to-day\noperations and employee benefits:\n- End Date Contract Alert â emails the contractâs Responsible person a\nset number of days before the vehicle agreement expires, so renewals or returns arenât missed.\nEnd Date Contract Alert â emails the contractâs Responsible person a\nset number of days before the vehicle agreement expires, so renewals or returns arenât missed.\n- New Vehicle Request â (Belgian Payroll localization only) blocks employees\nfrom requesting a new company car through the salary configurator, once the available vehicles\nalready exceeds the defined limit, helping control benefits costs.\nNew Vehicle Request â (Belgian Payroll localization only) blocks employees\nfrom requesting a new company car through the salary configurator, once the available vehicles\nalready exceeds the defined limit, helping control benefits costs.\nTo access the settings menu, go to Fleet app ⣠Configuration ⣠Settings .\n\n### End Date Contract Alert\n\nThe End Date Contract Alert field shows how many days before the end of a vehicle\ncontract an alert should be sent. The responsible parties receive an\nemail informing them that a vehicle contract is about to expire in the number of days defined in\nthis field.\n\n#### Responsible parties\n\nTo determine the responsible person is for a contract, open an individual contract. The person\nlisted as Responsible under the Contract Information section of the contract\nreceives the alert.\nTo open a contract from a list of all contracts, navigate to Fleet app ⣠Fleet â£\nContracts and all contracts appear in the list. Click on a Contract to open it. In the Information section of the contract, look under Responsible to see who\nreceives expiration alerts.\nAn individual contract can also be opened from a specific vehicle by navigating to Fleet app ⣠Fleet ⣠Fleet and clicking on an individual vehicle. On the vehicle\nform, click the Contracts smart button at the top of the page. Only contracts associated\nwith the vehicle appear in the list. Click on an individual contract to open it. The Responsible person is listed on the contract.\n\n### New Vehicle Request (Belgian Payroll - Fleet)\n\nEnter the maximum fleet size that may be reached through the salary-configurator flow. When the\ntotal number of available vehicles (vehicles without an assigned driver) is equal to or below this\nlimit, employees can request a new company car. Once the available vehicles exceeds the limit, the\nrequest option is hidden.\nIf the New Vehicle Request limit is set to 20 vehicles, and there are 25 vehicles\navailable, employees cannot request a new car and must select from the 25 already available. If\nthere are only 10 cars available, then the employee would be able to request a new vehicle.\nThis settings option only appears if the Belgian-Payroll-Fleet module is\ninstalled for the Belgian localization.\n\n## Add a vehicle\n\nTo add a new vehicle to the fleet from the Vehicles dashboard, click the New button in the top-left corner, and a blank vehicle form loads. Then, proceed to enter the vehicle\ninformation on the vehicle form.\n\n## Vehicle form fields\n\n- Model : Using the drop-down menu, select the vehicleâs model. Once a model is selected,\nadditional fields may appear on the form. If the model is not listed, type in the model name, and\nclick either Create âmodelâ , or Create and edit⦠to create a new\nmodel and edit the model details .\nModel : Using the drop-down menu, select the vehicleâs model. Once a model is selected,\nadditional fields may appear on the form. If the model is not listed, type in the model name, and\nclick either Create âmodelâ , or Create and edit⦠to create a new\nmodel and edit the model details .\n- License Plate : Enter the vehicleâs license plate number.\nLicense Plate : Enter the vehicleâs license plate number.\n- Tags : Select any tags from the drop-down menu, or type in a new tag. There is no limit\non the amount of tags that can be selected.\nTags : Select any tags from the drop-down menu, or type in a new tag. There is no limit\non the amount of tags that can be selected.\nThe Model is the only required field on the new vehicle form. When a model is\nselected, other fields appear on the vehicle form, and relevant information auto-populates the\nfields that apply to the model. If some of the fields do not appear, this may indicate there is\nno model selected.\n\n### Driver\n\nThis section of the vehicle form relates to the person who is currently driving the car, as well as\nany plans for a change in the driver in the future, and when.\n- Driver : Using the drop-down menu, select the driver for the vehicle. If the driver is\nnot listed, create the new driver, and edit the driver details . Important A driver does not have to be an employee. When creating a new driver, the driver is added to\nthe Fleet app, not the Employees app. If the Contacts app is installed, the driver information is also stored there.\nDriver : Using the drop-down menu, select the driver for the vehicle. If the driver is\nnot listed, create the new driver, and edit the driver details .\nA driver does not have to be an employee. When creating a new driver, the driver is added to\nthe Fleet app, not the Employees app.\nIf the Contacts app is installed, the driver information is also stored there.\n- Mobility Card : If the selected driver has a mobility card (such as a gas card) listed\non their employee record in the Employees application, the mobility card number automatically\nappears in this field. If there is no mobility card listed, and one should be added, edit\nthe employee record in the Employees application.\nMobility Card : If the selected driver has a mobility card (such as a gas card) listed\non their employee record in the Employees application, the mobility card number automatically\nappears in this field. If there is no mobility card listed, and one should be added, edit\nthe employee record in the Employees application.\n- Future Driver : If the next driver for the vehicle is known, select the next driver\nfrom the drop-down menu. Or, type in the next driver and click either Create âfuture\ndriverâ or Create and edit⦠to create a new future driver, and edit the\ndriver details . Note If this field is populated, a Apply New Driver button appears on the vehicle form.\nClick the Apply New Driver button to change the driver information.\nFuture Driver : If the next driver for the vehicle is known, select the next driver\nfrom the drop-down menu. Or, type in the next driver and click either Create âfuture\ndriverâ or Create and edit⦠to create a new future driver, and edit the\ndriver details .\nIf this field is populated, a Apply New Driver button appears on the vehicle form.\nClick the Apply New Driver button to change the driver information.\n- Plan To Change Car : Tick this box when the current driver already knows theyâll switch\nto another vehicle, whether they are awaiting an ordered car, using this one only temporarily, or\nare leaving the company.\nPlan To Change Car : Tick this box when the current driver already knows theyâll switch\nto another vehicle, whether they are awaiting an ordered car, using this one only temporarily, or\nare leaving the company.\n- Assignment Date : Using the calendar selector, select when the vehicle is available for\nanother driver. If this field is left blank, that indicates the vehicle is currently available,\nand can be assigned to another driver. If it is populated, the vehicle is not available for\nanother driver until the selected date.\nAssignment Date : Using the calendar selector, select when the vehicle is available for\nanother driver. If this field is left blank, that indicates the vehicle is currently available,\nand can be assigned to another driver. If it is populated, the vehicle is not available for\nanother driver until the selected date.\n- Company : Select the company from the drop-down menu. This field only appears in a\nmulti-company database.\nCompany : Select the company from the drop-down menu. This field only appears in a\nmulti-company database.\n\n#### Create a new driver\n\nIf a driver is not already in the system, the new driver should first be configured and added to the\ndatabase. A new driver can be added either from the Driver or Future Driver fields on the vehicle form .\nFirst, type in the name of the new driver in either the Driver or Future\nDriver field, then click Create and edit⦠. A Create Driver or Create Future Driver form appears, depending on which field initiated the form.\nBoth the Create Driver and Create Future Driver forms are identical, and are\nstored in the Contacts app. Configure the new contact , then\nclick Save & Close .\nDepending on the installed applications, different tabs or fields may be visible on the Create Driver and Create Future Driver forms.\n\n### Vehicle\n\nThis section captures key physical details of a vehicle. Selecting an existing Model may auto-fill\nsome fields.\nFill in the following fields on the form:\n- Category : Using the drop-down menu, select the vehicle category from the available\noptions. If the Inventory app is installed, the category affects any configured dispatch\nmanagement system .\nCategory : Using the drop-down menu, select the vehicle category from the available\noptions. If the Inventory app is installed, the category affects any configured dispatch\nmanagement system .\n- Order Date : Using the calendar selector, select the date the vehicle was ordered.\nKeeping track of how long vehicles have been in the fleet can help when making decisions on\nexpensive repairs, or help decide when to surrender a vehicle.\nOrder Date : Using the calendar selector, select the date the vehicle was ordered.\nKeeping track of how long vehicles have been in the fleet can help when making decisions on\nexpensive repairs, or help decide when to surrender a vehicle.\n- Registration Date : Using the calendar selector, select the date the vehicle was\nregistered. Many regions require proper registration, so keeping track of registration dates is\nimportant.\nRegistration Date : Using the calendar selector, select the date the vehicle was\nregistered. Many regions require proper registration, so keeping track of registration dates is\nimportant.\n- Cancellation Date : Using the calendar selector, select the date the vehicle lease\nexpires, or when the vehicle is no longer part of the fleet (e.g., sold, plates surrendered).\nCancellation Date : Using the calendar selector, select the date the vehicle lease\nexpires, or when the vehicle is no longer part of the fleet (e.g., sold, plates surrendered).\n- Chassis Number : Enter the chassis number in the field. This is known in some countries\nas the VIN number. Every vehicle has a unique number, so\nin the event of a theft or accident, a vehicle can be identified with this unique number.\nChassis Number : Enter the chassis number in the field. This is known in some countries\nas the VIN number. Every vehicle has a unique number, so\nin the event of a theft or accident, a vehicle can be identified with this unique number.\n- Last Odometer : Enter the last known odometer reading in the number field. Using the\ndrop-down menu next to the number field, select whether the odometer reading is in kilometers (km) or miles (mi) . Keeping track of a vehicleâs mileage is crucial when\ndetermining the value of the vehicle for both tax purposes and resale value.\nLast Odometer : Enter the last known odometer reading in the number field. Using the\ndrop-down menu next to the number field, select whether the odometer reading is in kilometers (km) or miles (mi) . Keeping track of a vehicleâs mileage is crucial when\ndetermining the value of the vehicle for both tax purposes and resale value.\n- Fleet Manager : Select the fleet manager from the drop-down menu, or type in a new\nfleet manager, and click either Create or Create and edit⦠.\nFleet Manager : Select the fleet manager from the drop-down menu, or type in a new\nfleet manager, and click either Create or Create and edit⦠.\n- Location : Type in the specific location where the vehicle is typically located in this\nfield. The entry should clearly explain where the vehicle can be found, such as Main Garage or Building 2 Parking Lot . This is crucial information for companies with many locations where\nvehicles are stored.\nLocation : Type in the specific location where the vehicle is typically located in this\nfield. The entry should clearly explain where the vehicle can be found, such as Main Garage or Building 2 Parking Lot . This is crucial information for companies with many locations where\nvehicles are stored.\n`MainGarage`\n`Building2ParkingLot`\n\n### Tax Info tab\n\nDepending on the localization setting for the database, and what additional applications are\ninstalled, other fields may be present on the form.\nThe sections below are default and appear for all vehicles, regardless of other installed\napplications or localization settings.\n\n#### Fiscality\n\n- Horsepower Taxation : Enter the amount that is taxed based on the size of the vehicleâs\nengine. This is determined by local taxes and regulations, and varies depending on the location.\nIt is recommended to check with the accounting department to ensure this value is correct.\nHorsepower Taxation : Enter the amount that is taxed based on the size of the vehicleâs\nengine. This is determined by local taxes and regulations, and varies depending on the location.\nIt is recommended to check with the accounting department to ensure this value is correct.\n- Disallowed Expenses Rate : Configure the dates and percentages of the vehicle-related\ncosts (fuel, maintenance, depreciation, etc.) that cannot be deducted from the companyâs\ntaxable income.\nDisallowed Expenses Rate : Configure the dates and percentages of the vehicle-related\ncosts (fuel, maintenance, depreciation, etc.) that cannot be deducted from the companyâs\ntaxable income.\n\n#### Contract\n\n- First Contract Date : Select the start date for the vehicleâs first contract using the\ncalendar selector. Typically this is the day the vehicle is purchased or leased.\nFirst Contract Date : Select the start date for the vehicleâs first contract using the\ncalendar selector. Typically this is the day the vehicle is purchased or leased.\n- Catalog Value (VAT Incl.) : Enter the MSRP for the vehicle at the time of purchase or lease.\nCatalog Value (VAT Incl.) : Enter the MSRP for the vehicle at the time of purchase or lease.\n- Purchase Value : Enter the purchase price or the original value of the lease for the\nvehicle.\nPurchase Value : Enter the purchase price or the original value of the lease for the\nvehicle.\n- Residual Value : Enter the current value of the vehicle.\nResidual Value : Enter the current value of the vehicle.\nThe values listed above affect the accounting department. It is recommended to check with the\naccounting department for more information and/or assistance with these values.\n\n### Model tab\n\nIf the model for the new vehicle is already configured in the database, the MODEL and ENGINE sections are populated with the corresponding information. If the model is not already in the database and the Model tab needs to be configured, configure the\nnew vehicle model .\nCheck the information in the Model tab to ensure it is accurate. For example, the color\nof the vehicle, or if a trailer hitch is installed, are examples of common information that may need\nupdating.\n\n### Note tab\n\nEnter any notes for the vehicle in this section.\n- Models & manufacturers\nModels & manufacturers\n- Services\n- Accidents", "headings": ["Settings", "End Date Contract Alert", "New Vehicle Request (Belgian Payroll - Fleet)", "Add a vehicle", "Vehicle form fields", "Driver", "Vehicle", "Tax Info tab", "Model tab", "Note tab"], "doc_id": "6ed32d6531e8f0b9"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/fleet/service.html", "title": "Services", "module": "fleet", "section": "Services", "text": "# Services\n\nTo properly maintain a fleet of vehicles, regular maintenance as well as periodic repairs are\nneeded. Scheduling repairs and managing services for an entire fleet is necessary to ensure all\nvehicles are in good working order when they are needed.\nServices, such as regular maintenance, like oil changes or tire rotations, can be logged in advance.\nOther repairs are logged as they occur.\n\n## Create service records\n\nTo log a service for a vehicle, go to the main Services dashboard by navigating to Fleet app ⣠Fleet ⣠Services . Open a new service form by clicking the New button in the top-left corner.\nFill out the information on the form. The only two fields that are required to be populated are Service Type and Vehicle .\nThe fields on the form are:\n- Description : Enter a brief description of the service in this field.\nDescription : Enter a brief description of the service in this field.\n- Service Type : Using the drop-down menu, select the type of service performed. If the\ndesired service does not exist, enter a new type of service, and click either Create\nâ(service type)â or Create and edit⦠to add the service type and configure it . Important Only one Service Type comes preconfigured in Odoo: Vendor Bill .\nService Type : Using the drop-down menu, select the type of service performed. If the\ndesired service does not exist, enter a new type of service, and click either Create\nâ(service type)â or Create and edit⦠to add the service type and configure it .\nOnly one Service Type comes preconfigured in Odoo: Vendor Bill .\n- Date : Using the calendar selector, select the date the service was provided, or is\nscheduled to be performed. Navigate to the desired month using the (arrow) icons, then click on the date to select it.\nDate : Using the calendar selector, select the date the service was provided, or is\nscheduled to be performed. Navigate to the desired month using the (arrow) icons, then click on the date to select it.\n- Cost : Enter the estimated cost of the service, if available. If the service is for a\nfuture repair, this field should be left blank. This field is updated as estimates are received,\nand again, when the final repair cost is known.\nCost : Enter the estimated cost of the service, if available. If the service is for a\nfuture repair, this field should be left blank. This field is updated as estimates are received,\nand again, when the final repair cost is known.\n- Vendor : Using the drop-down menu, select the vendor who is performing the service. If\nthe vendor has not already been entered in the system, add and configure the vendor .\nVendor : Using the drop-down menu, select the vendor who is performing the service. If\nthe vendor has not already been entered in the system, add and configure the vendor .\n- Vehicle : Using the drop-down menu, select the vehicle that was serviced. When the\nvehicle is selected, the Driver field is populated, and the unit of measure for the Odometer Value field appears.\nVehicle : Using the drop-down menu, select the vehicle that was serviced. When the\nvehicle is selected, the Driver field is populated, and the unit of measure for the Odometer Value field appears.\n- Driver : The vehicleâs current driver automatically populates this field when the Vehicle is selected. If the driver needs to be changed, another driver can be selected\nusing the drop-down menu.\nDriver : The vehicleâs current driver automatically populates this field when the Vehicle is selected. If the driver needs to be changed, another driver can be selected\nusing the drop-down menu.\n- Odometer Value : Enter the odometer reading from when the service was done. The units\nof measure are either in kilometers ( km ) or miles ( mi ), depending on how\nthe selected vehicle was configured. Tip To change from kilometers to miles, or vice versa, click the (Internal Link) icon to the right of the vehicle selected in the Vehicle field. Change the unit of measure, then navigate back to the service form, via the breadcrumb links.\nThe unit of measure is then updated in the Odometer Value field.\nOdometer Value : Enter the odometer reading from when the service was done. The units\nof measure are either in kilometers ( km ) or miles ( mi ), depending on how\nthe selected vehicle was configured.\nTo change from kilometers to miles, or vice versa, click the (Internal Link) icon to the right of the vehicle selected in the Vehicle field.\nChange the unit of measure, then navigate back to the service form, via the breadcrumb links.\nThe unit of measure is then updated in the Odometer Value field.\n- NOTES : Enter any notes for the repair at the bottom of the service form. For example,\nthis can include estimate details or parts being replaced.\nNOTES : Enter any notes for the repair at the bottom of the service form. For example,\nthis can include estimate details or parts being replaced.\n\n### Create service type\n\nThe only method to create service types is from a service form .\nOn the service form , type in the name of the new Service\nType in the corresponding field. Then, click Create and edit⦠, and a Create Service Type pop-up form appears.\nThe service type entered on the service form automatically populates the Name field,\nwhich can be modified, if desired.\nThen, select the Category for the new service type from the drop-down menu in that\nfield. The two default options to choose from are Contract or Service .\nAdditional categories cannot be created.\nIf the service applies to only contracts or services, select the corresponding Category . If the service applies to both contracts and services, leave this field\nblank.\nWhen done, click Save & Close .\n\n### Create vendor\n\nWhen a service is performed for the first time, typically, the vendorâs record has not yet been\nadded to the database. It is best practice to add the full details for a vendor in the database, so\nthat any necessary information can be retrieved.\nVendors are added with the Contacts app. Refer to the documentation for more details.\nDifferent tabs or fields may be visible on the Create Vendor form, depending on what\nother applications are installed.\n\n## View services\n\nTo view all services logged in the database, including old and new requests, navigate to Fleet app ⣠Fleet ⣠Services . All services appear in a list view, including all\nthe details for each service.\nThe service records are grouped by service type . The number of repairs for\neach service type appears in parentheses after the name of the service type.\nEach service listed displays the following information:\n- Date : the date that the service, or repair, was performed (or requested to be\nperformed).\nDate : the date that the service, or repair, was performed (or requested to be\nperformed).\n- Description : a short description of the specific type of service, or repair, performed\nto clarify the specific service.\nDescription : a short description of the specific type of service, or repair, performed\nto clarify the specific service.\n- Service Type : the type of service, or repair, performed. This is selected from a list\nof services that must be configured .\nService Type : the type of service, or repair, performed. This is selected from a list\nof services that must be configured .\n- Vehicle : the specific vehicle the service was performed on.\nVehicle : the specific vehicle the service was performed on.\n- Driver : the current driver for the vehicle.\nDriver : the current driver for the vehicle.\n- Vendor : the specific vendor who performed the service, or repair.\nVendor : the specific vendor who performed the service, or repair.\n- Notes : any information associated with the service, or repair, that is documented to\nadd clarification.\nNotes : any information associated with the service, or repair, that is documented to\nadd clarification.\n- Cost : the total cost of the service, or repair.\nCost : the total cost of the service, or repair.\n- Stage : the status of the service, or repair. Options are New , Running , Done , or Cancelled .\nStage : the status of the service, or repair. Options are New , Running , Done , or Cancelled .\nAt the bottom of the Cost column, the total cost of all services and repairs are listed.", "headings": ["Create service records", "Create service type", "Create vendor", "View services"], "doc_id": "f0571f5247c810fb"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll.html", "title": "Payroll", "module": "payroll", "section": "Payroll", "text": "# Payroll\n\nOdooâs Payroll app is used to calculate employeesâ worked time in conjunction with other Odoo\napps, such as Employees , Time Off , Attendances , and Planning , and create\ncorresponding payslips.\nWhen an employee is hired, they must sign a contract . The contract\noutlines how the employee is compensated, including the salary structure and rules their pay is\ncalculated from, when they work (their working schedule ), and what benefits they receive.\n`workingschedule`\nIt is critical to install the correct country-specific localization , as this configures all local and national rules, regulations,\nand applicable taxes for the selected country.\nIn addition to the employee contract, any salary attachments must be configured before running payroll.\nWhen it is time to run payroll according to the businessâs schedule (monthly, weekly, bi-weekly,\netc.), payslips can be created individually or in groups . Odoo calculates when the employees worked based on their work entries . Work entries are created according to their contracts , based on information from the Attendances , Planning , or Timesheets apps. Any errors with work entries must be resolved before continuing to process payroll.\nAfter all issues or conflicts are resolved, payslips are processed , and\nthen employees are paid , either with a wire transfer or a physical\ncheck.\nIt is possible to pay employees with cash, but this is not recommended.\n\n## Settings\n\nBefore running payroll, various settings for the Payroll app must be configured. Navigate to Payroll app ⣠Configuration ⣠Settings . The various settings for accounting , localizations , time off , and general payroll settings are specified\nhere.\n\n### Accounting\n\nConfigure the following in the accounting section of the configuration menu:\n- Payroll Entries : Enable this option to post payroll slips in the Accounting app,\nin a Salaries box on the main dashboard.\nPayroll Entries : Enable this option to post payroll slips in the Accounting app,\nin a Salaries box on the main dashboard.\n`Salaries`\n- Payroll SEPA : Enable this option to create SEPA payments.\nPayroll SEPA : Enable this option to create SEPA payments.\n- Batch Account Move Lines : Enable this option to have a single account move line\ncreated from all the accounting entries of the same period. This anonymizes accounting entries and\ndisables the creation of individual payments.\nBatch Account Move Lines : Enable this option to have a single account move line\ncreated from all the accounting entries of the same period. This anonymizes accounting entries and\ndisables the creation of individual payments.\n\n### Localizations\n\nLocalizations are country-specific settings preconfigured in Odoo at the creation of the database,\nwhich account for all taxes, fees, and allowances for that particular country.\nThe Localization section of the Payroll app Settings page includes\nspecific settings that need to be configured for the specific country.\nThe settings and options shown in this section vary, depending on the localization enabled for the database.\nIt is not recommended to alter the localization settings, unless specifically required due to\nspecial circumstances. For example, a new law is passed that changes basic salary rules, or a\ncompany is exempt from specific taxes.\nOdoo can handle multi-company configurations. This is generally done when there is a main company\nor office location, such as a headquarters, with other offices or branches located either in the\ncountry or internationally, that fall under that main company or headquarters. In Odoo, each\ncompany, including the headquarters, must be set up as its own company or branch using the\nmulti-company method.\nEach company can have a different localization setting, since locations can vary worldwide, where\nrules and laws differ.\nFor more information on companies, refer to the companies documentation, or the multi-company documentation,\nwhich covers how to set up multiple companies.\nPayroll localizations\n\n### Time off\n\nDeferred Time Off : If time off is taken after payslips are validated, the time off\nmust be applied to the following pay period to avoid cancelling then reprocessing payslips. Select\nthe person responsible for these specific time off situations using the drop-down menu in the Responsible field.\nAn employee is paid on the 15th of the month and the last day of the month. Payslips are\ntypically processed one day before.\nAn employeeâs payslip is approved and processed on the 30th, but that same employee took an\nunexpected sick day on the 31st.\nSince the employee was already paid for a regular workday on the 31st, to keep the time off\nbalances correct, the sick day is applied to the 1st of the next month (during the next pay\nperiod).\n\n### Payroll\n\nThe payroll section allows for the installation of a payroll localization . Click Choose a Payroll\nLocalization and a Kanban view of all available payroll localizations loads. Click Install on the desired localization to install it. If a localization has been installed,\nonly a Module Info button appears for that specific localization.\nOnce a localization has been installed, configure the following fields:\n- Contract Expiration Notice Period : Enter the number of Days before a\ncontract expires, when Odoo notifies the responsible person about the upcoming expiration.\nContract Expiration Notice Period : Enter the number of Days before a\ncontract expires, when Odoo notifies the responsible person about the upcoming expiration.\n- Payslip PDF Display : Enable this option to show the payslipâs PDF when the state is\nvalidated.\nPayslip PDF Display : Enable this option to show the payslipâs PDF when the state is\nvalidated.\n- Work Permit Expiration Notice Period : Enter the number of Days before a\nwork permit expires, when Odoo notifies the responsible person about the upcoming expiration.\nWork Permit Expiration Notice Period : Enter the number of Days before a\nwork permit expires, when Odoo notifies the responsible person about the upcoming expiration.\n- YTD Reset Date : Enter the date when the YTD is reset to. By\ndefault, this field is set to January 1st.\nYTD Reset Date : Enter the date when the YTD is reset to. By\ndefault, this field is set to January 1st.\n- Contracts\n- Salaries\n- Work entries\n- Working schedules\n- Time off to report\n- Salary attachments\n- Payslips\n- Batches\n- Commissions\n- Payroll analysis\n- Headcount report\n- Work entry analysis\n- Payroll localizations\nPayroll localizations", "headings": ["Settings", "Accounting", "Localizations", "Time off", "Payroll"], "doc_id": "0e5065892d9ed55c"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/batches.html", "title": "Batches", "module": "payroll", "section": "Batches", "text": "# Batches\n\nBatches are used to generate multiple payslips at once and process them in a\ngroup, rather than create and process individual payslips. This method not only helps the payroll\ndepartment pay employees in less time, but it also helps keep payslips organized.\nTypically, a companyâs payroll department creates a new batch for each\nsalary structure, for every pay period (usually weekly, bi-weekly, or monthly). If desired, batches\ncan be further organized by department, job position, or salary structure type.\nOnce a batch is made, payslips are added to the batch , then the batch\nis processed, and employees are paid.\n\n## View batches\n\nTo view all the batches in the database, navigate to Payroll app ⣠Payslips â£\nBatches to display all payslip batches that have been created. These payslip batches are displayed\nin a list view, by default.\nEach batch displays the Name , the dates the batch includes (the Date From and Date To fields), its Status , the number of payslips in the batch\n( Payslips Count ), and the Company .\n\n## Create a new batch\n\nNew batches of payslips must be created from the Payslips Batches dashboard, by\nnavigating to Payroll app ⣠Payslips ⣠Batches . Click the New button in the top-left corner. Doing so reveals a blank payslip batch form on a separate page.\nOn the new payslip batch form, enter the Batch Name . This should be something short and\ndescriptive, to keep records organized.\nA company pays its employees on a bi-weekly basis, and creates separate batches for their two\ndifferent salary structures they use: worker pay and regular\npay.\nThe names for their four August 2025 batches are:\n- Aug 1-14 2025 - Worker\nAug 1-14 2025 - Worker\n`Aug1-142025-Worker`\n- Aug 1-14 2025 - Regular\nAug 1-14 2025 - Regular\n`Aug1-142025-Regular`\n- Aug 15-31 2025 - Worker\nAug 15-31 2025 - Worker\n`Aug15-312025-Worker`\n- Aug 15-31 2025 - Regular\nAug 15-31 2025 - Regular\n`Aug15-312025-Regular`\nNext, select the date range to which the batch applies. Click into one of the Period fields, and a calendar pop-up window appears. From this calendar pop-up window, navigate to the\ncorrect month, and click on the corresponding day for both the start and end dates of the batch.\nThe current company populates the Company field. If operating in a multi-company\nenvironment, it is not possible to modify the Company from the form. The batch must be created while in the database for the desired company.\n\n## Add payslips to a batch\n\nOnce a batch has been created , payslips need to be added to the batch.\nPayslips can either be created and added to the batch, or if they have already been created, they can be added to the batch .\nBatches can only have payslips added to them when they are in the New stage. Payslips\ncan either be created by the database and added to the batch, or pre-existing payslips can be individually added to the batch.\nOnce either of these methods has been used, the status of the batch changes to Confirmed , and both options to add payslips no longer appears.\n\n### Generate payslips\n\nTo generate the payslips and add them to the batch, first open the batch by navigating to Payroll app ⣠Payslips ⣠Batches , and click on the desired batch. Next, click\nthe Generate Payslips button and a Generate Payslips pop-up window loads.\nThis form contains three sections, and the configuration of this form determines which payslips are\ncreated. The Employees Selection section determines which employeesâ payslips to create.\nUsing the drop-down menus, configure the Department , Job Position , and Salary Structure Type fields, if desired. As selections are made, the Employees section at the bottom updates to show which payslips are going to be\ngenerated.\nThe Payslip Generation section allows the user to pick a specific Salary\nStructure to create payslips for. If left blank, the default structure for each employee is used to\ncalculate their pay.\nBy default, Odoo lists all employees in the Employees section when generating\npayslips.\nThe list filters automatically as selections are made.\nConfiguration is optional unless a batch is being created excluding certain employees.\nOnce all the desired configurations have been made, click the Generate button, and all\npayslips are created and attached to the batch. Once generated, a Payslips smart button appears at the top, along with the number of payslips in the\nbatch. Click this smart button to view a list of all the payslips in the batch.\nOnce the payslips have been generated and attached to the batch, the status of the batch changes to Confirmed .\n\n### Add payslips\n\nInstead of generating payslips, individual payslips that have already been created can be added to a batch. Start by opening the desired batch by navigating to Payroll app ⣠Payslips ⣠Batches , and clicking on the desired batch.\nNext, click the Add Payslips button, and an Add Payslips form loads in a\npop-up window. All available payslips that have not yet been added to a batch, appear on the list.\nAll payslips not yet assigned to a batch appear in the list, regardless of status\n( Draft , Waiting , Paid , or Cancelled ). This allows\nalready processed or cancelled payslips to be grouped retroactively for reporting or record\nkeeping purposes.\nTick the checkbox next to each desired payslip to be added, then click the Select button\nat the bottom. All selected payslips are added to the batch, and the status of the batch changes to Confirmed . A Payslips smart button appears at the top, along\nwith the number of payslips in the batch. Click this smart button to view a list of all the payslips\nin the batch.\n\n## Process a batch\n\nAfter a batch has been created , and all required payslips have\nbeen added , the batch must then be processed, and employees paid.\nOpen the desired batch by navigating to Payroll app ⣠Payslips ⣠Batches , and\nclicking on the desired batch. For a batch to be processed, it must have a status of Confirmed . That means the batch has been created and payslips have been added to them,\nbut the payslips have not been processed yet.\nClick the Create Draft Entry button to confirm and create a draft of the individual\npayslips. After this occurs, the batch status changes to Done .\nAt any time, the batch needs to be reverted back to a status of New , click the Set to Draft button. This action does not remove any payslips that have already\nbeen added to the batch, instead, the status changes back to New .\nAfter any desired changes have been made, click Confirm and the batch status changes\nto Confirmed .\nIt is important to note, that if any payslips in the batch have a status of Paid , the\nbatch cannot revert to a status of New .\nOnce the status has changed to Done , the payments must be logged in the database. Click\nthe Create Payment Report button, and a pop-up window loads, where the payment report\ndetails are entered.\nUsing the drop-down menu, select the Export Format for the payment report. The two\ndefault options available are NACHA , and CSV .\nThe NACHA option creates a compatible ACH file which is sent to the companyâs bank, and\noutlines all the banking information to transfer money from the company to the employees, either via\ndirect deposit (most common) or a check. Refer to the fiscal localization document for more information.\nOther options may be available depending on the payroll localization installed in the database.\nIf CSV is selected, all other fields are hidden form view. Once this is selected,\nclick the Generate button to create the payment report.\nNext, select the desired Bank Journal the paychecks are logged on. Last, using the\ncalendar selector, set the date the paychecks are issued in the Effective Date field.\nOnce the pop-up window is configured, click the Generate button, and the file appears on\nthe batch form, in a new Payment Report field.\nAfter the report is created, click the Mark as paid button to mark the payslips as paid\nin the database.", "headings": ["View batches", "Create a new batch", "Add payslips to a batch", "Generate payslips", "Add payslips", "Process a batch"], "doc_id": "b27d2edbd1ad2cfc"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/commissions.html", "title": "Commissions", "module": "payroll", "section": "Commissions", "text": "# Commissions\n\nCommissions are payments made to employees that are earned as part of their salary. The payments are\nawarded after a sale has been made, and the amount depends on how much the sale was. Typically the\namount is either a percentage of the sale, or a set commission based on a structure created by the\ncompany.\nTo pay an employee a commission they earned, a separate commission paycheck must be issued to the\nemployee. In Odoo, a commission payslip is referred to as a warrant payslip .\n\n## Create warrant payslips\n\nWarrant payslips are generated directly from the Payslips Batches dashboard, which is\naccessed by navigating to Payroll app ⣠Payslips ⣠Batches .\nFirst, click the Generate Warrant Payslips button in the top-left corner. Doing so\nreveals a Generate Warrant Payslips pop-up window, in which the necessary information must be filled out.\nSet the time frame the commission was earned, in the two fields next to Period . Click\ninto each field, and a calendar pop-up window loads. Navigate to the desired date and click on it\nto select it.\nUsing the drop-down menu, select the Department in the corresponding field. When a\ndepartment is selected, the employees listed for that department appear in the Employee section, below.\nIf a file is needed for the record, upload a file to the Import File field, such as a\nsales invoice, using the Upload your file button. Any file type is accepted.\nUnder the Employee section, enter the individual Commission Amount for each\nemployee in the far-right column. To remove an employee, click the (trash) icon to remove the line.\nAdd a new commission by clicking Add a Line , and entering the Employee and\nthe appropriate Commission Amount .\nOnce all the commissions are properly entered, click the Generate Payslips button to\ncreate the warrant payslips in a batch, or click Export to export a CSV file of the\ncommissions.\nProcess the batch in the same way as a typical batch to complete the\npayment process.", "headings": ["Create warrant payslips"], "doc_id": "86be1ef504429a09"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/contracts.html", "title": "Contracts", "module": "payroll", "section": "Contracts", "text": "# Contracts\n\nEvery employee in Odoo is required to have a running contract in order to be paid. A contract\noutlines the terms of an employeeâs position, compensation, working hours, and any other relevant\nterms.\nContract documents (PDFs) are uploaded and organized using the Documents application, and are\nsigned using the Sign application. Ensure these applications are installed to send and sign\ncontracts. Please refer to the Documents and Sign documentation for more information.\n\n## Contracts dashboard\n\nBoth the Payroll and Employees apps display identical employee contract information .\nTo access the contracts dashboard from the Employees app, navigate to Employees\napp ⣠Employees ⣠Contracts . To access the contracts dashboard from the Payroll app,\nnavigate to Payroll app ⣠Contracts ⣠Contracts .\nThe Contracts dashboard displays all employee contracts in a default list view, grouped\nby Status . The available status groupings are New , Running , Expired , and Cancelled . Each grouping displays the number of contracts\nwithin the grouping.\nAny changes made to contracts in the Employees app is reflected in the Payroll app, and\nvice versa. Contract information remains identical, regardless of where the contract information\nis accessed.\n\n## Create a contract\n\nTo create a new contract, click the New button on the Contracts dashboard , and a blank contract form appears.\n\n### General information section\n\nEnter the following information in the top-half of the blank contract form:\n- Contact Reference : Type in the name or title for the contract, such as John Smith Contract . This field is required .\nContact Reference : Type in the name or title for the contract, such as John Smith Contract . This field is required .\n`JohnSmithContract`\n- Employee : Using the drop-down menu, select the employee the contract is for.\nEmployee : Using the drop-down menu, select the employee the contract is for.\n- Contract Start Date : Select the date the contract goes into effect. Contracts can be\ncreated retroactively, or be created to begin at a future date. The current date populates this\nrequired field by default, but can be modified.\nContract Start Date : Select the date the contract goes into effect. Contracts can be\ncreated retroactively, or be created to begin at a future date. The current date populates this\nrequired field by default, but can be modified.\n- Contract End Date : If the contract has a firm end date, enter the date in this field.\nLeave this field blank if the contract runs indefinitely, or until a new contract is made (when\nthe employee has a change to their job title, salary, or benefits).\nContract End Date : If the contract has a firm end date, enter the date in this field.\nLeave this field blank if the contract runs indefinitely, or until a new contract is made (when\nthe employee has a change to their job title, salary, or benefits).\n- Working Schedule : Select one of the available working schedules the employee is\nexpected to work, from the drop-down menu. The selected working schedule determines how work\nentries are generated, which determines the employees schedule and compensation.\nIf this field is left blank, this allows the employee to work as many or as few hours as desired\nevery week, with no restrictions. Tip The Working Schedule drop-down menu displays all the working schedules for the\nselected company. To modify or add to this list, go to Payroll app â£\nConfiguration ⣠Working Schedules . Click New , and create a new working schedule,\nor click on an existing working schedule and make edits.\nWorking Schedule : Select one of the available working schedules the employee is\nexpected to work, from the drop-down menu. The selected working schedule determines how work\nentries are generated, which determines the employees schedule and compensation.\nIf this field is left blank, this allows the employee to work as many or as few hours as desired\nevery week, with no restrictions.\nThe Working Schedule drop-down menu displays all the working schedules for the\nselected company. To modify or add to this list, go to Payroll app â£\nConfiguration ⣠Working Schedules . Click New , and create a new working schedule,\nor click on an existing working schedule and make edits.\n- Work Entry Source : Using the drop-down menu, select how the work entries are generated. This field is required . Click the radio button next to the\ndesired selection. The options are: Working Schedule : Work entries are generated based on the selected Working Schedule . Attendances : Work entries are generated based on the employeeâs check-in records in\nthe Attendances app. (This requires the Attendances app to be installed). Planning : Work entries are generated based on the planned schedule for the employee\nfrom the Planning app. (This requires the Planning app to be installed).\nWork Entry Source : Using the drop-down menu, select how the work entries are generated. This field is required . Click the radio button next to the\ndesired selection. The options are:\n- Working Schedule : Work entries are generated based on the selected Working Schedule .\nWorking Schedule : Work entries are generated based on the selected Working Schedule .\n- Attendances : Work entries are generated based on the employeeâs check-in records in\nthe Attendances app. (This requires the Attendances app to be installed).\nAttendances : Work entries are generated based on the employeeâs check-in records in\nthe Attendances app. (This requires the Attendances app to be installed).\n- Planning : Work entries are generated based on the planned schedule for the employee\nfrom the Planning app. (This requires the Planning app to be installed).\nPlanning : Work entries are generated based on the planned schedule for the employee\nfrom the Planning app. (This requires the Planning app to be installed).\n- Salary Structure Type : Select one of the salary structure types from the drop-down\nmenu. The default salary structure types are Employee or Worker . A new salary structure type can be created, if needed.\nSalary Structure Type : Select one of the salary structure types from the drop-down\nmenu. The default salary structure types are Employee or Worker . A new salary structure type can be created, if needed.\n- Department : Select the department the employee is working within, using the drop-down\nmenu.\nDepartment : Select the department the employee is working within, using the drop-down\nmenu.\n- Job Position : Select the employeeâs specific job position using the drop-down menu. Note If the selected Job Position has a contract template linked to it with a specific Salary Structure Type , the Salary Structure Type changes to the one\nassociated with that Job Position .\nJob Position : Select the employeeâs specific job position using the drop-down menu.\nIf the selected Job Position has a contract template linked to it with a specific Salary Structure Type , the Salary Structure Type changes to the one\nassociated with that Job Position .\n- Contract Type : Using the drop-down menu, select the type of contract being created.\nThe default options are Permanent , Temporary , Seasonal , Full-Time , Intern , Student , Apprenticeship , Thesis , Statutory , and Employee .\nContract Type : Using the drop-down menu, select the type of contract being created.\nThe default options are Permanent , Temporary , Seasonal , Full-Time , Intern , Student , Apprenticeship , Thesis , Statutory , and Employee .\n- Wage on Payroll : Enter the employeeâs monthly wage in this field. Tip The Working Schedule drop-down menu displays all the working times for the selected Company . To modify or add to this list, go to Payroll app â£\nConfiguration ⣠Working Times , and either Create a new working time, or click on\nan existing working time, then edit it by clicking Edit .\nWage on Payroll : Enter the employeeâs monthly wage in this field.\nThe Working Schedule drop-down menu displays all the working times for the selected Company . To modify or add to this list, go to Payroll app â£\nConfiguration ⣠Working Times , and either Create a new working time, or click on\nan existing working time, then edit it by clicking Edit .\n- HR Responsible : Select the person who is responsible for validating the contract using\nthe drop-down menu. This field is required. Note The HR Responsible field only appears if the Salary Configurator ( hr_contract_salary ) module and the Sign app are both installed.\nHR Responsible : Select the person who is responsible for validating the contract using\nthe drop-down menu. This field is required.\nThe HR Responsible field only appears if the Salary Configurator ( hr_contract_salary ) module and the Sign app are both installed.\n`hr_contract_salary`\n\n### Salary information tab\n\nThe Salary Information tab is where the specific details of how much and how often the\nemployee is paid. Fill in the following fields in this tab:\n- Wage Type : Using the drop-down menu, select what kind of pay the employee receives.\nThe two default options are Fixed Wage or Hourly Wage . Select Fixed Wage for salaried employees, and select Hourly Wage for employees\nwho are paid based on their logged worked hours.\nWage Type : Using the drop-down menu, select what kind of pay the employee receives.\nThe two default options are Fixed Wage or Hourly Wage . Select Fixed Wage for salaried employees, and select Hourly Wage for employees\nwho are paid based on their logged worked hours.\n- Schedule Pay : Using the drop-down menu, select how often the employee is paid. The\ndefault options are Annually , Semi-annually , Quarterly , Bi-monthly , Monthly , Semi-monthly , Bi-weekly , Weekly , or Daily .\nSchedule Pay : Using the drop-down menu, select how often the employee is paid. The\ndefault options are Annually , Semi-annually , Quarterly , Bi-monthly , Monthly , Semi-monthly , Bi-weekly , Weekly , or Daily .\n- Wage : Enter the amount the employee receives each pay period. The first field allows\nfor a wage to be entered, the second field displays how often the pay is issued to the employee.\nThe second field cannot be modified, and is updated when the Schedule Pay field\nchanges.\nWage : Enter the amount the employee receives each pay period. The first field allows\nfor a wage to be entered, the second field displays how often the pay is issued to the employee.\nThe second field cannot be modified, and is updated when the Schedule Pay field\nchanges.\n- Yearly Cost (Real) : This field automatically updates after the Schedule\nPay and Wage fields are entered. This amount is the total yearly cost for the\nemployer. This field can be modified. However, if this is modified, the Wage field\nupdates, accordingly. Ensure both the Wage and Yearly Cost (Real) are\ncorrect if this field is modified.\nYearly Cost (Real) : This field automatically updates after the Schedule\nPay and Wage fields are entered. This amount is the total yearly cost for the\nemployer. This field can be modified. However, if this is modified, the Wage field\nupdates, accordingly. Ensure both the Wage and Yearly Cost (Real) are\ncorrect if this field is modified.\n- Monthly Cost (Real) : This field automatically updates after the Schedule\nPay and Wage fields are entered. This amount is the total monthly cost for the\nemployer. This field cannot be modified, and is calculated based on the Yearly Cost\n(Real) .\nMonthly Cost (Real) : This field automatically updates after the Schedule\nPay and Wage fields are entered. This amount is the total monthly cost for the\nemployer. This field cannot be modified, and is calculated based on the Yearly Cost\n(Real) .\n\n### Details tab\n\nThe Details tab of the contract houses the contract template information, accounting\ninformation (refer to the country-specific localization document for\nmore information), any part time work information, and notes. Fill out the following fields in this\ntab:\n- Contract Template : Using the drop-down menu, select a contract template to use when making an offer to an applicant.\nContract Template : Using the drop-down menu, select a contract template to use when making an offer to an applicant.\n- Originated Offer : This field automatically populates with the original offer sent to\nthe employee. This field is not modifiable, and is only populated if applicable.\nOriginated Offer : This field automatically populates with the original offer sent to\nthe employee. This field is not modifiable, and is only populated if applicable.\n- Part Time : Tick the checkbox if the contract is for part time work. Once enabled, a\npercentage field appears next to the checkbox. The percentage cannot be modified, and\nautomatically updates based on the selected Working Schedule in the top-half of the\ncontract, compared to the typical working schedule for the company (typically 40 hours/week). Standard Calendar : This field is automatically populated with the default working\nschedule for the company. In most cases, this is Standard 40 hours/week . Part Time Work Entry Type : Using the drop-down menu, select the work entry type that\ngenerates the balance of a full-time working schedule. Example An employee contract is being created for a part-time employee who works 20 hours a week. To configure this, the employeeâs Working Schedule is set to 20\nHours/Part time in the general information section . In the Details tab, the Part Time checkbox is ticked, and the percentage is\nset to 50 . The Standard Calendar is set to Standard 40 hours/week ,\nand the Part Time Work Entry Type is set to Unpaid . When a typical work week is processed in the Payroll app, the employee generates twenty\n(20) hours of regular work entries under the work entry type Attendance , and another twenty\n(20) hours of work entries under the work entry type Unpaid , for a total of forty (40) hours\nworth of work entries.\nPart Time : Tick the checkbox if the contract is for part time work. Once enabled, a\npercentage field appears next to the checkbox. The percentage cannot be modified, and\nautomatically updates based on the selected Working Schedule in the top-half of the\ncontract, compared to the typical working schedule for the company (typically 40 hours/week).\n- Standard Calendar : This field is automatically populated with the default working\nschedule for the company. In most cases, this is Standard 40 hours/week .\nStandard Calendar : This field is automatically populated with the default working\nschedule for the company. In most cases, this is Standard 40 hours/week .\n- Part Time Work Entry Type : Using the drop-down menu, select the work entry type that\ngenerates the balance of a full-time working schedule.\nPart Time Work Entry Type : Using the drop-down menu, select the work entry type that\ngenerates the balance of a full-time working schedule.\nAn employee contract is being created for a part-time employee who works 20 hours a week.\nTo configure this, the employeeâs Working Schedule is set to 20\nHours/Part time in the general information section . In the Details tab, the Part Time checkbox is ticked, and the percentage is\nset to 50 . The Standard Calendar is set to Standard 40 hours/week ,\nand the Part Time Work Entry Type is set to Unpaid .\n`50`\nWhen a typical work week is processed in the Payroll app, the employee generates twenty\n(20) hours of regular work entries under the work entry type Attendance , and another twenty\n(20) hours of work entries under the work entry type Unpaid , for a total of forty (40) hours\nworth of work entries.\n`Attendance`\n`Unpaid`\n- Notes : Enter any relevant notes for the contract in this field.\nNotes : Enter any relevant notes for the contract in this field.\n\n### Signatories tab\n\nThe Signatories tab is where the default contract templates are selected, for both new\nand updated contracts.\nUsing the drop-down menu, select the default contract template to use when creating a new or updated\ncontract, in the respective fields.\nOnce a PDF template is selected, any mapped signature fields in the file appear in a list, below the\nselection, identifying who must sign the document. These fields cannot be updated.\nAny changes to the template and signatories but be done in the Sign app, where contract\ntemplates are uploaded, modified, and stored.\nThe PDF Template fields are only visible if the Sign app is installed, along with\nthe hr_contract_salary and hr_contract_salary_payroll modules .\n\n### Personal documents tab\n\nOccasionally, additional paperwork may be required when creating a contract, such as legal documents\ndeclaring the employee is able to work in the country. When this situation occurs, Odoo allows for\none image file of the necessary document to be attached to a contract in the Personal\nDocuments tab.\nClick the Upload your file button, navigate to the desired document, and click Select to attach the file to the contract. The file name appears on the Image line.\nThis tab only appears after an Employee is selected. Additionally, only image\nfiles can be attached in this field at this time.\n\n### Salary attachments\n\nAfter an employee is selected for the contract, a Salary Attachments smart button appears at the top of the page.\nFor new employees who do not currently have a contract, the smart button displays New .\nIf the contract is being updated for a current employee who already has salary attachments\nconfigured, the smart button displays the number of salary attachments currently running.\nCreate or update any necessary salary attachments for the contract,\nbefore sending.\n\n## Send a contract\n\nAfter a contract has been created and configured, the next step is to send it to the employee or\napplicant. Click the Generate Offer button, and the Offer for (Employee) form loads.\nThe Offer for (Employee) form displays all the basic information from the contract, as\nwell as a link the employee can use to sign the contract. The last field on the form is a Validity Days Count field. This indicates how long the offer is valid. Enter the desired\nnumber of days in the field. The default is 30 days.\n`30`\nClick Send By Email and a pop-up email window loads, using a preconfigured default email\ntemplate. Click Send to send the offer.\nIn order to send a contract using the Generate Offer button, there must be an\nemployee signature field on the contract PDF being sent.\n\n## Contract status\n\nWhen creating and sending out a contract, the default status of the contract is New .\nOnce there is a minimum of one completed signature on the document, the status changes to Partially Signed . Internal users, such as HR and recruitment employees, are alerted in\nthe database when there is a signature requested of them.\nAfter all required parties have signed the contract, the status changes to Fully Signed .\nAll status changes happen automatically as the document is signed.\n\n## Contract templates\n\nContract templates eliminate the need to configure new contracts every time an employee is\nhired.\nHaving multiple contract templates allows for faster contract creation for different types of\nemployment positions that are commonly filled, such as full time, part time, seasonal, etc.\nContract templates are created through the Payroll app configuration menu, and stored in the Documents app.\nTo access contract templates, the Salary Configurator ( hr_contract_salary ) module must be installed .\n`hr_contract_salary`\nTo view all contract templates, navigate to Payroll app ⣠Configuration â£\nTemplates .\nThe Contract Templates page lists all existing templates. Click a template line to open\nand edit it.\nTo create a new contract template, click the New button. Then, enter the following\ninformation on the blank contract template form that appears:\n- Contract Reference : Enter a brief description for the template. This should be clear\nand easily understood, as this name appears in the Recruitment application, as well.\nContract Reference : Enter a brief description for the template. This should be clear\nand easily understood, as this name appears in the Recruitment application, as well.\n- Working Schedule : Select the desired working schedule the contract applies to from the\ndrop-down menu. If a new working schedule is needed, create a new working schedule .\nWorking Schedule : Select the desired working schedule the contract applies to from the\ndrop-down menu. If a new working schedule is needed, create a new working schedule .\n- Work Entry Source : Select how the work entries are generated .\nWork Entry Source : Select how the work entries are generated .\n- Salary Structure Type : Select the salary structure type from the drop-down menu.\nSalary Structure Type : Select the salary structure type from the drop-down menu.\n- Department : Select the department the contract template applies to from the drop-down\nmenu. If blank, the template applies to all departments.\nDepartment : Select the department the contract template applies to from the drop-down\nmenu. If blank, the template applies to all departments.\n- Job Position : Select the job position the contract\ntemplate applies to from the drop-down menu. If blank, the template applies to all job positions.\nJob Position : Select the job position the contract\ntemplate applies to from the drop-down menu. If blank, the template applies to all job positions.\n- Contract Type : Select the type of contract from the drop-down menu. This list is the\nsame as the employment type .\nContract Type : Select the type of contract from the drop-down menu. This list is the\nsame as the employment type .\n- Wage on Payroll : Enter the monthly wage in the field.\nWage on Payroll : Enter the monthly wage in the field.\n- HR Responsible : Select the employee responsible for validating contracts, using this\ntemplate, from the drop-down menu.\nHR Responsible : Select the employee responsible for validating contracts, using this\ntemplate, from the drop-down menu.\n\n### Salary information tab\n\n- Wage Type : Select either Fixed Wage or Hourly Wage from the\ndrop-down menu.\nWage Type : Select either Fixed Wage or Hourly Wage from the\ndrop-down menu.\n- Schedule Pay : Using the drop-down menu, select how often the employee is paid. Options\ninclude Annually , Semi-annually , Quarterly , Bi-monthly , Monthly , Semi-monthly , Bi-weekly , Weekly , or Daily .\nSchedule Pay : Using the drop-down menu, select how often the employee is paid. Options\ninclude Annually , Semi-annually , Quarterly , Bi-monthly , Monthly , Semi-monthly , Bi-weekly , Weekly , or Daily .\n- Wage : Enter the gross wage. The time period presented in this field is based on what\nis selected for the Scheduled Pay field. It is recommended to populate the Yearly Cost (Real) field first , since that entry updates this field automatically.\nWage : Enter the gross wage. The time period presented in this field is based on what\nis selected for the Scheduled Pay field. It is recommended to populate the Yearly Cost (Real) field first , since that entry updates this field automatically.\n- Yearly Cost (Real) : Enter the total yearly cost the employee costs the employer. When\nthis value is entered, the Monthly Cost (Real) is automatically updated.\nYearly Cost (Real) : Enter the total yearly cost the employee costs the employer. When\nthis value is entered, the Monthly Cost (Real) is automatically updated.\n- Monthly Cost (Real) : This field is not editable. The value is automatically\npopulated after the Yearly Cost (Real) is entered.\nMonthly Cost (Real) : This field is not editable. The value is automatically\npopulated after the Yearly Cost (Real) is entered.\nThe Schedule Pay , Wage , and Yearly Cost (Real) fields are all\nlinked. If any of these fields are updated, the other two fields automatically update to reflect\nthe change. It is best practice to check these three fields if any modifications have been made,\nto ensure they are accurate.\n\n#### Benefits and deductions\n\nDepending on the payroll localization for the company, the entries\npresented in this section either vary, or may not appear at all. For example, some entries may\npertain to retirement accounts, health insurance benefits, and commuter benefits.\nEnter the monetary amounts or percentages to specify how much of the employeeâs salary goes to the\nvarious benefits and deductions.\n\n### Signatories tab\n\nThis tab outlines which documents the employee must sign to either accept a new offer or an updated\ncontract.\n- New Contract PDF Template : Select the default document that a new employee has to sign\nto accept an offer.\nNew Contract PDF Template : Select the default document that a new employee has to sign\nto accept an offer.\n- Contract Update PDF Template : Select the default document that a current employee has\nto sign to update their contract.\nContract Update PDF Template : Select the default document that a current employee has\nto sign to update their contract.\n- Documents", "headings": ["Contracts dashboard", "Create a contract", "General information section", "Salary information tab", "Details tab", "Signatories tab", "Personal documents tab", "Salary attachments", "Send a contract", "Contract status", "Contract templates", "Salary information tab", "Signatories tab"], "doc_id": "8b247802aca6ac85"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/headcount.html", "title": "Headcount report", "module": "payroll", "section": "Headcount report", "text": "# Headcount report\n\nThe Headcount report in the Payroll app shows the number of employees on payroll and allows\nheadcount comparisons between different periods of time.\n\n## Create a headcount report\n\nCreate a headcount report to see the number of employees at a specific time or compare headcounts\nacross periods.\nTo create a headcount report, navigate to Payroll app ⣠Reporting ⣠Headcount and click New .\n- Report name: generated automatically as Headcount for (Company Name) on the (YYYY-MM-DD) and cannot be modified.\nReport name: generated automatically as Headcount for (Company Name) on the (YYYY-MM-DD) and cannot be modified.\n`Headcountfor(CompanyName)onthe(YYYY-MM-DD)`\n- Company : populated automatically (works in both single and multi-company databases)\nCompany : populated automatically (works in both single and multi-company databases)\n- From / To dates: defaults to current date (from) and blank (to). Adjust\nthese to define the period to analyze.\nFrom / To dates: defaults to current date (from) and blank (to). Adjust\nthese to define the period to analyze.\nNext, click Populate to generate the report.\nAt the top of the form, a Employees smart button appears. Clicking the\nbutton displays the total number of employees for the selected period.\n\n## View all headcount reports\n\nSee how the company headcount has changed over time by viewing all headcount reports in a list view.\nTo view all headcount reports, navigate to Payroll app ⣠Reporting ⣠Headcount .\n\n### View employees in a headcount\n\nTO get an overall view of employees and their salary impact on the company, view all employee\nrecords of a specific headcount report.\nTo view the employees of a specific headcount report, click the Employees smart button at the top of a headcount report.\nAll employees from the headcount appear in a list view, grouped by Department .\n- Employee : the employeeâs full name\nEmployee : the employeeâs full name\n- Department : the department their job position is in\nDepartment : the department their job position is in\n- Job Title : their role\nJob Title : their role\n- Employer Cost : how much the company pays the employee each pay-period\nEmployer Cost : how much the company pays the employee each pay-period\n- Wage on Payroll : the dollar amount on payroll reports\nWage on Payroll : the dollar amount on payroll reports", "headings": ["Create a headcount report", "View all headcount reports", "View employees in a headcount"], "doc_id": "cad3188c0f05e0bf"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/payroll_analysis.html", "title": "Payroll analysis", "module": "payroll", "section": "Payroll analysis", "text": "# Payroll analysis\n\nThe Payroll Analysis report displays the total net wage for the company, for the last 365 days.\nThis report allows companies to view their payroll costs and identify any trends.\nTo view the Payroll Analysis report, navigate to Payroll app ⣠Reporting â£\nPayroll .\nNet Wage is the default metric displayed in the report, but other measures can be\ndisplayed if desired, such as gross wage or days of paid time off . Click the Measures button to view a drop-down menu of other metrics to\ndisplay. Click on the desired measure to display the results.\n\n## View multiple metrics\n\nIt is possible to view multiple metrics at one time by viewing the report in the pivot table view.\nThis can aid management to determine other trends, such as which departments do not take time off,\nor which departments have the highest payroll costs.\nOnly one measure is able to be displayed in the default Graph view. Multiple measures are only possible in the Pivot view.\nTo display the data in a pivot table, click on the Pivot button.\nThe default information displayed includes the number of payslips ( # Payslip ), the\nnumber of Days of Paid Time Off and Days of Unpaid Time Off , along with the Net Wage and Gross Wage . All the information is organized by department.\nTo display more information on the report, click the Measures button to reveal a drop-down menu. Click on any metric to display it on the pivot table.\n\n## Use case: comparing payroll costs\n\nManagers can compare payroll costs, and determine which departments have raised their payroll costs,\neither by hiring more employees, or by raising salaries.\nTo compare previous periods of time, first view the Payroll Analysis report in a pivot table . Then, click the (Toggle Search\nPanel) icon in the search bar, and click Start Date to reveal a\nlist of time periods (months, quarters, and years). Click on a desired time period, and a Comparison section appears in the search bar. Click on one of the two\navailable options, either Start Date: Previous Period , or Start Date:\nPrevious Year .\nThe report now displays three columns of information for every displayed measure: a column for the\ncurrent time period, a column for the previous time period, and a Variation column,\nwhich displays the difference between the two time periods in a color-coded percentage (green for\nincreases, red for decreases.)\nIn this example, the data shows an overall increase in the number of payslips. Since the company\npays all employees every two weeks, an increase in the number of payslips ( #\nPayslips ) means that more employees were hired, in this example, a 500% increase.\nAdditionally, both the Net Wage and Gross Wage increased. The department RD US showed the largest growth, with both metrics increasing by approximately 350%.", "headings": ["View multiple metrics", "Use case: comparing payroll costs"], "doc_id": "26385464567dfa1e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/payroll_localizations.html", "title": "Payroll localizations", "module": "payroll", "section": "Payroll localizations", "text": "# Payroll localizations\n\nLocalizations are country-specific settings preconfigured in Odoo at the creation of the database,\nwhich account for all taxes, fees, and allowances for that particular country.\nPayroll localizations refer to the specific process of adapting payroll systems, policies, and\ncompliance measures to align with the specific labor laws, tax regulations, and social security\nrequirements of a particular country or region.\nThis ensures that employee salaries, benefits, deductions, and contributions are processed\naccurately and in full compliance with local legal and financial obligations.\nLocalization also includes integrating country-specific payroll elements such as benefits, holidays,\ntermination rules, and reporting requirements, helping businesses avoid legal risks while ensuring\nemployees receive their correct compensation.\n\n## Install localization package\n\nA country-specific localization module must be installed to properly\nconfigure and process payroll. To install the required module, first open the Apps app.\nClear out the default Apps filter, then type the name of the desired\ncountry into the search bar. All available modules for that country are presented.\nSome countries only have one localization module, while other have multiple modules. This is\ntypically when other software is neede to process payroll, and importing and exporting data is\nrequired.\nFor example. when searching for Payroll modules for Egypt , the following modules appear in\nthe search, and must be installed: Egypt - Payroll and Egypt - Payroll with Accounting .\n`Egypt`\n`Egypt-Payroll`\n`Egypt-PayrollwithAccounting`\nRefer to the country-specific documentation for a\ncomplete list of the related Payroll modules required for each specific country.\nTo see if any localization modules have been installed on the database, navigate to Payroll app ⣠Configuration ⣠Settings . In the Settings page, if\na localization module was installed, a (Country) Localization section appears.\nIt is not recommended to alter the localization settings, unless specifically required.\nOdoo can handle a multi-company configuration. This is generally done when there is a main\ncompany or office location, such as a headquarters, and there are other offices/branches around\nthe country or globe, that fall under that main company or headquarters. In Odoo, each company,\nincluding the headquarters, must be set up as their own company/branch using the multi-company\nmethod.\nEach individual company can have a different localization setting, since locations can vary\nanywhere in the world, where rules and laws differ.\nFor more information on companies, refer to the Companies documentation, which covers how to set up companies.\n\n## List of countries\n\nPayroll localization modules are available for the countries listed below.\nNew countries are frequently added to this list, as Odoo keeps expanding and improving existing\nlocalizations and related documentation.\n- Australia\n- Belgium\n- Bangladesh\n- Hong Kong\n- Indonesia\n- Jordan\n- Lithuania\n- Luxembourg\n- Malaysia\n- Mexico\n- Morocco\n- Netherlands\n- Pakistan\n- Poland\n- Romania\n- Saudi Arabia\n- Slovakia\n- Switzerland\n- Türkiye\n- United Arab Emirates\n- United States", "headings": ["Install localization package", "List of countries"], "doc_id": "bf294cbb809b1f62"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/payroll_localizations/australia.html", "title": "Australia", "module": "payroll", "section": "Australia", "text": "# Australia\n\nOdoo is currently in the process of becoming compliant with STP Phase 2 and SuperStream. An\nannouncement will be made as soon as companies can use Odoo for payroll as a one-stop platform.\n\n## Setting up employees\n\n### Employee settings\n\nCreate an employee by going to Employees ⣠New . Go to the Settings tab, and configure the Australian Payroll section, for example checking if they are Non-resident , if they benefit from the Tax-free Threshold , their TFN Status , Employee Type , etc.\n\n### Employee private information\n\nIn addition, some personal employee information is required for payroll compliance with Single Touch\nPayroll, and to process superannuation payments. Open the employeeâs Private Information tab and fill in the following fields:\n- Private Address\n- Private Email\n- Private Phone\n- Date of Birth\nOdoo will remind you to complete the required data at different stages of the process.\n\n### Super accounts and funds\n\nYou can add the superannuation details of new employees under the employeeâs Super\nAccounts tab. Click Add a line and make sure to include the Member Since date, Member Number , and Super Fund .\nUse the Proportion field if an employeeâs contributions should sent to multiple\nfunds at a time.\nTo create a new Super Fund , start typing its name and click Create and\nedit⦠. Fill in its:\n- Address\n- Type (APRA / SMSF)\n- unique identifier ( USI for APRA, ESA for SMSF)\nunique identifier ( USI for APRA, ESA for SMSF)\n- (for SMFS only) Bank Account\n(for SMFS only) Bank Account\nManage all super accounts and funds by going to Payroll ⣠Configuration â£\nSuper Funds or Super Accounts .\nOdoo is currently in the process of becoming SuperStream-compliant.\n\n### Contracts\n\nOnce the employee has been created, create their employment contract by clicking the Contracts smart button, or by going to Employees ⣠Employees â£\nContracts .\nOnly one contract can be active per employee at a time. However, an employee can be assigned\nconsecutive contracts during their employment.\n\n#### Employment contract creation: recommended steps\n\n#### 1. Basic contractual information\n\n- Select the Contract Start Date and Working Schedule (set, or flexible for\ncasual workers).\nSelect the Contract Start Date and Working Schedule (set, or flexible for\ncasual workers).\n- Keep the Salary Structure Type set to Australian Employee . This structure\ncovers all of the ATOâs tax schedules.\nKeep the Salary Structure Type set to Australian Employee . This structure\ncovers all of the ATOâs tax schedules.\n- (if using the Attendances or Planning app) Select the Work Entry Source to define how\nworking hours and days are accounted for on the employeeâs payslip. Working Schedule : work entries are automatically generated based on the employeeâs\nworking schedule, starting from the contractâs start date. Example An employee works 38 hours a week, their contract begins on 01/01, todayâs date is 16/01, and\nthe user generates a pay run from 14/01 to 20/01. The working hours on the payslip will be\nautomatically calculated to be 38 hours (5 * 7.36 hours) if no unpaid leave is taken. Attendances : the working schedule is ignored, and work entries are only generated\nafter clocking in and out of the Attendances app. Note that attendances can be imported. Planning : the working schedule is ignored, and work entries are generated from\nplanning shifts in the Planning app. Important Timesheets do not impact work entries in Odoo. If you need to import your timesheets in Odoo,\nimport them by going to Payroll ⣠Work Entries ⣠Work Entries instead.\n(if using the Attendances or Planning app) Select the Work Entry Source to define how\nworking hours and days are accounted for on the employeeâs payslip.\n- Working Schedule : work entries are automatically generated based on the employeeâs\nworking schedule, starting from the contractâs start date. Example An employee works 38 hours a week, their contract begins on 01/01, todayâs date is 16/01, and\nthe user generates a pay run from 14/01 to 20/01. The working hours on the payslip will be\nautomatically calculated to be 38 hours (5 * 7.36 hours) if no unpaid leave is taken.\nWorking Schedule : work entries are automatically generated based on the employeeâs\nworking schedule, starting from the contractâs start date.\nAn employee works 38 hours a week, their contract begins on 01/01, todayâs date is 16/01, and\nthe user generates a pay run from 14/01 to 20/01. The working hours on the payslip will be\nautomatically calculated to be 38 hours (5 * 7.36 hours) if no unpaid leave is taken.\n- Attendances : the working schedule is ignored, and work entries are only generated\nafter clocking in and out of the Attendances app. Note that attendances can be imported.\nAttendances : the working schedule is ignored, and work entries are only generated\nafter clocking in and out of the Attendances app. Note that attendances can be imported.\n- Planning : the working schedule is ignored, and work entries are generated from\nplanning shifts in the Planning app.\nPlanning : the working schedule is ignored, and work entries are generated from\nplanning shifts in the Planning app.\nTimesheets do not impact work entries in Odoo. If you need to import your timesheets in Odoo,\nimport them by going to Payroll ⣠Work Entries ⣠Work Entries instead.\n\n#### 2. Salary Information tab\n\n- Wage Type : select Fixed Wage for full-time and part-time employees, and Hourly Wage for casual workers. The latter allows you to add a Casual\nLoading percentage. Note For hourly workers, the Hourly Wage field should exclude casual loading.\nWage Type : select Fixed Wage for full-time and part-time employees, and Hourly Wage for casual workers. The latter allows you to add a Casual\nLoading percentage.\nFor hourly workers, the Hourly Wage field should exclude casual loading.\n- Schedule Pay : in Australia, only the following pay run frequencies are accepted: Daily , Weekly , Bi-weekly (or fortnightly), Monthly , and Quarterly .\nSchedule Pay : in Australia, only the following pay run frequencies are accepted: Daily , Weekly , Bi-weekly (or fortnightly), Monthly , and Quarterly .\n- Wage / period : assign a wage to the contract according to their pay frequency. On\npayslips, the corresponding annual and hourly rates will be computed automatically.\nWage / period : assign a wage to the contract according to their pay frequency. On\npayslips, the corresponding annual and hourly rates will be computed automatically.\n\n#### 3. Australia tab\n\n- General Add the Regular Pay Day if relevant. Enable Report in BAS - W3 if you choose to add PAYG withholding amounts in BAS\nsection W3 instead of W2 (refer to the ATOâs web page on PAYG withholding for more information).\n- Add the Regular Pay Day if relevant.\nAdd the Regular Pay Day if relevant.\n- Enable Report in BAS - W3 if you choose to add PAYG withholding amounts in BAS\nsection W3 instead of W2 (refer to the ATOâs web page on PAYG withholding for more information).\nEnable Report in BAS - W3 if you choose to add PAYG withholding amounts in BAS\nsection W3 instead of W2 (refer to the ATOâs web page on PAYG withholding for more information).\n- Leave loading / workplace giving Define whether your employees are Eligible for Leave Loading . Set the Workplace Giving Employee amount in exchange for deductions. Set the Salary Sacrificed Workplace Giving amount (e.g., receiving a benefit instead\nof a deduction).\nLeave loading / workplace giving\n- Define whether your employees are Eligible for Leave Loading .\nDefine whether your employees are Eligible for Leave Loading .\n- Set the Workplace Giving Employee amount in exchange for deductions.\nSet the Workplace Giving Employee amount in exchange for deductions.\n- Set the Salary Sacrificed Workplace Giving amount (e.g., receiving a benefit instead\nof a deduction).\nSet the Salary Sacrificed Workplace Giving amount (e.g., receiving a benefit instead\nof a deduction).\n- Super contributions Add the Extra Negotiated Super % on top of the super guarantee . Add the Extra Compulsory Super % as per industrial agreements or awards obligations.\n- Add the Extra Negotiated Super % on top of the super guarantee .\nAdd the Extra Negotiated Super % on top of the super guarantee .\n- Add the Extra Compulsory Super % as per industrial agreements or awards obligations.\nAdd the Extra Compulsory Super % as per industrial agreements or awards obligations.\n- Salary sacrifice Salary Sacrifice Superannuation allows employees to sacrifice part of their salary\nin favor of reportable employer superannuation contributions (RESC). Salary Sacrifice Other Benefits allows them to sacrifice part of their salary\ntowards some other form of benefit (refer to the ATOâs web page on Salary sacrificing for\nemployees for more information). Note As of Odoo 18, salary sacrificing for other benefits currently does not impact fringe\nbenefits tax (FBT) reporting.\n- Salary Sacrifice Superannuation allows employees to sacrifice part of their salary\nin favor of reportable employer superannuation contributions (RESC).\nSalary Sacrifice Superannuation allows employees to sacrifice part of their salary\nin favor of reportable employer superannuation contributions (RESC).\n- Salary Sacrifice Other Benefits allows them to sacrifice part of their salary\ntowards some other form of benefit (refer to the ATOâs web page on Salary sacrificing for\nemployees for more information). Note As of Odoo 18, salary sacrificing for other benefits currently does not impact fringe\nbenefits tax (FBT) reporting.\nSalary Sacrifice Other Benefits allows them to sacrifice part of their salary\ntowards some other form of benefit (refer to the ATOâs web page on Salary sacrificing for\nemployees for more information).\nAs of Odoo 18, salary sacrificing for other benefits currently does not impact fringe\nbenefits tax (FBT) reporting.\n\n#### 4. Salary attachments\n\nIf the employee is to receive additional recurring payments every pay run, whether indefinitely or\nfor a set number of periods, click the Salary Attachments smart button\non the contract. Choose a Type and a Description .\nAround 32 recurring salary attachment types exist for Australia. These are mostly related to\nallowances and child support. Contact us for more information as\nto whether allowances from your industry can be covered.\n\n#### 5. Run the contract\n\nOnce all the information has been completed, change the contract stage from New to Running .\n\n## Prepare pay runs\n\n### Regular\n\nPay runs are created by going to Payroll ⣠Payslips ⣠Batches . After clicking New , enter a Batch Name , select a Period , and click Generate Payslips .\nEmployees on a pay run can be filtered down by Department and Job Position .\nThere is no limit to the amount of payslips that can be created in one batch. After clicking Generate , one payslip is created per employee in the Waiting stage, in which\nthey can be reviewed and amended before validation.\nOn the payslip form view, there are two types of inputs:\n- Worked days are computed based on the work entry source set on the employeeâs\ncontract . Work entries can be configured according to different types: attendance, overtime,\nSaturday rate, Sunday rate, public holiday rate, etc.\nWorked days are computed based on the work entry source set on the employeeâs\ncontract . Work entries can be configured according to different types: attendance, overtime,\nSaturday rate, Sunday rate, public holiday rate, etc.\n- Other inputs are individual payments or amounts of different types (allowances, lump sums, deductions, termination payments,\nleaves, etc.) that have little to do with the hours worked during the current pay period. The previously configured salary attachments are simply\nrecurring other inputs attached to a contract.\nOther inputs are individual payments or amounts of different types (allowances, lump sums, deductions, termination payments,\nleaves, etc.) that have little to do with the hours worked during the current pay period. The previously configured salary attachments are simply\nrecurring other inputs attached to a contract.\nUnder the Salary Computation tab, Odoo automatically computes payslip rules based on\nemployees, contracts, worked hours, other input types, and salary attachments.\nThe salary structure Australian Employee has 35 payslip rules that automatically compute and\ndynamically display according to the payslip inputs.\nThe following rules apply for that pay period in the above example:\n- Basic Salary : pre-sacrifice gross salary\nBasic Salary : pre-sacrifice gross salary\n- Ordinary Time Earnings : amount to which the super guarantee percentage needs to be\napplied\nOrdinary Time Earnings : amount to which the super guarantee percentage needs to be\napplied\n- Salary Sacrifice Total : includes the $150 sacrificed to superannuation\nSalary Sacrifice Total : includes the $150 sacrificed to superannuation\n- Taxable Allowance Payments : includes the $10 allowance ( cents per KM in this\ncase)\nTaxable Allowance Payments : includes the $10 allowance ( cents per KM in this\ncase)\n- Taxable Salary : gross salary amount minus non-taxable amounts\nTaxable Salary : gross salary amount minus non-taxable amounts\n- Salary Withholding and Total Withholding : amounts to be withheld from\nthe taxable salary\nSalary Withholding and Total Withholding : amounts to be withheld from\nthe taxable salary\n- Net Salary : the employeeâs net wage\nNet Salary : the employeeâs net wage\n- Concessional Super Contribution : in this scenario, the amount sacrificed to\nsuperannuation, payable to the employeeâs super fund in addition to the super guarantee\nConcessional Super Contribution : in this scenario, the amount sacrificed to\nsuperannuation, payable to the employeeâs super fund in addition to the super guarantee\n- Super Guarantee : as of 01 July 2024, it is computed as 11.5% of the ordinary time\nearnings amount\nSuper Guarantee : as of 01 July 2024, it is computed as 11.5% of the ordinary time\nearnings amount\nAs of Odoo 18, the most recent tax schedule rates (2024-2025) have been updated for all salary\nrules and computations.\n\n### Out-of-cycle\n\nIn Australia, payslips created without a batch are considered to be out-of-cycle runs. Create them\nby going to Payroll ⣠Payslips ⣠Individual Payslips . The same payslip rules\napply, but the way these payslips are submitted to the ATO in the frame of Single Touch Payroll\n(STP) is slightly different.\nAs of Odoo 18, adding an out-of-cycle payslip to an existing batch is not recommended.\n\n## Finalise pay runs\n\n### Validate payslips\n\nOnce all payslip data is deemed correct, click Create Draft Entry on the payslip batch.\nThis can also be done payslip by payslip for control reasons.\nThis has several impacts:\n- Marking the batch and its payslips as Done .\nMarking the batch and its payslips as Done .\n- Creating a draft accounting entry per payslip or one entry for the whole batch, depending on your\npayroll settings. At this stage, accountants can post entries to affect the balance sheet, P&L\nreport, and BAS report.\nCreating a draft accounting entry per payslip or one entry for the whole batch, depending on your\npayroll settings. At this stage, accountants can post entries to affect the balance sheet, P&L\nreport, and BAS report.\n- Preparing the STP submission (or payroll data to be filed to the ATO as part of STP compliance).\nThis needs to be performed by the STP Responsible user, defined under Payroll ⣠Configuration ⣠Settings .\nPreparing the STP submission (or payroll data to be filed to the ATO as part of STP compliance).\nThis needs to be performed by the STP Responsible user, defined under Payroll ⣠Configuration ⣠Settings .\n- Preparing super contribution lines as part of SuperStream compliance. This needs to be done by the HR Super Send user selected under Payroll ⣠Configuration â£\nSettings .\nPreparing super contribution lines as part of SuperStream compliance. This needs to be done by the HR Super Send user selected under Payroll ⣠Configuration â£\nSettings .\n\n### Submit payroll data to the ATO\n\nOdoo is currently in the process of becoming compliant with STP Phase 2, and this step described\nabove does not submit data yet to the ATO.\nAs per ATO requirements, STP submission for a pay run needs to be done on or before the payday. For\nthis reason, submit your STP data to the ATO first before proceeding with payment. To do so, click Submit to ATO on the payslip batch.\nOn the STP record for this pay run, a few useful information is displayed:\n- a warning message if important information is missing,\na warning message if important information is missing,\n- an automatically generated activity for the STP responsible user, and\nan automatically generated activity for the STP responsible user, and\n- a summary of payslips contained in this pay run, auditable from this view.\na summary of payslips contained in this pay run, auditable from this view.\nOnce the STP record is ready to go, click Submit to ATO , then read and accept the\nrelated terms and conditions.\n\n### Pay employees\n\nOnce the ATO submission is complete, you can proceed to pay your employees. To facilitate the\npayment matching process, remember to post the payslip-related journal entries prior to validating a\npayment.\nAlthough you may decide to pay your employees individually, we recommend creating a batch payment\nfrom your payslip batch. To do so, click Pay on the payslip batch, and select ABA Credit Transfer as the Payment Method .\nThis has two impacts:\n- Marking the batch and its payslips as Paid .\nMarking the batch and its payslips as Paid .\n- Creating a Payment Batch linked to the payslip batch.\nCreating a Payment Batch linked to the payslip batch.\nWhen receiving the bank statement in Odoo, you can now match the statement line with the batch\npayment in one click. The payment is not reconciled against the payslip batch, and all individual\npayslips.\n\n### Impact on accounting\n\nDepending on the employee and contract configuration, the journal entry linked to a payslip will be\nmore or less exhaustive.\nFor instance, here is the journal entry generated by the employee Marcus Cook configured above.\nOnce posted, predefined accounts will impact the companyâs balance sheet (PAYGW, wages, and\nsuperannuation liabilities) and profit & loss report (wages and superannuation expenses). In\naddition, the employeeâs gross wage and PAYG withholding will update the BAS report for the relevant\nperiod (see Tax Grid: W1 and W2). Accounts can be adjusted to the companyâs chart of accounts.\n\n## Other payroll flows\n\n### Paying super contributions\n\nOdoo has a partnership with a clearing house to process both superannuation payments and data to\nthe right funds in one click, via direct debit. Odoo is currently in the process of becoming\ncompliant with SuperStream, and an announcement will be made as soon as superannuation\ncontributions can be processed via Odooâs payroll solution.\nOnce a quarter (or more frequently, in preparation for Payday Super ),\nyou have to process superannuation payments to your employeesâ super funds. To do so, go to Payroll ⣠Reporting ⣠Super Contributions .\nWhen ready to pay, add the Bank Journal that will be used to pay the super from, then\nclick Lock to prevent the contributions from subsequent payslips from being added to\nthat file. Instead, a new Super file will be created.\nOnce the payment has been processed, it can be traced back to the Super file and matched with a bank\nstatement.\n\n### Terminating employees\n\nEmployees can be terminated by going to Payroll ⣠Reporting ⣠Terminate\nEmployee .\nThe following fields must be completed:\n- Contract End Date : once the termination is validated, this date will be added to the\ncontract automatically, and mark the contract as Expired when the date has been\nreached.\nContract End Date : once the termination is validated, this date will be added to the\ncontract automatically, and mark the contract as Expired when the date has been\nreached.\n- Cessation Type Code : a mandatory field for the ATOâs STP reporting.\nCessation Type Code : a mandatory field for the ATOâs STP reporting.\n- Termination Type : the type of redundancy (genuine or non-genuine) affects the\ncomputation of unused annual and long service leave withholding.\nTermination Type : the type of redundancy (genuine or non-genuine) affects the\ncomputation of unused annual and long service leave withholding.\nThe balance of unused annual leaves and long service leaves is displayed for reference.\nConfirming the termination creates an out-of-cycle payslip with the tag final pay . It\ncomputes the worked days until the contract end date, in addition to the employeeâs unused annual\nand long service leave entitlements.\nOdoo automatically computes unused leave entitlements based on the employeeâs current hourly rate\nleave loading (for annual leaves only), and the remaining leave balance. However, these amounts can\nbe manually edited in the Other Inputs table if necessary.\nEmployment Termination Payments (ETP) can also be added to the Other Inputs table. Odoo\nhas a comprehensive list of excluded and non-excluded ETPs for companies to select from.\nWithholding for unused leaves and ETPs is computed according to the ATOâs Schedule 7 and Schedule 11 and updated as of 01 July 2024.\nOnce an employee has been terminated and the last detailed of their employment resolved, you can\narchive the employee by clicking the ( Actions ) icon, then Archive on the employeeâs form view.\n\n### Switching from another STP software to Odoo\n\nWhen switching from another STP-enabled software to Odoo, you might need to maintain the continuity\nin the YTD values of your employees. Odoo allows importing employeesâ YTD values by going to Payroll ⣠Configuration ⣠Settings and clicking Import YTD\nBalances .\nFor the ATO to recognize the employee records of your previous software and keep a continuity in\nOdoo, you must enter the:\n- Previous BMS ID (one per database)\nPrevious BMS ID (one per database)\n- Previous Payroll ID (one per employee)\nPrevious Payroll ID (one per employee)\nAsk your previous software provider if you cannot find its BMS ID or your employeesâ payroll IDs.\nThis will give you the opportunity to add your employeesâ YTD opening balances in the current\nfiscal year. The ATO reports on a lot of different types of YTD. These are represented by the 13\nfollowing Salary Rules in Odoo.\nLet us say that the employee Marcus Cook has been transitioned from another STP-enabled software\non September 1. Marcus has received two monthly payslips in his previous software (for July and\nAugust). Here are the YTD balances Marcusâs company needs to transfer to Odoo:\nYTD balance to transfer\nGross (normal attendance)\nIf some YTD balances need to be reported with more granularity to the ATO, you can use the salary\nruleâs inputs.\nFor instance, the Basic Salary rule can contain six inputs, and three are necessary in our\nexample: regular gross amounts, overtime, and paid leaves. These are all reported differently in\nterms of YTD amounts.\nThe finalized YTD opening balances for Marcus Cook look like the following.\nAs a result, YTD computations on payslips are based on the employeeâs opening balances instead of\nstarting from zero.\n\n### STP finalisation\n\nOdoo is currently in the process of becoming compliant with STP Phase 2, and the finalisation\nflows described below do not yet submit data to the ATO.\n\n#### EOFY finalisation\n\nEmployers reporting through STP must make a finalization declaration by 14 July each year. To do so,\ngo to Payroll ⣠Reporting ⣠STP Finalisation .\nBoth active and terminated employees to finalise are displayed.\nFrom the finalisation form view, you can proceed with a final audit of all employeesâ payslips\nduring the relevant financial year. Once ready, click Submit to ATO . When you have made\nthe finalisation declaration, employees will see the status of their payment information change to Tax ready on their online income statement after the end of the financial year.\n\n#### Individual finalisation\n\nOdoo also allows you to finalise employees individually during the year. This can be useful when:\n- one-off payments are made after a first finalisation; and\none-off payments are made after a first finalisation; and\n- finalisation after termination of employment during the year.\nfinalisation after termination of employment during the year.\nTo proceed with an individual finalisation, go to Payroll ⣠Reporting ⣠STP\nFinalisation , leave the EOFY Declaration checkbox unticked, and manually add employees\nto be finalised.\nEven if you finalise an employee record partway through the financial year, the ATO will not\npre-fill the information into the employeeâs tax return until after the end of the financial year.\n\n### Adjustments\n\nOdoo is currently in the process of becoming compliant with STP Phase 2, and the adjustment flows\ndescribed below do not yet submit data to the ATO.\n\n#### Amend finalisation\n\nIf you need to amend YTD amounts for an employee after a finalisation declaration was made, it is\nstill possible to remove the finalisation indicator for that employee. To do so, go to Payroll ⣠Reporting ⣠STP Finalisation , select the employee, and leave the Finalisation checkbox unticked.\nWhen ready, click Submit to ATO to file the finalisation update to the ATO.\nOnce the correct YTD details are ready for that employee after amendment, finalise that employee\nagain.\nThe ATO expects employers to correct errors within 14 days of detection or, if your pay cycle is\nlonger than 14 days (e.g., monthly), by the date you would be due to lodge the next regular pay\nevent. Finalisation amendments can be done through STP up to five years after the end of the\nfinancial year.\nFinalising and amending finalisation for a single employee can also be useful when rehiring an\nemployee within the same financial year.\n\n#### Full file replacements\n\nAn employer can make full file replacements of pay runs to replace the last lodgement sent to the\nATO if it turns out to contain significantly inaccurate data.\nTo do so, open the last STP submission and click Replace File . Then, select which\npayslips need to be reset by ticking the Reset Payslip checkbox.\nResetting payslips does not create new payslips or a new pay run, but instead:\n- The payslips batch is reset from Paid or Done to Confirmed .\nThe payslips batch is reset from Paid or Done to Confirmed .\n- The status of the reset payslips revert back to Draft .\nThe status of the reset payslips revert back to Draft .\n- The correct payslips remain paid and matched against the original payment.\nThe correct payslips remain paid and matched against the original payment.\n- A new STP submission is created to replace the former one. For traceability purposes, the former\nSTP submission is not deleted but marked as replaced.\nA new STP submission is created to replace the former one. For traceability purposes, the former\nSTP submission is not deleted but marked as replaced.\nFirst, correct the reset payslips and create their draft entry. Once done, the Submit to\nATO reappears on the payslip batch to process the full file replacement.\nWhen ready, submit the pay run to the ATO once again. Please note that full file replacements are\nonly meant as a last resort to amend a substantial amount of erroneous data. When possible, the ATO\nrecommends correcting an incorrect payslips by submitting a correction as part of the next pay run\nor via update event.\nMoreover, it is not possible to submit a second full file replacement of the same submission, and a\nfull file replacement can only be done once every 24 hours.\n\n#### Zero out YTD values\n\nIn case of a mid-year change of several key identifiers, YTD values need to be zeroed out, and then\nre-posted with the updated key identifier.\nFor the following company identifiers , all employees need to be zeroed out:\n- Branch Code\n- BMS ID\nFor the following employee identifiers , only individual employees can be zeroed out:\n- Payroll ID\n- Before updating any key identifiers, create a new STP submission by going to Payroll ⣠Reporting ⣠Single Touch Payroll and: Change the Submission Type to Update . Tick the Zero Out YTD checkbox. Click Add a line to specify which employees. Click Submit to ATO .\nBefore updating any key identifiers, create a new STP submission by going to Payroll ⣠Reporting ⣠Single Touch Payroll and:\n- Change the Submission Type to Update .\nChange the Submission Type to Update .\n- Tick the Zero Out YTD checkbox.\nTick the Zero Out YTD checkbox.\n- Click Add a line to specify which employees.\nClick Add a line to specify which employees.\n- Click Submit to ATO .\nClick Submit to ATO .\n- Once that is done, modify the key identifier(s) to amend.\nOnce that is done, modify the key identifier(s) to amend.\n- Finally, go back to Payroll ⣠Reporting ⣠Single Touch Payroll to create and\nsubmit a new Update , this time without ticking the Zero Out YTD checkbox.\nThis will notify the ATO that the previously recorded YTD balances are to be adjusted to the new\nkey identifiers.\nFinally, go back to Payroll ⣠Reporting ⣠Single Touch Payroll to create and\nsubmit a new Update , this time without ticking the Zero Out YTD checkbox.\nThis will notify the ATO that the previously recorded YTD balances are to be adjusted to the new\nkey identifiers.\n\n## Payroll links to other apps\n\n### Time Off\n\nThe Time Off app is natively integrated with the Payroll app in Odoo.\nDifferent types of leaves will populate payslips based on the concept of work entries .\nGo to Time Off ⣠Configuration ⣠Time Off Types , and for each type, configure\nthe following two fields under the Payroll section:\n- Work Entry Type : defines which work entry should be selected on the Worked\nDays table of the payslip.\nWork Entry Type : defines which work entry should be selected on the Worked\nDays table of the payslip.\n- Unused Leave Type : choose between Annual , Long Service , or Personal Leave . If Personal Leave is selected, the remaining leave balance\nfor this time off type will not show up as an entitlement at the time of termination. Unused\nleaves of the type Annual will include leave loading if the employee is eligible for\nit.\nUnused Leave Type : choose between Annual , Long Service , or Personal Leave . If Personal Leave is selected, the remaining leave balance\nfor this time off type will not show up as an entitlement at the time of termination. Unused\nleaves of the type Annual will include leave loading if the employee is eligible for\nit.\n\n### Expenses\n\nThe Expenses app is also natively integrated with the Payroll app in Odoo. First of all, go to Expenses ⣠Configuration ⣠Settings and enable Reimburse in Payslip .\nWhen an employee on your payroll submits an approved expense to be reimbursed, you can reimburse\nthem using two ways:\n- If the expense is to be reimbursed outside of a pay run, click Post Journal Entries .\nThe payment must be made manually.\nIf the expense is to be reimbursed outside of a pay run, click Post Journal Entries .\nThe payment must be made manually.\n- If the expense is to be reimbursed as part of the next pay run, click Report in Next\nPayslip instead.\nIf the expense is to be reimbursed as part of the next pay run, click Report in Next\nPayslip instead.\nAfter an expense has been added to the next payslip, you can find it in the Other Inputs table. This input type is then computed as an addition to the net salary.\nAfter paying the employee, the payslipâs journal item related to the employeeâs reimbursement is\nautomatically matched against the expenseâs vendor bill.\n\n## Advanced configurations\n\n### Other input types\n\nYou can access other input types by going to Payroll ⣠Configuration ⣠Other\nInput Types . There are 63 other input types related to Australia. We do not recommend using the\nother ones as part of your payroll solution, since they cannot be used in the frame of STP. You can\narchive or delete them.\nOn each input type, the following fields are important:\n- Payment Type classifies input types in six categories: Allowance : a separate amount you pay to your employees in addition to salary and\nwages. Some of these allowances are mandated by modern awards: laundry, transport, etc. Important Contact us if you plan to use allowances subject to varied\nrates of withholding (such as cents per KM or travel allowances ) to see whether Odoo\ncurrently covers your business case. Note As of Odoo 18, some allowances such as Laundry: Allowance for approved\nuniforms are managed by two other inputs: one to lodge the amount paid up to the ATO\nlimit, and the other one to lodge the amount exceeding the ATO limit. This is necessary\nfor Odoo to compute PAYGW correctly. Some businesses may require to shift the reporting of an allowance from OTE to Salary & Wages depending on the employee. In this case, you must duplicate and\nre-configure an existing other input type. For example, Work-Related\nNon-Expense allowance is OTE by default. Deduction : union fees and child support deductions are considered deductions. ETP : employment termination payments. These are either considered excluded or\nnon-excluded (see ATOâs web page on ETP components taxation ). Leave : leave-related other inputs that are not pertaining to a single pay period\n(lump sum, cashing out leaves while in service, unused leaves, etc.). Lump Sum : return to work and lump sum E (for back payments) fall under this\ncategory. Other : other payments with their own specific logic.\nPayment Type classifies input types in six categories:\n- Allowance : a separate amount you pay to your employees in addition to salary and\nwages. Some of these allowances are mandated by modern awards: laundry, transport, etc. Important Contact us if you plan to use allowances subject to varied\nrates of withholding (such as cents per KM or travel allowances ) to see whether Odoo\ncurrently covers your business case. Note As of Odoo 18, some allowances such as Laundry: Allowance for approved\nuniforms are managed by two other inputs: one to lodge the amount paid up to the ATO\nlimit, and the other one to lodge the amount exceeding the ATO limit. This is necessary\nfor Odoo to compute PAYGW correctly. Some businesses may require to shift the reporting of an allowance from OTE to Salary & Wages depending on the employee. In this case, you must duplicate and\nre-configure an existing other input type. For example, Work-Related\nNon-Expense allowance is OTE by default.\nAllowance : a separate amount you pay to your employees in addition to salary and\nwages. Some of these allowances are mandated by modern awards: laundry, transport, etc.\nContact us if you plan to use allowances subject to varied\nrates of withholding (such as cents per KM or travel allowances ) to see whether Odoo\ncurrently covers your business case.\n- As of Odoo 18, some allowances such as Laundry: Allowance for approved\nuniforms are managed by two other inputs: one to lodge the amount paid up to the ATO\nlimit, and the other one to lodge the amount exceeding the ATO limit. This is necessary\nfor Odoo to compute PAYGW correctly.\nAs of Odoo 18, some allowances such as Laundry: Allowance for approved\nuniforms are managed by two other inputs: one to lodge the amount paid up to the ATO\nlimit, and the other one to lodge the amount exceeding the ATO limit. This is necessary\nfor Odoo to compute PAYGW correctly.\n- Some businesses may require to shift the reporting of an allowance from OTE to Salary & Wages depending on the employee. In this case, you must duplicate and\nre-configure an existing other input type. For example, Work-Related\nNon-Expense allowance is OTE by default.\nSome businesses may require to shift the reporting of an allowance from OTE to Salary & Wages depending on the employee. In this case, you must duplicate and\nre-configure an existing other input type. For example, Work-Related\nNon-Expense allowance is OTE by default.\n- Deduction : union fees and child support deductions are considered deductions.\nDeduction : union fees and child support deductions are considered deductions.\n- ETP : employment termination payments. These are either considered excluded or\nnon-excluded (see ATOâs web page on ETP components taxation ).\nETP : employment termination payments. These are either considered excluded or\nnon-excluded (see ATOâs web page on ETP components taxation ).\n- Leave : leave-related other inputs that are not pertaining to a single pay period\n(lump sum, cashing out leaves while in service, unused leaves, etc.).\nLeave : leave-related other inputs that are not pertaining to a single pay period\n(lump sum, cashing out leaves while in service, unused leaves, etc.).\n- Lump Sum : return to work and lump sum E (for back payments) fall under this\ncategory.\nLump Sum : return to work and lump sum E (for back payments) fall under this\ncategory.\n- Other : other payments with their own specific logic.\nOther : other payments with their own specific logic.\n- PAYGW Treatment affects how Odoo withholds tax for this input type: Regular , No PAYG Withholding , and Excess Only (for\nallowances).\nPAYGW Treatment affects how Odoo withholds tax for this input type: Regular , No PAYG Withholding , and Excess Only (for\nallowances).\n- Superannuation Treatment : OTE , Salary & Wages , and Not Salary & Wages .\nSuperannuation Treatment : OTE , Salary & Wages , and Not Salary & Wages .\n- STP Code : only visible in developer mode , this field tells\nOdoo how to report the gross value of this payment to the ATO. We do not recommend changing the\nvalue of this field if it was already set by default.\nSTP Code : only visible in developer mode , this field tells\nOdoo how to report the gross value of this payment to the ATO. We do not recommend changing the\nvalue of this field if it was already set by default.\nGrouping other input types by Payment Type can help you understand the different\nscenarios in which these inputs can be used.\n\n### Work entry types\n\nA work entry type is a type of attendance for employees (e.g., attendance, paid leave, overtime,\netc.). A few work entry types are created by default in every Australian database.\nBefore using Odooâs payroll solution for Australia, it is recommended you trim work entry types to\nkeep the ones you need only by going to Payroll ⣠Configuration ⣠Work Entry\nTypes\nFor each type, make sure to configure the following fields for Australia:\n- Is OTE : determines whether time spent in this category can be considered ordinary time\nearnings, meaning that the superannuation guarantee rate will apply (e.g., regular attendance,\npaid leave, etc.).\nIs OTE : determines whether time spent in this category can be considered ordinary time\nearnings, meaning that the superannuation guarantee rate will apply (e.g., regular attendance,\npaid leave, etc.).\n- Penalty Rate : used to determine the percentage of penalty that applies to time spent\nin this category. It is important that you configure the penalty rate that applies in your state\nor industry according to the type of work (e.g., Saturday rate, Sunday rate, overtime rate, etc.).\nPenalty Rate : used to determine the percentage of penalty that applies to time spent\nin this category. It is important that you configure the penalty rate that applies in your state\nor industry according to the type of work (e.g., Saturday rate, Sunday rate, overtime rate, etc.).\n- STP Code : only visible in developer mode , this field tells\nOdoo how to report the time spent in this category to the ATO. We do not recommend changing the\nvalue of this field if it was already set by default.\nSTP Code : only visible in developer mode , this field tells\nOdoo how to report the time spent in this category to the ATO. We do not recommend changing the\nvalue of this field if it was already set by default.\n\n## Current limitations\n\nAs of Odoo 18, we do not recommend companies to use the Payroll app for the following business\nflows:\n- Income stream types: Foreign Employment Income\nIncome stream types: Foreign Employment Income\n- Tax treatment category: actors & performers\nTax treatment category: actors & performers\n- Death benefits reporting\nDeath benefits reporting\n- Reporting obligations for WPN (instead of ABN)\nReporting obligations for WPN (instead of ABN)\n- Allowances subject to a varied rate of withholding (such as cents per kilometer allowance and travel allowances )\nAllowances subject to a varied rate of withholding (such as cents per kilometer allowance and travel allowances )\nContact us if you would like to make sure whether Odoo fits your\npayroll requirements in Australia.\n\n## Employment Hero integration\n\nIf your business is already up and running with Employment Hero, you can use the connector as an\nalternative payroll solution. The Employment Hero module synchronizes payslip accounting entries\n(e.g., expenses, social charges, liabilities, taxes) automatically from Employment Hero to Odoo.\nPayroll administration is still done in Employment Hero; Odoo only records the journal entries.\n\n### Configuration\n\n- Install the Employment Hero Payroll module ( l10n_employment_hero ).\nInstall the Employment Hero Payroll module ( l10n_employment_hero ).\n`l10n_employment_hero`\n- Configure the Employment Hero API by going to Accounting ⣠Configuration â£\nSettings . More fields become visible after ticking the Enable Employment Hero\nIntegration checkbox. Find the API Key in the My Account section of the Employment Hero\nplatform. The Payroll URL is pre-filled with https://keypay.yourpayroll.com.au . Warning Do not change the pre-filled Payroll URL . Find the Business Id in the Employment Hero URL (e.g., 189241 ). Select any Odoo journal as the Payroll Journal to post the payslip entries.\nConfigure the Employment Hero API by going to Accounting ⣠Configuration â£\nSettings . More fields become visible after ticking the Enable Employment Hero\nIntegration checkbox.\n- Find the API Key in the My Account section of the Employment Hero\nplatform.\nFind the API Key in the My Account section of the Employment Hero\nplatform.\n- The Payroll URL is pre-filled with https://keypay.yourpayroll.com.au . Warning Do not change the pre-filled Payroll URL .\nThe Payroll URL is pre-filled with https://keypay.yourpayroll.com.au .\n`https://keypay.yourpayroll.com.au`\nDo not change the pre-filled Payroll URL .\n- Find the Business Id in the Employment Hero URL (e.g., 189241 ).\nFind the Business Id in the Employment Hero URL (e.g., 189241 ).\n`189241`\n- Select any Odoo journal as the Payroll Journal to post the payslip entries.\nSelect any Odoo journal as the Payroll Journal to post the payslip entries.\n- Configure the tax by going to Accounting ⣠Configuration ⣠Taxes . Create the\nnecessary taxes for the Employment Hero payslip entries. Fill in the tax code from Employment\nHero in the Matching Employment Hero Tax field.\nConfigure the tax by going to Accounting ⣠Configuration ⣠Taxes . Create the\nnecessary taxes for the Employment Hero payslip entries. Fill in the tax code from Employment\nHero in the Matching Employment Hero Tax field.\n\n### The API explained\n\nThe API syncs the journal entries from Employment Hero to Odoo and leaves them in draft mode. The\nreference includes the Employment Hero payslip entry ID in brackets for the user to easily retrieve\nthe same record in Employment Hero and Odoo.\nBy default, the synchronization happens once per week. It is possible to fetch the records manually\nby going to Accounting ⣠Configuration ⣠Settings and, in the Employment Hero , clicking Fetch Payruns Manually .\nEmployment Hero payslip entries also work based on double-entry bookkeeping. The accounts used by\nEmployment Hero are defined in the Payroll settings section.\nFor the API to work, you must create the same accounts as the default accounts of your Employment\nHero business (same name and same code) in Odoo. You also need to choose the correct account types\nin Odoo to generate accurate financial reports.", "headings": ["Setting up employees", "Employee settings", "Employee private information", "Super accounts and funds", "Contracts", "Prepare pay runs", "Regular", "Out-of-cycle", "Finalise pay runs", "Validate payslips", "Submit payroll data to the ATO", "Pay employees", "Impact on accounting", "Other payroll flows", "Paying super contributions", "Terminating employees", "Switching from another STP software to Odoo", "STP finalisation", "Adjustments", "Payroll links to other apps", "Time Off", "Expenses", "Advanced configurations", "Other input types", "Work entry types", "Current limitations", "Employment Hero integration", "Configuration", "The API explained"], "doc_id": "9ff70351f24db1d3"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/payroll_localizations/belgium.html", "title": "Belgium", "module": "payroll", "section": "Belgium", "text": "# Belgium\n\n## Understanding the Belgian payslip\n\n### Overview\n\nProviding employees with a clear, transparent payslip is essential for compliance and employee\nsatisfaction. This guide explains how to interpret a Belgian payslip, detailing key components that\nimpact salary calculations and deductions.\n\n### General information\n\nThe first section of the payslip contains the employeeâs general details. It is crucial to verify\nthe accuracy of the civil status and the number of dependents, as these factors influence tax\ncalculations. Employers can ensure updates are made through their internal salary configurator or\nemployee profile management systems.\n\n### Work entries\n\nThis section outlines time-off applications and their impact on salary. The base salary typically\nremains constant unless unpaid leave is taken. If an employee has taken unpaid leave, parental\nleave, or any unexpected absence, their salary will reflect the corresponding deductions.\n\n### Payroll calculation\n\nThe core of the payslip details various salary components, deductions, and benefits. Below are the\nprimary elements:\n- Benefits in Kind : If applicable, benefits in kind (such as a mobile or internet subscription\nor a laptop) are subject to taxation and impact net remuneration. When a company car is provided for personal use, a taxable benefit (ATN) is added to the\nemployeeâs salary. This is determined by: The catalog value and age of the vehicle The vehicleâs CO2 emissions This benefit is subject to withholding tax and will be adjusted later in the payroll process.\nBenefits in Kind : If applicable, benefits in kind (such as a mobile or internet subscription\nor a laptop) are subject to taxation and impact net remuneration.\nWhen a company car is provided for personal use, a taxable benefit (ATN) is added to the\nemployeeâs salary. This is determined by:\n- The catalog value and age of the vehicle\nThe catalog value and age of the vehicle\n- The vehicleâs CO2 emissions\nThe vehicleâs CO2 emissions\nThis benefit is subject to withholding tax and will be adjusted later in the payroll process.\n- Social Security contributions : A mandatory 13.07% deduction from gross salary is allocated to\nthe National Social Security Office (ONSS). This includes: Pensions: 7.5% Health Insurance for Care: 3.55% Health Insurance for Benefits: 1.15% Unemployment: 0.87% Additionally, the employer contributes on average 25% of the employerâs contributions to the\nNational Social Security Office.\nSocial Security contributions : A mandatory 13.07% deduction from gross salary is allocated to\nthe National Social Security Office (ONSS). This includes:\n- Pensions: 7.5%\n- Health Insurance for Care: 3.55%\nHealth Insurance for Care: 3.55%\n- Health Insurance for Benefits: 1.15%\nHealth Insurance for Benefits: 1.15%\n- Unemployment: 0.87%\nAdditionally, the employer contributes on average 25% of the employerâs contributions to the\nNational Social Security Office.\n- Employment bonus : A reduction in employee contributions based on gross salary, which is phased\nout if the salary exceeds a specific threshold. See also More info on job bonuses\nEmployment bonus : A reduction in employee contributions based on gross salary, which is phased\nout if the salary exceeds a specific threshold.\nMore info on job bonuses\n- Withholding taxes : Withholding tax rates are revised annually by the SPF Finances . The tax amount is influenced by: Gross salary Marital status (married, legally cohabiting, or single) Household composition (children or other dependents) This serves as an advance payment on professional income tax.\nWithholding taxes : Withholding tax rates are revised annually by the SPF Finances .\nThe tax amount is influenced by:\n- Gross salary\n- Marital status (married, legally cohabiting, or single)\nMarital status (married, legally cohabiting, or single)\n- Household composition (children or other dependents)\nHousehold composition (children or other dependents)\nThis serves as an advance payment on professional income tax.\n- Reduction in withholding tax : A reduction based on gross salary, which is ignored if salary\nsurpasses a specific amount.\nReduction in withholding tax : A reduction based on gross salary, which is ignored if salary\nsurpasses a specific amount.\n- Special Social Security contribution : A household income-based tax applicable to all employees\ncovered by social security.\nSpecial Social Security contribution : A household income-based tax applicable to all employees\ncovered by social security.\n- Meal voucher deduction : Employees receive meal vouchers valued for instance at â¬8 per workday,\nwhere: The employer contributes â¬6.91 The employee contributes â¬1.09 Example 5 worked days -> deduction of â¬5.45 ( \\(5\\times\\text{â¬}1.09\\) ) 22 worked days -> deduction of â¬23.98 ( \\(22\\times\\text{â¬}1.09\\) ) Variations in this deduction impact monthly net salary.\nMeal voucher deduction : Employees receive meal vouchers valued for instance at â¬8 per workday,\nwhere:\n- The employer contributes â¬6.91\nThe employer contributes â¬6.91\n- The employee contributes â¬1.09\nThe employee contributes â¬1.09\n- 5 worked days -> deduction of â¬5.45 ( \\(5\\times\\text{â¬}1.09\\) )\n5 worked days -> deduction of â¬5.45 ( \\(5\\times\\text{â¬}1.09\\) )\n- 22 worked days -> deduction of â¬23.98 ( \\(22\\times\\text{â¬}1.09\\) )\n22 worked days -> deduction of â¬23.98 ( \\(22\\times\\text{â¬}1.09\\) )\nVariations in this deduction impact monthly net salary.\n- Representation fees : An optional net salary component, allocated in two parts: A fixed portion, independent of working hours A prorated portion, adjusted for part-time schedules\nRepresentation fees : An optional net salary component, allocated in two parts:\n- A fixed portion, independent of working hours\nA fixed portion, independent of working hours\n- A prorated portion, adjusted for part-time schedules\nA prorated portion, adjusted for part-time schedules\n- Net salary : The final amount deposited into the employeeâs bank account after deductions.\nNet salary : The final amount deposited into the employeeâs bank account after deductions.\n\n## December pay\n\n### Why a December settlement?\n\nAn employer must pay a vacation allowance to an employee in December under two conditions:\n- If the employee has reduced their working hours during the vacation year.\nIf the employee has reduced their working hours during the vacation year.\n- If the employee is unable to take all their vacation days before the end of the year.\nIf the employee is unable to take all their vacation days before the end of the year.\nIn principle, employers must ensure that employees take their annual vacation before December 31.\nHowever, certain circumstances may prevent employees from using all their vacation days. In these\ncases, the employer must pay the simple vacation allowance for unused days before the end of the\nyear. Additionally, if the employee has not received the double vacation allowance earlier in the\nyear (typically in May or June), they are entitled to receive it.\n\n### Reduction of working hours\n\nWhen an employee reduces their average working hours with the same employer, the employer must pay\nthe vacation allowance in December of the year in which the reduction occurs, as if the employee\nhad left the company.\n- Transition to part-time work.\nTransition to part-time work.\n- Partial career break.\nPartial career break.\n- Thematic leave on a part-time basis.\nThematic leave on a part-time basis.\n- Partial return to work after a full incapacity period.\nPartial return to work after a full incapacity period.\nThe settlement is calculated based on the previous vacation yearâs earnings and includes:\n- Simple vacation allowance : 7.67% of the yearly gross salary from the previous year, including\nany fictitious salary for assimilated interruption days, minus the simple vacation allowance\nalready paid during the vacation year.\nSimple vacation allowance : 7.67% of the yearly gross salary from the previous year, including\nany fictitious salary for assimilated interruption days, minus the simple vacation allowance\nalready paid during the vacation year.\n- Double vacation allowance : 7.67% of the yearly gross salary from the previous year, including\nany fictitious salary for assimilated interruption days, minus the double vacation allowance\nalready paid during the vacation year.\nDouble vacation allowance : 7.67% of the yearly gross salary from the previous year, including\nany fictitious salary for assimilated interruption days, minus the double vacation allowance\nalready paid during the vacation year.\nIf all vacation days have been taken before the reduction in working hours, no additional\ncalculation is required.\n\n### Inability to use vacation days\n\nAs a general rule, all vacation days must be used within the vacation year. However, if an employee\nis unable to take all their vacation due to force majeure or specific suspension reasons, the\nemployer must pay the following by December 31:\n- Simple vacation allowance for unused days, based on the December salary.\nSimple vacation allowance for unused days, based on the December salary.\n- Double vacation allowance if it has not yet been paid, based on the December salary.\nDouble vacation allowance if it has not yet been paid, based on the December salary.\nEligible reasons include :\n- Common illness or accident.\nCommon illness or accident.\n- Work accident or occupational disease.\nWork accident or occupational disease.\n- Maternity leave, paternity leave (converted maternity leave), prophylactic leave.\nMaternity leave, paternity leave (converted maternity leave), prophylactic leave.\n- Birth, adoption, or reception leave.\nBirth, adoption, or reception leave.\n- Parental leave or protective maternity leave measures.\nParental leave or protective maternity leave measures.\n\n#### New rule (effective end of 2024)\n\nEmployees unable to take vacation due to the above reasons (except force majeure or protective\nmaternity leave measures) can carry over unused days for up to 24 months. Since the vacation\nallowance is already paid in December of the vacation year, no additional payment will be made when\nthe carried-over days are used.\n\n### Employer payment responsibilities\n\nThe employer must pay any outstanding simple vacation allowance based on 7.67% of the gross salary\nfrom the previous year. However, an exit vacation allowance based on the current yearâs gross salary\nis not due.\nIf an employee reduces their working hours and continues in the same role the following year, an\nadditional vacation allowance calculation may be required in December.\n\n### Example calculation\n\n- In 2013, an employee works full-time (5 days per week).\nIn 2013, an employee works full-time (5 days per week).\n- In 2014, the employee works full-time until June 30, then switches to part-time (5 half-days per\nweek).\nIn 2014, the employee works full-time until June 30, then switches to part-time (5 half-days per\nweek).\n- The employee takes vacation in August 2014 under the new part-time regime (20 half-days over 4\nweeks).\nThe employee takes vacation in August 2014 under the new part-time regime (20 half-days over 4\nweeks).\n- They receive a simple vacation allowance for 20 half-days and a double vacation allowance\nequivalent to 92% of their monthly salary.\nThey receive a simple vacation allowance for 20 half-days and a double vacation allowance\nequivalent to 92% of their monthly salary.\n- In December 2014, the employee receives additional simple (7.67%) and double (7.67%) vacation\nallowances based on 2013âs gross salary, minus previously paid amounts.\nIn December 2014, the employee receives additional simple (7.67%) and double (7.67%) vacation\nallowances based on 2013âs gross salary, minus previously paid amounts.\n- In 2015, if the employee continues part-time, they receive vacation based on part-time hours plus\n5 full-time vacation days from the 2014 vacation year.\nIn 2015, if the employee continues part-time, they receive vacation based on part-time hours plus\n5 full-time vacation days from the 2014 vacation year.\n- A second settlement in December 2015 includes additional simple (7.67%) and double (7.67%)\nvacation allowances based on the 2014 gross salary, minus previously paid amounts.\nA second settlement in December 2015 includes additional simple (7.67%) and double (7.67%)\nvacation allowances based on the 2014 gross salary, minus previously paid amounts.\n\n### How to do it in Odoo\n\nOn a classic payslip issued in December, press the Compute December\nHoliday Pay button to open a configuration wizard.\nBased on the allocated and requested time off, the Simple Holiday Pay N-1 and Double Holiday Pay N-1 for the December payslip are computed (and editable for manual\nencoding). Click Validate to confirm.\nAfter validation, two additional inputs are stored on the payslip, and the payslip is re-computed to\ntake those new remunerations into account.\nThe simple holiday pay is included into the gross remuneration.\nThe double holiday pay is computed separately and included into the net amount.\n\n## Departure: holiday attests\n\n### Overview\n\nIn Belgium, when an employee leaves a company, the employer is required to provide vacation\nattestations. These documents help the new employer determine the employeeâs vacation entitlements\nand any vacation pay due. Odoo facilitates the automatic generation of these attestations based on\npayroll and time-off data.\n\n### Types of attestations\n\nOdoo generates two types of vacation attestations:\n- For the previous year (N-1) : If the employee has not yet taken all the vacation days from the\nprevious year.\nFor the previous year (N-1) : If the employee has not yet taken all the vacation days from the\nprevious year.\n- For the current year (N) : Covering the vacation rights accrued in the year of departure.\nFor the current year (N) : Covering the vacation rights accrued in the year of departure.\nEach attestation includes details such as:\n- The period the employee was employed.\nThe period the employee was employed.\n- Agreed working time and any modifications.\nAgreed working time and any modifications.\n- Gross amounts of single and double vacation pay paid.\nGross amounts of single and double vacation pay paid.\n- Social security contributions paid by the employer.\nSocial security contributions paid by the employer.\n- Number of vacation days already taken.\nNumber of vacation days already taken.\n- Additional (European) vacation pay and days.\nAdditional (European) vacation pay and days.\n\n### Calculation logic in Odoo\n\nOdoo computes the attestations based on payroll and leave data. The main calculations include:\n- Retrieving payroll and leave records The system identifies the employeeâs payroll records for the current and previous years. It retrieves validated leave requests and allocations.\nRetrieving payroll and leave records\n- The system identifies the employeeâs payroll records for the current and previous years.\nThe system identifies the employeeâs payroll records for the current and previous years.\n- It retrieves validated leave requests and allocations.\nIt retrieves validated leave requests and allocations.\n- Computing gross remuneration The gross annual salary for both the current and previous years is computed from payroll\nrecords. The average monthly salary is calculated for unpaid leave adjustments.\nComputing gross remuneration\n- The gross annual salary for both the current and previous years is computed from payroll\nrecords.\nThe gross annual salary for both the current and previous years is computed from payroll\nrecords.\n- The average monthly salary is calculated for unpaid leave adjustments.\nThe average monthly salary is calculated for unpaid leave adjustments.\n- Time-off calculations The number of vacation days taken and allocated in the current year is determined. Unpaid leave days are accounted for separately.\nTime-off calculations\n- The number of vacation days taken and allocated in the current year is determined.\nThe number of vacation days taken and allocated in the current year is determined.\n- Unpaid leave days are accounted for separately.\nUnpaid leave days are accounted for separately.\n- Fictitious remuneration calculation If unpaid leave was taken, Odoo computes a fictitious remuneration adjustment using the\nformula: \\[\\text{Fictitious Remuneration} = (\\text{Unpaid Leave Days} \\times\n\\text{Average Monthly Salary} \\times 3) \\div (13 \\times 5)\\]\nFictitious remuneration calculation\n- If unpaid leave was taken, Odoo computes a fictitious remuneration adjustment using the\nformula: \\[\\text{Fictitious Remuneration} = (\\text{Unpaid Leave Days} \\times\n\\text{Average Monthly Salary} \\times 3) \\div (13 \\times 5)\\]\nIf unpaid leave was taken, Odoo computes a fictitious remuneration adjustment using the\nformula:\n- Generating the final attestation Odoo creates a payroll entry reflecting the vacation pay due. The attestation document is generated and can be printed or exported.\nGenerating the final attestation\n- Odoo creates a payroll entry reflecting the vacation pay due.\nOdoo creates a payroll entry reflecting the vacation pay due.\n- The attestation document is generated and can be printed or exported.\nThe attestation document is generated and can be printed or exported.\nTwo payslips are created:\n- Payslip for the current year ( termination_payslip_n ) This payslip covers the employeeâs last salary period in the year of termination.\nPayslip for the current year ( termination_payslip_n )\n`termination_payslip_n`\nThis payslip covers the employeeâs last salary period in the year of termination.\n- Payslip for the previous year ( termination_payslip_n1 ) The one accounts the amount of money converted from the untaken time off of previous year.\nPayslip for the previous year ( termination_payslip_n1 )\n`termination_payslip_n1`\nThe one accounts the amount of money converted from the untaken time off of previous year.\nEach payslip is generated using the appropriate payroll structure, ensuring correct calculations for\nall entitlements and deductions.\nBefore computing the final payment, the system gathers necessary payroll data:\n- Annual gross salary calculation To estimate the employeeâs annual gross salary , the system looks for the most recent\nvalidated monthly payslip. If a payslip is found, the gross salary from that payslip is\nmultiplied by 12 to get an annual estimate. If no payslip exists, the annual gross salary is set\nto zero .\nAnnual gross salary calculation\nTo estimate the employeeâs annual gross salary , the system looks for the most recent\nvalidated monthly payslip. If a payslip is found, the gross salary from that payslip is\nmultiplied by 12 to get an annual estimate. If no payslip exists, the annual gross salary is set\nto zero .\n- European leave recovery The system retrieves all European leave days (LEAVE216) taken by the employee during the\ncurrent year. It then calculates the total amount paid for these leaves and determines how\nmuch should be deducted. The deduction follows these principles: If an employee has taken European holidays (additional vacation days) , the amount paid in\nadvance must be recovered. The recovery is either: Deducted from the double vacation pay (85%) for the next year. Or, if the employee leaves, deducted from the final termination payslip. If leave has been taken, the termination certificate must specify: The number of European leave days already granted. The gross allowance corresponding to these days. To ensure fairness, the system first checks whether a deduction has already been applied in the double vacation pay . If so, only the remaining amount is deducted from the final payslip. Once the required values are determined, they are recorded in the payslip as additional payroll inputs : Gross salary reference : Includes the final salary amount plus any fictitious remuneration. European leave deduction : Deducts the previously paid European leave amounts. Other inputs : Allocates time off taken, taxable amounts, and any outstanding allocations. After setting these values, the system computes the payslip to ensure all deductions and\npayments are correctly applied. This process ensures that the final termination payslip takes into account all salary\ncomponents, including annual gross pay, European leave recovery, and any unpaid entitlements .\nOdoo retrieves past payslips and time-off records to ensure compliance with Belgian payroll regulations .\nEuropean leave recovery\nThe system retrieves all European leave days (LEAVE216) taken by the employee during the\ncurrent year. It then calculates the total amount paid for these leaves and determines how\nmuch should be deducted.\nThe deduction follows these principles:\n- If an employee has taken European holidays (additional vacation days) , the amount paid in\nadvance must be recovered.\nIf an employee has taken European holidays (additional vacation days) , the amount paid in\nadvance must be recovered.\n- The recovery is either: Deducted from the double vacation pay (85%) for the next year. Or, if the employee leaves, deducted from the final termination payslip.\nThe recovery is either:\n- Deducted from the double vacation pay (85%) for the next year.\nDeducted from the double vacation pay (85%) for the next year.\n- Or, if the employee leaves, deducted from the final termination payslip.\nOr, if the employee leaves, deducted from the final termination payslip.\n- If leave has been taken, the termination certificate must specify: The number of European leave days already granted. The gross allowance corresponding to these days.\nIf leave has been taken, the termination certificate must specify:\n- The number of European leave days already granted.\nThe number of European leave days already granted.\n- The gross allowance corresponding to these days.\nThe gross allowance corresponding to these days.\nTo ensure fairness, the system first checks whether a deduction has already been applied in the double vacation pay . If so, only the remaining amount is deducted from the final payslip.\nOnce the required values are determined, they are recorded in the payslip as additional payroll inputs :\n- Gross salary reference : Includes the final salary amount plus any fictitious remuneration.\nGross salary reference : Includes the final salary amount plus any fictitious remuneration.\n- European leave deduction : Deducts the previously paid European leave amounts.\nEuropean leave deduction : Deducts the previously paid European leave amounts.\n- Other inputs : Allocates time off taken, taxable amounts, and any outstanding allocations.\nOther inputs : Allocates time off taken, taxable amounts, and any outstanding allocations.\nAfter setting these values, the system computes the payslip to ensure all deductions and\npayments are correctly applied.\nThis process ensures that the final termination payslip takes into account all salary\ncomponents, including annual gross pay, European leave recovery, and any unpaid entitlements .\nOdoo retrieves past payslips and time-off records to ensure compliance with Belgian payroll regulations .\nBy automating this process, Odoo minimizes manual intervention, reducing errors and ensuring\nemployees receive the correct termination payments.\n\n### How does it work in Odoo?\n\nIn Odoo, to access the holiday attests process, go to the employee form view and click on (Action) then Departure: Holiday Attests or navigate to Payroll ⣠Reporting ⣠Departure: Holiday Attests .\nIn the wizard that appears, you can see all the payslips over the current and last year, the time\noff requests and allocations. You can also encode the unpaid time off you would like to declare on\nthat holiday attest.\nOnce youâre ready, click the Validate & Compute holiday attests button. Two payslips are\ngenerated for each considered period (N and N-1).\nOnce validated, two .pdf documents are generated. One classic payslip and one holiday\nattests for the future employer.\n`.pdf`\nIn our example, the employee also took one European time off during the N-year.\nFor year N-1, you can see that all legal time off were taken.\nFor year N, you can also see the number off additional time off (European) and already taken legal\ntime off are taken into account as well.\n\n### Important Notes\n\nBy using Odooâs automated attestation generation, companies can ensure compliance with Belgian\nlabor laws while reducing manual administrative work.\n- The feature is only available for companies registered in Belgium.\nThe feature is only available for companies registered in Belgium.\n- If the notice period is not set for an employee, Odoo will prompt for this information.\nIf the notice period is not set for an employee, Odoo will prompt for this information.\n- Employers must ensure vacation attestations are provided before the employee needs to submit\nthem to their new employer or the ONEM.\nEmployers must ensure vacation attestations are provided before the employee needs to submit\nthem to their new employer or the ONEM.\n\n## Departure: notice period & termination fees\n\nThis documentation explains how the employee departure process works in the application, focusing\non the notice period calculation and severance pay when the employee does not serve their notice\nperiod.\n\n### Overview\n\nThis module helps manage employee departures by determining the correct notice period based on\nseniority, departure reasons, and specific country regulations (Belgium). It also calculates\nseverance pay when the employee does not work during their notice period.\n\n### Key features\n\n- Automatic calculation of notice period start and end dates.\nAutomatic calculation of notice period start and end dates.\n- Consideration of public holidays and company-specific schedules.\nConsideration of public holidays and company-specific schedules.\n- Calculation of severance pay based on company policies and government rules.\nCalculation of severance pay based on company policies and government rules.\n- Generation of a final payslip including termination fees.\nGeneration of a final payslip including termination fees.\n\n### Notice period calculation\n\nThe notice period depends on several factors:\n- The employeeâs seniority in the company.\nThe employeeâs seniority in the company.\n- The reason for departure (resignation, dismissal, retirement, etc.).\nThe reason for departure (resignation, dismissal, retirement, etc.).\n- Whether the employee works during the notice period or not.\nWhether the employee works during the notice period or not.\n- The salary level before January 1, 2014 (for some cases).\nThe salary level before January 1, 2014 (for some cases).\nThe notice period starts on the first Monday after the departure date unless a specific rule applies\n(e.g., a mandatory waiting period of three days for certain dismissals).\n\n### Notice duration rules\n\nThe following table shows the duration of the notice period based on the length of service:\n\n#### For resigned employees\n\nNotice Period (weeks)\n\n#### For dismissed employees\n\nNotice Period (weeks)\n\n### Special case: employees hired before 2014\n\nFor employees who started before January 1, 2014, the notice period calculation is divided into two\nparts:\n\n#### Part 1: Seniority acquired before December 31, 2013\n\n- Lower-level employees (annual gross salary ⤠â¬32,254): The notice period is 3 months for the\nfirst 5 years of seniority, increasing by 1.5 months per additional year.\nLower-level employees (annual gross salary ⤠â¬32,254): The notice period is 3 months for the\nfirst 5 years of seniority, increasing by 1.5 months per additional year.\n- Higher-level employees (annual gross salary > â¬32,254): The notice period is 1 month per\nstarted year of seniority, with a minimum of 3 months.\nHigher-level employees (annual gross salary > â¬32,254): The notice period is 1 month per\nstarted year of seniority, with a minimum of 3 months.\n\n#### Part 2: Seniority acquired from January 1, 2014 onwards\n\nThe standard notice period rules from 2014 apply to seniority acquired after this date.\nThe total notice period is the sum of both periods calculated separately.\n\n### Severance pay calculation\n\nIf an employee does not serve their notice period, severance pay is calculated based on:\n- The remaining notice duration.\nThe remaining notice duration.\n- The employeeâs last salary.\nThe employeeâs last salary.\n- Additional compensation such as bonuses, stock options, and insurance contributions.\nAdditional compensation such as bonuses, stock options, and insurance contributions.\nThe severance pay consists of:\n- The current salary, which corresponds either to the full notice period that should normally be\nobserved or the remaining part of it.\nThe current salary, which corresponds either to the full notice period that should normally be\nobserved or the remaining part of it.\n- Benefits acquired during the contract (e.g., meal vouchers, company car, mobile phone usage).\nBenefits acquired during the contract (e.g., meal vouchers, company car, mobile phone usage).\nThe current salary is determined as follows:\n- The employeeâs gross monthly salary at the time of dismissal.\nThe employeeâs gross monthly salary at the time of dismissal.\n- All recurring bonuses, except for one-time bonuses (e.g., team work bonus, seniority bonus).\nAll recurring bonuses, except for one-time bonuses (e.g., team work bonus, seniority bonus).\n- Additional compensation for overtime hours worked over a longer period.\nAdditional compensation for overtime hours worked over a longer period.\n- Variable salary (average over the last twelve months).\nVariable salary (average over the last twelve months).\nThe system automatically generates a termination payslip including these calculations, ensuring\ncompliance with Belgian labor laws.\n\n### How does it work in Odoo?\n\nIn Odoo, to access the departure process, go to the employee form view and click on (Action) then Departure: Notice Period and payslip or navigate to Payroll ⣠Reporting ⣠Departure: Notice Period .\nIn the wizard that appears, select the reason for departure, provide a description of the departure,\nand specify the dismissal date. The employeeâs seniority is calculated based on their contract\nhistory, and the notice period is determined accordingly. You can also indicate whether the employee\nwill be working during the notice period.\nIf the employee is working during the notice period, there are no termination fees to calculate, and\nthe notice period will be recorded on the employeeâs form. Click the Validate button.\nIf the employee is working partially or not at all, the wizard will generate and calculate a\ntermination fees payslip. Click the Validate & Compute termination fees button.\nThe payslip takes into account all the salaries and benefits the employee would have received over\nthe course of a year to calculate a virtual annual remuneration. This amount is then prorated based\non the notice period to convert it into a gross salary.\nA detailed summary is provided on the payslip.\n\n### Conclusion\n\nThis module simplifies the departure process by providing clear and automatic calculations for the\nnotice period and severance pay. It helps HR teams ensure compliance and streamline the exit process\nfor employees.\n\n## DIMONA\n\n### What is the Dimona?\n\n#### Obligation\n\nAll employers, both in the public and private sectors, are required to electronically communicate\nthe entry and exit of their personnel to the National Social Security Office (Royal Decree of\nNovember 5, 2002).\nThis involves the immediate declaration of employment, also known as DIMONA (Déclaration Immédiate -\nOnmiddellijke Aangifte). Its purpose is to immediately notify social security institutions of the\nbeginning and end of an employment relationship between the worker and the employer.\nThe declarations submitted by the employer and immediately checked by the NSSO feed into a database\ncalled the personnel file . The employer can access it in a secure environment. There are numerous\nsearch criteria: they can be based on characteristics and combinations of characteristics.\nFailure to comply with this reporting obligation may result in criminal penalties as provided for\nin Article 181 of the Social Penal Code.\nFurthermore, in case of omission of declaration, the employer will owe the NSSO a solidarity\ncontribution.\n\n#### Concept and terminology\n\nThe relationship between the âemployerâ and the âworkerâ couple. This relationship includes stable\ndata (employer identification number, workerâs national identification social security number\n(NISS), start date of the relationship, and optionally end date), which will be maintained even in\ncase of creation, closure, modification, or cancellation of a period. This relationship begins with\nthe workerâs first engagement and ends at the end of their last occupation. In the personnel file,\nâemployer-workerâ relationships constitute the first level of consultation. The second level\nencompasses all Dimona periods;\nA period is created with each IN declaration, thus at the beginning of each new occupation. It is\nclosed by an exit date at the end of each occupation. The employer-worker relationship, on the\nother hand, is maintained until the end of the last occupation. Several Dimona periods may or may\nnot succeed each other within the same employer-worker relationship.\nAny changes generated by an OUT declaration, a modification (UPDATE), or a cancellation (CANCEL)\noccur at this second level.\nThis Dimona period is identified by a âperiod identification numberâ. It is assigned to each IN\ndeclaration and constitutes the unique identification key of a period for submitting OUT,\nmodification, or cancellation declarations.\nA unique number assigned by the NSSO to each Dimona declaration (IN, OUT, UPDATE, CANCEL,â¦). For\nan IN declaration, it is the period identification number. When declarations are submitted via file\ntransfer, multiple Dimona numbers are created: one number per employment relationship included in\nthe structured message;\nMandatory data of a Dimona declaration. There are four: the industry sector number, worker type,\nsub-entity (reserved for certain public sector employers), and user (for temporary workers).\nCharacteristics are always linked to a period. In case of different characteristics, multiple\nperiods can coexist;\nConfirms for web users that the declaration has been received (appears immediately on the screen);\nElectronic message for batch senders indicating whether the file is usable for the NSSO. This\nâreceipt acknowledgmentâ contains the ticket number ( file identification number ) and the file\nstatus: accepted or rejected depending on whether the file is readable or not;\nElectronic message with feedback on the processing of the declaration. The notification is the\nimmediate result of form and content checks. It can be of three types: positive (Dimona accepted),\nnegative (Dimona rejected), or provisional (only in case of problems with worker identification).\nThe provisional notification will always be followed by a positive or negative notification.\nFor the declaration of students under a student contract (STU), the notification will also contain\na warning if the student is declared for more than 475 hours. If the declaration was made via a\nsecure channel, the exact number of days of excess will be communicated.\nFor the daily declaration of occasional workers in the hospitality industry, the notification will\nalso contain a warning if the worker is declared for more than 50 days and/or for the employer\nquota, if more than 100 days of occasional work have been declared.\nOnce you have received this notification, you have five working days to contest the accuracy of the\ndata mentioned therein. At the end of this period, these data will be considered final. For any\ndisputes, you must contact the Eranova Contact Center (tel: 02 511 51 51, email: contactcenter@eranova . fgov . be ).\nNote that if the employer is affiliated with an approved social secretariat or a full-service\nsecretariat, they may not receive any notification. In this case, notifications are electronically\ntransmitted to the social secretariat or full-service secretariat, even for declarations that the\nemployer has submitted personally. However, the employer has access to the personnel file, where\nthey can view all data.\n\n#### Channels\n\nThe Dimona declaration must be submitted in the form of an electronic message via one of the\nfollowing channels:\n- personnel file\n- file transfer\n- web service (REST)\n- Dimona Mobile\nThe choice of one channel over another has no impact on the declaration. Therefore, you can freely\nchoose the channel you will use.\nAny declaration modifications can also be made through any of these four channels. The channel\nthrough which the original declaration was submitted plays no role.\nA Dimona declaration cannot be submitted via SMS.\n\n### Dimona in Odoo\n\n#### Manual\n\nIn Odoo, when you have the Belgian Payroll Localization installed, as soon as you have a contract\nset to the running stage, it creates an activity for the HR responsible that they need to introduce\nthe Dimona for today with the correct link to the Dimona Platform (the web channel mentioned in\nthe Channels section of this article).\n\n#### Automated\n\nIn Odoo, when you have the Belgian Payroll Localization installed, it is also possible to install\nthe module Belgium - Payroll - Dimona. This module will allow you to perform the 4 main actions\nneeded in the Dimona (as seen in Section 1 of this article):\n- Open the dimona\n- Update the dimona\n- Close the dimona\n- Cancel the Dimona\nThese actions answer the different use case explained in Section 1.\nBasically, it checks the contract and employee data needed to create, update, close or cancel.\nIf some information is missing or wrongly configured, the system will return errors and you can\ntake corrective action in order to make sure your Dimona is correctly sent, updated, closed or\ncanceled.\nThe status of sync and errors are shown in the chatter of the contract.\nFinally, the cron checks every day, for all contracts that have the status dimona waiting and\ntriggers the necessary actions to update the dimona status accordingly.\nRegarding the technical configuration, everything is described in the module information with all\nthe technical prerequisites. If your customer or partner need further assistance with that, they\nneed to contact their IT department or representatives as this is not part of Odoo configuration.\nFrom the Odoo configuration point of view, navigate to Payroll app ⣠Configuration\n⣠Settings and in the Belgian Localization section for ONSS , configure\nthe following:\n- ONSS Company ID : VAT Number of the Company\nONSS Company ID : VAT Number of the Company\n- Registration Number : 9 digits code received from the NSSO (ONSS - RSZ)\nRegistration Number : 9 digits code received from the NSSO (ONSS - RSZ)\n- DMFA Employer Class : 3 digits code received from the NSSO (ONSS - RSZ)\nDMFA Employer Class : 3 digits code received from the NSSO (ONSS - RSZ)\n- Expeditor Number ONSS : Not Mandatory (see technical documentation of the module for\nmore information)\nExpeditor Number ONSS : Not Mandatory (see technical documentation of the module for\nmore information)\n- PEM Certificate , PEM Passphare , KEY file : check the module\ninformation for explanation\nPEM Certificate , PEM Passphare , KEY file : check the module\ninformation for explanation\n\n## DmfA - Multifunctional Declaration\n\n### Overview\n\nDmfA stands for âDéclaration Multifonctionnelleâ or âMultifunctionele Aangifte.â It has replaced\nthe quarterly ONSS declaration since the first quarter of 2003. Through this declaration, employers\nsubmit salary and working time data for their employees.\nThese data are processed in a way that allows all social security institutions to work with the\nsame information. The declaration is called âmultifunctionalâ because it is used not only for\nsocial security contribution calculations and reductions but also as a data source for institutions\nmanaging social security rights and benefits.\nSectors utilizing DmfA data include:\n- Health insurance\n- Unemployment benefits\nUnemployment benefits\n- Pensions\n- Occupational risks (Fedris)\nOccupational risks (Fedris)\n- Family allowances\n- Annual leave\nAll employers registered with ONSS must submit a DmfA declaration.\n\n### Relationship with Dimona and DRS\n\nDmfA is closely linked to two other mandatory declarations:\n\n#### Dimona (immediate declaration)\n\nDimona records the start and end of an employment relationship with an employee.\n\n#### DRS (social risks declaration)\n\nDuring an employment relationship, various social risks may arise, such as termination, workplace\naccidents, or long-term illness. When a social risk occurs, social security institutions require\nadditional information beyond that provided by DmfA and Dimona.\nDRS is now primarily an electronic declaration, though paper submissions remain possible.\n\n### Who submits the DmfA declaration?\n\n#### Self-declaration options\n\nEmployers can submit their DmfA declaration themselves via:\n- Web Submission: Suitable for employers with a small workforce. Declarations are entered\ndirectly through the social security portal.\nWeb Submission: Suitable for employers with a small workforce. Declarations are entered\ndirectly through the social security portal.\n- Batch Submission: Designed for large employers or organizations handling multiple\ndeclarations (e.g., social secretariats, payroll software providers). Declarations are submitted\nvia file transfer (FTP, SFTP, etc.).\nBatch Submission: Designed for large employers or organizations handling multiple\ndeclarations (e.g., social secretariats, payroll software providers). Declarations are submitted\nvia file transfer (FTP, SFTP, etc.).\n\n#### Advantages of web submission\n\n- Automatic access to the companyâs employee list : Based on Dimona data. If an employee is\nmissing, they must first be declared via Dimona. After 24 hours, the employee list is updated,\nallowing for an accurate DmfA submission.\nAutomatic access to the companyâs employee list : Based on Dimona data. If an employee is\nmissing, they must first be declared via Dimona. After 24 hours, the employee list is updated,\nallowing for an accurate DmfA submission.\n- Automatic calculation of net payable amount : Once all required data is entered, the system\ncalculates the total payable amount.\nAutomatic calculation of net payable amount : Once all required data is entered, the system\ncalculates the total payable amount.\n- Reduction calculations : The system calculates applicable reductions, except for reductions\nunder code â0001â (personal contribution reductions for low-income workers). Employers need to\ncheck the relevant boxes and, if necessary, provide additional details.\nReduction calculations : The system calculates applicable reductions, except for reductions\nunder code â0001â (personal contribution reductions for low-income workers). Employers need to\ncheck the relevant boxes and, if necessary, provide additional details.\n\n#### Advantages of batch submission\n\n- Submission of large volumes of declarations : Ideal for organizations managing multiple\npayrolls.\nSubmission of large volumes of declarations : Ideal for organizations managing multiple\npayrolls.\n- Quick response on acceptance status : Employers receive immediate feedback on whether their\ndeclaration has been accepted.\nQuick response on acceptance status : Employers receive immediate feedback on whether their\ndeclaration has been accepted.\n- Error reporting : The system generates a report on detected anomalies, regardless of\nacceptance status.\nError reporting : The system generates a report on detected anomalies, regardless of\nacceptance status.\n- Automatic correction of calculation errors : When possible, errors are corrected\nautomatically, and employers are notified of adjustments.\nAutomatic correction of calculation errors : When possible, errors are corrected\nautomatically, and employers are notified of adjustments.\n\n### Third-Party submission options\n\nEmployers who do not wish to submit the DmfA themselves can delegate the task to:\n- Accredited Social Secretariats : These organizations handle payroll and declaration tasks\non behalf of employers.\nAccredited Social Secretariats : These organizations handle payroll and declaration tasks\non behalf of employers.\n- Service Providers : These may be companies or individuals with whom the employer has a\ncontractual agreement to manage payroll declarations securely.\nService Providers : These may be companies or individuals with whom the employer has a\ncontractual agreement to manage payroll declarations securely.\nFor more information on accredited social secretariats or service providers, please refer to the\nrelevant official DmfA documentation .\n\n### Configuration\n\nThe declaration is generated under Payroll app ⣠Reporting ⣠Belgium ⣠DmfA as is supposed to work properly after several required configuration steps.\n\n#### Company\n\nTo generate a valid DmfA declaration, specific company and employer-related information is required,\n(under Payroll app ⣠Configuration ⣠Settings ). These include:\n- ONSS Company ID\n- ONSS Registration Number\nONSS Registration Number\n- DMFA Employer Class\n- ONSS Certificate : certificate for signature file generation (required for batch\ndeclarations)\nONSS Certificate : certificate for signature file generation (required for batch\ndeclarations)\n- VAT Company Number\n- Revenue Code\n- FFE Employer Type (Fonds de Fermeture dâEntreprise)\nFFE Employer Type (Fonds de Fermeture dâEntreprise)\n\n#### Employee\n\nAdditionally, each employee must be assigned to a valid working address, identified with a DmfA\ncode, in their employee record. This operating unit must be linked to a valid ONSS identification\nnumber to ensure compliance with declaration requirements. Failing to configure this properly may\nresult in errors during the declaration submission process.\nOn the employee form, the Work Address must be defined.\nUnder Payroll app ⣠Configuration ⣠DMFA: Work Locations , you can link the work\naddress to a ONSS identification number.\n\n#### Work entry type\n\nA DmfA code should be defined for each work entry type that is declared. Under Payroll app ⣠Configuration ⣠Work Entries ⣠Work Entry Types , specify the DMFA code .\n\n#### Potential configuration errors\n\nDuring the declaration generation process, configuration issues may arise, triggering errors such\nas:\n- Terminated employees without or with invalid start/end notice period\nTerminated employees without or with invalid start/end notice period\n- Invalid NISS number for some employees\nInvalid NISS number for some employees\n- Work addresses not linked to an ONSS identification code\nWork addresses not linked to an ONSS identification code\n- Work entry type missing a corresponding DmfA code\nWork entry type missing a corresponding DmfA code\n- Other inconsistencies in employer or employee records\nOther inconsistencies in employer or employee records\nEmployers should ensure accurate configuration to avoid delays and rejection of their declarations.\n\n#### Web declaration\n\nA web declaration generates a PDF summarizing the companyâs general information, as well as all\nemployee data that must be manually entered into the system. This includes:\nFor a specific employee:\n- Occupations : Work schedules, part-time codes, parental leave, exploitation unit, reference\nworking hours.\nOccupations : Work schedules, part-time codes, parental leave, exploitation unit, reference\nworking hours.\n- Services : Aggregated work performance (in days and hours) for the quarter, categorized by\noccupation and type. The codification of working time in the DmfA declaration ensures accurate\nreporting of employee activities. Each code corresponds to a specific type of working time or\nabsence. For a complete and detailed list of codes, please refer to the official social security\nwebsite: socialsecurity.be 1 : All performances covered by a salary subject to ONSS contributions, excluding legal and\nadditional vacation for workers. 2 : Legal vacation days for workers. 3 : Additional vacation days for workers. 4 : Compensatory rest days. 5 : Days of illness or non-occupational accident. 6 : Family leave days. 7 : Maternity or paternity leave days. 8 : Strike days. 9 : Temporary unemployment for economic reasons. 10 : Temporary unemployment for bad weather. 11 : Temporary unemployment for force majeure. 12 : Professional training days. 13 : Suspension for disciplinary reasons. 14 : Additional vacation days for employment start or resumption. 15 : Flexible vacation days.\nServices : Aggregated work performance (in days and hours) for the quarter, categorized by\noccupation and type. The codification of working time in the DmfA declaration ensures accurate\nreporting of employee activities. Each code corresponds to a specific type of working time or\nabsence. For a complete and detailed list of codes, please refer to the official social security\nwebsite: socialsecurity.be\n- 1 : All performances covered by a salary subject to ONSS contributions, excluding legal and\nadditional vacation for workers.\n1 : All performances covered by a salary subject to ONSS contributions, excluding legal and\nadditional vacation for workers.\n- 2 : Legal vacation days for workers.\n2 : Legal vacation days for workers.\n- 3 : Additional vacation days for workers.\n3 : Additional vacation days for workers.\n- 4 : Compensatory rest days.\n4 : Compensatory rest days.\n- 5 : Days of illness or non-occupational accident.\n5 : Days of illness or non-occupational accident.\n- 6 : Family leave days.\n6 : Family leave days.\n- 7 : Maternity or paternity leave days.\n7 : Maternity or paternity leave days.\n- 8 : Strike days.\n- 9 : Temporary unemployment for economic reasons.\n9 : Temporary unemployment for economic reasons.\n- 10 : Temporary unemployment for bad weather.\n10 : Temporary unemployment for bad weather.\n- 11 : Temporary unemployment for force majeure.\n11 : Temporary unemployment for force majeure.\n- 12 : Professional training days.\n12 : Professional training days.\n- 13 : Suspension for disciplinary reasons.\n13 : Suspension for disciplinary reasons.\n- 14 : Additional vacation days for employment start or resumption.\n14 : Additional vacation days for employment start or resumption.\n- 15 : Flexible vacation days.\n15 : Flexible vacation days.\n- Remunerations : Aggregated by code per occupation: 1 : Regular salary amounts excluding certain indemnities. 2 : Bonuses and similar benefits granted independently of actual working days. 3 : Severance payments expressed in working hours. 7 : Simple vacation pay for exiting employees (subject to contributions). 10 : Personal use of a company vehicle and other mobility benefits. 11 : Simple vacation pay for exiting employees (not subject to contributions). 12 : Advance vacation pay paid by a previous employer (not subject to contributions).\nRemunerations : Aggregated by code per occupation:\n- 1 : Regular salary amounts excluding certain indemnities.\n1 : Regular salary amounts excluding certain indemnities.\n- 2 : Bonuses and similar benefits granted independently of actual working days.\n2 : Bonuses and similar benefits granted independently of actual working days.\n- 3 : Severance payments expressed in working hours.\n3 : Severance payments expressed in working hours.\n- 7 : Simple vacation pay for exiting employees (subject to contributions).\n7 : Simple vacation pay for exiting employees (subject to contributions).\n- 10 : Personal use of a company vehicle and other mobility benefits.\n10 : Personal use of a company vehicle and other mobility benefits.\n- 11 : Simple vacation pay for exiting employees (not subject to contributions).\n11 : Simple vacation pay for exiting employees (not subject to contributions).\n- 12 : Advance vacation pay paid by a previous employer (not subject to contributions).\n12 : Advance vacation pay paid by a previous employer (not subject to contributions).\n- Contributions : Employer and employee contributions, such as: 256 : Asbestos fund contribution. 255 : Special work accident contribution. 495 : Total employer + 13.07% employee contribution. 809 : Enterprise closure fund contribution. 810 : Special enterprise closure fund contribution. 831 : Auxiliary Joint Committee for Employees (CP200) contribution. 855 : Wage restraint contribution. 856 : Special social security contribution. 859 : Temporary unemployment contribution.\nContributions : Employer and employee contributions, such as:\n- 256 : Asbestos fund contribution.\n256 : Asbestos fund contribution.\n- 255 : Special work accident contribution.\n255 : Special work accident contribution.\n- 495 : Total employer + 13.07% employee contribution.\n495 : Total employer + 13.07% employee contribution.\n- 809 : Enterprise closure fund contribution.\n809 : Enterprise closure fund contribution.\n- 810 : Special enterprise closure fund contribution.\n810 : Special enterprise closure fund contribution.\n- 831 : Auxiliary Joint Committee for Employees (CP200) contribution.\n831 : Auxiliary Joint Committee for Employees (CP200) contribution.\n- 855 : Wage restraint contribution.\n855 : Wage restraint contribution.\n- 856 : Special social security contribution.\n856 : Special social security contribution.\n- 859 : Temporary unemployment contribution.\n859 : Temporary unemployment contribution.\n\n#### Batch declaration\n\nBatch declarations require technical knowledge, including SSH keys, SFTP servers, and electronic\nsignatures. Employers should refer to the official batch documentation and process overview .\nA batch submission generates three files:\n- Declaration file (e.g., FI.DMFA.112768.20250109.00014.R.1.1)\nDeclaration file (e.g., FI.DMFA.112768.20250109.00014.R.1.1)\n- Launch file (e.g., GO.DMFA.112768.20250109.00014.R.1)\nLaunch file (e.g., GO.DMFA.112768.20250109.00014.R.1)\n- Electronic signature file (e.g., FS.DMFA.112768.20250109.00014.R.1.1) (only for real\ndeclarations, not tests)\nElectronic signature file (e.g., FS.DMFA.112768.20250109.00014.R.1.1) (only for real\ndeclarations, not tests)\nThe full process includes creating, sending, validating, and potentially correcting declarations.\nRejections and anomalies must be addressed before final acceptance.\n- Creation of the Declaration Create an XML document containing employee benefit data, remuneration, and contributions for\nthe company. More information on XML files can be found in the Specifications page.\nCreation of the Declaration\n- Create an XML document containing employee benefit data, remuneration, and contributions for\nthe company.\nCreate an XML document containing employee benefit data, remuneration, and contributions for\nthe company.\n- More information on XML files can be found in the Specifications page.\nMore information on XML files can be found in the Specifications page.\n- Sending the Declaration Use FTP or SFTP for sending the file. Access requires prior authorization for secure zone\naccess by a local manager. Detailed instructions are available on the Introduce and Modify (via batch) .\nSending the Declaration\n- Use FTP or SFTP for sending the file. Access requires prior authorization for secure zone\naccess by a local manager.\nUse FTP or SFTP for sending the file. Access requires prior authorization for secure zone\naccess by a local manager.\n- Detailed instructions are available on the Introduce and Modify (via batch) .\nDetailed instructions are available on the Introduce and Modify (via batch) .\n- File Acknowledgment Receipt Positive Receipt : Indicates the file can be processed. However, this does not guarantee\nacceptance. Negative Receipt : Indicates issues with the file structure or access rights.\nFile Acknowledgment Receipt\n- Positive Receipt : Indicates the file can be processed. However, this does not guarantee\nacceptance.\nPositive Receipt : Indicates the file can be processed. However, this does not guarantee\nacceptance.\n- Negative Receipt : Indicates issues with the file structure or access rights.\nNegative Receipt : Indicates issues with the file structure or access rights.\n- Notification and Ticket Number for the Declaration A positive notification is sent for each accepted declaration. Negative notification: Provides information on encountered anomalies.\nNotification and Ticket Number for the Declaration\n- A positive notification is sent for each accepted declaration.\nA positive notification is sent for each accepted declaration.\n- Negative notification: Provides information on encountered anomalies.\nNegative notification: Provides information on encountered anomalies.\n- Sending PID Employers and SSA will receive PID and version numbers via batch for declarations.\n- Employers and SSA will receive PID and version numbers via batch for declarations.\nEmployers and SSA will receive PID and version numbers via batch for declarations.\n- Modification Notification with System Corrections If corrections are made, a modification notification is sent with corrected values.\nModification Notification with System Corrections\n- If corrections are made, a modification notification is sent with corrected values.\nIf corrections are made, a modification notification is sent with corrected values.\n\n## Double holiday pay\n\nDouble holiday pay is an additional bonus paid to employees and workers during their annual leave.\nThe amount depends on the employeeâs or workerâs salary.\n\n### How is double holiday pay calculated?\n\nFor employees, double holiday pay amounts to 92% of their gross salary for the month when they\ntake their main annual leave. This amount is calculated based on the number of months worked or\nconsidered equivalent in the previous year.\n\n### Impact of additional or European leave\n\nIf you take additional or European leave, your employer will pay you regular holiday pay for that\nleave. However, the following year, this amount will be deducted from your double holiday pay. This\nis because additional leave is considered an advance on the next yearâs legal leave.\n\n### Factors affecting the calculation\n\n- Months Worked : The calculation is based on the number of months you worked in the previous\nyear.\nMonths Worked : The calculation is based on the number of months you worked in the previous\nyear.\n- Absences : If you had unpaid absences, they may reduce your double holiday pay.\nAbsences : If you had unpaid absences, they may reduce your double holiday pay.\n- Variable Revenues : Bonuses and commissions earned in the previous year can impact the total\namount of double holiday pay.\nVariable Revenues : Bonuses and commissions earned in the previous year can impact the total\namount of double holiday pay.\n- Withholding Taxes : The double holiday pay is subject to income tax deductions, which depend\non your annual earnings and family situation.\nWithholding Taxes : The double holiday pay is subject to income tax deductions, which depend\non your annual earnings and family situation.\n\n### Withholding tax calculation\n\nThe withholding tax is calculated using a progressive rate system. The process involves:\n- Identify the Employeeâs Annual Taxable Revenue : Compute the annualized salary, including benefits in kind (e.g., company car, internet, mobile\nphone, laptop). Apply reductions for dependent children.\nIdentify the Employeeâs Annual Taxable Revenue :\n- Compute the annualized salary, including benefits in kind (e.g., company car, internet, mobile\nphone, laptop).\nCompute the annualized salary, including benefits in kind (e.g., company car, internet, mobile\nphone, laptop).\n- Apply reductions for dependent children.\nApply reductions for dependent children.\n- Apply Tax Rates : Use predefined tax brackets to determine the base withholding tax rate. If applicable, apply a reduction based on the number of dependent children.\n- Use predefined tax brackets to determine the base withholding tax rate.\nUse predefined tax brackets to determine the base withholding tax rate.\n- If applicable, apply a reduction based on the number of dependent children.\nIf applicable, apply a reduction based on the number of dependent children.\n\n#### Tax brackets\n\nThe withholding tax is applied progressively based on the following brackets (as of 2025):\n\n#### Tax exemption\n\nA withholding tax exemption is granted when the normal annual gross income does not exceed a\nspecific threshold, which is determined based on the number of dependent children [2].\nA disabled dependent child counts as two.\nThe method involves referring to a two-column table:\n- Column 1 : Indicates the number of dependent children.\nColumn 1 : Indicates the number of dependent children.\n- Column 2 : Specifies the maximum allowable normal annual gross income, based on the number of\ndependent children listed in Column 1, which must not be exceeded to qualify for full or partial\nexemption from withholding tax.\nColumn 2 : Specifies the maximum allowable normal annual gross income, based on the number of\ndependent children listed in Column 1, which must not be exceeded to qualify for full or partial\nexemption from withholding tax.\nAfter determining the annual gross income, two scenarios may arise:\n- If the annual income exceeds the threshold, no exemption is granted.\nIf the annual income exceeds the threshold, no exemption is granted.\n- If the annual income does not exceed the threshold, an exemption will be applied.\nIf the annual income does not exceed the threshold, an exemption will be applied.\nThe amount of this exemption corresponds to the difference between the annual gross income and the\nthreshold amount.\nOf course, if this difference exceeds the base withholding tax amount, no withholding tax will\nbe due.\n\n#### Tax reductions\n\nWhen there is no justification for fully or partially exempting the exceptional allowance from\nwithholding tax, it is still possible to grant a reduction in withholding tax.\nTo determine eligibility for this reduction, one must check whether the normal annual gross salary\nexceeds a certain higher threshold, which varies according to the number of dependent children [3].\nThis threshold is higher than the one used for exemption purposes.\nA disabled child counts as two.\nThe method involves referring to a three-column table:\n- Column 1 : Indicates the number of dependent children (up to a maximum of 5).\nColumn 1 : Indicates the number of dependent children (up to a maximum of 5).\n- Column 2 : Specifies the percentage reduction in withholding tax, based on the number of\ndependent children listed in Column 1, which must not be exceeded to qualify for the reduction.\nColumn 2 : Specifies the percentage reduction in withholding tax, based on the number of\ndependent children listed in Column 1, which must not be exceeded to qualify for the reduction.\n- Column 3 : Shows the threshold amount that must not be exceeded, corresponding to the number\nof dependent children listed in Column 1.\nColumn 3 : Shows the threshold amount that must not be exceeded, corresponding to the number\nof dependent children listed in Column 1.\nTwo scenarios may arise:\n- If the threshold amount is exceeded, no reduction will be granted.\nIf the threshold amount is exceeded, no reduction will be granted.\n- If the threshold amount is not exceeded, a reduction will be applied to the withholding\ntax amount, up to a percentage rate determined in Column 2.\nIf the threshold amount is not exceeded, a reduction will be applied to the withholding\ntax amount, up to a percentage rate determined in Column 2.\nFor employees with dependent children, tax reductions apply as follows:\n\n#### Final tax calculation\n\nThe final withholding tax amount is:\nThe resulting tax is deducted from the gross double holiday salary to determine the net amount\npayable to the employee.\nThe calculation considers work duration, absences, variable revenue, and applicable withholding\ntaxes. Odoo automates these calculations to ensure compliance with Belgian labor laws and tax\nregulations.\n\n### Generate a batch in Odoo\n\nNavigate to Payroll App ⣠Payslips ⣠Batches and create a new record with valid\ndates (here december 2024)\nThen click the Generate Payslips button, select the CP200 salary structure type and the\nThirteen Month salary structure. You can also filter eligible employees by department and / or\njob position.\nOnce validated, a payslip is generated for each employee.\nYou can now check the different payslips before validation. Once validated, the PDF files are\ngenerated and posted on employee portals as for classic payslips.\n\n### Conclusion\n\nDouble holiday pay is a significant benefit that rewards employees for their work in the previous\nyear. Understanding how it is calculated helps in better financial planning for the holiday period.\n\n## Eco vouchers\n\n### Overview\n\nEco vouchers are a tax-free employee benefit designed to support the purchase of\nenvironmentally-friendly products and services. These vouchers are ordered via external providers\nand are exempt from social security contributions.\n\n### Eligibility & allocation\n\nEmployees who have worked during the reference period (01/06/N-1 - 31/05/N) are eligible for\nup to 250⬠in eco vouchers, which are granted at the beginning of July .\nFor 2025, employees must have worked between 01/06/2024 and 31/05/2025 to qualify.\nFor employees who join during the reference period, the voucher amount is prorated based on their\nworked days.\nAn employee hired on 06/01 , having worked 6 out of 12 months , would receive:\nFor part-time employees, the amount is adjusted as follows:\nIf an employee starts on 1st September in full-time and then switches to half-time on 1st April 2024 , the calculation will be:\n\n### Exceptions & adjustments\n\nIf an employee worked full-time for the entire reference period but did not receive 250⬠,\ncertain non-assimilated leave days may have affected the calculation.\nThe following leave types are not considered for eco-voucher entitlement:\n- Unpaid leaves\n- Sick leave compensated by mutual insurance (after 30 days of work incapacity)\nSick leave compensated by mutual insurance (after 30 days of work incapacity)\n\n### Usage & validity\n\nEco vouchers are valid for 24 months from the date of issuance.\nThe list of eligible products and services that can be purchased with eco vouchers is available\nhere:\n- Eco-Voucher Eligible Products\nEco-Voucher Eligible Products\n\n## End of year bonus\n\nThis document explains the calculation of the thirteenth-month salary (year-end bonus) in Belgium\nwithin Odoo. The calculation considers the employeeâs contracts, working time rates, and applicable\ntaxes.\n\n### Calculation of the thirteenth-month salary\n\n#### Eligibility criteria\n\n- The employee must have worked for at least six complete months in the year.\nThe employee must have worked for at least six complete months in the year.\n- Both full-time and part-time employees are eligible, with prorated calculations based on work\ntime.\nBoth full-time and part-time employees are eligible, with prorated calculations based on work\ntime.\n\n#### Salary calculation\n\nThe thirteenth-month salary is computed as follows:\n- Determine the basic salary : Retrieve the employeeâs contractual wage. Identify the applicable work rate.\nDetermine the basic salary :\n- Retrieve the employeeâs contractual wage.\nRetrieve the employeeâs contractual wage.\n- Identify the applicable work rate.\nIdentify the applicable work rate.\n- Compute eligible months : If explicitly provided ( MONTHS input), use the given number of months. Otherwise, calculate the number of complete months worked. Prorate the salary for partial-year work.\nCompute eligible months :\n- If explicitly provided ( MONTHS input), use the given number of months.\nIf explicitly provided ( MONTHS input), use the given number of months.\n`MONTHS`\n- Otherwise, calculate the number of complete months worked.\nOtherwise, calculate the number of complete months worked.\n- Prorate the salary for partial-year work.\nProrate the salary for partial-year work.\n- Adjust for absences : Deduct unpaid absences to obtain the presence prorata. Consider up to 60 days of sick leave as paid time off.\nAdjust for absences :\n- Deduct unpaid absences to obtain the presence prorata.\nDeduct unpaid absences to obtain the presence prorata.\n- Consider up to 60 days of sick leave as paid time off.\nConsider up to 60 days of sick leave as paid time off.\n- Include variable revenues : If explicitly provided ( VARIABLE input), use the given value. Otherwise, calculate the average variable revenue over the last year.\nInclude variable revenues :\n- If explicitly provided ( VARIABLE input), use the given value.\nIf explicitly provided ( VARIABLE input), use the given value.\n`VARIABLE`\n- Otherwise, calculate the average variable revenue over the last year.\nOtherwise, calculate the average variable revenue over the last year.\n- Final amount : The final thirteenth-month amount is the sum of the prorated fixed salary and average variable\nrevenues.\n- The final thirteenth-month amount is the sum of the prorated fixed salary and average variable\nrevenues.\nThe final thirteenth-month amount is the sum of the prorated fixed salary and average variable\nrevenues.\n\n### Withholding tax calculation\n\nThe withholding tax is calculated using a progressive rate system. The process involves:\n- Identify the employeeâs annual taxable revenue : Compute the annualized salary, including benefits in kind (e.g., company car, internet, mobile\nphone, laptop). Apply reductions for dependent children.\nIdentify the employeeâs annual taxable revenue :\n- Compute the annualized salary, including benefits in kind (e.g., company car, internet, mobile\nphone, laptop).\nCompute the annualized salary, including benefits in kind (e.g., company car, internet, mobile\nphone, laptop).\n- Apply reductions for dependent children.\nApply reductions for dependent children.\n- Apply Tax Rates : Use predefined tax brackets to determine the base withholding tax rate. If applicable, apply a reduction based on the number of dependent children.\n- Use predefined tax brackets to determine the base withholding tax rate.\nUse predefined tax brackets to determine the base withholding tax rate.\n- If applicable, apply a reduction based on the number of dependent children.\nIf applicable, apply a reduction based on the number of dependent children.\n\n#### Tax brackets\n\nThe withholding tax is applied progressively based on the following brackets (as of 2025):\n\n#### Tax exemption\n\nA withholding tax exemption is granted when the normal annual gross income does not exceed a\nspecific threshold, which is determined based on the number of dependent children [2].\nA disabled dependent child counts as two.\nThe method involves referring to a two-column table:\n- Column 1 : Indicates the number of dependent children.\nColumn 1 : Indicates the number of dependent children.\n- Column 2 : Specifies the maximum allowable normal annual gross income, based on the number of\ndependent children listed in Column 1, which must not be exceeded to qualify for full or partial\nexemption from withholding tax.\nColumn 2 : Specifies the maximum allowable normal annual gross income, based on the number of\ndependent children listed in Column 1, which must not be exceeded to qualify for full or partial\nexemption from withholding tax.\nAfter determining the annual gross income, two scenarios may arise:\n- If the annual income exceeds the threshold, no exemption is granted.\nIf the annual income exceeds the threshold, no exemption is granted.\n- If the annual income does not exceed the threshold, an exemption will be applied.\nIf the annual income does not exceed the threshold, an exemption will be applied.\nThe amount of this exemption corresponds to the difference between the annual gross income and the\nthreshold amount.\nOf course, if this difference exceeds the base withholding tax amount, no withholding tax will\nbe due.\n\n#### Tax reductions\n\nWhen there is no justification for fully or partially exempting the exceptional allowance from\nwithholding tax, it is still possible to grant a reduction in withholding tax.\nTo determine eligibility for this reduction, one must check whether the normal annual gross salary\nexceeds a certain higher threshold, which varies according to the number of dependent children [3].\nThis threshold is higher than the one used for exemption purposes.\nA disabled child counts as two.\nThe method involves referring to a three-column table:\n- Column 1 : Indicates the number of dependent children (up to a maximum of 5).\nColumn 1 : Indicates the number of dependent children (up to a maximum of 5).\n- Column 2 : Specifies the percentage reduction in withholding tax, based on the number of\ndependent children listed in Column 1, which must not be exceeded to qualify for the reduction.\nColumn 2 : Specifies the percentage reduction in withholding tax, based on the number of\ndependent children listed in Column 1, which must not be exceeded to qualify for the reduction.\n- Column 3 : Shows the threshold amount that must not be exceeded, corresponding to the number\nof dependent children listed in Column 1.\nColumn 3 : Shows the threshold amount that must not be exceeded, corresponding to the number\nof dependent children listed in Column 1.\nTwo scenarios may arise:\n- If the threshold amount is exceeded, no reduction will be granted.\nIf the threshold amount is exceeded, no reduction will be granted.\n- If the threshold amount is not exceeded, a reduction will be applied to the withholding\ntax amount, up to a percentage rate determined in Column 2.\nIf the threshold amount is not exceeded, a reduction will be applied to the withholding\ntax amount, up to a percentage rate determined in Column 2.\nFor employees with dependent children, tax reductions apply as follows:\n\n#### Final tax calculation\n\nThe final withholding tax amount is:\nThe resulting tax is deducted from the gross thirteenth-month salary to determine the net amount\npayable to the employee.\nThe calculation considers work duration, absences, variable revenue, and applicable withholding\ntaxes. Odoo automates these calculations to ensure compliance with Belgian labor laws and tax\nregulations.\n\n### How to do it in Odoo\n\nNavigate to Payroll app ⣠Payslips ⣠Batches and create a new record with valid\ndates (here december 2024).\nThen click the Generate Payslips button, select the CP200: Belgian Employee Salary Structure Type and the CP200: Employees 13th Month Salary\nStructure . You can also filter eligible employees by Department and / or Job\nPosition .\nOnce validated, a payslip is generated for each employee.\nYou can now check the different payslips before validation. Once validated, the PDF files are\ngenerated and posted on employee portals as for classic payslips.\n\n## Holiday pay recovery\n\nThis document explains how Odoo calculates the recovery of holiday pay (both simple and double) for\nemployees in Belgium who have changed employers. When an employee moves from one company to another,\ntheir previous employer may have already paid their holiday pay for the previous year. This amount\nneeds to be recovered by the new employer, and this guide outlines how this is managed in Odoo.\n\n### Understanding holiday pay in Belgium\n\nIn Belgium, employees are entitled to annual leave and corresponding holiday pay, which consists of:\n- Simple holiday pay : Regular salary payments for the days of leave taken.\nSimple holiday pay : Regular salary payments for the days of leave taken.\n- Double holiday pay : An additional payment, typically equal to approximately 92% of the gross\nmonthly salary, given when employees take their annual leave.\nDouble holiday pay : An additional payment, typically equal to approximately 92% of the gross\nmonthly salary, given when employees take their annual leave.\nWhen an employee changes jobs, their previous employer may have already paid these amounts. To avoid\ndouble payment, the new employer needs to recover the amounts already paid.\n\n### Recovery of simple holiday pay\n\nThe recovery of simple holiday pay in Odoo is based on the following criteria:\n- The recovery applies if the employee has taken leave in the current year and their previous\nemployer already paid the holiday pay.\nThe recovery applies if the employee has taken leave in the current year and their previous\nemployer already paid the holiday pay.\n- The calculation considers the number of leave days taken and the hours worked per week.\nThe calculation considers the number of leave days taken and the hours worked per week.\n- The recovery process is split into: Year N : The current yearâs holiday pay recovery. Year N-1 : The recovery of holiday pay from the previous year.\nThe recovery process is split into:\n- Year N : The current yearâs holiday pay recovery.\nYear N : The current yearâs holiday pay recovery.\n- Year N-1 : The recovery of holiday pay from the previous year.\nYear N-1 : The recovery of holiday pay from the previous year.\n- If the employeeâs first contract date with the company was in the previous year.\nIf the employeeâs first contract date with the company was in the previous year.\n- If the employee has a pending holiday pay recovery amount.\nIf the employee has a pending holiday pay recovery amount.\n- If the recovery has not already been processed.\nIf the recovery has not already been processed.\n- If the employee has taken annual leave.\nIf the employee has taken annual leave.\nIf all conditions are met, Odoo calculates the amount to be deducted from the payroll to account\nfor the holiday pay already received from the previous employer.\n\n### Recovery of double holiday pay\n\nThe recovery of double holiday pay follows these steps:\n- The system verifies the employeeâs contract and determines their employment duration.\nThe system verifies the employeeâs contract and determines their employment duration.\n- The gross salary is calculated based on the employeeâs contract.\nThe gross salary is calculated based on the employeeâs contract.\n- The number of months worked in the previous year is identified.\nThe number of months worked in the previous year is identified.\n- A threshold amount is computed as follows: \\[\\text{Threshold} = \\text{Current monthly salary} \\times \\text{Months worked in previous year}\n\\times \\text{Occupation rate} \\times 7.67%\\] If the amount on the holiday certificate from the previous employer is lower than this threshold,\nno limit applies.\nA threshold amount is computed as follows:\nIf the amount on the holiday certificate from the previous employer is lower than this threshold,\nno limit applies.\n- The system recovers the lower of: The calculated threshold. The actual amount paid by the previous employer.\nThe system recovers the lower of:\n- The calculated threshold.\nThe calculated threshold.\n- The actual amount paid by the previous employer.\nThe actual amount paid by the previous employer.\nIf the employee has worked for more than 12 months in the current company, no double holiday pay\nneeds to be recovered.\n\n### How to configure in Odoo\n\nIn the employee form view, under the Settings tab, you can enter the various amounts\nfrom holiday attests provided by the new employee.\nFor simple holiday pay recovery, you need to enter:\n- The Number of days for paid leave\nThe Number of days for paid leave\n- The Amount to recover by the employee\nThe Amount to recover by the employee\nThe Recovered Amount field displays the amount already recovered.\nFor double holiday pay recovery, you must enter a line for each employerâs holiday attest . Each\nline should include:\n- The # Months (number of months) the employee worked for that employer\nThe # Months (number of months) the employee worked for that employer\n- The Amount provided to the employee\nThe Amount provided to the employee\n- The Occupational Rate\nThe Occupational Rate\nOdoo uses this data to compute a recovery limit . If the employee now has a lower salary, the\nfull amount cannot be recovered.\nBe careful not to mix holiday attests for the current year (N) and the previous year (N-1).\nFor simple holiday pay recovery, the system deducts the amount from each legal time-off period\nuntil:\n- The total amount has been fully recovered, or\nThe total amount has been fully recovered, or\n- The number of time-off days has been matched (if the employeeâs current salary is lower than\nbefore).\nThe number of time-off days has been matched (if the employeeâs current salary is lower than\nbefore).\nOnce the payslip is validated and paid, the recovered simple holiday pay is reflected in the\nemployee form view.\nOn the double holiday payslip, click Compute Double Pay Recovery to open a wizard that\nhelps calculate the recoverable amount.\nIn the Double Pay Recovery Computation wizard, youâll find:\n- The relevant holiday attests listed in the Occupation Lines\nThe relevant holiday attests listed in the Occupation Lines\n- The Double Pay To Recover amount based on the threshold\nThe Double Pay To Recover amount based on the threshold\nThis amount is editable if manual adjustments are needed.\nOnce validated, the double pay recovery is applied to the payslip.\nOdoo automates the recovery of both simple and double holiday pay, ensuring compliance with Belgian labor laws . By analyzing contract details, employment duration, and past payments, Odoo\ncalculates the necessary deductions and prevents duplicate holiday pay payments.\n\n## Individual accounts\n\n### Introduction\n\nThe individual account provides workers with a detailed overview of their earnings, deductions\n(such as social security contributions, withholding tax, etc.), and the working days performed, on\na pay period basis. Additionally, it contains all relevant administrative data related to\nremuneration.\n\n### Required information in the individual account\n\nThe individual account must include several mandatory details as determined by Royal Decree.\nEmployer identification:\n- Name, address, ONSS number, ONVA number\nName, address, ONSS number, ONVA number\n- Relevant joint committee (or sub-committee)\nRelevant joint committee (or sub-committee)\n- Name of the holiday fund for workers\nName of the holiday fund for workers\n- Insurer for work-related accidents\nInsurer for work-related accidents\n- Approved social secretariat\nApproved social secretariat\n- Relevant affiliation numbers\nRelevant affiliation numbers\nWorker identification:\n- Name, address, date of birth, gender, tax status\nName, address, date of birth, gender, tax status\n- Type of employment contract, job title, professional qualification\nType of employment contract, job title, professional qualification\n- Workplace location (or note if working at multiple locations)\nWorkplace location (or note if working at multiple locations)\n- Start and end date of employment\nStart and end date of employment\n- Employee ID number, starting salary\nEmployee ID number, starting salary\n- Remuneration components and payment periodicity\nRemuneration components and payment periodicity\nRemuneration components:\n- Per pay period (daily, weekly, bi-weekly, or monthly): Number of working days and hours (regular, additional, and overtime) Days of work interruption and reasons (illness, vacations, public holidays, replacement days,\ncompensatory rest days, etc.) Fixed or hourly salary, variable remuneration, bonuses, meal vouchers, eco vouchers, holiday\npay (including early holiday pay if applicable), severance pay, year-end bonuses (as per\nsectoral or other collective labor agreements), benefits in kind and their estimated value Gross amount of all remuneration components Amounts subject to social and tax deductions Various social and tax deductions: personal ONSS contributions, withholding tax, special\nsocial security contributions Net amount payable to the worker Other payments made by the employer, including reimbursement of travel expenses, allowances,\nand other payments\nPer pay period (daily, weekly, bi-weekly, or monthly):\n- Number of working days and hours (regular, additional, and overtime)\nNumber of working days and hours (regular, additional, and overtime)\n- Days of work interruption and reasons (illness, vacations, public holidays, replacement days,\ncompensatory rest days, etc.)\nDays of work interruption and reasons (illness, vacations, public holidays, replacement days,\ncompensatory rest days, etc.)\n- Fixed or hourly salary, variable remuneration, bonuses, meal vouchers, eco vouchers, holiday\npay (including early holiday pay if applicable), severance pay, year-end bonuses (as per\nsectoral or other collective labor agreements), benefits in kind and their estimated value\nFixed or hourly salary, variable remuneration, bonuses, meal vouchers, eco vouchers, holiday\npay (including early holiday pay if applicable), severance pay, year-end bonuses (as per\nsectoral or other collective labor agreements), benefits in kind and their estimated value\n- Gross amount of all remuneration components\nGross amount of all remuneration components\n- Amounts subject to social and tax deductions\nAmounts subject to social and tax deductions\n- Various social and tax deductions: personal ONSS contributions, withholding tax, special\nsocial security contributions\nVarious social and tax deductions: personal ONSS contributions, withholding tax, special\nsocial security contributions\n- Net amount payable to the worker\nNet amount payable to the worker\n- Other payments made by the employer, including reimbursement of travel expenses, allowances,\nand other payments\nOther payments made by the employer, including reimbursement of travel expenses, allowances,\nand other payments\n- Per quarter: Number of actual working days Days of work interruption by reason Total remuneration subject to social security contributions Employee social security contribution amounts\n- Number of actual working days\nNumber of actual working days\n- Days of work interruption by reason\nDays of work interruption by reason\n- Total remuneration subject to social security contributions\nTotal remuneration subject to social security contributions\n- Employee social security contribution amounts\nEmployee social security contribution amounts\n- Per year: Total amounts subject to social security contributions Employee social security contribution amounts Taxable remuneration and other amounts Withholding tax amount\n- Total amounts subject to social security contributions\nTotal amounts subject to social security contributions\n- Employee social security contribution amounts\nEmployee social security contribution amounts\n- Taxable remuneration and other amounts\nTaxable remuneration and other amounts\n- Withholding tax amount\nWithholding tax amount\n\n### Responsibility for establishing and updating the individual account\n\nBelgian employers using Odoo Payroll can generate the individual accounts of their workers.\nHowever, to ensure accurate record-keeping, employers must:\n- Ensure payment of sector-mandated year-end bonuses\nEnsure payment of sector-mandated year-end bonuses\n- Ensure that all public holidays, legal vacation days, and compensatory rest days are taken\nbefore the end of the year\nEnsure that all public holidays, legal vacation days, and compensatory rest days are taken\nbefore the end of the year\n- Plan collective vacation and replacement public holidays in advance\nPlan collective vacation and replacement public holidays in advance\n- Pay workers their holiday pay (including early holiday pay if applicable)\nPay workers their holiday pay (including early holiday pay if applicable)\n- Distribute due eco vouchers\nDistribute due eco vouchers\n- Pay any required travel expenses between home and work\nPay any required travel expenses between home and work\nIf these obligations are met, the corresponding data will be included in the individual account.\n\n### Storage and retention period of the individual account\n\nThe individual account is a social document that must be kept by the employer for a specified\nperiod after its creation.\nEmployers may store individual accounts:\n- At the ONSS-registered address\nAt the ONSS-registered address\n- At a workplace\n- At their home or registered office if located in Belgium; otherwise, at the residence of a\ndesignated agent in Belgium\nAt their home or registered office if located in Belgium; otherwise, at the residence of a\ndesignated agent in Belgium\n- At the office of the approved social secretariat, if affiliated\nAt the office of the approved social secretariat, if affiliated\nRecords must be kept legible and in a format allowing efficient oversight. The retention period is five years from the end of the annual closing of the account.\n\n### When must workers receive a copy of their individual account?\n\nEach worker must receive a copy of their individual account:\n- During employment: Before March 1 of the following year\nDuring employment: Before March 1 of the following year\n- At the end of employment: Within two months following the end of the quarter in which the\ncontract ended\nAt the end of employment: Within two months following the end of the quarter in which the\ncontract ended\n- If additional payments occur after contract termination: A copy reflecting the additional\npayment must be provided within two months of the payment\nIf additional payments occur after contract termination: A copy reflecting the additional\npayment must be provided within two months of the payment\nAdditionally, employers must issue a simplified individual account with certain worker and\nemployer details within two months of the workerâs employment start date.\nAny modifications to mandatory details, such as job function or workplace location, must be\ncommunicated in writing (e.g., an updated simplified individual account) within one month of the\neffective change date.\n\n### Generate individual accounts in Odoo\n\nNavigate to Payroll app ⣠Reporting ⣠Belgium ⣠Individual Accounts .\nThen select the reference year and click the Populate button. The .pdf are\ndisplayed as soon as they are available and are generated 30 by 30, this could take some time\naccording to the number of employees.\n`.pdf`\nOn the first page, the Employer Information and the Employee Information is\nlisted.\nThe next page displays all the employee worked days and payslip lines, month by month, split by\nstructure (e.g., End of year bonus and monthly pay).\nThe next page displays the same information quarter by quarter and summarized for the whole year.\nOnce all PDF files are generated, they can be posted to the employee documents portal if the Documents application is installed and properly configured .\nSelect the checkbox of each employee whose documents you want to post, and click the Post\nPDF button.\n\n## Intellectual property and 273 sheets\n\n### Introduction\n\nThe 273S declaration is used for the Prepayment on Mobile Income (Pr.M) , which concerns the\ntaxation of Authorâs Rights and Neighboring Rights (also known as Revenus Mobilier ).\nThese are specific types of income that are subject to particular tax treatment in certain\njurisdictions.\nThis document provides users with essential information about how the 273S declaration functions\nwithin Odoo for reporting income derived from these rights, including applicable tax rates and\nconditions.\n\n### Tax rates and calculation\n\nThe net income from Authorâs Rights and Neighboring Rights is taxable at a specific rate of 15% .\nHowever, the effective tax rate can vary based on the application of flat-rate deductions. These\nflat rates reduce the taxable amount, leading to a lower effective tax rate for lower incomes.\nKey points of taxation:\n- Effective tax rate : For incomes below the first flat-rate threshold, the effective tax rate can be as low as 7.5% . For incomes reaching the flat-rate ceiling of 37,500 EUR (indexed annually), the rate can\nincrease to 12% .\n- For incomes below the first flat-rate threshold, the effective tax rate can be as low as 7.5% .\nFor incomes below the first flat-rate threshold, the effective tax rate can be as low as 7.5% .\n- For incomes reaching the flat-rate ceiling of 37,500 EUR (indexed annually), the rate can\nincrease to 12% .\nFor incomes reaching the flat-rate ceiling of 37,500 EUR (indexed annually), the rate can\nincrease to 12% .\n- Additional taxes : Income from Authorâs Rights and Neighboring Rights must be declared in the\npersonal income tax declaration. As a result, municipal surcharges may also apply to the tax due.\nAdditional taxes : Income from Authorâs Rights and Neighboring Rights must be declared in the\npersonal income tax declaration. As a result, municipal surcharges may also apply to the tax due.\nThe prepayment of the tax is handled via a withholding tax on the income. The debtor of the\nincome (e.g., the employer or company paying the royalties) must submit the 273S declaration to the\ntax authorities. This withholding tax rate is generally 15% , but for incomes exceeding the\nindexed ceiling of 37,500 EUR , the rate increases to 30% .\n\n### Benefits of Authorâs Rights in employment contracts\n\nCompanies can offer tax-advantageous remuneration to their directors or employees by granting Authorâs Rights . These rights are subject to a 15% withholding tax , but there are flat-rate\ndeductions that make this tax treatment very favorable, especially when incomes are lower.\nImportant considerations:\n- Creative works : To qualify for Authorâs Rights protection, the work must be creative,\noriginal, and fixed in a tangible form. Simple ideas or concepts are not eligible.\nCreative works : To qualify for Authorâs Rights protection, the work must be creative,\noriginal, and fixed in a tangible form. Simple ideas or concepts are not eligible.\n- Exploitation requirement : From January 1, 2023, a new regulation mandates that transferred or\nlicensed protected works must be exploited, meaning they must be used for public communication,\nexecution, representation, or reproduction.\nExploitation requirement : From January 1, 2023, a new regulation mandates that transferred or\nlicensed protected works must be exploited, meaning they must be used for public communication,\nexecution, representation, or reproduction.\n- Eligibility for tax benefits : To benefit from the favorable tax regime, the rights holder\nmust meet specific criteria, such as: Holding an âArtistic Work Certificate.â Licensing or transferring rights to a third party for public communication or reproduction.\nEligibility for tax benefits : To benefit from the favorable tax regime, the rights holder\nmust meet specific criteria, such as:\n- Holding an âArtistic Work Certificate.â\nHolding an âArtistic Work Certificate.â\n- Licensing or transferring rights to a third party for public communication or reproduction.\nLicensing or transferring rights to a third party for public communication or reproduction.\n- Income ratio restrictions : The proportion of income from Authorâs Rights in relation to\nregular salary will be capped at 30% , with 70% of the total income being subject to\nregular income tax.\nIncome ratio restrictions : The proportion of income from Authorâs Rights in relation to\nregular salary will be capped at 30% , with 70% of the total income being subject to\nregular income tax.\n- Income cap : The absolute ceiling for qualifying income under this regime remains 37,500 EUR (indexed at 70,220 EUR for the 2024 income year).\nIncome cap : The absolute ceiling for qualifying income under this regime remains 37,500 EUR (indexed at 70,220 EUR for the 2024 income year).\nIf your average income from the last four years exceeds this ceiling, you will no longer be\neligible for the advantageous tax regime.\n- Ruling Request : For greater clarity on the scope and remuneration of the transfer of Authorâs\nRights, an advanced agreement with the tax authorities (referred to as a ruling ) can be\nrequested.\nRuling Request : For greater clarity on the scope and remuneration of the transfer of Authorâs\nRights, an advanced agreement with the tax authorities (referred to as a ruling ) can be\nrequested.\n\n### Tax treatment of Authorâs Rights income\n\nSince 2008, income from the transfer or licensing of Authorâs Rights has benefited from a favorable\ntax treatment. Specifically, the income is subject to:\n- 15% Withholding Tax up to an indexed ceiling of 70,220 EUR (2023 income year).\n15% Withholding Tax up to an indexed ceiling of 70,220 EUR (2023 income year).\n- Flat-Rate Deductions : 50% flat-rate deduction applies to the first 18,720 EUR of income. 25% flat-rate deduction applies to the next 18,730 EUR (from 18,720 EUR to 37,450\nEUR ).\nFlat-Rate Deductions :\n- 50% flat-rate deduction applies to the first 18,720 EUR of income.\n50% flat-rate deduction applies to the first 18,720 EUR of income.\n- 25% flat-rate deduction applies to the next 18,730 EUR (from 18,720 EUR to 37,450\nEUR ).\n25% flat-rate deduction applies to the next 18,730 EUR (from 18,720 EUR to 37,450\nEUR ).\nExample of tax impact:\nFor example, if a company director receives 10,000 EUR in Authorâs Rights income, they will pay 750 EUR in tax (15% of the income after the flat-rate deductions), leaving them with a net\nincome of 9,250 EUR . This results in an effective tax rate of 7.5% on the Authorâs Rights\nincome.\n\n### Odoo integration for Declaration 273S\n\nOdoo users can efficiently manage the submission of the 273S Declaration for Authorâs Rights\nand Neighboring Rights income via the Odoo Payroll module. Hereâs a quick overview of how this\ncan be done:\n\n#### Set up Authorâs Rights in Odoo\n\nOn the employees form view, make sure the Intellectual Property checkbox is enabled, and\nthe allocated salary percentage is specified as well.\nOnce a payslip is generated, the IP part is computed based on the\nintellectual property percentage and the gross salary. The tax is computed accordingly based on the\nrevenue amount.\n\n#### Generate the 273S form\n\nOdoo can generate the 273S form automatically based on the income data entered into the system.\nEnsure that all required details, including the amount of income subject to the tax, are accurately\nentered.\nNavigate to Payroll app ⣠Reporting ⣠Belgium ⣠273S Sheet to create a New record.\nSelect the reference Year and Month , then click Export XML file to generate the declaration. Click Export PDF File to generate the printed details.\nOn the first PDF section, the company information and the global declaration is listed.\nOn the second section, the employees specific information is listed.\n\n#### File the 273S Declaration\n\nAfter generating the XML file, the company or the debtor of the income can submit it to the tax\nauthorities directly from MyMinfin. Keep track of the filing and payment deadlines to ensure timely\nsubmission and compliance.\n\n### Conclusion\n\nThe 273S Declaration is an essential tool for companies and individuals benefiting from the\nfavorable tax regime on Authorâs Rights and Neighboring Rights. By leveraging Odooâs tax management\nfeatures, users can ensure compliance while optimizing their tax liabilities.\nFor further assistance, please consult a tax professional.\n\n## Representation fees\n\n### Introduction\n\nRepresentation fees must be allocated on the payslip between serious and non-serious\nrepresentation costs . By default, the threshold is set at â¬283.73 , but it can be adjusted\nbased on what the company can legally justify .\nThe representation fees is configured on the employeeâs contract form in the Expense\nFees field.\nOn the payslip, two or one line are displayed in the case the representation fees amount exceeds\nthe threshold or not.\n\n### Breakdown of the threshold\n\nOnly part of the representation costs are pro-rated because certain costs are fully covered by\nthe company. These fixed costs include:\nThe serious portion of the representation costs is not prorated , while the non-serious portion is prorated based on working time.\nNavigate to Payroll app ⣠Configuration ⣠Salary ⣠Rule Parameters , and\nsearch for the CP200: Representation Fees Threshold record. Then, adapt the current value or\nintroduce a new one from a given date.\n`CP200:RepresentationFeesThreshold`\nIt is possible to define, based on job position, which jobs are eligible to certain criteria in\nthe Payroll tab.\n\n### Calculation of representation fees\n\n#### Conditions for payment\n\nRepresentation fees are only granted if:\n- The employee receives a basic salary , and\nThe employee receives a basic salary , and\n- The employee has worked at least part of the time , unless a salary simulation is in\nprogress.\nThe employee has worked at least part of the time , unless a salary simulation is in\nprogress.\nIf the employee is on full leave (without any working days), they are not eligible for\nrepresentation fees.\n\n#### Determining the work time rate\n\n- The number of working days per week is extracted from the employeeâs contract.\nThe number of working days per week is extracted from the employeeâs contract.\n- If the employee has periods of incapacity for work (e.g., illness), the calculation adjusts\nthe work time rate accordingly: The total incapacity hours are determined. If the company follows a biweekly schedule , the incapacity hours are divided by two . The incapacity rate is calculated as: \\[\\text{incapacity rate} = 1 - \\frac{\\text{incapacity hours}}{\\text{total weekly hours}}\\] The final work time rate is then adjusted by multiplying it with the incapacity rate.\nIf the employee has periods of incapacity for work (e.g., illness), the calculation adjusts\nthe work time rate accordingly:\n- The total incapacity hours are determined.\nThe total incapacity hours are determined.\n- If the company follows a biweekly schedule , the incapacity hours are divided by two .\nIf the company follows a biweekly schedule , the incapacity hours are divided by two .\n- The incapacity rate is calculated as: \\[\\text{incapacity rate} = 1 - \\frac{\\text{incapacity hours}}{\\text{total weekly hours}}\\]\nThe incapacity rate is calculated as:\n- The final work time rate is then adjusted by multiplying it with the incapacity rate.\nThe final work time rate is then adjusted by multiplying it with the incapacity rate.\n\n#### Applying the threshold and pro-rating rules\n\n- The default threshold (â¬283.73) is applied unless adjusted by the company.\nThe default threshold (â¬283.73) is applied unless adjusted by the company.\n- If the employee has worked a full-time schedule , they receive the full representation fees without reduction.\nIf the employee has worked a full-time schedule , they receive the full representation fees without reduction.\n- If the employee works part-time (contractual or due to time credit), only the non-serious\nportion of the fees is prorated. The prorated formula for non-serious expenses is: \\[\\text{adjusted amount} = \\text{threshold} + (\\text{total fees} - \\text{threshold}) \\times\n\\frac{\\text{work time rate}}{100}\\]\nIf the employee works part-time (contractual or due to time credit), only the non-serious\nportion of the fees is prorated.\n- The prorated formula for non-serious expenses is: \\[\\text{adjusted amount} = \\text{threshold} + (\\text{total fees} - \\text{threshold}) \\times\n\\frac{\\text{work time rate}}{100}\\]\nThe prorated formula for non-serious expenses is:\n- If the employee has missing workdays , the final amount is further adjusted: First calculate the daily reduction : \\[\\text{daily reduction} = \\frac{(\\text{total amount} - \\text{threshold}) \\times 3}{13 \\times \\text{days per week}}\\] Then calculate the final amount : \\[\\text{final amount} = max(0, \\text{total amount} - \\text{daily reduction} \\times\n\\text{missing days})\\]\nIf the employee has missing workdays , the final amount is further adjusted:\n- First calculate the daily reduction : \\[\\text{daily reduction} = \\frac{(\\text{total amount} - \\text{threshold}) \\times 3}{13 \\times \\text{days per week}}\\]\nFirst calculate the daily reduction :\n- Then calculate the final amount : \\[\\text{final amount} = max(0, \\text{total amount} - \\text{daily reduction} \\times\n\\text{missing days})\\]\nThen calculate the final amount :\n\n#### Final calculation\n\n- If the employee meets all conditions, the final representation fees amount is rounded to two decimal places for payroll purposes.\nIf the employee meets all conditions, the final representation fees amount is rounded to two decimal places for payroll purposes.\n- Employees working a full schedule receive full reimbursement , while those working reduced hours have the non-serious portion prorated accordingly.\nEmployees working a full schedule receive full reimbursement , while those working reduced hours have the non-serious portion prorated accordingly.\n\n### Conclusion\n\nThis calculation ensures fair allocation of representation fees by distinguishing between fixed serious costs and prorated non-serious costs . The company can adjust the threshold (â¬283.73 by default) based on justifiable business expenses .\nEmployees working full-time receive their full representation fees, while those working part-time or with absences only receive a pro-rated portion of the non-serious fees.\n\n## Sick time off and relapse\n\nIn Belgium, sick leave is managed according to two main regimes:\n- With guaranteed salary : The employer continues to pay the workerâs salary for a specified\nperiod.\nWith guaranteed salary : The employer continues to pay the workerâs salary for a specified\nperiod.\n- Without guaranteed salary : The worker receives benefits from the mutual insurance company\nafter the guaranteed salary period.\nWithout guaranteed salary : The worker receives benefits from the mutual insurance company\nafter the guaranteed salary period.\n\n### Sick leave with guaranteed salary\n\nThe guaranteed salary is a period during which the employer continues to pay the salary of the\nworker who is unable to work.\nEmployees : The employer pays 100% of the salary during the first full month of incapacity.\nAfter this period, if the incapacity continues, the worker falls under the mutual insurance regime.\n\n### Sick leave without guaranteed salary\n\nAfter the guaranteed salary period, the ONEM (National Employment Office) or the mutual insurance\ncompany takes over.\n- Long-term illness : An incapacity lasting more than 30 days leads to benefits from the mutual\ninsurance company.\nLong-term illness : An incapacity lasting more than 30 days leads to benefits from the mutual\ninsurance company.\n- Relapse : If a worker returns to work and then becomes ill again for the same reason within\n14 days, this may be considered a relapse, and the rules for guaranteed salary may be adjusted.\nRelapse : If a worker returns to work and then becomes ill again for the same reason within\n14 days, this may be considered a relapse, and the rules for guaranteed salary may be adjusted.\n\n### Management in Odoo\n\nIn Odoo, sick leave is automatically managed if the absences are related to the Sick Time Off work entry type.\n- Recording time off : The employee records their absence through the Time Off module.\nRecording time off : The employee records their absence through the Time Off module.\n- Automation of work entries : If the request is approved, Odoo automatically generates the\ncorresponding Work Entries.\nAutomation of work entries : If the request is approved, Odoo automatically generates the\ncorresponding Work Entries.\n- Impact on payroll : The guaranteed salary is automatically calculated according to the rules\nconfigured based on the workerâs status (employee).\nImpact on payroll : The guaranteed salary is automatically calculated according to the rules\nconfigured based on the workerâs status (employee).\n- Compensation after the guaranteed salary : Once the guaranteed salary period has expired, Odoo\nadjusts the Work Entries to reflect the transition to the mutual insurance company.\nCompensation after the guaranteed salary : Once the guaranteed salary period has expired, Odoo\nadjusts the Work Entries to reflect the transition to the mutual insurance company.\nThus, Odoo ensures a smooth and compliant management of sick leave according to Belgian regulations.\n\n## Social Balance Sheet\n\n### Introduction\n\nThe Social Balance Sheet was introduced by the law of December 22, 1995, as part of measures for\nthe implementation of the multi-year employment plan. Companies required to file annual accounts\n(including some that are not obligated to publish such accounts - see the National Bank of Belgium website for details) must also prepare and submit a\nSocial Balance Sheet to the National Bank of Belgium.\nThe Royal Decree of August 4, 1996, incorporates the Social Balance Sheet into the annual accounts,\nspecifically as an annex. This makes it an integral part of a companyâs financial statements.\n\n### Contents of the Social Balance Sheet\n\nThe content of the Social Balance Sheet is determined by the Royal Decree of January 30, 2001,\nimplementing the Company Code. The Social Balance Sheet consists of several sections:\n- Sections I and II: Information on employed persons and personnel movements during the fiscal year.\nSections I and II: Information on employed persons and personnel movements during the fiscal year.\n- Section III: Initiatives related to training.\nSection III: Initiatives related to training.\nSince the Social Balance Sheet is part of a companyâs annual accounts, the works council receives\nthis information as part of its mission regarding economic and financial information.\nAdditionally, the works council receives data on employment-related benefits along with annual\nemployment-related information (Trillium). These details were fully integrated into the Social\nBalance Sheet until 2008.\n\n### Scope of the Social Balance Sheet\n\nThe Social Balance Sheet contains specific data related to workforce composition, staff turnover,\nand training programs. Some organizations not required to publish annual accounts must still file a\nseparate Social Balance Sheet. This applies primarily to certain hospitals and private legal\nentities employing at least 20 full-time equivalents (FTEs).\nAny company, association, or foundation with at least 20 workers on an annual average (in FTE) must\ncomplete and submit the Social Balance Sheet.\nThe Social Balance Sheet is part of:\n- âOther documents to be filed under the Company and Associations Codeâ (for companies);\nâOther documents to be filed under the Company and Associations Codeâ (for companies);\n- âExplanatory Notesâ (for associations and foundations).\nâExplanatory Notesâ (for associations and foundations).\n\n### Obligations by entity type\n\n#### Companies, associations, and foundations required to publish a Social Balance Sheet\n\nFor Belgian companies employing at least one FTE:\n- Standardized model : This schema includes a âSocial Balance Sheetâ section, which must be\ncompleted.\nStandardized model : This schema includes a âSocial Balance Sheetâ section, which must be\ncompleted.\n- Specific model : If the model used does not include a Social Balance Sheet, it must be\nprovided separately.\nSpecific model : If the model used does not include a Social Balance Sheet, it must be\nprovided separately.\nFor Belgian associations and foundations employing at least 20 FTEs:\n- Standard model : Includes a âSocial Balance Sheetâ section that must be completed.\nStandard model : Includes a âSocial Balance Sheetâ section that must be completed.\n- Specific model : A separate Social Balance Sheet must be submitted if the chosen model does\nnot include one.\nSpecific model : A separate Social Balance Sheet must be submitted if the chosen model does\nnot include one.\nAssociations and foundations with fewer than 20 FTEs may voluntarily complete the Social Balance\nSheet but are not legally required to do so.\nFor foreign companies, such as branches of foreign corporations and foreign non-profit organizations\n(ASBL) with activities in Belgium, the Social Balance Sheet applies only to their Belgian\noperations.\nThe Social Balance Sheet is made publicly available by the Central Balance Sheet Office as part of\nthe financial statements submission.\n\n#### Entities required to file a separate Social Balance Sheet\n\nCertain organizations that do not need to publish annual accounts must still submit a Social Balance\nSheet to the Central Balance Sheet Office. This data is used exclusively for statistical purposes\nand is not made publicly available. Submission in these cases is free of charge.\nThis exception applies to:\n- Hospitals , unless they are structured as limited liability companies or large ASBLs, which\nmust submit full financial statements, including the integrated Social Balance Sheet.\nHospitals , unless they are structured as limited liability companies or large ASBLs, which\nmust submit full financial statements, including the integrated Social Balance Sheet.\n- Private legal entities that are not required to submit annual accounts but have at least 20\nemployees.\nPrivate legal entities that are not required to submit annual accounts but have at least 20\nemployees.\nThe required model depends on the entity type:\n- Hospitals must use the full or abridged Social Balance Sheet model based on their size.\nHospitals must use the full or abridged Social Balance Sheet model based on their size.\n- Foreign entities must use the full or abridged Social Balance Sheet model, based on the size\nof their Belgian establishments.\nForeign entities must use the full or abridged Social Balance Sheet model, based on the size\nof their Belgian establishments.\n- Private legal entities with at least 50 employees must use the full model, while those with\n20-49 employees may use the abridged model.\nPrivate legal entities with at least 50 employees must use the full model, while those with\n20-49 employees may use the abridged model.\n\n### Social Balance Sheet models\n\nThe latest versions of the Social Balance Sheet models can be found at the following links:\n- Full Model PDF: Full Social Balance Sheet PDF Word: Full Social Balance Sheet Word\n- PDF: Full Social Balance Sheet PDF\nPDF: Full Social Balance Sheet PDF\n- Word: Full Social Balance Sheet Word\nWord: Full Social Balance Sheet Word\n- Abridged Model PDF: Abridged Social Balance Sheet PDF Word: Abridged Social Balance Sheet Word\n- PDF: Abridged Social Balance Sheet PDF\nPDF: Abridged Social Balance Sheet PDF\n- Word: Abridged Social Balance Sheet Word\nWord: Abridged Social Balance Sheet Word\n\n### Assistance in completing the Social Balance Sheet\n\nFor guidance on completing the Social Balance Sheet, refer to the following resources:\n- CNC Opinion S100 : Questions and Answers on the Social Balance Sheet\nCNC Opinion S100 : Questions and Answers on the Social Balance Sheet\n- CNC Opinion 2009/12 : Social Balance Sheet and Statutory Workers\nCNC Opinion 2009/12 : Social Balance Sheet and Statutory Workers\n- Explanatory Note : Information on Training Activities\nExplanatory Note : Information on Training Activities\n\n### Submitting a separate Social Balance Sheet\n\nA separate Social Balance Sheet must be submitted online as a PDF via the Filing application.\nThe model can be selected under Other Documents , with options for Abridged\nSocial Balance Sheet or Full Social Balance Sheet .\nFor further details, visit the National Bank of Belgiumâs website: www.nbb.be .\n\n### Generating Social Balance Sheet in Odoo\n\nNavigate to Payroll app ⣠Reporting ⣠Belgium ⣠Social Balance Sheet and\nselect the reference Period .\nThen click Export to PDF or Export to XLSX to generate the social balance\nsheets containing all the data available in your Odoo database.\nThe different pieces of information are split by gender, or by working schedule (Part Time, Full\nTime, Full Time equivalent), for the whole period, and month by month, as requested by the National\nBank of Belgium.\n\n## Social Security certificate\n\nThe Social Security certificate in Odoo provides a detailed breakdown of all social charges paid by\nthe employee or employer, categorized by type (e.g., year-end bonus, private car reimbursement,\ndouble holiday pay, etc.). This report is particularly useful for audit companies and for verifying\nthat the declared amounts align with accounting entries.\n\n### Accessing the Social Security certificate\n\nTo generate the Social Security certificate, follow these steps:\n- Navigate to Payroll app ⣠Reporting ⣠Belgium ⣠Social Security\nCertificate .\nNavigate to Payroll app ⣠Reporting ⣠Belgium ⣠Social Security\nCertificate .\n- Select the reference Period .\nSelect the reference Period .\n- Choose the data Aggregation Level : Whole Company By Department By Employee\nChoose the data Aggregation Level :\n- Whole Company\n- By Department\n- By Employee\n\n### Exporting the report\n\nOnce the selections are made, you can export the report in different formats:\n- Click Export to PDF to generate a printable version of the Social Security\ncertificate.\nClick Export to PDF to generate a printable version of the Social Security\ncertificate.\n- Click Export to XLSX to generate an Excel file containing all relevant data.\nClick Export to XLSX to generate an Excel file containing all relevant data.\nThis feature ensures full transparency and compliance with social security regulations in Belgium.\n\n## Time off\n\n### Legal time off\n\nThis guide provides an overview of the basic rules governing legal holiday entitlements in Belgium\nfor employers using Odoo.\n\n#### Holiday entitlement calculation\n\nYour holiday entitlement for the current year (N) is determined by the number of months worked in\nBelgium during the previous year (N-1).\n- Employees earn 2 days of leave per month based on a 6-day work week.\nEmployees earn 2 days of leave per month based on a 6-day work week.\n- The entitlement is adjusted for a 5-day work week: \\((\\text{Total Days} \\div 6) \\times 5\\) .\nThe entitlement is adjusted for a 5-day work week: \\((\\text{Total Days} \\div 6) \\times 5\\) .\nIf an employee worked 7 months in the previous year (N-1):\n- 6-day work week: \\(7 \\times 2 = 14 \\text{ days}\\)\n6-day work week: \\(7 \\times 2 = 14 \\text{ days}\\)\n- 5-day work week: \\(14 \\div 6 \\times 5 = 11.67 \\text{ days}\\)\n5-day work week: \\(14 \\div 6 \\times 5 = 11.67 \\text{ days}\\)\nPartial Month Calculation:\n- Worked 1st to 10th : Full month counted.\nWorked 1st to 10th : Full month counted.\n- Worked 11th to 19th : Half month counted.\nWorked 11th to 19th : Half month counted.\n- Worked 20th onwards : Month not counted.\nWorked 20th onwards : Month not counted.\n- Less than 0.35 : Round to 0 .\nLess than 0.35 : Round to 0 .\n- Between 0.35 - 0.74 : Round to 0.5 .\nBetween 0.35 - 0.74 : Round to 0.5 .\n- 0.75 and above : Round to 1 .\n0.75 and above : Round to 1 .\nFor a full-time employee, this typically results in 11.5 days of legal holiday entitlement.\n\n#### Maximum holiday entitlement\n\nEmployees are entitled to a maximum of 4 weeks of holiday based on their working schedule. If an\nemployee switches between full-time and part-time work, their entitlement is adjusted accordingly.\n- 5-day work week : \\(4 \\times 5 = 20 \\text{ days}\\)\n5-day work week : \\(4 \\times 5 = 20 \\text{ days}\\)\n- 4-day work week : \\(4 \\times 4 = 16 \\text{ days}\\)\n4-day work week : \\(4 \\times 4 = 16 \\text{ days}\\)\n- 3-day work week : \\(4 \\times 3 = 12 \\text{ days}\\)\n3-day work week : \\(4 \\times 3 = 12 \\text{ days}\\)\nIf an employee joined Odoo on January 1, 2024 , and plans to switch to a 3-day work week\nfrom April 1, 2024 :\nStep 1: Calculate holiday entitlement for 2024\n- The employee worked 9 months in 2023 .\nThe employee worked 9 months in 2023 .\n- 6-day work week basis : \\(9 \\times 2 = 18 \\text{ days}\\)\n6-day work week basis : \\(9 \\times 2 = 18 \\text{ days}\\)\n- Adjusted for 5-day work week : \\(18 \\div 6 \\times 5 = 15 \\text{ days}\\)\nAdjusted for 5-day work week : \\(18 \\div 6 \\times 5 = 15 \\text{ days}\\)\nStep 2: Verify maximum holiday entitlement\n- For a 5-day work week , the maximum entitlement is 20 days .\nFor a 5-day work week , the maximum entitlement is 20 days .\n- Since the employee is entitled to 15 days , they remain within the limit.\nSince the employee is entitled to 15 days , they remain within the limit.\nStep 3: Adjust entitlement for the new work schedule\n- From April 1, 2024, the employee moves to a 3-day work week .\nFrom April 1, 2024, the employee moves to a 3-day work week .\n- Maximum entitlement for a 3-day work week : \\(3 \\times 4 = 12 \\text{ days}\\) .\nMaximum entitlement for a 3-day work week : \\(3 \\times 4 = 12 \\text{ days}\\) .\n- If no leave is taken before April 1, the employee may take up to 12 days from\ntheir 15-day entitlement.\nIf no leave is taken before April 1, the employee may take up to 12 days from\ntheir 15-day entitlement.\n- The remaining 3 days will be settled at the end of the year.\nThe remaining 3 days will be settled at the end of the year.\nThis ensures compliance with Belgian legal leave regulations and allows employers to manage holiday\nentitlements effectively within Odoo.\n\n#### Legal time off allocation\n\nThis is possible to generate the legal time off for all your employees at the beginning of a new\nyear using the wizard in Payroll app ⣠Reporting ⣠Belgium ⣠Paid Time Off\nAllocation .\nBased on your employees occupation over last year, the number of available time off is pre-computed\nfor each employee.\nOnce validated, a draft allocation is generated for each single employee, waiting a manual\nconfirmation that can be done in batch.\n\n### European time off\n\n#### How does it work?\n\nIf you were not subject to Belgian ONSS contributions before joining our company and do not have\nentitlement to legal holidays, or if your entitlement is incomplete, you can apply for European\nleave.\nTo qualify for European leave in a given year, you must work for at least 3 months during that year,\nwhether with us or another employer. Once you have met this requirement, you will earn 5 days of\nEuropean leave. Subsequently, you will accumulate additional days of vacation each month as follows:\n- After 3 months: 5 days\nAfter 3 months: 5 days\n- After 4 months: 7 days\nAfter 4 months: 7 days\n- After 5 months: 9 days\nAfter 5 months: 9 days\n- After 6 months: 10 days\nAfter 6 months: 10 days\n- After 7 months: 12 days\nAfter 7 months: 12 days\n- After 8 months: 14 days\nAfter 8 months: 14 days\n- After 9 months: 15 days\nAfter 9 months: 15 days\n- After 10 months: 17 days\nAfter 10 months: 17 days\n- After 11 months: 19 days\nAfter 11 months: 19 days\nThe total of legal leave and European leave cannot exceed 20 days per year. You must use all your\nlegal holidays before taking European leave.\nEuropean leave entitlement expires on December 31st of the year it is earned and cannot be\ncarried over to the following year. To qualify for European leave in a new year, you must\ncomplete another 3 months of work.\n\n#### How are these days paid?\n\nEuropean leaves are paid holidays taken in advance of your âDouble Holiday Payâ (the June extra pay)\nfor the following year. Essentially, the more European leave days you take in a given year, the less\nyou will receive as June extra pay in the following year.\n\n## Working schedule change\n\nThis guide explains how to modify an employeeâs working time schedule in the Belgian payroll module\nof Odoo. Changing an employeeâs working hours affects their wage calculation, time-off allocation,\nand contract terms.\n\n### Steps to change an employeeâs working schedule\n\n- Navigate to the employeeâs contract ( Payroll app ⣠Contracts ), and select the\ncontract of the employee whose working schedule you want to modify.\nNavigate to the employeeâs contract ( Payroll app ⣠Contracts ), and select the\ncontract of the employee whose working schedule you want to modify.\n- Click on (Action) and select Working Schedule Change . The\nwizard displays the current contract details and allows you to set new working time parameters.\nClick on (Action) and select Working Schedule Change . The\nwizard displays the current contract details and allows you to set new working time parameters.\n- Set the new working schedule: Choose the new Working Schedule from the available resource calendars. Define the Start Date for the change (mandatory). If applicable, specify an End Date . If the Part Time checkbox is selected, any difference between the reference\ncalendar and the employeeâs new calendar will be covered using the Absence Work Entry Type .\nThis ensures that the employeeâs monthly salary remains the same, regardless of the number of\nabsence days in a given month. This setup is required for configuring Time Credit , Parental\nLeave , or Medical Half-Time correctly.\nSet the new working schedule:\n- Choose the new Working Schedule from the available resource calendars.\nChoose the new Working Schedule from the available resource calendars.\n- Define the Start Date for the change (mandatory).\nDefine the Start Date for the change (mandatory).\n- If applicable, specify an End Date .\nIf applicable, specify an End Date .\n- If the Part Time checkbox is selected, any difference between the reference\ncalendar and the employeeâs new calendar will be covered using the Absence Work Entry Type .\nThis ensures that the employeeâs monthly salary remains the same, regardless of the number of\nabsence days in a given month. This setup is required for configuring Time Credit , Parental\nLeave , or Medical Half-Time correctly.\nIf the Part Time checkbox is selected, any difference between the reference\ncalendar and the employeeâs new calendar will be covered using the Absence Work Entry Type .\nThis ensures that the employeeâs monthly salary remains the same, regardless of the number of\nabsence days in a given month. This setup is required for configuring Time Credit , Parental\nLeave , or Medical Half-Time correctly.\n- Adjust the employeeâs wage: The wizard automatically computes the full-time equivalent wage based on the new working\nschedule. You can review and modify the new wage if necessary.\nAdjust the employeeâs wage:\n- The wizard automatically computes the full-time equivalent wage based on the new working\nschedule.\nThe wizard automatically computes the full-time equivalent wage based on the new working\nschedule.\n- You can review and modify the new wage if necessary.\nYou can review and modify the new wage if necessary.\n- Manage time off allocation: Select the relevant Time Off Type . Odoo automatically adjusts the employeeâs time-off entitlement based on the new working\nschedule using the following formula: \\[\\text{New Time Off Allocation} = \\max(\\min(\\text{ Computed Allocation},\n\\text{ Max Allocation}) + \\text{ Leaves Taken}, \\text{ Leaves Taken})\\] Computed Allocation is the expected leave allocation based on the new schedule. Max Allocation is the maximum number of days allowed under the new working time. Leaves Taken ensures the employee does not receive fewer days than already used.\nManage time off allocation:\n- Select the relevant Time Off Type .\nSelect the relevant Time Off Type .\n- Odoo automatically adjusts the employeeâs time-off entitlement based on the new working\nschedule using the following formula: \\[\\text{New Time Off Allocation} = \\max(\\min(\\text{ Computed Allocation},\n\\text{ Max Allocation}) + \\text{ Leaves Taken}, \\text{ Leaves Taken})\\] Computed Allocation is the expected leave allocation based on the new schedule. Max Allocation is the maximum number of days allowed under the new working time. Leaves Taken ensures the employee does not receive fewer days than already used.\nOdoo automatically adjusts the employeeâs time-off entitlement based on the new working\nschedule using the following formula:\n- Computed Allocation is the expected leave allocation based on the new schedule.\nComputed Allocation is the expected leave allocation based on the new schedule.\n- Max Allocation is the maximum number of days allowed under the new working time.\nMax Allocation is the maximum number of days allowed under the new working time.\n- Leaves Taken ensures the employee does not receive fewer days than already used.\nLeaves Taken ensures the employee does not receive fewer days than already used.\n- Decide on a follow-up contract If the working time change is temporary, you can enable Post Change Contract\nCreation to automatically create a contract that resumes the previous working schedule after\nthe specified end date.\nDecide on a follow-up contract\n- If the working time change is temporary, you can enable Post Change Contract\nCreation to automatically create a contract that resumes the previous working schedule after\nthe specified end date.\nIf the working time change is temporary, you can enable Post Change Contract\nCreation to automatically create a contract that resumes the previous working schedule after\nthe specified end date.\n- Validate the changes Click Validate to apply the new working schedule. If the new schedule is the same as the current one, an error will be displayed. The system will create a new contract with the updated working time and wage. If a previous contract existed, it will be closed with an end date before the new contract\nbegins.\n- Click Validate to apply the new working schedule.\nClick Validate to apply the new working schedule.\n- If the new schedule is the same as the current one, an error will be displayed.\nIf the new schedule is the same as the current one, an error will be displayed.\n- The system will create a new contract with the updated working time and wage.\nThe system will create a new contract with the updated working time and wage.\n- If a previous contract existed, it will be closed with an end date before the new contract\nbegins.\nIf a previous contract existed, it will be closed with an end date before the new contract\nbegins.\n\n### Result\n\n- The employeeâs new working schedule is recorded.\nThe employeeâs new working schedule is recorded.\n- Wage and time-off entitlements are adjusted accordingly.\nWage and time-off entitlements are adjusted accordingly.\n- A follow-up contract is created if applicable.\nA follow-up contract is created if applicable.\n\n## Work entries exports\n\n### What are work entries?\n\nIn the context of payroll, work entries typically refer to records or documentation related to an\nemployeeâs work hours and earnings for a specific pay period. These entries are crucial for\naccurately calculating and processing employee compensation.\nWork entries in the context of payroll are essential for both employees and employers. They provide\na transparent and accurate record of an employeeâs compensation and deductions, ensuring that\nemployees are paid correctly and that tax and legal requirements are met. Payroll software and\nsystems are commonly used to manage and automate these work entries, making the payroll process more\nefficient and accurate.\n\n### Main concepts\n\n#### General\n\nIn Odoo, work entries mainly refer to time entries (attendance tracking), these are work entries\nthat consist of time records, which include the number of hours worked by an employee during a\ngiven pay period. These entries may specify regular working hours, overtime hours, and any other\nrelevant time-related information, such as breaks, paid time off, unpaid time off, parental leave,\ncredit-time, etc.\nWork entries serve a dual role in payroll management. First, they enable organizations to\nindependently compute employee payslips. Second, they facilitate the transmission of pertinent data\nto external payroll service providers, who then use this information to calculate and generate the\npayslips.\n\n#### Work entries\n\n- They have a Name: used to identify the type of entry (e.g., Attendance, Paid Time Off, etc.).\nThey have a Name: used to identify the type of entry (e.g., Attendance, Paid Time Off, etc.).\n- They have a Payroll Code: used in Odooâs salary rules computations\nThey have a Payroll Code: used in Odooâs salary rules computations\n- They have an External Code: used to provide the correct Work Entry code to an external payroll\nservice provider.\nThey have an External Code: used to provide the correct Work Entry code to an external payroll\nservice provider.\n- They are generated based on the configuration of the contract and the time off types\nThey are generated based on the configuration of the contract and the time off types\n- They have a duration, a start and end date, a state and are always linked to an employee.\nThey have a duration, a start and end date, a state and are always linked to an employee.\n\n#### Work entry types\n\n- They are the main source of configuration for your work entries. Thanks to your different types\nof work entries, youâll be able to differentiate the time records of your employees.\nThey are the main source of configuration for your work entries. Thanks to your different types\nof work entries, youâll be able to differentiate the time records of your employees.\n- They have a name.\n- They contain a code, external code, payroll code and a color for visual tracking.\nThey contain a code, external code, payroll code and a color for visual tracking.\n- They allow other types of configurations such as how they are displayed in payslips, decide\nwhether this type of work entry should be considered as paid or unpaid (eg. unpaid leave), decide\nwhether this type of work entry has a link with time off, is valid for some advantages or how it\nshould be reflected in your reporting.\nThey allow other types of configurations such as how they are displayed in payslips, decide\nwhether this type of work entry should be considered as paid or unpaid (eg. unpaid leave), decide\nwhether this type of work entry has a link with time off, is valid for some advantages or how it\nshould be reflected in your reporting.\n\n#### Time off types\n\nAs mentioned above, since work entry types can be linked to a time off type, you are also able to\ndefine the work entry type for each time-off type. On the time off type you have a many2one\nrelation with the work entry type.\n\n### Steps to generate the work entries of your staff\n\n- Create all the employees\nCreate all the employees\n- Create a contract and set its status to Running for each employee. In the contract, choose the Work Entry Source . It tells the system how work entries\nfor an employee should be generated. It can be based on: Working Schedule : Odoo uses the predefined working hours and days set in the\nemployeeâs working schedule to generate work entries. This is useful for regular, predictable\nshifts. Attendances : Work entries are generated from the employeeâs attendance records\n(i.e., when they check-in and check-out). Planning : Work entries are created based on the validated shifts or slots allocated\nto the employee in the Planning app (often used for scheduling roles like retail shifts,\nrestaurants, etc.).\nCreate a contract and set its status to Running for each employee.\nIn the contract, choose the Work Entry Source . It tells the system how work entries\nfor an employee should be generated. It can be based on:\n- Working Schedule : Odoo uses the predefined working hours and days set in the\nemployeeâs working schedule to generate work entries. This is useful for regular, predictable\nshifts.\nWorking Schedule : Odoo uses the predefined working hours and days set in the\nemployeeâs working schedule to generate work entries. This is useful for regular, predictable\nshifts.\n- Attendances : Work entries are generated from the employeeâs attendance records\n(i.e., when they check-in and check-out).\nAttendances : Work entries are generated from the employeeâs attendance records\n(i.e., when they check-in and check-out).\n- Planning : Work entries are created based on the validated shifts or slots allocated\nto the employee in the Planning app (often used for scheduling roles like retail shifts,\nrestaurants, etc.).\nPlanning : Work entries are created based on the validated shifts or slots allocated\nto the employee in the Planning app (often used for scheduling roles like retail shifts,\nrestaurants, etc.).\n- Generate the work entries each month Odoo automatically creates the work entries in the Payroll app based on the work entry source\nof the contract and the different time-offs taken. You can edit the work entries manually. You\ncan always decide to regenerate work entries manually but be careful if you already made some\nmanual changes, Odoo will regenerate the work entries based on what it knows (e.g., your working\nschedule and time off).\nGenerate the work entries each month\nOdoo automatically creates the work entries in the Payroll app based on the work entry source\nof the contract and the different time-offs taken. You can edit the work entries manually. You\ncan always decide to regenerate work entries manually but be careful if you already made some\nmanual changes, Odoo will regenerate the work entries based on what it knows (e.g., your working\nschedule and time off).\n- Managing conflicts Conflicts are pointing to entries that canât be validated without your intervention. This means\nyouâll have to qualify the entry and decide which is the correct entry to be defined for the time\nperiod if you want to be able to generate the payslip or validate the entries. Conflicts arise\nwhen there are overlapping entries or when Odoo detects that there is a time off request still\npending for validation. For instance, if an employee is marked as attending work and at the same\ntime thereâs a paid leave request to be validated for the same period, thatâs a conflict. Conflicts can be managed by filtering on the conflicting entries and resolving the discrepancy.\nSince Odoo 16.4 , Odoo filters by default on conflicting entries. For prior versions, you can\nstill filter manually on conflicting entries or use the conflicting menu item.\nConflicts are pointing to entries that canât be validated without your intervention. This means\nyouâll have to qualify the entry and decide which is the correct entry to be defined for the time\nperiod if you want to be able to generate the payslip or validate the entries. Conflicts arise\nwhen there are overlapping entries or when Odoo detects that there is a time off request still\npending for validation. For instance, if an employee is marked as attending work and at the same\ntime thereâs a paid leave request to be validated for the same period, thatâs a conflict.\nConflicts can be managed by filtering on the conflicting entries and resolving the discrepancy.\nSince Odoo 16.4 , Odoo filters by default on conflicting entries. For prior versions, you can\nstill filter manually on conflicting entries or use the conflicting menu item.\n- Once the conflict is resolved you can either proceed to generate the payslips for your employees\nor export your work entries to the right entity.\nOnce the conflict is resolved you can either proceed to generate the payslips for your employees\nor export your work entries to the right entity.\n\n### Export work entries\n\nThis section is about exporting work entries to SD Worx, but the configuration and behavior is\nsimilar for other exports to Partena, Group S and UCM.\n\n#### Introduction\n\nThis sheet is here to help you learn how Odooâs SD Worx ( l10n_be_hr_payroll_sd_worx ) module\nsimplifies payroll by enabling easy export of work entries. This guide provides quick steps to\ngenerate .txt files for direct import into SD Worx calendars, saving time and ensuring\naccuracy.\n`l10n_be_hr_payroll_sd_worx`\n`.txt`\nFirst and foremost, itâs important to understand there is no direct integration between Odoo and\nSD Worx. There is no automatic exchange of information, either way. Odoo does not communicate\ndirectly with SD Worx, and the reverse is also true.\n\n#### How does it work?\n\nIn reality, Odoo provides a standardized export in .txt format for employeesâ work entries,\nallowing the generation of a file that conforms to a specific format for inputting these entries\ninto the SD Worx software.\n\n#### What does it mean in terms of data management?\n\nSince there is no direct integration between both systems, it implies that certain data will need\nto be manually entered into both systems. For instance, when you create a new employee in Odoo,\nyouâll also need to manually create the employee in SD Worx (and vice versa). This manual data\nentry requirement extends to various aspects such as contracts, work schedules, salary details,\nand personal information about employees.\nEssentially, all the information necessary for SD Worx to calculate salaries and generate payslips\nmust be manually inputted into both systems.\n\n#### Whatâs the advantage of exporting to SD worx?\n\nOdoo is an integrated software that can comprehensively handle all variable payroll elements,\nincluding employee personal information, contract details, various time-off types, and other work\nentry categories. Through Odooâs integration capabilities, you can access all this crucial data in\none centralized location, making it easily accessible for your HR team and employees.\nThis integration not only ensures data accuracy but also maintains consistency, reducing the\nlikelihood of errors when transmitting work entry information to your external payroll provider.\nWith the module in place, a single click generates a .txt file thatâs ready for direct\nimport into SD Worx, streamlining the entire data transmission process.\n`.txt`\n\n#### Steps to set up the SD Worx module\n\nYou must be logged into a Belgian company for the following steps to work.\n- install the Belgium - Payroll - Export to SD Worx ( l10n_be_hr_payroll_sd_worx ) module.\ninstall the Belgium - Payroll - Export to SD Worx ( l10n_be_hr_payroll_sd_worx ) module.\n`l10n_be_hr_payroll_sd_worx`\n- Go to Payroll app ⣠Configuration ⣠Settings to fill in the SD\nWorx code field. This is the companyâs SD Worx code, you get it directly from the SD worx\nsoftware. When you create a company, it has a unique identifier which you need to set in the\nfield.\nGo to Payroll app ⣠Configuration ⣠Settings to fill in the SD\nWorx code field. This is the companyâs SD Worx code, you get it directly from the SD worx\nsoftware. When you create a company, it has a unique identifier which you need to set in the\nfield.\n- For each employee, under the Settings tab, fill in the SDWorx code field.\nFor each employee, under the Settings tab, fill in the SDWorx code field.\n- For work entry types, under the Settings tab, fill in the SDWorx code field as well.\nFor work entry types, under the Settings tab, fill in the SDWorx code field as well.\nYou can now export your work entries in the SD Worx .txt format by opening the wizard under Payroll app ⣠Reporting ⣠Belgium ⣠Export Work Entries to SDWorx .\n`.txt`\nThe file contains a series of lines such as the following line of text: 1111110000024K2023042370100360\n`1111110000024K2023042370100360`\nEach line represents a work entry, and the structure is outlined below:\n- 111111 -> Company SD Worx code\n111111 -> Company SD Worx code\n`111111`\n- 0000024 -> Employee SD Worx code\n0000024 -> Employee SD Worx code\n`0000024`\n- K -> Delimiter\n`K`\n- 20230423 -> Date\n`20230423`\n- 7010 -> SD Worx work entry code\n7010 -> SD Worx work entry code\n`7010`\n- 0360 -> Duration (edited)\n0360 -> Duration (edited)\n`0360`\nOnce the .txt file is exported, it can be directly imported in this format into the SD Worx\nsoftware. Doing so updates the calendars of each collaborator.\n`.txt`\n\n## 274.XX sheets\n\nThis section provides an overview of Declaration 274, its components, and how it is handled within\nOdoo.\n\n### Declaration 274.10\n\nWithholding tax is an advance payment on professional income tax. It is calculated based on\nguidelines established by the tax administration. While reducing withholding tax is generally not\nallowed, employees may request to pay more in order to better match their final tax liability.\nWithholding tax must be deducted from both employeesâ and company directorsâ income. If the\nwithholding tax is insufficient, advance tax payments must be made to avoid additional tax\npenalties.\nIn practice, some employees do not inform their employer of personal changes (e.g., having a child),\nwhich can affect tax calculations.\nWithholding tax must be declared and paid either quarterly or monthly using form 274. These\ndeclarations must be submitted via the FINPROF application by the 15th of the month following the\nreporting period.\nTaxable income and corresponding withholding tax must be recorded in fiscal remuneration forms\n281.x and summary statements 325x. Employers failing to report these correctly may be subject to a\n309% penalty on undisclosed amounts.\nThe tax administration compares the declared amounts in form 274 with the amounts reported in the\nfiscal forms. If withholding tax payments are insufficient, the company may be charged the\ndifference. If a 274 form is submitted without corresponding tax payment, additional tax penalties\nwill apply.\nIt is crucial to adhere to all administrative guidelines to avoid unexpected tax charges.\n\n### Declarations 274.32, 274.33, 274.34\n\n#### Withholding tax exemptions for research employees\n\nCompanies employing scientific researchers may qualify for withholding tax reductions under\nspecific conditions:\n- Form 281.32 applies to civil engineers and PhD holders.\nForm 281.32 applies to civil engineers and PhD holders.\n- Form 281.33 applies to employees holding a masterâs degree.\nForm 281.33 applies to employees holding a masterâs degree.\n- Form 281.34 applies to employees holding a bachelorâs degree.\nForm 281.34 applies to employees holding a bachelorâs degree.\nEmployers engaged in scientific research may be eligible for an exemption from withholding tax\npayments. To qualify, they must register their R&D projects with Belspo. From August 1, 2023, this\nregistration must occur before the project begins.\n\n#### Tax exemption details\n\nThis tax incentive allows companies to retain 80% of the withholding tax deducted from researchersâ\nsalaries. However, the exemption rate differs for researchers based on their qualifications:\n- PhD and masterâs degree holders: Full 80% exemption.\nPhD and masterâs degree holders: Full 80% exemption.\n- Bachelorâs degree holders: 50% of the full exemption amount.\nBachelorâs degree holders: 50% of the full exemption amount.\n- For non-SME companies, this limit is further reduced to 25%.\nFor non-SME companies, this limit is further reduced to 25%.\nThe exemption applies only to the portion of working time dedicated to scientific research, covering\nfundamental research, industrial research, or experimental development.\nThis exemption does not affect the net salary of employees.\n\n#### Capping rules\n\nThe total exemption granted to researchers with a bachelorâs degree is limited to 25% of the\nexemption granted to PhD and masterâs degree holders. For small companies (as defined in Article 15\n§§ 1-6 of the Companies Code), this limit is doubled. These rules have remained unchanged since\nJanuary 1, 2020.\n\n### How it works in Odoo\n\nOdoo automates the calculation and declaration of withholding tax exemptions using predefined\npayroll structures. Below is an explanation of how the system processes these exemptions.\nNavigate to Payroll app ⣠Reporting ⣠274.XX Sheets to create a\nnew declaration.\nSelect the reference Year and Month , and the different amounts are computed\naccordingly.\n- Payroll calculation Odoo calculates gross salary and total withholding tax. It accounts for specific payroll components, including December double bonuses.\n- Odoo calculates gross salary and total withholding tax.\nOdoo calculates gross salary and total withholding tax.\n- It accounts for specific payroll components, including December double bonuses.\nIt accounts for specific payroll components, including December double bonuses.\n- Filtering eligible payslips Payslips linked to research-related contracts are considered. Employees are categorized based on their qualifications (PhD, masterâs, or bachelorâs degrees).\nFiltering eligible payslips\n- Payslips linked to research-related contracts are considered.\nPayslips linked to research-related contracts are considered.\n- Employees are categorized based on their qualifications (PhD, masterâs, or bachelorâs degrees).\nEmployees are categorized based on their qualifications (PhD, masterâs, or bachelorâs degrees).\n- Exemption calculation The withholding tax exemption is calculated at 80% of the withheld amount. Exemptions for bachelorâs degree holders are capped according to regulations.\nExemption calculation\n- The withholding tax exemption is calculated at 80% of the withheld amount.\nThe withholding tax exemption is calculated at 80% of the withheld amount.\n- Exemptions for bachelorâs degree holders are capped according to regulations.\nExemptions for bachelorâs degree holders are capped according to regulations.\n- Final adjustments The system ensures compliance with legal capping rules. If necessary, adjustments are made based on the total exemption granted.\n- The system ensures compliance with legal capping rules.\nThe system ensures compliance with legal capping rules.\n- If necessary, adjustments are made based on the total exemption granted.\nIf necessary, adjustments are made based on the total exemption granted.\nClick on Export XML file to generate the file to post on FINPROF portal and the\nstructured communication to link to your payment.\nClick on Create 274.XX Sheets to generate the .pdf files of those declarations.\n`.pdf`\nIn order to for the exemption to work properly, the Certificate Level should be correctly\nconfigured on the employeeâs form.\nThe Time Percentage R&D rate should be specified on the employeeâs contract form as well.\nIf the accounting application is installed and running properly, you can also post directly the\ndifferent amounts in your accounting entries with the Post Journal Entries button.\nIf the Post Journal Entries is not present on the wizard, you need to configure the journal and\nthe different accounts for each amount type from Payroll app ⣠Configuration\n⣠Settings .\nIn the Belgian Localization section, complete each of the Witholding\nTaxes Exemption journal entry accounts.\nEmployers using Odoo can efficiently manage and report withholding tax exemptions, ensuring\ncompliance with regulatory requirements.\nFor further details, consult the Odoo finance documentation or your tax adviser.\n\n## 281.10 Declaration\n\n### Introduction\n\nThe Belgian fiscal declaration 281.10 is an annual statement that employers must submit to the tax\nauthorities, detailing the salaries and benefits provided to each employee. This declaration ensures\naccurate tax calculations and compliance with Belgian tax regulations.\n\n### Generating the declaration in Odoo\n\nOdoo provides a streamlined process for generating the 281.10 declaration, offering both a\ncomprehensive XML file for electronic submission and individual PDF files for record-keeping.\n\n#### Global XML declaration\n\nTo generate the global XML file in Odoo, navigate to Payroll app ⣠Reporting â£\n281.10 Sheet .\nThen, create a new record by selecting the reference Year .\nThe Sending Type and Treatment Type options are currently experimental\nand should be kept at their default values to ensure a valid original declaration.\nClick the Populate button to generate the eligible employees, then click the Create XML button. A green indicator will appear to confirm successful file generation.\n\n#### Individual PDF declaration\n\nTo generate individual PDF files for each employee, click the Populate button. A line is\ngenerated for each employee who received a payslip during the reference year.\nThe PDF files are generated automatically in batches of 30, so the process may take some time to\ncomplete.\nOnce all PDF files are generated, they can be posted to the employee documents portal if the Documents application is installed and properly configured .\nSelect the employees whose documents you want to post, then click the Post PDF button.\nOnce posted, employees can access the PDF from their documents portal via the Documents smart button on their profile.\n\n### Submitting the XML declaration\n\nAfter generating the XML file, it must be submitted to the Belgian tax authorities. Ensure you are\nfamiliar with the official submission process .\nThe XML files containing the fiscal data to be sent via the Belcotax-on-web (BOW) application must\nbe converted to the .bow format.\nThis conversion requires the use of a validation module available under the Technical\nDocumentation section.\nThe validation module has two prerequisites:\n- Java 8 must be installed.\nJava 8 must be installed.\n- The certificate authority that signed the validation module must be recognized.\nThe certificate authority that signed the validation module must be recognized.\n\n## 281.45 Declaration\n\n### Introduction\n\nThe Belgian fiscal declaration 281.45 is an annual statement that entities must submit to the tax\nauthorities, detailing the amounts of authorâs rights and neighboring rights paid to beneficiaries.\nThis declaration ensures accurate tax reporting and compliance with Belgian tax regulations.\n\n### Generating the declaration in Odoo\n\nOdoo provides a streamlined process for generating the 281.45 declaration, offering both a\ncomprehensive XML file for electronic submission and individual PDF files for record-keeping.\n\n#### Global XML declaration\n\nTo generate the global XML file in Odoo, navigate to Payroll app ⣠Reporting â£\n281.45 Sheet .\nThen, create a new record by selecting the reference Year .\nThe Sending Type and Treatment Type options are currently experimental\nand should be kept at their default values to ensure a valid original declaration.\nClick the Populate button to generate the eligible employees, then click the Create XML button. A green indicator will appear to confirm successful file generation.\n\n#### Individual PDF declaration\n\nTo generate individual PDF files for each employee, click the Populate button. A line\nis generated for each employee who received a payslip during the reference year.\nThe PDF files are generated automatically in batches of 30, so the process may take some time to\ncomplete.\nOnce all PDF files are generated, they can be posted to the employee documents portal if the Documents application is installed and properly configured .\nSelect the employees whose documents you want to post, then click the Post PDF button.\nOnce posted, employees can access the PDF from their documents portal via the Documents smart button on their profile.\n\n### Submitting the XML declaration\n\nAfter generating the XML file, it must be submitted to the Belgian tax authorities. Ensure you are\nfamiliar with the official submission process .\nThe XML files containing the fiscal data to be sent via the Belcotax-on-web (BOW) application must\nbe converted to the .bow format.\n`.bow`\nThis conversion requires the use of a validation module available under the Technical\nDocumentation section.\nThe validation module has two prerequisites:\n- Java 8 must be installed.\nJava 8 must be installed.\n- The certificate authority that signed the validation module must be recognized.\nThe certificate authority that signed the validation module must be recognized.", "headings": ["Understanding the Belgian payslip", "Overview", "General information", "Work entries", "Payroll calculation", "December pay", "Why a December settlement?", "Reduction of working hours", "Inability to use vacation days", "Employer payment responsibilities", "Example calculation", "How to do it in Odoo", "Departure: holiday attests", "Overview", "Types of attestations", "Calculation logic in Odoo", "How does it work in Odoo?", "Important Notes", "Departure: notice period & termination fees", "Overview", "Key features", "Notice period calculation", "Notice duration rules", "Special case: employees hired before 2014", "Severance pay calculation", "How does it work in Odoo?", "Conclusion", "DIMONA", "What is the Dimona?", "Dimona in Odoo", "DmfA - Multifunctional Declaration", "Overview", "Relationship with Dimona and DRS", "Who submits the DmfA declaration?", "Third-Party submission options", "Configuration", "Double holiday pay", "How is double holiday pay calculated?", "Impact of additional or European leave", "Factors affecting the calculation", "Withholding tax calculation", "Generate a batch in Odoo", "Conclusion", "Eco vouchers", "Overview", "Eligibility & allocation", "Exceptions & adjustments", "Usage & validity", "End of year bonus", "Calculation of the thirteenth-month salary", "Withholding tax calculation", "How to do it in Odoo", "Holiday pay recovery", "Understanding holiday pay in Belgium", "Recovery of simple holiday pay", "Recovery of double holiday pay", "How to configure in Odoo", "Individual accounts", "Introduction", "Required information in the individual account", "Responsibility for establishing and updating the individual account", "Storage and retention period of the individual account", "When must workers receive a copy of their individual account?", "Generate individual accounts in Odoo", "Intellectual property and 273 sheets", "Introduction", "Tax rates and calculation", "Benefits of Authorâs Rights in employment contracts", "Tax treatment of Authorâs Rights income", "Odoo integration for Declaration 273S", "Conclusion", "Representation fees", "Introduction", "Breakdown of the threshold", "Calculation of representation fees", "Conclusion", "Sick time off and relapse", "Sick leave with guaranteed salary", "Sick leave without guaranteed salary", "Management in Odoo", "Social Balance Sheet", "Introduction", "Contents of the Social Balance Sheet", "Scope of the Social Balance Sheet", "Obligations by entity type", "Social Balance Sheet models", "Assistance in completing the Social Balance Sheet", "Submitting a separate Social Balance Sheet", "Generating Social Balance Sheet in Odoo", "Social Security certificate", "Accessing the Social Security certificate", "Exporting the report", "Time off", "Legal time off", "European time off", "Working schedule change", "Steps to change an employeeâs working schedule", "Result", "Work entries exports", "What are work entries?", "Main concepts", "Steps to generate the work entries of your staff", "Export work entries", "274.XX sheets", "Declaration 274.10", "Declarations 274.32, 274.33, 274.34", "How it works in Odoo", "281.10 Declaration", "Introduction", "Generating the declaration in Odoo", "Submitting the XML declaration", "281.45 Declaration", "Introduction", "Generating the declaration in Odoo", "Submitting the XML declaration"], "doc_id": "3ba524d4df3d4f03"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/payroll_localizations/egypt.html", "title": "Egypt", "module": "payroll", "section": "Egypt", "text": "# Egypt\n\nThe Egypt Payroll localization package enables payroll processing that fully complies with\nEgyptian labor laws. It calculates progressive income tax, employee- and employer-paid social\nsecurity, and core salary components, including housing and transportation allowances.\n\n## Configuration\n\nInstall the following modules to get all the features of the Egypt Payroll localization:\n`l10n_eg_hr_payroll`\nPayroll module includes all salary rules, leave logic, and compensation rules compliant with\nEgyptian Labor Law.\nEgypt - Payroll with Accounting\nl10n_eg_hr_payroll_account\n`l10n_eg_hr_payroll_account`\nAdds account mappings related to payroll calculations.\nEgypt fiscal localization documentation\n\n## Egyptian employee contracts\n\nOnce an employee has been created in the database , a contract must be created .\nTo check if the user already has a contract, navigate to the Employees app, then click on the\nemployeeâs Kanban card. The Contracts smart button displays a red zero\nwhen no contract exists. Otherwise, it displays In contract since (contract start date) in green.\nContracts can also be found by navigating to Employees app ⣠Employees â£\nContracts . All contracts appear in a list view, grouped by status.\nPopulate the following contractual information in the Salary Information tab of the\ncontract:\n- Social Insurance Reference Amount : Used as the base amount for calculating the social insurance employee and employer portions .\nSocial Insurance Reference Amount : Used as the base amount for calculating the social insurance employee and employer portions .\n- Number of Leave Days : Used for calculating the provision amount for the annual\nleave for the employee .\nNumber of Leave Days : Used for calculating the provision amount for the annual\nleave for the employee .\n- Provision Number of Days : Corresponds with the number of days used in the calculation\nof the provision value of the end of service for the employee .\nProvision Number of Days : Corresponds with the number of days used in the calculation\nof the provision value of the end of service for the employee .\n- Total Number of Days : Refers to the number of days used to calculate the end-of-service benefit paid to the employee when their employment with the company ends .\nTotal Number of Days : Refers to the number of days used to calculate the end-of-service benefit paid to the employee when their employment with the company ends .\n\n## Social insurance\n\nSocial insurance rules calculate the contribution amounts that are to be paid by the employer and\nemployee to the NOSI . This is only available\nfor Egyptian employees.\nThe employer contributes 18.75% of the social insurance reference amount for the employee. On the\nother hand, the employee contributes 11% of their insurance reference amount, and that amount gets\ndeducted from the payslip amount.\nThe social insurance reference amount is set per employee in their contracts.\n\n## Leaves\n\nThe following leave types are available to employees working in Egypt: Annual leave , Sick leave , Unpaid leave , and Other leave types .\n\n### Annual leave\n\nEmployees are eligible for 21 days of annual leave, and if the employee requires more days, they\nhave to be requested from HR managers accordingly.\nSince the annual leave is fully paid, it is not connected to a salary rule, but it will appear on\nthe worked days on the payslip form and on the PDF printout.\n\n### Sick leave\n\nThree cases exist for sick leaves in terms of the amount to be deducted from the employee:\n- Fully paid : first 30 calendar days each year (affects only working entries; no payroll\ndeduction). Payroll computation =(Daily Wage)\nFully paid : first 30 calendar days each year (affects only working entries; no payroll\ndeduction).\nPayroll computation =(Daily Wage)\n- 75% paid : next 60 days; payroll rule deducts 25% of an employeeâs salary. Payroll computation =(Daily Wage * 0.25)\n75% paid : next 60 days; payroll rule deducts 25% of an employeeâs salary.\nPayroll computation =(Daily Wage * 0.25)\n- 0% paid : after 90 days; payroll rule deducts 100% of an employeeâs salary. Payroll computation =(Daily Wage * 0.00)\n0% paid : after 90 days; payroll rule deducts 100% of an employeeâs salary.\nPayroll computation =(Daily Wage * 0.00)\n\n### Unpaid leave\n\nDeductions are applied on the employeeâs salary based on the number of unpaid leave days taken, and\nit is calculated by dividing the monthly salary for the employee by 30 to get the daily salary and\nthen multiplying it by the number of unpaid leave days taken.\n\n### Other leave types\n\nThese are leave types considered fully paid and do not affect the end payslip, but are tracked in\nthe working entries:\n- Maternity leave\n- Hajj leave\n- Death leave\n\n## Income tax\n\nIn Egypt, employees are subject to a progressive income tax system, where tax rates increase with\nhigher annual income brackets.\n\n### Tax brackets\n\nDepending on the annual income of the employee, the following rates apply:\nMore than 70k to 200k\nMore than 70k to 200k\nMore than 70k to 200k\nMore than 200k to 400k\nMore than 200k to 400k\nMore than 200k to 400k\nMore than 200k to 400k\n\n### Exemptions\n\nEmployees are eligible to an EGP 20,000 personal exception on their gross income.\n\n## Overtime\n\nDepending on the time of day and the time at which the overtime is recorded in, the additional\namount to be paid to the employee can be as follows:\n- During daytime hours on working days, the amount is 1.35x times the employeeâs hourly wage.\nDuring daytime hours on working days, the amount is 1.35x times the employeeâs hourly wage.\n- During nighttime hours on working days, the amount is 1.70x times the employeeâs hourly wage.\nDuring nighttime hours on working days, the amount is 1.70x times the employeeâs hourly wage.\n- On rest days and public holidays: The amount is 2.0x times the employeeâs hourly wage.\nOn rest days and public holidays: The amount is 2.0x times the employeeâs hourly wage.\nOvertime hours are registered as other inputs directly on payslips.\n\n## Provisions\n\nProvisions are the amounts computed by the employer to account for the payments made to the employee\nfor EOS benefits or annual leave. And it is computed on a monthly basis.\n\n### End of service benefit provision\n\nIt is computed by dividing the end of service Provision Number of Days by 12 and multiplying the\nresult by the daily salary for the employee.\n\n### Annual leave provision\n\nIt is computed by dividing the number of leave days by 12 and multiplying the result by the daily\nsalary for the employee.\n\n## End of service\n\nAt the end of the service slip that is generated for the employee, there are the following points\nthat are unique only to the payslip:\n\n### Unused leaves compensation\n\nThe number of available annual leaves is shown on the employeeâs record. It is based on the annual\nleave type defined in the Payroll settings. It is calculated as the total remaining allocations for\nthat specific leave type assigned to the employee.\nThat number is then multiplied by the daily rate for the employee and added as an allowance on their\npayslip.\n\n### End of service benefit\n\nIt is calculated by multiplying the daily wage of the employee by the number of days for the end of\nservice that is set in the employeeâs contract.\n\n## Out of contract\n\nOut-of-contract days are the days that fall within the payslip period but are not included in the\nemployeeâs contract period. The corresponding amount is added as a deduction on the payslip and is\ncalculated by multiplying the number of out-of-contract days by the employeeâs daily wage.", "headings": ["Configuration", "Egyptian employee contracts", "Social insurance", "Leaves", "Annual leave", "Sick leave", "Unpaid leave", "Other leave types", "Income tax", "Tax brackets", "Exemptions", "Overtime", "Provisions", "End of service benefit provision", "Annual leave provision", "End of service", "Unused leaves compensation", "End of service benefit", "Out of contract"], "doc_id": "db965e65ad52e157"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/payroll_localizations/employment_hero.html", "title": "Employment Hero Payroll", "module": "payroll", "section": "Employment Hero Payroll", "text": "# Employment Hero Payroll\n\nThe Employment Hero module synchronises payslip accounting entries\n(e.g., expenses, social charges, liabilities, taxes) automatically from Employment Hero to Odoo.\nPayroll administration is still done in Employment Hero, but the journal entries are done in\nOdoo.\nKeyPay was rebranded as Employment Hero in March 2023.\n\n## Configuration\n\n- Activate the Employment Hero Payroll module\n( l10n_employment_hero ).\nActivate the Employment Hero Payroll module\n( l10n_employment_hero ).\n`l10n_employment_hero`\n- Configure the Employment Hero API by going to Accounting ⣠Configuration\n⣠Settings . More fields become visible after clicking on Enable Employment Hero\nIntegration . The API Key can be found in the My Account section of the Employment Hero platform. The Payroll URL is left empty by default to avoid any confusion. Please fill it according\nto the documentation specific to the localization. Note Employment hero is available for Australia , Malaysia , New Zealand , Singapore ,\nand the United Kingdom . The Business ID can be found in the Employment Hero URL. (i.e., 189241 ) Choose any Odoo journal to post the payslip entries.\nConfigure the Employment Hero API by going to Accounting ⣠Configuration\n⣠Settings . More fields become visible after clicking on Enable Employment Hero\nIntegration .\n- The API Key can be found in the My Account section of the Employment Hero platform.\nThe API Key can be found in the My Account section of the Employment Hero platform.\n- The Payroll URL is left empty by default to avoid any confusion. Please fill it according\nto the documentation specific to the localization. Note Employment hero is available for Australia , Malaysia , New Zealand , Singapore ,\nand the United Kingdom .\nThe Payroll URL is left empty by default to avoid any confusion. Please fill it according\nto the documentation specific to the localization.\nEmployment hero is available for Australia , Malaysia , New Zealand , Singapore ,\nand the United Kingdom .\n- The Business ID can be found in the Employment Hero URL. (i.e., 189241 )\nThe Business ID can be found in the Employment Hero URL. (i.e., 189241 )\n`189241`\n- Choose any Odoo journal to post the payslip entries.\nChoose any Odoo journal to post the payslip entries.\n- Configure the tax by going to Accounting ⣠Configuration ⣠Taxes . Create the\nnecessary taxes for the Employment Hero payslip entries. Fill in the tax code from Employment Hero in the Matching Employment Hero Tax field.\nConfigure the tax by going to Accounting ⣠Configuration ⣠Taxes . Create the\nnecessary taxes for the Employment Hero payslip entries. Fill in the tax code from Employment Hero in the Matching Employment Hero Tax field.\n\n## How does the API work?\n\nThe API syncs the journal entries from Employment Hero to Odoo and leaves them in draft mode. The\nreference includes the Employment Hero payslip entry ID in brackets for the user to easily retrieve\nthe same record in Employment Hero and Odoo.\nBy default, the synchronisation happens once per week. The records can be fetched manually by going\nto Accounting ⣠Configuration ⣠Settings and, in the Enable\nEmployment Hero Integration option, click on Fetch Payruns Manually .\nEmployment Hero payslip entries also work based on double-entry bookkeeping.\nThe accounts used by Employment Hero are defined in the section Payroll settings .\nFor the API to work, create the same accounts as the default accounts of the Employment Hero\nbusiness ( same name and same code ) in Odoo. The correct account types must be chosen in Odoo to\ngenerate accurate financial reports.", "headings": ["Configuration", "How does the API work?"], "doc_id": "fd4a494879666d72"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/payroll_localizations/hong_kong.html", "title": "Hong Kong", "module": "payroll", "section": "Hong Kong", "text": "# Hong Kong\n\nEnsure the Hong Kong - Payroll ( l10n_hk_hr_payroll ) module is installed before\nproceeding.\n`l10n_hk_hr_payroll`\n\n## Create employees\n\nGo to the Employees app and click New . Then, configure the following\nfields:\n- Under the Work Information tab Working Hours : HK Standard 40 hours/week option must be selected.\nUnder the Work Information tab\n- Working Hours : HK Standard 40 hours/week option must be selected.\nWorking Hours : HK Standard 40 hours/week option must be selected.\n- Under the Private Information tab Surname, Given Name, Name in Chinese : name of the employee. Private Address : address of the employee. Bank Account Number : employeeâs bank account number. Current Rental : employeeâs rental records (if rental allowance is applicable). Autopay Type : BBAN , SVID , EMAL , etc. Autopay Reference : autopay reference number. Identification No : HKID of the employee. Gender : gender of the employee. Important For the Bank Account Number , this account should be set as Trusted before further processing. To achieve this, click on the right-arrow button next to Bank Account Number field.\nSet the Send Money to Trusted by clicking on the toggle. Note To populate the Current Rental , click on the History button.\nThen, click on New . Fill in the relevant details and save the rental record. Upon\nsaving the record, the rental contract state will be visible (at the top-right\ncorner) and can be set to Running .\nUnder the Private Information tab\n- Surname, Given Name, Name in Chinese : name of the employee.\nSurname, Given Name, Name in Chinese : name of the employee.\n- Private Address : address of the employee.\nPrivate Address : address of the employee.\n- Bank Account Number : employeeâs bank account number.\nBank Account Number : employeeâs bank account number.\n- Current Rental : employeeâs rental records (if rental allowance is applicable).\nCurrent Rental : employeeâs rental records (if rental allowance is applicable).\n- Autopay Type : BBAN , SVID , EMAL , etc.\nAutopay Type : BBAN , SVID , EMAL , etc.\n- Autopay Reference : autopay reference number.\nAutopay Reference : autopay reference number.\n- Identification No : HKID of the employee.\nIdentification No : HKID of the employee.\n- Gender : gender of the employee.\nGender : gender of the employee.\nFor the Bank Account Number , this account should be set as Trusted before further processing.\nTo achieve this, click on the right-arrow button next to Bank Account Number field.\nSet the Send Money to Trusted by clicking on the toggle.\nTo populate the Current Rental , click on the History button.\nThen, click on New . Fill in the relevant details and save the rental record. Upon\nsaving the record, the rental contract state will be visible (at the top-right\ncorner) and can be set to Running .\n- Under the HR Settings tab: Volunteer Contribution Option : select either Only Mandatory\nContribution , With Fixed %VC , or Cap 5% VC . MPF Manulife Account : account number, if applicable.\nUnder the HR Settings tab:\n- Volunteer Contribution Option : select either Only Mandatory\nContribution , With Fixed %VC , or Cap 5% VC .\nVolunteer Contribution Option : select either Only Mandatory\nContribution , With Fixed %VC , or Cap 5% VC .\n- MPF Manulife Account : account number, if applicable.\nMPF Manulife Account : account number, if applicable.\n\n## Manage contracts\n\nOnce the new employee has been created, click the Contracts smart button on the\nemployee record, or navigate to Employees app ⣠Employees ⣠Contracts .\nOnly one contract can be active simultaneously per employee, but an employee can be assigned\nconsecutive contracts during their employment.\nThe following are critical for setting up a contract:\n- Salary Structure Type : set as CAP57: Hong Kong Employee .\nSalary Structure Type : set as CAP57: Hong Kong Employee .\n- Contract Start Date : start date of employment.\nContract Start Date : start date of employment.\n- Working Schedule : set as HK Standard 40 hours/week (from employee record).\nWorking Schedule : set as HK Standard 40 hours/week (from employee record).\n- Work Entry Source : select either Working Schedule , Attendances or Planning . This field determines how the work entries are accounted for in the\npayslip. Working Schedule : the work entries are generated automatically based on the\nemployeeâs working schedule. Attendances : the work entries are generated based on the check-in/out period logged\nin the Attendances . Planning : the work entries are generated from planning shifts only.\nWork Entry Source : select either Working Schedule , Attendances or Planning . This field determines how the work entries are accounted for in the\npayslip.\n- Working Schedule : the work entries are generated automatically based on the\nemployeeâs working schedule.\nWorking Schedule : the work entries are generated automatically based on the\nemployeeâs working schedule.\n- Attendances : the work entries are generated based on the check-in/out period logged\nin the Attendances .\nAttendances : the work entries are generated based on the check-in/out period logged\nin the Attendances .\n- Planning : the work entries are generated from planning shifts only.\nPlanning : the work entries are generated from planning shifts only.\n- Under the Salary Information tab Wage Type : select Fixed Wage for Full-time or Part-time employees, or Hourly Wage for employees who are paid hourly. Schedule Pay : the frequency of payslip issuance. Wage : Monthly or Hourly depending on the Wage\nType . Internet Subscription : this is an optional field to provide additional internet\nallowance on top of the current salary package.\nUnder the Salary Information tab\n- Wage Type : select Fixed Wage for Full-time or Part-time employees, or Hourly Wage for employees who are paid hourly.\nWage Type : select Fixed Wage for Full-time or Part-time employees, or Hourly Wage for employees who are paid hourly.\n- Schedule Pay : the frequency of payslip issuance.\nSchedule Pay : the frequency of payslip issuance.\n- Wage : Monthly or Hourly depending on the Wage\nType .\nWage : Monthly or Hourly depending on the Wage\nType .\n- Internet Subscription : this is an optional field to provide additional internet\nallowance on top of the current salary package.\nInternet Subscription : this is an optional field to provide additional internet\nallowance on top of the current salary package.\nTimesheets do not impact work entries in Odoo.\nOnce all information has been setup, set the contract status to Running by clicking the Running button in the top-right of the page.\n\n## Generate payslips\n\nOnce the employees, and their contracts, are configured, payslips can be generated in the Payroll app.\nOdoo provides four different salary structures under CAP57 regulation:\n- CAP57: Employees Monthly Pay : to process the monthly employee salary.\nCAP57: Employees Monthly Pay : to process the monthly employee salary.\n- CAP57: Payment in Lieu of Notice : to process final payment upon contract termination\nusing ADW .\nCAP57: Payment in Lieu of Notice : to process final payment upon contract termination\nusing ADW .\n- CAP57: Long Service Payment : applicable to employees with more than five years of\nservice upon contract termination.\nCAP57: Long Service Payment : applicable to employees with more than five years of\nservice upon contract termination.\n- CAP57: Severance Payment : applicable to employees with more than two years of service\nupon contract termination.\nCAP57: Severance Payment : applicable to employees with more than two years of service\nupon contract termination.\nBefore running the payslips, the accounts used in the salary rule can be adjusted by navigating to Payroll app ⣠Configuration ⣠Rules .\nOdoo can create pay runs in two ways: via batch or individual payslips.\n\n### Batch payslips\n\nThis method of payslip generation is used for recurring payments, since multiple employee payslips\ncan be managed at once. Go to Payroll app ⣠Payslips ⣠Batches .\n- Click on New .\n- Enter a Batch Name (e.g. 2024 - Jan ) and Period (e.g. 01/01/2024 - 01/31/2024 ).\nEnter a Batch Name (e.g. 2024 - Jan ) and Period (e.g. 01/01/2024 - 01/31/2024 ).\n`2024-Jan`\n`01/01/2024`\n`01/31/2024`\n- Click on Generate Payslips .\nClick on Generate Payslips .\n- Choose which Salary Structure to use for this batch. The department filter allows the\nbatch to only apply to a specific group of employees.\nChoose which Salary Structure to use for this batch. The department filter allows the\nbatch to only apply to a specific group of employees.\n- Click on Generate .\n- A Payslips smart button is created automatically.\nA Payslips smart button is created automatically.\nNext, click Create Draft Entry to generate a draft journal entry found in the Other Info tab of each payslip. A Confirmation pop-up window appears asking Are you sure you want to proceed? . Click Ok to create the journal entries.\n\n### Individual payslips\n\nGo to Payroll app ⣠Payslips ⣠All Payslips .\nThis method of payslip generation is commonly used to handle non-recurring payments (e.g. CAP57: Payment in Lieu of Notice , CAP57: Long Service Payment or CAP57: Severance Payment ).\n- Click on New .\n- Select an Employee . When selected, the Contract is filled out\nautomatically.\nSelect an Employee . When selected, the Contract is filled out\nautomatically.\n- Add a pay Period .\n- Select a salary Structure (e.g. CAP57: Employees Monthly Pay ).\nSelect a salary Structure (e.g. CAP57: Employees Monthly Pay ).\n- The Worked Days & Inputs tab automatically compute the worked days/hours and time off\nleaves that are applicable.\nThe Worked Days & Inputs tab automatically compute the worked days/hours and time off\nleaves that are applicable.\n- Additional payslip items can be added at this time (e.g. Commissions , Deductions ) under the Other Inputs section.\nAdditional payslip items can be added at this time (e.g. Commissions , Deductions ) under the Other Inputs section.\n- Click on Compute Sheet button to generate the payslip lines. This button updates\nthe Salary Computation tab.\nClick on Compute Sheet button to generate the payslip lines. This button updates\nthe Salary Computation tab.\nIf the work entry for an employee was amended, click the (gear) icon,\nthen click Recompute Whole Sheet to refresh the payslipâs Worked Days &\nInputs tab.\nThe Salary Computation tab shows the detailed breakdown of the computation, based on\nthe salary rules configured for each structure type.\n- Rent Allowance : amount derived from the employeeâs active rental record.\nRent Allowance : amount derived from the employeeâs active rental record.\n- Basic Salary : amount of base salary provided (after rent allowance deduction).\nBasic Salary : amount of base salary provided (after rent allowance deduction).\n- 713 Gross : net payable amount considering Commission , Internet Allowance , Reimbursements , Back-pay , Deduction , etc.\n713 Gross : net payable amount considering Commission , Internet Allowance , Reimbursements , Back-pay , Deduction , etc.\n- MPF Gross : net payable amount from 713 gross after consideration of additional\nallowances, deductions, and end-of-year payment.\nMPF Gross : net payable amount from 713 gross after consideration of additional\nallowances, deductions, and end-of-year payment.\n- Employee Mandatory Contribution : employee MPF Contribution.\nEmployee Mandatory Contribution : employee MPF Contribution.\n- Employer Mandatory Contribution : employer MPF Contribution.\nEmployer Mandatory Contribution : employer MPF Contribution.\n- Gross : net payable amount from MPF gross after consideration of MPF deductions.\nGross : net payable amount from MPF gross after consideration of MPF deductions.\n- Net Salary : final payable amount to be paid to the employee.\nNet Salary : final payable amount to be paid to the employee.\nThere are no MPF contributions for the first month. Both employee and employer contribution\nstarts on second month.\nUnder the Other Inputs section in Worked Days & Inputs tab, there are\nadditional manual input types:\n- Back Pay : additional salary payout can be included under this category.\nBack Pay : additional salary payout can be included under this category.\n- Commission : the commission earned during the period can be manually entered here.\nCommission : the commission earned during the period can be manually entered here.\n- Global Deduction : a lump-sum deduction from the entire payslip.\nGlobal Deduction : a lump-sum deduction from the entire payslip.\n- Global Reimbursement : a lump-sum reimbursement to the entire payslip.\nGlobal Reimbursement : a lump-sum reimbursement to the entire payslip.\n- Referral Fee : the additional bonus offered for any form of business-related referral.\nReferral Fee : the additional bonus offered for any form of business-related referral.\n- Moving Daily Wage : to override the ADW value used for\nleaves computation.\nMoving Daily Wage : to override the ADW value used for\nleaves computation.\n- Skip Rent Allowance : if set, the rental allowance is excluded from the current\npayslip.\nSkip Rent Allowance : if set, the rental allowance is excluded from the current\npayslip.\n- Custom Average Monthly Salary : to override the average monthly salary used for\nend-of-year payment (rule is only applicable to payslips generated in December).\nCustom Average Monthly Salary : to override the average monthly salary used for\nend-of-year payment (rule is only applicable to payslips generated in December).\n- Lieu of Notice Period (Months) : only applicable to CAP57: Payment in Lieu\nof Notice salary structure. By default, the final payout is set as 1-month. Use the Count field under the Other Inputs section to set a different notice\nperiod duration.\nLieu of Notice Period (Months) : only applicable to CAP57: Payment in Lieu\nof Notice salary structure. By default, the final payout is set as 1-month. Use the Count field under the Other Inputs section to set a different notice\nperiod duration.\nOnce the payslips are ready, click on Compute Sheet , followed by Create Draft\nentry to generate a draft journal entry found in the Other Info tab of the payslip.\n\n## Pay employees\n\nOnce the draft journal entries have been posted, the company can now pay the employees. The user can\nchoose between two different payment methods :\n- From the employeeâs payslip ( Payroll app ⣠Payslips ⣠All Payslips ), once the\npayslipâs journal entry has been posted, click Register Payment . The process is the\nsame as paying vendor bills . Select the desired bank\njournal and payment method, then later reconcile the payment with the corresponding bank statement.\nFrom the employeeâs payslip ( Payroll app ⣠Payslips ⣠All Payslips ), once the\npayslipâs journal entry has been posted, click Register Payment . The process is the\nsame as paying vendor bills . Select the desired bank\njournal and payment method, then later reconcile the payment with the corresponding bank statement.\n- For batch payments ( Payroll app ⣠Payslips ⣠Batches ), once all draft journal\nentries from the batch are confirmed, click Mark as Paid to post the payment journal\nentry. Then create a payment in the Accounting app,\nand reconcile accordingly.\nFor batch payments ( Payroll app ⣠Payslips ⣠Batches ), once all draft journal\nentries from the batch are confirmed, click Mark as Paid to post the payment journal\nentry. Then create a payment in the Accounting app,\nand reconcile accordingly.\n\n## Attendances and hourly wage\n\nTo configure the contract for an employee paid hourly using the Attendances app for hours\ntracking, navigate to Payroll app ⣠Contracts ⣠Contracts .\nCreate a new contract . It is important to remember to set the Work Entry Source as Attendances , and Wage Type as Hourly Wage .\nTo record the hours logged by the employee using Attendances app:\n- Go to Attendances app .\nGo to Attendances app .\n- The employee can check-in/out, via the kiosk mode and the time will be logged automatically.\nThe employee can check-in/out, via the kiosk mode and the time will be logged automatically.\n- In the Payroll app , review the attendance work entries generated from Payroll app ⣠Work Entries ⣠Work Entries .\nIn the Payroll app , review the attendance work entries generated from Payroll app ⣠Work Entries ⣠Work Entries .\n- Next, generate the payslips and process the payment.\nNext, generate the payslips and process the payment.\n\n## Time Off with Payroll\n\nThe work entry types and time off types are fully integrated between the Time Off and Payroll apps. There are several default time off types and work entry types specific to\nHong Kong which are installed automatically along with the Hong Kong - Payroll module.\nGo to Payroll app ⣠Configuration ⣠Work Entry Types and click New .\nThere are two checkboxes to be considered when setting up the work entry type:\n- Use 713 : Include this leave type as part of 713 computation.\nUse 713 : Include this leave type as part of 713 computation.\n- Non-full pay : 80% of the ADW .\nNon-full pay : 80% of the ADW .\nCreating and configuring work entry types\n\n## Understanding 713 Ordinance\n\nThe Hong Kong - Payroll module is compliant with 713 Ordinance which relates to the ADW computation to ensure fair compensation for employees.\nThe ADW computation is as follows:\nADW equals the total wage in a 12-month period, minus the wages of\nnon-full pay, divided by the total days in a 12-month period minus the days of non-full pay.\nFor 418 compliance, there is no automated allocation of the Statutory Holiday entitlement to\nthe employees. As soon as 418 requirements are met, manually allocate the leaves, via the Time\nOff app.\nBefore generating payslips, ensure the statuses are Done to validate the outcome.\nMar (One Day Annual Leave)\n$730.27 ($65724.33/90)\nApr (One Day 80% Sick Leave)\n$584.22 ($730.27*0.8)\nHere is an example demonstrating the 713 logic:\n- Jan : Generate a payslip with a monthly wage of $20200. The ADW is always computed on a cumulative basis of the trailing 12-months.\nJan : Generate a payslip with a monthly wage of $20200. The ADW is always computed on a cumulative basis of the trailing 12-months.\n- Feb : Generate a similar payslip, but add an Other Input Type for the Commission .\nFeb : Generate a similar payslip, but add an Other Input Type for the Commission .\n- Mar : Apply for one full-paid annual leave in March. The salary compensation for the\nleave taken is based on ADW thus far.\nMar : Apply for one full-paid annual leave in March. The salary compensation for the\nleave taken is based on ADW thus far.\n- Apr : Apply for a 1-day non-full pay leave in April. Since this is a non-full pay leave, the ADW is computed accordingly.\nApr : Apply for a 1-day non-full pay leave in April. Since this is a non-full pay leave, the ADW is computed accordingly.\nThe value of ADW is computed in the backend, and not be visible to\nthe user.\n- HK 713 Ordinance\n- HK 418 Ordinance\n\n## Generate reports\n\nBefore generating the below reports, setup the following in Settings app â£\nPayroll .\nConfigure the following in the Accounting section:\n- Tick the Payroll HSBC Autopay checkbox. Autopay Type : Set as H2H Submission . Select the Bank Account to use.\nTick the Payroll HSBC Autopay checkbox.\n- Autopay Type : Set as H2H Submission .\nAutopay Type : Set as H2H Submission .\n- Select the Bank Account to use.\nSelect the Bank Account to use.\nConfigure the following in the HK Localization section:\n- Employerâs Name shows on reports\nEmployerâs Name shows on reports\n- Employerâs File Number\nEmployerâs File Number\n- Manulife MPF Scheme\n\n### IRD report\n\nThere are a total of four IRD reports available:\n- IR56B : employerâs Return of Remuneration and Pensions.\nIR56B : employerâs Return of Remuneration and Pensions.\n- IR56E : notification of Commencement of Employment.\nIR56E : notification of Commencement of Employment.\n- IR56F : notification of Ceasation of Employment (remaining in HK).\nIR56F : notification of Ceasation of Employment (remaining in HK).\n- IR56G : notification of Ceasation of Employment (departing from HK permanently).\nIR56G : notification of Ceasation of Employment (departing from HK permanently).\nGo to Payroll app ⣠Reporting , and select one of the IR56B/E/F/G\nSheet options:\n- Click on New .\n- Fill in the relevant information for the IRD report.\nFill in the relevant information for the IRD report.\n- Click on Populate , and the Eligible Employees smart button appears.\nClick on Populate , and the Eligible Employees smart button appears.\n- The Employee Declarations status is Draft and changed to Generated PDF status once the schedule runs.\nThe Employee Declarations status is Draft and changed to Generated PDF status once the schedule runs.\n- Once the PDF is generated, the IRD form may be downloaded.\nOnce the PDF is generated, the IRD form may be downloaded.\nThe scheduled action called Payroll: Generate pdfs can be manually triggered. It is set by\ndefault to run the PDF generation monthly.\n\n### Manulife MPF sheet\n\nGo to Payroll app ⣠Reporting ⣠Manulife MPF Sheet .\n- Click on New .\n- Select the relevant Year , Month , and Sequence No. .\nSelect the relevant Year , Month , and Sequence No. .\n- Click on Create XLSX .\nClick on Create XLSX .\n- The Manulife MPF XLSX file is then generated, and available for download.\nThe Manulife MPF XLSX file is then generated, and available for download.\nOdoo will not be developing further reports for other MPF trustee as there will soon be an\neMPF platform setup by the local government.\n\n### HSBC autopay report\n\nIf HSBC Autopay is selected as the batch payment method, click on Create HSBC Autopay\nReport , and fill in the mandatory fields:\nThis creates an .apc file format which can be uploaded to the HSCB portal for processing.\n`.apc`", "headings": ["Create employees", "Manage contracts", "Generate payslips", "Batch payslips", "Individual payslips", "Pay employees", "Attendances and hourly wage", "Time Off with Payroll", "Understanding 713 Ordinance", "Generate reports", "IRD report", "Manulife MPF sheet", "HSBC autopay report"], "doc_id": "1301ec094250cefa"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/payroll_localizations/jordan.html", "title": "Jordan", "module": "payroll", "section": "Jordan", "text": "# Jordan\n\nThe Jordan Payroll localization package offers a comprehensive solution for managing payroll in\ncompliance with Jordanian labor laws. It supports income tax calculations using progressive tax\nbrackets, social security contributions from both employees and employers and basic salary\ncalculations, including allowances such as housing and transportation.\n\n## Configuration\n\nInstall the following modules to get all the features of the Jordan Payroll localization:\n`l10n_jo_hr_payroll`\nPayroll module supporting basic calculation, tax income brackets, and national contribution\ntax and social security\nJordan - Payroll with Accounting\nl10n_jo_hr_payroll_account\n`l10n_jo_hr_payroll_account`\nBridge module between Payroll and Accounting\nJordan fiscal localization documentation\n\n## Basic calculations\n\nThe Jordan Payroll localization package in Odoo provides foundational payroll management tools\nthat are compliant with Jordanâs labor laws and regulations. Key features include:\n- Basic salary calculations : Odoo supports the computation of employee salaries based on\npredefined salary structures, ensuring accurate payroll processing.\nBasic salary calculations : Odoo supports the computation of employee salaries based on\npredefined salary structures, ensuring accurate payroll processing.\n- Social security contributions : It handles social security deductions for employees and\nemployer contributions, aligning with local regulations.\nSocial security contributions : It handles social security deductions for employees and\nemployer contributions, aligning with local regulations.\n- Taxation support : The system is configured to handle income tax calculations in Jordan,\nincluding deductions based on progressive tax brackets as required by Jordanian labor and tax\nlaws.\nTaxation support : The system is configured to handle income tax calculations in Jordan,\nincluding deductions based on progressive tax brackets as required by Jordanian labor and tax\nlaws.\n- Custom allowances and deductions : The localization supports additional allowances, deductions,\nor overtime as part of payroll computation.\nCustom allowances and deductions : The localization supports additional allowances, deductions,\nor overtime as part of payroll computation.\nThese features ensure businesses can manage payroll effectively and comply with Jordanian-specific\nlegal requirements. For enhanced functionality, businesses may leverage Odooâs flexibility to\ncustomize payroll workflows.\n\n## Social security\n\nThe Jordan Payroll localization package in Odoo simplifies social security management by\nautomating calculations for both employees and employers. Contributions are based on a percentage of\nthe employeeâs basic salary, with a maximum insurable wage cap in line with Jordanian Social\nSecurity Corporation (SSC) regulations.\n\n### Employee contributions\n\nOdoo calculates the employeeâs social security deduction as 7.5% of their basic salary, up to the\ninsurable wage cap of 3,000 JOD. If the employeeâs salary exceeds this cap, the deduction is based\non the capped amount. This ensures compliance with SSC requirements and reflects accurately on the employeeâs payslip.\n\n### Employer contributions\n\nFor employers, Odoo computes social security contributions as 14.25% of the employeeâs basic salary,\nalso capped at 3,000 JOD. Like the employee contributions, if the salary exceeds this cap, the\nemployerâs contribution is calculated based on the capped amount. These contributions include\npensions, workplace injury insurance, and other mandated benefits.\n\n### Key features\n\n- Capped contributions : The system ensures that both employee and employer contributions are\naligned with the SSC-mandated insurance cap.\nCapped contributions : The system ensures that both employee and employer contributions are\naligned with the SSC-mandated insurance cap.\n- Automated calculations : Contributions are automatically calculated and included in payroll,\nreducing errors and administrative work.\nAutomated calculations : Contributions are automatically calculated and included in payroll,\nreducing errors and administrative work.\n- Compliance with regulations : Odooâs configuration ensures full compliance with Jordanian\nsocial security laws, reflecting the correct rates and caps for both sides.\nCompliance with regulations : Odooâs configuration ensures full compliance with Jordanian\nsocial security laws, reflecting the correct rates and caps for both sides.\n\n## Income tax calculation\n\nThe Jordan Payroll localization package automates income tax calculations using progressive tax\nbrackets, ensuring compliance with Jordanian labor laws. The system applies income tax rates based\non the employeeâs annual gross income, with higher brackets subject to increased percentages. The\ncalculations are divided into six brackets, and the appropriate tax is deducted monthly.\n\n### Tax brackets\n\n- 5% bracket : Applicable to annual gross income up to 5,000 JOD. Odoo calculates 5% of the\nincome within this range. If the gross income is below 5,000 JOD, the entire amount is taxed at\n5%.\n5% bracket : Applicable to annual gross income up to 5,000 JOD. Odoo calculates 5% of the\nincome within this range. If the gross income is below 5,000 JOD, the entire amount is taxed at\n5%.\n- 10% bracket : Applicable to annual gross income between 5,001 and 10,000 JOD. Only the portion\nof income exceeding 5,000 JOD is taxed at 10%. For example, if the gross income is 7,000 JOD, only\n2,000 JOD is taxed at 10%.\n10% bracket : Applicable to annual gross income between 5,001 and 10,000 JOD. Only the portion\nof income exceeding 5,000 JOD is taxed at 10%. For example, if the gross income is 7,000 JOD, only\n2,000 JOD is taxed at 10%.\n- 15% bracket : Applicable to annual gross income between 10,001 and 15,000 JOD. The portion of\nincome exceeding 10,000 JOD up to 15,000 JOD is taxed at 15%. For instance, if the gross income is\n12,000 JOD, only 2,000 JOD is taxed at 15%.\n15% bracket : Applicable to annual gross income between 10,001 and 15,000 JOD. The portion of\nincome exceeding 10,000 JOD up to 15,000 JOD is taxed at 15%. For instance, if the gross income is\n12,000 JOD, only 2,000 JOD is taxed at 15%.\n- 20% bracket : Applicable to annual gross income between 15,001 and 20,000 JOD. Income within\nthis range is taxed at 20%, with deductions automatically adjusted by Odoo.\n20% bracket : Applicable to annual gross income between 15,001 and 20,000 JOD. Income within\nthis range is taxed at 20%, with deductions automatically adjusted by Odoo.\n- 25% bracket : Applicable to annual gross income between 20,001 and 1,000,000 JOD. Income beyond\n20,000 JOD up to 1,000,000 JOD is taxed at 25%. For higher incomes, Odoo ensures accurate\ncalculations by applying the cap of this range.\n25% bracket : Applicable to annual gross income between 20,001 and 1,000,000 JOD. Income beyond\n20,000 JOD up to 1,000,000 JOD is taxed at 25%. For higher incomes, Odoo ensures accurate\ncalculations by applying the cap of this range.\n- 30% bracket : Applicable to annual gross income exceeding 1,000,000 JOD. Any income above this\namount is taxed at 30%, with the system ensuring accurate monthly deductions for high-income\nearners.\n30% bracket : Applicable to annual gross income exceeding 1,000,000 JOD. Any income above this\namount is taxed at 30%, with the system ensuring accurate monthly deductions for high-income\nearners.\n\n### Automated process\n\nOdoo determines the appropriate tax bracket for each employee based on their gross annual income and\napplies the corresponding rates. These deductions are prorated and deducted monthly, simplifying\npayroll management and ensuring compliance.\n\n### Key features\n\n- Progressive tax system : Calculates taxes for each income range individually, ensuring fairness\nand accuracy.\nProgressive tax system : Calculates taxes for each income range individually, ensuring fairness\nand accuracy.\n- Automated deductions : Ensures a smooth payroll workflows with accurate and timely monthly tax\ndeductions.\nAutomated deductions : Ensures a smooth payroll workflows with accurate and timely monthly tax\ndeductions.\n- Alignment with Jordanian regulations : Fully complies with Jordanian tax laws, minimizing\nmanual intervention and errors.\nAlignment with Jordanian regulations : Fully complies with Jordanian tax laws, minimizing\nmanual intervention and errors.", "headings": ["Configuration", "Basic calculations", "Social security", "Employee contributions", "Employer contributions", "Key features", "Income tax calculation", "Tax brackets", "Automated process", "Key features"], "doc_id": "ca78bf5a0108687b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/payroll_localizations/united_arab_emirates.html", "title": "United Arab Emirates", "module": "payroll", "section": "United Arab Emirates", "text": "# United Arab Emirates\n\n## Configuration\n\nInstall the following modules to get all the features of the United Arab\nEmirates Payroll localization:\nUnited Arab Emirates - Payroll\n`l10n_ae_hr_payroll`\nIncludes all rules, calculations, and salary structures.\nUnited Arab Emirates - Payroll with Accounting\nl10n_ae_hr_payroll_account\n`l10n_ae_hr_payroll_account`\nIncludes all accounts related to the payroll module.\nUnited Arab Emirates fiscal localization documentation\n\n## Employees\n\nFirst, configure the employee general information and then\nconfigure the following fields under the Private Information tab:\n- Nationality (Country) : The nationality affects an employeeâs payslips, whether they\nare nationals or expats.\nNationality (Country) : The nationality affects an employeeâs payslips, whether they\nare nationals or expats.\n- Identification Number : Used to extract the WPS report .\nIdentification Number : Used to extract the WPS report .\n- Bank Account : Used to extract the WPS report and\ngenerate payments for those employees.\nBank Account : Used to extract the WPS report and\ngenerate payments for those employees.\nThe Nationality (Country) field needs to be set even if the employee is a UAE national since there is a different type of handling if they are citizens of a GCC country.\n\n## Contracts\n\nOnce the employee form has been created, ensure the contract is enabled by\nclicking on the Contracts smart button, or going to Employees ⣠Contracts .\nThe following contractual information related to employees working in the United Arab Emirates are\nfound under the Salary Information tab:\n- Wage Type : select Fixed Wage for Full-time or Part-time employees, or Hourly Wage for employees who are paid hourly.\nWage Type : select Fixed Wage for Full-time or Part-time employees, or Hourly Wage for employees who are paid hourly.\n- Scheduled Pay : the frequency of payslip issuance.\nScheduled Pay : the frequency of payslip issuance.\n- Wage : Monthly or Hourly depending on the Wage\nType .\nWage : Monthly or Hourly depending on the Wage\nType .\n- Housing Allowance\n- Transportation Allowance\nTransportation Allowance\n- Other Allowance\nThe allowance values set on the contract are used on the payslip lines as allowances.\n- Number of Leave Days : Used to specify the number of annual leave days that an employee\ndeserves in a particular year. Regardless of the actual number of leaves that the employee gets\n(extra leave days for some internal company reasons), the final calculation of the end of service\nand unpaid leaves is dependent on the number set on this field. Note The Number of Leave Days affects the calculation for unpaid leave provisions.\nNumber of Leave Days : Used to specify the number of annual leave days that an employee\ndeserves in a particular year. Regardless of the actual number of leaves that the employee gets\n(extra leave days for some internal company reasons), the final calculation of the end of service\nand unpaid leaves is dependent on the number set on this field.\nThe Number of Leave Days affects the calculation for unpaid leave provisions.\n- Is DEWS Applied : DIFC Employee Workplace Savings (DEWS), if the employee is a UAE national and has DEWS applied, tick this checkbox.\nIs DEWS Applied : DIFC Employee Workplace Savings (DEWS), if the employee is a UAE national and has DEWS applied, tick this checkbox.\n- Computed Based On Daily Salary : Defines the way that the end of service is calculated: Do not tick this checkbox if the standard calculation is to be used. This computes the\ncompensation amount by dividing the monthly salary by 30 and then multiplying it by 21 . Tick this checkbox and directly set the actual Daily Salary so that it is\nused in the end of service calculation.\nComputed Based On Daily Salary : Defines the way that the end of service is calculated:\n- Do not tick this checkbox if the standard calculation is to be used. This computes the\ncompensation amount by dividing the monthly salary by 30 and then multiplying it by 21 .\nDo not tick this checkbox if the standard calculation is to be used. This computes the\ncompensation amount by dividing the monthly salary by 30 and then multiplying it by 21 .\n- Tick this checkbox and directly set the actual Daily Salary so that it is\nused in the end of service calculation.\nTick this checkbox and directly set the actual Daily Salary so that it is\nused in the end of service calculation.\n\n## Salary structures and salary rules\n\n### Other input rules\n\nThe following are the different allowances that can be defined directly on the payslip form to allow for the values that are set against these inputs to affect the WPS calculations as monthly variable salaries for the specific employee that they are linked to.\nRules that are related to the WPS setup, are linked to other input types, and whenever they are\nused, their values are reflected on the WPS as monthly variable salary for that specific employee.\n`CONVALLOW`\n`HOUALLOW`\n`MEDALLOW`\nAnnual Passage Allowance\n`ANNUALPASSALLOW`\n`OVERTIMEALLOW`\n`OTALLOW`\n`LEAVEENCASH`\n\n### End of service (EOS)\n\nEnd of service (EOS) provides the calculation for the allowance that the employee gets at the end of\ntheir service. It is triggered when the employeeâs departure reason is set by archiving the\nemployeeâs record.\nThere are several different calculations depending on the scenario:\n- The Employee spent less than a year in the company : The employee does not get any EOS allowance since they are not eligible for it (they are eligible once they complete their first\nyear in the company).\nThe Employee spent less than a year in the company : The employee does not get any EOS allowance since they are not eligible for it (they are eligible once they complete their first\nyear in the company).\n- The Employee spent more than a year and less than 5 years in the company : The employee is\neligible for an equivalent of 21 days of salary for each year they spent on the company. Note There are two ways for calculating the daily wage that gets paid for the employee against the\n21 days of the EOS : Either by the default way of dividing the monthly basic wage by 30. Or,\nit can be manually input on the contract of the employee under the Daily Salary field.\nThe Employee spent more than a year and less than 5 years in the company : The employee is\neligible for an equivalent of 21 days of salary for each year they spent on the company.\nThere are two ways for calculating the daily wage that gets paid for the employee against the\n21 days of the EOS : Either by the default way of dividing the monthly basic wage by 30. Or,\nit can be manually input on the contract of the employee under the Daily Salary field.\n- The Employee spent more than 5 years in the company : The employee is eligible for an equivalent\nof 30 days of salary for each year they spent on the company. In this case, if the default\nmethod is used, then the employee gets paid an equivalent of 1 month of salary, and the set Daily Salary field, they will get the amount for the day multiplied by 30. Note There are two payslips printout formats, one for normal salaries and one for end of service\npayslips, it is based on the employee being archived and having a departure reason or not.\nThe Employee spent more than 5 years in the company : The employee is eligible for an equivalent\nof 30 days of salary for each year they spent on the company. In this case, if the default\nmethod is used, then the employee gets paid an equivalent of 1 month of salary, and the set Daily Salary field, they will get the amount for the day multiplied by 30.\nThere are two payslips printout formats, one for normal salaries and one for end of service\npayslips, it is based on the employee being archived and having a departure reason or not.\n\n### End of service provision (EOS Provision)\n\nThe EOS provision provides the calculation for the end-of-service provision amount that the\ncompany puts aside every month to count for the EOS that will be paid to them as an EOS allowance.\nUnlike the EOS , the provision is part of the employeeâs payslip from the start of their contract.\nJust like the EOS , the provision has two calculations depending on the period spent by the\nemployee in the company:\n- Less than 5 years: \\(\\frac{\\text{Monthly Wage}}{30}\\times{\\frac{21}{12}}\\)\nLess than 5 years: \\(\\frac{\\text{Monthly Wage}}{30}\\times{\\frac{21}{12}}\\)\n- More than 5 years: \\(\\frac{\\text{Monthly Wage}}{30}\\times{\\frac{30}{12}}\\) Note This rule is not shown to the employee on the payslip printout and it does not affect their net\npayable, it is only for internal use by the company.\nMore than 5 years: \\(\\frac{\\text{Monthly Wage}}{30}\\times{\\frac{30}{12}}\\)\nThis rule is not shown to the employee on the payslip printout and it does not affect their net\npayable, it is only for internal use by the company.\n\n### Annual leave provisions\n\nAnnual leave provisions are used for calculating the annual leave provision accumulated each month,\njust like the EOS provision, it does not affect the total amount paid to the employee, it is for\ninternal use by the company.\nIt is calculated by dividing the employeeâs total salary (Total Salary = Wage + Allowances) by 30 to get the daily salary. The daily salary is then multiplied by the eligible leave days and\ndivided by 12 to determine the monthly provision amount.\n\n### Social insurance contributions\n\nSocial insurance contributions calculate the social insurance , which is only available to UAE nationals.\nThe company contributes 15% of the total monthly salary for the employee if the company is in Abu Dhabi and 12.5% if the company is in another Emirate .\nThe total monthly salary for the employee = [basic + all allowances set on the contract].\nOn the other hand, the employee contributes 5% of their total monthly salary and that amount\ngets deducted from the payslip amount.\n\n### Annual remaining leave balance rules\n\nAnnual remaining leave balance rules are used for calculating the amount to be paid to or taken from\nthe employee based on the number of leave days deserved by the employee during the current year.\nThe annual leave time off type is specified using the Is\nAnnual Leave checkbox.\nIf enabled, the rule calculates the amount of leave days deserved by the employee up to the current\ndate and subtracts the number of annual leave days taken, and if the result is positive, this means\nthat the employee should be compensated for remaining amount and if negative this means that the\nemployee is liable to the company for the difference.\n\n### Sick leave rules\n\nSick leave rules provide the calculation for cases where the employee is on sick leave and decides\nhow the payslip should be affected.\nThere are 3 cases for the employee to have:\n- Fully paid sick leave: The employee can upload a sick leave certificate (SLI). Employees are\neligible for 15 days of this type of leave per calendar year. Tip The SLI is not mandatory in Odoo but can be done from the setup of the time off types .\nFully paid sick leave: The employee can upload a sick leave certificate (SLI). Employees are\neligible for 15 days of this type of leave per calendar year.\nThe SLI is not mandatory in Odoo but can be done from the setup of the time off types .\n- 50% paid sick leave: Same as the fully paid one, but the employees are eligible for 30 days from this leave type. These 30 days are counted after the first 15 fully paid\ndays.\n50% paid sick leave: Same as the fully paid one, but the employees are eligible for 30 days from this leave type. These 30 days are counted after the first 15 fully paid\ndays.\n- 0% paid sick leave: Same as the fully paid one, but the employees are eligible for 45\ndays from this leave type. These 45 days are counted after the first 15/30 fully/half-paid days.\n0% paid sick leave: Same as the fully paid one, but the employees are eligible for 45\ndays from this leave type. These 45 days are counted after the first 15/30 fully/half-paid days.\nAs per the labor law of the United Arab Emirates, the 15, 30, 45 days are not specified as\nworking days or calendar days so this point will rely on the company policy.\nThe amount paid for the employee per sick leave day is counted as\nfollows:\nWhere the gross per month is the basic + all other allowances set on the employeeâs contract.\n\n### Daman investments end of service programme (DEWS)\n\nDEWS allows for calculating the DEWS amounts for the employees who are eligible for it and would\nlike to be registered on it under their current contract with the company.\nIt is calculated based on the number of years that employees have spent in the company:\n- Less than 5 years: 5.83% is deducted from the employeeâs BASIC salary towards the DEWS.\nLess than 5 years: 5.83% is deducted from the employeeâs BASIC salary towards the DEWS.\n- More than 5 years: 8.33% of The employeeâs BASIC is deducted from the total payable for\nthat employee.\nMore than 5 years: 8.33% of The employeeâs BASIC is deducted from the total payable for\nthat employee.\n\n### Unpaid leaves\n\nUnpaid leaves allows for calculating the amount to be deducted when an employee takes an unpaid\nleave. It is calculated by the following equation:\nWhere the gross per month is the basic + all other allowances set on the employeeâs contract.\n\n### Out of contract days\n\nThe out of contract days rule provides a calculation for the days before/after the contract period\nthat overlaps with the contract of days on the employeeâs payslips.\nPayslips are generated for the period of 1st-30th of September but the contract expires on the\n21st, in this case, there are 7 days flagged as out of contract.\nIt is calculated by the following equation:\n\n### Manual deductions\n\nManual deductions allows the user to add manual deductions to be applied to employees per payslip.\nThe amount to be deducted and the description of the deduction is to be set directly on the payslip\nmanually as other inputs.\n\n### Net salary\n\nNet salary showcases the net amount that the employee will get based on the payslip.\nIt is calculated by adding basic to all allowances and deducting all deductions from it.\nThe approach taken for the rules above is to first get the full amounts for all static amounts\nthat are set on the contract and then deduct the amounts that should be deducted such as unpaid\nleaves, sick leaves, manual deductions, commission, etc.\n\n## Generating accounting entries from payslips\n\nThe accounts are linked to each payroll rule as a debit or credit so that when a draft entry is\ngenerated from a payslip, the amounts are reflected on the accounts accordingly.\nThe accounts need to be set in a way that would make the end-result entry balanced, otherwise a\nwarning is raised if it is not balanced and it will not generate the entry.\nAfter reviewing the payslips and making sure that all the amounts are correct, generate a draft\nentry, either one entry for all employees or an entry per employee depending on the setup done on\nthe settings.\nDebit and credit accounts set up for the basic and allowance rules.\n\n## Pay employees\n\nAfter a batch or a payslipâs journal entry has been posted, the company can proceed to pay their\nemployees.\nIn the batch itself or on the payslip, by clicking on the pay button, a payment is created and\nlinked to the posted entry for the payslip. The same can be done for batch payslips if one payment\nis done from a single/multiple payment bank/cash journal.\nOnce the payslip is generated, the employee will be able to access the slips from their portal\nusers. They will automatically receive an email mentioning that the payslips are now available to\nbe viewed on their portal view.\n\n## Payslip printouts\n\nTwo printout formats can be extracted from the payslip, it depends on the type of the payslip either\na Monthly payslip or an End of Service Payslip. It is triggered if the employee for the payslip\nis generated is archived during that month.\n\n## Master report\n\nThe Master report provides a detailed view of the amounts paid to employees for a specific period\nbased on the payslips that are generated for them during that period with payslip lines being set as\ncolumns in an Excel report.\nIt is mainly used to make the auditing process for the human resources department easier and faster.\nTo access this report, go to Payroll ⣠Reporting ⣠Master Report .\n\n## Wages protection system (WPS) reports\n\nThe WPS is a report that needs to be submitted by the company to prove that they paid their\nemployees the right amounts on the right dates. It can either be generated per payslip or batch.\nThe following steps need to be followed before generating the report:\n- Go to Payroll ⣠Configuration ⣠Settings and under the UAE\nPayroll WPS Settings section, configure the following: Employer Unique ID : Set a unique identifier for the company to be used in the WPS report. Salaries Bank Account : Select a bank account or start typing to Create\nand edit a new bank account. Important When setting the Salaries Bank Account make sure to complete the following: Account Holder : set as the company. Account Number : has to be a valid IBAN. Bank : has to have the UAE Routing Code Agent ID set. Send Money : should be enabled and set to Trusted .\nGo to Payroll ⣠Configuration ⣠Settings and under the UAE\nPayroll WPS Settings section, configure the following:\n- Employer Unique ID : Set a unique identifier for the company to be used in the WPS report.\nEmployer Unique ID : Set a unique identifier for the company to be used in the WPS report.\n- Salaries Bank Account : Select a bank account or start typing to Create\nand edit a new bank account. Important When setting the Salaries Bank Account make sure to complete the following: Account Holder : set as the company. Account Number : has to be a valid IBAN. Bank : has to have the UAE Routing Code Agent ID set. Send Money : should be enabled and set to Trusted .\nSalaries Bank Account : Select a bank account or start typing to Create\nand edit a new bank account.\nWhen setting the Salaries Bank Account make sure to complete the following:\n- Account Holder : set as the company.\nAccount Holder : set as the company.\n- Account Number : has to be a valid IBAN.\nAccount Number : has to be a valid IBAN.\n- Bank : has to have the UAE Routing Code Agent ID set.\nBank : has to have the UAE Routing Code Agent ID set.\n- Send Money : should be enabled and set to Trusted .\nSend Money : should be enabled and set to Trusted .\n- Set the unique identifier on all of the employees who are a part of the target of the\nbatch/payslip. The Identification No field can be found on the employeeâs page under the Private Information tab.\nSet the unique identifier on all of the employees who are a part of the target of the\nbatch/payslip.\nThe Identification No field can be found on the employeeâs page under the Private Information tab.\nOnce the initial setup is done, the WPS can be generated either for one payslip or for a batch as\nfollows:\n- Generate the payslip one by one or as a batch.\nGenerate the payslip one by one or as a batch.\n- Post the draft entity related to the payslips.\nPost the draft entity related to the payslips.\n- Create the payment report and set the Export Format to UAE WPS .\nCreate the payment report and set the Export Format to UAE WPS .\nThe report comes in a .sif format as per the governmental requirements, so either use\nsoftware that can open .sif files or convert it to another format ( .xslx ) to be\nable to review it.\n`.sif`\n`.sif`\n`.xslx`\nThe resulting file consists of the following:\n- Employee Detail Record ( EDR ): includes details of the employees on the batch. There\nshould be one EDR record per employee.\nEmployee Detail Record ( EDR ): includes details of the employees on the batch. There\nshould be one EDR record per employee.\n- Employee Variable Pay ( EVP ): includes the details of the variable salary the employee got\non that payslip. If the employee has any. The variable amounts are calculated from when other\ninputs are used that are linked to the salary rules ( Payroll ⣠Configuration\n⣠Rules ).\nEmployee Variable Pay ( EVP ): includes the details of the variable salary the employee got\non that payslip. If the employee has any. The variable amounts are calculated from when other\ninputs are used that are linked to the salary rules ( Payroll ⣠Configuration\n⣠Rules ).\n- Salary Control Record ( SCR ): There should only be one SCR per WPS file as it indicates the employer details and the totals for the payslips.\nSalary Control Record ( SCR ): There should only be one SCR per WPS file as it indicates the employer details and the totals for the payslips.", "headings": ["Configuration", "Employees", "Contracts", "Salary structures and salary rules", "Other input rules", "End of service (EOS)", "End of service provision (EOS Provision)", "Annual leave provisions", "Social insurance contributions", "Annual remaining leave balance rules", "Sick leave rules", "Daman investments end of service programme (DEWS)", "Unpaid leaves", "Out of contract days", "Manual deductions", "Net salary", "Generating accounting entries from payslips", "Pay employees", "Payslip printouts", "Master report", "Wages protection system (WPS) reports"], "doc_id": "ec543facadc9ca50"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/payslips.html", "title": "Payslips", "module": "payroll", "section": "Payslips", "text": "# Payslips\n\nPayslips are individual records of payment, containing all the details of how the pay was\ncalculated (hours, deductions, other inputs, etc.), and generated by payroll officers through the Payroll application. Payslips can be created and processed individually, or multiple payslips\ncan be processed at one time, in a single batch.\n\n## Create a payslip\n\nA new payslip can be created from either the Payslips To Pay page or the Employee Payslips page.\nNavigate to Payroll app ⣠Payslips , and click either To Pay or All Payslips . Click the New button in the top-left corner, and a blank\npayslip form loads.\n\n### Payslip form\n\nFill out the following information on the payslip form:\n- Employee : Using the drop-down menu, select the employee in this field. This field is required . Once a selection is made, other fields may auto-populate according to the employee\nrecord. Note It is recommended to only create payslips for employees that are already in the database.\nIf there is no current employee record (and therefore no employee contract) it is recommended\nto create the new employee in the Employees application before creating payslips for that\nemployee. Refer to the new employee documentation for\ninstructions on how to add an employee.\nEmployee : Using the drop-down menu, select the employee in this field. This field is required . Once a selection is made, other fields may auto-populate according to the employee\nrecord.\nIt is recommended to only create payslips for employees that are already in the database.\nIf there is no current employee record (and therefore no employee contract) it is recommended\nto create the new employee in the Employees application before creating payslips for that\nemployee. Refer to the new employee documentation for\ninstructions on how to add an employee.\n- Contract : The current contract for the selected employee populates this field. This\nfield is required . Important All employees are required to have a contract in order to generate payslips. Additionally, only one contract can be in the running stage for each employee, therefore the current\ncontract populates this field, and it is not recommended to make changes to this field.\nContract : The current contract for the selected employee populates this field. This\nfield is required .\nAll employees are required to have a contract in order to generate payslips. Additionally, only one contract can be in the running stage for each employee, therefore the current\ncontract populates this field, and it is not recommended to make changes to this field.\n- Batch : Using the drop-down menu, select the payslip batch this new payslip should be\nadded to, if applicable.\nBatch : Using the drop-down menu, select the payslip batch this new payslip should be\nadded to, if applicable.\n- Structure : The structure linked to the employeeâs contract auto-populates this field\nby default. If desired, use the drop-down menu to select a different structure.\nStructure : The structure linked to the employeeâs contract auto-populates this field\nby default. If desired, use the drop-down menu to select a different structure.\n- Period : The first day to the last day of the current month auto-populates the Period fields by default. The dates can be changed, if desired. To change the start date, click on the first date in the Period field to reveal a\npop-up calendar. Navigate to the desired month, and click on the desired day to select that\nspecific date. Repeat this process to modify the end date for the payslip. These fields are required .\nPeriod : The first day to the last day of the current month auto-populates the Period fields by default. The dates can be changed, if desired.\nTo change the start date, click on the first date in the Period field to reveal a\npop-up calendar. Navigate to the desired month, and click on the desired day to select that\nspecific date.\nRepeat this process to modify the end date for the payslip. These fields are required .\nTypically, after making a selection in the Employee field, Odoo auto-populates all\nother required fields (besides the Period field), but only if that information is\nalready on that employeeâs form in the Employees app.\nIf modifications to auto-populated fields are made, it is recommended to check with the\naccounting department to ensure every entry that affects the Accounting application is\ncorrect.\n\n#### Worked days & inputs tab\n\nThe Worked Days & Inputs tab details the number of days and hours the employee worked\nduring the specified Period of time on the top portion of the payslip form, and is\ncalculated based on the selected Contract and Structure fields.\nThe Worked Days section is automatically populated and lists all the individual\nattendance records for the time period, including both worked time and any time off taken.\nEach individual entry lists the Type , Description , Number of\nDays , Number of Hours , and the total Amount .\nAdditional records cannot be created for the Worked Days & Inputs as it is\nauto-populated according to the employeeâs attendance records or working schedule on their employee record .\nThe Other Inputs section is where additional inputs are listed, such as deductions,\nreimbursements, and expenses.\nEach individual item lists the Type , Description , and Count . To\nadd a new input, click Add a line , and using the drop-down menu, select the Type . Next, enter a brief Description , and last, enter the Count .\n\n#### Salary computation tab\n\nThe Salary Computation tab is where all the individual salary rules are listed and\ncalculated, including everything from the employeeâs salary, to all the deductions and allowances,\nsuch as taxes, expenses, benefit contributions, and any other items associated with the installed payroll localization .\nWhen the payslip is first created, this tab remains blank. Click the Compute Sheet button in the upper-left corner, and the Salary Computation tab is populated.\nIt is not possible to make edits to this tab, as the calculations are based on other entries\non the payslip.\nThe Compute Sheet button does not disappear from view after it is clicked, so the\npayslip can be recalculated at any point prior to processing it .\nIf any changes need to be made to the Worked Days & Inputs tab, click the Compute Sheet button to recalculate the payslip.\n\n#### Other info tab\n\nThe Other Info tab houses information that is required, but not associated with any\ninputs or calculations, as the other tabs do.\nThe Payslip Name is auto-populated according to the employee name and the time period\nthe payslip is for. Make any desired edits to the name in this field. This field is required .\nThe Company field is also automatically populated according to the employeeâs record,\nand cannot be modified.\nThe end date selected in the Period field in the top half of the form populates both the Close Date and Date Account fields, by default. The Close Date is the date the payment is issued to the employee, while the Date Account is the end\ndate the payslip covers. Modify the dates, if needed.\nThe Salary Journal field is populated by default, and cannot be edited. This is the\naccounting journal the paycheck is logged in.\nIf there are any additional notes or information needed for the payslip, add them to the Add an Internal Note⦠field.\n\n## Process a payslip\n\nWhen all the necessary information on the payslip is entered, the payslip can be processed. First, a draft of the journal entry is created, followed by a payment\nreport , and finally, the employee is paid .\nBefore processing payslips, it is best practice to check the Warnings section of the Payroll app dashboard. Here, all possible issues concerning payroll appear.\nTo view the warnings, navigate to Payroll app ⣠Dashboard . The warnings appear\nin the top-left corner of the dashboard.\nWarnings are grouped by type, such as Employees Without Running Contracts or Employees Without Bank account Number . Click on a warning to view all entries associated with that specific issue.\n`EmployeesWithoutRunningContracts`\n`EmployeesWithoutBankaccountNumber`\nIf the warnings are not resolved, at any point in the payslip processing process, an error may\noccur. Errors appear in a pop-up window, and provide details for the error, and how to resolve\nthem.\n\n### Create draft entry\n\nOnce everything on the payslip form is correct, click the Create Draft Entry button to\ncreate the payslip. A Confirmation pop-up window appears, asking Are you sure\nyou want to proceed? Click OK to confirm.\nOnce the payslip draft is created, the status changes to Done , a Journal Entry (Draft) smart button appears at the top, and additional buttons appear in\nthe top-left corner.\nAfter creating a draft entry, Odoo considers the payslip as confirmed.\nClick the Journal Entry (Draft) smart button to view the detailed\naccounting journal entry. Click Post to post the entry. Using the breadcrumb menu,\nreturn to the payslip.\nAfter the journal entry is posted, the smart button at the top changes to Journal Entry (Posted)\nEmployees cannot be paid until the journal entry is posted.\n\n### Create payment report\n\nOnce the payslip status has changed to Done , a payment report must be created. A payment\nreport is a document that contains all the necessary information to transfer the employeeâs earnings\nfrom the companyâs bank account to theirs. These are submitted by the payroll department to the\nappropriate institution.\nClick the Create Payment Report and a pop-up window loads. Using the drop-down menu,\nselect the Export Format for the payment report. The two default options available are NACHA and CSV . NACHA stands for the National Automated\nClearing House Association , and this selection creates a compatible ACH file which is sent\nto the companyâs bank.\nOther options may be available depending on the payroll localization installed in the database.\nIf CSV is selected, all other fields are hidden from view.\nNext, select the desired Bank Journal the paycheck is logged to. Last, using the\ncalendar selector, set the date the paycheck is issued in the Effective Date field.\nOnce the pop-up window is configured, click the Generate button, and the file appears on\nthe payslip form, in a new Payment Report field.\n\n### Pay employee\n\nNext, the payment must be sent to the employee. To do this, click the Pay button in the\nupper-left corner. Doing so reveals a Pay pop-up form.\nAll the necessary information is pre-populated on the form according to the payslip configuration,\nbut modifications can be made, if necessary, to any of the fields except the Amount .\nThis is populated according to the payslip calculations, and cannot be modified.\n- Journal : The accounting journal the payslip is logged to.\nJournal : The accounting journal the payslip is logged to.\n- Payment Method : Using the drop-down menu, select how the employee is being paid. The\ndefault options are: Manual Payment : Select this if paying the employee in a method other than A Check or NACHA . Check : Select this when issuing a check directly to the employee. NACHA : Select this if using the National Automated Clearing House Association to transfer the payment to the employee, via direct deposit.\nPayment Method : Using the drop-down menu, select how the employee is being paid. The\ndefault options are:\n- Manual Payment : Select this if paying the employee in a method other than A Check or NACHA .\nManual Payment : Select this if paying the employee in a method other than A Check or NACHA .\n- Check : Select this when issuing a check directly to the employee.\nCheck : Select this when issuing a check directly to the employee.\n- NACHA : Select this if using the National Automated Clearing House Association to transfer the payment to the employee, via direct deposit.\nNACHA : Select this if using the National Automated Clearing House Association to transfer the payment to the employee, via direct deposit.\n- Group Payments : If the employee has multiple payslips for the same time period (for\nexample, payroll, reimbursement, and commission checks), tick the checkbox to group all payments\ninto one payment.\nGroup Payments : If the employee has multiple payslips for the same time period (for\nexample, payroll, reimbursement, and commission checks), tick the checkbox to group all payments\ninto one payment.\n- Payment Date : Using the calendar selector, select the date the employee is to be paid.\nPayment Date : Using the calendar selector, select the date the employee is to be paid.\nOnce the pop-up Pay form is complete, click the Create Payments button, and\nthe payment is processed.\nAfter the payment is processed, and there is confirmation that the checks have been issued, or the\nfunds have been directly deposited to the employeeâs bank account, click the Mark as\npaid button to mark the payslip as paid.\nIn order for a payslip to be paid, the employee must have a bank account entered in the private information tab of their employee record, and the bank\naccount must be marked as Trusted .\nIf there is no bank information, or if the bank is not listed as Trusted , payslips\ncannot be paid, and an error appears when the Pay button is clicked. Edit the\nemployee record, and add banking information, or trust the bank account, as needed.\n\n## Refund a payslip\n\nWhen refunding a payment, the refund is achieved by creating a payslip for a negative amount of the\noriginal payslip.\nAn employee is paid $5,000.00 USD in a paycheck, in error. When refunding the payslip, a new\npayslip is created in the amount of $-5,000.00.\nIf a payment needs to be refunded, navigate to the individual payslip being refunded, and click the Refund button, located at the top-left of the screen. The Refund Payslip dashboard loads, with all refund payslips appearing in a list view.\nSince refunds are uncommon, typically only the one payslip being refunded appears in the list.\nBy default, the refund payslip has a status of Waiting . This refund payslip is processed in the same way a regular payslip is processed .\n\n## Print a payslip\n\nTo print a payslip, click the Print button in the upper-left corner of the individual\npayslip record. A PDF file is downloaded, and the payslip appears in the chatter, and the file is\nattached to the payslip record.\n\n## View all payslips\n\nTo view all payslips, regardless of status, go to Payroll app ⣠Payslips ⣠All\nPayslips . The Employee Payslips page loads, displaying all payslips, organized by\nbatch, in a default nested list view.\nClick the â (right arrow) next to an individual batch name to expand the list, and view\nall the payslips in that particular batch, along with all the payslip details.\nThe number of payslips in the batch is written in parenthesis after the batch name. The Status for each individual payslip appears on the far-right side, indicating one of the\nfollowing status options:\n- Draft : the payslip is created, and there is still time to make edits, since the\namounts are not calculated.\nDraft : the payslip is created, and there is still time to make edits, since the\namounts are not calculated.\n- Waiting : the payslip has been calculated, and the salary details can be found in the Salary Computation tab.\nWaiting : the payslip has been calculated, and the salary details can be found in the Salary Computation tab.\n- Done : the payslip is calculated and ready to be paid.\nDone : the payslip is calculated and ready to be paid.\n- Paid : the employee has been paid.\nPaid : the employee has been paid.\nClick on an individual payslip to view the details for that payslip on a separate page. Using the\nbreadcrumb menu, click Employee Payslips to go back to the list view of all payslips.\nA new payslip can be created from the Employee Payslips page, by clicking the New button in the upper-left corner. Doing so reveals a separate blank payslip form\npage. On that blank payslip form page, enter all the necessary information, as described in the Create a payslip section.\nPayslips can also be exported to an Excel spreadsheet. To export all payslips, click on the (gear) icon at the end of the words Employee Payslips in the\ntop-left corner. This reveals a drop-down menu. Click Export All to\nexport all payslips to a spreadsheet.\nTo export only select payslips, first select the payslips to be exported from the list. Then, click\nthe checkbox to the left of each individual payslip to select it. As payslips are selected, a smart\nbutton appears in the top-center of the page, indicating the number of selected payslips. Then,\nclick the Actions icon in the top-center of the page, and click Export .\nBoth To Pay and All Payslips display all the detailed information for each payslip.\n\n## View payslips to pay\n\nTo only view the payslips awaiting to be processed, navigate to Payroll app â£\nPayslips ⣠To Pay .\nEach payslip lists the Reference number for the individual payslip, the Employee name, the Batch Name , the Company , the Basic\nWage , Gross Wage , Net Wage , and the Status of the payslip.\nClick on an individual payslip entry to view the details for that individual payslip.\nProcess the payslips in the same way a regular payslip is processed , or in\na batch.", "headings": ["Create a payslip", "Payslip form", "Process a payslip", "Create draft entry", "Create payment report", "Pay employee", "Refund a payslip", "Print a payslip", "View all payslips", "View payslips to pay"], "doc_id": "46ee56d69a7d9a7b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/salaries.html", "title": "Salaries", "module": "payroll", "section": "Salaries", "text": "# Salaries\n\nIn Odoo, salaries are calculated and determined by five factors: salary structure types , salary structures , rules , rule parameters , and other input types . Together, these determine how each employeeâs pay is calculated.\nEach structure type contains one or more structures within it. Each structure contains a set\nof rules , and every rule uses parameters to define how specific amounts are calculated.\nAdditional inputs, (such as bonuses or deductions) can also be included to adjust the final salary.\nWhen payslips are calculated, Odoo calculates the employeeâs worked time from their work\nentries , then applies the relevant structure, rules, and parameters from the\nemployeeâs assigned structure type to determine their total pay.\n\n## Structure types\n\nIn Odoo, a structure type groups related salary structures. When a contract specifies a structure\ntype, only the structures within that type are used to calculate the employeeâs pay. Each\nstructure type houses individual structures within them, each containing a set of rules for\nprocessing a timesheet entry.\nStructure types define key aspects of payroll configuration, including how often employees are paid,\ntheir working hours, the default salary structure, and whether wages are fixed (salary-based) or\nvariable (hourly-based).\nA structure type called Employee contains two different structures within it: a Regular Pay structure which includes all the separate rules for processing regular pay, and an End of Year Bonus structure, which includes the rules only for the end of year bonus. Both belong to the\nsame Employee structure type.\n`Employee`\n`RegularPay`\n`EndofYearBonus`\n`Employee`\nView existing structure types by navigating to Payroll app ⣠Configuration â£\nStructure Types .\nTwo default structure types are preconfigured in Odoo: Employee and Worker .\nTypically, Employee is used for salaried employees, which is why the Default\nWage Type is a Fixed Wage , and Worker is typically used for employees paid\nby the hour, so the wage type is Hourly Wage .\nIf using a country-specific payroll localizations , it is\nrecommended to use the structure in the corresponding country localization document.\n\n### New structure type\n\nIf the default structure types do not meet the companyâs needs, go to Payroll app\n⣠Configuration ⣠Structure Types and click New to create a custom structure type.\nWhen creating a new salary structure type, ensure all local and national laws are accounted for.\nConfirm with the accounting department when configuring payroll structures, to ensure all\nrequirements are met.\nProceed to enter the following information in the fields:\n- Structure Type : Enter the name for the new structure type, such as Employee or Worker .\nStructure Type : Enter the name for the new structure type, such as Employee or Worker .\n`Employee`\n`Worker`\n- Country : Select the country that the new structure type applies to from the drop-down\nmenu.\nCountry : Select the country that the new structure type applies to from the drop-down\nmenu.\n- Wage Type : Select the wage type for the structure: Fixed Wage : For salaried employees who receive the same wage every pay period. Hourly Wage : For employees paid based on hours worked during a pay period.\nWage Type : Select the wage type for the structure:\n- Fixed Wage : For salaried employees who receive the same wage every pay period.\nFixed Wage : For salaried employees who receive the same wage every pay period.\n- Hourly Wage : For employees paid based on hours worked during a pay period.\nHourly Wage : For employees paid based on hours worked during a pay period.\n- Default Scheduled Pay : Select the typical pay schedule for the new structure type from\nthe drop-down menu. This indicates how often this specific type of structure is paid out.\nDefault Scheduled Pay : Select the typical pay schedule for the new structure type from\nthe drop-down menu. This indicates how often this specific type of structure is paid out.\n- Default Working Hours : Select the default working hours for the new structure type\nfrom the drop-down menu. All available working hours for the currently selected company appear in\nthe drop-down menu. The default working hours are the Standard 40 hours/week option.\nIf the needed working hours do not appear in the list, a new set of default working hours\ncan be created .\nDefault Working Hours : Select the default working hours for the new structure type\nfrom the drop-down menu. All available working hours for the currently selected company appear in\nthe drop-down menu. The default working hours are the Standard 40 hours/week option.\nIf the needed working hours do not appear in the list, a new set of default working hours\ncan be created .\n- Regular Pay Structure : Type in the name for the regular pay structure. It is used as\nthe default option when generating payslips.\nRegular Pay Structure : Type in the name for the regular pay structure. It is used as\nthe default option when generating payslips.\n- Default Work Entry Type : Select the default work entry type which is used to create\nall work entries for the employee.\nDefault Work Entry Type : Select the default work entry type which is used to create\nall work entries for the employee.\n\n### New default working hours\n\nTo make new default working hours, type the name for the new working hours in the Default\nWorking Hours field on the new structure type form. Click Create and edit . A default\nworking hours form pops up. The default working hours form has two sections: a general information\nsection, and a tab listing all the individual working hours by day and time. When the form is\ncompleted, click Save & Close .\n- Name : Type in the name for the new default working hours. This should be descriptive\nand clear to understand, such as Standard 20 Hours/Week .\nName : Type in the name for the new default working hours. This should be descriptive\nand clear to understand, such as Standard 20 Hours/Week .\n`Standard20Hours/Week`\n- Flexible Hours : Tick the checkbox to let employees adjust their start and end times\nwhile maintaining the same total daily hours.\nFlexible Hours : Tick the checkbox to let employees adjust their start and end times\nwhile maintaining the same total daily hours.\n- Company Full Time : Enter the number of hours per week an employee needs to work to be\nconsidered a full-time employee. Typically, this is approximately 40 hours, and this number\naffects what types of benefits an employee can receive, based on their employment status\n(full-time vs part-time).\nCompany Full Time : Enter the number of hours per week an employee needs to work to be\nconsidered a full-time employee. Typically, this is approximately 40 hours, and this number\naffects what types of benefits an employee can receive, based on their employment status\n(full-time vs part-time).\n- Average Hour Per Day : Auto-populated based on the working hours in the Working Hours tab. This entry affects resource planning by determining how many\nresources can be used per workday.\nAverage Hour Per Day : Auto-populated based on the working hours in the Working Hours tab. This entry affects resource planning by determining how many\nresources can be used per workday.\n- Work Time Rate : This percentage is auto-generated based on the entry for the Company Full Time and the working hours configured in the Working Hours tab. This number should be between 0.00% and 100% , so if the percentage is above 100% , it is\nan indication that the working times and/or Company Full Time hours need adjustment.\nWork Time Rate : This percentage is auto-generated based on the entry for the Company Full Time and the working hours configured in the Working Hours tab. This number should be between 0.00% and 100% , so if the percentage is above 100% , it is\nan indication that the working times and/or Company Full Time hours need adjustment.\n`0.00%`\n`100%`\n`100%`\n- Company : Select the company that can use these new default working hours from the\ndrop-down menu. Leave this field blank if the hours are available for all companies.\nCompany : Select the company that can use these new default working hours from the\ndrop-down menu. Leave this field blank if the hours are available for all companies.\n- Timezone : Select the time zone to be used for the new default working hours from the\ndrop-down menu.\nTimezone : Select the time zone to be used for the new default working hours from the\ndrop-down menu.\n- Working Hours Tab: This tab is where each dayâs specific working hours are listed.\nWhen a new default working hour form is created, the Working Hours tab is\npre-populated with a default 40-hour week, with each day divided into three timed sections. Each day includes morning (8:00â12:00), lunch (12:00â13:00), and afternoon (13:00â17:00) periods,\nconfigured using the 24-hour time format. To adjust any of these hours, click the field and modify the time using the drop-down menus, or\ntype the desired time directly. Note Working hours are company-specific, and cannot be shared between companies. Tip If the working hours are not consistent each week, and the hours are on a bi-weekly schedule\ninstead, click the Switch to 2 week calendar button at the top of the new default\nworking hours form. This changes the Working Hours tab to display two weeks of\nworking times that can be adjusted.\nWorking Hours Tab: This tab is where each dayâs specific working hours are listed.\nWhen a new default working hour form is created, the Working Hours tab is\npre-populated with a default 40-hour week, with each day divided into three timed sections.\nEach day includes morning (8:00â12:00), lunch (12:00â13:00), and afternoon (13:00â17:00) periods,\nconfigured using the 24-hour time format.\nTo adjust any of these hours, click the field and modify the time using the drop-down menus, or\ntype the desired time directly.\nWorking hours are company-specific, and cannot be shared between companies.\nIf the working hours are not consistent each week, and the hours are on a bi-weekly schedule\ninstead, click the Switch to 2 week calendar button at the top of the new default\nworking hours form. This changes the Working Hours tab to display two weeks of\nworking times that can be adjusted.\n\n## Structures\n\nSalary structures are the different situations in which an employee could be paid within a\nspecific structure , and are specifically defined by various rules.\nThe number of structures a company needs for each structure type depends on how many different ways\nemployees are paid, and how their pay is calculated. A common example of an additional structure is\na Bonus .\n`Bonus`\nTo view all the various structures for each structure type, go to Payroll app â£\nConfiguration ⣠Structures .\nEach structure type lists the various structures associated with\nit. Each structure contains a set of rules that define it.\nClick on a structure to view its Salary Rules . These rules define how the payslip will\nbe computed for the employee.\nAfter installing a payroll localization , relevant structures are\ninstalled and appear in this list.\n\n## Salary rules\n\nEach structure has a set of salary rules used to compute the various amounts considered in the\npay. These rules are configured by the localization and affect the computation of the salaries.\nModification or creation of rules should only be done when necessary.\nTo view all the rules, go to Payroll app ⣠Configuration ⣠Rules . Click on a\nstructure (such as Regular Pay ) to view all the rules.\nTo make a new rule, click New . A new rule form appears. Enter the following information\nin the fields.\n\n### Top section\n\n- Rule Name : Enter a name for the rule. This field is required.\nRule Name : Enter a name for the rule. This field is required.\n- Category : Select a category the rule applies to from the drop-down menu, or enter a\nnew one. This field is required.\nCategory : Select a category the rule applies to from the drop-down menu, or enter a\nnew one. This field is required.\n- Code : Enter a code to be used for this new rule. This field is required.\nCode : Enter a code to be used for this new rule. This field is required.\n- Sequence : Enter a number indicating when this rule is calculated in the sequence of\nall other rules.\nSequence : Enter a number indicating when this rule is calculated in the sequence of\nall other rules.\n- Salary Structure : Select a salary structure the rule applies to from the drop-down\nmenu, or enter a new one. This field is required.\nSalary Structure : Select a salary structure the rule applies to from the drop-down\nmenu, or enter a new one. This field is required.\n- Active : Enable this toggle so the rule is available for use. Disable the toggle to\ncontinue to show it on the payslip, but skip the computation.\nActive : Enable this toggle so the rule is available for use. Disable the toggle to\ncontinue to show it on the payslip, but skip the computation.\n- Appears on payslip : Disabling the toggle will still show the rule on the payslip, it\nwill just not be computed.\nAppears on payslip : Disabling the toggle will still show the rule on the payslip, it\nwill just not be computed.\n- View on Employer Cost Dashboard : Tick the checkbox to have the rule appear on the Employer Cost report, located on the Payroll app dashboard.\nView on Employer Cost Dashboard : Tick the checkbox to have the rule appear on the Employer Cost report, located on the Payroll app dashboard.\n- View on Payroll Reporting : Tick the checkbox to have the rule appear on payroll\nreports.\nView on Payroll Reporting : Tick the checkbox to have the rule appear on payroll\nreports.\n\n### General tab\n\n#### Conditions\n\n- Condition Based on : Select from the drop-down menu whether the rule is Always True (always applies), a Range (applies to a specific range, which\nis entered beneath the selection), Other Input (the condition is entered beneath the\nfield), or a Python Expression (the code is entered beneath the selection). This field\nis required.\nCondition Based on : Select from the drop-down menu whether the rule is Always True (always applies), a Range (applies to a specific range, which\nis entered beneath the selection), Other Input (the condition is entered beneath the\nfield), or a Python Expression (the code is entered beneath the selection). This field\nis required.\n\n#### Computation\n\n- Amount Type : Select from the drop-down menu whether the amount is a Fixed\nAmount , a Percentage (%) , Other Input , or a Python Code .\nDepending on what is selected, the fixed amount, percentage, other input, or Python code needs to\nbe entered next. This field is required.\nAmount Type : Select from the drop-down menu whether the amount is a Fixed\nAmount , a Percentage (%) , Other Input , or a Python Code .\nDepending on what is selected, the fixed amount, percentage, other input, or Python code needs to\nbe entered next. This field is required.\n\n#### Company contribution\n\n- Partner : If another company financially contributes to this rule, select the company\nfrom the drop-down menu.\nPartner : If another company financially contributes to this rule, select the company\nfrom the drop-down menu.\n\n### Description tab\n\nProvide any additional information in this tab to help clarify the rule. This tab only appears in\nthe rule form.\n\n### Accounting tab\n\n- Debit Account : Select the debit account from the drop-down menu the rule affects.\nDebit Account : Select the debit account from the drop-down menu the rule affects.\n- Credit Account : Select the credit account from the drop-down menu the rule affects.\nCredit Account : Select the credit account from the drop-down menu the rule affects.\n- Split account line based on name : Tick the checkbox to split the accounting entry\naccording to the payslip line name.\nSplit account line based on name : Tick the checkbox to split the accounting entry\naccording to the payslip line name.\n- Not computed in net accountability : If checked, the amount of the rule is shown\nindependently from the net salary, to allow for better reporting in the Accounting app.\nNot computed in net accountability : If checked, the amount of the rule is shown\nindependently from the net salary, to allow for better reporting in the Accounting app.\n\n## Rule parameters\n\nRule parameters inform Odoo how to calculate each line of a payslip. To view the configured rule\nparameters, navigate to Payroll app ⣠Configuration ⣠Rule Parameters .\nAll rule parameters are displayed. Click on an individual rule parameter to view the details.\nEach rule parameter displays the name of the rule, the code, when the rule is active, and the\nparameter value.\nThe rule parameters for overtime pay inform Odoo that employees receive time and a half when\nworking over 40 hours.\n\n## Other input types\n\nWhen creating payslips, it is sometimes necessary to add other entries for specific circumstances,\nlike tips, commissions, expenses, or deductions. These other inputs can be found by navigating to Payroll app ⣠Configuration ⣠Other Input Types .\nIf a new input type is needed that does not appear on the list, click the New button to\ncreate a new input type. Enter the Description , the Code , and select which\nstructure it applies to in the Availability in Structure field.\nTick the Available in attachments checkbox if the input should be a salary attachment.\nThe Code is used in the salary rules to compute payslips. If the Availability in Structure field is left blank, it indicates that the new input type\nis available for all payslips and is not exclusive to a specific structure.", "headings": ["Structure types", "New structure type", "New default working hours", "Structures", "Salary rules", "Top section", "General tab", "Description tab", "Accounting tab", "Rule parameters", "Other input types"], "doc_id": "34c92b43c9cf9dff"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/salary_attachments.html", "title": "Salary attachments", "module": "payroll", "section": "Salary attachments", "text": "# Salary attachments\n\nSalary attachments are portions of earnings taken directly out of a payslip for a specific purpose,\nwhether voluntary or required.\nWhen the deduction is voluntary, they are typically considered deductions . When the deduction is\ncourt-ordered, or involuntary, it is sometimes referred to as a wage garnishment . In Odoo, these\nare all universally called salary attachments .\nNote that salary attachments could also be used to give recurring amounts of money to employees,\nlike a bonus divided in multiple payments.\n\n## Salary attachment types\n\nTo view the currently configured salary attachment types, navigate to Payroll app\n⣠Configuration ⣠Other Input Types . This displays all other salary inputs, not just the\nvarious salary attachments.\nThe three default salary attachment types that appear in this list are: Attachment of\nSalary , Assignment of Salary , and Child Support .\nEach salary attachment type displays the Name of the attachment type, and the Code used when calculating payslips.\n\n### Create new salary attachment types\n\nUpon installation of the Payroll application, the preconfigured default salary attachment\ntypes are linked to a variety of rules that are linked to various salary structures, as well as\nthe installed localization package .\nIt is not recommended to alter or modify any of the preconfigured salary attachment\ntypes, especially if they have been previously used on payslips in the database. Doing so may\naffect various salary rules, and can prevent the creation of payslips.\nA new salary attachment type can be created, but this should only be done when absolutely\nnecessary. A salary attachment type needs to be linked to a salary rule in order to be considered\nin the salary computation.\nTo make a new type of salary attachment, click the New button, and a blank Other Input Types form loads. Enter the Description for the new salary\nattachment type in the corresponding field. Next, tick the Available in attachments checkbox, indicating it is available to use as a salary attachment. Enter the Code used\nin the salary rules to compute payslips. Lastly, if the salary attachment type should only be\nused in a specific payroll structure, use the drop-down menu in the Available in\nStructure field, and select the specific structure.\n\n## Create a salary attachment\n\nAll salary attachments must be configured separately for each employee, for each type of salary\nattachment. To view the currently configured salary attachments, navigate to Payroll\napp ⣠Contracts ⣠Salary Attachments .\nAll salary attachments appear in a default list view, and displays the name of the Employees , Description , the salary attachment Type , the payslips Amount , Start Date , and current Status .\nAt the end of each line is a Related Payslips button. Click this to view all payslips\ncontaining the corresponding salary attachment.\nTo create a new salary attachment, click the New button in the top-left corner, and a\nblank Salary Attachment form loads. Enter the following information on the form:\n- Employees : Using the drop-down menu, select the desired employees. Multiple employees\ncan be listed in this field.\nEmployees : Using the drop-down menu, select the desired employees. Multiple employees\ncan be listed in this field.\n- Description : Enter a short description of the salary attachment.\nDescription : Enter a short description of the salary attachment.\n- Type : Using the drop-down menu, select the specific salary attachment type .\nType : Using the drop-down menu, select the specific salary attachment type .\n- Start Date : Using the calendar selector, select the date the salary attachment goes\ninto effect.\nStart Date : Using the calendar selector, select the date the salary attachment goes\ninto effect.\n- Estimated End Date : This field is not modifiable, and only appears after the Payslip Amount field is populated. This field is the estimated date when the salary\nattachment is completed. Todayâs date populates the field by default. Then, when the Total Amount field is populated, this date is updated.\nEstimated End Date : This field is not modifiable, and only appears after the Payslip Amount field is populated. This field is the estimated date when the salary\nattachment is completed. Todayâs date populates the field by default. Then, when the Total Amount field is populated, this date is updated.\n- Document : If any documentation is needed, such as a court order, click the Upload your file button, and a file explorer window loads. Select the desired document\nto attach it to the record. Only one document can be attached to a salary attachment.\nDocument : If any documentation is needed, such as a court order, click the Upload your file button, and a file explorer window loads. Select the desired document\nto attach it to the record. Only one document can be attached to a salary attachment.\n- No End Date : Tick this checkbox if the salary attachment runs indefinitely. If ticked,\nthe Total Amount field is hidden from view.\nNo End Date : Tick this checkbox if the salary attachment runs indefinitely. If ticked,\nthe Total Amount field is hidden from view.\n- Payslip Amount : Enter the amount taken out of each paycheck in this field.\nPayslip Amount : Enter the amount taken out of each paycheck in this field.\n- Total Amount : Enter the total amount to be paid for the salary attachment. Note that\nthis field only appears if the No End Date option is not ticked.\nTotal Amount : Enter the total amount to be paid for the salary attachment. Note that\nthis field only appears if the No End Date option is not ticked.\n- Negative Amount : Tick this checkbox if the salary attachment is a negative value.\nNegative Amount : Tick this checkbox if the salary attachment is a negative value.\n- Occurrences : This field is not editable, and only appears once both the Payslip Amount and Total Amount fields are populated. The number indicates\nthe amount of payslips needed to complete the salary attachment.\nOccurrences : This field is not editable, and only appears once both the Payslip Amount and Total Amount fields are populated. The number indicates\nthe amount of payslips needed to complete the salary attachment.\nSince the salary attachment form auto saves as the fields are populated, after making a salary\nattachment for an individual employee, there is no further action required.\nIf creating salary attachments for multiple employees on a single salary attachment form, after the\nform is filled out, click the Create Individual Attachments button. This creates\nseparate salary attachments for each of the employees listed in the Employees field.\nAfter the separate salary attachments have been created, the screen returns to the Salary\nAttachment dashboard, but with a Description filter, populated with the description\nfilled in on the salary attachment form. All the salary attachments have a status of Running , since they are currently active. Clear the filter in the search box to view the\ndefault Salary Attachment dashboard in its entirety.\n\n## Manage salary attachments\n\nSalary attachments can have one of three statuses: Running , Completed , or Cancelled . To view\nthe current status of all salary attachments, navigate to Payroll app ⣠Contracts\n⣠Salary Attachments .\nAll salary attachments appear in chronological order, by Start Date , with the most\nrecent appearing at the top. To view the salary attachments by a particular metric, such as the Status , or Type , click on the column title to sort by that specific column.\n\n### Completed salary attachments\n\nWhen a salary attachment is created, it has a status of Running . Once the salary\nattachment is finished (the Total Amount entered on the salary attachment form has been paid in full), the status automatically changes to Completed , and the employee no longer has the money taken out of future paychecks.\nIf a salary attachment has been fulfilled, but has not automatically changed to Completed , the\nrecord can be manually updated. To change the status, open the Salary Attachment dashboard by\nnavigating to Payroll app ⣠Contracts ⣠Salary Attachments .\nClick on the record to update, and the detailed Salary Attachment form loads. On the\nindividual Salary Attachment record, click the Mark as Completed button in\nthe upper-left corner, and the status changes to Completed .\nThe following is an example of when a payroll manager may need to manually change a salary\nattachment from Active to Completed .\nRose Smith has a salary attachment for a lawsuit settlement, where she is required to pay\n$3,000.00. A salary attachment is created that takes $250.00 a month out of Roseâs paycheck, to\ngo towards this settlement payment.\nAfter six months, Rose has paid $1,500.00 from her salary. She received a tax refund, and uses\nthe money to pay off the remainder of the lawsuit settlement. After sending the relevant\ndocumentation to the payroll manager, showing the settlement has been paid in full, the payroll\nmanager manually changes the status of her salary attachment to Completed .\n\n### Cancel salary attachments\n\nAny salary attachment can be cancelled at any time. To cancel a salary attachment, click on the\nindividual attachment record from the main Salary Attachment dashboard to open the\nrecord. From the Salary Attachment record, click the Cancel button to cancel\nthe salary attachment, and stop having the designated money taken out of future paychecks.", "headings": ["Salary attachment types", "Create new salary attachment types", "Create a salary attachment", "Manage salary attachments", "Completed salary attachments", "Cancel salary attachments"], "doc_id": "7d4d0a4b25ec7124"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/time_off_to_report.html", "title": "Time off to report", "module": "payroll", "section": "Time off to report", "text": "# Time off to report\n\nPayroll is often processed a few days before the end of a pay period, so that employees can be paid\nin a timely manner. When work schedules are predictable, this method often works. However, sometimes\nemployees take time off unexpectedly, especially sick time. When this occurs, there can be\ndiscrepancies in payroll that must be addressed.\nThe payroll department for a medium-sized company processes paychecks every two weeks, on\nWednesdays. Each employee is paid on the Friday after.\nOne employee is sick on the last Thursday and Friday of the two-week pay period. Since they have\nautomatically generated work entries based on their working schedule, and payroll is processed on\nWednesdays, the paycheck they receive incorrectly states that they were paid for a regular work\nday for all ten days of the two-week pay period.\nInstead of cancelling the paycheck and reissuing it, causing delays for the employee and more\nwork for the payroll department, Odoo allows for the deferral of the time off taken, to the\nfollowing pay period.\nThis ensures all time off balances are correct, and the employee is properly compensated for\ntheir time.\n\n## Time off dashboard\n\nWhen time off requests are submitted for a time period that was already processed on a payslip, the\ntime off requests appear in the Time Off page of the Payroll app. To access this, navigate to Payroll app ⣠Work Entries ⣠Time Off to Report .\nThe Time Off page default filter is To Defer , and displays all requests with\na Payslip State of To defer to next payslip . This is because the employee\nwas already paid for that time as worked time, and it was logged as regular time spent at work.\n\n## Defer multiple time off entries\n\nIn order to keep the employeeâs time off balances correct, the time off request must be applied\nto the following pay period. This not only ensures time off request balances are current, it also\neliminates the need to redo work entries, cancel paychecks, and reissue paychecks.\nTo select the work entries to defer, tick the box to the left of the work entry line on the Time Off page . To select all work entries in the list, tick the\nbox to the left of the Employee column title, at the top of the list.\nOnce any work entry is selected, two buttons appear at the top of the report: a (#)\nselected button, and an Actions button. The (#) selected button indicates how many entries are currently selected.\nWhen all the desired work entries are selected, click the Actions button, and a menu appears with several choices. Click Defer to Next Month in the list,\nand all selected entries are deferred to the following month.\n\n## Defer individual time off entries\n\nTime off requests appearing on the Time Off page can be deferred\nindividually. Click on an individual time off request, and the details for that request load.\nThe specific details for the time off request appear on the left-hand side, and all of the\nemployeeâs submitted time off requests appear on the right-hand side (including the request in the\ndetails on the left-hand side).\nTo defer the time off request to the next payslip, click the Report to Next Month button\nin the upper-left corner. Once processed, the Report to Next Month button disappears,\nand the Payslip State changes from To defer to next payslip to Computed in Current Payslip .", "headings": ["Time off dashboard", "Defer multiple time off entries", "Defer individual time off entries"], "doc_id": "461e1b4aa47db4ca"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/work_entries.html", "title": "Work entries", "module": "payroll", "section": "Work entries", "text": "# Work entries\n\nA work entry is an individual record on an employeeâs timesheet. Work entries can be configured to\naccount for all types of work and time off, such as Attendance , Sick Time\nOff , Training , or Public Holiday .\nThe Payroll app automatically creates work entries based on the employeeâs salary\nstructure type , and from the Planning , Attendances , and Time\nOff applications. When needed, work entries can also be created manually .\nWork entries provide the Payroll app with the worked hours used to compute employee paychecks,\nif the employeeâs salary is based on work entries, as opposed to a salaried position.\nOdoo configures several work entry types by default, but additional work entry types can be\ncreated , when necessary.\n\n## Work entry dashboard\n\nThe Work Entries dashboard of the Payroll app provides a visual overview of the individual\nwork entries for every employee.\nTo open the dashboard, navigate to Payroll app ⣠Work Entries ⣠Work Entries .\nOn the Work Entry dashboard, work entries appear in alphabetical order, based on the\nfirst name of the employees. The entire month is displayed, with the current day highlighted in pale\nyellow.\nThe Work Entry dashboard has a default Conflicting filter, which displays\nonly work entries with conflicts to be resolved.\nRemove the default Conflicting filter from the search bar to view all work entries.\n\n## Add a new work entry\n\nIf a work entry is missing, such as sick time, or if an employee forgot to clock in and out for a\nshift, a new work entry must be created for the missing shift.\nClick New on the work entry dashboard , and a blank Create work entry pop-up form appears. Enter the following information on the form:\n- Description : Enter a short description for the work entry, such as Sick Time . The\ndefault entry is Attendance: (Employee) .\nDescription : Enter a short description for the work entry, such as Sick Time . The\ndefault entry is Attendance: (Employee) .\n`SickTime`\n`Attendance:(Employee)`\n- Employee : Select the employee the work entry is for, using the drop-down menu.\nEmployee : Select the employee the work entry is for, using the drop-down menu.\n- Work Entry Type : Select the Work Entry Type using the drop-down menu.\nWork Entry Type : Select the Work Entry Type using the drop-down menu.\n- From and To : Enter the start ( From ) and end ( To )\ndates and times for the work entry. First, click on either the From or To line to reveal a calendar pop-up\nwindow. Select the date by navigating to the correct month, then click on the specific day to\nselect it. Next, select the time, by clicking on either the hour or minute fields at the bottom of the\ncalendar, and set the desired time. When the date and time for the entry are correct, click the Apply button.\nFrom and To : Enter the start ( From ) and end ( To )\ndates and times for the work entry.\nFirst, click on either the From or To line to reveal a calendar pop-up\nwindow. Select the date by navigating to the correct month, then click on the specific day to\nselect it.\nNext, select the time, by clicking on either the hour or minute fields at the bottom of the\ncalendar, and set the desired time.\nWhen the date and time for the entry are correct, click the Apply button.\n- Duration : This field displays the hours based on the To and From entries. Modifying this field modifies the To field (the From field does not change).\nDuration : This field displays the hours based on the To and From entries. Modifying this field modifies the To field (the From field does not change).\nOnce the desired information is entered, click Save & Close to save the entry, and close\nthe pop-up form.\n\n## Conflicts\n\nA conflict occurs when a request has not been approved, such as sick time or vacation, or if there\nare any errors on the work entry. Conflicts that span the current pay period being processed must be resolved before payslips can be generated.\nAny work entry that has a conflict to be resolved is indicated on the main Work Entry dashboard, which can be accessed by navigating to Payroll app ⣠Work Entries â£\nWork Entries . Only conflicts needing resolution are shown by default.\nConflicts are indicated with an orange triangle in the top-left corner of each individual work\nentry. Click on an individual work entry to see the date and time for the specific work entry, then\nclick Edit to view the conflict details in a pop-up window.\nThe conflict is briefly explained in an orange text box in the Open pop-up window that\nappears.\nThe Description , Employee , and Work Entry Type are listed on the\nleft side of the pop-up window. The From and To date and time range, as well\nas the total time (in hours) in the Duration field, appears on the right side.\n\n### Time off conflicts\n\nThe most common work entry conflicts are for time off requests. Odoo automatically generates work\nentries for specific time periods. When time off is requested after these work entries are\ngenerated, it results in duplicate work entries for that employee (one for time off and another for\nregular work).\nIf there is a conflict because a time off request is in the system for the same time that a regular\nwork entry already exists, the time off request is entered in a Time Off field.\nConflicts can be resolved either directly on the work entry or in the detailed time off request\nform.\n\n#### Resolve on work entry\n\nIf no additional details are needed to determine if a time off request should be approved or\nrefused, the time off conflict can be resolved directly from the work entry pop-up window.\nClick either the Refuse Time Off or Approve Time Off buttons to refuse or\napprove the time off request, then the two buttons disappear. Click the Save & Close button to close the pop-up window.\nThe conflict disappears from the Work Entry dashboard, since the conflict is now\nresolved.\nIf the time off is approved, the status of the work entry conflict changes to Cancelled . If the time off is refused, the status changes to Draft .\n\n#### Resolve on time off request\n\nIf more details are needed to make a decision about the time off request, hover over the entry in\nthe Time Off field, and click the (Internal Link) icon that appears at the end of the line. This causes an Open: Time Off pop-up window to\nload, with all the time off request details. Click either the Approve or Refuse buttons to approve or refuse the request.\nTo resolve the time off conflict on the detailed time off request pop-up window, click the Internal Link button at the end of the Time Off entry line, and the time off\nrequest details appear in a new pop-up window. The request can be modified, if needed.\nClick the Approve button to approve the request, then click the Save & Close button to save the changes, and go back to the work entry conflict pop-up window.\nNow, the Approve Time Off button is hidden, only the Refuse Time Off button\nis visible.\nIf the approval was a mistake, the request can be refused here, by clicking the Refuse\nTime Off button.\nSince the time off was approved in the time off window, click the X in the top-right\ncorner to close the window. The conflict disappears from the Work Entry dashboard, since\nit has been resolved.\n\n## Regenerate work entries\n\nAfter conflicts are resolved, the affected work entries must be regenerated. This recreates the\nspecified work entries, and overwrites the previously conflicting work entries.\nWhile conflicts can be resolved individually, if the conflicts are\ncaused by another application, such as Planning or Attendances , it is best practice to\ncorrect the record in the application causing the conflict. The reason this method is recommended is\nbecause, if the issue in the related application is not resolved, when work entries are\nregenerated, the conflicts reappear.\nFirst, ensure the issues are resolved in the specific applications that caused the work entry\nconflicts. Once the conflicts have been resolved in the corresponding apps, open the work entry\ndashboard by navigating to Payroll app ⣠Work Entries ⣠Work Entries .\nClick the Regenerate Work Entries button at the top of the Work Entries dashboard, and a Work Entry Regeneration pop-up window appears.\nSelect the Employees to regenerate work entries for, using the drop-down menu. Adjust\nthe From and To fields, so the correct date range is displayed.\nClick the Regenerate Work Entries button, and the work entries are recreated. Once\nfinished, the pop-up window closes.\nAn employee has incorrect work entries generated from the Planning app because they were\nincorrectly assigned to two work stations simultaneously. This should be fixed in the Planning app, instead of the Payroll app.\nTo correct this issue, modify the employeeâs schedule in the Planning app, so they are\ncorrectly assigned to only one work station. Then, in the Payroll app, regenerate work\nentries for that employee, for that specific time period.\nThe Payroll app then pulls the new, corrected data form the Planning app, and recreates\nthe correct work entries for that employee. All conflicts for that employee are now resolved.\n\n## Work entry types\n\nWhen creating a work entry in the Payroll application, or when a\nnew time off type is created in the Time Off application, a work entry type needs to be\nselected.\nThe Payroll app comes with nine preconfigured work entry types, and depending on the installed payroll localization , additional country-specific work entries may be\nconfigured. If there is a need for additional work entry types, they can be created .\nTo view the current work entry types available, navigate to Payroll app â£\nConfiguration ⣠Work Entries ⣠Work Entry Types .\nEach work entry type has a code to aid in the creation of payslips, and to ensure all taxes and fees\nare correctly entered.\nDepending on the installed localization, other sections and fields may appear on the form.\n\n### New work entry type\n\nTo create a new work entry type, go to Payroll app ⣠Configuration ⣠Work\nEntries ⣠Work Entry Types and click New . Then, enter the information for the\nfollowing sections on the form.\n\n#### General information section\n\n- Work Entry Type Name : Enter a name for the work entry type. It should be short and\ndescriptive, such as Sick Time or Training .\nWork Entry Type Name : Enter a name for the work entry type. It should be short and\ndescriptive, such as Sick Time or Training .\n`SickTime`\n`Training`\n- Payroll Code : Enter a code for the work entry type. This code appears with the work\nentry type on timesheets and payslips. Since the code is used in conjunction with the Accounting application, it is advised to check with the accounting department for a code to\nuse.\nPayroll Code : Enter a code for the work entry type. This code appears with the work\nentry type on timesheets and payslips. Since the code is used in conjunction with the Accounting application, it is advised to check with the accounting department for a code to\nuse.\n- External Code : Enter a code to use for exporting data to a third-party payroll\nservice. Check with the third-party being used to determine the External Code to enter\nfor the new work entry type.\nExternal Code : Enter a code to use for exporting data to a third-party payroll\nservice. Check with the third-party being used to determine the External Code to enter\nfor the new work entry type.\n- Color : Select a color for the particular work entry type. This color appears on the\nwork entry dashboard to aid in identifying work entry types.\nColor : Select a color for the particular work entry type. This color appears on the\nwork entry dashboard to aid in identifying work entry types.\nThe only required fields for a work entry type is the Work Entry Type Name and\nthe Payroll Code .\n\n#### Display in payslip section\n\n- Rounding : Select how the time entered for the work entry should be rounded. The\nrounding method selected determines how the worked time on timesheet entries are calculated. The\noptions are: No Rounding : Work entries are not modified. Half Day : Work entries are rounded to the closest half day amount. Day : Work entries are rounded to the closest full day amount.\nRounding : Select how the time entered for the work entry should be rounded. The\nrounding method selected determines how the worked time on timesheet entries are calculated. The\noptions are:\n- No Rounding : Work entries are not modified.\nNo Rounding : Work entries are not modified.\n- Half Day : Work entries are rounded to the closest half day amount.\nHalf Day : Work entries are rounded to the closest half day amount.\n- Day : Work entries are rounded to the closest full day amount.\nDay : Work entries are rounded to the closest full day amount.\n- Rounding Type : If either Half Day or Day is selected in the Rounding field, this field appears. Select either Up or Down to determine how the rounding is handled.\nRounding Type : If either Half Day or Day is selected in the Rounding field, this field appears. Select either Up or Down to determine how the rounding is handled.\nThe working time is set to an 8-hour work day (a 40-hour work week). An employee enters a time of\n5.5 hours on a work entry.\nIf the Rounding is set to No Rounding , the work entry remains at 5.5\nhours.\nIf the Rounding is set to Half Day , and the Rounding Type is\nset to Down , the work entry is changed to 4 hours. If the Rounding Type is set to Up , the work entry is changed to 8 hours.\nIf the Rounding is set to Day , and the Rounding Type is set\nto Down , the work entry is changed to zero hours. If the Rounding Type is\nset to Up , the work entry is changed to 8 hours.\n\n#### Unpaid section\n\n- Unpaid in Structures Types : If the work entry type is for work that is not paid ,\nspecify which pay structure the unpaid work entry type applies to, using the drop-down menu. Some\nsituations where work is logged on a payslip, but no compensation is given, such as unpaid\ninternships, unpaid training, or volunteer work.\nUnpaid in Structures Types : If the work entry type is for work that is not paid ,\nspecify which pay structure the unpaid work entry type applies to, using the drop-down menu. Some\nsituations where work is logged on a payslip, but no compensation is given, such as unpaid\ninternships, unpaid training, or volunteer work.\n\n#### Time off options section\n\n- Time Off : Tick this box if the work entry type can be selected for a time off request\nor time off entry, in the Time Off application. If Time Off is active, a Time Off Type field appears. This field has a\ndrop-down menu to select the specific types of time off, such as Paid Time Off , Sick Time Off ,\nor Extra Hours . Select the Time Off Type associated with the work entry type.\nTime Off : Tick this box if the work entry type can be selected for a time off request\nor time off entry, in the Time Off application.\nIf Time Off is active, a Time Off Type field appears. This field has a\ndrop-down menu to select the specific types of time off, such as Paid Time Off , Sick Time Off ,\nor Extra Hours . Select the Time Off Type associated with the work entry type.\n`PaidTimeOff`\n`SickTimeOff`\n`ExtraHours`\n- Keep Time Off Right : Tick this checkbox if the work entry type associated with the\nselected time off type allows for rolling over unused time off to the following year.\nKeep Time Off Right : Tick this checkbox if the work entry type associated with the\nselected time off type allows for rolling over unused time off to the following year.\n\n#### Reporting section\n\n- Unforeseen Absence : Tick this box if the work entry type should be visible on the\nunforeseen absences report.\nUnforeseen Absence : Tick this box if the work entry type should be visible on the\nunforeseen absences report.", "headings": ["Work entry dashboard", "Add a new work entry", "Conflicts", "Time off conflicts", "Regenerate work entries", "Work entry types", "New work entry type"], "doc_id": "ec34532885813ee8"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/work_entry_analysis.html", "title": "Work entry analysis", "module": "payroll", "section": "Work entry analysis", "text": "# Work entry analysis\n\nThe default Work Entries Analysis report provides an overview of the validated work entries for\nthe current month. To view this report, navigate to Payroll app ⣠Reporting â£\nWork Entry Analysis .\nThe work entries appear in a pivot table, with the default filters of Current month:\n(Month)(Year) and Validated . The various types of Work entries populate the\nrows, while the Total values populate the only visible column.\nTo change the displayed information, click Total above the main\ncolumn, revealing a drop-down menu of available metrics. Click on one of the available groupings,\nand the data is further organized by that selected metric. The default options are Work\nEntry Type , Employee , and Department . If in a multi-company database, a Company option also appears.\n\n## Work entry analysis comparison\n\nIt is possible to compare the work entries from one time period to a previous time period. To view\nthis comparison, first navigate to Payroll app ⣠Reporting ⣠Work Entry\nAnalysis .\nNext, click the (down arrow) icon in the search bar, revealing a\ndrop-down menu. Under the Comparison section, click on either Current Month: Previous Period or Current Month: Previous Year .\nThe report updates and displays the data for the current time period, data for the selected previous\ntime period, as well as the Variation between the two, in a percentage.\nIf no work entries for a specific work entry type are logged\nfor the time period, it does not appear on the report. That does not mean the work entry\ntype does not exist, or is not configured.\nAdditionally, if the default Current month: (Month)(Year) filter is removed from the\nsearch bar, the Comparison column does not appear; there must be a time-frame\nselected to view the Comparison column.\n\n## Use case: overtime report comparison\n\nIt is possible to alter the Work Entries Analysis report to show a comparison of only overtime\nwork entries, grouped by employee, for a specific time period. To view this data, first navigate to\nthe default Work entry analysis report by going to Payroll app ⣠Reporting â£\nWork Entry Analysis .\nNext, click the (down arrow) icon in the search bar, revealing a\ndrop-down menu. Under the Filters column, click Add Custom\nFilter , and a Add Custom Filter pop-up window appears.\nUsing the drop-down menu, select Work Entry Type for the first field, leave the middle\nfield as-is (with is in populating the field), and select Overtime Hours for\nthe last field. Click Add , and all other work entry types disappear, and Overtime Hours appear in the sole row.\nTo compare overtime from the current month to the previous month, to see which month had more\novertime logged, click the (down arrow) icon again in the search\nbar. Under the Comparison section, click Current Month:\nPrevious Period . Click away from the drop-down menu to close it.\nNow, the report displays the Overtime Hours for the current month and the previous\nmonth, along with the Variation , in a percentage.\nTo view which employees received the most overtime, click Overtime\nHours , revealing a drop-down menu of options. Click Employee , and all employees with\novertime work entries for either the current or previous month appears.\nIn this example, it can be determined that Marc Demo worked the most overtime in August 2024 , whereas Beth Evans worked the most overtime hours in September 2024 . Additionally, Mitchell Admin had the largest variation\nchange, with a -100% change from August 2024 to September 2024 .", "headings": ["Work entry analysis comparison", "Use case: overtime report comparison"], "doc_id": "34b05d8afa447f1c"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/hr/payroll/working_schedules.html", "title": "Working schedules", "module": "payroll", "section": "Working schedules", "text": "# Working schedules\n\nIn Odoo, working schedules determine the hours employees are expected to work, according to their contract , and informs the Payroll app how to compute work entries, ultimately\naffecting salaries and payslips. It is necessary to ensure all working schedules for employees are\nconfigured in the database.\nIn Odooâs Payroll app, working schedules are referred to as working hours in salary\nstructures .\nTo view the currently configured working schedules, navigate to Payroll app â£\nConfiguration ⣠Working Schedules , and the Working Schedules dashboard loads.\nWorking schedules are company-specific. In a multi-company database, each company must identify\neach type of working schedule they use. If the database is created for only one company, the Company column is not available.\nAn Odoo database containing multiple companies that use a standard 40-hour work week needs to\nhave a separate working schedule entry for each company that uses the 40-hour standard work week.\nA database with five companies that all use a standard 40-hour work week needs to have five\nseparate 40-hour working schedules configured.\n\n## New working schedule\n\nTo create a new working schedule, navigate to Payroll app ⣠Configuration â£\nWorking Schedules , and click New . The Working Schedules form has two\nsections, a general information section and a Working Hours tab listing out all the\nindividual working hours by day and time.\nFill out the following information on the top-half of the form:\n- Name : Type in the name for the new default working schedule. This should be\ndescriptive and clear to understand, such as Standard 20 Hours/Week .\nName : Type in the name for the new default working schedule. This should be\ndescriptive and clear to understand, such as Standard 20 Hours/Week .\n`Standard20Hours/Week`\n- Flexible Hours : Tick this checkbox if employees can work different hours from the\nworking schedule.\nFlexible Hours : Tick this checkbox if employees can work different hours from the\nworking schedule.\n- Company Full Time : Enter the number of hours per week an employee would need to work\nto be considered a full-time employee. Typically, this is approximately 40 hours, and this number\naffects what types of benefits an employee can receive, based on their employment status\n(full-time vs part-time).\nCompany Full Time : Enter the number of hours per week an employee would need to work\nto be considered a full-time employee. Typically, this is approximately 40 hours, and this number\naffects what types of benefits an employee can receive, based on their employment status\n(full-time vs part-time).\n- Average Hour Per Day : The average hours per day field is auto-populated, based on the\nworking hours configured in the Working Hours tab. This entry affects resource\nplanning, since the average daily hours affect what resources can be used, and in what quantity,\nper workday.\nAverage Hour Per Day : The average hours per day field is auto-populated, based on the\nworking hours configured in the Working Hours tab. This entry affects resource\nplanning, since the average daily hours affect what resources can be used, and in what quantity,\nper workday.\n- Work Time Rate : This percentage is auto-generated based on the entry for the Company Full Time and the working hours configured in the Working Hours tab. This number should be between 0.00% and 100% , so if the percentage is above 100% , it is\nan indication that the working times and/or Company Full Time hours need adjustment.\nWork Time Rate : This percentage is auto-generated based on the entry for the Company Full Time and the working hours configured in the Working Hours tab. This number should be between 0.00% and 100% , so if the percentage is above 100% , it is\nan indication that the working times and/or Company Full Time hours need adjustment.\n`0.00%`\n`100%`\n`100%`\n- Company : Select the company that can use these new default working hours from the\ndrop-down menu. A blank field indicates it is available for all companies.\nCompany : Select the company that can use these new default working hours from the\ndrop-down menu. A blank field indicates it is available for all companies.\n- Timezone : Select the time zone to be used for the new default working hours from the\ndrop-down menu.\nTimezone : Select the time zone to be used for the new default working hours from the\ndrop-down menu.\nNext, configure the individual hours in the Working Hours tab. This tab lists the\nspecific working hours for each day.\nThe Working Hours are auto-populated for a default 40-hour work week, with each day\ndivided into three timed sections.\nEvery day has morning (8:00-12:00), lunch (12:00-13:00), and evening (13:00-17:00) hours configured.\nThe Work From and Work To times must be in a 24-hour format. For\nexample, 2:00 PM is entered as 14:00 .\n`2:00PM`\n`14:00`\nModify the Day of Week , Day Period , and Work Entry Type selections by clicking on the drop-down menus in each column and making the desired selection. The Work From and Work To columns are modified by typing in the time.\nKeep in mind, working hours are company-specific, and cannot be shared between companies.\nEach company needs to have its own working hours set.\nIf the working hours are not consistent each week, and the hours are on a bi-weekly schedule\ninstead, click the Switch to 2 week calendar button at the top of the new default\nworking hours form. This changes the Working Hours tab to display two weeks of\nworking times that can be adjusted.", "headings": ["New working schedule"], "doc_id": "372754c4641efd2c"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory.html", "title": "Inventory", "module": "inventory", "section": "Inventory", "text": "# Inventory\n\nOdoo Inventory is both an inventory application and a warehouse management system. The app allows\nusers to easily manage lead times, automate replenishment, configure advanced routes, and more.\n- Odoo Tutorials: Inventory\nOdoo Tutorials: Inventory", "headings": [], "doc_id": "2470a6839e8c858f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/product_management/configure.html", "title": "Configure product", "module": "inventory", "section": "Configure product", "text": "# Configure product\n\nA group of products in Odoo can be further defined using:\n- Units of measure (UoM) : a standard quantity for specifying product amounts\n(e.g., meters, yards, kilograms). Enables automatic conversion between measurement systems in\nOdoo, such as centimeters to feet. Ex: Purchasing fabric measured in meters but receiving it in yards from a vendor.\nUnits of measure (UoM) : a standard quantity for specifying product amounts\n(e.g., meters, yards, kilograms). Enables automatic conversion between measurement systems in\nOdoo, such as centimeters to feet.\n- Ex: Purchasing fabric measured in meters but receiving it in yards from a vendor.\nEx: Purchasing fabric measured in meters but receiving it in yards from a vendor.\n- Packages : A physical container used to group products together, regardless of\nwhether they are the same or different. Ex: A box containing assorted items for delivery, or a storage box of two hundred buttons on a\nshelf.\nPackages : A physical container used to group products together, regardless of\nwhether they are the same or different.\n- Ex: A box containing assorted items for delivery, or a storage box of two hundred buttons on a\nshelf.\nEx: A box containing assorted items for delivery, or a storage box of two hundred buttons on a\nshelf.\n- Packaging : groups the same products together to receive or sell them in\nspecified quantities. Ex: Cans of soda sold in packs of six, twelve, or twenty-four.\nPackaging : groups the same products together to receive or sell them in\nspecified quantities.\n- Ex: Cans of soda sold in packs of six, twelve, or twenty-four.\nEx: Cans of soda sold in packs of six, twelve, or twenty-four.\n\n## Comparison\n\nThis table provides a detailed comparison of units of measure, packages, and packaging to help\nbusinesses evaluate which best suits their requirements.\nStandardized measurement for product units (e.g., cm, lb, L)\nTracks the specific physical container and its contents\nGroups a fixed number of items together for easier management (e.g., packs of 6, 12 or 24)\nDefined per product; saved as one UoM in the database\nAllows mixed products\nConverts between vendor/customer UoMs and database UoM\nItems can be added or removed from the container\nQuantities are fixed (e.g., always packs of 6, 12 or 24)\nSimplest for unit conversions\nMore complex due to container-level inventory tracking\nSimpler; suitable for uniform product groupings\nTracks product quantities within the warehouse in the specific UoM defined in the product\nform\nTracks package location and contents within the warehouse\nTracks grouped quantities but not individual itemsâ locations\nSmooth barcode operations\nRequires scanning both the package and individual items for reception. (even if there are 30\nitems in a package). Can enable the Move Entire Packages feature to update the packageâs contained\nitemsâ locations, when moving the package\nScanning a packaging barcode automatically records all included units. (e.g. 1 pack = 12\nunits)\nScanning a productâs barcode identifies its typical storage location in the Odoo database\nBarcode identifies grouped quantity, not storage location\nUnique barcodes for individual packages (e.g. Pallet #12)\nBarcodes set at the packaging type level (e.g. for a pack of 6)\nCan be disposable or reusable, configured via the Package Use field\nWeight of the container itself is included in the Shipping Weight field of a package\n( Inventory app ⣠Products ⣠Packages )\nWeight of the container is defined in the Package Type settings\nLot/serial number tracking\nRequires manual adjustments to track UoMs via lots (See use case for details)\nApplies only to contained products\nApplies to both contained products and the container\nRoutes can define specific warehouse paths for a particular packaging type\n\n## Use cases\n\nAfter comparing the various features, consider how these businesses, with various inventory\nmanagement and logistics workflows, came to their decision.\n\n### Pallets of items using packaging\n\nA warehouse receives shipments of soap organized on physical pallets, each containing 96 bars. These\npallets are used for internal transfers and are also sold as standalone units. For logistical\npurposes, the palletâs weight must be included in the total shipping weight for certain deliveries.\nAdditionally, the pallet requires a barcode to facilitate tracking, and the number of individual\nbars of soap must be included in the stock count when the pallet is received.\nAfter evaluating various options, product packaging was the most suitable solution. Packaging\nenables assigning a barcode to a pallet, identifying it as a âpallet typeâ containing 96 soap bars.\nThis barcode streamlines operations by automatically registering the grouped quantity. Key\ndistinctions include:\n- Warehouse tracking limitations : Odoo tracks only the total quantity, not the number of\npackagings. For instance, if a pallet with 12 and 24 quantities is received, Odoo records 36\nquantities, not the pallet details.\nWarehouse tracking limitations : Odoo tracks only the total quantity, not the number of\npackagings. For instance, if a pallet with 12 and 24 quantities is received, Odoo records 36\nquantities, not the pallet details.\n- Packaging barcodes are type-specific, not unique : Barcodes represent packaging types (e.g.,\nâpallet of 96 soap barsâ) but do not uniquely identify individual pallets, such as Pallet #1 or\nPallet #2.\nPackaging barcodes are type-specific, not unique : Barcodes represent packaging types (e.g.,\nâpallet of 96 soap barsâ) but do not uniquely identify individual pallets, such as Pallet #1 or\nPallet #2.\n\n### Capture product information using barcode\n\nAn Odoo user expects the Barcode app to display the typical storage location of a product by\nscanning a barcode for a container.\nPackages was the most suitable. When the appropriate setting is enabled , scanning a package barcode displays its contents in\nthe Barcode app.\nPackages represent physical containers, enabling detailed tracking of the items they hold.\nScanning a package provides visibility into its contents and facilitates operations, like inventory\nmoves.\n\n### Track different units of measure in storage\n\nA fruit juice distributor tracks multiple UoMs for their operations:\n- Fruits are purchased in tons.\nFruits are purchased in tons.\n- Juice is produced and stored in kilograms.\nJuice is produced and stored in kilograms.\n- Small samples are stored in grams for recipe testing.\nSmall samples are stored in grams for recipe testing.\nUnit of Measure was most suitable. Odoo automatically converts tons to kilograms during\nreceipts. However, since Odoo tracks only one UoM per product in the database, the company uses\nlot numbers to differentiate UoMs :\n- LOT1: Grams (g)\n- LOT2: Kilograms (kg)\nManual inventory adjustments are required to convert between lots, such as subtracting 1 kg from\nLOT2 to add 1,000 g to LOT1. While functional, this workaround can be time-consuming and prone to\nerrors.", "headings": ["Comparison", "Use cases", "Pallets of items using packaging", "Capture product information using barcode", "Track different units of measure in storage"], "doc_id": "4774beebcdd3a56b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/product_management/configure/package.html", "title": "Packages", "module": "inventory", "section": "Packages", "text": "# Packages\n\nA package is a physical container holding one or more products. Packages can also be used to store\nitems in bulk.\nPackages are commonly used for the following purposes:\n- Grouping products to move them in bulk .\nGrouping products to move them in bulk .\n- Shipping to customers : configure package types\nto align with shipping carriersâ size and weight requirements, streamlining the packing process,\nand ensuring compliance with carrier shipping specifications.\nShipping to customers : configure package types\nto align with shipping carriersâ size and weight requirements, streamlining the packing process,\nand ensuring compliance with carrier shipping specifications.\n- Storing items in bulk.\nStoring items in bulk.\nPackage use is a field on the package form in Odoo that is only visible by enabling the Batch\nTransfers and Packages features ( Inventory app ⣠Configuration ⣠Settings ).\nBy default, the Package Use field on a packages form is set to Disposable Box . Change this field\nto Reusable Box only when configuring packages for cluster pickings .\nPackage type is an optional feature used for calculating shipping cost , based on real shipping weight. Create package types\nto include the weight of the package itself (e.g. boxes, pallets, other shipping containers) in\nshipping cost calculations.\nWhile packages are commonly used in the three-step delivery route , they can be used in any\nworkflow involving storable products.\n\n## Configuration\n\nTo use packages, first go to Inventory app ⣠Configuration ⣠Settings . Under\nthe Operations heading, activate the Packages feature. Then, click Save .\nWhen moving packages internally, the Move Entire Packages feature can be enabled on an operation\ntype to update a packageâs contained itemâs location upon updating the packageâs location.\nTo do that, go to Inventory app ⣠Configuration ⣠Operations Types and select\nthe desired operation this feature will apply to (may have to set it for multiple).\nOn the operation type page, in the Packages section, tick the Move Entire\nPackages checkbox.\n\n## Pack items\n\nProducts can be added to packages in any transfer by:\n- Clicking each Detailed Operations icon\non the product line.\nClicking each Detailed Operations icon\non the product line.\n- Using the Put in Pack button to place\neverything in the transfer into a package.\nUsing the Put in Pack button to place\neverything in the transfer into a package.\n\n### Detailed operations\n\nOn any warehouse transfer (e.g. receipt, delivery order), add a product to a package by clicking the â¦â£ (bulleted list) icon in the Operations tab.\nDoing so opens the Detailed Operations pop-up window for the Product .\nTo put the Product in a package, click Add a line , and assign the product to\na Destination Package . Select an existing package, or create a new one by typing the\nname of the new package, then select Create⦠.\nTwelve units of Acoustic Bloc Screen are placed in PACK0000001 .\n`AcousticBlocScreen`\n`PACK0000001`\nThen, specify the quantity of items to go into the package in the Done column. Repeat\nthe above steps to place the Product in different packages. Once finished, click Confirm to close the window.\nShip one order in multiple packages\n\n### Put in pack\n\nAlternatively, click the Put in Pack button on any warehouse transfer to create a\nnew package, and place all the items in the transfer in that newly-created package.\nThe Put in Pack button appears on receipts, delivery orders, and other transfer forms\nwith the Packages feature enabled in Inventory app ⣠Configuration â£\nSettings .\nIn batch transfer BATCH/00003 , the Put in Pack button was clicked to create a new\npackage, PACK0000002 , and assign all items to it in the Destination Package field.\n`BATCH/00003`\n`PACK0000002`\n\n## Package type\n\nCreate package types by navigating to Inventory app ⣠Configuration ⣠Package\nTypes , in order to set custom dimensions and weight limits. This feature is mainly used to\ncalculate package weights for shipping costs.\n- Shipping carriers\n- Delivery methods\nOn the Package Types list, clicking New opens a blank package type form. The\nfields of the form are as follows:\n- Package Type (required): define the package typeâs name.\nPackage Type (required): define the package typeâs name.\n- Size : define the dimensions of the package in millimeters (mm). The fields, from left\nto right, define the Length , Width , and Height .\nSize : define the dimensions of the package in millimeters (mm). The fields, from left\nto right, define the Length , Width , and Height .\n- Weight : weight of an empty package (e.g. an empty box, pallet).\nWeight : weight of an empty package (e.g. an empty box, pallet).\nOdoo calculates the packageâs weight by adding the weight of the empty package plus the weight of\nthe item(s), which can be found in the Weight field, in the Inventory tab, of each product form.\n- Max Weight : maximum shipping weight allowed in the package.\nMax Weight : maximum shipping weight allowed in the package.\n- Barcode : define a barcode to identify the package type from a scan.\nBarcode : define a barcode to identify the package type from a scan.\n- Company : specify a company to make the package type available only at the selected\ncompany. Leave the field blank if it is available at all companies.\nCompany : specify a company to make the package type available only at the selected\ncompany. Leave the field blank if it is available at all companies.\n- Carrier : specify the intended shipping carrier for this package type.\nCarrier : specify the intended shipping carrier for this package type.\n- Carrier Code : define a code that is linked to the package type.\nCarrier Code : define a code that is linked to the package type.\n\n## Cluster packages\n\nTo use cluster packages , first navigate to Inventory app ⣠Configuration â£\nSettings , and activate the Batch Transfers feature, located in the Operations section. Doing so makes the Package Use field become visible on a package\nform.\nAdd new packages by going to Inventory app ⣠Products ⣠Packages . Then, click New , or select an existing package. Doing so opens the package form, which contains the\nfollowing fields:\n- Package Reference (required): name of the package.\nPackage Reference (required): name of the package.\n- Package Type : used for configuring shipping boxes to ship to the customer . Note Package Type is unnecessary for configuring packages for cluster pickings.\nPackage Type : used for configuring shipping boxes to ship to the customer .\nPackage Type is unnecessary for configuring packages for cluster pickings.\n- Shipping Weight : used to input the weight of the package after measuring it on a\nscale.\nShipping Weight : used to input the weight of the package after measuring it on a\nscale.\n- Company : specify a company to make the package available only at the selected\ncompany. Leave the field blank if the package is available at all companies.\nCompany : specify a company to make the package available only at the selected\ncompany. Leave the field blank if the package is available at all companies.\n- Location : current location of the package.\nLocation : current location of the package.\n- Pack Date : the date the package was created.\nPack Date : the date the package was created.\n- Package Use : choose Reusable for packages used for moving products within\nthe warehouse; Disposable for packages used to ship products to customers.\nPackage Use : choose Reusable for packages used for moving products within\nthe warehouse; Disposable for packages used to ship products to customers.\nUsing cluster packages\n\n## View packages\n\nTo view all packages go to Inventory app ⣠Products ⣠Packages . By default,\npackages are shown in Kanban view, in their current storage location.\nDrag-and-drop packages to move them between internal locations.", "headings": ["Configuration", "Pack items", "Detailed operations", "Put in pack", "Package type", "Cluster packages", "View packages"], "doc_id": "0ab201f237fa2bb6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/product_management/configure/packaging.html", "title": "Packaging", "module": "inventory", "section": "Packaging", "text": "# Packaging\n\nIn Odoo Inventory , packaging refers to disposable containers holding multiple units of a\nspecific product.\nFor example, different packages for cans of soda, such as a 6-pack, a 12-pack, or a case of 36, must be configured on the individual product form. This is because packagings are product\nspecific, not generic.\nPackaging can be used in conjunction with Odoo Barcode .\nWhen receiving products from suppliers, scanning the packaging barcode automatically adds the\nnumber of units in the packaging to the internal count of the product.\n\n## Configuration\n\nTo use packagings, navigate to Inventory app ⣠Configuration ⣠Settings . Then,\nunder the Products heading, enable the Product Packagings feature, and click Save .\n\n## Create packaging\n\nPackagings can be created directly on the product form, or from the Product Packagings page.\n\n### From product form\n\nCreate packagings on a product form by going to Inventory app ⣠Products â£\nProducts , and select the desired product.\nUnder the Inventory tab, scroll down to the Packaging section, and click Add a line . In the table, fill out the following fields:\n- Packaging (required): name of packaging that appears on sales/purchase orders as a\npackaging option for the product.\nPackaging (required): name of packaging that appears on sales/purchase orders as a\npackaging option for the product.\n- Contained quantity (required): amount of product in the packaging.\nContained quantity (required): amount of product in the packaging.\n- Unit of Measure (required): measurement unit for quantifying the product.\nUnit of Measure (required): measurement unit for quantifying the product.\n- Sales : check this option for packagings intended for use on sales orders.\nSales : check this option for packagings intended for use on sales orders.\n- Purchase : check this option for packagings intended for use on purchase orders.\nPurchase : check this option for packagings intended for use on purchase orders.\nAccess additional fields in the Packaging table below by clicking the (additional options) icon\nto the far-right of the column titles in the Packaging section, and selecting the\ndesired options from the drop-down menu that appears.\n- Barcode : identifier for tracing packaging in stock moves or pickings, using the Barcode app . Leave blank if not in use.\nBarcode : identifier for tracing packaging in stock moves or pickings, using the Barcode app . Leave blank if not in use.\n- Company : indicates the packaging is only available at the selected company. Leave\nblank to make the packaging available across all companies.\nCompany : indicates the packaging is only available at the selected company. Leave\nblank to make the packaging available across all companies.\nTo create a packaging type for six units of the product, Grape Soda , begin by clicking Add a line . In the line, name the Packaging 6-pack , and set the Contained quantity to 6 . Repeat this process for additional packagings.\n`GrapeSoda`\n`6-pack`\n`6`\n\n### From product packagings page\n\nTo view all packagings that have been created, go to Inventory app ⣠Configuration\n⣠Product Packagings . Doing so reveals the Product Packagings page with a complete\nlist of all packagings that have been created for all products. Create new packagings by clicking New .\nTwo soda products, Grape Soda and Diet Coke , have three types of packagings configured. On\nthe Product Packagings page, each product can be sold as a 6-Pack that contains 6\nproducts, as a 12-Pack of 12 products, or as a Case of 32 products.\n`GrapeSoda`\n`DietCoke`\n`6-Pack`\n`12-Pack`\n`Case`\n\n### Partial reservation\n\nAfter completing the packaging setup ,\npackagings can be reserved in full or partial quantities for outgoing shipments. Partial packaging\nflexibility expedites order fulfillment by allowing the immediate shipment of available items, while\nawaiting the rest.\nTo configure packaging reservation methods, go to Inventory app ⣠Configuration\n⣠Product Categories . Then, click New , or select the desired product category.\nOn the product categoryâs form, in the Logistics section, Reserve Packagings can be set to Reserve Only Full Packagings or Reserve Partial Packagings .\nTo see the Reserve Packaging field, the Product Packaging feature must be enabled. To enable this feature, go to Inventory app â£\nConfiguration ⣠Settings , scroll to the Products section, tick the Product Packagings checkbox, and click Save .\nTo better evaluate the options based on business needs, consider the following example:\n- a product is sold in twelve units per packaging.\na product is sold in twelve units per packaging.\n- an order demands two packagings.\nan order demands two packagings.\n- there are only twenty-two units in stock.\nthere are only twenty-two units in stock.\nWhen Reserve Only Full Packagings is selected, only twelve units are reserved for the\norder.\nConversely, when Reserve Partial Packagings is selected, twenty-two units are\nreserved for the order.\n\n## Apply packagings\n\nWhen creating a sales order in the Sales app, specify the packagings that should be\nused for the product. The chosen packaging is displayed on the SO under the Packaging field.\n18 cans of the product, Grape Soda , is packed using three 6-pack packagings.\n`GrapeSoda`\n\n## Routes for packaging\n\nWhen receiving packagings, by default, they follow the warehouseâs configured reception route . To optionally set up a packaging-specific route,\ngo to Inventory app ⣠Configuration ⣠Routes .\nThe Product Packagings , Storage Locations , and Multi-Step Routes features (found by going\nto Inventory app ⣠Configuration ⣠Settings ) must be activated, and\nsaved.\nRoutes and push/pull rules\n\n### Create route\n\nOn the Routes page, click New , or select a route that is not for a\nwarehouse. Next, in the Applicable on section, tick the Packagings checkbox.\nRoute with âPackagingsâ selected, with âProductsâ and âWarehousesâ not selected.\n\n### Apply route on packaging\n\nThen, to apply the route, go to Inventory app ⣠Products ⣠Products , and select\nthe product that uses packaging.\nIn the product form, switch to the Inventory tab. In the Packaging section\nthat contains configured packagings , click the (additional options) icon. Tick the Routes checkbox to make the column visible in the Packaging table.\nIn the Routes field, select the packaging-specific route. Repeat these steps for all\npackaging intended to use the route.", "headings": ["Configuration", "Create packaging", "From product form", "From product packagings page", "Partial reservation", "Apply packagings", "Routes for packaging", "Create route", "Apply route on packaging"], "doc_id": "1b826bfe47377d1b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/product_management/configure/type.html", "title": "Product type", "module": "inventory", "section": "Product type", "text": "# Product type\n\nIn Odoo, goods and services are both set up as products . When setting up a new product, there are\nseveral fields that should be carefully chosen, as they determine how to invoice and track a\nbusinessâ goods or services.\nTo configure an existing product, go to Inventory app ⣠Products ⣠Products ,\nand select the desired product from the list. Alternatively, from the Products menu,\nclick New to create a new product.\nOdoo Tutorials: Product Type\n\n## For sale vs. purchase\n\nGoods and services can be designated as those that can be bought, sold, or both. On the product\nform, tick the Sales checkbox if a product can be sold to a customer (e.g. finished\ngoods). Tick Purchase if the product can be purchased (e.g. raw materials).\nIf a resale clothing shop buys discounted denim jackets and sells them at a higher cost to the\nend consumer, the Jacket product form might have both the Sales and Purchase checkbox ticked.\n`Jacket`\nOn the other hand, say the store occasionally sews new jackets using denim and thread as\nraw materials. In the Denim and Thread product forms, only Purchase should be\nticked, whereas the Handmade Jacket product form would only tick Sales .\n`Denim`\n`Thread`\n`HandmadeJacket`\n\n## Goods vs. services\n\nWhen configuring a product, a Product Type needs to be selected on the General Information tab of a product form. Each product type impacts different\noperations in other Odoo applications, such as Sales and Purchase , and should be chosen\ncarefully.\n- Goods : a tangible, material object (e.g. anything from a hamburger to a house)\nGoods : a tangible, material object (e.g. anything from a hamburger to a house)\n- Service : an intangible, immaterial offering (e.g., a repair, a haircut, call center\nassistance)\nService : an intangible, immaterial offering (e.g., a repair, a haircut, call center\nassistance)\n- Combo : any mix of goods and services (e.g. a new car ( good ) with an oil change\nincluded ( service ))\nCombo : any mix of goods and services (e.g. a new car ( good ) with an oil change\nincluded ( service ))\nDue to their immaterial nature, services are not trackable in Odooâs Inventory application.\n\n## Configure goods\n\nSelecting Goods as the Product Type automatically triggers the appearance of\na few fields and tabs in the product form:\n- Inventory tab: From here, purchasing and manufacturing routes and product logistics, such as product weight and customer lead time, can be specified.\nInventory tab: From here, purchasing and manufacturing routes and product logistics, such as product weight and customer lead time, can be specified.\n- Invoicing Policy field: This field\ndetermines at what point in the sales process a customer is invoiced. Important The Invoicing Policy field only appears if the Sales app is installed.\nInvoicing Policy field: This field\ndetermines at what point in the sales process a customer is invoiced.\nThe Invoicing Policy field only appears if the Sales app is installed.\n- Track Inventory field: This checkbox\ndetermines whether Odoo tracks inventory for this product.\nTrack Inventory field: This checkbox\ndetermines whether Odoo tracks inventory for this product.\n- Smart buttons: Some smart buttons appear above the form when Goods is selected;\nothers show upon selecting a Track Inventory method. For example, On Hand and Forecasted display when Track Inventory is\nticked. In general, most smart buttons on a product form link to inventory operations .\nSmart buttons: Some smart buttons appear above the form when Goods is selected;\nothers show upon selecting a Track Inventory method. For example, On Hand and Forecasted display when Track Inventory is\nticked. In general, most smart buttons on a product form link to inventory operations .\n\n### Invoicing policy\n\nThe Invoicing policy field only shows on the product form if a product is for sale (in\nother words, if Sales is ticked, and the Sales app is installed).\nWhen configuring a product for sale, it is necessary to choose an invoicing policy . When an invoicing\npolicy of Ordered quantities is selected, customers are invoiced once the sales order\nis confirmed. When Delivered quantities is selected, customers are invoiced once the\ndelivery is completed.\n\n### Tracked vs. untracked goods\n\nThe Track Inventory field on the product form determines a lot of Odooâs Inventory operations.\nTracked products are those for which stock and inventory are maintained. Examples include finished\ngoods and, often, the raw materials or components needed to make them.\nWhen Track Inventory is ticked, a drop-down menu appears, offering for inventory to be\ntracked one of three ways: By Unique Serial Number , By Lots , or By Quantity .\nUntracked products (sometimes referred to as non-inventory products) are typically consumed in a\nshort period of time, meaning that stock/inventory does not need to be maintained. Non-inventory\nproducts are often essential, but exact counts are unnecessary. Examples include: office supplies,\npackaging materials, or items used in production that do not need to be individually tracked.\nTick the Track Inventory checkbox if it is necessary to track a productâs stock at\nvarious locations, for inventory valuation, with lots and/or serial numbers, or when using\nreordering rules.\nTracking storable products using lot and serial numbers\n\n### Inventory operations by product type\n\nWhether a good is tracked or untracked affects common Inventory operations, like transfers and reordering rules.\nThe table below summarizes which operations (and smart buttons) are enabled for tracked vs.\nuntracked goods. Click highlighted chart items to navigate to detailed sections and related\ndocuments.\nShow on-hand quantity\nShow forecasted quantity\nCan be included in a purchase order\nCan be manufactured, subcontracted, or used in another goodâs BoM\nUse inventory adjustments\nUse inventory valuation\nUse lot/serial number tracking\nCan be placed in a kit\nCan be placed in a package\nAppears on inventory reports\n\n#### Inventory\n\nA tracked productâs on-hand and forecasted quantities, based on incoming and outgoing orders, are\nreflected on the product form with two smart buttons:\n- On-Hand Quantity : This represents the number of units currently\navailable in inventory. Click the button to view or add stock levels for a tracked product.\nOn-Hand Quantity : This represents the number of units currently\navailable in inventory. Click the button to view or add stock levels for a tracked product.\n- Forecasted : This represents the number of units expected to be\navailable in inventory after all orders are taken into account. In other words, \\(\\text{forecasted} = \\text{on hand quantity} + \\text{incoming shipments} - \\text{outgoing shipments}\\) .\nClick the button to view the Forecasted Report .\nForecasted : This represents the number of units expected to be\navailable in inventory after all orders are taken into account. In other words, \\(\\text{forecasted} = \\text{on hand quantity} + \\text{incoming shipments} - \\text{outgoing shipments}\\) .\nClick the button to view the Forecasted Report .\nOn the other hand, untracked products are regarded as always available. Consequently, On-Hand Quantity is not tracked, and there is no Forecasted quantity\navailable.\nBoth tracked and untracked goods can optimize storage using:\n- Putaway Rules :\nThis represents putaway rules that apply to a good, such as where to store it when a new shipment\narrives.\nPutaway Rules :\nThis represents putaway rules that apply to a good, such as where to store it when a new shipment\narrives.\n- Storage Capacities :\nThis represents any storage capacity limitations specified for this good. For example, a warehouse\nmay require that only ten (or less) sofas be stored there at any given time, due to their large\nsize.\nStorage Capacities :\nThis represents any storage capacity limitations specified for this good. For example, a warehouse\nmay require that only ten (or less) sofas be stored there at any given time, due to their large\nsize.\nOnly tracked products can trigger reordering rules to generate\npurchase orders. Untracked goods cannot be managed using reordering rules.\nReordering rules can be configured directly on the product form via the (refresh) icon.\nIf reordering rules already exist on a product, Odoo re-labels this button to Min / Max , to show the minimum and maximum number of units that must be in stock.\nBoth tracked and untracked products can be included in a request for quotation in the Purchase app. However, when receiving untracked products, their on-hand quantity does not change upon\nvalidating the receipt ( WH/IN ).\n`WH/IN`\nThe Replenish smart button allows all goods to be restocked directly from the product\nform, according to the Preferred Route .\nReplenishment Odoo Tutorials: Replenishment Methods for Manufacturing\n\n#### Manufacturing\n\nBoth tracked and untracked products can be manufactured, subcontracted , or included in another productâs bill of materials (BoM) .\nOn the product form for a tracked or untracked good, there are several smart buttons that may\nappear for manufacturing operations:\n- Bill of Materials : This shows the BoMs used to make this product.\nBill of Materials : This shows the BoMs used to make this product.\n- Used In : This shows other goods that include this product in their\nBoM.\nUsed In : This shows other goods that include this product in their\nBoM.\n\n#### Transfer goods\n\nTransfers are warehouse operations that involve the movement of goods. Examples of transfers\ninclude deliveries and receipts , as well as internal transfers between\nwarehouses.\nWhen creating a transfer for tracked products in the Inventory app, transfers modify the on-hand\nquantity at each location. For example, transferring five units from the internal location WH/Stock to WH/Packing Zone decreases the recorded quantity at WH/Stock and increases it at WH/Packing Zone .\n`WH/Stock`\n`WH/PackingZone`\n`WH/Stock`\n`WH/PackingZone`\nFor untracked products, transfers can be created, but exact quantities at each storage location are\nnot tracked.\n\n#### Packages\n\nBoth tracked and untracked (non-inventory), products can be placed in packages .\nHowever, for non-inventory products, the quantity is not tracked, and the product is not listed in\nthe packageâs Contents (which can be accessed by going to Inventory app\n⣠Products ⣠Packages , and selecting the desired package).\nAn untracked product was placed in the package, but the Content section does not list it.\nAdditionally, if the Move Entire Packages feature is enabled, moving a package updates the\nlocation of the contained tracked products but not the contained untracked products. To enable this\nfeature, navigate to Inventory app ⣠Configuration ⣠Operations Types , select\nany operation, and tick the Move Entire Packages checkbox.\n\n#### Inventory reports\n\nOnly tracked products appear on the following reports.\nThese reports are only available to users with administrator access .\n- Stock report : This report provides a\ncomprehensive list of all on-hand, unreserved, incoming, and outgoing tracked inventory. To access\nthe report, go to Inventory app ⣠Reporting ⣠Stock .\nStock report : This report provides a\ncomprehensive list of all on-hand, unreserved, incoming, and outgoing tracked inventory. To access\nthe report, go to Inventory app ⣠Reporting ⣠Stock .\n- Location report : This report shows a\nbreakdown of which tracked products are held at each location (internal, external, or virtual).\nThe report is only available with the Storage Location feature activated\n( Inventory app ⣠Configuration ⣠Settings ). To access it, go to Inventory app ⣠Reporting ⣠Locations .\nLocation report : This report shows a\nbreakdown of which tracked products are held at each location (internal, external, or virtual).\nThe report is only available with the Storage Location feature activated\n( Inventory app ⣠Configuration ⣠Settings ). To access it, go to Inventory app ⣠Reporting ⣠Locations .\n- Moves History report : This report\nsummarizes where and when this good has moved in/out of stock. To access the report, go to Inventory app ⣠Reporting ⣠Moves History . Alternatively, click the In / Out smart button on a product form to filter the report\non that productâs specific moves history.\nMoves History report : This report\nsummarizes where and when this good has moved in/out of stock. To access the report, go to Inventory app ⣠Reporting ⣠Moves History . Alternatively, click the In / Out smart button on a product form to filter the report\non that productâs specific moves history.\n- Moves Analysis : This report provides a pivot table view of inventory transfers by\noperation type.\nMoves Analysis : This report provides a pivot table view of inventory transfers by\noperation type.\n- Stock Valuation report : A detailed record\nof the monetary value of all tracked inventory.\nStock Valuation report : A detailed record\nof the monetary value of all tracked inventory.", "headings": ["For sale vs. purchase", "Goods vs. services", "Configure goods", "Invoicing policy", "Tracked vs. untracked goods", "Inventory operations by product type"], "doc_id": "8ad819c76c834338"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/product_management/configure/uom.html", "title": "Units of measure", "module": "inventory", "section": "Units of measure", "text": "# Units of measure\n\nIn some cases, handling products in different units of measure is necessary. For example, a business\ncan buy products from a country that uses the metric system, and then sell those products in a\ncountry that uses the imperial system. In that case, the business needs to convert the units.\nAnother case for unit conversion is when a business buys products in a big pack from a supplier, and\nthen sells those products in individual units.\nOdoo can be set up to use different units of measure (UoM) for one product.\n\n## Configuration\n\nTo use different units of measure in Odoo, first go to Inventory app â£\nConfiguration ⣠Settings , and under the Products section, activate the Units of Measure setting. Then, click Save .\n\n## Units of measure categories\n\nAfter enabling the Units of Measure setting, view the default units of measure categories in Inventory app ⣠Configuration ⣠UoM Categories . The category is important for\nunit conversion; Odoo can convert a productâs units from one unit to another only if both units\nbelong to the same category.\nEach units of measure category has a reference unit. The reference unit is highlighted in blue in\nthe Uom column of the Units of Measure Categories page. Odoo uses the\nreference unit as a base for any new units.\nTo create a new unit, first select the correct category from the Units of Measure\nCategories page. For example, to sell a product in a box of six units, click the Unit category line. Then, on the category page that appears, click Add a line in the Units of Measure tab. Then, in the Unit of Measure field, title the new\nunit, such as Box of 6 , then in the Type field, select the appropriate size reference,\nsuch as Bigger than the reference Unit of Measure .\n`Boxof6`\nIf applicable, enter a UNSPSC Category , which is a globally recognized code managed by\nGS1 , that must be purchased in order to use.\nIn the Ratio field, enter how many individual units are in the new UoM , such as 6.00000 when using the example of the 6-Pack (since a box of six is six times bigger than the\nreference unit, 1.00000 ).\n`6.00000`\n`6-Pack`\n`1.00000`\n\n## Specify a productâs units of measure\n\nTo set units of measure on a product, first go to Inventory app ⣠Products â£\nProducts and select a product to open its product form page.\nIn the General Information tab, edit the Unit of Measure field to specify\nthe unit of measure that the product is sold in. The specified unit is also the unit used to keep\ntrack of the productâs inventory and internal transfers.\nEdit the Purchase UoM field to specify the unit of measure that the product is purchased\nin.\n\n## Unit conversion\n\nOdoo automatically converts unit measurements when products have different UoMs and purchase UoMs .\nThis occurs in various scenarios, including:\n- Vendor orders : purchase UoM on purchase\norders (POs) converts to UoM on internal warehouse documents\nVendor orders : purchase UoM on purchase\norders (POs) converts to UoM on internal warehouse documents\n- Automatic replenishment : generates POs when\nthe stock levels of a product (tracked in UoM ) dips below a certain level. But, the POs are\ncreated using the purchase UoM\nAutomatic replenishment : generates POs when\nthe stock levels of a product (tracked in UoM ) dips below a certain level. But, the POs are\ncreated using the purchase UoM\n- Sell products : if a different UoM is used\non the sales order (SO), the quantity is converted to the warehouseâs preferred UoM on the\ndelivery order\nSell products : if a different UoM is used\non the sales order (SO), the quantity is converted to the warehouseâs preferred UoM on the\ndelivery order\n\n### Buy products in the purchase UoM\n\nWhen creating a new request for quotation (RFQ) in the Purchase app, Odoo automatically uses the\nproductâs specified purchase unit of measure. If needed, manually edit the UoM value on\nthe RFQ .\nAfter the RFQ is confirmed into a PO , click the Receipt smart button at the top of\nthe PO .\nOdoo automatically converts the purchase unit of measure into the productâs sales/inventory unit of\nmeasure, so the Demand column of the delivery receipt shows the converted quantity.\nWhen the productâs purchase UoM is Box of 6 , and its sales/inventory unit of\nmeasure is Units , the PO shows the quantity in boxes of six, and the receipt (and other\ninternal warehouse documents) shows the quantity in units.\n`Boxof6`\n`Units`\nAn order of three quantities is placed using the purchase âUoMâ: Box of 6 .\n`Boxof6`\nUpon warehouse receipt, the recorded quantities are in the internal âUnit of Measureâ: Units .\n`Units`\n\n### Replenishment\n\nA request for quotation for a product can also be generated directly from the product form using\nthe Replenish button.\nAfter clicking Replenish , a replenish assistant box pops up. The purchase unit of\nmeasure can be manually edited in the Quantity field, if needed. Then, click Confirm to create the RFQ .\nA PO can only be automatically generated if at least one vendor is listed in the\nproduct formâs Purchase tab.\nNavigate to the created PO by clicking the Forecasted smart button on the product\nform. Scroll down to the Forecasted Inventory section, and in the Requests\nfor quotation line, click the RFQ reference number to open the draft RFQ . If necessary, the\npurchase UoM can be edited directly on the PO .\n\n### Sell in a different UoM\n\nWhen creating a new quotation in the Sales app, Odoo automatically uses the productâs specified\nunit of measure. If needed, the UoM can be manually edited on the quotation.\nAfter the quotation is sent to the customer, and confirmed into a sales order (SO), click the Delivery smart button at the top of the SO . Odoo automatically converts the unit of\nmeasure into the productâs inventory unit of measure, so the Demand column of the\ndelivery shows the converted quantity.\nFor example, if the productâs UoM on the SO was changed to Box of 6 , but its inventory unit of\nmeasure is Units , the SO shows the quantity in boxes of six, and the delivery shows the quantity\nin units.\n`Boxof6`\n`Units`", "headings": ["Configuration", "Units of measure categories", "Specify a productâs units of measure", "Unit conversion", "Buy products in the purchase UoM", "Replenishment", "Sell in a different UoM"], "doc_id": "8515b118d04cb42a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config.html", "title": "Automatic inventory valuation", "module": "inventory", "section": "Automatic inventory valuation", "text": "# Automatic inventory valuation\n\nAll of a companyâs stock on-hand contributes to the valuation of its inventory. That value should\nbe reflected in the companyâs accounting records to accurately show the value of the company and\nall of its assets.\nBy default, Odoo uses a periodic inventory valuation (also known as manual inventory valuation).\nThis method implies that the accounting team manually posts journal entries, based on the physical\ninventory of the company, and warehouse employees take the time to count the stock. In Odoo, each\nproduct category reflects this, with the Costing Method set to Standard\nPrice , and the Inventory Valuation (not visible by default) set to Manual .\nAlternatively, perpetual (automatic) inventory valuation creates real-time journal entries in the Accounting app whenever stock enters or leaves the companyâs warehouse.\nThis document is focused on the proper setup of automatic inventory valuation, which is an\nintegrated valuation method that ensures journal entries in the Accounting app match stock\nvaluation updates in the Inventory app. For an introduction of inventory valuation in Odoo, refer\nto the Using inventory valuation documentation.\nSwitching from manual to automatic inventory valuation may cause discrepancies between stock\nvaluation and accounting journals.\nOne successful strategy for switching to automated valuation:\n- Clear existing stock (possibly with an inventory adjustment )\nClear existing stock (possibly with an inventory adjustment )\n- Change the inventory valuation method to Automatic\nChange the inventory valuation method to Automatic\n- Return the existing stock, with the original monetary value (using an inventory adjustment)\nReturn the existing stock, with the original monetary value (using an inventory adjustment)\nOnce the existing stock is recovered, the Odoo Accounting app automatically generates the\njournal entries to corresponding stock valuation records.\n\n## Configuration\n\nTo properly set up automatic inventory valuation, follow these steps in Odoo:\n- Install Accounting app and enable specific settings\nInstall Accounting app and enable specific settings\n- Set Automatic inventory valuation on product categories\nSet Automatic inventory valuation on product categories\n- Set costing method\n\n### Accounting setup\n\nTo use automatic inventory valuation, install the Accounting app. Next, go to Accounting app ⣠Configuration ⣠Settings , and in the Stock\nValuation section, tick the Automatic Accounting checkbox. Then, click Save .\nEnabling Automatic Accounting shows the previously invisible Inventory Valuation field on a product category.\nRefer to the Expense and Stock\ninput/output sections of documentation for details on\nconfiguring the accounting journals shown.\n\n### Product category setup\n\nAfter enabling inventory valuation , the next\nstep is to set the product category to use automatic inventory valuation.\nGo to Inventory app ⣠Configuration ⣠Product Categories , and select the\ndesired product category. In the Inventory Valuation section, set the Inventory Valuation field to Automated . Repeat this step for every product\ncategory intending to use automatic inventory valuation.\nAfter enabling automatic accounting, each new stock move layer (SVL), that is created during\ninventory valuation updates, generates a journal entry.\n\n## Costing method\n\nAfter enabling inventory valuation , the costing method for calculating and recording inventory costs is defined on the product category in\nOdoo.\nGo to Inventory app ⣠Configuration ⣠Product Categories and select the desired\nproduct category. In the Inventory Valuation section, select the appropriate Costing Method :\nThe default costing method in Odoo. The cost of the product is manually defined on the product\nform, and this cost is used to compute the valuation. Even if the purchase price on a purchase\norder differs, the valuation is the cost defined on the product form.\nReceive 8 products for $10/unit\nReceive 4 products for $16/unit\nReceive 2 products for $9/unit\nCalculates the valuation of a product based on the average cost of that product, divided by\nthe total number of available stock on-hand. With this costing method, inventory valuation is dynamic , and constantly adjusts based on the purchase price of products.\nReceive 8 products for $10/unit\nReceive 4 products for $16/unit\nReceive 2 products for $6/unit\nHow are unit cost and inventory value calculated at each step?\n- When receiving four products for $16 each: Inventory value is calculated by adding the previous inventory value with the incoming\nvalue: \\($80 + (4 * $16) = $144\\) . Unit cost is calculated by dividing the inventory value by the quantity on-hand: \\($144 / 12 = $12\\) .\nWhen receiving four products for $16 each:\n- Inventory value is calculated by adding the previous inventory value with the incoming\nvalue: \\($80 + (4 * $16) = $144\\) .\nInventory value is calculated by adding the previous inventory value with the incoming\nvalue: \\($80 + (4 * $16) = $144\\) .\n- Unit cost is calculated by dividing the inventory value by the quantity on-hand: \\($144 / 12 = $12\\) .\nUnit cost is calculated by dividing the inventory value by the quantity on-hand: \\($144 / 12 = $12\\) .\n- When delivering ten products, the average unit cost is used to calculate the inventory\nvalue, regardless of the purchase price of the product. Therefore, inventory value is \\($144 + (-10 * $12) = $24\\) .\nWhen delivering ten products, the average unit cost is used to calculate the inventory\nvalue, regardless of the purchase price of the product. Therefore, inventory value is \\($144 + (-10 * $12) = $24\\) .\n- Receive two products for $6 each: Inventory value: \\($24 + (2 * $6) = $36\\) Unit cost: \\($36 / 4 = $9\\)\nReceive two products for $6 each:\n- Inventory value: \\($24 + (2 * $6) = $36\\)\nInventory value: \\($24 + (2 * $6) = $36\\)\n- Unit cost: \\($36 / 4 = $9\\)\nUnit cost: \\($36 / 4 = $9\\)\nWhen choosing Average Cost (AVCO) as the Costing Method , changing\nthe numerical value in the Cost field for products in the respective product category\ncreates a new record in the Inventory Valuation report to adjust the value of the\nproduct. The Cost amount is then automatically updated, based on the average purchase\nprice of both the inventory on-hand and the costs accumulated from validated purchase\norders.\nTracks the costs of incoming and outgoing items in real-time, and uses the real price of the\nproducts to change the valuation. The oldest purchase price is used as the cost for the next\ngood sold, until an entire lot of that product is sold. When the next inventory lot moves up\nin the queue, an updated product cost is used based on the valuation of that specific lot.\nThis method is arguably the most accurate inventory valuation method for a variety of reasons,\nbut it is highly sensitive to input data and human error.\nReceive 8 products for $10/unit\nReceive 4 products for $16/unit\nReceive 2 products for $6/unit\nHow are unit cost and inventory value calculated at each step?\n- When receiving four products for $16 each: Inventory value is calculated by adding the previous inventory value to the incoming\nvalue: \\($80 + (4 * $16) = $144\\) . Unit cost is calculated by dividing the inventory value by the quantity on-hand: \\($144 / 12 = $12\\) . When delivering ten products, eight units were purchased for $10, and two units were\npurchased for $16. First, the incoming value is calculated by multiplying the on-hand quantity by the\npurchased price: \\((-8 * $10) + (-2 * $16) = -112\\) . The inventory value is calculated by subtracting the incoming value from the previous\ninventory value: \\($144 - $112 = $32\\) . Unit cost is calculated by dividing the inventory value by the remaining quantity: \\($32 / 2 = $16\\) .\nWhen receiving four products for $16 each:\n- Inventory value is calculated by adding the previous inventory value to the incoming\nvalue: \\($80 + (4 * $16) = $144\\) .\nInventory value is calculated by adding the previous inventory value to the incoming\nvalue: \\($80 + (4 * $16) = $144\\) .\n- Unit cost is calculated by dividing the inventory value by the quantity on-hand: \\($144 / 12 = $12\\) .\nUnit cost is calculated by dividing the inventory value by the quantity on-hand: \\($144 / 12 = $12\\) .\n- When delivering ten products, eight units were purchased for $10, and two units were\npurchased for $16.\nWhen delivering ten products, eight units were purchased for $10, and two units were\npurchased for $16.\n- First, the incoming value is calculated by multiplying the on-hand quantity by the\npurchased price: \\((-8 * $10) + (-2 * $16) = -112\\) .\nFirst, the incoming value is calculated by multiplying the on-hand quantity by the\npurchased price: \\((-8 * $10) + (-2 * $16) = -112\\) .\n- The inventory value is calculated by subtracting the incoming value from the previous\ninventory value: \\($144 - $112 = $32\\) .\nThe inventory value is calculated by subtracting the incoming value from the previous\ninventory value: \\($144 - $112 = $32\\) .\n- Unit cost is calculated by dividing the inventory value by the remaining quantity: \\($32 / 2 = $16\\) .\nUnit cost is calculated by dividing the inventory value by the remaining quantity: \\($32 / 2 = $16\\) .\n- When receiving two products for $6, inventory value is \\($32 + $12 = $44\\) . Unit cost is \\($44 / 4 = $11\\) .\nWhen receiving two products for $6, inventory value is \\($32 + $12 = $44\\) . Unit cost is \\($44 / 4 = $11\\) .\nChanging the costing method greatly impacts inventory valuation. It is highly recommended to\nconsult an accountant first before making any adjustments here.\nUsing inventory valuation\nWhen the Costing Method is changed, products already in stock that were using the Standard costing method do not change value; rather, the existing units keep their\nvalue, and any product moves from then on affect the average cost, and the cost of the product will\nchange. If the value in the Cost field on a product form is changed manually, Odoo\ngenerates a corresponding record in the Inventory Valuation report.\nIt is possible to use different valuation settings for different product categories.\n\n## Types of accounting\n\nWith automated inventory valuation set up, the generated journal entries depend on the chosen\naccounting mode: Continental or Anglo-Saxon .\nVerify the accounting mode by activating the Developer mode (debug mode) , and navigating to Accounting app ⣠Configuration ⣠Settings .\nThen, in the Search⦠bar, look for Anglo-Saxon Accounting , to see if the feature\nis enabled. If it is not enabled, Continental accounting mode is in use.\n`Anglo-SaxonAccounting`\nIn Anglo-Saxon accounting, the costs of goods sold (COGS) are reported when products are sold or\ndelivered. This means the cost of a good is only recorded as an expense when a customer is invoiced\nfor a product.\nSo, for manual valuation method, set the Expense Account to Stock Valuation for the current\nasset type; for automatic valuation method, set the Expense Account to an Expenses or a Cost of Revenue type (e.g. Cost of Production , Cost of Goods Sold , etc.).\nIn Continental accounting, the cost of a good is reported as soon as a product is received into\nstock. Because of this, the Expense Account can be set to either Expenses or a Cost of\nRevenue type, however, it is more commonly set to an Expenses account.\nRefer to the Expense and Stock\ninput/output sections for details on configuring each\naccount type.\n\n### Expense account\n\nTo configure the expense account , which is used in both manual and automatic inventory valuation,\ngo to the Account Properties section of the intended product category\n( Inventory app ⣠Configuration ⣠Product Categories ). Then, choose an existing\naccount from the Expense Account drop-down menu.\nTo ensure the chosen account is the correct Type, click the (right arrow) icon to the\nright of the account. Then, set the account type based on the information below.\nIn Anglo-Saxon accounting for automated inventory valuation, set the Expense\nAccount to the Expenses account. Then, click the (right arrow) icon to the right of\nthe account.\n`Expenses`\nIn the pop-up window, choose Expenses or Cost of Revenue from\nthe Type drop-down menu.\nTo configure the Expense Account , choose Stock Valuation from\nthe fieldâs drop-down menu. Verify the accountâs type by clicking the (right arrow) icon, and then ensure the Type is Current Assets .\nSet the Expense Account to the Expenses or Cost of\nRevenue account type.\nSet the Expense Account to the Expenses or Cost of\nRevenue account type.\n\n#### Stock input/output (automated only)\n\nTo configure the Stock Input Account and Stock Output Account , go to Inventory app ⣠Configuration ⣠Product Categories and select the desired\nproduct category.\nIn the Inventory Valuation field, select Automated . Doing so makes the Account Stock Properties section appear. These accounts are defined as follows:\n- Stock Valuation Account : when automated inventory valuation is enabled on a product,\nthis account will hold the current value of the products.\nStock Valuation Account : when automated inventory valuation is enabled on a product,\nthis account will hold the current value of the products.\n- Stock Journal : accounting journal where entries are automatically posted when a\nproductâs inventory valuation changes.\nStock Journal : accounting journal where entries are automatically posted when a\nproductâs inventory valuation changes.\n- Stock Input Account : counterpart journal items for all incoming stock moves will be\nposted in this account, unless there is a specific valuation account set on the source location.\nThis is the default value for all products in a given category, and can also be set directly on\neach product.\nStock Input Account : counterpart journal items for all incoming stock moves will be\nposted in this account, unless there is a specific valuation account set on the source location.\nThis is the default value for all products in a given category, and can also be set directly on\neach product.\n- Stock Output Account : counterpart journal items for all outgoing stock moves will be\nposted in this account, unless there is a specific valuation account set on the destination\nlocation. This is the default value for all products in a given category, and can also be set\ndirectly on each product.\nStock Output Account : counterpart journal items for all outgoing stock moves will be\nposted in this account, unless there is a specific valuation account set on the destination\nlocation. This is the default value for all products in a given category, and can also be set\ndirectly on each product.\nIn Anglo-Saxon accounting, the Stock Input Account and Stock Output\nAccount are set to different Current Assets accounts. This way, delivering\nproducts and invoicing the customer balance the Stock Output account, while receiving\nproducts and billing vendors balance the Stock Input account.\nTo modify the account type, go to the click the (right arrow) icon to the right of the stock\ninput/output account. In the pop-up window, choose Current Assets from the Type drop-down menu.\nThe Stock Input account is set to Stock Interim (Received) , a Current Asset account\ntype.\n`StockInterim(Received)`\nIn Continental accounting, the Stock Input Account and Stock Output\nAccount are set to the same Current Assets account. That way, one account can\nbe balanced when items are bought and sold.\nThe stock input and output accounts are both set to Stock Interim (Received) , a Current Assets account type. They can also be set to the Stock Interim (Delivered) , as long as the input and output accounts are assigned to the same account.\n`StockInterim(Received)`\n`StockInterim(Delivered)`\n\n## Inventory valuation reporting\n\nTo start, go to Accounting app ⣠Reporting ⣠Balance Sheet . Click the Current Assets line item to unfold the drop-down menu, and look for the nested Stock Valuation , Stock Interim (Received) , and Stock Interim\n(Delivered) lines.\nAt the top of the dashboard, click the As of [date] button to display accounting\nrecords up to a specified date.\n- Stock accounts and what they do\nStock accounts and what they do\n- Accounting cheat sheet\nAccounting cheat sheet\nAccess more specific information by clicking the (ellipsis) icon\nto the right of the desired journal. Select General Ledger to see a list of all of the\njournal entries, where each line itemâs (ellipsis) icon can be\nclicked to reveal the View Journal Entry option to open the individualized journal\nentry.\nAdditionally, annotations to the Balance Sheet can be added by choosing Annotate , filling in the text box, and clicking Save .", "headings": ["Configuration", "Accounting setup", "Product category setup", "Costing method", "Types of accounting", "Expense account", "Inventory valuation reporting"], "doc_id": "2c706782f4a2a60d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/landed_costs.html", "title": "Landed costs", "module": "inventory", "section": "Landed costs", "text": "# Landed costs\n\nIn Odoo, the Landed Costs feature is used to take additional costs into account when calculating\nthe valuation of a product. This includes the cost of shipment, insurance, customs duties, taxes,\nand other fees.\n\n## Configuration\n\nTo add landed costs to products, the Landed Costs feature must first be enabled. To enable this\nfeature, navigate to Inventory app ⣠Configuration ⣠Settings , and scroll to\nthe Valuation section.\nSelect the checkbox next to the Landed Costs option, and click Save to save\nchanges.\nOnce the page refreshes, a new Default Journal field appears below the Landed\nCosts feature in the Valuation section.\nClick the Default Journal drop-down menu to reveal a list of accounting journals. Select\na journal for which all accounting entries related to landed costs should be recorded.\n\n## Create landed cost product\n\nFor charges that are consistently added as landed costs, a landed cost product can be created in\nOdoo. This way, a landed cost product can be quickly added to a vendor bill as an invoice line,\ninstead of having to be manually entered every time a new vendor bill is created.\nTo do this, create a new product by going to Inventory app ⣠Products â£\nProducts , and clicking New .\nAssign a name to the landed cost product in the Product Name field (i.e. International Shipping ). In the Product Type field, click the drop-down menu, and select Service as the Product Type .\n`InternationalShipping`\nLanded cost products must have their Product Type set to Service .\nClick the Purchase tab, and select the checkbox next to Is a Landed Cost in the Vendor Bills section. Once selected, a new Default Split Method field appears below\nit, prompting a selection. Clicking that drop-down menu reveals the following options:\n- Equal : splits the cost equally across each product included in the receipt, regardless\nof the quantity of each.\nEqual : splits the cost equally across each product included in the receipt, regardless\nof the quantity of each.\n- By Quantity : splits the cost across each unit of all products in the receipt.\nBy Quantity : splits the cost across each unit of all products in the receipt.\n- By Current Cost : splits the cost according to the cost of each product unit, so a\nproduct with a higher cost receives a greater share of the landed cost.\nBy Current Cost : splits the cost according to the cost of each product unit, so a\nproduct with a higher cost receives a greater share of the landed cost.\n- By Weight : splits the cost according to the weight of the products in the receipt.\nBy Weight : splits the cost according to the weight of the products in the receipt.\n- By Volume : splits the cost according to the volume of the products in the receipt.\nBy Volume : splits the cost according to the volume of the products in the receipt.\nWhen creating new vendor bills, this product can be added as an invoice line as a landed cost.\nTo apply a landed cost on a vendor bill, products in the original PO must belong to a Product Category with a Costing Method of either AVCO or FIFO , and the valuation method\ncan be manual or automatic .\n\n## Create purchase order\n\nNavigate to Purchase app ⣠New to create a new request for quotation (RfQ). In\nthe Vendor field, add a vendor to order products from. Then, click Add a\nproduct , under the Products tab, to add products to the RfQ .\nOnce ready, click Confirm Order to confirm the order. Then, click Receive\nProducts once the products have been received, followed by Validate .\n\n### Create vendor bill\n\nOnce the vendor fulfills the PO and sends a bill, a vendor bill can be created from the PO in\nOdoo.\nNavigate to the Purchase app , and click into the PO for which a vendor bill\nshould be created. Then, click Create Bill . This opens a new Vendor Bill in\nthe Draft stage.\nIn the Bill Date field, click the line to open a calendar popover menu, and select the\ndate on which this draft bill should be billed.\nThen, under the Invoice Lines tab, click Add a line , and click the drop-down menu in\nthe Product column to select the previously-created landed cost product. Click the (Save manually) icon to manually save and update the draft bill.\nIn the Landed Costs column, the product ordered from the vendor does not have its\ncheckbox selected, while the landed cost productâs checkbox is selected. This differentiates\nlanded costs from all other costs displayed on the bill.\nAdditionally, at the top of the form, a Create Landed Costs button appears.\n\n## Add landed cost\n\nOnce a landed cost is added to the vendor bill, click Create Landed Costs at the top of\nthe vendor bill.\nDoing so automatically creates a landed cost record, with a set landed cost pre-filled in the\nproduct line in the Additional Costs tab.\nFrom the Landed Cost form, click the Transfers drop-down menu, and select\nwhich transfer the landed cost belongs to.\nIn addition to creating landed costs directly from a vendor bill, landed cost records can also be created by navigating to Inventory app ⣠Operations ⣠Landed Costs , and\nclicking New .\nAfter setting the picking from the Transfers drop-down menu, click Compute (at the bottom of the form, under the Total: cost).\nClick the Valuation Adjustments tab to see the impact of the landed costs. The Original\nValue column lists the original price of the PO , the Additional Landed Cost column\ndisplays the landed cost, and the New Value displays the sum of the two, for the total\ncost of the PO .\nOnce ready, click Validate to post the landed cost entry to the accounting journal.\nThis causes a Valuation smart button to appear at the top of the form. Click the Valuation smart button to open a Stock Valuation page, with the productâs\nupdated valuation listed.\nFor a Valuation smart button to appear upon validation, the productâs Product Type must be set to Storable .\nTo view the valuation of every product, including landed costs, navigate to Inventory app ⣠Reporting ⣠Valuation .\nEach journal entry created for a landed cost on a vendor bill can be viewed in the Accounting app.\nTo locate these journal entries, navigate to Accounting app ⣠Accounting â£\nJournal Entries , and locate the correct entry, by number (i.e. PBNK1/2024/XXXXX ).\n`PBNK1/2024/XXXXX`\nClick into the journal entry to view the Journal Items , and other information about\nthe entry.", "headings": ["Configuration", "Create landed cost product", "Create purchase order", "Create vendor bill", "Add landed cost"], "doc_id": "51b7d2abcb7502d9"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/using_inventory_valuation.html", "title": "Using inventory valuation", "module": "inventory", "section": "Using inventory valuation", "text": "# Using inventory valuation\n\nInventory valuation is a quintessential accounting procedure that calculates the value of on-hand\nstock. Once determined, the inventory valuation amount is then incorporated into a companyâs overall\nvalue.\nIn Odoo, this process can be conducted manuallyâ by warehouse employees physically counting the\nproductsâ or automatically through the database.\n\n## Automatic inventory valuation\n\nTo use Odoo to automatically generate a trail of inventory valuation entries, first navigate to the Product Categories list by going to Inventory app ⣠Configuration\n⣠Product Categories and select the desired product category. On the form, set the Inventory Valuation as Automated and the Costing Method to any\nof the three options.\nSet up inventory valuation\nIn order to understand how moving products in and out of stock affects the companyâs overall value,\nconsider the following product and stock moves scenario below.\n\n### Receive a product\n\nTo track the value of incoming products, such as a simple table , configure the product category on\nthe the product itself. To get there, navigate to Inventory app ⣠Products â£\nProducts and click the desired product. On the product form, click the â¡ï¸ (right arrow) icon beside the Product Category field, which opens an internal link to edit the product\ncategory. Next, set the Costing Method as First In First Out (FIFO) and Inventory Valuation as Automated .\nAlternatively access the Product Categories dashboard by navigating to Inventory app ⣠Configuration ⣠Product Categories and select the desired\nproduct category.\nNext, assume 10 tables are purchased at a price of $10.00, each. The PO for\nthose tables will show the subtotal of the purchase as $100, plus any additional costs or taxes.\nAfter selecting Validate on the PO , the Valuation smart button is enabled. Clicking on this button displays a report showing how the inventory\nvaluation for the table was affected by this purchase.\nDeveloper mode must be turned on to see the Valuation smart button.\nThe consignment feature allows\nownership to items in stock. Thus, products owned by other companies are not accounted for in the\nhost companyâs inventory valuation.\nFor a comprehensive dashboard that includes the inventory valuation of all product shipments,\ninventory adjustments, and warehouse operations, refer to the stock valuation report .\n\n### Deliver a product\n\nIn the same logic, when a table is shipped to a customer and leaves the warehouse, the stock\nvaluation decreases. The Valuation smart button on the DO ,\nlikewise, displays the stock valuation record as it does on a PO .\n\n## Inventory valuation report\n\nTo view the current value of all products in the warehouse, first turn on Developer mode and navigate to Inventory app ⣠Reporting ⣠Valuation . The Stock Valuation dashboard displays detailed records of products with the Date , Quantity , Unit Value , and Total Value of the\ninventory.\nDeveloper mode must be enabled to see the Valuation option under Reporting .\nThe Valuation At Date button, located in the top-left corner of the Stock\nValuation page, reveals a pop-up window. In this pop-up, the inventory valuation of products\navailable during a prior specified date can be seen and selected.\nView a detailed record of a productâs inventory value, stock move, and on-hand stock by selecting\nthe teal â¡ï¸ (right arrow) button to the right of the Reference column\nvalue.\n\n### Update product unit price\n\nFor any company: lead times, supply chain failures, and other risk factors can contribute to\ninvisible costs. Although Odoo attempts to accurately represent the stock value, manual valuation serves as an additional tool to update the unit price of products.\nManual valuation is intended for products that can be purchased and received for a cost greater\nthan 0, or have product categories set with Costing Method set as either Average Cost (AVCO) or First In First Out (FIFO) .\nCreate manual valuation entries on the Stock Valuation dashboard by first navigating to Inventory app ⣠Reporting ⣠Valuation . Next, to enable the product\nrevaluation feature, select Group by ⣠Product to organize all the records by\nproduct. Click on the gray âï¸ (drop-down triangle) icon to reveal stock valuation line\nitems below, as well as a teal â (plus) button on the right.\nClick the teal + (plus) button to open up the Product Revaluation form.\nHere, the inventory valuation for a product can be recalculated, by increasing or decreasing the\nunit price of each product.\nThe âï¸ (drop-down triangle) and â (plus) buttons are only visible after\ngrouping entries by product.\n\n### Inventory valuation journal entries\n\nIn Odoo, automatic inventory valuation records are also recorded in the Accounting\napp ⣠Accounting ⣠Journal Entries dashboard. On this comprehensive list of accounting entries,\ninventory valuation records are identified by checking values in the Journal column, or\nlooking for the Reference column value which matches the warehouse operation reference\n(e.g. WH/IN/00014 for receipts).\n`WH/IN/00014`\nClicking on an inventory valuation journal entry opens a double-entry accounting record. These\nrecords are generated by Odoo to track the change of value in inventory valuation as products are\nmoved in and out of the warehouse.\nTo view the inventory valuation of 10 tables , costing $10.00 each, upon reception from the\nvendor, go to the Journal Entries page found in Accounting app\n⣠Accounting ⣠Journal Entries . Here, click the journal line where the Reference column value matches the reference on the receipt, WH/IN/00014 .\n`WH/IN/00014`\nStock interim is a holding account for money intended to pay vendors for the product. The stock valuation account stores the value of all on-hand stock.\n`Stockinterim`\n`stockvaluation`\nOdoo Tutorial: Inventory Valuation", "headings": ["Automatic inventory valuation", "Receive a product", "Deliver a product", "Inventory valuation report", "Update product unit price", "Inventory valuation journal entries"], "doc_id": "89c81c8050203414"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.html", "title": "Valuation by lots/serial numbers", "module": "inventory", "section": "Valuation by lots/serial numbers", "text": "# Valuation by lots/serial numbers\n\nTrack inventory valuation by lots or serial numbers to:\n- Compare and differentiate purchasing cost ,\nbased on lot or serial numbers.\nCompare and differentiate purchasing cost ,\nbased on lot or serial numbers.\n- Track the actual cost of manufactured products, based on the real cost of each tracked component\nused.\nTrack the actual cost of manufactured products, based on the real cost of each tracked component\nused.\n- Depreciate specific lot or serial numbers when they sit in stock for too long .\nDepreciate specific lot or serial numbers when they sit in stock for too long .\nPlease read this introduction to inventory valuation before\nsetting up valuation by lot/serial numbers.\n\n## Configuration\n\nTo enable valuation by lots or serial numbers, begin by enabling the Lots and Serial Numbers\nfeature . After that, go to Inventory app ⣠Products â£\nProducts , and select the desired product, or create a new product, by clicking New .\nOn the product form, in the Category field, choose a product category. Ensure the\nproduct categoryâs Costing Method is set to First In First Out (FIFO) or Average Cost (AVCO) .\nTo check the costing method set on the product category, hover over the Category field, and click the (Internal Link) icon.\nNext, activate the product to be tracked by lots or serial numbers by ticking the Track\nInventory checkbox. Then, click the adjacent field that appears, and choose either By\nLots or By Unique Serial Number from the resulting drop-down menu.\nDoing so makes the Valuation by Lot/Serial number checkbox appear below it. Tick that\ncheckbox, and the configuration to track valuation by lot or serial numbers is complete.\nProduct form showing the Valuation by Lot or Serial Number feature\n\n## Valuation layers\n\nTo understand how valuation by lots and serial numbers works, consider these scenarios:\n- Purchase and sell products : cost is\ncalculated based on the product categoryâs costing method.\nPurchase and sell products : cost is\ncalculated based on the product categoryâs costing method.\n- Create new lot/serial numbers using an\ninventory adjustment: value of the new lot/serial number is assigned to the cost from the product\nform.\nCreate new lot/serial numbers using an\ninventory adjustment: value of the new lot/serial number is assigned to the cost from the product\nform.\n- Inventory adjustment to update quantities for an existing lot/serial number : value is assigned based on the most\nrecent cost for that lot/serial number.\nInventory adjustment to update quantities for an existing lot/serial number : value is assigned based on the most\nrecent cost for that lot/serial number.\nFor both AVCO and FIFO methods, the Cost field\non the product form is calculated using this formula:\n\\(Avg~Cost = \\frac{Total~Value}{Total~Qty}\\)\n\n### Purchase products\n\nConsider how purchasing products affect the inventory valuation, in the table below.\nAverage cost on product form\nDay 1: Receive one product at $10/unit\nDay 2: Receive another product at $20/unit\nAs a result, the product form displays an average cost of $15 in the Cost field.\n\n### Create new lot/serial number\n\nCreating a new lot/serial number through an inventory adjustment assigns the same value as the cost\non the product form.\nTo make an inventory adjustment, and assign a lot number, go to Inventory app â£\nOperations ⣠Physical Inventory . Then, click New .\nIn the new inventory adjustment line that appears, set the Product , create the Lot/Serial Number , set the Counted Quantity , and click Apply .\nTo view the valuation layer, go to Inventory app ⣠Reporting ⣠Valuation . The Total Value per unit matches the Cost on the product form.\nContinuing the example in the table above, when the product cost is $15 , the valuation for a\nnewly-created LOT3 is also be $15 .\n`$15`\n`LOT3`\n`$15`\n\n### Existing lot/serial number\n\nWhen adjusting the quantity of an existing lot/serial number, the value is based on the most recent\nvaluation layer for that specific lot/serial number.\nContinuing the example in the table above, the value for LOT 1 is $10 .\n`LOT1`\n`$10`\nSo, when the quantity is updated from 1.00 to 2.00 , the additional quantity is also valued at $10 , reflecting the latest valuation layer for LOT 1 .\n`1.00`\n`2.00`\n`$10`\n`LOT1`\nThe inventory adjustment (top line) is valued the same as LOT 1 (bottom line).\n\n## View valuation\n\nTo find the average cost of a specific lot/serial number, go to Inventory app â£\nProducts ⣠Lots/Serial Numbers , and select the desired record.\nBoth the Cost and Average Cost fields show a unitâs average cost. The Total Value reflects the total on-hand value for that lot/serial number.\nEnsure the costing method is set to First In First Out (FIFO) or Average Cost (AVCO) to\ndisplay the cost on this page.\nLot form, displaying Cost field. The Valuation smart button is in the top-right.\nValuation layers of a lot/serial number can be viewed through the valuation report , or by clicking the lot/serial numberâs Valuation smart button. These detailed, line-by-line records can help determine how each\ninventory move of the specific lot/serial number affects its valuation.\n\n### Valuation report\n\nDisplay the valuation of lots and serial numbers in the database by going to Inventory app ⣠Reporting ⣠Valuation .\nOn the resulting Stock Valuation report, click the search bar, and in the Group By section of the resulting drop-down menu, select Lot/Serial number .\nClick the (plus) icon to the right of a collapsed lot number line to manually modify the cost .\nThis is useful for adjusting individual lot prices when a purchase order or bill includes\nmultiple lots/serial numbers, as initial prices are identical upon reception.\n\n### Valuation smart button\n\nTo access a filtered part of the Stock Valuation report, specific to a lot or serial number, go to Inventory app ⣠Products ⣠Lots/Serial Numbers , and select the desired item.\nOn the Lot/Serial Numbers page, click the Valuation smart button.\nAll stock moves that affect the valuation of LOT 1 .\n`LOT1`", "headings": ["Configuration", "Valuation layers", "Purchase products", "Create new lot/serial number", "Existing lot/serial number", "View valuation", "Valuation report", "Valuation smart button"], "doc_id": "369fdbc5abbe07d5"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/product_management/product_tracking.html", "title": "Product tracking", "module": "inventory", "section": "Product tracking", "text": "# Product tracking\n\nLots and serial numbers are the two ways to identify and track products in Odoo. While there are\nsimilarities between the two traceability methods, there are also notable differences that affect\nreceipts, deliveries, and inventory reports.\nA lot usually indicates a specific batch of an item that was received, is currently stored, or was\nshipped from a warehouse. However, it can also pertain to a batch of products manufactured in-house,\nas well.\nA serial number is a unique identifier assigned incrementally (or sequentially) to an item or\nproduct, used to distinguish it from other items or products.\n- Lot numbers\n- Serial numbers\n\n## Enable lots & serial numbers\n\nTo track products using lots and serial numbers, the Lots & Serial Numbers feature must be\nenabled.\nTo do that, go to the Inventory app ⣠Configuration ⣠Settings , scroll down to\nthe Traceability section, and click the box next to Lots & Serial Numbers .\nThen, click the Save button to save changes.\n\n## When to use lots\n\nLots are useful for products that are manufactured or received in large quantities, such as clothes\nor food. Lots and can be used to trace a product back to a group, which is especially useful when\nmanaging product recalls or expiration dates.\nManufacturers assign lot numbers to groups of products that have common properties; this can lead to\nmultiple goods sharing the same lot number. This helps identify a number of products in a single\ngroup, and allows for end-to-end traceability of these products through each step in their life\ncycles.\n\n## When to use serial numbers\n\nThe goal of assigning serial numbers to individual products is to make sure every itemâs history is\nidentifiable when it travels through the supply chain. This can be especially useful for\nmanufacturers that provide after-sales services related to products they sell and deliver.\nSerial numbers can contain many different types of characters: numbers, letters, typographical\nsymbols, or a mixture of all three types.\n\n## Traceability\n\nManufacturers and companies can refer to traceability reports to see the entire life cycle of a\nproduct. These reports include vital information, like where it came from (and when), where it was\nstored, and to whom it was sent.\nTo see the full traceability of a product, or group products by lots and/or serial numbers, go to Inventory app ⣠Products ⣠Lots/Serial Numbers . Doing so reveals the Lots/Serial Numbers dashboard.\nFrom here, products with lots or serial numbers assigned to them are listed by default. They can\nalso be expanded to show what lots or serial numbers have been specifically assigned to them.\nTo group by lots or serial numbers, first remove any default filters from the search bar in the\nupper-right corner. Then, click Group By , and select Add Custom Group , which\nreveals a mini drop-down menu. From this mini drop-down menu, select Lot/Serial Number ,\nand click Apply .\nDoing so reveals all existing lots and serial numbers, and each can be expanded to show all product\nquantities with that assigned number. For unique serial numbers that are not reused, there should only be one product per serial number.\nFor additional information regarding an individual lot number or serial number, click the line\nitem for the lot or serial number to reveal that specific numberâs Lot or Serial Number form. From this form, click the Location and Traceability smart buttons to see all stock on-hand using that serial number. Any\noperations made using that lot or serial number can be found here, as well.", "headings": ["Enable lots & serial numbers", "When to use lots", "When to use serial numbers", "Traceability"], "doc_id": "ad29dbe2e52383d3"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/product_management/product_tracking/expiration_dates.html", "title": "Expiration dates", "module": "inventory", "section": "Expiration dates", "text": "# Expiration dates\n\nIn Odoo, expiration dates can be used to manage and track the lifecycles of perishable products,\nfrom purchase to sale. Using expiration dates reduces product loss due to unexpected expiry, and\nhelps to avoid sending expired products to customers.\nIn Odoo, only products that are tracked using lots and serial numbers can be assigned expiration\ninformation. Once a lot or serial number has been assigned, an expiration date can be set. This is\nespecially helpful for companies (such as food manufacturers) that consistently, or exclusively, buy\nand sell perishable products.\n- Lot numbers\n- Serial numbers\n\n## Enable expiration dates\n\nTo enable the use of expiration dates , go to Inventory app ⣠Configuration â£\nSettings , and scroll down to the Traceability section. Then, click the checkbox to\nenable the Lots & Serial Numbers feature.\nOnce that feature is activated, a new option will appear to enable Expiration Dates .\nClick that checkbox to enable the feature, and be sure to Save changes.\nOnce the Lots & Serial Numbers feature is activated, an additional feature appears to Display Lots & Serial Numbers on Delivery Slips . Activating these features helps with\nend-to-end traceability, making it easier to manage product recalls, identify batches of faulty\nproducts, and more.\n\n## Configure expiration dates on products\n\nOnce the Lots & Serial Numbers and Expiration Dates features have been\nenabled in the Inventory app settings, expiration information can be configured on individual\nproducts.\nTo do so, go to Inventory app ⣠Products ⣠Products , and select a product to\nedit. Selecting a product reveals the product form for that particular item.\nTo be tracked using lots or serial numbers, or to configure expiration information, products must have their Product Type set as Goods under the General\nInformation tab. Then, in the Track Inventory field, select either By\nUnique Serial Number or By Lots .\nThen, click the Inventory tab, and scroll down to the Traceability section.\nTick the Expiration Date checkbox.\nIf a product has stock on-hand prior to activating tracking by lots or serial numbers, an\ninventory adjustment might need to be performed in order to assign lot numbers to the existing\nstock.\nFor processing large quantities of products on receipts or deliveries, it is recommended to track\nusing lots, so multiple products can be traced back to the same lot, if any issues arise.\nUnder the Dates section, there are four categories of expiration information to\nconfigure for the product:\n- Expiration Time : the number of days after receiving products (either from a vendor or\nin stock after production) in which goods may become dangerous and should not be used or consumed.\nExpiration Time : the number of days after receiving products (either from a vendor or\nin stock after production) in which goods may become dangerous and should not be used or consumed.\n- Best Before Time : the number of days before the expiration date in which the goods\nstart deteriorating, without being dangerous yet.\nBest Before Time : the number of days before the expiration date in which the goods\nstart deteriorating, without being dangerous yet.\n- Removal Time : the number of days before the expiration date in which the goods should\nbe removed from stock.\nRemoval Time : the number of days before the expiration date in which the goods should\nbe removed from stock.\n- Alert Time : the number of days before the expiration date in which an alert should be\nraised on goods in a particular lot or containing a particular serial number.\nAlert Time : the number of days before the expiration date in which an alert should be\nraised on goods in a particular lot or containing a particular serial number.\nThe values entered into these fields automatically compute the expiration date for goods entered\ninto stock, whether purchased from a vendor or manufactured in-house.\nIf the Dates field is not populated with any values for expiration information, dates\n(and lots) can be manually assigned upon receipts and deliveries in and out of the warehouse.\nEven when assigned, they can still be overwritten and changed manually if needed, as well.\n\n## Set expiration dates on receipts with lots & serial numbers\n\nGenerating expiration dates for incoming goods can be done directly on the Receipt .\nNavigate to Inventory app ⣠Operations ⣠Receipts , then click on a line to\nopen the Receipt record.\nClicking Validate before assigning a serial number to the ordered product quantities\ncauses a User Error popup to appear. The popup requires entry of a lot or serial\nnumber for the ordered products. The receipt cannot be validated without an assigned lot or\nserial number.\nFrom here, click the (Details) icon located on the of the product line.\nWhen clicked, a Detailed Operations pop-up will appear.\nIn the pop-up, the Expiration Date automatically populates, based on the configuration\non the product form. Click the Lot/Serial Number field on the appropriate line, then\nenter the lot or serial number.\nIf the Dates field on the product form has not been configured, the Expiration Date can be manually entered.\nClick Save when finished to close the pop-up. Finally, click Validate .\nA Traceability smart button will appear upon validating the receipt. Click the Traceability smart button to see the updated Traceability Report , which\nincludes: a Reference document; the Product being traced; the Lot/Serial # ; and more.\n\n## Set expiration dates on manufactured products\n\nExpiration dates can also be generated for products manufactured in-house. To assign expiration\ndates to manufactured products, a manufacturing order (MO) needs to be completed.\nTo create a MO , go to Manufacturing app ⣠Operations\n⣠Manufacturing Orders , and click New . Choose a product to manufacture from the Product field drop-down menu, then select the Quantity to produce.\nTo manufacture a product, there must be materials to consume in the lines in the Product column. This can be achieved either by creating a Bill of\nMaterial for the Product , or manually adding materials to consume by clicking Add a line .\nOnce ready, click Confirm .\nThe appropriate number of Lots/Serial Numbers automatically populated in the field.\nClick the (Details) icon to reveal additional information for those\nspecific numbers. On that pop-up, all expiration information that was previously configured for the\nproduct is displayed.\n\n## Sell products with expiration dates\n\nSelling perishable products with expiration dates is done the same as any other type of product. The\nfirst step in selling perishable products is to create a sales order.\nTo do that, go to Sales app ⣠New to create a new quotation, and fill out the\ninformation on the sales order form.\nAdd a Customer , then click Add a product to add the desired products to the Product lines, and set a Quantity for the products.\nThen, click the Other Info tab. Under the Delivery section, change the Delivery Date to a date after the expected date, and click Apply to confirm\nthe date. Finally, click Confirm to confirm the sales order.\nIf the products are delivered before the Alert Date set on the product form, then no\nalerts are created.\nNext, click the Delivery smart button at the top of the sales order to see the warehouse\nreceipt form.\nOn the warehouse receipt form, click Validate , and then Apply in the\naccompanying pop-up window, to automatically process all Done quantities, and deliver\nthe products to the customer.\nTo sell perishable products with expiration dates, the Removal Strategy for the Location the products are stored in must be set to FEFO . If there is not enough stock of perishable products in one lot, Odoo will automatically\ntake the remaining quantity required from a second lot with the next-soonest expiration date.\nRemoval strategies can also be set on Product Categories .\n\n## View expiration dates for lots & serial numbers\n\nTo view (and/or group) all products with expiration dates by lot number, go to Inventory app ⣠Products ⣠Lots/Serial Numbers .\nOnce there, remove any default search filters from the search bar. Then, click Group By ,\nchoose Add Custom Group , and select the Expiration Date parameter from the\ndrop-down menu. Doing so breaks down all perishable products, their expiration dates, and the\nassigned lot number.\nCustomers can also view the expiration date alert in their customer portal.\n\n### Expiration alerts\n\nTo see expiration alerts, go to Inventory app ⣠Products ⣠Lots/Serial Numbers .\nThen, click into a Lot/Serial Number with perishable products. Doing so reveals the\nserial number detail form.\nTo view expiration date information in the list view, click the (adjust settings) icon at the top of the list of records, then tick the Expiration Date checkbox.\nOn the Lot/Serial Number detail form, the Dates lists all expiration\ninformation related to the products.\nIf the expiration date for a lot/serial number has passed, the form displays a red Expiration Alert at the top of the page to indicate that the products in this lot are\neither expired or expiring soon.\nFrom here, click back to the Lots/Serial Numbers page (via the breadcrumbs).\nTo see the new expiration alert, or any expiration alerts for products that are expired (or will\nexpire soon), click back to the Lots/Serial Numbers page via the breadcrumbs. Remove\nall of the search filters from the search bar on the Lots/Serial Numbers dashboard.\nThen, click Filters , and choose Expiration Alerts .\n\n### Expiration notifications\n\nUsers can be notified when the expiration date for a product has passed. This can help keep specific\nemployees up to date on the status of items under their purview.\nTo configure a notification, navigate to Inventory app ⣠Products ⣠Products .\nSelect a product configured with lot/serial numbers and expiration date tracking. Navigate to the Inventory tab. Under the Logistics section, select a user in the Responsible field.\nWhen the expiation date passes for a lot/serial number for this product, a notification is sent to\nthe user in this field.\nOnce the expiration date is due, expiration alerts are created on the form view of the lot/serial\nnumber of the product.\nTo customize these alerts, turn on developer mode , go to Settings app ⣠Technical ⣠Activity Types , and select the Alert\nDate Reached alert.\nThe Default User assigned will be notified once the expiration date is reached. If no\ndefault user is configured, the activity will be assigned to the Responsible user\nselected on the productâs Inventory tab.", "headings": ["Enable expiration dates", "Configure expiration dates on products", "Set expiration dates on receipts with lots & serial numbers", "Set expiration dates on manufactured products", "Sell products with expiration dates", "View expiration dates for lots & serial numbers", "Expiration alerts", "Expiration notifications"], "doc_id": "32684cc112d78904"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.html", "title": "Lot numbers", "module": "inventory", "section": "Lot numbers", "text": "# Lot numbers\n\nLots are one of the two ways to identify and track products in Odoo. They typically represent a\nspecific batch of products that were received, stored, shipped, or manufactured in-house.\nManufacturers assign lot numbers to groups of products sharing common properties, facilitating\nend-to-end traceability through their lifecycles.\nLots are useful for managing large quantities of manufactured or received products, aiding in\ntracing items back to their group, particularly for product recalls or expiration dates .\n\n## Enable lots & serial numbers\n\nTo track products using lots, enable the Lots & Serial Numbers feature. Go to the Inventory app ⣠Configuration ⣠Settings , scroll down to the Traceability section, and tick the checkbox next to Lots & Serial Numbers .\nThen, click Save .\n- Tracking expiration dates\nTracking expiration dates\n- Print GS1 barcodes for lots and serial numbers\nPrint GS1 barcodes for lots and serial numbers\n\n## Track by lots\n\nOnce the Lots & Serial Numbers feature is activated, configure individual products to be\ntracked using lots. To do this, go to Inventory app ⣠Products ⣠Products , and\nchoose a product to configure.\nOn the product form, click into the General Information tab. In the Track\nInventory field, tick the checkbox, then select By Lots from the drop-down menu. Now,\nnew or existing lot numbers can be assigned to newly-received or manufactured batches of this\nproduct.\nIf a product has stock on-hand prior to activating tracking by lots or serial numbers, a warning\nmessage appears. Use an inventory adjustment to assign lot numbers to existing\nproducts in stock.\n\n## Assign lots for shipping and receiving\n\nAssign new lot numbers to incoming goods on the\nreceipt form. When shipping outgoing goods , select products with specific lot numbers on\nthe delivery order form.\n\n### On receipts\n\nAssigning new or existing lot numbers to incoming goods can be done directly on receipts.\nTo begin, go to the Purchase app to create and confirm a PO for products tracked by lot numbers. Then,\nclick the Receipt smart button that appears at the top of the page to navigate to the\nwarehouse receipt form.\nAlternatively, navigate to an existing receipt by going to the Inventory app,\nclicking the Receipts Kanban card, and choosing the desired receipt.\nClicking Validate before assigning a lot number triggers an error, indicating that a\nlot number must be assigned before validating the receipt.\nOn the receipt form, on the product line in the Operations tab, select the (list) icon\nto the right of the product that is tracked by lot numbers.\nDoing so opens the Open: Stock move pop-up window, where the Lot/Serial\nNumber and Quantity are assigned.\nThe two ways to assign lot numbers: manually and importing .\n\n#### Manual assignment\n\nTo manually assign lot numbers, click Add a line . Input the Lot/Serial\nNumber , Store To location for the lot, Quantity , and Destination\nPackage , if any.\nTo assign multiple lot numbers, or store to multiple locations, click Add a line , and\ntype a new Lot/Serial Number for additional quantities. Repeat until the total in the Quantity column matches the Demand at the top.\n\n#### Import lots\n\nIn the Open: Stock move pop-up window, click Import Serials/Lots , then paste\nthe bulk lot numbers, in the Lots/Serial numbers field.\nLot numbers pasted to the âLots/Serial numbersâ field, in the Import Lots pop-up window.\nTick the Keep current lines checkbox to generate additional lot numbers in the Open: Stock move pop-up window. To replace the lot numbers in the list, leave the Keep current lines option unticked.\nFinally, click Generate .\nOnce all product quantities have been assigned a lot number, click Save to close the\npop-up window. Then, click Validate on the receipt form.\nTraceability report for lot numbers\n\n### On delivery orders\n\nOdoo makes it possible to specify which lot numbers for a product are chosen for outgoing shipment\non a delivery order form.\nTo begin, create or select an existing quotation from the Sales app. After\nconfirming the SO , the Delivery smart button becomes available. Click the Delivery smart button to view the warehouse receipt form for that specific SO .\nAlternatively, navigate to delivery orders by going to the Inventory app, and\nclicking the Delivery Orders kanban card.\nClicking the Delivery smart button opens the the delivery order form, where lot numbers\nare picked for delivery. In the Operations tab, click the (list) icon to the right of\nthe product that is tracked by lot numbers. Clicking that icon reveals a Open: Stock\nmove pop-up window.\nIn the pop-up window, the chosen lot number and its storage location is displayed in the Pick From column, with the with the full Quantity taken from that specific\nlot (if there is enough stock in that particular lot).\nIf there is insufficient stock in that lot, or if partial quantities of the Demand should be taken from multiple lots, change the Quantity directly.\nThe lot automatically chosen for delivery orders varies, depending on the selected removal\nstrategy ( FIFO , LIFO , or FEFO ). It also depends on the ordered quantity, and whether the lotâs\non-hand quantity is enough to fulfill the order.\nRepeat the above steps to select enough lots to fulfill the Demand , and click Save to close the pop-up window. Lastly, click the Validate button on the DO to deliver the products.\nTraceability report for lot numbers\n\n## Lot management\n\nManage and view existing lot numbers for products in the Lot/Serial Numbers dashboard by\ngoing to Inventory app ⣠Products ⣠Lots/Serial Numbers .\nBy default, lot numbers are grouped by product, and selecting the drop-down menu for each product\ndisplays the existing lot numbers. Select a lot number to modify or add details linked to the lot. Lot numbers can also be created from this page, by clicking the New button.\nDisplay lot numbers, grouped by products, on the Lot/Serial Number dashboard.\n\n### Modify lot\n\nClicking a lot from the Lot/Serial Number dashboard reveals a separate page where\nadditional information can be provided about the lot.\nOdoo automatically generates a new Lot/Serial Number to follow the most recent\nnumber. However, it can be edited, by clicking the line under the Lot/Serial Number field, and changing the generated number to any desired one.\nOn the lot number form, the following fields can be modified:\n- Lot/Serial Number : change the lot number linked to the Product\nLot/Serial Number : change the lot number linked to the Product\n- Internal Reference : records an alternative lot/serial number used within the warehouse\nthat differs from the one used by the supplier manufacturer.\nInternal Reference : records an alternative lot/serial number used within the warehouse\nthat differs from the one used by the supplier manufacturer.\n- Company : specify the company where the lot number is available.\nCompany : specify the company where the lot number is available.\n- Description : add extra details about the lot or serial number in this text field.\nDescription : add extra details about the lot or serial number in this text field.\nOn existing lots, the Product and On Hand Quantity fields cannot be\nmodified, as the lot numbers are linked with existing stock moves.\nSet expiration dates for lots\n\n#### Add property\n\nTo add custom fields to lots for enhanced traceability, there are two methods of adding properties\non a lot number form:\n- Click the (cog) icon at the top-left of the page, then select Add Properties from the drop-down menu.\nClick the (cog) icon at the top-left of the page, then select Add Properties from the drop-down menu.\n- Click the Add a Property button, located below the existing fields.\nClick the Add a Property button, located below the existing fields.\nName and configure the new field . Once finished,\nenter the property value in the new field.\nThe new property, Wood type , is added. The value is recorded as Cherry wood .\n`Woodtype`\n`Cherrywood`\nConfiguring custom properties\n\n### Reserve lot number for a product\n\nTo create a lot number for a product, begin by going to Inventory app ⣠Products\n⣠Lot/Serial Numbers , and click New .\nCreating a lot number reserves it for a product but does not assign it. To assign lot\nnumbers, refer to the section on assigning lot numbers on receipts .\nWhile Odoo automatically generates a new Lot/Serial Number to follow the most recent\nnumber, it can be edited and changed to any desired number, by clicking the line under the Lot/Serial Number field on the lot form, and changing the generated number.\nOnce the new Lot/Serial Number is generated, click the blank field next to Product to reveal a drop-down menu. From this menu, select the product to which this new\nnumber will be assigned.\nThe lot number, 000001 , is created for the product, Drawer Black .\n`000001`\n`DrawerBlack`\nAfter a new lot number has been created, saved, and assigned to the desired product, the lot number\nis saved as an existing lot number linked to the product, and can be selected when assigning\nlot numbers to products on a receipt .\n\n## Manage lots for different operations types\n\nBy default, new lots can only be created when receiving products, and existing lot numbers cannot\nbe used. For sales orders, only existing lot numbers can be utilized, and new ones cannot be created\non the delivery order.\nTo change the ability to use new (or existing) lot numbers on any operation type, go to the Inventory app ⣠Configuration ⣠Operations Types , and select the desired\noperation type.\nOn the operation type form, under the Lots/Serial Numbers section, tick the Create New checkbox to enable new lot numbers to be created during this operation type.\nChoose Use Existing ones if only existing lot numbers can be selected.\nFor inter-warehouse transfers involving products tracked by lots, it can be useful to enable the Use Existing Lots/Serial Numbers option for warehouse receipts.\n\n## Display lots on delivery slips\n\nWhen selling products tracked with lots, it is possible to include the lot numbers on the delivery\nslips sent to customers. This can be helpful to customers in cases where lot numbers are needed,\nsuch as filing an RMA or repair request, or registering the product.\nTo include lot numbers on delivery slips, open the Inventory app, and navigate to Configuration ⣠Settings . Scroll down to the Traceability section,\ntick the Display Lots & Serial Numbers on Delivery Slips checkbox, and click Save .\nAfter enabling the Display Lots & Serial Numbers on Delivery Slips setting, lot numbers\nare listed on delivery slips for products tracked by lots, once the delivery order is validated.\nTo view lot numbers on delivery orders and delivery slips, navigate to the Inventory app, click on Delivery Orders , and select an order containing\na product tracked using lots.\nTo view the lot numbers of products included in the order, make sure the Operations tab\nis selected, then click the (adjust) button to the right of\nthe tab. Ensure that the Serial Numbers checkbox is ticked, which causes a Serial Numbers column to appear. The lot number(s) for each product included in the\norder are displayed in this column.\nWhen the order is ready to be processed, click Validate to confirm the delivery and add\nproduct information to the delivery slip.\nAt the top of the orderâs form, click the (Actions) button, and select Print â> Delivery Slip . The delivery slip is then downloaded. Open the delivery slip\nusing the deviceâs browser or file manager. Lot numbers are listed next to their respective products\nin the Lot/Serial Number column.\n\n## Traceability\n\nManufacturers and companies can refer to traceability reports to see the entire lifecycle of a\nproduct: where it came from, when it arrived, where it was stored, who it went to (and when).\nTo see the full traceability of a product, or group by lots, go to the Inventory app\n⣠Products ⣠Lots/Serial Numbers . Doing so reveals the Lots/Serial Numbers dashboard.\nFrom here, products with lot numbers assigned to them will be listed by default, and can be expanded\nto show the lot numbers those products have assigned to them.\nTo group by lots, begin by removing any filters in the Search⦠bar. Then, click the (caret down) icon to open a drop-down menu of Filters , Group By options, and Favorites . Under the Group By section,\nclick the Add Custom Group option, and select Lot/Serial Number from the\ndrop-down menu.\nDoing so reorganizes all the records on the page to display all existing lots and serial numbers,\nand can be expanded to show all quantities of products with that assigned number.\n\n### Traceability report\n\nTo view a full stock moves report for a lot number, select the lot number line from the Lots/Serial Number dashboard. On the lot number form, click the Traceability smart button.", "headings": ["Enable lots & serial numbers", "Track by lots", "Assign lots for shipping and receiving", "On receipts", "On delivery orders", "Lot management", "Modify lot", "Reserve lot number for a product", "Manage lots for different operations types", "Display lots on delivery slips", "Traceability", "Traceability report"], "doc_id": "f10ecb85f76c2ffc"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/product_management/product_tracking/reassign.html", "title": "Reassign lot/serial numbers", "module": "inventory", "section": "Reassign lot/serial numbers", "text": "# Reassign lot/serial numbers\n\nChanging a productâs tracking settings to use lots or serial numbers, after storing products in\nOdoo without them, can lead to inconsistent records. Follow this documentation to learn how to use\nan inventory adjustment to assign lot or serial numbers to products that were not originally\nassigned lots.\nThis document outlines the process of using two inventory adjustments: one to remove incorrect\nrecords without lot numbers, and another to save the quantities with the lot numbers.\n- Set up and use lot numbers\nSet up and use lot numbers\n- Use serial numbers\n\n## Change on-hand quantity to zero\n\nTo change the productâs settings to track by lots or serial numbers, begin by navigating to Inventory app ⣠Products ⣠Products , and select the intended product.\nNext, click the productâs On Hand smart button to open the Update Quantity page. In the On Hand Quantity column, change the value to zero.\nIf the product is stored in multiple locations, make sure the total on hand quantity at all locations is zero.\n\n## Change traceability setting\n\nReturn to the product form ( Inventory app ⣠Products ⣠Products ), and switch to\nthe Inventory tab. In the Traceability section, change the Tracking option from No Tracking to By Lots or By\nUnique Serial Number .\n\n## Restore on-hand quantity\n\nAfter manually changing the on-hand quantity to zero and changing the Tracking setting\nto lots or serial numbers, restore the quantities by clicking the On Hand smart button\nfrom the desired product form.\nOn the Update Quantity page, because the on-hand quantity had been previously changed to\nzero, a No Stock On Hand warning appears on the page. From here, click the New button in the top-left corner. Doing so reveals a new, modifiable line on the Update Quantity page. Then, input a desired lot number in the Lot/Serial\nNumber field, and adjust the On Hand Quantity to its original value.\nInventory adjustments\nTo find the original quantity, and adjust the On Hand Quantity accordingly, after\nassigning a new lot or serial number, click the (pencil) icon in\nthe On Hand Quantity column. Then, click the History button on the far-right.\nThe inventory adjustment that changed the on-hand quantity to zero is displayed in the Quantity field.", "headings": ["Change on-hand quantity to zero", "Change traceability setting", "Restore on-hand quantity"], "doc_id": "b3b27ca5724b3848"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/product_management/product_tracking/serial_numbers.html", "title": "Serial numbers", "module": "inventory", "section": "Serial numbers", "text": "# Serial numbers\n\nSerial numbers are one of the two ways to identify and track products in Odoo, along with lots . A serial number is a unique identifier assigned to a product to distinguish it\nfrom other products in a series. Serial numbers can consist of several character types: they can\ncontain numbers, letters, other typographical characters, or any mix of these character types.\nThe goal of assigning serial numbers allows for the tracking of individual products and their expiration dates and location throughout the supply chain. For instance,\nserial numbers can help manufacturers locate products to provide after-sales services or in the\nevent of a recall.\nOdoo Tutorials: Serial Numbers\n\n## Enable lots & serial numbers\n\nTo track products using serial numbers, two settings need to be enabled: the Lots & Serial\nNumbers traceability setting , and serial\nnumber usage by operation type .\n\n### Traceability setting\n\nThe Lots & Serial Numbers traceability feature must be enabled first to track\nproducts. To do so, go to Inventory app ⣠Configuration ⣠Settings , scroll down\nto the Traceability section, and tick the Lots & Serial Numbers checkbox.\nRemember to click the Save button to save changes.\n\n### By operation type\n\nNext, specify whether the ability to create new or use existing serial numbers should be turned on\nfor particular operation types (such as shipping or receiving goods). In other words, this setting\nallows for serial number tracking on warehouse receipts and delivery orders.\nEnabling the Create New option for receipts allows new serial numbers to be assigned\nas items are received. However, for delivery orders, it is often disabled to prevent workers from\naccidentally assigning serial numbers that do not exist in inventory.\nTo enable the creation of new serial numbers on an operation, navigate to Inventory\napp ⣠Configuration ⣠Operations Types .\nFrom the Operations Types page, select the desired operation type (e.g. Receipts , Delivery Orders , or Manufacturing ), and select the Create New option in the Lots/Serial Numbers section of the operation typeâs\nconfiguration page.\n\n## Configure serial number tracking on individual products\n\nOnce the Lots & Serial Numbers setting has been activated, individual products can now be tracked using serial numbers. To track a product,\ngo to Inventory app ⣠Products ⣠Products , and select the desired product.\nIn the General Information tab on the product form, make sure the box next to Track Inventory is checked. Then, select By Unique Serial Number , and click Save to save the changes. Now, existing or new serial numbers can now be selected and\nassigned to newly-received or manufactured batches of this product.\n\n## Assign serial numbers\n\nIn Odoo, serial numbers can be assigned at several times and places:\n- When a product is already in stock\nWhen a product is already in stock\n- Via the Moves smart button on a receipt\nVia the Moves smart button on a receipt\n- Via the Open: Stock move window on a receipt\nVia the Open: Stock move window on a receipt\n- During a manufacturing order for a product tracked by\nlots/serial numbers\nDuring a manufacturing order for a product tracked by\nlots/serial numbers\n- When making an inventory adjustment\nWhen making an inventory adjustment\n\n### Create new serial numbers for products already in stock\n\nNew serial numbers can be created for products already in stock with no assigned serial number. To\ndo so, go to Inventory ⣠Products ⣠Lots/Serial Numbers , and click New . Doing so reveals a blank lot/serial number form. On this form, a new Lot/Serial Number is generated automatically.\nWhile Odoo automatically generates a new lot/serial number to follow the most recent number, it\ncan be edited and changed to any desired number, by clicking the line under the Lot/Serial Number field, and changing the generated number.\nOnce the Lot/Serial Number is generated, click the blank field next to Product to reveal a drop-down menu. From this menu, select the product to which this new\nnumber will be assigned.\nThis form also provides the option to adjust the On Hand Quantity , to assign a unique Internal Reference number (for additional traceability), and to assign this specific\nlot/serial number configuration to a specific company in the Company field. A detailed\ndescription of this specific lot/serial number can also be added in the Description tab\nbelow.\nThe Internal Reference number field is a space for manufacturers to input an\nadditional unique number to allow for easier tracking. For instance, SKU values may be used\nhere.\nWhen all desired configurations are complete, click the Save button to save all changes.\nAfter a new serial number has been created, assigned to the desired product, and saved, navigate\nback to the product form, by going to Inventory app ⣠Products ⣠Products , and\nselecting the product that this newly-created serial number was just assigned to.\nOn that productâs detail form, click the Lot/Serial Numbers smart button to view the new\nserial number.\n\n### Create serial numbers for incoming or outgoing products\n\nSerial numbers can be assigned to both incoming and outgoing goods. The receipt and delivery order\nforms mirror one another; the instructions below can be followed to assign serial numbers in either\nform.\n- Incoming goods: Assign serial numbers directly on the receipt . Receipts can be accessed by\nnavigating to Inventory app ⣠Operations ⣠Receipts .\nIncoming goods: Assign serial numbers directly on the receipt . Receipts can be accessed by\nnavigating to Inventory app ⣠Operations ⣠Receipts .\n- Outgoing goods: Assign serial numbers directly on the delivery order . Receipts can be\naccessed by navigating to Inventory app ⣠Operations ⣠Deliveries .\nOutgoing goods: Assign serial numbers directly on the delivery order . Receipts can be\naccessed by navigating to Inventory app ⣠Operations ⣠Deliveries .\nBefore assigning serial numbers on receipts or delivery orders, be sure that the ability to create new serial numbers by operations type is enabled.\n\n#### Lots/serial number field\n\nSerial numbers can be entered directly into the Serial Numbers field on a receipt or\ndelivery order.\nTo make the Serial Numbers field visible on a receipt or delivery order, click the (Adjust Settings) icon, and in the drop-down menu, tick\nthe Serial Numbers checkbox.\nExample Serial Numbers field on a delivery order.\n\n#### Stock move pop-up window\n\nFor various methods of assigning serial numbers individually or in bulk, click the (list) icon in the product line of a receipt.\nIn the Open: Stock move pop-up window, manually enter serial numbers in the Lot/Serial Number column. This method is best reserved for adding only one or a few\nserial numbers.\nAssign multiple serial numbers at once by clicking the Generate Serials/Lots button in\nthe Open: Stock move pop-up window.\nDoing so opens a new popup, Generate Serial numbers , which contains a few fields:\n- First SN : Input the first serial number that should start the sequence. From there,\nOdoo automatically detects what pattern should be followed to generate more serial numbers.\nFirst SN : Input the first serial number that should start the sequence. From there,\nOdoo automatically detects what pattern should be followed to generate more serial numbers.\n- Number of SN : Specify the desired number of serial numbers to generate. Note The number of serials generated will be reflected in the Quantity field on a\nreceipt or delivery order. Even if the number of serial numbers generated exceeds the Demand value, Odoo still allows the quantity (based on the serial numbers) to be\ndelivered or received.\nNumber of SN : Specify the desired number of serial numbers to generate.\nThe number of serials generated will be reflected in the Quantity field on a\nreceipt or delivery order. Even if the number of serial numbers generated exceeds the Demand value, Odoo still allows the quantity (based on the serial numbers) to be\ndelivered or received.\n- Keep current lines checkbox: Check this box to keep existing serial numbers that may\nhave been previously added. To replace existing serial numbers in the list, leave the box\nunchecked.\nKeep current lines checkbox: Check this box to keep existing serial numbers that may\nhave been previously added. To replace existing serial numbers in the list, leave the box\nunchecked.\nAfter filling out these fields, click the Generate button. The newly generated serials\nnow appear in the Open: Stock move window. By clicking (Save) , the Quantity and the Serial Numbers fields on the\ndelivery order or receipt update automatically.\nAnother option for assigning multiple serial numbers at once is to click the Import\nSerials/Lots button in the Open: Stock move pop-up window.\nIf the import button is not visible, ensure the Create New box is checked in the receiptâs configuration page .\nDoing so opens the Import Serials pop-up window. Enter each serial number on a separate\nline in the Lots/Serial numbers text field.\nAs when generating serials , check the Keep current lines box to keep existing serial numbers, or leave it unchecked to\noverwrite them.\nTo expedite this process, copy/paste serial numbers from an existing spreadsheet and add them to\nthe Lots/Serial numbers text field.\nFinally, click Generate .\nFor a receipt with a Demand of 3.00 products, one product has already been assigned\na serial number in the Open: Stock move pop-up window.\n`3.00`\nSo, in the Import Lots pop-up window, two serial numbers, 124 and 125 are\nassigned to the remaining products by entering the following in the Lots/Serial\nnumbers input field:\n`124`\n`125`\nThe Keep current lines option is selected to add these two serial numbers in\naddition to the serial number, 123 , that has already been assigned.\n`123`\n\n#### Detailed operations\n\nAccessible from both receipt and delivery order forms, the Detailed Operations page shows a\ndetailed view of product movements, including information about serial numbers, exact locations,\nexpiration dates, etc. This level of detail permits more precise tracking, for example, when\nhandling perishable or regulated goods.\nTo access this page, first select a warehouse receipt or delivery order . Then, click on the Moves smart button at the top of the page.\nIn the Lot/Serial Number column, manually type (or select from the drop-down menu)\nthe desired serial numbers for each individual product.\nWhen finished, click the receipt/delivery orderâs breadcrumbs, and the assigned serial numbers are\nautomatically saved.\n\n## Display serial numbers on delivery slips\n\nWhen selling products tracked using serial numbers, it is possible to include the serial numbers on\nthe delivery slips sent to customers. This can be helpful to customers in cases where serial numbers\nare needed, such as filing an RMA or repair request, or registering the product.\nTo include serial numbers on delivery slips, open the Inventory app, and navigate\nto Configuration ⣠Settings . Scroll down to the Traceability section,\ntick the Display Lots & Serial Numbers on Delivery Slips checkbox, and click Save .\nAfter enabling the Display Lots & Serial Numbers on Delivery Slips setting, serial\nnumbers are listed on delivery slips for products tracked by serial numbers, once the delivery order\nis validated.\nTo view serial numbers on delivery orders and delivery slips, navigate to the Inventory app, click on Delivery Orders , and select an order containing\na product tracked using serial numbers.\nTo view the serial numbers of products included in the order, make sure the Operations tab is selected, then click the (adjust) icon to the right of\nthe tab. Ensure that the Serial Numbers checkbox is ticked, which causes a Serial Numbers column to appear. The serial number(s) for each product included in the\norder are displayed in this column.\nWhen the order is ready to be processed, click Validate to confirm the delivery and add\nproduct information to the delivery slip.\nAt the top of the orderâs form, click the (Actions) button, and select Print ⣠Delivery Slip . The delivery slip is then downloaded. Open the delivery\nslip using the deviceâs browser or file manager. Serial numbers are listed next to their respective\nproducts in the Lot/Serial Number column.\n\n## Traceability & reporting\n\nManufacturers and companies can refer to the Lots/Serial Numbers dashboard and traceability\nreports to see the entire lifecycle of a product: when and where it originated, where it was stored,\nand who it was shipped to.\n\n### Lots/Serial Numbers dashboard\n\nTo see the full traceability of a product, or group by serial numbers, go to Inventory app ⣠Products ⣠Lots/Serial Numbers . Doing so reveals the Lots/Serial Numbers dashboard.\n\n#### Reporting\n\nOn the Lots/Serial Numbers dashboard, products with serial numbers assigned to them are\nlisted by default. Click the (expand) icon to show which serial\nnumbers are assigned to the chosen product.\nTo group by serial numbers (or lots), first remove any default filters from the search bar in the\nupper-right corner. Then, click the (down arrow) icon and select Add Custom Group , which reveals a mini drop-down menu. From this mini drop-down menu,\nselect Lot/Serial Number , and click Apply .\nDoing so reveals all existing serial numbers and lots. Each row can be expanded to show all\nquantities of product assigned to that serial/lot number. For unique serial numbers that are not\nreused, there should be just one product per serial number.\nFor additional information regarding an individual serial (or lot) number, click the line\nitem for the serial number to reveal that specific Serial Number form. From this\nform, click the Location and Traceability smart buttons to see all stock\non-hand using that serial number, and any operations made using that serial number.\nIn addition to using the Lots/Serial Numbers dashboard, there are several other\nreporting templates that display the Lot/Serial Number field or the ability to filter\nby serial number. Go to Inventory app ⣠Reporting to access:\n- Locations report\n- Moves History report\n- Moves Analysis report\nMoves Analysis report", "headings": ["Enable lots & serial numbers", "Traceability setting", "By operation type", "Configure serial number tracking on individual products", "Assign serial numbers", "Create new serial numbers for products already in stock", "Create serial numbers for incoming or outgoing products", "Display serial numbers on delivery slips", "Traceability & reporting", "Lots/Serial Numbers dashboard"], "doc_id": "5f41452040c812e8"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations.html", "title": "Inbound and outbound flows", "module": "inventory", "section": "Inbound and outbound flows", "text": "# Inbound and outbound flows\n\nConfiguring inbound and outbound flows in Odoo is key to optimizing efficiency, traceability, and\ncost. Warehouse managers must balance speed and control, choosing between a streamlined process or\nadded checkpoints.\nOdoo offers one-step, two-step, and three-step flows, with more steps providing greater control but\nincreasing operations. The best setup depends on quality checks, packaging, and warehouse size.\nThis guide helps businesses determine the most suitable configuration.\n\n## One-step flow\n\nThe one-step inventory flow is the simplest option, with minimal handling steps and the least\ntraceability. In this setup, products move directly from vendors to stock or from stock to\ncustomers, with Odoo only tracking when items enter or leave the warehouse. This makes it ideal for\nbusinesses with high-volume, low-risk products or fast-moving operations where additional validation\nsteps arenât necessary.\n- Receiving : Products go directly into stock.\nReceiving : Products go directly into stock.\n- Shipping : Products ship directly from stock.\nShipping : Products ship directly from stock.\n- Best for : Small warehouses, low stock levels, and non-perishable items, where minimal\nprocessing is needed before products are stored or shipped.\nBest for : Small warehouses, low stock levels, and non-perishable items, where minimal\nprocessing is needed before products are stored or shipped.\nOne-step receipt and delivery\n\n## Two-step flow\n\nA two-step flow adds an input or output area for processing products before storage or shipment.\nIncoming goods can be unboxed and inspected before shelving, while outgoing shipments are sorted and\nconsolidated before dispatch. This setup improves efficiency by assigning storage teams to picking\nand stocking, while dedicated teams handle unboxing, (possibly) packing, and final verification to\nreduce order fulfillment errors.\n- Receiving : Products move to an input area before being transferred into stock. Until transferred, received products are not automatically reserved for manufacturing, shipping,\nor other operations.\nReceiving : Products move to an input area before being transferred into stock.\n- Until transferred, received products are not automatically reserved for manufacturing, shipping,\nor other operations.\nUntil transferred, received products are not automatically reserved for manufacturing, shipping,\nor other operations.\n- Shipping : Products move to an output before shipping to allow for sorting or\nconsolidation .\nShipping : Products move to an output before shipping to allow for sorting or\nconsolidation .\n- Best for : Large warehouses, high stock levels, bulky items, and workflows that separate\nreceiving from storage to improve organization and efficiency.\nBest for : Large warehouses, high stock levels, bulky items, and workflows that separate\nreceiving from storage to improve organization and efficiency.\nTwo-step receipt and delivery\n\n## Three-step flow\n\nA three-step flow builds on the two-step process by adding a quality check and packing area,\nenforcing stricter processes and improving oversight.\nWhile this setup enhances process control, separating picking and packing requires validation at\neach step. If the same person handles both, it may cause redundancy and slow operations.\nQuality checks and packing do not require a three-step flow. Enable quality control points separately or activate the Packages feature in Odoo to incorporate\nthese processes without adding extra transfer steps.\n- Receiving : Products follow a structured process: input area â quality control â stock .\nReceiving : Products follow a structured process: input area â quality control â stock .\n- Shipping : Products are picked , packed , and then shipped , ensuring proper handling and\norganization.\nShipping : Products are picked , packed , and then shipped , ensuring proper handling and\norganization.\n- Best for : Very large warehouses with strict quality control requirements, dedicated picking\nand packing workflows, and a need for clear traceability across multiple handling stages. Suitable\nwhen multiple teams manage different steps before products are stocked or shipped.\nBest for : Very large warehouses with strict quality control requirements, dedicated picking\nand packing workflows, and a need for clear traceability across multiple handling stages. Suitable\nwhen multiple teams manage different steps before products are stocked or shipped.\n- Three-step receipt\n- Three-step delivery\n\n## Add-ons\n\nTo optimize each flow, Odoo provides additional features that can enhance the process.\n\n### Storage\n\nTo organize and store products efficiently, use:\n\n#### Putaway rules\n\nGuide products to specific storage locations based on predefined rules\n\n#### Storage categories\n\nSet item or weight limits to prevent overstocking at the location and ensure proper\norganization\n\n#### Consignment\n\nKeep track of products owned by third parties\n\n### Delivery\n\nTailor the outgoing shipment process to fit the business needs. Picking methods and removal\nstrategies control how products are reserved for orders, while cross-docking and dropshipping\ndetermine how they move. Configuring these options in Odoo ensures visibility into product movement\nand confirms that items reach customers efficiently.\n\n#### Cross dock\n\nReceive products and immediately transfer them to another warehouse without storing them\n\n#### Dropshipping\n\nCoordinate with vendors to deliver orders directly to customers, bypassing internal stock\n\n#### Picking methods\n\nOptimize picking operations using piece, batch, cluster, or wave picking techniques\n\n#### Removal strategies\n\nUse FIFO, LIFO, or FEFO strategies to automate the selection of products for delivery\n\n### Customization\n\nOdooâs flexible framework enables businesses to tailor workflows to match specific operational\nneeds.\n\n#### Custom routes\n\nDefine tailored receiving or delivery workflows to meet specific business needs", "headings": ["One-step flow", "Two-step flow", "Three-step flow", "Add-ons", "Storage", "Delivery", "Customization"], "doc_id": "513ddb1da9164c78"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/cross_dock.html", "title": "Organize a cross-dock in a warehouse", "module": "inventory", "section": "Organize a cross-dock in a warehouse", "text": "# Organize a cross-dock in a warehouse\n\nCross-docking is the process of sending products that are received directly to the customers,\nwithout making them enter the stock. The trucks are simply unloaded in a Cross-Dock area in order\nto reorganize products and load another truck.\nFor more information on how to organize your warehouse, read our blog: What is cross-docking and\nis it for me?\n\n## Configuration\n\nIn the Inventory app, open Configuration ⣠Settings and activate the Multi-Step Routes .\nDoing so will also enable the Storage Locations feature.\nNow, both Incoming and Outgoing shipments should be configured to work with 2 steps. To adapt\nthe configuration, go to Inventory ⣠Configuration ⣠Warehouses and edit your\nwarehouse.\nThis modification will lead to the creation of a Cross-Docking route that can be found in Inventory ⣠Configuration ⣠Routes .\n\n## Configure products with Cross-Dock Route\n\nCreate the product that uses the Cross-Dock Route and then, in the inventory tab, select the\nroutes Buy and Cross-Dock . Now, in the purchase tab, specify the vendor to who you buy the\nproduct and set a price for it.\nOnce done, create a sale order for the product and confirm it. Odoo will automatically create two\ntransfers which will be linked to the sale order. The first one is the transfer from the Input\nLocation to the Output Location , corresponding to the move of the product in the Cross-Dock area. The second one is the delivery order from the Output Location to your Customer Location.\nBoth are in state *Waiting Another Operation because we still need to order the product to our\nsupplier.\nNow, go to the Purchase app. There, you will find the purchase order that has been automatically\ntriggered by the system. Validate it and receive the products in the Input Location .\nWhen the products have been received from the supplier, you can go back to your initial sale order\nand validate the internal transfer from Input to Output .\nThe delivery order is now ready to be processed and can be validated too.", "headings": ["Configuration", "Configure products with Cross-Dock Route"], "doc_id": "38c6074d7f0f654b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/delivery_three_steps.html", "title": "Three-step delivery", "module": "inventory", "section": "Three-step delivery", "text": "# Three-step delivery\n\nSome companies process large amounts of deliveries every day, many of which include multiple\nproducts or require special packaging. To make this efficient, a packing step is needed before\nshipping out products. For this, Odoo has a three step process for delivering goods.\nIn the default three-step delivery process, products that are part of a delivery order are picked in\nthe warehouse according to their removal strategy, and brought to a packing zone. After the items\nhave been packed into the different shipments in the packing zone, they are brought to an output\nlocation before being shipped. These steps can be modified if they do not fit the needs of the\nbusiness.\n\n## Configuration\n\nTo change delivery settings from one step to three steps, make\nsure the Multi-Step Routes option is enabled in Inventory app ⣠Configuration\n⣠Settings ⣠Warehouse . Note that activating Multi-Step Routes will also activate Storage Locations .\nNext, the warehouse needs to be configured for three step deliveries. To do this, go to Inventory app ⣠Configuration ⣠Warehouses , and click on the warehouse to edit. Then, select Pack goods, send goods in output and then\ndeliver (3 steps) for Outgoing Shipments .\nActivating three-step receipts and deliveries creates two new internal locations: a Packing Zone (WH/Packing Zone), and Output (WH/Output). To rename these locations, go to Inventory app ⣠Configuration ⣠Locations , click on the Location to\nchange, and update the name.\n\n## Deliver in three steps (pick + pack + ship)\n\n### Create a sales order\n\nTo create a new quote, go to Sales app ⣠Create , which reveals a blank quotation\nform. On the blank quotation form, select a Customer , add a storable Product , and click Confirm .\nA Delivery smart button appears in the top right of the quotation form. Clicking it\nopens the picking order to move the ordered product from WH/Stock to WH/Packing Zone .\n`WH/Stock`\n`WH/PackingZone`\n\n### Process a picking\n\nThe picking order will be created once the sales order is confirmed. To view the picking, navigate\nto the Inventory app , and locate the Pick task card on the Inventory Overview dashboard.\nClick the # To Process button, which reveals the picking order generated from the\npreviously confirmed sales order.\nClick on the picking to process. If the product is in stock, Odoo will automatically reserve the\nproduct. Click Validate to mark the picking as done, and complete the transfer to the Packing Zone .\n\n### Process a packing\n\nAfter validating the picking, the packing order is ready to process. Click back to the Inventory Overview , and locate the Pack task card on the dashboard.\nClick the # To Process button (in this case, 1 To Process ). This reveals the\npacking order generated from the previously confirmed sales order.\nClick on the packing order associated with the sales order, then click on Validate to\ncomplete the packing.\nOnce the packing order is validated, the product leaves the WH/Packing Zone location and\nmoves to the WH/Output location. Then, the status of the document will change to Done .\n\n### Process a delivery\n\nOnce the packing order has been validated, the delivery order is ready to process. Navigate back to\nthe original sales order to process the delivery by going to Sales app , and\nselecting the sales order created previously.\nDelivery orders can also be accessed by going to Inventory app ⣠Operations\n⣠Deliveries .\nThe Delivery smart button now indicates there are 3 transfers, instead of one. Clicking\nthe Delivery smart button shows the three operations for this sales order: the picking,\nthe packing, and the delivery.\nClick the delivery (WH/OUT) transfer to open the delivery order. Then, click Validate .\nOnce the delivery order is validated, the product leaves the WH/Output location and\nmoves to the Partners/Customers location. Then, the status of the document will change\nto Done .", "headings": ["Configuration", "Deliver in three steps (pick + pack + ship)", "Create a sales order", "Process a picking", "Process a packing", "Process a delivery"], "doc_id": "c34806f6604ed4f7"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/dropshipping.html", "title": "Dropshipping", "module": "inventory", "section": "Dropshipping", "text": "# Dropshipping\n\nDropshipping is an order fulfillment strategy that allows sellers to have items shipped directly\nfrom suppliers to customers. Normally, a seller purchases a product from a supplier, stores it in\ntheir inventory, and ships it to the end customer once an order is placed. With dropshipping, the\nsupplier is responsible for storing and shipping the item. This benefits the seller by reducing\ninventory costs, including the price of operating warehouses.\n\n## Configure products to be dropshipped\n\nTo use dropshipping as a fulfillment strategy, navigate to the Purchase app and\nselect Configuration ⣠Settings . Under the Logistics heading, click\nthe Dropshipping checkbox, and Save to finish.\nNext, go to the Sales app, click Products ⣠Products and choose\nan existing product or select Create to configure a new one. On the Product page, make sure that the Can be Sold and Can be Purchased checkboxes are\nenabled.\nClick on the Purchase tab and specify a vendor and the price that they sell the product\nfor. Multiple vendors can be added, but the vendor at the top of the list will be the one\nautomatically selected for purchase orders.\nFinally, select the Inventory tab and enable the Dropship checkbox in the Routes section.\nWhile it is not necessary to enable the Buy route in addition to the Dropship route, enabling both provides the option of dropshipping the product or\npurchasing it directly.\n\n## Fulfill orders using dropshipping\n\nWhen a sales order is created for a dropshipped product, an associated request for quotation (RfQ)\nis automatically generated to purchase the product from the vendor. Sales orders can be viewed in\nthe Sales app by selecting Orders ⣠Orders . Click the Purchase smart button at the top right of a sales order to view the associated RFQ .\nOnce the RFQ is confirmed, it becomes a purchase order, and a\ndropship receipt is created and linked to it. The receipt can be viewed by clicking the Dropship smart button in the top-right corner of the purchase order form.\nThe dropship receipt displays Partners/Vendors in the Source Location field,\nand Partners/Customers in the Destination Location field. Upon delivery of\nthe product to the customer, click on the Validate button at the top-left of the\ndropship receipt to confirm the delivered quantity.\nTo view all dropship orders, simply navigate to the Inventory Overview dashboard and click the teal # TO PROCESS button on the Dropship card.", "headings": ["Configure products to be dropshipped", "Fulfill orders using dropshipping"], "doc_id": "630c6b93e5cbc810"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/owned_stock.html", "title": "Consignment: buy and sell stock without owning it", "module": "inventory", "section": "Consignment: buy and sell stock without owning it", "text": "# Consignment: buy and sell stock without owning it\n\nMost of the time, products stored in a companyâs warehouse are either purchased from suppliers, or\nare manufactured in-house. However, suppliers will sometimes let companies store and sell products\nin the companyâs warehouse, without having to buy those items up-front. This is called consignment .\nConsignment is a useful method for suppliers to launch new products, and easily deliver to their\ncustomers. Itâs also a great way for the company storing the products (the consignee) to earn\nsomething back for their efforts. Consignees can even charge a fee for the convenience of storing\nproducts they donât actually own.\n\n## Enable the consignment setting\n\nTo receive, store, and sell consignment stock, the feature needs to be enabled in the settings. To\ndo this, go to Inventory ⣠Configuration ⣠Settings , and under the Traceability section, check the box next to Consignment , and then click Save to finish.\n\n## Receive (and store) consignment stock\n\nWith the feature enabled in Odoo, consignment stock can now be received into a warehouse. From the\nmain Inventory dashboard, click into the Receipts section. Then, click Create .\nConsignment stock is not actually purchased from the vendor; it is simply received and stored.\nBecause of this, there are no quotations or purchase orders involved in receiving consignment\nstock. So, every receipt of consignment stock will start by creating manual receipts.\nChoose a vendor to enter in the Receive From field, and then choose the same vendor to\nenter in the Assign Owner field.\nSince the products received from the vendor will be owned by the same vendor, the Receive From and Assign Owner fields must match.\nOnce the vendor-related fields are set, enter products into the Product lines, and set\nthe quantities to be received into the warehouse under the Done column. If the Units of Measure feature is enabled, the UoM can be changed,\nas well. Once all the consignment stock has been received, Validate the receipt.\n\n## Sell and deliver consignment stock\n\nOnce consignment stock has been received into the warehouse, it can be sold the same as any other\nin-stock product that has the Can Be Sold option enabled on the product form.\nTo create a sales order, navigate to the Sales app, and from the Quotations overview, click Create . Next, choose a customer to enter into the Customer field.\nThe Customer must be different from the Vendor that supplied the\nconsignment stock received (and stored) in the warehouse.\nAdd the consignment product under the Product column in the order lines, set the Quantity , and fill out any other pertinent product details on the form. Once the\nquotation is complete, click Confirm .\nOnce the quotation has been confirmed, it becomes a sales order. From here, the products can be\ndelivered by clicking on the Delivery smart button, and selecting Validate to validate the delivery.\n\n## Traceability and reporting of consignment stock\n\nAlthough consignment stock is owned by the vendor who supplied it, and not by the company storing it\nin their warehouse, consignment products will still appear in certain inventory reports.\nTo find inventory reports, go to Inventory ⣠Reporting , and choose a report to\nview.\nSince the consignee does not actually own consignment stock, these products are not reflected\nin the Stock Valuation report, and have no impact on the consigneeâs inventory\nvaluation.\n\n### Product moves report\n\nTo view all information about on-hand stock moves, navigate to the Product Moves dashboard by going to Inventory ⣠Reporting ⣠Product Moves . For consignment\nproducts, the information in this report is the same as any other product: the history of its\nproduct moves can be reviewed; the Quantity Done and Reference document are\navailable; and its Locations are available, as well. The consignment stock will\noriginate from Partner Location/Vendors .\nTo view a consignment productâs moves by ownership, select the Group By filter,\nchoose the Add Custom Group parameter, and then select From Owner , and Apply to finish.\nTo see forecasted units of consignment stock, go to Inventory ⣠Reporting â£\nForecasted Inventory .\n\n### Stock on hand report\n\nView the Stock On Hand dashboard by navigating to Inventory â£\nReporting ⣠Inventory Report . From this report, the Locations of all stock on-hand\nare displayed, in addition to the quantities per location. For consignment products, the Owner column will be populated with the owner of those products, or the original vendor\nwho supplied the products in the first place.", "headings": ["Enable the consignment setting", "Receive (and store) consignment stock", "Sell and deliver consignment stock", "Traceability and reporting of consignment stock", "Product moves report", "Stock on hand report"], "doc_id": "88d61a936467a529"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/putaway.html", "title": "Putaway rules", "module": "inventory", "section": "Putaway rules", "text": "# Putaway rules\n\nPutaway is the process of routing products to appropriate storage locations upon shipment arrival.\nOdoo can accomplish this seamlessly using putaway rules , which dictate how products move through\nspecified warehouse locations.\nUpon shipment arrival, operations are generated based on putaway rules to efficiently move products\nto specified locations, and ensure easy retrieval for future delivery orders.\nIn warehouses that process specific kinds of products, putaway rules can also prevent volatile\nsubstances from being stored in close proximity, by directing them to different locations determined\nby the warehouse manager.\nOdoo Tutorials: Putaway Rules\n\n## Configuration\n\nTo use putaway rules, navigate to Inventory app ⣠Configuration ⣠Settings , and\nactivate the Multi-Step Routes feature under the Warehouse section. By doing\nso, the Storage Locations feature is also automatically activated.\nFinally, click Save .\n\n### Define putaway rule\n\nTo manage where specific products are routed for storage, navigate to Inventory app\n⣠Configuration ⣠Putaway Rules . Use the New button to configure a new putaway\nrule on a Product or Product Category that the rule affects.\nPutaway rules can be defined either per product/product category, and/or package type (the Packages setting must be enabled in Inventory app ⣠Configuration â£\nSettings for that). Additionally, a storage category can be defined to limit capacities of a storage location and route products accordingly.\nIn the same line, the When product arrives in location is where the putaway rule is\ntriggered to create an operation to move the product to the Store to location.\nFor this to work, the Store to location must be a sub-location of the first (e.g., WH/Stock/Fruits is a specific, named location inside WH/Stock to make the products stored here\neasier to find).\n`WH/Stock/Fruits`\n`WH/Stock`\nIn a warehouse location, WH/Stock , there are the following sub-locations:\n- WH/Stock/Fruits\n- WH/Stock/Vegetables\nEnsure all apples are stored in the fruits section by filling the field Store to with\nthe location WH/Stock/Fruits when the Product , Apple arrives in WH/Stock .\n`WH/Stock/Fruits`\n`Apple`\n`WH/Stock`\nRepeat this for all products and hit Save .\nUse the Sublocation field to specify whether to use a sublocation or specify a\nstorage category:\n- No : no sublocation is used. Products are directed to whatever is specified in the Store to field.\nNo : no sublocation is used. Products are directed to whatever is specified in the Store to field.\n- Last Used : the last location that had a move associated with it for that product or\nproduct category is used. If there is no last location used, the destination is whatever is\nspecified in the Store to field.\nLast Used : the last location that had a move associated with it for that product or\nproduct category is used. If there is no last location used, the destination is whatever is\nspecified in the Store to field.\n- Closest Location : the locations specified as part of a storage category are used. A\nstorage category is mandatory in the Having Category field.\nClosest Location : the locations specified as part of a storage category are used. A\nstorage category is mandatory in the Having Category field.\nTo apply a putaway rule to all products, create an empty putaway rule with no specified Product or Product Category . All products are stored in the location\nspecified in the Store to field.\nA best practice for an empty putaway rule is to specify the Last used Sublocation . Specifying Last used ensures that Odoo suggests the last\nlocation used to store a product.\n\n### Putaway rule priority\n\nOdoo selects a putaway rule based on the following priority list (from highest to lowest) until a\nmatch is found:\n- Package type and product\nPackage type and product\n- Package type and product category\nPackage type and product category\n- Package type\n- Product\n- Product category\nThe product Lemonade can has the following putaway rules configured:\n`Lemonadecan`\n- When receiving a Pallet ( Package Type ) of Lemonade cans , it is redirected to WH/Stock/Pallets/PAL1 .\nWhen receiving a Pallet ( Package Type ) of Lemonade cans , it is redirected to WH/Stock/Pallets/PAL1 .\n`Pallet`\n`Lemonadecans`\n`WH/Stock/Pallets/PAL1`\n- Lemonade can âs Product Category is All/drinks , and when receiving a Box of\nany item in this product category, items are redirected to WH/Stock/Shelf 1 .\nLemonade can âs Product Category is All/drinks , and when receiving a Box of\nany item in this product category, items are redirected to WH/Stock/Shelf 1 .\n`Lemonadecan`\n`All/drinks`\n`Box`\n`WH/Stock/Shelf1`\n- Any product on a Pallet is redirected to WH/Stock/Pallets\nAny product on a Pallet is redirected to WH/Stock/Pallets\n`Pallet`\n`WH/Stock/Pallets`\n- The product Lemonade can is redirected to WH/Stock/Shelf 2\nThe product Lemonade can is redirected to WH/Stock/Shelf 2\n`Lemonadecan`\n`WH/Stock/Shelf2`\n- Items in the All/drinks product category are redirected to WH/Stock/Small Refrigerator .\nItems in the All/drinks product category are redirected to WH/Stock/Small Refrigerator .\n`All/drinks`\n`WH/Stock/SmallRefrigerator`", "headings": ["Configuration", "Define putaway rule", "Putaway rule priority"], "doc_id": "52e0b5c49c5923d4"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/receipts_delivery_one_step.html", "title": "One-step receipt and delivery", "module": "inventory", "section": "One-step receipt and delivery", "text": "# One-step receipt and delivery\n\nIn Odoo Inventory , both incoming and outgoing shipments are configured to process in one step, by\ndefault. This means purchases will be received directly into stock, and deliveries will be moved\ndirectly from stock to customers.\nIncoming and outgoing shipments do not need to be configured with the same amount of steps.\nFor example, a warehouseâs settings can be configured so products can be received directly in one\nstep, and delivered in three steps (pick + pack + ship).\n\n## Configuration\n\nTo configure one-step receipts and deliveries for a warehouse, navigate to Inventory\napp ⣠Configuration ⣠Warehouses , and select a warehouse to edit.\nUnder the Warehouse Configuration tab, set Incoming Shipments to Receive goods directly (1 step) , and set Outgoing Shipments to Deliver goods directly (1 step) .\nSince one-step receipt and delivery is the default for incoming and outgoing shipments in Odoo,\nthe Multi-Step Routes feature is not required.\nHowever, for the Shipments settings to appear on a warehouse form, the feature must be enabled.\nTo enable Multi-Step Routes , navigate to Inventory app ⣠Configuration â£\nSettings . Under the Warehouse section, tick the checkbox next to Multi-Step Routes , and click Save . Doing so also activates the Storage Locations feature.\n\n## Receive goods directly (1 step)\n\nWhen products are received in one step, they will move from the vendor location to warehouse stock\nin the database immediately upon validation of a purchase order (PO).\n\n### Create purchase order\n\nTo create a PO , navigate to the Purchase app , and click New . This\nopens a blank Request for Quotation (RfQ) form.\nAdd a vendor in the Supplier field. Then, fill out the various fields on the RfQ , as\nnecessary.\nUnder the Products tab, click Add a product , and select a product to add to\nthe RfQ .\nOnce ready, click Confirm Order . This moves the RfQ to the Purchase Order stage.\nOnce the PO is confirmed, a Receipt smart button appears at the top of the form.\nClicking the smart button opens the warehouse receipt (WH/IN) form.\n\n### Process receipt\n\nFrom the warehouse receipt form, the products ordered can be received into the warehouse. To receive\nthe products, click Validate . Once validated, the receipt moves to the Done stage.\nClick back to the PO (via the breadcrumbs, at the top of the form) to view the PO form. On the\nproduct line, the quantity in the Received column now matches the ordered Quantity .\n\n## Deliver goods directly (1 step)\n\nWhen products are delivered in one step, they will move from warehouse stock to the customer\nlocation in the database immediately upon validation of a sales order (SO).\n\n### Create sales order\n\nTo create a SO , navigate to the Sales app , and click New . This\nopens a blank sales quotation form.\nAdd a customer in the Customer field. Then, fill out the various fields on the sales\nquotation form, as necessary.\nUnder the Product tab, click Add a product , and select a product to add to\nthe sales order quotation.\nOnce ready, click Confirm . This moves the quotation to the Sales Order stage.\nOnce the SO is confirmed, a Delivery smart button appears at the top of the form.\nClicking the smart button opens the warehouse delivery (WH/OUT) form.\n\n### Process delivery\n\nFrom the warehouse delivery form, the products ordered by the customer can be delivered from the\nwarehouse. To deliver the products, change the value in the Quantity field to match the\nordered quantity in the Demand field.\nOnce ready, click Validate . Once validated, the delivery order moves to the Done stage.\nClick back to the SO (via the breadcrumbs, at the top of the form) to view the SO form. On the\nproduct line, the quantity in the Delivered column now matches the ordered Quantity .\nInbound and outbound flows", "headings": ["Configuration", "Receive goods directly (1 step)", "Create purchase order", "Process receipt", "Deliver goods directly (1 step)", "Create sales order", "Process delivery"], "doc_id": "1cf73219cea39ee2"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/receipts_delivery_two_steps.html", "title": "Two-step receipt and delivery", "module": "inventory", "section": "Two-step receipt and delivery", "text": "# Two-step receipt and delivery\n\nDepending on a companyâs needs, receiving and shipping products in and out of the warehouse might\nrequire multi-step operations. In Odoo Inventory , this can be done using Multi-Step Routes .\nIn the two-step receipt process, products are received in an input area, then transferred to stock.\nThis kind of process for incoming shipments might be beneficial for warehouses with specific storage\nlocations, such as freezers and refrigerators, secured locked areas, or special aisles and shelves.\nProducts can be sorted according to where they are going to be stored, and employees can stock all\nthe products going to a specific location. The products are not available for further processing,\nuntil they are transferred into stock.\nIn the two-step delivery process, products are first picked from their respective location in the\nwarehouse, then transferred to an output location before being shipped to the customer.\nThis might be beneficial for companies using a First In, First Out (FIFO), Last In, First Out\n(LIFO), or First Expired, First Out (FEFO) removal strategy.\nIncoming and outgoing shipments do not need to be configured with the same amount of steps.\nFor example, a warehouseâs settings can be configured so products can be received in two steps\n(input + stock), and delivered in three steps (pick + pack + ship).\n\n## Configuration\n\nIn Odoo Inventory , both incoming and outgoing shipments are configured to process in one step, by\ndefault. To change these settings, the Multi-Step Routes feature must be enabled.\nTo enable Multi-Step Routes , navigate to Inventory app ⣠Configuration â£\nSettings . Under the Warehouse section, tick the checkbox next to Multi-Step\nRoutes , and click Save . Doing so also activates the Storage Locations feature.\nNext, configure a warehouse for two-step receipts and deliveries. Navigate to Inventory app ⣠Configuration ⣠Warehouses , and select a warehouse to edit.\nUnder the Warehouse Configuration tab, set Incoming Shipments to Receive goods in input and then stock (2 steps) , and set Outgoing Shipments to Send goods in output and then deliver (2 steps) .\nSelecting two-step receipts and deliveries automatically creates new Input and Output warehouse locations in the database, named WH/Input and WH/Output , respectively.\n`WH/Input`\n`WH/Output`\nTo rename or edit these locations, navigate to Inventory app ⣠Configuration\n⣠Locations , and select the desired location.\nOn the locationâs form, change the Location Name , and make any other necessary\nchanges.\n\n## Process receipt in two steps (input + stock)\n\nWhen products are received in two steps, they first move from the vendor location to an input\nlocation. Then, they move from the input location to warehouse stock in the database, upon\nvalidation of a purchase order (PO), and a subsequent internal transfer.\n\n### Create purchase order\n\nTo create a PO , navigate to the Purchase app , and click New . This\nopens a blank Request for Quotation (RfQ) form.\nAdd a vendor in the Vendor field. Then, fill out the various fields on the RfQ , as\nnecessary.\nUnder the Products tab, click Add a product , and select a product to add to\nthe RfQ .\nOnce ready, click Confirm Order . This moves the RfQ to the Purchase Order stage.\nOnce the PO is confirmed, a Receipt smart button appears at the top of the form.\nClicking the smart button opens the warehouse receipt (WH/IN) form.\nFor businesses with multiple warehouses that have different step configurations, the Deliver To field on the PO form must be specified as the correct input\nlocation connected to the two-step warehouse.\nThis can be done by selecting the warehouse from the drop-down menu that includes the Receipts label at the end of the name.\n`Receipts`\n\n### Process receipt\n\nFrom the warehouse receipt form, the products ordered can be received into the warehouse. To receive\nthe products, click Validate . Once validated, the receipt moves to the Done stage, and the products move to the WH/Input location.\nClick back to the PO (via the breadcrumbs, at the top of the form) to view the PO form. On the\nproduct line, the quantity in the Received column now matches the ordered Quantity .\n\n### Process internal transfer\n\nOnce the receipt is validated, an internal transfer is created and ready to process.\nTo view the internal transfer, navigate to the Inventory app , and locate the Internal Transfers task card.\nClick the # To Process button on the task card to reveal a list of all internal\ntransfers to process, and select the transfer associated with the previously validated receipt.\nOnce ready, click Validate to complete the transfer, and move the product from WH/Input to WH/Stock .\nOnce the transfer is validated, the products enter inventory, and are available for customer\ndeliveries or manufacturing orders.\n\n## Process delivery order in two steps (pick + ship)\n\nWhen products are delivered in two steps, they move from warehouse stock to an output location.\nThen, they move from the output location to a customer location in the database, upon validation of\na picking order, and a subsequent delivery order (DO).\n\n### Create sales order\n\nTo create a SO , navigate to the Sales app , and click New . This\nopens a blank sales quotation form.\nAdd a customer in the Customer field. Then, fill out the various fields on the sales\nquotation form, as necessary.\nUnder the Order Lines tab, click Add a product , and select a product to add\nto the sales order quotation.\nOnce ready, click Confirm . This moves the quotation to the Sales Order stage.\nOnce the SO is confirmed, a Delivery smart button appears at the top of the form.\nClicking the smart button opens the warehouse delivery (WH/OUT) form.\n\n### Process picking\n\nOnce the sales order is confirmed, a picking order is generated and ready to process.\nTo complete the picking, navigate to the Inventory app , and locate the Pick task card on the Inventory Overview dashboard. Alternatively, the picking order can also\nbe accessed via the Delivery smart button at the top of the sales order form.\nFrom the Inventory Overview page, click the # To Process button on the Pick task card. This reveals a list of all pickings to process.\nClick on the picking (WH/PICK) operation associated with the sales order to reveal the picking\norder.\nManually set the quantity by changing the value in the Quantity column, to match the\nvalue in the Demand column.\nOnce ready, click Validate to complete the picking, and move the product from WH/Stock to WH/Output.\n\n### Process delivery\n\nOnce the picking is validated, a delivery order is created, and ready to process. Clicking the Delivery smart button on the sales order form reveals the newly created delivery order.\nAlternatively, to view the delivery order, navigate back to the Inventory Overview page,\nvia the breadcrumbs, and locate the Delivery Orders task card.\nClick the # To Process button on the task card to reveal a list of all delivery orders\nto process, and select the order associated with the previously validated picking.\nTo deliver the products, change the value in the Quantity field to match the ordered\nquantity in the Demand field.\nOnce ready, click Validate . Once validated, the delivery order moves to the Done stage.\nInbound and outbound flows", "headings": ["Configuration", "Process receipt in two steps (input + stock)", "Create purchase order", "Process receipt", "Process internal transfer", "Process delivery order in two steps (pick + ship)", "Create sales order", "Process picking", "Process delivery"], "doc_id": "fd9b636b9ba212e8"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/receipts_three_steps.html", "title": "Three-step receipt", "module": "inventory", "section": "Three-step receipt", "text": "# Three-step receipt\n\nSome companies require a quality control process before receiving goods from suppliers. To\naccomplish this, Odoo has a three-step process for receiving goods.\nIn the three-step receipt process, products are received in an input area, then transferred to a\nquality area for inspection. Products that pass the quality inspection are then transferred into\nstock. The products are not available for further processing until they are transferred out of the\nquality area and into stock.\n\n## Configuration\n\nOdoo is configured by default to receive and deliver goods in one step , so the settings need to be changed in order to utilize three-step\nreceipts. First, make sure the Multi-Step Routes option is enabled in Inventory\n⣠Configuration ⣠Settings ⣠Warehouse . Note that activating Multi-Step Routes will also activate Storage Locations .\nNext, the warehouse needs to be configured for three-step receipts. To do that, go to Inventory app ⣠Configuration ⣠Warehouses , and select the desired warehouse to\nbe edited. Doing so reveals the detail form for that specific warehouse.\nOn that Warehouse detail form page, select Receive goods in input, then\nquality and then stock (3 steps) for Incoming Shipments .\nActivating three-step receipts and deliveries creates two new internal locations: Input (WH/Input), and Quality Control (WH/Quality Control). To rename these locations, go to Inventory app ⣠Configuration ⣠Locations , then click on the desired location\nto change (or update) the name.\n\n## Receive in three steps (input + quality + stock)\n\n### Create a purchase order\n\nTo create a new RfQ , navigate to Purchase app â£\nNew , which reveals a blank RfQ form page. On this page, select a Vendor , add a storable Product , and click Confirm Order .\nA Receipt smart button will appear in the top right, and the receipt will be associated\nwith the purchase order. Clicking on the Receipt smart button will show the receipt\norder.\n\n### Process a receipt\n\nOnce the purchase order (PO) is confirmed, a receipt ( WH/IN ) operation is generated and ready to\nprocess.\n`WH/IN`\nThe receipt can be confirmed from the original purchase order form, or it can be accessed by\nnavigating to the Inventory app , and locating the Receipts task card.\nClick the # To Process button to reveal all incoming receipts to process. Click the\nreceipt associated with the previous purchase order.\nClick Validate to validate the receipt, and move the product to the destination\nlocation, WH/Input .\n\n### Process a transfer to Quality Control\n\nOnce the receipt has been validated, an internal transfer operation to move the product to quality\ncontrol is ready to process.\nClick Inventory Overview in the breadcrumbs to navigate back to the dashboard, and\nlocate the Internal Transfers task card.\nSelect the # To Process button to reveal all internal transfers to process. Then, choose\nthe internal transfer associated with the validated receipt.\nOnce ready, click Validate to complete the transfer, and move the product from WH/Input to WH/Quality Control .\n\n## Process a transfer to stock\n\nOnce the internal transfer to move the product to quality control has been validated, another\ninternal transfer operation to move the product into warehouse stock is ready to process.\nClick YourCompany: Internal Transfers in the breadcrumbs to reveal the list of all\ninternal transfers to process. Then, select the new internal transfer to move the product from WH/Quality Control to WH/Stock .\n`WH/QualityControl`\n`WH/Stock`\nOnce ready, click Validate to complete the transfer, and move the product from WH/Quality Control to WH/Stock .", "headings": ["Configuration", "Receive in three steps (input + quality + stock)", "Create a purchase order", "Process a receipt", "Process a transfer to Quality Control", "Process a transfer to stock"], "doc_id": "208d9f517209eeb4"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/stock_warehouses.html", "title": "Sell stock from multiple warehouses using virtual locations", "module": "inventory", "section": "Sell stock from multiple warehouses using virtual locations", "text": "# Sell stock from multiple warehouses using virtual locations\n\nWhile keeping stock and selling inventory from one warehouse might work for smaller companies,\nbigger companies might need to keep stock in, or sell from, multiple warehouses in multiple\nlocations.\nSometimes products included in a single sales order might take stock from two (or more) warehouses;\nin Odoo, pulling products from multiple warehouses to satisfy sales demands can be done using virtual locations .\nThe solution in this document, describing the use of a virtual warehouse to fulfill orders for\nmultiple warehouses, has some limitations. Consider the following before proceeding:\n- When the Warehouse field is set to a virtual warehouse on a sales order, the\nvirtual warehouseâs address is indicated on the picking, packing, and delivery forms, not the actual warehouseâs address.\nWhen the Warehouse field is set to a virtual warehouse on a sales order, the\nvirtual warehouseâs address is indicated on the picking, packing, and delivery forms, not the actual warehouseâs address.\n- Each location has a warehouse_id (hidden field). This means that the stock in the virtual\nwarehouse will not be the sum of the stock of the real warehouses, but rather the sum of\nthe stock in the locations whose warehouse ID is the virtual warehouse.\nEach location has a warehouse_id (hidden field). This means that the stock in the virtual\nwarehouse will not be the sum of the stock of the real warehouses, but rather the sum of\nthe stock in the locations whose warehouse ID is the virtual warehouse.\n`warehouse_id`\nPotential limitation for those using two or three-step\ndelivery :\n- The output or packing zone on the various forms is incorrectly listed as the virtual\nwarehouseâs address.\nThe output or packing zone on the various forms is incorrectly listed as the virtual\nwarehouseâs address.\n- There is no workaround for two or three-step deliveries.\nThere is no workaround for two or three-step deliveries.\n- Proceed only if setting a virtual warehouseâs address as the output or packing zone makes\nsense for the companyâs workflow.\nProceed only if setting a virtual warehouseâs address as the output or packing zone makes\nsense for the companyâs workflow.\nIn order to create virtual locations in warehouses, and proceed to the following steps, the Storage Locations and Multi-Step Routes features must be enabled.\nTo do so, go to Inventory app ⣠Configuration ⣠Settings , scroll down to the Warehouse section, and enable the Storage Locations and Multi-Step Routes options. Then, Save the changes to finish.\n\n## Create virtual parent location\n\nBefore creating any virtual stock locations, create a new warehouse that acts as a virtual warehouse â the parent location of other physical warehouses.\nVirtual warehouses are great for companies with multiple physical warehouses. This is because a\nsituation might arise when one warehouse runs out of stock of a particular product, but another\nwarehouse still has stock on-hand. In this case, stock from these two (or more) warehouses could\nbe used to fulfill a single sales order.\nThe âvirtualâ warehouse acts as a single aggregator of all the inventory stored in a companyâs\nphysical warehouses, and is used (for traceability purposes) to create a hierarchy of locations\nin Odoo.\nTo create a new warehouse, go to Inventory app ⣠Configuration ⣠Warehouses ,\nand click Create . From here, the warehouse Name and Short Name can be changed, and other warehouse details can be changed under the Warehouse\nConfiguration tab.\nLastly, click Save to finish creating a regular warehouse. Continue following the\nsteps below to finish configuring the virtual parent warehouse.\n- Warehouse configurations\nWarehouse configurations\n- Incoming and outgoing shipments\nIncoming and outgoing shipments\n- Inter-warehouse replenishment\nInter-warehouse replenishment\n\n## Create child warehouses\n\nCreate at least two child warehouses to link to the virtual warehouse.\nIn order to take stock from multiple warehouses to fulfill a sales order, there needs to be at\nleast two warehouses acting as child locations of the virtual parent location warehouse.\nTo do that, navigate to Inventory app ⣠Configuration ⣠Warehouses , click Create , and follow the preceding instructions to\nconfigure the physical stock locations.\n`VirtualWarehouse`\n`VWH/Stock`\n`WarehouseA`\n`WarehouseB`\n`WHA`\n`WHB`\nWhile the virtual stock location will be changed to âViewâ later, the Location Type must be Internal Location at this point to link the child warehouses in the next section.\n\n## Link child warehouses to virtual stock\n\nTo set physical warehouses as child locations of the virtual location configured in the previous step , navigate to Inventory app â£\nConfiguration ⣠Locations .\nRemove any filters from the search bar. Then, click the physical warehouse Location that\nwas previously created to be a child location (e.g. WHA ), and click Edit .\n`WHA`\nChange the Parent Location field from Physical Locations to the virtual\nwarehouseâs stock location (e.g. VWH/Stock ) from the drop-down menu, and click Save .\n`VWH/Stock`\nTo select the virtual warehouseâs stock location in the Parent Location drop-down\nmenu, the parent warehouse stock location (e.g. VWH/Stock ) must have its Location Type set to Internal Location .\n`VWH/Stock`\nRepeat the preceding steps to configure two or more child warehouses.\nOnce complete, the virtual, parent warehouse (e.g. VWH/Stock ) fulfills orders using stock from\nchild warehouses (e.g. WHA and WHB ), if there is insufficient stock in any one location.\n`VWH/Stock`\n`WHA`\n`WHB`\n\n## Set virtual stock location as âviewâ\n\nSet the virtual stock locationâs Location Type to View , as it is a\nnon-existent location used to group various physical warehouses together.\nTo do that, navigate to Inventory app ⣠Configuration ⣠Locations .\nClick the virtual warehouseâs stock location (e.g. VWH/Stock ) that was previously created , from the Locations list.\n`VWH/Stock`\nOn the location form, under the Additional Information heading, set the Location Type to View . Save the changes.\nTo view the total quantity across all linked child warehouses, go to the product form and\nclick the On Hand smart button.\n\n## Example: sell products from a virtual warehouse\n\nTo sell products from multiple warehouses using a virtual parent location, the database must have at\nleast two warehouses configured â with at least one product, with quantity on-hand in each\nwarehouse, respectively.\nThe following product, Toy soldier , is available at each location with the quantities:\n`Toysoldier`\n- WHA/Stock : 1\n`WHA/Stock`\n- WHB/Stock : 2\n`WHB/Stock`\n- Warehouses WHA and WHB are child warehouses of the virtual warehouse VWH .\nWarehouses WHA and WHB are child warehouses of the virtual warehouse VWH .\n`WHA`\n`WHB`\n`VWH`\nCreate a quotation for the product by navigating to the Sales app and clicking Create . On the quote, add a Customer , and click Add a product to\nadd the two products stored in the two warehouses.\nThen, click the Other Info tab on the sales order form. Under the Delivery section, change the Warehouse field value to the virtual warehouse that was previously created . Next, Confirm the sales order.\nThen, click the Delivery smart button. From the warehouse delivery form, confirm that\nthe Source Location value matches the Warehouse field value from the sales\norder. Both should list the virtual warehouse location.\nFinally, on the warehouse delivery form, under the Detailed Operations tab, confirm that\nthe Locations in the From column for each product match the child locations\nthat are tied to the virtual parent location.\nThe Source Location on the warehouse delivery form, and the Warehouse under the Other Info tab on the sales order, must match for products in the sales\norder to be pulled from different warehouses.\n- If the virtual warehouse is not in the Source Location field on the warehouse\ndelivery form, retry product reservation by: Running the scheduler: turn on developer mode , and then go to Inventory app ⣠Operations ⣠Run Scheduler . Clicking Check Availability on the delivery order.\nIf the virtual warehouse is not in the Source Location field on the warehouse\ndelivery form, retry product reservation by:\n- Running the scheduler: turn on developer mode , and then go to Inventory app ⣠Operations ⣠Run Scheduler .\nRunning the scheduler: turn on developer mode , and then go to Inventory app ⣠Operations ⣠Run Scheduler .\n- Clicking Check Availability on the delivery order.\nClicking Check Availability on the delivery order.\n- If the virtual warehouse is not assigned to the Warehouse field on the sales\norder, then cancel it, and create a new sales order with the virtual warehouse set in the Warehouse field.\nIf the virtual warehouse is not assigned to the Warehouse field on the sales\norder, then cancel it, and create a new sales order with the virtual warehouse set in the Warehouse field.\n- If the Warehouse field is missing on the sales order form, then the multiple child\nwarehouses may not have been set up correctly. Review the previous section to ensure the correct settings.\nIf the Warehouse field is missing on the sales order form, then the multiple child\nwarehouses may not have been set up correctly. Review the previous section to ensure the correct settings.\nTo use a virtual parent location as the default warehouse for sales orders, each salesperson\nshould have the virtual warehouse assigned to them from the drop-down menu next to Default Warehouse on their employee form.", "headings": ["Create virtual parent location", "Create child warehouses", "Link child warehouses to virtual stock", "Set virtual stock location as âviewâ", "Example: sell products from a virtual warehouse"], "doc_id": "0c509e2c661ae389"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category.html", "title": "Storage categories", "module": "inventory", "section": "Storage categories", "text": "# Storage categories\n\nA storage category is used with putaway rules to assign a storage location to\nincoming products while accounting for the capacity of that location. Assigning categories to\nstorage locations tells Odoo these locations meet specific requirements, such as temperature or\naccessibility. Odoo then evaluates these locations, based on defined capacity, and recommends the\nbest one on the warehouse transfer form.\nFollow these steps to complete the setup:\n- Enable features in the settings\nEnable features in the settings\n- Define capacity limitations\nDefine capacity limitations\n- Assign a category to storage locations\nAssign a category to storage locations\n- Add the storage category as an attribute to a putaway rule\nAdd the storage category as an attribute to a putaway rule\n\n## Enable storage categories\n\nTo enable storage categories, go to Inventory app ⣠Configuration ⣠Settings .\nThen, in the Warehouse section, ensure the Storage Locations and Multi-Step Routes features are enabled.\nTo set capacities by package type , also\nmake sure Packages is enabled in the Operations section. Click Save .\n\n## Storage location setup\n\nSet up storage locations to work with the storage category. A parent location must be set up, with\nchild locations (or sublocations ) assigned to it. This is because the putaway ruleâs Store\nto location will be set to the parent location, and the storage category will be set to the child location.\nGo to Inventory app ⣠Configuration ⣠Locations .\nFirst, set up a parent location. This can be as simple as the default WH/Stock location.\nAlternatively, create a new parent location by clicking the New button on the Locations page. On this parent location form, specify a Location Name and Parent Location . Select Internal Location as the Location Type .\n`WH/Stock`\nThen, create sublocations of this parent location by clicking the New button. On the\nlocation form, specify a Location Name , and set the Parent Location to the\nparent location that was just created.\nA beverage company stores all of its cans of lemonade on pallets in one section of its warehouse.\nFirst, they create a location named Pallets in the WH/Stock location. Then, they create two\nsublocations, named PAL1 and PAL2 . Both have WH/Stock/Pallets set as the parent location.\n`Pallets`\n`WH/Stock`\n`PAL1`\n`PAL2`\n`WH/Stock/Pallets`\n\n## Define storage category limitations\n\nA storage category with specific limitations must be created first, before it is applied to\nBefore a storage category is applied to locations, it must be configured with specific limitations\nin order to decide the optimal storage location. Capacity can be limited by weight, product, and\npackage type.\nTo create a storage category, go to Inventory app ⣠Configuration ⣠Storage\nCategories , and click New .\nOn the storage category form, type a name for the category in the Storage Category field.\nWeight limits can be combined with capacity by package or product (e.g. a maximum of one hundred\nproducts with a total weight of two hundred kilograms).\nWhile it is possible to limit capacity by product and package type at the same location, it may\nbe more practical to store items in different amounts across various locations, as shown in the limit capacity by package example.\nThe Allow New Product field defines when the location is considered available to store a\nproduct:\n- If location is empty : a product can be added there only if the location is empty.\nIf location is empty : a product can be added there only if the location is empty.\n- If products are the same : a product can be added there only if the same product is\nalready there.\nIf products are the same : a product can be added there only if the same product is\nalready there.\n- Allow mixed products : several different products can be stored in this location at the\nsame time.\nAllow mixed products : several different products can be stored in this location at the\nsame time.\nOdoo does not automatically split quantities across multiple storage locations. If an\nincoming receipt contains several units or packages and the first recommended location exceeds\nits capacity, Odoo still routes all items to that same location instead of selecting another one\nwith available space.\n(Example: If a location can hold 10 units and 12 units arrive, all 12 are still assigned to that\nlocation.)\n\n### Limit capacity by weight\n\nOn a storage category form ( Inventory app ⣠Configuration ⣠Storage\nCategories ), set a maximum product weight in the Max Weight field. This limit applies\nto each location assigned this storage category.\nA maximum product weight can be set in the Max Weight field. This limit applies\nto each location assigned this storage category. If a product weight is defined, the value must be\nset to greater than 0 .\n`0`\n\n### Limit capacity by product\n\nIn the Capacity by Product tab, click Add a Line to input items, and enter\nIn the Capacity by Product tab, click Add a Line to enter a product, and set\nthe maximum capacity that should be stored at each location in the Quantity field.\nEnsure only a maximum of five Large Cabinets and two Corner Desk Right Sit are stored at a\nsingle storage location by specifying those amounts in the Capacity by Product tab.\nTo ensure only a maximum of five Large Cabinets and two Corner Desk Right Sit are stored at a\nsingle storage location, specify those amounts in the Capacity by Product tab.\n`LargeCabinets`\n`CornerDeskRightSit`\n`LargeCabinets`\n`CornerDeskRightSit`\n\n### Limit capacity by package type\n\nFor companies using packages , it becomes\npossible to ensure real-time storage capacity checks, based on package types (e.g., crates, bins,\nLimiting capacity by package makes it\npossible to enforce real-time storage capacity checks based on package type (e.g., crates, bins,\nboxes, etc.).\nCreate the package type before assigning it to a\nstorage category. Create it on the Inventory tab of the product form (in the Packaging section), or create it from the Product Packagings page. Be sure\nClick Add a line to add a package type to the storage category. Alternatively, create a\nnew package type on the Inventory tab of the product form (in the Packaging section), or from the Product Packagings page.\nTo help create putaway rules for pallet-stored items, create the High frequency pallets storage\ncategory.\n`Highfrequencypallets`\nIn the Capacity by Package tab, specify the number of packages for the designated Package Type , and set a maximum of 2.00 Pallets for a specific location.\n`2.00`\n`Pallets`\nOdoo does not automatically split quantities across multiple storage locations. If an\nincoming receipt contains several units or packages and the first recommended location exceeds\nits capacity, Odoo still routes all items to that same location instead of selecting another one\nwith available space.\n(Example: If a location can hold 10 units and 12 units arrive, all 12 are still assigned to that\nlocation.)\n\n## Assign storage locations\n\nAfter the storage category is created, it can be assigned to the sublocations. Go to Inventory app ⣠Configuration ⣠Locations , and open the desired sublocation.\nThen, select the created category in the Storage Category field.\nAssign the High frequency pallets storage category (which limits pallets stored at any location\nto two pallets) to the WH/Stock/Pallets/PAL1 sublocation.\n`Highfrequencypallets`\n`WH/Stock/Pallets/PAL1`\nRepeat this step for all sublocations to which the storage category should apply.\nOn the storage category form, the Locations smart button shows\nwhich storage locations the category has been assigned to.\n\n## Create a putaway rule\n\nWith the storage category and locations set up, create the putaway rule by navigating\nto Inventory app ⣠Configuration ⣠Putaway Rules .\nClick the New button to create the putaway rule. Specify a location in the Store to field.\nUse the Sublocation field to specify that you want to use a storage category on the\nsublocations of the Store to field:\n- Last Used : The last location that had a move associated with it for that product or\nproduct category is used. If there is no last location used, the destination is whatever is\nspecified in the Store to field.\nLast Used : The last location that had a move associated with it for that product or\nproduct category is used. If there is no last location used, the destination is whatever is\nspecified in the Store to field.\n- Closest Location : The locations specified as part of the storage category are used. A\nstorage category is mandatory in the Having Category field. The locations in the\nstorage category must be sublocations of the location in the Store to field. If the\nclosest locations in the storage category are full, the Store to location is used.\nClosest Location : The locations specified as part of the storage category are used. A\nstorage category is mandatory in the Having Category field. The locations in the\nstorage category must be sublocations of the location in the Store to field. If the\nclosest locations in the storage category are full, the Store to location is used.\nContinuing the example from above, the High frequency pallets storage category is assigned to\nthe putaway rule directing pallets of lemonade to locations with the High frequency pallets storage category assigned to them .\n`Highfrequencypallets`\n`Highfrequencypallets`\nIf products are not routing to secondary locations for a storage category and a product weight is\ndefined, verify that the storage categoryâs Max Weight value is set to a number\ngreater than 0 .\n`0`\n\n## Use case: limit capacity by package\n\nTo limit the capacity of a storage location by a specific number of packages, create a storage\ncategory with a Capacity By Package .\nContinuing the examples from above, the High frequency pallets storage category is assigned to the PAL1 and PAL2 locations.\n`Highfrequencypallets`\n`PAL1`\n`PAL2`\nThen, putaway rules are set, so that any pallets received in\nthe warehouse are directed to be stored in PAL1 and PAL2 locations.\n`PAL1`\n`PAL2`\nDepending on the number of pallets on-hand at each of the storage locations, when two pallets of\nlemonade cans is received, the following scenarios happen:\n- If PAL1 and PAL2 are empty, the pallet is redirected to WH/Stock/Pallets/PAL1 .\nIf PAL1 and PAL2 are empty, the pallet is redirected to WH/Stock/Pallets/PAL1 .\n`PAL1`\n`PAL2`\n`WH/Stock/Pallets/PAL1`\n- If PAL1 is full, the pallet is redirected to WH/Stock/Pallets/PAL2 .\nIf PAL1 is full, the pallet is redirected to WH/Stock/Pallets/PAL2 .\n`PAL1`\n`WH/Stock/Pallets/PAL2`\n- If PAL1 and PAL2 are full, the pallet is redirected to WH/Stock/Pallets .\nIf PAL1 and PAL2 are full, the pallet is redirected to WH/Stock/Pallets .\n`PAL1`\n`PAL2`\n`WH/Stock/Pallets`\n- If PAL1 is partially full (for example, with one pallet), Odoo treats more than one received\npallet as a single pallet on the receipt. You must manually separate the two pallets into separate\nstorage locations. Click the Open Move icon to the right of the Units field, and then in the Open: Stock move box, click Add a\nline . Finally, split the receipt by quantity into separate locations, then click Save .\nIf PAL1 is partially full (for example, with one pallet), Odoo treats more than one received\npallet as a single pallet on the receipt. You must manually separate the two pallets into separate\nstorage locations. Click the Open Move icon to the right of the Units field, and then in the Open: Stock move box, click Add a\nline . Finally, split the receipt by quantity into separate locations, then click Save .\n`PAL1`", "headings": ["Enable storage categories", "Storage location setup", "Define storage category limitations", "Limit capacity by weight", "Limit capacity by product", "Limit capacity by package type", "Assign storage locations", "Create a putaway rule", "Use case: limit capacity by package"], "doc_id": "64d706e45d176b92"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/use_routes.html", "title": "Routes and push/pull rules", "module": "inventory", "section": "Routes and push/pull rules", "text": "# Routes and push/pull rules\n\nRoutes in Odoo control the movement of products between different locations, whether internal or\nexternal, using push and pull rules. Once set up, these rules help automate the logistics of product\nmovement based on specific conditions.\n- Odoo Tutorials: Routes\nOdoo Tutorials: Routes\n- Standard routes in Odoo\nStandard routes in Odoo\nRoutes are applicable on products, product categories, shipping methods, packagings , and on the sales order line.\n\n## About routes and terminology\n\nIn a generic warehouse, there are receiving docks, a quality control area, storage locations,\npicking and packing areas, and shipping docks. All products go through all these locations. As the\nproducts move through the locations, each location triggers the productsâ specified route and\nrules.\nIn this example, vendor trucks unload pallets of ordered products at the receiving docks. Operators\nthen scan the products in the receiving area. Depending on the productâs route and rules, some of\nthese products are sent to a quality control area (for example, products that are components used\nin the manufacturing process), while others are directly stored in their respective locations.\nHere is an example of a fulfillment route. In the morning, items are picked for all the orders that\nneed to be prepared during the day. These items are picked from storage locations and moved to the\npicking area, close to where the orders are packed. Then, the orders are packed in their respective\nboxes, and conveyor belts bring them to the shipping docks, ready to be delivered to customers.\n\n### Push rules\n\nPush rules are used to supply products into a storage locations as soon as they arrive at a\nspecific receiving location.\nPush rules can only be triggered if there are no pull rules that have already generated the\nproduct transfers.\nIn a one-step receipt route , which uses one push rule, when a\nproduct arrives in the warehouse, a push rule can automatically transfer it to the Storage\nLocation . Different push rules can be applied to different products, allowing for customized\nstorage locations.\nPush rule for the âReceive in one stepâ route.\nFor more information about configuring rules, skip to the Configure rules section .\n\n### Pull rules\n\nPull rules trigger product moves on demand, such as a sales order or a need to restock .\nPull rules work backward from the demand location. For example, in a two-step delivery route, where items move from Stock to Output before being delivered to the Customer Location , the pull rule first creates a transfer from Output to the customer. If the product is not at Output , another pull rule creates a transfer\nfrom Stock to Output . The warehouse workers then process these transfers in the reverse order:\npicking, then shipping.\nPull rules for the âDeliver in two stepsâ route.\nFor more information about configuring rules, skip to the Configure rules section .\n\n## Configuration\n\nSince Routes are a collection of Push and Pull Rules , Odoo helps you manage advanced route\nconfigurations such as:\n- Manage product manufacturing chains.\nManage product manufacturing chains.\n- Manage default locations per product.\nManage default locations per product.\n- Define routes within the stock warehouse according to business needs, such as quality control,\nafter-sales services, or supplier returns.\nDefine routes within the stock warehouse according to business needs, such as quality control,\nafter-sales services, or supplier returns.\n- Help rental management by generating automated return moves for rented products.\nHelp rental management by generating automated return moves for rented products.\nTo configure a route for a product, first, open the Inventory application and go to Configuration ⣠Settings . Then, in the Warehouse section, enable the Multi-Step Routes feature and click Save .\nThe Storage Locations feature is automatically activated with the Multi-Step Routes feature.\nOnce this first step is completed, the user can use pre-configured routes that come with Odoo, or\nthey can create custom routes.\n\n### Pre-configured routes\n\nTo access Odooâs pre-configured routes, go to Inventory ⣠Configuration â£\nWarehouses . Then, open a warehouse form. In the Warehouse Configuration tab, the user\ncan view the warehouseâs pre-configured routes for Incoming Shipments and Outgoing Shipments .\nSome more advanced routes, such as pick-pack-ship, are also available. The user can select the\nroute that best fits their business needs. Once the Incoming Shipments and Outgoing Shipments routes are set, head to Inventory ⣠Configuration\n⣠Routes to see the specific routes that Odoo generated.\nOn the Routes page, click on a route to open the route form. In the route form, the\nuser can view which places the route is Applicable On . The user can also set the route\nto only apply on a specific Company . This is useful for multi-company environments; for\nexample, a user can have a company and warehouse in Country A and a second company and warehouse in\nCountry B.\nApplicable on packagings\nAt the bottom of the route form, the user can view the specific Rules for the route.\nEach Rule has an Action , a Source Location , and a Destination Location .\n\n### Custom Routes\n\nTo create a custom route, go to Inventory ⣠Configuration ⣠Routes , and click\non Create . Next, choose the places where this route can be selected. A route can be\napplicable on a combination of places.\nEach place has a different behavior, so it is important to tick only the useful ones and adapt each\nroute accordingly. Then, configure the Rules of the route.\nIf the route is applicable on a product category, the route still needs to be manually set on the\nproduct category form by going to Inventory ⣠Configuration ⣠Product\nCategories . Then, select the product category and open the form. Next, click Edit and\nunder the Logistics section, set the Routes .\nWhen applying the route on a product category, all the rules configured in the route are applied to every product in the category. This can be helpful if the business uses the dropshipping\nprocess for all the products from the same category.\nThe same behavior applies to the warehouses. If the route can apply to Warehouses , all\nthe transfers occurring inside the chosen warehouse that meet the conditions of the routeâs rules\nwill then follow that route.\nIf the route is applicable on Sales Order Lines , it is more or less the opposite. The\nroute must be manually chosen when creating a quotation. This is useful if some products go through\ndifferent routes.\nRemember to toggle the visibility of the Route column on the quotation/sales order.\nThen, the route can be chosen on each line of the quotation/sales order.\nFinally, there are routes that can be applied to products. Those work more or less like the product\ncategories: once selected, the route must be manually set on the product form.\nTo set a route on a product, go to Inventory ⣠Products ⣠Products and select\nthe desired product. Then, go to the Inventory tab and under the Operations section, select the Routes .\nRules must be set on the route in order for the route to work.\n\n#### Rules\n\nThe rules are defined on the route form. First, go to Inventory ⣠Configuration\n⣠Routes and open the desired route form. Next, click Edit and in the Rules section, click on Add a line .\nThe available rules trigger various actions. If Odoo offers Push and Pull rules, others are\nalso available. Each rule has an Action :\n- Pull From : this rule is triggered by a need for the product in a specific location.\nThe need can come from a sales order being validated or from a manufacturing order requiring a\nspecific component. When the need appears in the destination location, Odoo generates a picking to\nfulfill this need.\nPull From : this rule is triggered by a need for the product in a specific location.\nThe need can come from a sales order being validated or from a manufacturing order requiring a\nspecific component. When the need appears in the destination location, Odoo generates a picking to\nfulfill this need.\n- Push To : this rule is triggered by the arrival of some products in the defined source\nlocation. In the case of the user moving products to the source location, Odoo generates a picking\nto move those products to the destination location.\nPush To : this rule is triggered by the arrival of some products in the defined source\nlocation. In the case of the user moving products to the source location, Odoo generates a picking\nto move those products to the destination location.\n- Pull & Push : this rule allows the generation of pickings in the two situations\nexplained above. This means that when products are required at a specific location, a transfer is\ncreated from the previous location to fulfill that need. This creates a need in the previous\nlocation and a rule is triggered to fulfill it. Once the second need is fulfilled, the products\nare pushed to the destination location and all the needs are fulfilled.\nPull & Push : this rule allows the generation of pickings in the two situations\nexplained above. This means that when products are required at a specific location, a transfer is\ncreated from the previous location to fulfill that need. This creates a need in the previous\nlocation and a rule is triggered to fulfill it. Once the second need is fulfilled, the products\nare pushed to the destination location and all the needs are fulfilled.\n- Buy : when products are needed at the destination location, a request for quotation is\ncreated to fulfill the need.\nBuy : when products are needed at the destination location, a request for quotation is\ncreated to fulfill the need.\n- Manufacture : when products are needed in the source location, a manufacturing order\nis created to fulfill the need.\nManufacture : when products are needed in the source location, a manufacturing order\nis created to fulfill the need.\nThe Operation Type must also be defined on the rule. This defines which kind of picking\nis created from the rule.\nIf the ruleâs Action is set to Pull From or Pull & Push , a Supply Method must be set. The Supply Method defines what happens at the\nsource location:\n- Take From Stock : the products are taken from the available stock of the source\nlocation.\nTake From Stock : the products are taken from the available stock of the source\nlocation.\n- Trigger Another Rule : the system tries to find a stock rule to bring the products to\nthe source location. The available stock is ignored.\nTrigger Another Rule : the system tries to find a stock rule to bring the products to\nthe source location. The available stock is ignored.\n- Take From Stock, if Unavailable, Trigger Another Rule : the products are taken from\nthe available stock of the source location. If there is no stock available, the system tries to\nfind a rule to bring the products to the source location.\nTake From Stock, if Unavailable, Trigger Another Rule : the products are taken from\nthe available stock of the source location. If there is no stock available, the system tries to\nfind a rule to bring the products to the source location.\n\n## Example flow\n\nIn this example, letâs use a custom Pick - Pack - Ship route to try a full flow with an advanced\ncustom route.\nFirst, a quick look at the routeâs rules and their supply methods. There are three rules, all Pull From rules. The Supply Methods for each rule are the following:\n- Take From Stock : When products are needed in the WH/Packing Zone , picks (internal transfers from WH/Stock to WH/Packing Zone ) are created from WH/Stock to fulfill the need.\nTake From Stock : When products are needed in the WH/Packing Zone , picks (internal transfers from WH/Stock to WH/Packing Zone ) are created from WH/Stock to fulfill the need.\n- Trigger Another Rule : When products are needed in WH/Output , packs (internal transfers from WH/Packing Zone to WH/Output ) are created from WH/Packing Zone to fulfill the need.\nTrigger Another Rule : When products are needed in WH/Output , packs (internal transfers from WH/Packing Zone to WH/Output ) are created from WH/Packing Zone to fulfill the need.\n- Trigger Another Rule : When products are needed in Partner\nLocations/Customers , delivery orders are created from WH/Output to fulfill the\nneed.\nTrigger Another Rule : When products are needed in Partner\nLocations/Customers , delivery orders are created from WH/Output to fulfill the\nneed.\nThis means that, when a customer orders products that have a pick - pack - ship route set on it,\na delivery order is created to fulfill the order.\nIf the source document for multiple tranfers is the same sales order, the status is not the same.\nThe status will be Waiting Another Operation if the previous transfer in the list is\nnot done yet.\nTo prepare the delivery order, packed products are needed at the output area, so an internal\ntransfer is requested from the packing zone.\nObviously, the packing zone needs products ready to be packed. So, an internal transfer is\nrequested to the stock and employees can gather the required products from the warehouse.\nAs explained in the introduction of the documentation, the last step in the process (for this\nroute, the delivery order) is the first to be triggered, which then triggers other rules until we\nreach the first step in the process (here, the internal transfer from the stock to the packing\narea). Now, everything is ready to be processed so the customer can get the ordered items.\nIn this example, the product is delivered to the customer when all the rules have been triggered and\nthe transfers are done.", "headings": ["About routes and terminology", "Push rules", "Pull rules", "Configuration", "Pre-configured routes", "Custom Routes", "Example flow"], "doc_id": "96fa11483c386908"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/picking_methods/batch.html", "title": "Batch picking", "module": "inventory", "section": "Batch picking", "text": "# Batch picking\n\nBatch picking enables a single picker to handle multiple orders at once, reducing the number of\ntimes needed to navigate to a warehouse location. When picking in batches, orders are grouped and\nconsolidated into a picking list. After the picking, the batch is taken to an output location, where\nthe products are sorted into their respective delivery packages.\nSince orders must be sorted at the output location after being picked, this picking method suits\nbusinesses with a few products that are ordered often. Storing high-demand items in easily\naccessible locations can increase the number of orders that are fulfilled efficiently.\nBatch picking is ideal for industries or warehouses that handle high order volumes with a stable\ndemand. This method increases efficiency by allowing workers to pick items for multiple orders in\none trip through the warehouse, reducing travel time and boosting productivity.\n\n## Configuration\n\nTo activate the batch picking option, begin by going to Inventory app â£\nConfiguration ⣠Settings . Under the Operations section, check the Batch,\nWave & Cluster Transfers box.\nSince batch picking is a method to optimize the pick operation in Odoo, the Storage\nLocations and Multi-Step Routes options under the Warehouse heading must\nalso be checked on this settings page. When finished, click Save .\n- Delivery in two steps\nDelivery in two steps\n- Three-step delivery\n\n## Create batch transfers\n\nTo manually group transfers directly from the Inventory app , hover over the\ndesired operation type from the Inventory Overview menu (e.g. the Receipts Kanban card), click the (vertical ellipsis) icon, then select Prepare Batch .\nOn the batch transfer form, fill the following fields out accordingly:\n- Responsible : employee assigned to the picking. Leave this field blank if any worker\ncan fulfill this picking.\nResponsible : employee assigned to the picking. Leave this field blank if any worker\ncan fulfill this picking.\n- Operation Type : from the drop-down menu, select the operation type under which the\npicking is categorized.\nOperation Type : from the drop-down menu, select the operation type under which the\npicking is categorized.\n- Scheduled Date : specifies the date by which the Responsible person should\ncomplete the transfer to the output location.\nScheduled Date : specifies the date by which the Responsible person should\ncomplete the transfer to the output location.\nTo learn more about the Dock Location , Vehicle , and Vehicle\nCategory fields, see dispatch management system .\nNext, in the Transfers list, click Add a line to open the Add:\nTransfers window.\nIf the Operation Type field was filled, the list will filter transfer records matching\nthe selected Operation Type .\nClick the New button to create a new transfer.\nOnce the transfer records are selected, click Confirm to confirm the batch picking.\nA new batch transfer is assigned to the Responsible , Joel Willis , for the Pick Operation Type . The Scheduled Date is set to August 11 .\n`JoelWillis`\n`Pick`\n`August11`\nClicking the Add a line button opens the Add:Transfers window,\ndisplaying only pickings. This is because the Operation Type was set to Pick on the\nbatch transfer form.\n`Pick`\nClick the checkbox to the left of the transfers, WH/PICK/00001 and WH/PICK/00002 , to include\nthem in the new transfer. Then, click the Select button to close the Add:Transfers window.\n`WH/PICK/00001`\n`WH/PICK/00002`\n\n### Add batch from transfers list\n\nAnother method of creating batch transfers is available using the Add to batch option in\na list. Navigate to the Inventory app ⣠Operations drop-down menu, and select any\nof the Transfers to open a filtered list of transfers.\nOn the transfers list, select the checkbox to the left of the selected transfers to add in a batch.\nNext, navigate to the Actions button, and click Add to batch from the resulting drop-down menu.\nDoing so opens an Add to batch pop-up window, wherein the employee Responsible for the picking can be assigned.\nChoose from the two radio options to add to an existing batch transfer or create a new batch transfer .\nAdd a Description for this batch.\nThe Description field can be used to add additional information to help workers\nidentify the source of the batch, where to place the batch, what shipping containers to use, etc.\nTo create a batch to be processed at a later time, select the Draft checkbox.\nConclude the process by clicking Confirm .\n\n### Automatic batches\n\nBatches can be automatically created and assigned based on several criteria. The Automatic Batches option is defined on the operation type level.\nIn a multi-steps delivery process, the picking operation can be grouped by customer, while the\nshipping operation can be organized by carrier and destination country.\nTo enable Automatic Batches , navigate to Inventory app ⣠Configuration â£\nOperation Types , and select the desired operation type (e.g. Delivery , Pick , etc). Then, select one or more Batch Grouping criteria by ticking the\nappropriate checkbox. Even if more than one grouping option is selected, only one batch is created.\nBatches can be automatically generated based on the following criteria:\n- Contact\n- Carrier\n- Destination Country\n- Source Location\n- Destination Location\n\n## Process batch transfer\n\nHandle batch transfers in the Inventory app ⣠Operations ⣠Batch Transfers page.\nFrom here, select the intended transfer from the list. Then, on the batch transfer form, input the Done quantities for each product, under the Detailed Operations tab.\nFinally, select Validate to complete the picking.\nBe certain the batch transfer is complete when the Validate button is highlighted in\npurple. If the Check Availability button is highlighted instead, that means there are\nitems in the batch that are currently not available in-stock.\nIn a batch transfer involving products from pickings, WH/PICK/00001 and WH/PICK/00002 , the Detailed Operations tab shows that the product, Cabinet with Doors , has been picked\nbecause the Done column matches the value in the Reserved column.\nHowever, 0.00 quantities have been picked for the other product, Cable Management Box .\n`WH/PICK/00001`\n`WH/PICK/00002`\n`CabinetwithDoors`\n`0.00`\n`CableManagementBox`\nOnly in-stock products are visible in the Detailed Operations tab.\nTo view the complete product list, switch to the Operations tab. On this list, the Demand column indicates the required quantity for the order. The Reserved column shows the available stock to fulfill the order. Lastly, the Done column specifies\nthe products that have been picked, and are ready for the next step.\nThe product, Desk Pad , from the same batch as the example above , is only visible in the Operations tab because there are no Reserved quantities in stock to fulfill the batch transfer.\n`DeskPad`\nClick the Check Availability button to search the stock again for available products.\n\n### Create backorder\n\nOn the batch transfer form, if the Done quantity of the product is less than the Reserved quantity, a pop-up window appears.\nThis pop-up window provides the option: Create Backorder? .\nClicking the Create Backorder button automatically creates a new batch transfer.\nWhen creating a new backorder, the transfers that have not been validated in the batch will\nbe removed from it.\nClick No Backorder to finish the picking without creating another batch picking.\nClick Discard to cancel the validation, and return to the batch transfer form.", "headings": ["Configuration", "Create batch transfers", "Add batch from transfers list", "Automatic batches", "Process batch transfer", "Create backorder"], "doc_id": "d1e8067747fa7655"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/picking_methods/cluster.html", "title": "Cluster picking", "module": "inventory", "section": "Cluster picking", "text": "# Cluster picking\n\nCluster picking is an advanced picking method that combines the efficiency of batch picking with immediate sorting during the picking process. It is best suited\nfor warehouses with high order volumes where organization and speed are critical.\nUnlike batch picking, which requires a separate sorting step after picking, cluster picking sorts\nitems directly into designated bins or containers for each sales order (SO). This eliminates the\nneed for post-picking consolidation, making it ideal for operations prioritizing speed and accuracy.\nCluster picking is particularly effective in environments where immediate organization is crucial,\nand orders contain a mix of items that need precise sorting during, rather than after, the picking\nprocess.\nHowever, cluster picking does have some disadvantages. For instance, urgent orders cannot be\nprioritized, and optimized batches must be manually created beforehand. As a result, the picking\nprocess can lead to bottlenecks.\n- SO 1 calls for one apple and orange\nSO 1 calls for one apple and orange\n- SO 2 calls for one apple and banana\nSO 2 calls for one apple and banana\n- SO 3 calls for one apple, orange, and banana\nSO 3 calls for one apple, orange, and banana\nApples are stored in Shelf A, oranges in Shelf B, and bananas in Shelf C.\nTo pick products for three orders at once, the cart is loaded with three empty packages.\nStarting at Shelf A, the picker places apples into each package. Next, the picker navigates to\nShelf B, and places oranges in the packages designated for SO 1 and SO 3. Finally, the picker\npushes the cart to Shelf C, and loads packages for SO 2 and SO 3 with a banana, each.\nWith the packages for all three SOs packed, the picker pushes the cart to the output location,\nwhere the packages are sealed and prepared for shipment.\n\n## Configuration\n\nTo enable cluster picking, begin by navigating to Inventory app ⣠Configuration\n⣠Settings . Under the Operations heading, activate the Packages and Batch, Wave & Cluster Transfers options.\nSince batch picking is used to optimize the pick operation in Odoo, the Storage\nLocations and Multi-Step Routes options, under the Warehouse heading, must\nalso be checked on this settings page.\nStorage locations allow products to be stored in specific locations they can be picked from, while multi-step routes enable the picking operation itself.\nWhen finished, click Save .\n\n### Packages setup\n\nTo configure the containers to be used during the picking process, navigate to Inventory app ⣠Products ⣠Packages . Click the New button to create\na new package.\nOn the new package form, the Package Reference is pre-filled with the next available PACK number in the system. Pack Date is automatically set to the creation date of the\nform.\n`PACK`\nSet the Package Use field to Reusable Box .\nA package intended for cluster picking is named CLUSTER-PACK-3 for easy identification. For\nthis workflow, the products are directly packed using their intended shipping boxes, so Package Use is set to Reusable Box .\n`CLUSTER-PACK-3`\n\n## Create cluster batch\n\nTo create a cluster, navigate to Inventory app and select the operation type card, Delivery Orders or Pick (whichever is the first operation in the delivery\nflow).\nCluster pick batches can be created for outgoing shipments in one, two, or three steps.\n- Delivery in one step\n- Delivery in two steps\nDelivery in two steps\n- Delivery in three steps\nDelivery in three steps\nClick the checkbox to the left of the corresponding outgoing operation to add them to the batch.\nWith the desired pickings selected, click the Actions button, and select\nthe Add to batch option from the resulting drop-down menu.\nTo create a cluster batch, as shown in the example above , in a warehouse configured with two-step outgoing\nshipments, the following pick operations are selected:\n- WH/PICK/00007 : linked to SO 88 for one apple and orange.\nWH/PICK/00007 : linked to SO 88 for one apple and orange.\n`WH/PICK/00007`\n- WH/PICK/00008 : linked to SO 89 for one apple and banana.\nWH/PICK/00008 : linked to SO 89 for one apple and banana.\n`WH/PICK/00008`\n- WH/PICK/00009 : linked to SO 90 for one apple, orange, and banana.\nWH/PICK/00009 : linked to SO 90 for one apple, orange, and banana.\n`WH/PICK/00009`\nDoing so opens an Add to batch pop-up window, wherein the employee Responsible for the picking can be assigned.\nChoose from the two options in the Add to field to either: add to an existing\nbatch transfer , or create a new batch transfer .\nThen, add a Description for this batch.\nThe Description field can be used to add additional information to help workers\nidentify the source of the batch, where to place the batch, what shipping containers to use, etc.\nTo create draft batch pickings to be confirmed at a later date, select the Draft checkbox.\nConclude the process by clicking Confirm .\n\n## Process batches\n\nTo process batches, navigate to Inventory app ⣠Operations ⣠Batch Transfers .\nClick on a batch to select it.\nIn the Detailed Operations tab, products that are to be picked are grouped by location.\nSet the Destination Package to the package dedicated to that particular order.\nProcess the cluster batch for the three orders of apples, oranges, and bananas example by assigning each picking to a dedicated package.\nAt the storage location for apples, WH/Stock/Shelf A , assign the apples in all three pickings\nto one of the three reusable packages, CLUSTER-PACK-1 , CLUSTER-PACK-2 , or CLUSTER-PACK-3 .\n`WH/Stock/ShelfA`\n`CLUSTER-PACK-1`\n`CLUSTER-PACK-2`\n`CLUSTER-PACK-3`\nRecord this in Odoo using the Destination Package field in the Detailed\nOperations tab.", "headings": ["Configuration", "Packages setup", "Create cluster batch", "Process batches"], "doc_id": "f619c3fe61cd8762"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/picking_methods/wave.html", "title": "Wave transfers", "module": "inventory", "section": "Wave transfers", "text": "# Wave transfers\n\nWhile a batch transfer is a group of several pickings, a wave transfer contains certain parts\nof different pickings. In Odoo, wave transfers are batch transfers with an extra step: transfers are\nsplit before being grouped in a batch.\nWave picking is ideal for warehouses that need to optimize the handling of high order volumes while\nmanaging complex picking criteria. With wave transfers, orders are grouped into waves based on\nfactors like product location, category, or scheduled shipping times. Each wave is assigned to a\ndifferent employee for the most efficient execution.\nWave picking is particularly useful for operations where multiple sales orders (SOs), or a single\norder, must be picked across different waves. This approach enables flexible scheduling, allowing\nwarehouses to align picking activities with shipping deadlines, or resource availability.\n- SO 1 calls for one apple and one orange\nSO 1 calls for one apple and one orange\n- SO 2 calls for one apple and one banana\nSO 2 calls for one apple and one banana\n- SO 3 calls for one apple, one orange, and two bananas\nSO 3 calls for one apple, one orange, and two bananas\nApples are stored in Shelf A, oranges in Shelf B, and bananas in Shelf C. A warehouse employee is\nassigned to the wave, and is provided with the following instructions:\n- Shelf A: Pick three apples. Place them into a central cart designated for the wave.\nShelf A: Pick three apples. Place them into a central cart designated for the wave.\n- Shelf B: Pick two oranges. Add them to the same cart.\nShelf B: Pick two oranges. Add them to the same cart.\n- Shelf C: Pick three bananas. Add them to the cart.\nShelf C: Pick three bananas. Add them to the cart.\nThe employee then takes the cart to the sorting/packing station. Items are then sorted and packed\ninto individual orders.\n\n## Configuration\n\nTo enable wave picking, begin by navigating to Inventory ⣠Configuration â£\nSettings . In the Operations section, tick the Batch, Wave & Cluster\nTransfers checkbox to enable the setting.\nNext, the Storage Locations and Multi-Step Routes options, under the Warehouse heading, must also be checked on this settings page.\nStorage locations allow products to be stored in specific locations they can be picked from, while multi-step routes enable the picking operation itself.\nThen, click Save to save the changes.\n\n## Create a wave\n\nWave transfers can only contain product lines from transfers of the same operation type. To view\nall the transfers and product lines in a specific operation, navigate to the Inventory app . Find the desired Kanban card, then click the (vertical ellipsis) icon to open the options menu. Under New , click Prepare Wave .\n\n### Create a new wave\n\nOn the Prepare Wave pop-up, stock moves lines are grouped by source location. Select the\ncheckboxes for the product lines that should be added. Then, click Add to Wave .\nUse the Filters in the search bar to group lines with the same product, location,\ncarrier, etc.\n\n### Add products to an existing wave\n\nTo add products to an existing wave, navigate to Inventory ⣠Operations ⣠Wave\nTransfers . Click on the appropriate wave from the list to open it.\nUnder the Detailed Operations tab, click Add a line . Then, in the Product field, search for the desired product.\n\n## Process a wave\n\nTo view all wave transfers and their statuses, go to Inventory ⣠Operations â£\nWave Transfers . Click on the appropriate wave from the list to open it.\nTo assign the wave to a specific employee, click the Responsible field and select the\nappropriate name from the drop-down list.\nTo designate a Dock location , select an option from the\ndrop-down menu in the Docks Location field.\nThe dispatch management system feature in Odoo is used to plan and build shipments. Assigning batches to loading docks ensures\nthe right products are pack into the appropriate trucks for delivery.\nSelect a Vehicle from the drop-down. Making a selection in this field automatically\nupdates the Vehicle Category field.\nEnter a Description for this wave, if desired.\nThe Description field is automatically generated for automatic waves .\n\n## Automatic waves\n\nWaves can be automatically created and assigned based on different criteria. The Automatic Batches option is defined on the operation type level, which enables the creation of waves with distinct\ngrouping criteria for each operation type.\nTo enable Automatic Batches , navigate to Inventory app ⣠Configuration â£\nOperation Types , and select the desired operation type (e.g. Delivery , Pick , etc). Under the Batch & Wave Transfers heading, tick the Automatic Batches checkbox.\nThen, select one or more Wave Grouping criteria by ticking the appropriate checkbox.\nEven if more than one grouping option is selected, only one wave is created.\nAutomatic waves can be created based on the following criteria:\n- Product : Split transfers by product, then group transfers that have the same product.\nProduct : Split transfers by product, then group transfers that have the same product.\n- Product Category : Split transfers by product category, then group transfers that have\nthe same product category.\nProduct Category : Split transfers by product category, then group transfers that have\nthe same product category.", "headings": ["Configuration", "Create a wave", "Create a new wave", "Add products to an existing wave", "Process a wave", "Automatic waves"], "doc_id": "744a18cd134babb9"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies.html", "title": "Removal strategies", "module": "inventory", "section": "Removal strategies", "text": "# Removal strategies\n\nFor companies with warehouses, removal strategies determine which products are taken from the\nwarehouse, and when . For example, for perishable products, prioritizing the picking of goods\nwith the nearest expiration date helps minimize food spoilage.\nThe following columns in the table below list the removal strategies available in Odoo, and detail\nhow pickings are determined along with the picking order. Leverage these removal strategies to have\nOdoo automatically select how products are selected for orders:\nAlphanumeric name of location\nQuantity closest to fulfilling demand\nFor comprehensive examples for how to use each removal strategy, refer to each individual\ndocumentation page.\n\n## Configuration\n\nRemoval strategies are set on either the product category or storage location.\nConfigure removal strategies on the location by going to Inventory ⣠Configuration\n⣠Locations , and selecting the desired location. On the location form, choose a removal strategy\nfrom the Removal Strategy fieldâs drop-down menu options.\nTo set a removal strategy on a location, the Storage Locations and Multi-Step Routes settings must be enabled in Inventory â£\nConfiguration ⣠Settings .\nThese features are only necessary when setting the removal strategy on a location.\nConfigure removal strategies on product categories by going to Inventory â£\nConfiguration ⣠Product Categories and selecting the intended product category. Next, choose a\nremoval strategy from the Force Removal Strategy drop-down menu options.\nWhen there are different removal strategies applied on both the location and product category for\na product, the value set on the Force Removal Strategy field set on a Product Category form is applied as top priority.\n\n## Required features\n\nWhile some removal strategies are available by default, some additional features must be enabled\nin Inventory ⣠Configuration ⣠Settings for the removal strategy option to\nappear in the drop-down menu of the Force Removal Strategy or Removal\nStrategy field.\nRefer to the table below for a summary of required features. Otherwise, refer to the dedicated\nsections for the removal strategy for more details on requirements and usage.\nLots & Serial Numbers\nLots & Serial Numbers\nLots & Serial Numbers, Expiration Date\nStorage Locations, Multi-Step Routes\n\n### Lots and serial numbers\n\nLots and serial numbers differentiate identical products and track information like arrival or\nexpiration dates. To enable this feature, navigate to Inventory ⣠Configuration\n⣠Settings . Under the Traceability heading, check the box beside Lots &\nSerial Numbers to enable the feature.\nNext, ensure the intended product is tracked by lots or serial numbers by navigating to the product\nform through Inventory ⣠Products ⣠Products , and selecting the desired\nproduct. On the product form, switch to the Inventory tab, and under the Tracking field, select either the By Unique Serial Number or By\nLots options.\nAfter enabling the features, assign lot or serial numbers to products using an inventory\nadjustment or during product\nreception .\n\n### Locations and routes\n\nStorage locations and multi-step routes are necessary features for setting all types of\nremoval strategies on a location. However, these features are specifically required for the closest\nlocation removal strategy since it is only applied at the location level.\nTo activate these features, navigate to Inventory ⣠Configuration ⣠Settings .\nUnder the Warehouse heading, enable the Storage Location and Multi-Step Routes features.\n\n### Expiration date\n\nEnable the expiration date feature to track expiration dates, best before dates, removal dates,\nand alert dates on a lot or serial number by navigating to Inventory â£\nConfiguration ⣠Settings .\nUnder the Traceability heading, ensure the Lots & Serial Numbers feature is\nselected, and then select the check box for Expiration Dates to enable the feature.\n\n### Packages\n\nThe packages feature is used to group products together and is required for the least packages\nremoval strategy.\nNavigate to Inventory ⣠Configuration ⣠Settings and select the check box for\nthe Packages feature.\n- Packages\n- 2-step delivery\n- 3-step delivery", "headings": ["Configuration", "Required features", "Lots and serial numbers", "Locations and routes", "Expiration date", "Packages"], "doc_id": "1bb6ea780f65503d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/closest_location.html", "title": "Closest location removal", "module": "inventory", "section": "Closest location removal", "text": "# Closest location removal\n\nFor the Closest Location removal strategy, products are picked based on the alphanumeric order of\nstorage location titles.\nThe goal of this strategy is to save the warehouse worker from taking a long journey to a farther\nshelf when the product is also available at a closer location.\nAbout removal strategies\nTo understand location sequence in the closest removal strategy, consider the following example:\nA product is stored in the following locations: Shelf A/Pallet , Shelf A/Rack 1 , and Shelf A/Rack 2 .\n`ShelfA/Pallet`\n`ShelfA/Rack1`\n`ShelfA/Rack2`\nThe sublocation, Pallet , is on the ground level. Products stored here are easier to retrieve,\ncompared to requiring a forklift to reach Rack 1 and Rack 2 . The storage locations were\nstrategically named in alphabetic order, based on ease of access.\n`Pallet`\n`Rack1`\n`Rack2`\nTo use this removal strategy, the Storage Locations and Multi-Step Routes settings must be enabled in Inventory app ⣠Configuration ⣠Settings .\nSet up removal strategy\n\n## Location names\n\nTo configure location names, begin by navigating to Inventory app ⣠Configuration\n⣠Locations . Then, select an existing location, or click New to create a new one, and\nthen enter the desired name in the Location Name field.\nOnce the locations are named in alphabetical order, based on their proximity to the output or\npacking location, set the removal strategy on the parent location .\nTo do that, in the Locations list, select the parent location of the alphabetically\nnamed storage locations.\nDoing so opens the form for the parent location. In the Removal Strategy field, select Closest Location .\nIn a warehouse, the storage location WH/Stock/Shelf 1 is located closest to the packing area,\nwhere products retrieved from shelves are packed for shipment. The popular product, iPhone charger is stored in three locations, WH/Stock/Shelf 1 , WH/Stock/Shelf 2 , and WH/Stock/Shelf 3 .\n`WH/Stock/Shelf1`\n`iPhonecharger`\n`WH/Stock/Shelf1`\n`WH/Stock/Shelf2`\n`WH/Stock/Shelf3`\nTo use closest location, set the removal strategy on the parent location, âWH/Stockâ.\n\n## Workflow\n\nTo see how the closest location removal strategy works, consider the following example, featuring\nthe popular product, iPhone charger , which is stored in WH/Stock/Shelf 1 , WH/Stock/Shelf 2 ,\nand WH/Stock/Shelf 3 .\n`iPhonecharger`\n`WH/Stock/Shelf1`\n`WH/Stock/Shelf2`\n`WH/Stock/Shelf3`\nFifteen, five, and thirty units are in stock at each respective location.\nTo check the on-hand stock at each storage location, navigate to the product form, and click the On Hand smart button.\nCreate a delivery order for eighteen units of the iPhone charger by navigating to the Sales app and creating a new quotation.\n`iPhonecharger`\nAfter adding the products, clicking Confirm creates a delivery order that reserves items\nstored at the closest location, using the removal strategy.\nFor more details about where the units were picked, select the â¦â£ (bulleted list) icon, located on the far-right. Doing so opens the Open: Stock move pop-up window that\ndisplays how the reserved items were picked, according to the removal strategy.\nIn the Open: Stock move pop-up window, the Pick from field displays where\nthe quantities to fulfill the Demand are picked. All fifteen of the units stored at the\nclosest location, WH/Stock/Shelf 1 , are picked first. The remaining three units are then selected\nfrom the second closest location, WH/Stock/Shelf 2 .\n`WH/Stock/Shelf1`\n`WH/Stock/Shelf2`", "headings": ["Location names", "Workflow"], "doc_id": "c748904e0d3eead0"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo.html", "title": "FEFO removal", "module": "inventory", "section": "FEFO removal", "text": "# FEFO removal\n\nThe First Expired, First Out (FEFO) removal strategy targets products for removal based on their\nassigned removal dates.\nAbout removal strategies\n\n## Removal date\n\nProducts must be removed from inventory before their removal date , which is set as a certain\nnumber of days before the productâs expiration date .\nThe user sets this number of days by navigating to the product formâs Inventory tab.\nUnder the Traceability section, ensure the Tracking field is set to either By Lots or By Unique Serial Number .\nNext, select the Expiration Date option, which makes the Removal Date field\n(and other date fields) appear.\nThe Lots and Serial Numbers and Expiration Dates features must be\nenabled in Inventory app ⣠Configuration ⣠Settings to track expiration\ndates.\nThe expiration date of a product is determined by adding the date the product was received to the\nnumber of days specified in the Expiration Date field of the product form.\nThe removal date takes this expiration date, and subtracts the number of days specified in the Removal Date field of the product form.\nIn the Inventory tab of the product, Egg , the following Dates are set\nby the user:\n`Egg`\n- Expiration Date : 30 days after receipt\nExpiration Date : 30 days after receipt\n`30`\n- Removal Date : 15 days before expiration date\nRemoval Date : 15 days before expiration date\n`15`\nA shipment of Eggs arrive at the warehouse on January 1st. So, the expiration date of the Eggs is January 31st (Jan 1st + 30). By extension, the removal date is January 16th (Jan 31 -\n15).\nTo view the expiration dates of items in stock, navigate to the product form, and click the On Hand smart button.\nNext, click the additional options icon, located on the far-right, and select the columns: Expiration Date and Removal Date .\n\n## Workflow\n\nUsing the FEFO removal strategy ensures that products with the\nnearest removal date are picked first.\nTo understand how this removal strategy works, consider the following example below about the\nproduct, Carton of eggs , which is a box containing twelve eggs.\n`Cartonofeggs`\nThe product is tracked By Lots , and the product categoryâs Force Removal\nStrategy is set to First Expired, First Out (FEFO) .\n- Set up force removal strategy\nSet up force removal strategy\n- Enable lots tracking\n- Odoo Tutorials: Perishable Products\nOdoo Tutorials: Perishable Products\nTo see the removal strategy in action, go to the Sales app and create a new\nquotation.\nClicking Confirm creates a delivery order for today, December 29th, and the lot numbers\nwith the soonest expiration dates are reserved, using the FEFO removal strategy.\nTo view the detailed pickings, click the â¦â£ (bulleted list) icon, located on the\nfar-right of the Carton of eggâs product line, in the Operations tab of the delivery\norder. Doing so opens the Open: Stock move pop-up window.\nIn the Open: Stock move pop-up window, the Pick from field displays where\nthe quantities to fulfill the Demand are picked from.\nSince the order demanded six Cartons of eggs, using the FEFO removal strategy, all five Cartons from LOT1 , with the removal date of February 26th, are picked.\nThe remaining Carton is selected from LOT2 , which has a removal date of March 4th.\n`LOT1`\n`LOT2`", "headings": ["Removal date", "Workflow"], "doc_id": "e1cd45ba04012c82"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fifo.html", "title": "FIFO removal", "module": "inventory", "section": "FIFO removal", "text": "# FIFO removal\n\nThe First In, First Out (FIFO) removal strategy selects products with the earliest arrival dates.\nThis method is useful for companies selling products that have short demand cycles, like clothes,\nfor example. By using FIFO , companies can prevent prolonged stock\nretention of specific styles.\nAbout removal strategies\nVarious quantities of the product, T-shirt , tracked by lot numbers, arrive on August 1st and\nAugust 25th. For an order made on September 1st, the FIFO removal\nstrategy prioritizes lots that have been in stock the longest. So, products received on August\n1st are selected first for picking.\n`T-shirt`\nLot/serial number setup details\n\n## Arrival date\n\nTo see the product lot or serial number that arrived in inventory first, navigate to Inventory app ⣠Products ⣠Lots/Serial Numbers .\nThen, select the âï¸ (right-pointing arrow) icon on the left of a product line, in order\nto reveal a list of the productâs lots or serial numbers that are in stock. The Created\nOn field shows the lot/serial number creation date, which is, essentially, the arrival date.\nSerial number 00000000500 of the product, Cabinet with Doors , arrived on December 29th, as\ndisplayed in the Created On field.\n`00000000500`\n`CabinetwithDoors`\n\n## Workflow\n\nTo understand how FIFO rotates products out, consider the following\nexample, focusing on three lots of white shirts.\nThe shirts are from the All/Clothes category, where FIFO is set as\nthe Force Removal Strategy .\nThe white shirts are tracked By Lots in the Inventory tab of the product\nform.\n- Set up force removal strategy\nSet up force removal strategy\n- Enable lots tracking\nThe following table represents the on-hand stock and lot number details of white shirts.\nTo see the removal strategy in action, create a delivery order for six white shirts by navigating to the Sales app and creating a new quotation.\nAfter clicking Confirm on the sales order, a delivery order with the oldest lot numbers\nfor shirts are reserved, using the FIFO removal strategy.\nTo view the detailed pickings, click the â¦â£ (bulleted list) icon, located on the\nfar-right of the white shirtâs product line in the Operations tab of the delivery order.\nDoing so opens the Open: Stock move pop-up window.\nIn the Open: Stock move pop-up window, the Pick from field displays where\nthe quantities to fulfill the Demand are picked from. Since the order demanded six\nshirts, all five shirts from LOT1 , and one shirt from LOT2 , are selected.\n`LOT1`\n`LOT2`", "headings": ["Arrival date", "Workflow"], "doc_id": "50022620f106793d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/least_packages.html", "title": "Least packages removal", "module": "inventory", "section": "Least packages removal", "text": "# Least packages removal\n\nThe Least Packages removal strategy fulfills an order by opening the fewest number of packages,\nwhich is ideal for maintaining organized stock without needing to open multiple boxes.\n- About removal strategies\nAbout removal strategies\n- Odoo Tutorials: Least Packages\nOdoo Tutorials: Least Packages\nTo understand how the removal strategy works, consider the following example, featuring a warehouse\nthat stores packages of flour in bulk packages of 100 kg .\n`100kg`\nTo minimize moisture, and/or prevent pests from entering open packages, the least packages removal\nstrategy is used to pick from a single, opened package.\nA package of 100 kg of flour is depleted to 54 kg after fulfilling some orders. There are\nother packages of 100 kg in stock.\n`100kg`\n`54kg`\n`100kg`\n- When an order for 14 kg of flour is placed, the package of 54 kg is selected.\nWhen an order for 14 kg of flour is placed, the package of 54 kg is selected.\n`14kg`\n`54kg`\n- When an order for more than 54 kg of flour is placed, an unopened 100 kg package is used\nto fulfill the order. While this temporarily results in two open packages, these open packages\nare prioritized in the next picking.\nWhen an order for more than 54 kg of flour is placed, an unopened 100 kg package is used\nto fulfill the order. While this temporarily results in two open packages, these open packages\nare prioritized in the next picking.\n`54kg`\n`100kg`\n\n## Workflow\n\nUsing the least package removal strategy, the fewest number of packages is used to fulfill an order.\nThe Packages feature must be enabled to use\nthis strategy.\nConsider the following example, featuring the product, Flour . The productâs Units of\nMeasure field, located on the product form, is set to kg . The product is stored in packages of 100 kg , with one remaining package containing 54 kg . The product categoryâs Force\nRemoval Strategy is set to Least Packages .\n`Flour`\n`kg`\n`100kg`\n`54kg`\n- Set removal strategy on product category\nSet removal strategy on product category\nTo check the productâs on-hand stock, navigate to the product form, and click the On\nHand smart button.\nCreate a delivery order for eighty kilograms of flour by going\nto the Sales app and creating a new quotation. After clicking Confirm ,\nthe delivery order is created.\nOn the delivery order, the Quantity field displays the amount automatically picked,\naccording to the removal strategy.\nFor more details about where the units were picked, select the â¦â£ (bulleted list) icon, located on the far-right. Doing so opens the Open: Stock move pop-up window,\ndisplaying how the reserved items were picked, according to the removal strategy.\nIn the Open: Stock move pop-up window, the Pick from field displays where\nthe quantities to fulfill the Demand are picked. Since the order demanded eighty\nkilograms, which exceeds the quantity in the opened package of 54 kg , an unopened package of 100 kg is selected.\n`54kg`\n`100kg`", "headings": ["Workflow"], "doc_id": "a06d2f0b26857e69"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/lifo.html", "title": "LIFO removal", "module": "inventory", "section": "LIFO removal", "text": "# LIFO removal\n\nThe Last In, First Out (LIFO) removal strategy picks the newest products on-hand, based on the\ndate they entered a warehouseâs stock.\nEvery time an order is placed for products using the LIFO strategy, a\ntransfer is created for the lot/serial number that has most recently entered the stock (the last lot/serial number that entered the warehouseâs inventory).\nAbout removal strategies\nIn many countries, the LIFO removal strategy is banned, since it can\npotentially result in old, expired, or obsolete products being delivered to customers.\nConsider the following example, with the product, Cinder Block , which is tracked By\nLots in the Inventory tab of the product form. The Force Removal Strategy for the cinder blockâs product category is set to Last In, First Out (LIFO) .\n`CinderBlock`\n- Set up force removal strategy\nSet up force removal strategy\n- Enable lots tracking\n- Check arrival date\nThe following table represents the cinder blocks in stock, and their various lot number details.\nTo see the removal strategy in action, create a delivery order for seven cinder blocks by navigating to the Sales app and creating a new\nquotation.\nConfirm the sales order to create a delivery order. Doing so reserves the newest lot\nnumbers are using the LIFO removal strategy.\nTo view the detailed pickings, click the â¦â£ (bulleted list) icon, located on the\nfar-right of the cinder blockâs product line in the Operations tab of the delivery\norder. Doing so opens the Open: Stock move pop-up window.\nIn the Open: Stock move pop-up window, the Pick from field displays where\nthe quantities to fulfill the Demand are picked from. Since the order demanded seven\ncinder blocks, the newest cinder blocks from LOT3 are selected, using the LIFO removal strategy.\n`LOT3`", "headings": [], "doc_id": "22618170a8c5981e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/reservation_methods.html", "title": "Reservation methods", "module": "inventory", "section": "Reservation methods", "text": "# Reservation methods\n\nCompanies that sell and deliver goods to customers need to make sure they always have stock on-hand,\nso when new sales orders are confirmed, they can deliver products on time.\nIn Odoo, this can be handled using reservation methods . Reservation methods control how products\nincluded in a delivery order (DO) should be reserved for delivery, ensuring they are reserved at the\ncorrect times, for the correct orders.\nThere are three different reservation methods in Odoo: At Confirmation , Manually , and Before\nscheduled date .\nReserves products only when a sales order is confirmed, and if stock is already\navailable.\nOnce a quote is confirmed, product availability must be checked manually, and the required\nquantity must be reserved manually.\nA specific number of days can be selected; this is the maximum number of days before a\nscheduled delivery date that products should be reserved.\n\n## Configuration\n\nReservation methods are set on individual operations types. To configure reservation methods, go to Inventory app ⣠Configuration ⣠Operations Types . Then, select the desired\noperation type. Or, create a new one by clicking New .\nIn the General tab of the operation type form, locate the Reservation Method option, and choose which method should be used for this type of operation.\nIf the Before scheduled date reservation method is selected, a new Reserve before scheduled date field appears below. From this field, the number of days before and days before when starred can be changed from the default 0 .\n`0`\nChanging the days before value changes the maximum number of days before a scheduled\ndate that products should be reserved.\nChanging the days before when starred value changes the maximum number of days before\na scheduled date that starred (favorited) transfers for products should be reserved.\n\n## Required applications\n\nThe two required applications that must be installed to use reservation\nmethods are the Sales and Inventory apps.\nIn addition to delivery orders, reservation methods can also be used for manufacturing orders , resupply subcontractor orders, orders for repairs , and internal transfers , if desired. To\nenable this, configure the additional settings:\n- For manufacturing orders: Install the Manufacturing application by going to the Apps application, locating the Manufacturing app, and clicking Install .\nFor manufacturing orders: Install the Manufacturing application by going to the Apps application, locating the Manufacturing app, and clicking Install .\n- For resupply subcontractor: Navigate to Manufacturing app ⣠Configuration\n⣠Settings , and under the Operations section, enable Subcontracting .\nThen, click Save .\nFor resupply subcontractor: Navigate to Manufacturing app ⣠Configuration\n⣠Settings , and under the Operations section, enable Subcontracting .\nThen, click Save .\n- For repairs: Install the Repairs application by going to the Apps application, locating the Repairs app, and clicking Install .\nFor repairs: Install the Repairs application by going to the Apps application, locating the Repairs app, and clicking Install .\n- For internal transfers: Navigate to Inventory app ⣠Configuration â£\nSettings , and under the Warehouse section, enable Storage Locations .\nThen, click Save .\nFor internal transfers: Navigate to Inventory app ⣠Configuration â£\nSettings , and under the Warehouse section, enable Storage Locations .\nThen, click Save .\nOnce these apps are installed, no additional features need to be enabled from the settings for\nreservation methods to work. They will be available by default on certain operations types, and can\nbe viewed and changed by navigating to Inventory app ⣠Configuration â£\nOperations Types , and then clicking on a specific operations type.\nWhen the Type of Operation is changed to Receipt on an Operations Type form, reservation methods are not available.\n- At confirmation reservation\nAt confirmation reservation\n- Manual reservation\n- Before scheduled date reservation\nBefore scheduled date reservation", "headings": ["Configuration", "Required applications"], "doc_id": "f06385a5f0b871e8"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/reservation_methods/at_confirmation.html", "title": "At confirmation reservation", "module": "inventory", "section": "At confirmation reservation", "text": "# At confirmation reservation\n\nThe at confirmation reservation method reserves products only when a sales order (SO) is\nconfirmed, and if enough stock of the products included in the SO is already available.\nAbout reservation methods\n\n## Configuration\n\nTo set the reservation method to at confirmation , navigate to Inventory app â£\nConfiguration ⣠Operations Types . Then, select the desired Operation Type to\nconfigure, or create a new one by clicking New .\nIn the General tab on the operation type form, locate the Reservation Method field, and select At Confirmation .\n\n## Workflow\n\nTo see the at confirmation reservation method in action, create a new SO by navigating to Sales app ⣠New .\nAdd a customer in the Customer field. Then, in the Order Lines tab, click Add a product , and select a product to add to the quotation from the drop-down menu.\nFinally, in the Quantity column, adjust the desired quantity of the product to sell.\nOnce ready, click Confirm to confirm the sales order.\nClick the ð (area graph) icon on the product line to reveal the productâs Availability tooltip, which reveals the Reserved number of units for this\norder.\nIf there is not sufficient quantity of stock for the product included in the SO , the ð (area graph) icon is red, instead of green.\nInstead of revealing the reserved number of units for the order, the Availability tooltip reads Available , and reveals the available number of units (e.g., 0 Units ).\n`0Units`\nTo see all the factors that affect product reservation, click the View Forecast internal link arrow to view the Forecasted Report dashboard.\nThe Forecasted Report displays forecast information about the product(s) included in\nthe sales order; namely, any live receipts of the product, and any active sales orders, which are\nlisted in the Used By column. See how each order is fulfilled in the Replenishment column.\nAdditionally, the Forecasted quantity is calculated at the top of the page, by adding\nthe On Hand and Incoming quantity, and subtracting the Outgoing quantity, as shown below:\nIf one order should be prioritized over another order, click the Unreserve button on\nthe corresponding order line in the Replenishment column.\nTo deliver the products, click the Delivery smart button at the top of the sales order\nform. To confirm that the reservation worked properly, ensure that the Product\nAvailability field reads Available (in green text), and the numbers in the Demand and Quantity columns match (in this case, both should read 100.00 ).\n`Available`\n`100.00`\nOnce ready, click Validate .\n- Manual reservation\n- Before scheduled date reservation\nBefore scheduled date reservation", "headings": ["Configuration", "Workflow"], "doc_id": "1eb584ee6ec5cd92"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/reservation_methods/before_scheduled_date.html", "title": "Before scheduled date reservation", "module": "inventory", "section": "Before scheduled date reservation", "text": "# Before scheduled date reservation\n\nThe Before scheduled date reservation method allows users to select a specific number of days that\nact as the maximum number of days before a scheduled delivery date, when products included in a\nsales order (SO) should be reserved.\nAbout reservation methods\n\n## Configuration\n\nTo set the reservation method to Before scheduled date , navigate to Inventory app\n⣠Configuration ⣠Operations Types . Then, select the desired Operation Type to\nconfigure, or create a new one by clicking New .\nIn the General tab, locate the Reservation Method field, and select Before scheduled date .\nWhen the Type of Operation is changed to Receipt on an Operations Type form, reservation methods are not available.\nOnce selected, a new Reserve before scheduled date field appears below. From this field,\nthe number of days before and days before when starred can be changed from\nthe default 0 .\n`0`\nChanging the days before value changes the maximum number of days before a scheduled\ndate that products should be reserved.\nChanging the days before when starred value changes the maximum number of days before a\nscheduled date that products should be reserved if the transfers are starred (favorited).\nHere, the days before value is set to 2 days before, and the days before\nwhen starred value is set to 3 .\n`2`\n`3`\nThis means products are reserved two days before the scheduled delivery date for normal orders,\nand three days before the scheduled delivery date for starred (favorited) transfers.\nThis is the configuration applied for the following workflow found below.\n\n### Edit product form\n\nBefore the Before scheduled date reservation method can be used, ensure that a customer lead\ntime is added to products that plan to be sold with this method.\nTo do that, navigate to Inventory app ⣠Products ⣠Products , and select the\ndesired product to configure.\nOn the product form, click the Inventory tab, and under the Logistics section, change the value in the Customer Lead Time field.\nFor this example workflow, change it to 5 days.\n`5`\nThis sets the scheduled delivery date for this specific product to five days after the creation date\nof the sales order.\n\n## Workflow\n\nTo see the Before scheduled date reservation method in action, create a new SO by navigating to Sales app ⣠New .\nAdd a customer in the Customer field, then, in the Order Lines tab, click Add a product , and select a product from the drop-down menu that has a configured customer lead time , to add to the quotation form.\nFinally, in the Quantity column, adjust the desired quantity of the product to sell.\nFor this sample workflow, set the Quantity to 10 .\n`10`\nOnce ready, click Confirm to confirm the sales order.\nClick the green ð (area graph) icon on the product line to reveal the productâs Availability tooltip. This tooltip reveals the reserved number of units for this order.\nBecause the reservation method is set to Before scheduled date , the Reserved quantity\nreads 0 Units .\n`0Units`\nHowever, below that quantity reads Available in stock . This is because the quantity is available,\nbut the scheduled date, for this example workflow, is five days from the order date.\n`Availableinstock`\nSince reservation is not until two days before the scheduled delivery, it will not reserve the\nproducts until then.\nIf there is not sufficient quantity of stock for the product included in the SO , the ð (area graph) icon is red, instead of green.\nInstead of revealing the reserved number of units for the order, the Availability tooltip reads Reserved , and reveals the available number of units (e.g., 0 Units ).\n`0Units`\nAdditionally, unless there is a set replenishment or a live receipt, it also reads No\nfuture availability , in red text.\nClick the Delivery smart button to see the delivery order form.\nOn the delivery order form, the status in the Product Availability field is listed as Available , in yellow text, instead of green. This is because there is sufficient stock on-hand for\nthis order, but no quantity has been reserved yet.\n`Available`\nNote the Scheduled Date field, above the Product Availability field,\ndisplays the date five days from the order creation date. This indicates that the products are not\nreserved until three days from todayâs date (two days before the scheduled delivery date).\nIn the Operations tab on the Product line, the numbers in the Demand column and the Quantity column do not match (in this case, the Demand column lists 10.00 , while the Quantity column lists 0 ).\n`10.00`\n`0`\nThe Quantity column lists 0 because the products arenât reserved until two days before their delivery date. Odoo automatically reserves the products once the scheduled date\narrives, at which point the Demand and Quantity columns will match.\n`0`\nIf the products in the SO should be reserved sooner than the scheduled reservation date, the\nreservation can be manually overridden. To manually reserve the products sooner than scheduled,\nclick Check Availability at the top of the form.\nThis turns the Available status in the Product Availability field green, and\nchanges the number in the Quantity column to match the Demand column.\n`Available`\nOnce ready, click Validate .\n- Manual reservation\n- At confirmation reservation\nAt confirmation reservation", "headings": ["Configuration", "Edit product form", "Workflow"], "doc_id": "295465aba5296a43"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/reservation_methods/manually.html", "title": "Manual reservation", "module": "inventory", "section": "Manual reservation", "text": "# Manual reservation\n\nUnlike the At Confirmation reservation method, the Manually reservation method does not reserve products automatically.\nInstead, once a sales order (SO) is confirmed, product availability must be checked manually,\nand the required quantity must be reserved manually.\nAbout reservation methods\n\n## Configuration\n\nTo set the reservation method to Manually , navigate to Inventory app â£\nConfiguration ⣠Operations Types . Then, select the desired Operation Type to be\nconfigured, or create a new one by clicking New .\nIn the General tab, locate the Reservation Method field, and select Manually .\nWhen the Type of Operation is changed to Receipt on an Operations Type form, reservation methods are not available.\n\n## Workflow\n\nTo see the Manually reservation method in action, create a new SO by navigating to Sales app ⣠New .\nAdd a customer in the Customer field. Then, in the Order Lines tab, click Add a product , and select a product to add to the quotation from the drop-down menu.\nFinally, in the Quantity column, adjust the desired quantity of the product to sell.\nOnce ready, click Confirm to confirm the sales order.\nClick the green ð (area graph) icon on the product line to reveal the productâs Availability tooltip. This tooltip reveals the reserved number of units for this order.\nBecause the reservation method is set to Manually , the Reserved quantity reads 0 Units .\n`0Units`\nHowever, below that quantity reads Available in stock . This is because the quantity is available,\nbut must be manually reserved.\n`Availableinstock`\nIf there is not sufficient quantity of stock for the product included in the SO , the ð (area graph) icon is red, instead of green.\nInstead of revealing the reserved number of units for the order, the Availability tooltip reads Reserved , and reveals the available number of units (e.g., 0 Units ).\n`0Units`\nAdditionally, unless there is a set replenishment or a live receipt, it also reads No\nfuture availability , in red text.\nOnce the SO is confirmed, navigate to the Inventory app , and locate the Delivery Orders card on the Inventory Overview page.\nThe Delivery Orders card displays the current status of live orders, including those\nwith a Waiting status. Orders with this status indicate that the products in those\norders have either not been reserved yet, or are not in stock at all.\nTo see the SO created previously, click the (#) Waiting button on the card (in this\ncase, 8 Waiting ).\n`8Waiting`\nLocate the delivery order (DO) tied to the SO that was previously created, and click the line to\nview it.\nOn the Delivery Order form, the status in the Product Availability field is\nlisted as Available , in yellow text, instead of green. This is because there is sufficient stock\non hand for this order, but no quantity has been reserved yet.\n`Available`\nIn the Operations tab, on the Product line, the numbers in the Demand column and the Quantity column do not match.\nIn this case, the Demand column lists 10.00 , while the Quantity column\nlists 0 .\n`10.00`\n`0`\nTo manually reserve the specified quantity of the product for this order, click the Check Availability button at the top of the form. Doing so turns the Available status\nin the Product Availability field green, and changes the number in the Quantity column to match the Demand column.\n`Available`\nThis is because there is sufficient quantity in stock to reserve for the order.\nOnce ready, click Validate .\nMultiple orders with a Waiting status can be manually reserved at the same time, and set to Ready status.\nTo do that, open the Inventory app, which reveals the Inventory\nOverview page. The Inventory Overview page is also accessible by navigating to Inventory app ⣠Overview .\nFrom the Inventory Overview page, click the (#) Waiting button on the Delivery Orders card.\nThen, tick the checkboxes to the left of each desired order, or tick the checkbox in the header\nrow, to the far-left, to select all orders on the page at once.\nThen, click the Check Availability button at the top of the page.\nIf the products included in every selected order have enough stock on-hand, this reserves the\nproducts, and moves the order into Ready status. Upon receiving a Ready status, the order disappears from the Waiting list.\nIf there is not enough stock on-hand, the order retains its current status, and remains on the\nlist.\n- At confirmation reservation\nAt confirmation reservation\n- Before scheduled date reservation\nBefore scheduled date reservation", "headings": ["Configuration", "Workflow"], "doc_id": "92c898a2079b117b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration.html", "title": "Delivery methods", "module": "inventory", "section": "Delivery methods", "text": "# Delivery methods\n\nIn Odoo, delivery methods make it possible to calculate shipping costs directly on sales orders\nand e-commerce carts, providing customers and sales teams with accurate shipping fee information.\nThis transparency helps close sales by showing customers the exact cost for each shipping carrier or\ndelivery timeframe.\nWhen activated in Odoo, the Delivery Methods setting adds the option of calculating the cost of\nshipping on sales orders and e-commerce shopping carts.\nWhen integrated with a third-party carrier , shipping prices\nare calculated based on the carrierâs pricing information.\n- Third-party shipping carrier setup\nThird-party shipping carrier setup\n- Odoo Tutorials: Delivery Prices\nOdoo Tutorials: Delivery Prices\n\n## Configuration\n\nTo calculate shipping on sales orders and e-commerce, the Delivery Costs module must be\ninstalled. To do so, navigate to the Apps application from the main Odoo dashboard.\nThen, remove the Apps filter, and type in Delivery Costs in the search bar. After\nfinding the Delivery Costs module, click Install to install it.\n`DeliveryCosts`\n\n## Add shipping\n\nShipping methods are added to sales orders in the form of delivery products, which appear as\nindividual line items. First, navigate to the desired sales order by going to Sales\napp ⣠Orders ⣠Orders .\nOpen the desired sales order, then click the Add shipping button. The Add a\nshipping method pop-up window opens. Then, using the drop-down menu, select an available shipping\nmethod.\nThe Total Order Weight is pre-filled based on product weights (that are defined in the Inventory tab for each product form). Edit the\nfield to specify the exact weight, and then click Add to add the shipping method.\nThe amount defined in Total Order Weight overwrites the total product weights defined\non the product form.\nSome connected shipping methods require obtaining rates from the carrier. In this situation,\nclick the Get rate button, and the shipping costs are\nautomatically updated from the carrier. These rates cannot be modified.\nThe shipping cost is added as a line item in the Order Lines tab as the Delivery Product detailed on the shipping method form.\nA customer purchased a left-sided desk with storage and requested the item be delivered by hand.\nThis delivery method is defined as Furniture Delivery (Manual) and has a cost of $200 . The\nsales order contains two line items: one for the desk, and another for the delivery method.\n`FurnitureDelivery(Manual)`\n`$200`\n\n### Delivery order\n\nThe shipping method added to the sales order is linked to the shipping carrier details on the\ndelivery order. After confirming the order, a Delivery smart button\nappears at the top of the page. Click the Delivery smart button to open\nthe warehouse delivery form. To add or change the delivery method on the delivery itself, open the Additional Info tab and modify the Carrier field.\n\n## Supported hardware\n\nFor label printers, Odoo recommends the Zebra ZD411 , as Odoo\nsupports the ZPL protocol for automatic printing from a point of sale.\nThis printer has been tested on most label formats (PDF, PNG, ZPL) for all carriers that Odoo\nsupports.", "headings": ["Configuration", "Add shipping", "Delivery order", "Supported hardware"], "doc_id": "f5a85dfb24601a72"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/bpost.html", "title": "Bpost integration", "module": "inventory", "section": "Bpost integration", "text": "# Bpost integration\n\nSet up the Bpost shipping connector in Odoo to manage Bpost shipments to clients directly within\nOdoo. To configure it, complete these steps:\n- Create a Bpost account.\nCreate a Bpost account.\n- Get the Account ID and passphrase .\nGet the Account ID and passphrase .\n- Set up the shipping method in Odoo .\nSet up the shipping method in Odoo .\nUpon completion, it is possible to calculate the cost of shipping, based on package size and weight,\nhave the charges applied directly to a Bpost business account, and automatically print Bpost\ntracking labels through Odoo.\n- Third-party shipping carriers\nThird-party shipping carriers\n- Delivery methods\n- DHL integration\n- UPS integration\n\n## Account setup\n\nTo begin, go to the Bpost website to create, or log\ninto, the companyâs Bpost business account. When creating the Bpost account, have the companyâs VAT\nnumber and mobile phone number ready.\nFollow the websiteâs steps to complete registration, and sign up for shipping services. Doing so\nsubmits a request to enter a contractual business relationship between the company and Bpost.\nOdoo cannot be integrated with non-business Bpost accounts.\nAfter completing the setup, get the Bpost account ID and passphrase, by navigating to the Shipping Manager menu item.\nOn the Shipping Manager page, go to the Admin tab, then the General Settings tab, to find the Account ID and Passphrase needed to configure Odooâs shipping method.\n\n## Shipping method configuration\n\nWith those necessary credentials, configure the Bpost shipping method in Odoo by going to Inventory app ⣠Configuration ⣠Shipping Methods .\nOn the Shipping Methods page, click Create .\nIn the Provider field, select Bpost from the drop-down menu. Doing so\nreveals the Bpost Configuration tab at the bottom of the form, where the Bpost\ncredentials can be entered.\nFor details on configuring the other fields on the shipping method, such as Delivery\nProduct , refer to the Configure third-party carrier documentation.\nTo generate Bpost shipping labels through Odoo, ensure the Integration\nLevel option is set to Get Rate and Create Shipment .\nIn the Bpost Configuration tab, complete the following fields:\n- Bpost Account Number (required field): enter the companyâs unique account ID from the Bpost website.\nBpost Account Number (required field): enter the companyâs unique account ID from the Bpost website.\n- Passphrase (required field): enter the passphrase from the Bpost website.\nPassphrase (required field): enter the passphrase from the Bpost website.\n- Bpost Delivery Nature : select either Domestic or International shipping services. Choosing Domestic shows the Options section, while International enables the Bpost Shipment Type and Bpost Parcel\nReturn Instructions fields.\nBpost Delivery Nature : select either Domestic or International shipping services. Choosing Domestic shows the Options section, while International enables the Bpost Shipment Type and Bpost Parcel\nReturn Instructions fields.\n- Bpost Package Type : select the type of shipping service from the drop-down menu. For domestic delivery , the options are: bpack 24h\nPro , bpack 24h business , or bpack Bus . For international delivery , the options are: bpack\nWorld Express Pro , bpack World Business , or bpack Europe Business .\nBpost Package Type : select the type of shipping service from the drop-down menu.\nFor domestic delivery , the options are: bpack 24h\nPro , bpack 24h business , or bpack Bus .\nFor international delivery , the options are: bpack\nWorld Express Pro , bpack World Business , or bpack Europe Business .\n- Bpost Shipment Type (required field): for international deliveries, declare the type\nof goods in the package as SAMPLE , GIFT , GOODS , DOCUMENTS , or OTHER .\nBpost Shipment Type (required field): for international deliveries, declare the type\nof goods in the package as SAMPLE , GIFT , GOODS , DOCUMENTS , or OTHER .\n- Bpost Parcel Return Address : return address when an international shipment fails to\ndeliver. Select from the drop-down menu: Destroy , Return to sender by air ,\nor Return to sender by road .\nBpost Parcel Return Address : return address when an international shipment fails to\ndeliver. Select from the drop-down menu: Destroy , Return to sender by air ,\nor Return to sender by road .\n- Label Type : choose A6 or A4 label sizes from the drop-down\nmenu.\nLabel Type : choose A6 or A4 label sizes from the drop-down\nmenu.\n- Label Format : choose PDF or PNG from the drop-down menu.\nLabel Format : choose PDF or PNG from the drop-down menu.\nFor domestic deliveries, these features are available in the Options section:\n- Enable the Delivery on Saturday feature to include Saturdays as possible delivery\ndates. Depending on the Bpost Package Type selected, this option might incur\nadditional costs to the company.\nEnable the Delivery on Saturday feature to include Saturdays as possible delivery\ndates. Depending on the Bpost Package Type selected, this option might incur\nadditional costs to the company.\n- Enable the Generate Return Label feature to automatically print a return label upon\nvalidating the delivery order.\nEnable the Generate Return Label feature to automatically print a return label upon\nvalidating the delivery order.", "headings": ["Account setup", "Shipping method configuration"], "doc_id": "d168314cc7f08962"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/cancel.html", "title": "How to cancel a shipping request to a shipper?", "module": "inventory", "section": "How to cancel a shipping request to a shipper?", "text": "# How to cancel a shipping request to a shipper?\n\n## Overview\n\nOdoo can handle various delivery methods, including third party\nshippers. Odoo will be linked with the transportation company tracking\nsystem.\nIt will allow you to manage the transport company, the real prices and\nthe destination.\nYou can easily cancel the request made to the carrier system.\n\n## How to cancel a shipping request?\n\n- If the delivery order is not Validated , then the request hasnât been\nmade. You can choose to cancel the delivery or to change the\ncarrier.\nIf the delivery order is not Validated , then the request hasnât been\nmade. You can choose to cancel the delivery or to change the\ncarrier.\n- If you have clicked on Validate , the request has been made and you\nshould have received the tracking number and the label. You can\nstill cancel the request.\nSimply click on the Cancel button next to the Carrier Tracking Ref :\nIf you have clicked on Validate , the request has been made and you\nshould have received the tracking number and the label. You can\nstill cancel the request.\nSimply click on the Cancel button next to the Carrier Tracking Ref :\nYou will now see that the shipment has been cancelled.\nYou can now change the carrier if you wish.\n\n## How to send a shipping request after cancelling one?\n\nAfter cancelling the shipping request, you can change the carrier you\nwant to use. Confirm it by clicking on the Send to shipper button. You\nwill get a new tracking number and a new label.\n- Shipping cost invoicing\nShipping cost invoicing\n- Multi-package shipments\nMulti-package shipments", "headings": ["Overview", "How to cancel a shipping request?", "How to send a shipping request after cancelling one?"], "doc_id": "ce4e9a50386caa92"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/dhl_credentials.html", "title": "DHL integration", "module": "inventory", "section": "DHL integration", "text": "# DHL integration\n\nSet up the DHL shipping connector in Odoo to manage DHL shipments to clients directly within Odoo.\nConfiguring a DHL shipping method simplifies the process of calculating shipping rates and generating shipping labels .\nThird-party shipping carriers\n\n## Configure the DHL shipping method\n\nTo enable DHL delivery methods, install the DHL Express Shipping module. DHL delivery methods can be configured and added as a line item to sales orders, which\nallows for automatic computation of shipping rates and generation of shipping labels.\nTo create a DHL shipping method, navigate to Inventory app ⣠Configuration â£\nDelivery Methods , then click New to open a delivery method form. If a shipping method\nhas already been created, it can be selected from this screen.\n\n### General information\n\nBegin configuring the shipping method by entering its title in the Shipping Method field.\nIn the Provider drop-down menu, select the DHL option, and a new DHL Configuration tab appears at the bottom of the form.\nAll other fields in this section are identical on the shipping method forms for each shipping\ncarrier. See third-party shippers for standard configuration\ninstructions.\n\n### DHL Configuration tab\n\nThe DHL Configuration tab on the shipping method form is used to connect the userâs DHL\naccount to Odoo and configure the shipping methodâs details.\n\n#### DHL developer credentials\n\nTo integrate DHL with Odoo, developer credentials must be retrieved from DHLâs Developer Portal.\nThese credentials are used to link the userâs DHL account to Odooâs Inventory app.\nThe SiteID and Password are different credentials from the ones used to log in to a DHL\naccount.\nIf a DHL Express account is available, log in to the DHL Developer portal and request a DHL API account number .\nThen, in Odoo, on the shipping method form, enter the DHL API Key in the DHL SiteID field, and the API Secret in the DHL Password field.\nIf a DHL Express account is not available:\n- Begin by opening a DHL Express account .\nBegin by opening a DHL Express account .\n- Once the developer portal account has been confirmed, log in to the portal using the username and\npassword. Click the user avatar in the top-right corner of the screen to open the user dashboard.\nOnce the developer portal account has been confirmed, log in to the portal using the username and\npassword. Click the user avatar in the top-right corner of the screen to open the user dashboard.\n- On the dashboard, open the Apps tab, and create an app. Follow the four steps in the\napp creation flow (app name, needed apps, app status, confirmation) to complete the setup.\nOn the dashboard, open the Apps tab, and create an app. Follow the four steps in the\napp creation flow (app name, needed apps, app status, confirmation) to complete the setup.\n- After setting up the DHL Express account, go here to get the DHL\nAPI Key and API Secret credentials.\nAfter setting up the DHL Express account, go here to get the DHL\nAPI Key and API Secret credentials.\nThen, in Odoo, on the shipping method form, enter the DHL API Key in the DHL SiteID field, and the API Secret in the DHL Password field.\n\n#### Shipping details\n\nThe rest of the fields in the DHL Configuration tab are used to configure the shipping\nmethod itself:\n- Region : The region in which the shipping method is used.\nRegion : The region in which the shipping method is used.\n- DHL Product : the shipping service purchased from DHL (e.g. Express Worldwide).\nDHL Product : the shipping service purchased from DHL (e.g. Express Worldwide).\n- DHL Product : The shipping service purchased from DHL (e.g., Express Worldwide).\nDHL Product : The shipping service purchased from DHL (e.g., Express Worldwide).\n- DHL Package Type : The type of DHL package used for delivery (e.g., DHL Box).\nDHL Package Type : The type of DHL package used for delivery (e.g., DHL Box).\n- Package Weight Unit : the unit of measure used to display package weight.\nPackage Weight Unit : the unit of measure used to display package weight.\n- Package Dimension Unit : the unit of measure used to display package size.\nPackage Dimension Unit : the unit of measure used to display package size.\n- Label Format : the file format used to generate shipping labels.\nLabel Format : the file format used to generate shipping labels.\n- Package Weight Unit : The unit of measure used to display package weight.\nPackage Weight Unit : The unit of measure used to display package weight.\n- Package Dimension Unit : The unit of measure used to display package size.\nPackage Dimension Unit : The unit of measure used to display package size.\n- Label Format : The file format used to generate shipping labels.\nLabel Format : The file format used to generate shipping labels.\n- Label Template : The paper size used to print shipping labels.\nLabel Template : The paper size used to print shipping labels.\nBefore selecting service options for a shipping method, make sure those services are actually\navailable for the DHL account. Available services depend on the contract negotiated with DHL.\n\n#### Options\n\nAdditional settings are available in the Options section at the bottom of the DHL Configuration tab:\n- Generate Return Label : Enable this option to automatically generate a return label\nafter validating a delivery order.\nGenerate Return Label : Enable this option to automatically generate a return label\nafter validating a delivery order.\n- Dutiable Material : Enable this option if the shipping method is liable to customs or\nother duties.\nDutiable Material : Enable this option if the shipping method is liable to customs or\nother duties.\n\n## Turn on the DHL Connection\n\nOnce the DHL connection is set up, use the smart buttons at the top of the form to publish, turn on\nproduction mode, or activate debug logging.\n- Unpublished / Published : Determines if this shipping method is available on\nthe userâs eCommerce website.\nUnpublished / Published : Determines if this shipping method is available on\nthe userâs eCommerce website.\n- Test Environment / Production Environment : Determines whether label creation\nis for testing and canceled immediately (Test) or generates a real shipping label that is charged\nto the DHL account (Production).\nTest Environment / Production Environment : Determines whether label creation\nis for testing and canceled immediately (Test) or generates a real shipping label that is charged\nto the DHL account (Production).\n- No Debug / Debug Requests : Determines whether API requests and responses are\nlogged in Odoo (turn on developer mode and go to Settings\napp ⣠Technical ⣠Logging ).\nNo Debug / Debug Requests : Determines whether API requests and responses are\nlogged in Odoo (turn on developer mode and go to Settings\napp ⣠Technical ⣠Logging ).", "headings": ["Configure the DHL shipping method", "General information", "DHL Configuration tab", "Turn on the DHL Connection"], "doc_id": "a9befeed225530e4"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/dispatch.html", "title": "Dispatch management system", "module": "inventory", "section": "Dispatch management system", "text": "# Dispatch management system\n\nThe dispatch management system feature in Odoo is used to plan and build shipments. Key features\ninclude:\n- Load building : Group products for specific carriers, assign those batches to loading docks, and manage vehicle assignments based on fleet\ncapacity. This ensures the right products are packed into the appropriate trucks for delivery.\nLoad building : Group products for specific carriers, assign those batches to loading docks, and manage vehicle assignments based on fleet\ncapacity. This ensures the right products are packed into the appropriate trucks for delivery.\n- Fleet management : Track and manage the capacity of in-house\ndelivery vehicles.\nFleet management : Track and manage the capacity of in-house\ndelivery vehicles.\n\n## Configuration\n\nTo use the dispatch management system, the following setup must be completed:\n- Install the Fleet application.\nInstall the Fleet application.\n- Configure vehicle capacity (volume and weight) .\nConfigure vehicle capacity (volume and weight) .\n- Enter vehicle car model(s) .\nEnter vehicle car model(s) .\n- Enable necessary features in the Inventory app.\nEnable necessary features in the Inventory app.\n- Set up vehicles as delivery methods .\nSet up vehicles as delivery methods .\n- Create dock locations .\nCreate dock locations .\n\n### Vehicle capacity\n\nTo configure the vehicle capacity, go to Fleet app ⣠Configuration â£\nCategories .\nNext, click New to add a new category, or click into an existing category to modify it.\nIn the Name field, enter the type of vehicle (e.g., Pick-up truck , Van , or Cargo truck ). Then, enter the vehicle capacity in the Max Weight (in kilograms) and Max Volume (in cubic meters) fields.\n`Pick-uptruck`\n`Van`\n`Cargotruck`\nThe units of measurement for vehicle capacity are assigned at the global level in the Settings app, in the Units of Measure section.\n\n### Car model\n\nConfiguring a vehicleâs car model is required when adding vehicles in Odoo. Ensure the correct Category is selected for a car model. Doing so automatically applies weight and volume capacities\nto all vehicles of that type.\nTo configure, navigate to Fleet app ⣠Configuration ⣠Models .\nFrom the Models list, select an existing model, or click New in the top-left\ncorner to create a new model. Then, set the relevant Category field to the relevant\nvehicle category.\n\n### Inventory settings\n\nNext, go to Inventory app ⣠Configuration ⣠Settings , and enable the required\nfeatures for dispatch management.\nIn the Operations section, tick the Batch, Wave & Cluster Transfers checkbox to prepare batches of orders for delivery.\nIn the Shipping section, tick the Delivery Methods and Dispatch\nManagement System checkboxes. Doing so allows specific vehicles to be set as carriers .\nIn the Warehouse section, tick the Storage Locations checkbox to assign\nspecific locations in the warehouse as loading zones for delivery trucks.\nThen, once all the configurations are complete, be sure to click Save .\n\n### Delivery method\n\nNext, assign each delivery vehicle as a Carrier by configuring a delivery method.\nTo configure delivery methods, go to Inventory app ⣠Configuration ⣠Delivery\nMethods . Select an existing delivery method, or click New .\nConfigure delivery method\nOn the Delivery Method form, enter a name for the delivery method. It is recommended to\nuse identifying information, such as the vehicle description and license plate number (e.g. Truck 123-ABCD ).\n`Truck123-ABCD`\nSince the delivery methods are managed internally, set the Provider to either Fixed Price or Based on Rules . For more information about how shipping\nprices are calculated, refer to the Delivery method article.\nNext, set a Delivery Product , which is the product that shows up as the customerâs delivery charge on the sales order or invoice.\nOptionally, in the Availability tab, set the Countries , States ,\nor Zip Prefixes to limit the range of local delivery.\nExample delivery method, with the Zip Prefixes set to San Franciscoâs zip code.\n\n### Dock locations\n\nEach loading dock must have a dedicated location. To create or configure dock locations, go to Inventory app ⣠Configuration ⣠Locations .\nClick the desired location, which opens the Location form. In the Additional\nInformation section, tick the Is a Dock Location checkbox.\nLocation configuration page with Is a Dock Location checkbox ticked.\n\n## Build loads\n\nOnce setup is complete, assign orders to a carrier and group them into batches . Then, configure the batch form , as needed.\nTo group products, go to the Inventory app ⣠Operations ⣠Deliveries , which\nreveals a list of outgoing deliveries.\nSince this article is about a specific use case, explore details about each picking method in\ntheir dedicated articles.\n- Batch picking\n- Wave picking\n- Cluster picking\n\n### Carrier assignment\n\nReveal the Carrier column, if it is not visible by default, by clicking the (settings) icon in the top-right corner, and ticking the Carrier checkbox.\nOther useful columns to enable can be Zip code, Shipping Weight , and Shipping Volume .\nSelect the delivery orders for the batch by ticking the checkboxes on the left. Next, click into the\nlineâs Carrier fields. In the resulting drop-down menu, choose the desired vehicleâs delivery method . A Confirmation pop-up window appears, indicating the number of orders being added to the\nbatch. Click Confirm , and the carrier is updated for all the selected records.\nThe delivery method Truck 1-MER-001 is set as the Carrier for two delivery orders.\n`Truck1-MER-001`\n\n### Create batch\n\nWith the carrier set, begin adding orders to a batch or wave transfer by ticking the checkbox.\nIf a delivery order is already assigned to a batch transfer, assigning a batch transfer here does not update it.\nThen, click the Actions button, and click either Add to batch or Add to wave . In the pop-up window, ensure Add to is set to a\nnew [batch/wave] transfer , then click Confirm .\nDelivery orders are selected to be grouped into a wave transfer.\n\n#### Alternative batch creation method\n\nAnother place to create batches is by going to the Inventory app, and in the Delivery Orders card, click the (three dots) icon. In\nthe resulting drop-down menu, click Prepare batch .\nThe Transport Management drop-down menu contains other tools for fleet management:\n- Manage Batches : open list of batches\nManage Batches : open list of batches\n- Dock Dispatching : open weekly calendar view of scheduled batch operations\nDock Dispatching : open weekly calendar view of scheduled batch operations\n- Batches by Route : Kanban view of batches grouped by fulfillment route\nBatches by Route : Kanban view of batches grouped by fulfillment route\n- Calendar : open hourly calendar view of scheduled operations\nCalendar : open hourly calendar view of scheduled operations\n- Statistics : open pivot table of the batch transfers\nStatistics : open pivot table of the batch transfers\n\n### Batch form\n\nOn the batch transfer form, fill the following fields out accordingly:\n- Responsible : employee assigned to the picking. Leave blank if any worker can fulfill\nthis picking.\nResponsible : employee assigned to the picking. Leave blank if any worker can fulfill\nthis picking.\n- Operation Type : from the drop-down menu, select the operation type under which the\npicking is categorized.\nOperation Type : from the drop-down menu, select the operation type under which the\npicking is categorized.\n- Scheduled Date : specifies the date by which the Responsible person should\ncomplete the transfer to the output location.\nScheduled Date : specifies the date by which the Responsible person should\ncomplete the transfer to the output location.\n- Dock Location : select the loading location.\nDock Location : select the loading location.\n- Vehicle : select the vehicle, which will auto-fill Vehicle Category .\nVehicle : select the vehicle, which will auto-fill Vehicle Category .\n- Vehicle Category : show if the order exceeds the vehicleâs capacity limits\nVehicle Category : show if the order exceeds the vehicleâs capacity limits\nThe Volume bar is grayed out because the capacity has been reached.\n\n#### Prepare delivery route\n\nTo help the driver prepare, click the Map button at the top of the batch or wave form to\nview delivery destinations on a map. Selecting an individual delivery order pinpoints its location.\nThe Map button is only visible for transfers with the In progress status.\nAdditionally, use the View in Google Maps button to generate a route from the warehouse\nto the delivery points.", "headings": ["Configuration", "Vehicle capacity", "Car model", "Inventory settings", "Delivery method", "Dock locations", "Build loads", "Carrier assignment", "Create batch", "Batch form"], "doc_id": "841ede21ee0913e5"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/easypost.html", "title": "EasyPost integration", "module": "inventory", "section": "EasyPost integration", "text": "# EasyPost integration\n\nSet up the EasyPost delivery connector in Odoo to manage EasyPost shipments to clients directly\nwithin Odoo.\nEasyPost is a service that allows users to connect with multiple carriers, like UPS, USPS, FedEx,\nDHL, and more. Odoo can then connect to EasyPost to purchase labels from those carriers.\nTo configure it, complete these steps:\n- Create an EasyPost account .\nCreate an EasyPost account .\n- Integrate carrier accounts if the carrier is not enabled on the EasyPost account .\nIntegrate carrier accounts if the carrier is not enabled on the EasyPost account .\n- Obtain Test and Production API keys .\nObtain Test and Production API keys .\n- Set up the delivery method in Odoo .\nSet up the delivery method in Odoo .\nUpon completion, it is possible to calculate shipping costs based on package size and weight, have\nthe charges applied directly to an EasyPost business account, and automatically print EasyPost\ntracking labels in Odoo.\n\n## Account setup\n\nTo begin, go to the EasyPost website to create or log into the\ncompanyâs EasyPost business account.\nFollow the websiteâs steps to complete registration and sign up for shipping services. Some shipping\nservices (like USPS and DHL Express) are automatically enabled.\n\n### Integrating other carrier accounts\n\nTo use a different carrier, it is possible to enable Wallet Carrier Accounts to purchase labels from EasyPost. Alternatively, if a user has their own carrier account, they can enable it on EasyPost .\nThen, after these accounts are enabled, Odoo can integrate with the EasyPost account and manage\nlabels.\n\n### Obtain Test and Production API keys\n\nAfter completing the setup, create Test and Production API keys. On the EasyPost website, click the Account Settings link, then open the API Keys page.\nIf these API keys have not yet been created, click Add Additional API Key . Select either Production or Test . The API key is automatically created. Follow the same\nprocess to create both keys.\n\n## Delivery method configuration\n\nWith those necessary credentials, configure the EasyPost delivery method in Odoo by going to Inventory app ⣠Configuration ⣠Delivery Methods .\nOn the Delivery Methods page, click New .\nIn the Provider field, select Easypost from the drop-down menu. Doing so\nreveals the Easypost Configuration tab at the bottom of the form, where the EasyPost API keys\nshould be entered.\nFor details on configuring the other fields on the delivery method, such as Delivery\nProduct , refer to the Add a new delivery method documentation.\nTo generate EasyPost shipping labels through Odoo, ensure the Integration Level option is set to Get Rate and Create Shipment .\nIn the Easypost Configuration tab, complete the following fields:\n- Test API Key : the Test API key in the EasyPost Account Settings.\nTest API Key : the Test API key in the EasyPost Account Settings.\n- Production API Key : the Production API key in the EasyPost Account Settings.\nProduction API Key : the Production API key in the EasyPost Account Settings.\n- Label Format : Choose PNG , PDF , ZPL , or EPL2 from the drop-down menu.\nLabel Format : Choose PNG , PDF , ZPL , or EPL2 from the drop-down menu.\n- Generate Return Label : Select to automatically generate a return label when validating\nthe delivery.\nGenerate Return Label : Select to automatically generate a return label when validating\nthe delivery.\nSave the delivery method by clicking the (Save manually) icon.\nClick the Load your Easypost carrier accounts link under the API keys.\nThe Select a carrier pop-up window opens. Select a shipping carrier from the drop-down menu, then\nclick Select .\nAfter the carrier type has been selected, complete the Default Package Type and Default Service Level fields.\n\n## Turn on the Easypost integration\n\nAfter the EasyPost connection is set up, use the smart buttons at the top of the form to publish,\nturn on production mode, or activate debug logging.\n- Unpublished/Published : determines if this delivery method is available on the userâs eCommerce website.\nUnpublished/Published : determines if this delivery method is available on the userâs eCommerce website.\n- Test Environment/Production Environment : determines whether label creation is for\ntesting and cancelled immediately (Test) or generating a real shipping label that is charged to\nthe EasyPost account (Production).\nTest Environment/Production Environment : determines whether label creation is for\ntesting and cancelled immediately (Test) or generating a real shipping label that is charged to\nthe EasyPost account (Production).\n- No Debug/Debug Requests : determines whether API requests and responses are logged in\nOdoo (turn on developer mode and go to Settings app ⣠Technical â£\nLogging ).\nNo Debug/Debug Requests : determines whether API requests and responses are logged in\nOdoo (turn on developer mode and go to Settings app ⣠Technical â£\nLogging ).", "headings": ["Account setup", "Integrating other carrier accounts", "Obtain Test and Production API keys", "Delivery method configuration", "Turn on the Easypost integration"], "doc_id": "19dd062402e58aba"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/envia_shipping.html", "title": "Envia.com integration", "module": "inventory", "section": "Envia.com integration", "text": "# Envia.com integration\n\nEnvia.com is a shipping service that connects businesses with multiple carriers in Odoo. Key\nfeatures include:\n- Multi-carrier & international shipping : Compare rates across carriers and select the best\noption for domestic or global shipments.\nMulti-carrier & international shipping : Compare rates across carriers and select the best\noption for domestic or global shipments.\n- Automated label generation : Generate shipping labels at order confirmation.\nAutomated label generation : Generate shipping labels at order confirmation.\n- Real-time rate calculation : Fetch rates based on package details and destination.\nReal-time rate calculation : Fetch rates based on package details and destination.\n\n## Setup in Envia\n\nTo integrate Envia.com with Odoo, first create an account and activate\nthe necessary shipping carriers. Then, obtain the API credentials, which is used to connect\nEnvia.com to the Odoo database.\n\n### Create an account and activate carriers\n\nBegin by going to Envia.com .\nAfter signing in, in the left sidebar, click Settings ⣠Print Options and\nCarriers . Next, select the country to set the currency and display available shipping carriers.\nWhen signing up, make sure to select the correct language and country in the upper right-hand\ncorner. This affects the currency of the account!\nAfter deciding on the desired carrier, click Activate , then click Services to select the carrierâs available shipping options.\nBilling is always processed in the currency of the country that matches the primary billing\naddress. If the company operates in multiple countries, consider creating separate accounts for\neach location.\nEnvia will send an SMS or WhatsApp message to confirm the email address and phone number.\n\n### Generate Envia.com credentials\n\nGo to Envia.com , navigate to Developers ⣠API Keys , on\nthe left menu, then click add to generate a new key.\nThis key is required to authenticate Odooâs connection with Envia.com. Retrieve it at any time by\nreturning to the API Keys section.\n\n## Setup in Odoo\n\nInstall the Envia Shipping ( delivery_envia ) module, and\nproceed to the following sections to configure the integration in Odoo.\n`delivery_envia`\n\n### Envia.com shipping connector configuration\n\nAfter activating the Envia.com connector, create a delivery method by going to Inventory ⣠Configuration ⣠Delivery Methods and click New .\nFill out the following form fields:\n- Shipping Method : Name of the shipping method, e.g. Envia.com .\nShipping Method : Name of the shipping method, e.g. Envia.com .\n`Envia.com`\n- Provider : Select Envia from the drop-down menu.\nProvider : Select Envia from the drop-down menu.\n- Delivery Product : The product listed on the sales order as the delivery charge. A\nspecific delivery product for Envia.com must be created.\nDelivery Product : The product listed on the sales order as the delivery charge. A\nspecific delivery product for Envia.com must be created.\n- In the Envia Configuration tab, enter the Envia Production Access Token .\nIn the Envia Configuration tab, enter the Envia Production Access Token .\n- In the Envia Configuration tab, enter the Envia Sandbox Access Token .\nIn the Envia Configuration tab, enter the Envia Sandbox Access Token .\n- Insurance percentage : If insurance is needed, place a percentage of the value to\ninsure. If not, leave it as 0. Keep in mind that the insurance price is calculated only after the\nlabel has been generated, including for LTL shipments.\nInsurance percentage : If insurance is needed, place a percentage of the value to\ninsure. If not, leave it as 0. Keep in mind that the insurance price is calculated only after the\nlabel has been generated, including for LTL shipments.\nIt is mandatory to fill both the production and sandbox tokens, but it could be left as a random\ncharacter as it is not validated at this point.\nAdditional considerations for the Envia Default Package :\n- The package is specified in mm and kg . The weight refers to the container\nitself, not its contents. Leave the weight as 0 if no weight is reported, and set the max weight\nto 0 if there is no specified limit.\nThe package is specified in mm and kg . The weight refers to the container\nitself, not its contents. Leave the weight as 0 if no weight is reported, and set the max weight\nto 0 if there is no specified limit.\n`0`\n`0`\n- Envia Package Type : Set to Box by default. Ensure the correct type is\nselected, as it affects the available carriers and options displayed, which vary depending on this\nselection.\nEnvia Package Type : Set to Box by default. Ensure the correct type is\nselected, as it affects the available carriers and options displayed, which vary depending on this\nselection.\nOnce previous fields are properly set, navigate to the Envia Configuration tab, and in\nthe Envia.com Service Name field, click the (refresh) icon to sync the carriers. In the pop-up window that appears, select a carrier and a service level\nfrom the list.\nEnvia keeps the main currency of the account fixed. In order to provide more precise conversions\nfor the costs of shipping, specify the currency that is set for the account on Envia. If\nnecessary, Odoo offers the option to change the country. By default it uses the country\nassociated with the company.\nIf more than one shipping option is needed, create more shipping methods in Odoo and modify any\nparameter like the package, carrier, or service.\n\n### Shipping information\n\nTo use Envia.com to generate shipping labels, the following information must be filled out\naccurately and completely in Odoo:\n- Customer information : When creating a quotation, ensure the selected Customer has\na valid phone number, email address, and shipping address. To verify, select the Customer field to open their contact page. Here, add their\nshipping address in the Contact field, along with their Mobile number and Email address.\nCustomer information : When creating a quotation, ensure the selected Customer has\na valid phone number, email address, and shipping address.\nTo verify, select the Customer field to open their contact page. Here, add their\nshipping address in the Contact field, along with their Mobile number and Email address.\n- Product weight : Ensure all products in a delivery order have a specified Weight in the Inventory tab of their product form. Refer to the Product weight section of this article for detailed instructions.\nProduct weight : Ensure all products in a delivery order have a specified Weight in the Inventory tab of their product form. Refer to the Product weight section of this article for detailed instructions.\n- Warehouse address : By default all packages are sent from the specified address in the\nwarehouse, make sure to set the address for correct label generation.\nWarehouse address : By default all packages are sent from the specified address in the\nwarehouse, make sure to set the address for correct label generation.\n\n### Address filling guide\n\nEach country has rules regarding how an address is filled. This is a comprehensive guide of each\ncountryâs expected fields exceptions:\nCountries not listed here should be entered normally.\nFor some countries, the zip code is not commonly requested. If empty, Odoo will use Enviaâs zip\napproximation services to get the zip code.\nFor Colombia, the zip code is extracted from the city selected in city_id if the localization\nis installed, otherwise Odoo will use the zip field.\n`city_id`\nColombia and Mexico have a list of cities referred to as city_id in Odoo. If city_id is set,\nit is used as the city field. If not set, then Odoo will try to use the city field.\n`city_id`\n`city_id`\nIn Mexico, some carriers might require the Colony field, commonly known as\nneighborhood. It is not always mandatory, but when using the EDI for Mexico (Advanced\nFeatures) module, the Colony field is required.\nIn Brazil the address is split to comply with regulation, so street_name is used for the street\nname only. street_number1 is used for the street number and street_number2 is used for the\ncomplement. This logic also applies if the Extended Addresses module is installed.\n`street_name`\n`street_number1`\n`street_number2`\n\n## Generate labels with Envia\n\nWhen creating a quotation in Odoo, add shipping and the Envia.com shipping product .\nThen, Validate the delivery. Shipping label documents are automatically generated in the\nchatter, which include the following:\n- Shipping label(s) depending on the number of packages.\nShipping label(s) depending on the number of packages.\n- Return label(s) if the Envia.com connector is configured for returns.\nReturn label(s) if the Envia.com connector is configured for returns.\nWhen labels are created, Envia.com automatically charges the configured account and the final\namount is logged in the chatter. If multi-currency operations occur, the amount logged is\ncalculated using Odooâs rate. Actual rates may vary.\nAdditionally, the tracking number is now available.\nBrazilian Authorities might request the invoice related to the shipping (NFe). It is recommended\nto physically attach the invoice of the order along with the label.\n\n### International shipping\n\nFor international shipments it is required to fill both the HS code and the country of Origin of Goods , both can be found on the productâs Inventory tab.\n\n### LTL shipments\n\nLTL shipment labels can be generated through the Envia connector. The insurance for LTL shipments is\nbased on the insurance percentage specified in the delivery methodâs form.\nFor Mexico, since a Bill of Landing needs to be created for the shipment, Odoo is required to\nsend the UNSPSC code of the contents, as well as a unit of measure for transportation which is X8A - Pallet de madera by default.\nAdditional services are available when selecting pallet as a Envia Package Type on\nthe delivery method, which allows selecting additional services like lift assistance and\ndeliveries during weekends.\n`pallet`\n\n## Tracking and cancellation\n\nShipments registered with Envia can be tracked using the Tracking smart button from the\ndelivery order or using the tracking link from the customer portal .\n\n## FAQ\n\n### Measuring volumetric weight\n\nMany carriers have several measurements for weight. There is the actual weight of the products in\nthe parcel, and the volumetric weight. Volumetric weight is the volume that a package occupies when\nin transit, i.e. the physical size of a package.\nDue to volumetric weight, it is possible that the actual weight in the label is higher than the\ncalculated value.\n\n### Which printing options are available?\n\nOn Envia.com in Settings ⣠Print options and Carriers printing options for each\nof the carriers displayed, make sure to use the appropriate format for the chosen carrier.\n\n### The needed service is not available\n\nFor available carriers, make sure that they are enabled through Envia.\n\n### Who will pay customs duties?\n\nItâs important to make sure that if there are exports to other countries, use Enviaâs carrier\nsettings to configure whether it is paid by the sender or the receiver.\n\n### What is âEnvia errorâ?\n\nItâs a message that appears when thereâs an error in Envia. This message mentions what went wrong in\ntheir platform so it can be addressed.", "headings": ["Setup in Envia", "Create an account and activate carriers", "Generate Envia.com credentials", "Setup in Odoo", "Envia.com shipping connector configuration", "Shipping information", "Address filling guide", "Generate labels with Envia", "International shipping", "LTL shipments", "Tracking and cancellation", "FAQ", "Measuring volumetric weight", "Which printing options are available?", "The needed service is not available", "Who will pay customs duties?", "What is âEnvia errorâ?"], "doc_id": "dfc473556d29adf9"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/fedex.html", "title": "FedEx integration", "module": "inventory", "section": "FedEx integration", "text": "# FedEx integration\n\nIntegrating a FedEx account with Odooâs Inventory app makes it possible to calculate\ndelivery rates , and generate delivery labels within Odoo.\nThis is accomplished by enabling the FedEx shipping connector , then configuring at least one shipping method .\nThis documentation contains configuration details specific to FedEx integration. See the\ndocumentation on third-party shippers for general shipper\nintegration instructions.\n\n## Enable shipping connector\n\nTo enable the shipping connector for FedEx, navigate to Inventory app â£\nConfiguration ⣠Settings . Scroll down to the Shipping Connectors section, and tick\nthe checkbox next to FedEx Connector .\nFinally, click Save to save the changes. After doing so, a FedEx Shipping Methods button appears below FedEx Connector .\n\n## Configure delivery method\n\nOnce the FedEx shipping connector is enabled, it is necessary to configure at least one delivery\nmethod. After doing so, the delivery method can be included in sales orders (SOs), and used to\ncompute delivery costs, and print delivery labels.\nTo enable a delivery method, navigate to Inventory app ⣠Configuration â£\nSettings , and click the FedEx Shipping Methods button below the FedEx\nConnector checkbox. Doing so opens a page that shows all existing FedEx delivery methods.\nTo see all delivery methods for every shipper with a connector enabled, navigate to Inventory app ⣠Configuration ⣠Delivery Methods .\nSelect a delivery method to open its form. Alternatively, click New to open a blank\nform, and configure a new delivery method.\nEnabling the FedEx shipping connector automatically creates two default shipping methods: FedEx US and FedEx International . Each of these methods are\npre-configured with test credentials, allowing them to be used for testing purposes.\nBefore the delivery method can be used to create actual shipments, the test credentials must be\nreplaced with credentials from a valid FedEx account.\n\n### General information\n\nAt the very top of a delivery method form are fields used to configure the way the method operates\nin Odoo. In the Provider field, select FedEx from the drop-down menu, if it\nis not already selected.\nThe rest of the fields in this section are general to all delivery providers. For details on how to\nfill them out, see the documentation on third-party shippers .\n\n### Fedex Configuration tab\n\nThe options in the Fedex Configuration tab of a FedEx delivery method form are used to\nconnect the method to a FedEx account, and configure the delivery details associated with the method\n(drop-off type, package type, etc.).\nA FedEx developer account is required to obtain the information needed to fill out the fields in\nthis tab. To create a new account, navigate to FedExâs Open Account page, click on Create Account , and\nfollow the instructions.\n\n#### Create API Project\n\nAfter creating a developer account , navigate to\nthe My Projects tab, and click CREATE API PROJECT .\nOn the Tell us about your API needs popup, select Ships with FedEX and needs to integrate FedEx APIs into their system in the I work for a company that: drop-down.\n`ShipswithFedEXandneedstointegrateFedExAPIsintotheirsystem`\nNext, when prompted to Select API(s) for your project , make sure to enable the following APIs:\n`SelectAPI(s)foryourproject`\n- Ship, Rate & Other APIs\nShip, Rate & Other APIs\n- Address Validation API\nAddress Validation API\n- Rates and Transit Times API\nRates and Transit Times API\n- Ship API\n- Trade Documents Upload API\nTrade Documents Upload API\nEnter a Project name , then select any countries where packages will be shipped to, or\ndelivered from.\nTo move the project to production, click the Production key tab. From there, link a Shipping Account . Copy the API Key , Secret Key , and Account number, then paste\nthem into the appropriate fields on the Delivery Methods form.\n`APIKey`\n`SecretKey`\n`Account`\n\n#### Certification process\n\nTo enable the creation of FedEx shipping labels, the API must be certified. On the sidebar menu in\nthe FedEx developer portal , click API Certification , and follow the required instructions.\nThese certification often require reaching out to the FedEx support team via email.\n\n#### Account Number fields\n\nAn account number is the unique number assigned to each FedEx account.\nTo find a FedEx account number, log in to a FedEx account at https://www.fedex.com . Click on the\naccount holderâs name in the top-right corner of the screen, and select My Profile from the drop-down menu.\nOn the profile page, click Account Management on the left side of the screen. The\naccount number is displayed on this screen.\nOnce the password and account number are determined, enter them in the Password and Account Number fields on the Fedex Configuration tab of the delivery method\nform.\n\n#### Delivery details\n\nThe main section of the Fedex Configuration tab includes a number of additional fields\nused provide information about the delivery method:\n- Fedex Service Type : The FedEx service used to ship a package.\nFedex Service Type : The FedEx service used to ship a package.\n- Fedex Drop-Off Type : The method for getting a package into FedExâs possession.\nFedex Drop-Off Type : The method for getting a package into FedExâs possession.\n- Fedex Package Type : The type of package used for the delivery method.\nFedex Package Type : The type of package used for the delivery method.\n- Package Weight Unit : The unit of measure used to weigh packages.\nPackage Weight Unit : The unit of measure used to weigh packages.\n- Package Length Unit : The unit of measure used to determine the dimensions of packages.\nPackage Length Unit : The unit of measure used to determine the dimensions of packages.\n- Label Type : The type of delivery label used for packages.\nLabel Type : The type of delivery label used for packages.\n- Label Format : The file format used by Odoo to generate delivery labels.\nLabel Format : The file format used by Odoo to generate delivery labels.\n- Commercial Invoice Type : The dimensions and type of the paper used to print invoices.\nCommercial Invoice Type : The dimensions and type of the paper used to print invoices.\nThe options that should be selected on the Fedex Configuration tab of a delivery\nmethod depend on the negotiated delivery services of the associated FedEx account. To confirm the\navailable services for a FedEx account, visit the Account Management page after logging in to\nthe FedEx website, or speak with a customer service representative.\n\n#### Options section\n\nThe Options section of the Fedex Configuration tab provides a few additional\noptions to further configure the delivery method:\n- Saturday Delivery : Tick the checkbox to allow packages shipped with the delivery\nmethod to be delivered on Saturdays.\nSaturday Delivery : Tick the checkbox to allow packages shipped with the delivery\nmethod to be delivered on Saturdays.\n- Generate Return Label : Tick the checkbox to automatically generate a return label upon\nvalidation of a delivery order.\nGenerate Return Label : Tick the checkbox to automatically generate a return label upon\nvalidation of a delivery order.\n- Duties paid by : Use the drop-down menu to select whether duty charges should be paid\nby the Sender or Recipient .\nDuties paid by : Use the drop-down menu to select whether duty charges should be paid\nby the Sender or Recipient .\n\n## Activate delivery method\n\nBy default, delivery methods in Odoo are created within a test environment . This means they can\nonly be used for testing purposes, and are unable to generate actual delivery orders.\nTo activate a delivery method in a production environment , click the Test Environment smart button at the top of the delivery method form. After doing so,\nthe smart buttons changes to read Production Environment .\nWith the production environment enabled, validating a delivery order using the delivery method\ngenerates an actual delivery label with FedEx.\nClick the Production Environment smart button to return the delivery\nmethod to a test environment.\nDo not enable the production environment for a delivery method before it is ready to be used\nfor actual delivery orders. Doing so may lead to the creation of unwanted charges with FedEx.", "headings": ["Enable shipping connector", "Configure delivery method", "General information", "Fedex Configuration tab", "Activate delivery method"], "doc_id": "1cb14eb1566008ee"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/invoicing.html", "title": "Shipping cost invoicing", "module": "inventory", "section": "Shipping cost invoicing", "text": "# Shipping cost invoicing\n\nInvoicing customers for shipping after delivery ensures accurate charges based on real-time shipping\nfactors like distance, weight, and method.\nIn Odoo, shipping costs can be invoiced in two ways:\n- Agree with the customer on a fixed cost and include it in the sale order.\nAgree with the customer on a fixed cost and include it in the sale order.\n- Invoice shipping costs to the customer post-delivery , reflecting the actual expenses incurred by the business.\nInvoice shipping costs to the customer post-delivery , reflecting the actual expenses incurred by the business.\n\n## Configuration\n\nTo set prices to delivery methods, go to Inventory app ⣠Configuration â£\nSettings . Under the Shipping section, enable the Delivery Methods feature.\nThen, click Save .\n\n## Add shipping method\n\nNext, configure the the price of each delivery method by going to Inventory app â£\nConfiguration ⣠Shipping Methods and click the Create button. Doing so opens a form\nto provide details about the shipping provider, including:\n- Shipping Method ( required ) the name of the delivery method (e.g. flat-rate shipping , same day delivery , etc.).\nShipping Method ( required ) the name of the delivery method (e.g. flat-rate shipping , same day delivery , etc.).\n`flat-rateshipping`\n`samedaydelivery`\n- Provider ( required ): choose the delivery service, like FedEx, if using a\nthird-party carrier Ensure the integration with the shipping carrier is properly installed and\nselect the provider from the drop-down menu. See also Third-party shipping carriers\nProvider ( required ): choose the delivery service, like FedEx, if using a\nthird-party carrier Ensure the integration with the shipping carrier is properly installed and\nselect the provider from the drop-down menu.\nThird-party shipping carriers\n- Company : if the shipping method should apply to a specific company, select it from the\ndrop-down menu. Leave the field blank to apply the method to all companies.\nCompany : if the shipping method should apply to a specific company, select it from the\ndrop-down menu. Leave the field blank to apply the method to all companies.\n- Website : configure shipping methods for an e-commerce page. Select the applicable\nwebsite from the drop-down menu, or leave it blank to apply the method to all web pages.\nWebsite : configure shipping methods for an e-commerce page. Select the applicable\nwebsite from the drop-down menu, or leave it blank to apply the method to all web pages.\n- Delivery Product ( required ): the product listed on the sales order line as the delivery charge.\nDelivery Product ( required ): the product listed on the sales order line as the delivery charge.\n- Free if order amount is above : checking this box enables free shipping if the customer\nspends above the specified amount.\nFree if order amount is above : checking this box enables free shipping if the customer\nspends above the specified amount.\n\n## Invoice cost on sales order\n\nTo invoice shipping costs on the sales order, before the item is delivered, go to the Sales app and select the desired sales order.\nOn the sales order, click the Add Shipping button at the bottom-right corner.\nIn the Add a shipping method pop-up window, choose the intended carrier in the Shipping Method field.\nThen, click the Get Rate button to the calculate shipping price based on real-time\nshipping data Odooâs shipping carrier integration.\nThe Cost is automatically calculated using the weight of the items in the order.\nFinally, click the Add button to close the window.\nOn the sales order, the delivery product appears in the Order Lines tab, with the Unit Price set as the shipping cost calculated in the Add a shipping method pop-up window.\nFinally, after the product is delivered, click the Create invoice button, and an invoice\nis created that includes the shipping cost that was added earlier.\nThen, click the Create and View Invoice button, and a draft invoice is generated, with\nthe shipping cost included in the Invoice Lines tab.\n\n## Invoice real shipping costs\n\nTo modify the invoice to reflect the real cost of shipping, follow the steps above to create an invoice with a delivery product with a Unit\nPrice of zero.\nThen, on a draft invoice, modify the Unit Price to reflect the real shipping cost.\nFinally, invoice the customer the adjusted shipping cost by clicking Confirm .\n- Third-party shipping carriers\nThird-party shipping carriers\n- Print shipping labels\nPrint shipping labels", "headings": ["Configuration", "Add shipping method", "Invoice cost on sales order", "Invoice real shipping costs"], "doc_id": "e52bbf6236a66f51"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/label_type.html", "title": "Change shipping label size", "module": "inventory", "section": "Change shipping label size", "text": "# Change shipping label size\n\n## Overview\n\nIn Odoo, there are a variety of different types of shipping labels that can be selected for delivery\norders. Depending on the types of shipping packages used, different label sizes may be more\nappropriate, and can be configured to fit the package.\n\n## Configuration\n\nIn the Inventory module, go to Configuration ⣠Delivery â£\nShipping Methods. Click on a delivery method to choose it. For the following example, FedEx\nInternational will be used.\nIn the Configuration tab, under Label Type , choose one of the label types\navailable. The availability varies depending on the carrier.\nWhen a sales order with the corresponding shipping company is confirmed and a delivery order is\nvalidated, the shipping label will be automatically created as a PDF and appear in the Chatter .\n\n## Create a sales order\n\nIn the Sales application, click Create and select an international\ncustomer. Click Add A Product and select an item. Click Add Shipping , select\na shipping method, then click Get Rate , and finally, click Add .\nOnce the quotation is confirmed by clicking Confirm , a Delivery smart button\nwill appear.\nOnce the delivery order is validated by clicking Validate in the delivery order, the\nshipping documents appear in the Chatter .\n\n## Example labels\n\nThe default Label Type is Paper Letter . An example of a FedEx letter sized\nlabel is:\nFor comparison, an example of a FedEx bottom-half label is:", "headings": ["Overview", "Configuration", "Create a sales order", "Example labels"], "doc_id": "bfb44107b8cf90ff"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/labels.html", "title": "Print shipping labels", "module": "inventory", "section": "Print shipping labels", "text": "# Print shipping labels\n\nIntegrate Odoo with third-party shipping carriers to automatically generate shipping labels that\nincludes prices, destination addresses, tracking numbers, and barcodes.\nAutomatically print shipping carrier labels\n\n## Configuration\n\nTo generate labels for a third-party shipping carrier, first install the third-party shipping\nconnector . Then, configure and activate the delivery method , being sure to set\nthe Integration Level to Get Rate and Create Shipment to generate shipping\nlabels. Finally, provide the companyâs source address and product weights .\nThird-party shipping carriers\n\n### Labels for multi-step\n\nFor companies using two or three step\ndelivery , labels can be triggered to print after\nvalidating the picking or packing operation. To do that, go to Inventory app â£\nConfiguration ⣠Operations Types , and choose the desired operation.\nOn the Operation Type configuration page, tick the Print Label checkbox.\nEnabling this feature ensures that the third-party shipping label is printed upon validating this\noperation.\nFor two-step delivery , where products\nare placed directly in packages during picking, companies can print shipping labels during\npicking instead of delivery. Odoo allows users to enable the Print Label feature on\nthe Pick operation itself to achieve this flexibility.\n`Pick`\n\n## Print tracking labels\n\nTracking labels are printed when specific operations are validated. By default, validating a\ndelivery order (DO) generates a tracking label in the chatter.\nFor companies using two or three step delivery, refer to the printing labels for multi-step\ndelivery section to learn how to print the label\nafter validating a picking or packing operation.\nWhen both the Sales and Inventory apps are installed, begin in the Sales app,\nand proceed to the desired quotation or sales order (SO). There, and add the shipping cost to the order. Then, navigate to the linked DO â\nor another operation type when using multi-step delivery â to validate the operation and print the\nlabel.\nIf only the Inventory app is installed, create DOs directly in the Inventory app, add the third-party carrier in the Carrier field, and validate\nthe DO .\n\n### Add shipping on quotation\n\nTo generate a tracking label for an order, begin by creating a quotation in Sales\napp ⣠Orders ⣠Quotations , clicking New , and filling out the quotation form. Then,\nclick the Add Shipping button in the bottom-right corner of the quotation.\nIn the resulting pop-up window, select the intended carrier from the Shipping Method drop-down menu. The Total Order Weight field is automatically populated, based on the weight of products in the order . Modify this\nfield to overwrite the predicted weight, and use this weight to estimate the cost of shipping.\nNext, click Get Rate to display the shipping cost for the customer, via the third-party\ncarrier in the Cost field.\nIf clicking Get Rate results in an error, ensure the warehouseâs address and weight of products in the\norder are properly configured.\nClick Add to add the cost to the quotation, which is listed as the configured\ndelivery product . Finally, click Confirm on the quotation, and click the Delivery smart button to access the DO .\nFor users who do not have the Sales app installed, specify the Carrier by going to\nthe Inventory app, navigating to the DO , and going to the Additional Info tab.\n\n### Validate delivery order\n\nOn a delivery order form, navigate to the Additional Info tab to ensure the third-party\nshipping carrier has been added to the Carrier field.\nIf the Sales app is not installed, the third-party carrier is set in the Carrier field.\nAfter the items in the order have been packed, click Validate to get the shipping\ncarrierâs tracking number, and generate the shipping label.\nCreate or select an existing delivery order by going to the Inventory app, and\nselecting the Delivery Orders card.\nThe Tracking Reference number is generated in the Additional Info tab of the\ndelivery order. Click the Tracking smart button to access the tracking link from the\nshipping carrierâs website.\nThe tracking label is found in PDF format in the chatter.\nFor multi-package shipping, one label is generated per package. Each label appears in the\nchatter.\nSample label generated from Odooâs shipping connector with FedEx.\n- Shipping cost invoicing\nShipping cost invoicing\n- Multi-package shipments\nMulti-package shipments", "headings": ["Configuration", "Labels for multi-step", "Print tracking labels", "Add shipping on quotation", "Validate delivery order"], "doc_id": "0f2414bef0a331c8"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/multipack.html", "title": "Multi-package shipments", "module": "inventory", "section": "Multi-package shipments", "text": "# Multi-package shipments\n\nIn some cases, a delivery order with multiple items may need to be shipped in more than one package.\nThis may be necessary if the items are too large to ship in a single package, or if certain items\ncannot be packaged together. Shipping a single delivery order in multiple packages provides\nflexibility for how each item is packaged, without the need to create multiple delivery orders.\n\n## Configuration\n\nTo split a delivery order across multiple packages, the Packages setting must be enabled. To do\nso, navigate to Inventory app ⣠Configuration ⣠Settings , then in the Operations section, select the Packages checkbox. Click Save to confirm\nthe change.\n\n## Ship items in multiple packages\n\nTo split items in the same delivery order across multiple packages, begin by navigating to the Inventory app. On the Inventory Overview page, click the # to Deliver button on the Delivery Orders card. Finally, select a delivery order that has multiple items,\nmultiple quantities of the same item, or both.\nOn the Operations tab, select the (Open Move) icon on the line of the\nproduct that will be shipped in the first package.\nThis opens the Open: Stock move pop-up window. In the table of the pop-up window, the Quantity column shows the full quantity of the product included in the delivery order.\nIf the full quantity of that product will be shipped in the first package, enter the Demand quantity in the Quantity column. If less than the full quantity will\nbe shipped in the first package, enter a smaller value than the Demand quantity. Then,\nspecify a Destination Package for the product.\nIf the product is to be split into multiple packages, click the Add a line link and\nsplit the Quantity between the different Destination Package options that\nare created.\nClick Save to confirm the packages and close the pop-up.\nWhen packaging multiple products into the same package, repeat the same steps for every product in\nthe package. Be sure to specify the same Destination Package in the Open: Stock move window.\nFor the next package, follow the same steps outlined above, marking the Quantity and Destination Package for each item to be included. Continue doing so until the full\nquantity of each product in the delivery order has been added to a Destination Package .\nFinally, after all packages have been shipped, click Validate to complete the delivery\norder.\nAfter one or more packages are created, a Packages smart button\nappears above the delivery order. Click the Packages smart button to\nopen the Packages page for the delivery order, where each package can be selected to view all\nits items.\n\n## Create a backorder for items to be shipped later\n\nIf some items will be shipped at a later date than others, there is no need to put them in a package\nuntil they are ready to ship. Instead, create a backorder for the items being shipped later.\nBegin by shipping the items that will be shipped immediately. If they will be shipped in multiple\npackages, follow the steps in Ship items in multiple packages to package them as\nrequired. If they will be shipped in a single package, mark the Quantity and Destination Package for all items in that shipment.\nAfter all quantities being shipped immediately are packaged, return to the delivery order form.\nChange the Quantity for the backordered items to 0 or the partial quantity that is\nbeing shipped. Then, click the Validate button, and a Create Backorder? pop-up window\nappears. Click the Create Backorder button. Doing so immediately confirms the items\nbeing shipped and creates a new delivery order for the items that will be shipped later.\n`0`\nThe backorder delivery order will be listed in the chatter of the original delivery order in a\nmessage that reads The backorder WH/OUT/XXXXX has been created . Click on WH/OUT/XXXXX in the message to view the backorder delivery order.\nThe backorder delivery order can also be accessed by navigating to Inventory ,\nclicking the Back Orders # link on the Delivery Orders card, and selecting the\ndelivery order.\nWhen the remaining items are ready to be shipped, navigate to the backorder delivery order. The\nitems can be shipped in a single package by clicking Validate , or shipped in multiple\npackages by following the steps detailed in Ship items in multiple packages .\nIt is also possible to ship some of the items while creating a new backorder for the rest. To do so,\nfollow the same steps used to create the first backorder.", "headings": ["Configuration", "Ship items in multiple packages", "Create a backorder for items to be shipped later"], "doc_id": "54f6a11eee6e05f4"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/new_delivery_method.html", "title": "Add a new delivery method", "module": "inventory", "section": "Add a new delivery method", "text": "# Add a new delivery method\n\nThe Delivery Methods setting adds the option of calculating the cost of shipping on sales orders\nand e-commerce shopping carts. The shipping cost can then be added to a sales order as a delivery\nproduct, and the shipping details can be added to the delivery order.\n\n## Configuration\n\nTo configure delivery methods, go to Inventory app ⣠Configuration ⣠Delivery\nMethods .\nIf the Delivery Methods option is not available from the Configuration drop-down menu, verify whether the feature is enabled by following these steps:\n- Go to Inventory app ⣠Configuration ⣠Settings .\nGo to Inventory app ⣠Configuration ⣠Settings .\n- Scroll to the Shipping section and enable the Delivery Methods feature\nby checking the corresponding checkbox.\nScroll to the Shipping section and enable the Delivery Methods feature\nby checking the corresponding checkbox.\nOn the Delivery Methods page, add a method by clicking New . Doing so opens\na form to provide details about the shipping provider, including:\n- Delivery Method ( Required field ): the name of the delivery method (e.g. flat-rate shipping , same day delivery , etc.).\nDelivery Method ( Required field ): the name of the delivery method (e.g. flat-rate shipping , same day delivery , etc.).\n`flat-rateshipping`\n`samedaydelivery`\n- Website : configure shipping methods for an eCommerce page. Select the applicable\nwebsite from the drop-down menu, or leave it blank to apply the method to all web pages. This\nfield only appears when the eCommerce app is enabled.\nWebsite : configure shipping methods for an eCommerce page. Select the applicable\nwebsite from the drop-down menu, or leave it blank to apply the method to all web pages. This\nfield only appears when the eCommerce app is enabled.\n- Provider ( Required field ): choose the delivery service, like FedEx, if using a third-party carrier . Ensure the integration with the\nshipping carrier is properly installed and select the provider from the drop-down menu. For more\ndetails on configuring custom shipping methods, such as fixed price or based on rules options, refer to\ntheir respective sections below.\nProvider ( Required field ): choose the delivery service, like FedEx, if using a third-party carrier . Ensure the integration with the\nshipping carrier is properly installed and select the provider from the drop-down menu. For more\ndetails on configuring custom shipping methods, such as fixed price or based on rules options, refer to\ntheir respective sections below.\n- Company : If the shipping method should apply to a specific company, select it from the\ndrop-down menu. Leave the field blank to apply the method to all companies. This field only\nappears in multi-company databases.\nCompany : If the shipping method should apply to a specific company, select it from the\ndrop-down menu. Leave the field blank to apply the method to all companies. This field only\nappears in multi-company databases.\n- Routes : select the applicable routes to define different delivery methods, such as\nstandard or express shipping, based on varying lead times. This field only appears when you have\nenabled multi-step routes in your inventory configuration settings. For more information, refer to\nthe Set routes on shipping method section.\nRoutes : select the applicable routes to define different delivery methods, such as\nstandard or express shipping, based on varying lead times. This field only appears when you have\nenabled multi-step routes in your inventory configuration settings. For more information, refer to\nthe Set routes on shipping method section.\n- Delivery Product ( Required field ): the product listed on the sales order line as the delivery charge.\nDelivery Product ( Required field ): the product listed on the sales order line as the delivery charge.\n- Free if order amount is above : checking this box enables free shipping if the customer\nspends above the specified amount.\nFree if order amount is above : checking this box enables free shipping if the customer\nspends above the specified amount.\n- Tracking Link : This option adds a link to the portal so the customer can track their\ndelivery. When a custom carrier is added in a delivery order, the tracking button is enabled, and\nthe link directs to the tracking portal with that URL.\nTracking Link : This option adds a link to the portal so the customer can track their\ndelivery. When a custom carrier is added in a delivery order, the tracking button is enabled, and\nthe link directs to the tracking portal with that URL.\nTo set up $200 flate-rate shipping, fill in the following fields:\n`$200`\n- Delivery Method : Furniture Delivery (Manual)\nDelivery Method : Furniture Delivery (Manual)\n`FurnitureDelivery(Manual)`\n- Provider : Fixed Price\nProvider : Fixed Price\n- Fixed Price : 200\n`200`\n- Delivery Product : Furniture Delivery (manual)\nDelivery Product : Furniture Delivery (manual)\nUse the Availability tab to define conditions for the delivery method based on the\norderâs content or destination:\n- Countries : Specify one or more countries where the method is available.\nCountries : Specify one or more countries where the method is available.\n- Max Weight : Set a maximum weight; the method is only available for orders below this\nlimit.\nMax Weight : Set a maximum weight; the method is only available for orders below this\nlimit.\n- Max Volume : Set a maximum volume; the method is only available for orders below this\nlimit.\nMax Volume : Set a maximum volume; the method is only available for orders below this\nlimit.\n- Must Have Tags : The method is available only if at least one product in the order has\none of these tags.\nMust Have Tags : The method is available only if at least one product in the order has\none of these tags.\n- Excluded Tags : The method is unavailable if at least one product in the order has one\nof these tags.\nExcluded Tags : The method is unavailable if at least one product in the order has one\nof these tags.\nFor examples on how to configure specific shipping methods, refer to the sections below.\n\n## Fixed price\n\nTo configure a shipping price that is the same for all orders, go to Inventory app\n⣠Configuration ⣠Delivery Methods . Then, click New , and on the shipping method\nform, set the Provider to the Fixed Price option. Selecting this option\nmakes the Fixed Price field become available, which is where the fixed rate shipping\namount is defined.\nTo enable free shipping if the amount of the order exceeds a specified amount, check the box Free if order amount is above and fill in the amount.\nTo set up $20 flat-rate shipping that becomes free if the customer spends over $100 , fill in\nthe following fields:\n`$20`\n`$100`\n- Delivery Method : Flat-rate shipping\nDelivery Method : Flat-rate shipping\n`Flat-rateshipping`\n- Provider : Fixed Price\nProvider : Fixed Price\n- Fixed Price : $20.00\n`$20.00`\n- Free if order amount is above : $100.00\nFree if order amount is above : $100.00\n`$100.00`\n- Delivery Product : [SHIP] Flat\nDelivery Product : [SHIP] Flat\n`[SHIP]Flat`\n\n## Based on rules\n\nTo calculate the price of shipping based on pricing rules, set the Provider field to the Based on Rules option. Optionally, adjust Margin on Rate and Additional margin to include additional shipping costs.\n\n### Create pricing rules\n\nNavigate to the Pricing tab and click Add a line . Doing so opens the Create Pricing Rules window, where the Condition related to the product\nweight, volume, price, or quantity is compared to a defined amount to calculate the Delivery Cost .\nOnce finished, click either Save & New to add another rule, or Save & Close .\nTo charge customers $20 in shipping for orders with five or fewer products, set the Condition to Quantity <= 5.00 , and the Delivery Cost to $20 .\n`Quantity<=5.00`\n`$20`\nTo restrict shipping to specific destinations on the eCommerce website, in the shipping method\nform, navigate to the Destination Availability tab and define the Countries , States , and Zip Prefixes . Leave these fields empty if all locations apply.\n\n### Calculate delivery cost\n\nShipping cost is the Delivery cost specified in the rule that satisfies the Condition , plus any extra charges from the Margin on rate and Additional margin .\nWith the two following rules set up:\n- If the order contains five or fewer products, shipping is $20\nIf the order contains five or fewer products, shipping is $20\n- If the order contains more than five products, shipping is $50.\nIf the order contains more than five products, shipping is $50.\nMargin on Rate is 10% and Additional margin is $9.00 .\n`10%`\n`$9.00`\nWhen the first rule is applied, the delivery cost is $31 (20 + (0.1 * 20) + 9). When the second\nrule is applied, the delivery cost is $64 (50 + (0.1 * 50) + 9).\n\n## Route on shipping method\n\nOptionally, set different warehouse delivery processes for a shipping method by configuring\ndifferent routes for it.\nConfiguring multiple routes per shipping method is helpful for adjusting warehouse delivery\nprocesses based on:\n- speed (e.g., use one-step delivery for\nexpress shipping, or two-step for\nstandard shipping).\nspeed (e.g., use one-step delivery for\nexpress shipping, or two-step for\nstandard shipping).\n- international shipping (e.g. use three-step delivery to prepare documents for customs)\ninternational shipping (e.g. use three-step delivery to prepare documents for customs)\n- in-store pickup or home delivery: ship from the central warehouse, or pick from the storeâs\nstock, depending on customer selection.\nin-store pickup or home delivery: ship from the central warehouse, or pick from the storeâs\nstock, depending on customer selection.\nTo set up routes, go to Inventory app ⣠Configuration ⣠Routes . Click New , or select the desired route.\nOn the route form, in the Applicable On section, tick the Shipping Methods checkbox.\nRoutes form with the Shipping Method checkbox ticked.\nThen, go to Inventory app ⣠Configuration ⣠Delivery Methods , and select the\ndesired shipping method.\nOn the shipping method form, in the Routes field, select the available fulfillment\nroutes from the drop-down menu.\nIf the desired route is not selectable, check that the Shipping Methods option is enabled in\nthe routeâs Applicable On section.", "headings": ["Configuration", "Fixed price", "Based on rules", "Create pricing rules", "Calculate delivery cost", "Route on shipping method"], "doc_id": "fb40676496fdb75e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/print_on_validation.html", "title": "Printable delivery PDFs", "module": "inventory", "section": "Printable delivery PDFs", "text": "# Printable delivery PDFs\n\nAutomatically print delivery-related PDFs documents and labels in Odoo, containing package recipient\ndetails, contents, or handling instructions.\nThe following PDFs can be configured to print upon validating an Inventory operation (e.g.\nreceipt, picking, delivery orders, quality checks):\n- Delivery slip\n- Return slip\n- Product labels of items in the order\nProduct labels of items in the order\n- Lot and serial number labels\nLot and serial number labels\n- Carrier labels\n- Export documents\n- Package content\n- Package label\nTo automatically print these forms, navigate to Inventory app ⣠Configuration â£\nOperations Types , and select the desired operation type.\nIn the Hardware tab, tick each of the desired options available in the Print\non Validation section to download the PDF of those selected documents automatically after\nvalidating the Operation Type . For details on what each of the checkbox options do, jump\nto the related section.\n\n## Delivery slip\n\nA delivery slip contains recipient and package details, usually placed inside (or attached to) the\npackage.\n- Tracking label\nAfter enabling the Delivery Slip setting in the Hardware tab configuration options, clicking Validate on the desired\noperation type downloads a PDF of the delivery slip.\nThe delivery slip shows products, quantities, the delivery order reference number, and the total\norder weight.\n\n## Return slip\n\nPrint a return slip to include in a delivery for customer return packages. It identifies the\nreturn, links to the sales order, and includes item details and customer information. It can also\ninclude specific return instructions for the customer.\nAfter enabling the Return Slip setting in the Hardware tab configuration options, clicking Validate on the desired\noperation type downloads a PDF of the return slip.\nThe return slip displays the companyâs return address, along with barcodes for both the order and\nthe return operation.\n\n## Product labels\n\nPrint product labels to affix to items in an order, providing essential information, such as\nproduct name, barcode, and price.\nAfter navigating to the intended operation type ( Inventory app ⣠Configuration â£\nOperations Types ), in the Hardware tab, tick the Product Labels option.\nDoing so makes the Print label as: drop-down menu visible, where each product label can\nbe printed as:\n- 2 x 7 with price : PDF displays product name, barcode, and price, fitting two rows and\nseven columns of product labels per page. Example 2 x 7\n2 x 7 with price : PDF displays product name, barcode, and price, fitting two rows and\nseven columns of product labels per page.\n- 4 x 7 with price : displays product name, barcode, and price, fitting four rows and\nseven columns of product labels per page. Example 4 x 7\n4 x 7 with price : displays product name, barcode, and price, fitting four rows and\nseven columns of product labels per page.\n- 4 x 12 : displays product name and barcode. Fits four rows and twelve columns of\nproduct labels per page. Example 4 x 12\n4 x 12 : displays product name and barcode. Fits four rows and twelve columns of\nproduct labels per page.\n- 4 x 12 with price : displays product name, barcode, and price. Fits four rows and\ntwelve columns of product labels per page.\n4 x 12 with price : displays product name, barcode, and price. Fits four rows and\ntwelve columns of product labels per page.\n- ZPL Labels : prints labels in the Zebra Programming Language (ZPL) containing the\nproduct name and barcode. Readable for Zebra printers to automatically print labels.\nZPL Labels : prints labels in the Zebra Programming Language (ZPL) containing the\nproduct name and barcode. Readable for Zebra printers to automatically print labels.\n- ZPL Labels with price : prints labels in the ZPL containing the product name, barcode, and price.\nZPL Labels with price : prints labels in the ZPL containing the product name, barcode, and price.\nProduct labels can be manually printed from any delivery order, by clicking the Print\nLabels button.\n\n## Lot/SN Labels\n\nPrint lot/SN labels to affix to items in an order, providing essential information, such as\nproduct name, lot or serial number, and the barcode.\nTo automatically print this PDF, navigate to the intended operation typeâs options page\n( Inventory app ⣠Configuration ⣠Operations Types ). Then, in the Hardware tab, tick the Lot/SN Labels option.\nDoing so makes the Print label as: drop-down menu visible, where each product label can\nbe printed as:\n- 4 x 12 - One per lot/SN : PDF with labels for unique lot/serial numbers in the order,\nincluding product name, lot/serial number, and barcode. Fits four rows and twelve columns per\npage. Example 4 x 12 - One per lot/SN Labels for an order with only one unique set of lot/serial numbers.\n4 x 12 - One per lot/SN : PDF with labels for unique lot/serial numbers in the order,\nincluding product name, lot/serial number, and barcode. Fits four rows and twelve columns per\npage.\nLabels for an order with only one unique set of lot/serial numbers.\n- 4 x 12 - One per unit : PDF with labels matching the quantity of items, displaying the\nproduct name, lot/serial number, and barcode. Fits four rows and twelve columns per page.\n4 x 12 - One per unit : PDF with labels matching the quantity of items, displaying the\nproduct name, lot/serial number, and barcode. Fits four rows and twelve columns per page.\n- ZPL Labels - One per lot/SN : prints labels in ZPL , containing the product name, lot/serial number, and barcode.\nZPL Labels - One per lot/SN : prints labels in ZPL , containing the product name, lot/serial number, and barcode.\n- ZPL Labels - One per unit : prints labels with the quantity of items in ZPL , containing the product name, lot/serial number, and barcode.\nZPL Labels - One per unit : prints labels with the quantity of items in ZPL , containing the product name, lot/serial number, and barcode.\n\n## Carrier labels\n\nTo automatically print a carrier label with the recipient address, tracking number, and carrier\ndetails for specific third-party shipping carriers, complete the following setup:\n- Tick the Carrier Labels checkbox in the operation type settings .\nTick the Carrier Labels checkbox in the operation type settings .\n- Connect a printer to Odooâs IoT app.\nConnect a printer to Odooâs IoT app.\n- Assign the carrier label to the printer .\nAssign the carrier label to the printer .\n- Configure the shipping methodâs label type .\nConfigure the shipping methodâs label type .\n\n### Assign printer\n\nRefer to the Connect a printer documentation for\ndetails on connecting a printer to Odooâs IoT app. Upon completion, assign the carrier label to\nthe printer, by navigating to IoT app ⣠Devices , and selecting the desired\nprinter.\nIn the printer configuration form, go to the Printer Reports tab to configure the types\nof documents the printer automatically prints. Click Add a line to open the Add: Reports pop-up window. In the Search⦠bar, type Shipping , and\nselect Shipping Labels .\n`Shipping`\nThe Shipping Documents report is for export documents .\nAfter adding the Shipping Labels report in the Printer Reports tab, ensure\nthe Report Type matches the IoT-connected printerâs type.\n- For laser printers, set the Report Type to PDF .\nFor laser printers, set the Report Type to PDF .\n- For Zebra printers, set the Report Type to Text .\nFor Zebra printers, set the Report Type to Text .\n\n### Shipping carrier label type\n\nNext, complete the setup for the third-party shipping connector . After that, go to Inventory app â£\nConfiguration ⣠Shipping Methods , and select the desired shipping method.\nOn the shipping method configuration form, in the [carrier name] Configuration tab,\nensure the Label Format matches the report type assigned earlier :\n- For laser printers, set the Label Format to PDF .\nFor laser printers, set the Label Format to PDF .\n- For Zebra printers, set the Label Format to ZPL2 .\nFor Zebra printers, set the Label Format to ZPL2 .\n\n### Example carrier label\n\nAfter validating the operation, the carrier label is generated in the chatter, and printed using the\nIoT-connected printer.\nCarrier label for FedEx, containing the recipient address, tracking number, barcode, and\nother shipping information.\n\n## Export document\n\nAn export document , required by customs to ship packages from one country to another, can be\nautomatically printed in Odoo by following these steps:\n- Tick the Export Documents checkbox in the operation type settings .\nTick the Export Documents checkbox in the operation type settings .\n- Connect a printer to Odooâs IoT app.\nConnect a printer to Odooâs IoT app.\n- Assign the export document to the printer.\nAssign the export document to the printer.\n\n### Assign printer\n\nSimilar to the printer assignment instructions for carrier labels , after connecting a compatible printer to the Odoo IoT app, go to IoT app ⣠Devices , and select the desired printer.\nIn the printer configuration form, go to the Printer Reports tab, and click Add a line . In the Add: Reports pop-up window that appears, add the Shipping Documents report to assign the export document to the printer.\nExport document for a shipment from the USA to Belgium.\n\n## Package content\n\nA package content PDF includes the packageâs barcode, packed date, along with a list of contained\nproducts and quantities.\nTo print this form automatically, go to Inventory app ⣠Configuration â£\nOperation Types , and select the desired operation type. Then, go to the Hardware tab,\nand tick the Package Contents checkbox.\nIf the option is not available, enable the Packages feature, by going to Inventory app\n⣠Configuration ⣠Settings , ticking the Packages checkbox, and clicking Save .\nAfter enabling the feature in the Hardware tab, validating the operation prints a PDF of\nthe package contents.\nPackage contents showing the package contents, barcode, and pack date.\n\n## Package label\n\nA package label that shows the packageâs barcode and pack date can be configured to print upon\nclicking the Put in Pack button.\nThe Put in Pack button is available only when the Packages feature is enabled in Inventory app ⣠Configuration ⣠Settings .\nAfter it is enabled, the Put in Pack button is available on all inventory operations\n(e.g. receipt, pickings, internal transfers, delivery orders, etc.).\nTo automatically print the package label when the Put in Pack button is clicked, go to Inventory app ⣠Configuration ⣠Operation Types . Select the desired operation\ntype, and tick the Package Label checkbox in the Hardware tab. Labels can be\nprinted in PDF or ZPL file formats, as defined in the Print label\nas field.", "headings": ["Delivery slip", "Return slip", "Product labels", "Lot/SN Labels", "Carrier labels", "Assign printer", "Shipping carrier label type", "Example carrier label", "Export document", "Assign printer", "Package content", "Package label"], "doc_id": "16429cc5245521e5"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.html", "title": "Sendcloud integration", "module": "inventory", "section": "Sendcloud integration", "text": "# Sendcloud integration\n\nSendcloud is a shipping service aggregator that facilitates the integration of European shipping\ncarriers with Odoo. Once integrated, users can select shipping carriers on inventory operations in\ntheir Odoo database.\n\n## Setup in Sendcloud\n\n### Create an account and activate carriers\n\nTo get started, create or log in to a Sendcloud account .\nOn the Sendcloud platform, follow the Sendcloud integration documentation to\nconfigure the account and generate the connector credentials.\nFor new account creation, Sendcloud will ask for a VAT number or EORI number. After\ncompleting the account setup, activate (or deactivate) the shipping carriers that will be used in\nthe Odoo database.\nOdoo integration of Sendcloud works on free Sendcloud plans only if a bank account is linked,\nsince Sendcloud wonât ship for free. To use shipping rules, or individual custom carrier\ncontacts, a paid plan of Sendcloud is required .\n\n### Warehouse configuration\n\nOnce logged into the Sendcloud account, navigate to Settings ⣠Shipping â£\nAddresses , and fill in the field for Warehouse address .\nTo allow Sendcloud to process returns as well, a Return Address is required. Under the Miscellaneous section , there is a field called Address Name (optional) . The\nOdoo warehouse name should be entered here, and the characters should be exactly the same.\n`Warehouse#1`\n`Default`\n`Warehouse#1`\n`WH`\n`Mycompany(SanFrancisco)`\n`MyCompany(SanFrancisco)`\nNotice how the inputs for the Warehouse field, for both the Odoo configuration and\nthe Sendcloud configuration, are the exact same.\n\n### Generate Sendcloud credentials\n\nIn the Sendcloud account, navigate to Settings ⣠Integrations in the menu on the\nright. Next, search for Odoo Native . Then, click on Connect .\nAfter clicking on Connect , the page redirects to the Sendcloud API settings\npage, where the Public and Secret Keys are produced. The next step is to name the Integration . The naming convention is as follows: Odoo CompanyName , with the userâs\ncompany name replacing CompanyName (e.g. Odoo StealthyWood ).\n`OdooCompanyName`\n`CompanyName`\n`OdooStealthyWood`\nThen, check the box next to Service Points and select the shipping services for this\nintegration. After saving, the Public and Secret Keys are generated.\n\n## Setup in Odoo\n\nTo ensure seamless Sendcloud integration with Odoo, install and link the Sendcloud shipping connector to the\nSendcloud account. Then, configure Odoo fields , so Sendcloud can accurately pull shipping\ndata to generate labels.\nEnable pickup points on websites\n\n### Install Sendcloud shipping module\n\nAfter the Sendcloud account is set up and configured, itâs time to configure the Odoo database. To\nget started, go to Odooâs Apps module, search for the Sendcloud Shipping integration,\nand install it.\n`SendcloudShipping`\n\n### Sendcloud shipping connector configuration\n\nOnce installed, activate the Sendcloud Shipping module in Inventory â£\nConfiguration ⣠Settings . The Sendcloud Connector setting is found under the Shipping Connectors section.\nAfter activating the Sendcloud Connector , click on the Sendcloud Shipping\nMethods link below the listed connector. Once on the Shipping Methods page, click New .\nShipping Methods can also be accessed by going to Inventory â£\nConfiguration ⣠Delivery ⣠Shipping Methods .\nFill out the following fields in the New Shipping Method form:\n- Shipping Method : type Sendcloud DPD .\nShipping Method : type Sendcloud DPD .\n`SendcloudDPD`\n- Provider : select Sendcloud from the drop-down menu.\nProvider : select Sendcloud from the drop-down menu.\n- Delivery Product : set the product that was configured for this shipping method or\ncreate a new product.\nDelivery Product : set the product that was configured for this shipping method or\ncreate a new product.\n- In the SendCloud Configuration tab, enter the Sendcloud Public Key .\nIn the SendCloud Configuration tab, enter the Sendcloud Public Key .\n- In the SendCloud Configuration tab, enter the Sendcloud Secret Key .\nIn the SendCloud Configuration tab, enter the Sendcloud Secret Key .\n\n#### Pickup points\n\nSendcloudâs service point delivery lets customers\nchoose a pickup location (such as a nearby shop or locker) instead of entering a private delivery\naddress.\nTo enable the feature, go to the shipping method form, and in the SendCloud\nConfiguration tab, under the Options section, enable Use Sendcloud\nLocations feature.\nPickup point selection is only available through the Website app (the online checkout view).\nIt is not currently possible to select a pickup point manually through the Sales app (the\ninternal database view).\nFor example, if the customer selects a shipping method like Sendcloud Mondial Relay , they must\nchoose a pickup point during the checkout process on the website. If no pickup point is selected,\nthe delivery order cannot be validated in Odoo.\n\n#### Load shipping products\n\nAfter configuring and saving the form, follow these steps to load the shipping products:\n- In the SendCloud Configuration tab of the New Shipping Method form, click\non the Load your SendCloud shipping products link.\nIn the SendCloud Configuration tab of the New Shipping Method form, click\non the Load your SendCloud shipping products link.\n- Select the shipping products the company would like to use for deliveries and returns.\nSelect the shipping products the company would like to use for deliveries and returns.\n- Click Select .\nSample Sendcloud shipping products configured in Odoo:\n`DPDHome0-31.5kg`\n`DPD`\n`0.00`\n`31.50`\nCountries : Austria Belgium Bosnia Herzegovina Bulgaria Croatia Czech Republic Denmark Estonia Finland France Germany Greece Hungary Iceland Ireland Italy Latvia Liechtenstein Lithuania Luxembourg Monaco Netherlands Norway Poland Portugal Romania Serbia Slovakia Slovenia Spain Sweden Switzerland\n`Austria`\n`Belgium`\n`Bosnia`\n`Herzegovina`\n`Bulgaria`\n`Croatia`\n`Czech`\n`Republic`\n`Denmark`\n`Estonia`\n`Finland`\n`France`\n`Germany`\n`Greece`\n`Hungary`\n`Iceland`\n`Ireland`\n`Italy`\n`Latvia`\n`Liechtenstein`\n`Lithuania`\n`Luxembourg`\n`Monaco`\n`Netherlands`\n`Norway`\n`Poland`\n`Portugal`\n`Romania`\n`Serbia`\n`Slovakia`\n`Slovenia`\n`Spain`\n`Sweden`\n`Switzerland`\n`DPDReturn0-20kg`\n`DPD`\n`0.00`\n`20.00`\n`Belgium`\n`Netherlands`\nSendcloud does not provide test keys when a company tests the sending of a package in Odoo. This\nmeans if a package is created, the configured Sendcloud account will be charged, unless the\nassociated package is cancelled within 24 hours of creation.\nOdoo has a built-in layer of protection against unwanted charges when using test environments.\nWithin a test environment, if a shipping method is used to create labels, then those labels are\nimmediately cancelled after the creation â this occurs automatically. The test and production\nenvironment settings can be toggled back and forth from their respective smart buttons.\n\n### Shipping information\n\nTo use Sendcloud to generate shipping labels, the following information must be filled out\naccurately and completely in Odoo:\n- Customer information : when creating a quotation, ensure the selected Customer has\na valid phone number, email address, and shipping address. To verify, select the Customer field to open their contact page. Here, add their\nshipping address in the Contact field, along with their Mobile number and Email address.\nCustomer information : when creating a quotation, ensure the selected Customer has\na valid phone number, email address, and shipping address.\nTo verify, select the Customer field to open their contact page. Here, add their\nshipping address in the Contact field, along with their Mobile number and Email address.\n- Product weight : ensure all products in an order have a specified Weight in the Inventory tab of their product form. Refer to the Product weight section of this article for detailed instructions.\nProduct weight : ensure all products in an order have a specified Weight in the Inventory tab of their product form. Refer to the Product weight section of this article for detailed instructions.\n- Warehouse address : ensure the warehouse name and address in Odoo match the previously\ndefined warehouse in the Sendcloud\nsetup. For details on warehouse configuration in Odoo, refer to the warehouse configuration\nsection of the third-party shipping\ndocumentation.\nWarehouse address : ensure the warehouse name and address in Odoo match the previously\ndefined warehouse in the Sendcloud\nsetup. For details on warehouse configuration in Odoo, refer to the warehouse configuration\nsection of the third-party shipping\ndocumentation.\n\n## Generate labels with Sendcloud\n\nWhen creating a quotation in Odoo, add shipping and a Sendcloud shipping product . Then, Validate the delivery. Shipping label documents are automatically generated in the\nchatter, which include the following:\n- Shipping label(s) depending on the number of packages.\nShipping label(s) depending on the number of packages.\n- Return label(s) if the Sendcloud connector is configured for returns.\nReturn label(s) if the Sendcloud connector is configured for returns.\n- Customs document(s) should the destination country require them.\nCustoms document(s) should the destination country require them.\nAdditionally, the tracking number is now available.\nWhen return labels are created, Sendcloud automatically charges the configured Sendcloud account.\n\n### Shipping rules\n\nOptionally, create shipping rules to automatically generate shipping labels tailored to different\nproduct needs. For example, a shipping rule can be created for customers shipping expensive jewelry\nitems to purchase insurance.\nShipping rules do not affect shipping rate calculations , and are only used to improve the process of generating shipping labels .\nTo use shipping rules, navigate to Inventory app ⣠Configuration ⣠Delivery:\nShipping Methods , and select the intended Sendcloud shipping method.\n`Sendcloud`\nUnder the Sendcloud Configuration tab, in the OPTIONS section, choose the\nkind of shipments the shipping rules apply to, via the Use Sendcloud shipping rules field.\nFrom here, choose either: Shipping to customers, Returns from customers, or Both .\nThen, in the Sendcloud website, navigate to Settings ⣠Shipping rules . Create a\nnew shipping rule by clicking Create New .\nIn the Actions section, set a Condition to determine when the rule applies.\nThen, configure what to do when packages meet the condition.\nCreate shipping rules on Sendcloud\n\n## FAQ\n\n### Shipment is too heavy\n\nIf the shipment is too heavy for the Sendcloud service that is configured, then the weight is split\nto simulate multiple packages. Products will need to be put in different Packages to Validate the transfer and generate labels.\nRules can also be set up in Sendcloud to use other shipping methods when the weight is\ntoo heavy. However, note that these rules will not apply to the shipping price calculation on the\ncalculation on the sales order.\n\n### Personal carrier contract\n\nUse custom prices from a direct carrier contract, via CSV upload, by first logging into Sendcloud,\nnavigating to Settings ⣠Carriers ⣠My contracts , and then selecting the\nintended contract.\nUnder the Contract prices section, click Download CSV and fill out the\ncontract prices in the price column of the CSV file template.\nEnsure the CSV file includes the correct prices to avoid any inaccuracies.\nUpload the completed CSV file to Sendcloud, then click Save these prices .\nSendcloud: How to upload contract prices with carriers\n\n### Measuring volumetric weight\n\nMany carriers have several measures for weight. There is the actual weight of the products in the\nparcel, and there is the volumetric weight ( Volumetric weight is the volume that a package\noccupies when in transit. In other words it is the physical size of a package ).\nCheck to see if selected carrier(s) already have defined formulas to compute the volumetric\nweight.\nSendcloud: How to calculate & automate parcel volumetric weight\n\n### Unable to calculate shipping rate\n\nFirst, verify that the product being shipped has a weight that is supported by the selected shipping\nmethod. If this is set, then verify that the destination country (from the customer address) is\nsupported by the carrier. The country of origin (warehouse address) should also be supported by the\ncarrier.", "headings": ["Setup in Sendcloud", "Create an account and activate carriers", "Warehouse configuration", "Generate Sendcloud credentials", "Setup in Odoo", "Install Sendcloud shipping module", "Sendcloud shipping connector configuration", "Shipping information", "Generate labels with Sendcloud", "Shipping rules", "FAQ", "Shipment is too heavy", "Personal carrier contract", "Measuring volumetric weight", "Unable to calculate shipping rate"], "doc_id": "e7b3112451d130fe"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/starshipit_shipping.html", "title": "Starshipit shipping", "module": "inventory", "section": "Starshipit shipping", "text": "# Starshipit shipping\n\nStarshipit is a shipping service operator that facilitates the integration of Australasian\nshipping couriers with Odoo. Once integrated, users can create shipping methods that will\nautomatically get rates from specific couriers (such as Australia Post, NZ Post, DHL,â¦)\nbased on predefined conditions.\n- Automatically calculate shipping\nAutomatically calculate shipping\n- Integrate other third-party couriers\nIntegrate other third-party couriers\n\n## Setup in Starshipit\n\n### Create an account and activate couriers\n\nTo get started, go to Starshipitâs platform to configure the account\nand generate the connector credentials. Log in with the Starshipit account, or create a new one if\nneeded.\n\n### Pickup address configuration\n\nOnce logged into the Starshipit account, navigate to Settings ⣠Pickup address ,\nand fill in the Pickup address . Ensure this field matches the warehouse address.\n\n### Couriers configuration\n\nTo integrate with third-party couriers, navigate to Settings ⣠Couriers , and\nselect Couriers .\nFor details on integrating with different couriers, refer to Starshipitâs support center .\n\n### Checkout rates\n\nTo configure shipping rate calculations, navigate to Settings ⣠Checkout rates .\nThe selected delivery costs are automatically applied in Odoo when calculating shipping costs.\n\n### Starshipit API key\n\nConfigure shipping rules to assign the correct shipping methods to orders based on specific\nconditions.\nTo create a rule, go to Settings ⣠Rules and click Add a new rule .\nWhile there are multiple ways to configure rules, it is recommended to set:\n- Condition to Contains\nCondition to Contains\n- Value to the product code\nValue to the product code\n- Action to Set Courier & Product Code\nAction to Set Courier & Product Code\n\n### Finding Starshipit API credentials\n\nIn the Starshipit account, navigate to Settings ⣠API in the side menu.\nThis page contains the API keys needed to connect to\nOdoo.\n\n## Setup in Odoo\n\n### Install the Starshipit module\n\nAfter the Starshipit account is set up, integrate it with the Odoo database. To do that, go to\nOdooâs Apps module, search for the Starshipit Shipping module, and click Activate to install it.\n\n### Configure a Starshipit delivery method\n\nOnce installed, activate the feature by going to Inventory ⣠Configuration â£\nSettings . Under the Shipping Connectors section, activate the Starshipit\nConnector option.\nAfter activating Starshipit Connector , click the Starshipit Shipping Methods link below the listed connector. Once on the Delivery Methods page, click Create .\nDelivery Methods can also be accessed by going to Inventory â£\nConfiguration ⣠Delivery ⣠Delivery Methods .\nConfigure a Starshipit delivery method in Odoo by filling out the fields on the Delivery Methods form as\nfollows:\n- Delivery Method : type Starshipit .\nDelivery Method : type Starshipit .\n`Starshipit`\n- Provider : select Starshipit from the drop-down menu.\nProvider : select Starshipit from the drop-down menu.\n- Delivery Product : assign or create the delivery product that will appear on the sales\norder line when the cost of shipping is computed. Note The fields discussed in this section are specific to configuring Starshipit. For more information\nabout the other fields, refer to Delivery methods .\nDelivery Product : assign or create the delivery product that will appear on the sales\norder line when the cost of shipping is computed.\nThe fields discussed in this section are specific to configuring Starshipit. For more information\nabout the other fields, refer to Delivery methods .\nIn the Starshipit Configuration tab, fill out these fields:\n- Starshipit API Key : enter the API key obtained from Starshipit .\nStarshipit API Key : enter the API key obtained from Starshipit .\n- Starshipit Subscription Key : enter the subscription key obtained from the same place\nas the API key .\nStarshipit Subscription Key : enter the subscription key obtained from the same place\nas the API key .\n- Origin Address : Enter the address where products are shipped from. This field is\ncrucial for calculating shipping rates and generating shipping labels .\nOrigin Address : Enter the address where products are shipped from. This field is\ncrucial for calculating shipping rates and generating shipping labels .\n- Default Package Type : Set a default package type to include the weight of the empty\npackage when automatically calculating shipping rates.\nDefault Package Type : Set a default package type to include the weight of the empty\npackage when automatically calculating shipping rates.\nTo set a default package type, the Packages feature must be enabled in Inventory ⣠Configuration ⣠Settings .\nClick the (Save manually) icon at the top of the page to save the changes.\nTo load the newly configured shipping products, click Select a service linked to your\nstarshipit account at the bottom of the Starshipit Configuration tab, and a Choose Starshipit Shipping Service pop-up window appears. In the Delivery Service field, select the desired shipping service for deliveries and returns\nfrom the drop-down menu.\nThe list of services shown during initial configuration may be incomplete. Starshipit determines\nservice availability based on shipment details such as the destination address and package\nweight, which are not yet available at this stage. To select from the full list of services\navailable for a specific order, use the Get more delivery methods option directly\nfrom the sales order. See Generate a label with Starshipit for details.\nClick Confirm and the selected delivery service populates in the Shipping Method and Starshipit Service Code fields.\nSample of a Starshipit shipping product configured in Odoo:\n`SendleDelivery`\n`STANDARD-DROPOFF`\nStarshipit does not provide test keys when a company tests the sending of a package in Odoo. This\nmeans that if a package is created, the account may be charged.\nOdoo has a built-in layer of protection against unwanted charges when using test environments.\nWithin a test environment, if a shipping method is used to create labels, then those labels are\nimmediately cancelled after creation â this occurs automatically. Please note that depending on\nthe shipping provider being used, the account might be charged for printing label, unless the\norder is cancelled manually on the couriersâs portal.\nSwitch between the test and production environment by clicking the Environment smart\nbutton at the top of the shipping method form.\n\n### Generate a label with Starshipit\n\nWhen creating a quotation in Odoo, add the Starshipit shipping method by clicking the Add\nshipping button.\nIn the Add a shipping method pop-up window, select a Starshipit shipping method in the Shipping Method field.\nIf the desired service is not available, click Get more delivery methods . This sends the\nactual order details (including the destination address, weight, and volume) to Starshipit, which\nreturns the complete list of services available for that specific shipment. A new Starshipit\ndelivery method is then created automatically and selected in the Shipping Method field.\nCalculate the shipping rate by clicking Get rate .\nFinally, click Add to include the cost of shipping to the sales order line, labeled as\nthe delivery product .\nAutomatically calculate shipping costs for Starshipit in both Odoo Sales and eCommerce applications.\nThen, Validate the delivery. Shipping label documents are automatically generated in the\nchatter, which includes the following:\n- Shipping label(s) depending on the number of packages.\nShipping label(s) depending on the number of packages.\n- Tracking number(s) if the selected courier supports it.\nTracking number(s) if the selected courier supports it.\n- Return label(s) if the Starshipit connector is configured for returns.\nReturn label(s) if the Starshipit connector is configured for returns.\nPackage weight in Odoo is calculated by adding the weights of the products plus the empty package\nsaved in the database. Ensure the correct shipping option is selected, as the package weight is\nnot automatically verified.\nVerify the destination address, as Starshipit checks it when the order is created.\nFinally, some couriers may require other information, such as an email address or phone number.\nPlease ensure that all necessary information are set upon sending a shipping order.\n\n### Returns\n\n- Australia Post eParcel\nAustralia Post eParcel\n- Couriers Please\n- Aramex\n- StarTrack\n- DHL Express\n- NZ Post Domestic\nThis can be done by clicking the Return smart button on the intended delivery order.\nIf the selected courier supports returns, the Print Return Label button will be\navailable.\n\n### Cancellations\n\nIf a delivery order is cancelled in Odoo, it will be automatically archived in Starshipit.\nHowever, the cancellation will not be sent to the courier itself, so make sure to log onto the\ncourierâs platform to handle the cancellation manually.", "headings": ["Setup in Starshipit", "Create an account and activate couriers", "Pickup address configuration", "Couriers configuration", "Checkout rates", "Starshipit API key", "Finding Starshipit API credentials", "Setup in Odoo", "Install the Starshipit module", "Configure a Starshipit delivery method", "Generate a label with Starshipit", "Returns", "Cancellations"], "doc_id": "9f2501250a2f3561"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/third_party_shipper.html", "title": "Third-party shipping carriers", "module": "inventory", "section": "Third-party shipping carriers", "text": "# Third-party shipping carriers\n\nUsers can link third-party shipping carriers to Odoo databases, in order to verify carriersâ\ndelivery to specific addresses, automatically calculate shipping costs , and generate shipping labels .\nIn Odoo, shipping carriers can be applied to a sales order (SO), invoice, or delivery order. For\ntips on resolving common issues when configuring shipping connectors, skip to the Troubleshooting section.\n- DHL integration\n- Sendcloud integration\nSendcloud integration\n- UPS integration\nThe following is a list of available shipping connectors in Odoo:\nUnited States of America\nSome European countries (see details below)\nAustralia and New Zealand\nOther services from DHL are not supported.\nSendcloud currently supports shipping from Austria, Belgium, France, Germany, Italy, the\nNetherlands, Spain, and the United Kingdom, and to any European country.\n\n## Configuration\n\nTo ensure proper setup of a third-party shipping carrier with Odoo, follow these steps:\n- Install the shipping connector .\nInstall the shipping connector .\n- Set up delivery method .\nSet up delivery method .\n- Activate production environment .\nActivate production environment .\n- Configure warehouse .\nConfigure warehouse .\n- Specify weight of products .\nSpecify weight of products .\n\n### Install shipping connector\n\nTo install shipping connectors, go to Inventory app ⣠Configuration ⣠Settings .\nUnder the Shipping Connectors section, tick the third-party shipping carrierâs checkbox\nto install it. Multiple third-party shipping connectors can be selected at once. Then, click Save .\nDelivery methods can also be integrated with operations in the Sales , eCommerce , and Website apps. To install, refer to the install apps and modules documentation.\n\n### Delivery method\n\nTo configure the API credentials, and activate the shipping carrier, begin by going to Inventory app ⣠Configuration ⣠Shipping Methods , and select the desired\ndelivery method.\nThe list often includes two delivery methods from the same Provider : one for\ninternational shipping and one for domestic shipping.\nAdditional delivery methods can be created for specific purposes, such as packaging .\nConfigure delivery methods\nEnsure the delivery method is published when it should be available on the Website app. To\npublish a delivery method on the website, click the desired delivery method, then click the Unpublished smart button. Doing so changes that smart button to read: Published .\nThe Shipping Method page contains details about the provider, including:\n- Shipping Method ( Required field ): the name of the delivery method (e.g. FedEx US , FedEx EU , etc.).\nShipping Method ( Required field ): the name of the delivery method (e.g. FedEx US , FedEx EU , etc.).\n`FedExUS`\n`FedExEU`\n- Website : configure shipping methods for an eCommerce page that is connected to a\nspecific website in the database. Select the applicable website from the drop-down menu, or leave\nit blank to apply the method to all web pages.\nWebsite : configure shipping methods for an eCommerce page that is connected to a\nspecific website in the database. Select the applicable website from the drop-down menu, or leave\nit blank to apply the method to all web pages.\n- Provider ( Required field ): choose the third-party delivery service, like FedEx. Upon\nchoosing a provider, the Integration Level , Invoicing Policy and Insurance Percentage fields become available.\nProvider ( Required field ): choose the third-party delivery service, like FedEx. Upon\nchoosing a provider, the Integration Level , Invoicing Policy and Insurance Percentage fields become available.\n- Integration Level : choose Get Rate to simply get an estimated\nshipment cost on an SO or invoice. Important Select Get Rate and Create Shipment to also generate shipping labels .\nIntegration Level : choose Get Rate to simply get an estimated\nshipment cost on an SO or invoice.\nSelect Get Rate and Create Shipment to also generate shipping labels .\n- Company : if the shipping method should apply to a specific company, select it from the\ndrop-down menu. Leave the field blank to apply the method to all companies.\nCompany : if the shipping method should apply to a specific company, select it from the\ndrop-down menu. Leave the field blank to apply the method to all companies.\n- Delivery Product ( Required field ): the delivery charge name that is added to the SO or invoice.\nDelivery Product ( Required field ): the delivery charge name that is added to the SO or invoice.\n- Invoicing Policy : select and calculate an Estimated cost of shipping\ndirectly from the shipping carrier. If the Real cost of shipping is wanted instead,\nrefer to Invoice real shipping costs document.\nInvoicing Policy : select and calculate an Estimated cost of shipping\ndirectly from the shipping carrier. If the Real cost of shipping is wanted instead,\nrefer to Invoice real shipping costs document.\n- Margin on Rate : specify an additional percentage amount added to the base shipping\nrate to cover extra costs, such as handling fees, packaging materials, exchange rates, etc.\nMargin on Rate : specify an additional percentage amount added to the base shipping\nrate to cover extra costs, such as handling fees, packaging materials, exchange rates, etc.\n- Free if order amount is above : enables free shipping for orders surpassing a specified\namount entered in the corresponding Amount field.\nFree if order amount is above : enables free shipping for orders surpassing a specified\namount entered in the corresponding Amount field.\n- Insurance Percentage : specify a percentage amount of the shipping costs reimbursed to\nthe senders if the package is lost or stolen in transit.\nInsurance Percentage : specify a percentage amount of the shipping costs reimbursed to\nthe senders if the package is lost or stolen in transit.\nShipping Method configuration page for FedEx US .\n`FedExUS`\nIn the Configuration tab, fill out the API credential fields (e.g. API key, password,\naccount number, etc.). Depending on the third-party shipping carrier chosen in the Provider field, the Configuration tab will contain different required\nfields. For more details about configuring specific carriersâ credentials, refer to the following\ndocuments:\n- DHL credentials\n- Sendcloud credentials\nSendcloud credentials\n- UPS credentials\n\n### Production environment\n\nWith the delivery method details configured, click the Test Environment smart button to\nset it to Production Environment .\nSetting the delivery method to Production creates real shipping labels, and users\nare at risk of being charged through their carrier account (e.g. UPS, FedEx, etc.) before users charge customers for shipping. Verify all configurations are correct before launching the\ndelivery method to Production .\n\n### Warehouse configuration\n\nEnsure the warehouseâs Address (including ZIP code) and Phone number are\nentered accurately. To do that, go to Inventory app ⣠Configuration â£\nWarehouses , and select the desired warehouse.\nOn the warehouse configuration page, open the warehouse contact page by clicking the Company field.\nVerify that the Address and Phone number are correct, as they are required\nfor the shipping connector to work properly.\n\n### Product weight\n\nFor the carrier integration to work properly, specify the weight of products by going to Inventory app ⣠Products ⣠Products , and selecting the desired product.\nThen, switch to the Inventory tab, and define the Weight of the product in\nthe Logistics section.\n\n## Apply third-party shipping carrier\n\nShipping carriers can be applied on a SO , invoice, or delivery order.\nAfter configuring the third-party carrierâs delivery method in Odoo, create or navigate to a quotation\nby going to Sales app ⣠Orders ⣠Quotations .\n\n### Sales order\n\nTo assign a third-party shipping carrier, and get an estimated cost of shipping, begin by going to Sales app ⣠Orders ⣠Quotations . Create or select an existing quotation, and\nadd the cost of shipping through a third-party carrier to a quotation, by clicking the Add Shipping button in the bottom-right corner of the Order Lines tab.\nIn the resulting Add a shipping method pop-up window, select the intended carrier from\nthe Shipping Method drop-down menu. The Cost field is automatically filled\nbased on:\n- the amount specified in the Total Order Weight field (if it is not provided, the sum\nof product weights in the order is used)\nthe amount specified in the Total Order Weight field (if it is not provided, the sum\nof product weights in the order is used)\n- the distance between the warehouseâs source address and the customerâs address.\nthe distance between the warehouseâs source address and the customerâs address.\nAfter selecting a third-party provider in the Shipping Method field, click Get Rate in the Add a shipping method pop-up window to get the estimated\ncost through the shipping connector. Then, click the Add button to add the delivery\ncharge to the SO or invoice.\nCharge customers for shipping after product delivery\n\n### Delivery order\n\nFor users making shipments without installing the Sales app, assign the shipping carrier to the\ndelivery order, by first going to the Inventory app. Then, from the Inventory Overview dashboard, select the Delivery Orders operation type, and\nchoose the desired delivery order that is not already marked as Done or Cancelled .\nIn the Additional info tab, set the Carrier field to the desired third-party\nshipping carrier. When the delivery method is set to production mode , a Tracking Reference is\nprovided.\nGenerate shipping labels\n\n## Troubleshooting\n\nSince shipping connectors can sometimes be complex to set up, here are some checks to try when\nthings are not working as expected:\n- Ensure the warehouse information (e.g., address and phone number) in Odoo is correct and matches the records saved in the\nshipping providerâs website.\nEnsure the warehouse information (e.g., address and phone number) in Odoo is correct and matches the records saved in the\nshipping providerâs website.\n- Verify that the package type and parameters\nare valid for the shipping carrier. To check, ensure the shipment can be directly created on the\nshipping carrierâs website.\nVerify that the package type and parameters\nare valid for the shipping carrier. To check, ensure the shipment can be directly created on the\nshipping carrierâs website.\n- When encountering a price mismatch between Odooâs estimated cost and the providerâs charge, first\nensure the delivery method is set to production environment . Then, create the shipment in both the carrierâs website and Odoo, and verify the prices are the\nsame across Odoo, the shipping provider, and in the debug logs . Example When checking for a price mismatch in the debug logs, if the request says the package weighs\nsix kilograms, but the response from FedEx says the package weights seven kilograms, it\nconcludes that the issue is on FedExâs side.\nWhen encountering a price mismatch between Odooâs estimated cost and the providerâs charge, first\nensure the delivery method is set to production environment .\nThen, create the shipment in both the carrierâs website and Odoo, and verify the prices are the\nsame across Odoo, the shipping provider, and in the debug logs .\nWhen checking for a price mismatch in the debug logs, if the request says the package weighs\nsix kilograms, but the response from FedEx says the package weights seven kilograms, it\nconcludes that the issue is on FedExâs side.\n\n### Debug log\n\nTrack shipping data inconsistencies by activating debug logging. To do that, go to the delivery\nmethodâs configuration page ( Inventory app ⣠Configuration ⣠Shipping\nMethod ), and select the desired shipping method. Click the No Debugging smart button to\nactivate Debug Requests .\nWith Debug Requests activated, each time the shipping connector is used to estimate the\ncost of shipping, records are saved in the Logging report. To access the report, turn on developer mode , and go to Settings app ⣠Technical â£\nDatabase Structure section ⣠Logging .\nLogs are created for a shipping method each time the Get Rate button is clicked on SOs and invoices, and when a customer adds the shipping carrier to their order through the Website app.\nClick the HTTP request line item to open a detailed page, and verify the correct information is\nsent from Odoo to the shipping carrier. In the HTTP response , verify that the same information is\nreceived.", "headings": ["Configuration", "Install shipping connector", "Delivery method", "Production environment", "Warehouse configuration", "Product weight", "Apply third-party shipping carrier", "Sales order", "Delivery order", "Troubleshooting", "Debug log"], "doc_id": "89097edf676b3ebe"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/ups_credentials.html", "title": "UPS integration", "module": "inventory", "section": "UPS integration", "text": "# UPS integration\n\nUPS is a shipping carrier service that integrates with Odoo to coordinate shipping to all regions.\nOnce integrated, users can create shipping methods that estimate shipping costs and generate\nlabels .\nThird-party shipping carriers\nTo set up the UPS shipping connector in Odoo, complete these steps:\n- Create a UPS account to get account number\nCreate a UPS account to get account number\n- Create UPS developer account to get client credentials\nCreate UPS developer account to get client credentials\n- Set up shipping method in Odoo\nSet up shipping method in Odoo\nWhen configuring a shipping method to use UPS, make sure the Provider is set to UPS , NOT UPS Legacy .\nIf shipping methods currently exist with the Provider set to UPS Legacy ,\narchive them, and create new shipping methods using UPS , instead.\n\n## UPS account setup\n\nTo get started, go to the UPS website and click the Log In button in the top-right corner to log in or create a UPS account.\nAfter logging in, click the profile icon in the top-right corner, and select Accounts and\nPayment from the drop-down menu.\nOn the Accounts and Payment Options page, two accounts must be configured: an Odoo\nshipment account and a payment card.\n\n### Shipping account\n\nTo add an Odoo shipment account, select Add New Account from the Add a\nPayment Method drop-down menu, and click Add .\nOn the next screen, labeled Open a Shipping Account , complete the forms to configure the\nshipping account type (e.g. Business ) and if any regulated items will be shipped. Then\nfinish the remaining three steps in the wizard to Add Addresses , Verify\nIdentity , and Explore Discounts , with the last option being optional.\nWhen complete, submit the application on the last page of the wizard to finish setting up the\nshipping account.\n\n### Get account number\n\nWith the shipping account set up, the UPS Account Number becomes available. To access\nit, navigate to Profile ⣠Accounts and Payment and refer to the shipping\naccountâs Number field.\n\n### Payment card\n\nNavigate back to the Accounts and Payments page and select the Add Payment\nCard option from the Add a Payment Method drop-down menu. Then, complete the form to\nadd the credit card information.\n\n## UPS developer account setup\n\nNext, log into the UPS developer account to generate the developer\nkey. To begin, click the profile icon in the top-right corner, and choose the Apps option from the drop-down menu.\n\n### Add app\n\nThen, click the Add Apps button to begin filling out the form. In the I need\nAPI credentials because * field, select I want to integrate UPS technology into my\nbusiness .\nUnder the next label, Choose an account to associate with these credentials. * , select Add existing account from the drop-down menu in the corresponding field, and then select\nthe account number linked to the UPS\naccount created in the previous step.\nClick Next , and proceed to the Add App form, and fill out the fields:\n- App Name : Type the name to identify the app by.\nApp Name : Type the name to identify the app by.\n- Callback URL : Type the URL of the Odoo database, in the format: https://databaseName.odoo.com . Do not include www in the URL.\nCallback URL : Type the URL of the Odoo database, in the format: https://databaseName.odoo.com . Do not include www in the URL.\n`https://databaseName.odoo.com`\n`www`\nIn the Add Products section on the right, search for and click the + (plus) icon to add the following products to the app:\n- Authorization (O Auth) : Used to generate the authorization token to request\ninformation from the UPS API.\nAuthorization (O Auth) : Used to generate the authorization token to request\ninformation from the UPS API.\n- Address Validation : Validates addresses at the street level in the United States and\nPuerto Rico.\nAddress Validation : Validates addresses at the street level in the United States and\nPuerto Rico.\n- Locator : Enables search for UPS shipping locations based on type and available\nservices.\nLocator : Enables search for UPS shipping locations based on type and available\nservices.\n- Paperless Documents : Enables the upload of document images to link to shipments.\nPaperless Documents : Enables the upload of document images to link to shipments.\n- Shipping : Enables UPS shipping services, such as preparing packages for shipment,\nmanaging returns, and cancelling scheduled shipments.\nShipping : Enables UPS shipping services, such as preparing packages for shipment,\nmanaging returns, and cancelling scheduled shipments.\n- Rating : Compare delivery services and shipping rates.\nRating : Compare delivery services and shipping rates.\nFinally, click Save and accept UPSâs terms and conditions.\n\n### Client ID and Client Secret\n\nWith the new app created, in the Profile ⣠My Apps ⣠App page, select the app\nfrom the Credentials section to view the UPS credentials.\nIn the Credentials section, copy the Client ID and Client Secret key.\n\n## Setup in Odoo\n\nWith the credentials obtained, configure the UPS shipping method in Odoo by going to Inventory app ⣠Configuration ⣠Shipping Methods .\nOn the Shipping Methods page, click the New button.\nFor existing UPS shipping methods whose Provider is UPS Legacy , archive\nit and create a new shipping method using UPS .\nIn the Provider field, select UPS . Doing so reveals the UPS\nConfiguration tab, where various fields must be entered. For details instructions on configuring\nthe other fields on the shipping method, refer to the Configure third-party carrier documentation.\nIn the UPS Configuration tab, complete the following fields:\n- UPS Account Number : ( required ) Get the account number from the UPS portal.\nUPS Account Number : ( required ) Get the account number from the UPS portal.\n- UPS Client ID : ( required ) Get the Client ID from the UPS developer website.\nUPS Client ID : ( required ) Get the Client ID from the UPS developer website.\n- UPS Client Secret : ( required ) Get the Client Secret key from the UPS developer website.\nUPS Client Secret : ( required ) Get the Client Secret key from the UPS developer website.\n- UPS Service Type : Select from the drop-down menu the type of shipping service.\nUPS Service Type : Select from the drop-down menu the type of shipping service.\n- UPS Package Type : ( required ) Select from the drop-down menu the package type that is supported for the shipping service.\nUPS Package Type : ( required ) Select from the drop-down menu the package type that is supported for the shipping service.\n- Package Weight Unit : The unit of measure for the package weight.\nPackage Weight Unit : The unit of measure for the package weight.\n- Package Size Unit : The unit of measure for the package dimensions.\nPackage Size Unit : The unit of measure for the package dimensions.\n- Label Format : Choose the label format shipping labels: PDF , ZPL , EPL , or SPL .\nLabel Format : Choose the label format shipping labels: PDF , ZPL , EPL , or SPL .\nIn the Options section, the following features are available:\n- Bill My Account : Charge the userâs UPS account for shipping in the eCommerce app.\nBill My Account : Charge the userâs UPS account for shipping in the eCommerce app.\n- Collect on Delivery : Collect payment from customers for shipping after the shipment is\ndelivered.\nCollect on Delivery : Collect payment from customers for shipping after the shipment is\ndelivered.\n- Generate Return Label : Print the return label for the order after the delivery order\nis validated.\nGenerate Return Label : Print the return label for the order after the delivery order\nis validated.\n- Duties paid by : Select whether duties or other fees are charged to the Sender or Recipient of the order.\nDuties paid by : Select whether duties or other fees are charged to the Sender or Recipient of the order.", "headings": ["UPS account setup", "Shipping account", "Get account number", "Payment card", "UPS developer account setup", "Add app", "Client ID and Client Secret", "Setup in Odoo"], "doc_id": "076185b26b53ab9a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/zebra.html", "title": "Zebra label configuration", "module": "inventory", "section": "Zebra label configuration", "text": "# Zebra label configuration\n\nIn Odoo, labels printed in the Zebra Programming Language (ZPL) file format are designed to fit a\nfour-by-six inch label. To resize (or reformat) text to fit a variety of ZPL label sizes, navigate to the ZPL label view , and alter the ZPL code.\nWhen customizing code in Odoo, please note that upgrading the database to newer versions may\nbreak custom ZPL code. Customers are responsible for maintaining their custom code .\nRefer to the following sections for explanations, and example code, for frequently requested Zebra\nlabel customizations.\n- Adjust margins\n- Enlarge/minimize barcodes\nEnlarge/minimize barcodes\n- Rotate elements\n\n## Navigate to ZPL label view\n\nTo begin customizing a Zebra label in Odoo, turn on developer mode , and on\nthe main Odoo dashboard, type Reports . From the search results that appear in the resulting pop-up\nwindow, choose Settings / Technical / Reporting / Reports to open the Reports page.\n`Reports`\nTo manually navigate to the Reports page, go to Settings app â£\nTechnical ⣠Reporting: Reports .\nOn the Reports page, in the Search⦠bar, type ZPL , and hit Enter .\nUpon doing so, Odoo presents a list of available Zebra labels in Odoo. Select the desired Zebra\nlabel from the list to modify it on a separate page.\n`ZPL`\nPrintable ZPL labels in Odoo:\n- lot/serial number\n- operation type\n- package barcode\n- product label\n- product packaging\n- finished product (Odoo Manufacturing app required)\nfinished product (Odoo Manufacturing app required)\nNext, click the Qweb Views smart button, and choose the desired label view .\nLot and Serial Number (ZPL) report, highlighting the Qweb smart button.\nOn the resulting view form, go to the Architecture tab to view the ZPL code.\nTo ensure the customization is not overwritten during an update, click the (bug) icon on the view page. Then, select the View Metadata option from\nthe resulting drop-down menu, in order to open the View Metadata pop-up window. Then,\nensure the No Update field is set to true (change) . Click Ok to exit the View Metadata pop-up window.\n\n## Adjust margin\n\nText gets cut off from standard ZPL labels printed in Odoo when the line exceeds fifty-five\ncharacters. To fit long product names, or lot numbers, on a single line, adjust the margin.\nTo begin, navigate to the ZPL code of the label in\nthe Architecture tab. In the ZPL code for product labels, look for the ^FT command,\nwhich specifies where to start placing the text, or graphic element, on the label. The two numbers\nimmediately following ^FT define the x-coordinate and y-coordinate in dots ( similar to\npixels for printers ) from the left and top margins.\n`^FT`\n`^FT`\nWhen customizing lot/serial number labels, look for the ^FO command, instead of ^FT .\n`^FO`\n`^FT`\nThe following is an example where the productâs name gets cut off with Odooâs default ZPL formatting. In the Fixed tab, the x-coordinate of the starting position of the label is\nchanged from ^FT100,80 to ^FT0,80 , to fit the entire name.\n`^FT100,80`\n`^FT0,80`\n\n## Resize barcode\n\nTo adjust the size of the barcode to scale, begin by navigating to the ZPL code of the label in the Architecture tab. Look for the ^FO command (typically in the third line), which is the starting point of the margin for the barcode.\n`^FO`\nThe ^BY command configures barcode size, and takes three numbers: bar width, width of wide bars\nrelative to narrow bars, and bar height. By default, ZPL code in Odoo uses ^BY3 , setting the bar\nwidth to three dots, a typical size that is easy for barcode scanners to read.\n`^BY`\n`^BY3`\nTo shrink the barcode to scale, ^BY3 is reduced to ^BY2 .\n`^BY3`\n`^BY2`\n\n## Rotate elements\n\nTo rotate elements in ZPL , begin by navigating to the ZPL code of the label in the Architecture tab.\nThe ^BC commandâs first parameter ( information that affects the behavior of the command )\ndefines the rotation of an item, which can be:\n`^BC`\n- N : display normally\n`N`\n- R : rotate 90 degrees\nR : rotate 90 degrees\n`R`\n- I : rotate 180 degrees\nI : rotate 180 degrees\n`I`\n- B : rotate 270 degrees\nB : rotate 270 degrees\n`B`\nTo rotate the barcode, ^BCN is changed to ^BCB .\n`^BCN`\n`^BCB`", "headings": ["Navigate to ZPL label view", "Adjust margin", "Resize barcode", "Rotate elements"], "doc_id": "832a3577b19e0c9b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management.html", "title": "Inventory management", "module": "inventory", "section": "Inventory management", "text": "# Inventory management\n\nIn the Odoo Inventory app, warehouses handle the broader\norganization and distribution of stock across different physical sites, while locations provide a more detailed breakdown within each warehouse for\nefficient item management.\nThis document serves as an introduction to the terminology and concepts necessary to master Inventory . For specific instructions and examples of how things work, refer to individual\ndocumentation pages.\nOdoo Tutorials: Warehouses & Locations\n\n## Warehouses\n\nWarehouses represent a physical place, with a physical\naddress, where a companyâs items are stored.\nConfigure routes in a warehouse to\ncontrol how products move to customers, from vendors, within the warehouse, or between\nwarehouses .\n\n## Locations\n\nLocations refer to specific areas within a warehouse,\nsuch as shelves, floors, or aisles. These are sub-divisions within a warehouse, and are unique to\nthat warehouse. Users can create and manage numerous locations within a single warehouse to organize\ninventory more precisely.\n- Locations\n- Inventory adjustments\nInventory adjustments\n- Cycle counts\n- Scrap inventory\n\n### Location types\n\nLocation types in Odoo help categorize and manage where products are, and what actions need to be\ntaken with them. By default, on the Inventory app ⣠Configuration ⣠Locations page, only internal locations are displayed.\nTo view the seven location types in Odoo, select any location, and in the Location Type field, there are:\n- Vendor Location : defines an area where products purchased from vendors originate.\nItems here are not in stock.\nVendor Location : defines an area where products purchased from vendors originate.\nItems here are not in stock.\n- View : used to organize and structure the warehouse hierarchy. For example, the view\nlocation WH (short for warehouse) groups all internal locations, such as Stock , receiving\ndocks, quality checkpoints, and packing areas to show they all belong to the same warehouse. Important View locations should not contain products, but it is possible to move them there.\nView : used to organize and structure the warehouse hierarchy. For example, the view\nlocation WH (short for warehouse) groups all internal locations, such as Stock , receiving\ndocks, quality checkpoints, and packing areas to show they all belong to the same warehouse.\n`WH`\n`Stock`\nView locations should not contain products, but it is possible to move them there.\n- Internal Location : storage locations within the warehouse. Items stored in these\nlocations are accounted for in inventory valuation .\nInternal Location : storage locations within the warehouse. Items stored in these\nlocations are accounted for in inventory valuation .\n- Customer Location : where sold products are tracked; items here are no longer in stock.\nCustomer Location : where sold products are tracked; items here are no longer in stock.\n- Inventory Loss : counterpart location to consume missing items or create stock,\naccounting for discrepancies. In Odoo, examples of inventory loss locations are Inventory Adjustment , used to account for\ndiscrepancies during an inventory count, and Scrap , which is where damaged goods are sent to\naccount for inventory losses. Example Virtual Locations/Inventory Adjustment is a location with the Inventory Loss type. The database shows 65 units in WH/Stock , but an inventory check reveals 60 . To\ncorrect the quantity, five units are moved from WH/Stock to Virtual Locations/Inventory Adjustment .\nInventory Loss : counterpart location to consume missing items or create stock,\naccounting for discrepancies.\nIn Odoo, examples of inventory loss locations are Inventory Adjustment , used to account for\ndiscrepancies during an inventory count, and Scrap , which is where damaged goods are sent to\naccount for inventory losses.\nVirtual Locations/Inventory Adjustment is a location with the Inventory Loss type. The database shows 65 units in WH/Stock , but an inventory check reveals 60 . To\ncorrect the quantity, five units are moved from WH/Stock to Virtual Locations/Inventory Adjustment .\n`VirtualLocations/InventoryAdjustment`\n`65`\n`WH/Stock`\n`60`\n`WH/Stock`\n`VirtualLocations/InventoryAdjustment`\n- Production : where raw materials are consumed, and manufactured products are created.\nProduction : where raw materials are consumed, and manufactured products are created.\n- Transit Location : used for inter-company or inter-warehouse operations to track\nproducts shipped between different addresses, such as Physical Locations/Inter-warehouse\ntransit .\nTransit Location : used for inter-company or inter-warehouse operations to track\nproducts shipped between different addresses, such as Physical Locations/Inter-warehouse\ntransit .\n- Red : internal locations\nRed : internal locations\n- Blue : view locations\nBlue : view locations\n- Black : external locations (including inventory loss, vendor, and customer locations).\nBlack : external locations (including inventory loss, vendor, and customer locations).\n\n### View locations in Odoo\n\nOdoo databases include preconfigured view locations to organize the hierarchy of locations. These\nprovide helpful context, and distinguish between internal and external locations.\n- Physical locations group internal locationsâsuch as secondary warehouses and subcontractor\nsites. Because inventory valuation changes only when goods\nmove from internal to external locations, Odoo uses physical locations to track stock that is\noff-site or in transit without affecting valuation.\nPhysical locations group internal locationsâsuch as secondary warehouses and subcontractor\nsites. Because inventory valuation changes only when goods\nmove from internal to external locations, Odoo uses physical locations to track stock that is\noff-site or in transit without affecting valuation.\nWhen moving products in warehouses WH and WH2 , the items are not in either warehouse, but\nstill belong to the company. While in transit, they are placed in the Inter-warehouse transit location, a Transit Location type.\n`WH`\n`WH2`\n`Inter-warehousetransit`\nThis location is under the view location, Physical Locations , indicating that Inter-warehouse transit is outside of a warehouse, but still part of the company. Doing so\ndoes not affect the inventory valuation of the products.\n`PhysicalLocations`\n`Inter-warehousetransit`\n- Partner locations group customer and vendor locations (external locations) together. Transfers\nto these locations affect inventory valuation.\nPartner locations group customer and vendor locations (external locations) together. Transfers\nto these locations affect inventory valuation.\n- Virtual locations are locations that do not exist physically, but it is where items that are\nnot in inventory can be placed. These can be items that are no longer in inventory due to loss, or\nother factors.\nVirtual locations are locations that do not exist physically, but it is where items that are\nnot in inventory can be placed. These can be items that are no longer in inventory due to loss, or\nother factors.", "headings": ["Warehouses", "Locations", "Location types", "View locations in Odoo"], "doc_id": "f17cd81e013476d1"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/count_products.html", "title": "Inventory adjustments", "module": "inventory", "section": "Inventory adjustments", "text": "# Inventory adjustments\n\nIn any warehouse management system, the recorded inventory counts in the database might not always\nmatch the actual inventory counts in the warehouse. Discrepancy between counts can be due to\ndamage, human error, theft, or other factors. As such, inventory adjustments must be made to\nreconcile the differences, and ensure that the recorded counts in the database match the actual\ncounts in the warehouse.\n\n## Inventory Adjustments page\n\nTo view the Inventory Adjustments page, navigate to Inventory app â£\nOperations ⣠Physical Inventory .\nThe Inventory Adjustments page lists all products that are currently in stock.\nOnly products with a quantity greater than zero are listed on the Inventory\nAdjustments page. To view product lines with zero current quantity, go to Inventory app ⣠Reporting ⣠Stock .\nFor each product line, the following information is listed:\n- Location : the specific location in the warehouse where a product is stored. This\ncolumn is only visible if Storage Locations are enabled.\nLocation : the specific location in the warehouse where a product is stored. This\ncolumn is only visible if Storage Locations are enabled.\n- Favorite : identifies products that have been favorited.\nFavorite : identifies products that have been favorited.\n- Product : the product whose quantity is listed on the inventory adjustment line.\nProduct : the product whose quantity is listed on the inventory adjustment line.\n- Lot/Serial Number : the tracking identifier assigned to the specific product listed. It\ncan contain letters, numbers, or a combination of both.\nLot/Serial Number : the tracking identifier assigned to the specific product listed. It\ncan contain letters, numbers, or a combination of both.\nIf a specific product has a quantity of more than 1.00 in stock, and more than one serial\nnumber, or lot number, assigned to it, each uniquely-identified product is displayed on its own\nproduct line with its own lot/serial number, displayed under the Lot/Serial Number column.\n`1.00`\n- Expiration Date : the date on which the goods with this serial number are due to\nexpire.\nExpiration Date : the date on which the goods with this serial number are due to\nexpire.\n- Last Count Date : the last time the quantity was updated.\nLast Count Date : the last time the quantity was updated.\n- Package : the package containing the quantity listed.\nPackage : the package containing the quantity listed.\n- On Hand Quantity : the quantity of the product currently recorded in the database.\nOn Hand Quantity : the quantity of the product currently recorded in the database.\n- Unit : the unit of measure in which the product is measured. Unless otherwise\nspecified (e.g., in Pounds or Ounces ), the default UoM is Units .\nUnit : the unit of measure in which the product is measured. Unless otherwise\nspecified (e.g., in Pounds or Ounces ), the default UoM is Units .\n- Counted Quantity : the real quantity counted during an inventory count. This field is\nleft blank by default but can be changed, depending on if it matches the On Hand\nQuantity or not.\nCounted Quantity : the real quantity counted during an inventory count. This field is\nleft blank by default but can be changed, depending on if it matches the On Hand\nQuantity or not.\n- Difference : the difference between the On Hand Quantity and Counted Quantity , once an inventory adjustment is made. The difference is\nautomatically calculated after every inventory adjustment.\nDifference : the difference between the On Hand Quantity and Counted Quantity , once an inventory adjustment is made. The difference is\nautomatically calculated after every inventory adjustment.\n- Scheduled Date : the date at which a count should be made. If not otherwise specified,\nthis date will default to the 31st of December of the current year.\nScheduled Date : the date at which a count should be made. If not otherwise specified,\nthis date will default to the 31st of December of the current year.\n- User : the person assigned to the count in the database. This can either be the person\nphysically counting the inventory, or applying the count in the database.\nUser : the person assigned to the count in the database. This can either be the person\nphysically counting the inventory, or applying the count in the database.\nAdditional columns are hidden by default. To reveal these columns, click the (adjust) icon to the far right of the formâs top row, and\nreveal any desired column by ticking the checkbox next to that option.\n\n### Create an inventory adjustment\n\nTo create a new inventory adjustment from the Inventory Adjustments page, click New . Doing so creates a new, blank inventory adjustment line at the bottom of the page.\nInventory adjustments can also be created from the Forecasted Report on an individual\nproduct record. To open the report, navigate to a product record and click the Forecasted smart button. Then, at the top of the page, click Update\nQuantity , then New .\nOn this blank inventory adjustment line, click the drop-down menu under the Product column, and select a product. If the selected product is tracked using either lots or serial\nnumbers, the desired lot or serial number needs to be chosen from the drop-down menu under the Lot/Serial Number column.\nThe inventory adjustment line can also be used to create or record lots and serial numbers.\nNext, set the value in the Counted Quantity column to the quantity counted for that\nproduct during the inventory adjustment process.\nTo the right of the Counted Quantity column, the Scheduled Date and User can also be changed via their respective drop-down menus. Changing the Scheduled Date changes the date that the inventory adjustment should be processed on,\nand selecting a responsible User assigns a user to the specific inventory adjustment\nfor traceability purposes.\nOnce all changes have been made to the new inventory adjustment line, click away from the line.\nDoing so saves the adjustment, and moves the line to the top of the page.\nIf the Counted Quantity is greater than the On Hand Quantity , the value in\nthe Difference column is green . If the Counted Quantity is less than the On Hand Quantity , the value in the Difference column is red . If the\nquantities match, and have not been changed at all, no value appears in the Difference column.\nAt this stage, the count ( inventory adjustment ) is recorded, but not yet applied. This means\nthat the quantity on hand before the adjustment has not yet been updated to match the new, real\ncounted quantity.\n\n### Apply adjusted count\n\nInventory adjustments can be completed in several ways. The first way is to click the Apply button on the line at the far right of the page. The second way is to tick the\ncheckbox on the far left of the line. Doing so reveals new button options at the top of the page,\none of which is an Apply button. Clicking this button instead causes an Inventory Adjustment pop-up window to appear.\nFrom this pop-up menu, a reference or reason can be assigned to the inventory adjustment. By\ndefault, the Inventory Reason field is pre-populated with todayâs date, the date the\nadjustment is being made on, but can be changed to reflect whatever reference or reason is desired.\nOnce ready, click Apply to apply the inventory adjustment.\nApplying an inventory adjustment simultaneously creates a stock move line (SML) in the Moves History report for traceability.\n\n## Relocate products\n\nInventory adjustments can also be used to relocate products to different storage locations, or to\ndifferent packages. To relocate a product, tick the checkbox at the far left of the line for the\ndesired product. At the top of the page, click the Relocate button. Doing so opens a\npop-up.\nOn the resulting pop-up, enter the following information:\n- To Location : the new location for the products.\nTo Location : the new location for the products.\n- To Package : the new package for the products.\nTo Package : the new package for the products.\n- Reason for relocation : the reason for the move.\nReason for relocation : the reason for the move.\nProduct relocations only work on internal locations. Products cannot be moved between\ncompanies.\nOnly users with Administrator rights can perform product relocations.\n\n## Set to zero\n\nInventory adjustments can also be used to clear inventory counts by setting the quantity to zero. To do this, tick\nthe checkbox at the far left of the line for the desired product. At the top of the page, click the Actions button to open a drop-down menu. Click Set to 0 .\nOnce this is complete, apply the adjusted count.\n\n## Count products\n\nCounting products is a recurring activity in a warehouse. Once a count is complete, go to Inventory app ⣠Operations ⣠Physical Inventory to update the Counted Quantity column for each product line.\nOn each product line, identify whether the value in the On Hand Quantity column recorded\nin the database matches the newly-counted value. If the recorded value and the counted value do\nmatch, click the Set icon at the far right of the product line.\nDoing so copies the value from the On Hand Quantity column over to the Counted Quantity column, and sets the value of the Difference column to 0.00 . Subsequently, once applied, an inventory move with 0.00 Quantity Done is\nrecorded in the productâs inventory adjustment history.\n`0.00`\n`0.00`\nIf the newly-counted value for a given product does not match the value in the On\nHand Quantity recorded in the database, instead of clicking the Set icon, record the real value in the field in the Counted Quantity column.\nTo do so, click the field in the Counted Quantity column on the specific inventory\nadjustment line for the product whose count is being changed. This automatically assigns a Counted Quantity of 0.00 .\n`0.00`\nTo change this value, type in a new value that matches the real, newly-counted value. Then, click\naway from the line. Doing so saves the adjustment, and automatically adjusts the value in the Difference column.\nIf the Counted Quantity is greater than the On Hand Quantity , the value in\nthe Difference column is green . If the Counted Quantity is less than the On Hand Quantity , the value in the Difference column is red . If the\nquantities match, and have not been changed at all, no value appears in the Difference column.\nSubsequently, once applied, a move with the difference between the On Hand Quantity and\nthe Counted Quantity is recorded in the productâs inventory adjustment history.\nThe Actions menu appears when one or more productsâ checkboxes are selected. The Actions menu includes the option to Set to quantity on hand , which sets the\nselected productsâ Counted Quantity to the On Hand Quantity , and Set to 0 , which sets the selected productsâ Counted Quantity to zero.\nSometimes a count occurs, but cannot be applied in the database right away. In the time between\nthe actual count and applying the inventory adjustment, product moves can occur. In that case,\nthe on-hand quantity in the database can change and no longer be consistent with the counted\nquantity. As an extra precaution, Odoo asks for confirmation before applying the inventory\nadjustment.\n\n## Revert an inventory adjustment\n\nTo revert the changes made in an inventory adjustment, navigate to Inventory â£\nReporting ⣠Moves History .\nTick the checkbox at the far left of the line for the desired product. At the top of the page, click\nthe Actions button to open a drop-down menu, and click Revert\nInventory Adjustment .\nAfter an inventory adjustment is reverted, the line is not removed from the Moves\nHistory report. Instead, an additional line is added, this time with the word [reverted] added\nto the Reference column.\n`[reverted]`\n\n## Change inventory count frequency\n\nBy default, the scheduled date for inventory adjustments are always scheduled for the 31st of December of the\ncurrent year. However, for some companies, it is crucial that they have an accurate inventory count\nat all times. In such cases, the default scheduled date can be modified.\nTo modify the default scheduled date, go to Inventory app ⣠Configuration â£\nSettings . Then, in the Operations section, locate the Annual Inventory Day\nand Month setting, which includes a drop-down menu that is set to 31 December by default.\n`31December`\nTo change the day, click the 31 , enter a number from 1-31 , depending on the desired month of the\nyear.\n`31`\n`1-31`\nThen, to change the month, click December to reveal the drop-down menu, and select the\ndesired month.\nOnce all desired changes have been made, click Save to save all changes.\n\n### Plan big inventory counts\n\nTo plan big inventory counts, such as a full count of everything currently in stock, first navigate\nto Inventory app ⣠Operations ⣠Physical Inventory .\nThen, select the desired products to be counted by ticking the checkbox on the far left of each\nproduct line.\nTo request a count of all products currently in stock, tick the checkbox at the top of the\ntable, in the header row next to the Location label. This selects all product\nlines.\nOnce all desired products have been selected, click the Request a Count button at the\ntop of the page. Doing so opens the Request a Count pop-up window, where the following\ninformation can be filled:\n- Inventory Date : the planned date of the count.\nInventory Date : the planned date of the count.\n- User : the user responsible for the count.\nUser : the user responsible for the count.\n- Accounting Date : the date at which the inventory adjustment will be accounted.\nAccounting Date : the date at which the inventory adjustment will be accounted.\n- Count : to leave the on-hand quantity of each product line blank, select Leave Empty . To pre-fill the on-hand quantity of each product line with the current\nvalue recorded in the database, select Set Current Value .\nCount : to leave the on-hand quantity of each product line blank, select Leave Empty . To pre-fill the on-hand quantity of each product line with the current\nvalue recorded in the database, select Set Current Value .\nThe Leave Empty option forces the employee conducting the audit to manually type in\nthe number they counted, while the Set Current Value option only requires the\nemployee to verify the counted quantity and click Apply .\nFinally, once ready, click Confirm to request the count.\nIn the Odoo Barcode app, users can only view inventory counts that are assigned to them ,\nand are scheduled for today or earlier .\nSometimes a count occurs, but cannot be applied in the database right away. In the time between\nthe actual count and applying the inventory adjustment, product moves can occur. In that case,\nthe on-hand quantity in the database can change and no longer be consistent with the counted\nquantity. As an extra precaution, Odoo asks for confirmation before applying the inventory\nadjustment.\n\n## Adjustment history\n\nDetails regarding inventory adjustment can be viewed by clicking the History icon.\nThe user who performed the count is listed in parenthesis in the Reference field, while\nthe user who applied the count is listed in the Done By .\n\n### Inventory audit\n\nAn inventory audit can be accessed from the Inventory Adjustment page. This audit\nincludes an inventory record both before and after a count is completed, to track what changed.\nOn the Inventory Adjustment page, tick the checkbox at the top-left of the page to\nselect all of the lines. Then click the Request a Count button. On the pop-up, set Count to Set Current Value , then click Confirm .\nAfter returning to the Inventory Adjustment page, select all of the lines again. Click Print ⣠Count Sheet . The Count Sheet exports in PDF form.", "headings": ["Inventory Adjustments page", "Create an inventory adjustment", "Apply adjusted count", "Relocate products", "Set to zero", "Count products", "Revert an inventory adjustment", "Change inventory count frequency", "Plan big inventory counts", "Adjustment history", "Inventory audit"], "doc_id": "7f7c4b0c0e9f8bd1"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/cycle_counts.html", "title": "Cycle counts", "module": "inventory", "section": "Cycle counts", "text": "# Cycle counts\n\nFor most companies, warehouse stock only needs to be counted once a year. This is why, by default,\nthe scheduled date for the next inventory count is set for the 31st of December of the current year.\nHowever, for some businesses, maintaining an accurate inventory count is crucial. These companies\nuse cycle counts to keep critical stock levels accurate. Cycle counting is a method by which\ncompanies count their inventory more often in certain locations to ensure that their physical\ninventory counts match their inventory records.\n\n## Configuration\n\nIn Odoo, cycle counts are performed by location. Therefore, the Storage Locations feature needs to\nbe enabled before performing a cycle count.\nTo enable this feature, navigate to Inventory app ⣠Configuration ⣠Settings ,\nand scroll down to the Warehouse section. Then, select the checkbox next to Storage\nLocations , and click Save .\n\n## Counting inventory at a set frequency\n\nAfter the Storage Locations feature is enabled and locations are created in the warehouse, the\ninventory count frequency can be changed for specific locations, and counts can be conducted on\nthose locations.\n\n### Setting a cycle count frequency\n\nTo view and edit locations, navigate to Inventory app ⣠Configuration â£\nLocations . This opens a Locations page listing every location currently created in the warehouse.\nFrom this page, click a location to open its form.\nUnder the Cyclic Counting section, locate the Inventory Frequency field, which is set\nto 0 by default (if this location has not been edited previously). In this field, change the value\nto any number of days desired for the frequency of counts.\n`0`\nA location that needs an inventory count every 30 days should have the Inventory\nFrequency value set to 30 .\n`30`\nNow, to ensure the scheduled cycle count appears as expected, perform the first cycle count . After inventory adjustments have been applied\nto the products in this location, the next scheduled count date is automatically set based on the\nvalue entered in the Inventory Frequency field.\n\n### Performing a cycle count\n\nTo perform a cycle count for a specific location in the warehouse, navigate to Inventory app ⣠Operations ⣠Physical Inventory . This opens an Inventory\nAdjustments page that lists all products currently in stock, with each product on its own line.\nFrom this page, the Filters and Group By options (accessible by clicking in\nthe Search bar) can be used to select specific locations and perform inventory counts.\nTo select a specific location and view all products within that location, click in the Search bar. Then, in the Group By column, select Location .\nAll products are sorted into their storage locations on the Inventory Adjustments page, and a\ncycle count can be performed for all products in that location.\nIn large warehouses with multiple locations and a high volume of products, it might be easier to\nsearch for the desired location. To do this, from the Inventory Adjustments page, click in the Search bar.\nThen, in the Filters column, click Add Custom Filter to open an Add\nCustom Filter pop-up window.\nIn the first field, click the value and select Location from the list of options.\nSelect contains in the second field. In the third field, type in the name of the\nlocation being searched for.\nClick Add for that location to appear on the page.\nWhen performing counts in the Barcode app, inventory adjustments are grouped by location by\ndefault.\n\n## Change full inventory count date\n\nWhile cycle counts are typically performed at the location level, companies should conduct a full\ninventory count once per year. In addition to keeping stock counts accurate, full inventory counts\nensure that accounting earnings and costs are recorded accurately. The scheduled date for full\ninventory counts of all in-stock products in the warehouse can be manually changed to push it up\nearlier than the listed date.\nTo modify the default scheduled date, go to Inventory app ⣠Configuration â£\nSettings . Then, in the Operations section, locate the Annual Inventory Day and Month setting, which includes a drop-down set to 31 December by default.\n`31`\nTo change the day, click the 31 and select a day within the range 1-31 , depending on the desired\nmonth of the year.\n`31`\n`1-31`\nThen, to change the month, click December to open the drop-down menu and select the\ndesired month.\nAfter all necessary changes have been made, click Save .\n- Inventory adjustments\nInventory adjustments\n- Locations", "headings": ["Configuration", "Counting inventory at a set frequency", "Setting a cycle count frequency", "Performing a cycle count", "Change full inventory count date"], "doc_id": "a0ba81d1cffc538a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/product_catalog.html", "title": "Product catalog", "module": "inventory", "section": "Product catalog", "text": "# Product catalog\n\nThe product catalog is a feature integrated with any Odoo app that allows users to add products or\ncomponents to an order. This includes the Inventory , Manufacturing , Sales , Purchase ,\nand Repairs apps, among others.\nThe product catalog can be accessed from the first tab of a quotation, request for quotation (RfQ),\norder, or bill of materials (BoM) form, and opens in a new page when selected. The catalog displays\nproducts and components in a user-friendly, POS-style format, from which they can be selected and\nadded to forms.\nThe product catalog simplifies the creation of new sales orders (SOs), purchase orders (POs),\nmanufacturing orders (MOs), bill of materials (BoMs), and more, by providing a visual interface\nthrough which products and components can be quickly selected.\n\n## Use product catalog\n\nTo use the product catalog, begin by creating or opening a quotation, RfQ , order, or BoM to\nwhich products or components can be added. For example, create a new sales quotation by navigating\nto Sales app , and clicking New .\nOn the form (quotation, RfQ , order, BoM ), make sure the first tab on the bottom is selected.\nDepending on the form being configured, this tab may be titled Order Lines , Components , Products , or Parts .\nOn the first blank line of the tab, click the Catalog link to open the catalog in a new\npage.\nThe product catalog displays a card for each product added to Odoo. Each card displays a few key\ndetails about the corresponding product:\n- Product photo\n- Product title\n- Price or cost of the product, depending on whether it is bought, sold, or used as a\ncomponent\nPrice or cost of the product, depending on whether it is bought, sold, or used as a\ncomponent\n- Reference code (e.g. DESK0005 )\nReference code (e.g. DESK0005 )\n- On-hand quantity\n- Variant attributes (e.g. Color: White )\nVariant attributes (e.g. Color: White )\nProducts can be filtered using the search bar at the top of the page, or the sidebar on the left\nside of the page.\nTo filter by product type, click the (down arrow) button on the\nright side of the search bar to open the search menu. In the Filters section, select the Services filter to only show service products, or the Products filter to\nonly show physical products.\nWhen creating or configuring a quotation or SO , specifically, an In the Order filter\nappears in the Filters section of the search bar. Select this filter to only show\nproducts that have already been added to the form.\nIn the sidebar on the left side of the page, select an option in the PRODUCT CATEGORY section to filter by product category, or an option in the ATTRIBUTES section to filter by variant attribute.\nTo add a product, click on the productâs card, or click the Add button in the bottom-right corner of the card. Doing so adds one unit of the product, which is\ndisplayed in a field in the bottom-left corner of the card.\nOnce a product has been added, clicking the product card continues to add units of the product in\nincrements of one.\nTo adjust the quantity of the product added, click the (minus) button\nto reduce the quantity by one, or the (plus) button to increase it by\none.\nAlternatively, a specific quantity can be entered by selecting the field between the (minus) and (plus) buttons, and typing in\nthe desired quantity.\nTo remove a product from the order or BoM entirely, either click the Remove button in the bottom-right corner of the product card, or click the (minus) button until the quantity has been reduced to zero.\nOnce the desired quantity of each product has been added, return to the form by clicking the Back to [X] button at the top of the screen. This button differs depending on the type\nof form being configured (quotation, BoM , etc.).\nProducts appear in the product catalog, and can be added to orders, even if there\nare zero units of the product on hand. As a result, it is important to confirm the quantity of a\nproduct being added to an order is actually available, or inventory inconsistencies may arise.", "headings": ["Use product catalog"], "doc_id": "e980f534761bf000"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/scrap_inventory.html", "title": "Scrap inventory", "module": "inventory", "section": "Scrap inventory", "text": "# Scrap inventory\n\nSometimes, products in a companyâs warehouse stock might be found to be damaged or defective, past\nthe point of being reparable. If it is not possible to repair the product, or return the product to\na vendor, it can be scrapped.\nOdoo Inventory allows users to scrap inventory, designating goods or materials that are no longer\nusable or sellable for disposal (or recycling).\nScrapping inventory in a database helps stock counts remain accurate, by removing scrapped products\nfrom physical inventory, and placing it in a virtual scrap location ( Virtual Locations/Scrap ).\nVirtual locations in Odoo are not real, physical spaces in a warehouse. Rather, they are\ndesignated locations in a database that provide tracking of items that shouldnât be counted in a\nphysical inventory.\nFor more information about virtual locations, see the documentation about the different types of location types .\n\n## Scrap from stock\n\nTo create a new scrap order (SP) for an in-stock product, navigate to Inventory app\n⣠Operations ⣠Scrap , and click New . This opens a new SP form.\nClick the drop-down menu in the Product field, and select the product that should be\nscrapped from inventory. In the Quantity field, change the value to the quantity of the\nproduct that should be scrapped (by default, this value is set to 1.00 ).\n`1.00`\nThe Source Location defaults to the location where the product is currently stored. The Scrap Location defaults to the designated scrap location ( Virtual\nLocations/Scrap ). Either of these locations can be changed by selecting a different location from\ntheir respective drop-down menus.\nIf the scrapping is tied to a specific existing operation, specify the operation in the Source Document field.\nThe Company field displays the company whose warehouse this product belongs to. If a\nreplenishment rule is set up for the product being scrapped, and if the product should be\nreplenished, tick the checkbox for Replenish Quantities .\nOnce ready, click Validate to complete the new SP . Once validated, a Product Moves smart button appears at the top of the form. Click the smart button to\nview the details of the scrap operation.\nTo view the all-time total quantities of scrapped items, navigate to Inventory\napp ⣠Configuration ⣠Locations . Click the x (remove) button on the Internal filter in the Search⦠bar, to display virtual locations.\nSelect the Virtual Locations/Scrap location. From the Scrap locationâs\nform, click the Current Stock smart button, at the top of the form.\nA list of all scrapped products, and their quantities, is displayed.\n\n## Scrap from an existing operation\n\nScrap orders (SPs) can also be created from existing operations, such as receipts, delivery\norders, and internal transfers, before they are entered into, or removed from, stock for an\noperation.\nTo scrap a product during an operation, navigate to the Inventory app . From the Inventory Overview , click the # To Process button on an operationâs task\ncard (i.e. the Receipts task card).\nThen, select an operation to process from the resulting list of existing orders. Doing so opens that\noperationâs form.\nClick the (cog) icon, and select Scrap from the resulting\ndrop-down menu. This opens a Scrap Products pop-up window.\nFrom this pop-up window, click the drop-down menu in the Product field, and select the\nproducts from the operation that should be scrapped. Adjust the value in the Quantity field, if necessary.\nIf the Product selected is tracked using a lot or serial number, a Lot/Serial field appears. Specify the tracking number in that field.\nThe Source Location and Scrap Location can be changed, if needed. If a\nreplenishment rule is set up for the product being scrapped, and if the product should be\nreplenished, tick the checkbox for Replenish Quantities .\nOnce ready, click Scrap Products . A Scraps smart button appears at the top\nof the operation form. Click this smart button to view the details of all scrap orders created from\nthis specific operation.", "headings": ["Scrap from stock", "Scrap from an existing operation"], "doc_id": "8b5c599092b115e9"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations.html", "title": "Locations", "module": "inventory", "section": "Locations", "text": "# Locations\n\nA location is a specific space within a warehouse. This can be a shelf, room, aisle, etc.\n\n## Configuration\n\nTo create specific storage locations, enable the Storage Locations feature by going to Inventory app ⣠Configuration ⣠Settings . In the Warehouses section, tick the Storage Locations checkbox. Then, click Save .\nTypically, the Storage Locations feature is used with Multi-Step Routes , which controls how products move between\nlocations.\n\n## Create new location\n\nAfter enabling Storage Locations , go to Inventory app ⣠Configuration â£\nLocations .\nOn this page, click New . The new location form can then be configured as follows:\n- Location Name : recognizable name of the location.\nLocation Name : recognizable name of the location.\n- Parent Location : the location within which the new location exists. After the location\nis created, it is listed on the Locations page using a location hierarchy , to\ndescribe how a specific location fits within larger areas of the warehouse. Example In WH/Stock/Zone A/Refrigerator 1 , âRefrigerator 1â is the location name, âZone Aâ is the\nparent location, and everything before it is the path showing where this spot is within the\nwarehouse.\nParent Location : the location within which the new location exists. After the location\nis created, it is listed on the Locations page using a location hierarchy , to\ndescribe how a specific location fits within larger areas of the warehouse.\nIn WH/Stock/Zone A/Refrigerator 1 , âRefrigerator 1â is the location name, âZone Aâ is the\nparent location, and everything before it is the path showing where this spot is within the\nwarehouse.\n`WH/Stock/ZoneA/Refrigerator1`\n\n### Additional Information section\n\nIn addition to the required fields above, configure the following location fields to ensure the\nlocation serves its intended purpose in the database:\n- Location Type : from the drop-down menu, choose Vendor Location , View , Internal Location , Customer Location , Inventory Loss , Production , or Transit Location to categorize\nthe location. For details on each location type, refer to the Location Types section .\nLocation Type : from the drop-down menu, choose Vendor Location , View , Internal Location , Customer Location , Inventory Loss , Production , or Transit Location to categorize\nthe location. For details on each location type, refer to the Location Types section .\n- Storage Category : only available with the Storage Categories feature enabled in Inventory app ⣠Configuration ⣠Settings .\nStorage Category : only available with the Storage Categories feature enabled in Inventory app ⣠Configuration ⣠Settings .\n- Company : the company the location belongs to.\nCompany : the company the location belongs to.\n- Is a Scrap Location? : tick this checkbox to allow for scrapped/damaged goods to be\nstored in this location.\nIs a Scrap Location? : tick this checkbox to allow for scrapped/damaged goods to be\nstored in this location.\n- Is a Return Location? : tick this checkbox to allow products to be returned to this\nlocation.\nIs a Return Location? : tick this checkbox to allow products to be returned to this\nlocation.\n- Barcode : used with the Barcode app, enter the barcode to identify actions at this location when scanned.\nBarcode : used with the Barcode app, enter the barcode to identify actions at this location when scanned.\n- Replenish Location : used for configuring routes , tick this checkbox to set the location as\na destination for receiving products from Buy , Manufacture , or other procurement routes,\nensuring products are correctly supplied to the warehouse.\nReplenish Location : used for configuring routes , tick this checkbox to set the location as\na destination for receiving products from Buy , Manufacture , or other procurement routes,\nensuring products are correctly supplied to the warehouse.\nConfigure the remaining fields in the Additional Information section as follows:\n- Company : the company whose warehouse the location is inside of. Leave this field blank\nif this location is shared between companies.\nCompany : the company whose warehouse the location is inside of. Leave this field blank\nif this location is shared between companies.\n- Is a Scrap Location? : tick this checkbox to allow for scrapped/damaged goods to be\nstored in this location.\nIs a Scrap Location? : tick this checkbox to allow for scrapped/damaged goods to be\nstored in this location.\n- Is a Return Location? : tick this checkbox to allow products to be returned to this\nlocation.\nIs a Return Location? : tick this checkbox to allow products to be returned to this\nlocation.\n- Barcode : the barcode assigned to the location.\nBarcode : the barcode assigned to the location.\n- Replenish Location : tick this checkbox to get all quantities to replenish at this\nlocation.\nReplenish Location : tick this checkbox to get all quantities to replenish at this\nlocation.\nIn the Cyclic Counting section, change the value in the Inventory Frequency\n(Days) field from the default 0 , if necessary.\n`0`\nWhen different than 0 , the inventory count dates for products stored at this location are\nautomatically set at the defined frequency.\n`0`\nIn the Logistics section, in the Removal Strategy field, click the drop-down\nmenu and select the removal strategy for how\nitems should be removed from this location.\n\n### Cyclic Counting section\n\nTo schedule regular inventory counts at this location, set the Inventory Frequency\n(Days) field to the desired interval. By default, it is set to 0 (no scheduled counts).\n`0`\nFor example, setting this field to 30 , schedules a count every thirty days. For more specifics on\nsetting up and using this feature, refer to the Cycle Counts documentation .\n`30`\nThe Last Effective Inventory field displays the date the last inventory count at this\nlocation occurred. When scheduled inventory counts are enabled, the Next Expected\nInventory field displays the date of the next inventory count.\nWith inventory counts scheduled to occur every 30 days, and the Last Effective\nInventory count occurring on July 16, the Next Expected Inventory is August 15.\n`30`\n\n### Logistics section\n\nIn the Logistics section of the locations form, optionally select a Removal\nStrategy to determine the order and priority of how products are picked from inventory. The options\nare: First In First Out (FIFO) , Last In First Out (LIFO) , Closest\nLocation , and First Expiry First Out (FEFO) .\n\n## Current stock at location\n\nTo view the current stock at a single location, go to Inventory app â£\nConfiguration ⣠Locations , and select the desired location.\nNext, click the Current Stock smart button to get a list of all products at the\nlocation.\nA list of current stock at Shelf 1 consists of 266 cabinets and 39 desks.\n`Shelf1`\n`266`\n`39`", "headings": ["Configuration", "Create new location", "Additional Information section", "Cyclic Counting section", "Logistics section", "Current stock at location"], "doc_id": "06a42e7700630568"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses.html", "title": "Warehouses", "module": "inventory", "section": "Warehouses", "text": "# Warehouses\n\nIn the Odoo Inventory app, a warehouse is a physical space with an address for storing items,\nsuch as a storage facility, distribution center, or physical store.\nEach database has a pre-configured warehouse with the companyâs address. Users can set up multiple\nwarehouses, and create stock moves between them.\n\n## Configuration\n\nTo create or manage warehouses, go to Inventory app ⣠Configuration â£\nWarehouses .\nThen, select an existing warehouse, or create a new one by clicking New . Doing so opens\nthe warehouse form, which contains the following fields:\n- Warehouse ( required field ): the full name of the warehouse.\nWarehouse ( required field ): the full name of the warehouse.\n- Short Name ( required field ): the abbreviated code for the warehouse (maximum five\ncharacters). The short name for the default warehouse in Odoo is WH . Important The Short Name appears on warehouse documents, so it is recommended to use a\nmemorable one, like âWH[first letters of location]â (e.g. WHA , WHB , etc.).\nShort Name ( required field ): the abbreviated code for the warehouse (maximum five\ncharacters). The short name for the default warehouse in Odoo is WH .\n`WH`\nThe Short Name appears on warehouse documents, so it is recommended to use a\nmemorable one, like âWH[first letters of location]â (e.g. WHA , WHB , etc.).\n`WHA`\n`WHB`\n- Address ( required field ): the address of the warehouse. To change the warehouse\naddress when creating two or more warehouses, hover over the field, and click the (right arrow) .\nAddress ( required field ): the address of the warehouse. To change the warehouse\naddress when creating two or more warehouses, hover over the field, and click the (right arrow) .\n- Company ( required field ): the company that owns the warehouse; this can be set as\nthe company that owns the Odoo database, or the company of a customer or vendor.\nCompany ( required field ): the company that owns the warehouse; this can be set as\nthe company that owns the Odoo database, or the company of a customer or vendor.\n- Intrastat region : region name required for companies in the European\nUnion.\nIntrastat region : region name required for companies in the European\nUnion.\nThe options below are available only when the Multi-Step Routes feature is enabled in Inventory app ⣠Configuration ⣠Settings .\n- Incoming Shipments : select the option to receive products from the warehouse in one , two , or three steps.\nIncoming Shipments : select the option to receive products from the warehouse in one , two , or three steps.\n- Outgoing Shipments : select the option to deliver products from the warehouse in one , two , or three steps.\nOutgoing Shipments : select the option to deliver products from the warehouse in one , two , or three steps.\n- Dropship Subcontractors : available with the Subcontracting feature enabled in Manufacturing app ⣠Configuration ⣠Settings . Tick this checkbox to purchase\ncomponents from vendors, and dropship them to subcontractors.\nDropship Subcontractors : available with the Subcontracting feature enabled in Manufacturing app ⣠Configuration ⣠Settings . Tick this checkbox to purchase\ncomponents from vendors, and dropship them to subcontractors.\n- Resupply Subcontractors : available with the Subcontracting feature, tick this\ncheckbox to supply subcontractors with raw materials stored in this specific warehouse.\nResupply Subcontractors : available with the Subcontracting feature, tick this\ncheckbox to supply subcontractors with raw materials stored in this specific warehouse.\n- Manufacture to Resupply : tick this checkbox to allow for items to be manufactured in\nthis warehouse.\nManufacture to Resupply : tick this checkbox to allow for items to be manufactured in\nthis warehouse.\n- Manufacture : choose whether to manufacture products in one , two , or three steps .\nManufacture : choose whether to manufacture products in one , two , or three steps .\n- Buy to Resupply : tick this checkbox to allow for purchased products to be delivered to\nthe warehouse.\nBuy to Resupply : tick this checkbox to allow for purchased products to be delivered to\nthe warehouse.\n- Resupply From : available with multiple warehouses in the database, select warehouses\nto pull stock from to fulfill orders.\nResupply From : available with multiple warehouses in the database, select warehouses\nto pull stock from to fulfill orders.\nUse inventory adjustments to add stock to new warehouses", "headings": ["Configuration"], "doc_id": "7f757a62056e7791"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.html", "title": "Replenishment", "module": "inventory", "section": "Replenishment", "text": "# Replenishment\n\nIn Odoo, stock can be replenished one of three ways: reordering rules , the make to order (MTO)\nroute, or using the master production schedule (MPS).\nEach replenishment mechanism triggers the creation or suggestion of a purchase order (PO) or\nmanufacturing order (MO), with the best choice depending on the business process.\n\n#### Reordering rules\n\nAutomatically suggest or generate POs or MOs when stock falls below a minimum level.\n\n#### MTO\n\nAutomatically generate POs or MOs when sales orders are confirmed.\n\n#### MPS\n\nManage long-term replenishment based on inputted sales forecasts, via a dashboard.\n\n## Replenishment strategies\n\n### Replenishment report and reordering rules\n\nReordering rules are rules that can be set up to maintain a minimum stock level. They are often\nconfigured to support manufacturing or sales requirements. When a productâs stock falls at or below\nthe minimum level, Odoo generates (or suggests) a purchase or manufacturing order to replenish stock\nto the maximum level.\nWhen using automatic reordering rules, Odoo generates a new order. When using manual, Odoo suggests\norders on the replenishment report. For detailed guidance, refer to the replenishment report and reordering rules .\n- Automatic reordering rules : Automatically create POs or MOs when stock falls below the minimum level. While this is convenient, it is less\nflexible.\nAutomatic reordering rules : Automatically create POs or MOs when stock falls below the minimum level. While this is convenient, it is less\nflexible.\n- Manual reordering rules : Generate suggestions in\nthe replenishment report for user review, allowing adjustments and batch orders while meeting\ndeadlines.\nManual reordering rules : Generate suggestions in\nthe replenishment report for user review, allowing adjustments and batch orders while meeting\ndeadlines.\n- Just-in-time logic : A strategy to replenish\nonly what is needed to prevent overstocking.\nJust-in-time logic : A strategy to replenish\nonly what is needed to prevent overstocking.\n- Reordering rules\n- Replenishment report\n\n### Make to order\n\nAn MTO strategy means that procurement or production is triggered only after a sales order has\nbeen confirmed. This strategy is recommended when products are customizable, demand is\nunpredictable, there is limited storage capacity, and when products are high in value and low in\ndemand. In such cases, it does not make sense to keep on-hand inventory.\nUnlike products replenished using reordering rules, Odoo automatically links the sales order to the PO or MO generated by the MTO route.\nAnother difference between reordering rules and MTO is, with MTO , Odoo generates a draft PO or MO immediately after the SO is confirmed. With reordering rules, Odoo generates a draft PO or MO when the productâs forecasted stock falls below the set minimum quantity.\nIn addition, Odoo automatically adds quantities to the PO or MO as the forecast changes, so long\nas the PO or MO is not confirmed.\nThe MTO route is the best replenishment strategy for products that are customized, and/or for\nproducts that have no stock kept on-hand.\nReplenish on order (MTO)\n\n### Master production schedule\n\nThe MPS is a dashboard where products and their forecasted\nquantities are entered. Based on confirmed manufacturing and purchase orders, the dashboard\nrecommends amounts to order or produce.\nThis a useful manual tool for keeping track of quantities. The MPS should absolutely not be used alongside reordering rules, as the automated workflow\ndisrupts its manual replenishment method.\nMaster production schedule", "headings": ["Replenishment strategies", "Replenishment report and reordering rules", "Make to order", "Master production schedule"], "doc_id": "82f4dd9e7ead3ac8"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/lead_times.html", "title": "Lead times", "module": "inventory", "section": "Lead times", "text": "# Lead times\n\nAccurately forecasting delivery dates is vital for fulfilling customer expectations. In Odoo, the Inventory app allows for comprehensive lead time configuration, allowing coordination and\nplanning of manufacturing orders, deliveries, and receipts.\n\n## Lead time types\n\nDifferent lead times for different operations can impact various stages of the order fulfillment\nprocess. Hereâs a summary of the types of lead times in Odoo:\n- Customer lead time : default time frame for\nfulfilling customer orders. The customer lead time is the number of days from the date the sales\norder (SO) is confirmed to the date the products are shipped from the warehouse. This is also\nknown as delivery lead time .\nCustomer lead time : default time frame for\nfulfilling customer orders. The customer lead time is the number of days from the date the sales\norder (SO) is confirmed to the date the products are shipped from the warehouse. This is also\nknown as delivery lead time .\n- Sales security lead time : moves the scheduled delivery date forward by a specified number of days. This serves as a buffer to allow\nample time to prepare the outgoing shipment earlier, considering the possibility of delays in the\nfulfillment process.\nSales security lead time : moves the scheduled delivery date forward by a specified number of days. This serves as a buffer to allow\nample time to prepare the outgoing shipment earlier, considering the possibility of delays in the\nfulfillment process.\n- Purchase lead time : number of days from the\nconfirmation of a purchase order (PO) to the receipt of products. It provides insight on the time\nit takes for products to arrive at the warehouse, facilitating effective scheduling and planning\nof supplier deliveries.\nPurchase lead time : number of days from the\nconfirmation of a purchase order (PO) to the receipt of products. It provides insight on the time\nit takes for products to arrive at the warehouse, facilitating effective scheduling and planning\nof supplier deliveries.\n- Purchase security lead time : advances\nthe order deadline on a PO by a specified number of days. This proactive\napproach of placing orders earlier mitigates the risk of vendor or shipping delays. Thus, for\nproducts that are set to replenish to order, the need appears on the Replenishment report earlier, according to the specified number of days.\nPurchase security lead time : advances\nthe order deadline on a PO by a specified number of days. This proactive\napproach of placing orders earlier mitigates the risk of vendor or shipping delays. Thus, for\nproducts that are set to replenish to order, the need appears on the Replenishment report earlier, according to the specified number of days.\n- Days to Purchase : days needed for the\nvendor to receive a request for quotation (RFQ) and confirm it. It advances the deadline to\nschedule a RFQ by a specified number of days.\nDays to Purchase : days needed for the\nvendor to receive a request for quotation (RFQ) and confirm it. It advances the deadline to\nschedule a RFQ by a specified number of days.\n- Manufacturing lead time : number of days needed to\ncomplete a manufacturing order (MO) from the date of confirmation. This lead time includes\nweekends (non-working hours in Odoo), and is used to forecast an approximate production date for a\nfinished good.\nManufacturing lead time : number of days needed to\ncomplete a manufacturing order (MO) from the date of confirmation. This lead time includes\nweekends (non-working hours in Odoo), and is used to forecast an approximate production date for a\nfinished good.\n- Days to prepare manufacturing order : number of days needed to replenish\ncomponents, or manufacture sub-assemblies of the product. Either set one directly on the bill of\nmaterials (BoM), or click Compute to sum up purchase and manufacturing lead times of components\nin the BoM .\nDays to prepare manufacturing order : number of days needed to replenish\ncomponents, or manufacture sub-assemblies of the product. Either set one directly on the bill of\nmaterials (BoM), or click Compute to sum up purchase and manufacturing lead times of components\nin the BoM .\n- Manufacturing security lead time : moves\nthe scheduled date of the MO forward by a specified number of days. When used in conjunction\nwith replenish to order , the security lead time\nmakes the need appear earlier on the replenishment report.\nManufacturing security lead time : moves\nthe scheduled date of the MO forward by a specified number of days. When used in conjunction\nwith replenish to order , the security lead time\nmakes the need appear earlier on the replenishment report.\n\n## Sales lead times\n\nCustomer lead times and sales security lead times can be configured to automatically compute an expected delivery date on a SO . The expected delivery date ensures a\nrealistic delivery dates setting for shipments from the warehouse.\nOdoo issues a warning message if the set delivery date is earlier than the expected date, as it may\nnot be feasible to fulfill the order by that time, which would impact other warehouse operations.\nA SO containing a Coconut-scented candle is confirmed on July 11th. The\nproduct has a customer lead time of 14 days, and the business uses a sales security lead time of\n1 day. Based on the lead time inputs, Odoo suggests a delivery date in 15 days, on July 26th.\n`Coconut-scentedcandle`\nThe following sections demonstrate how to automatically compute expected delivery dates.\n\n### Customer lead time\n\nSet the customer lead time on each product form, by navigating to the products page. To do so, go to Sales app ⣠Products ⣠Products . From there, select the desired product, and\nswitch to the Inventory tab. Then, under the Customer Lead Time field, fill\nin the number of calendar days required to fulfill the delivery order from start to finish.\nSet a 14-day customer lead time for the Coconut-scented candle by navigating to its product\nform. Then, in the Inventory tab, type 14.00 days into the Customer Lead\nTime field.\n`Coconut-scentedcandle`\n`14.00`\n\n### Sales security lead time\n\nSales security lead time is set globally for the business in Inventory app â£\nConfiguration ⣠Settings .\nOn the configuration page, under the Advanced Scheduling heading, locate the box for Security Lead Time for Sales , and click the checkbox to enable the feature.\nNext, enter the desired number of calendar days. This security lead time is a buffer notifying the\nteam to prepare for outgoing shipments earlier than the scheduled date.\nSetting the Security Lead Time for Sales to 1.00 day, pushes the Scheduled Date of a delivery order (DO) forward by one day. In that case, if a\nproduct is initially scheduled for delivery on April 6th, but with a one-day security lead time,\nthe new scheduled date for the delivery order would be April 5th.\n`1.00`\n\n### Deliver several products\n\nFor orders that include multiple products with different lead times, the lead times can be\nconfigured directly from the quotation itself. On a quotation, click the Other Info tab,\nand set the Shipping Policy to:\n- As soon as possible to deliver products as soon as they are ready. The Scheduled Date of the DO is determined by adding todayâs\ndate to the shortest lead time among the products in the order.\nAs soon as possible to deliver products as soon as they are ready. The Scheduled Date of the DO is determined by adding todayâs\ndate to the shortest lead time among the products in the order.\n- When all products are ready to wait to fulfill the entire order at once. The Scheduled Date of the DO is determined by adding todayâs\ndate to the longest lead time among the products in the order.\nWhen all products are ready to wait to fulfill the entire order at once. The Scheduled Date of the DO is determined by adding todayâs\ndate to the longest lead time among the products in the order.\nIn a quotation containing 2 products, Yoga mat and Resistance band, the products have a lead\ntime of 8 days and 5 days, respectively. Todayâs date is April 2nd.\n`Yogamat`\n`Resistanceband,`\nWhen the Shipping Policy is set to As soon as possible , the scheduled\ndelivery date is 5 days from today: April 7th. On the other hand, selecting When all\nproducts are ready configures the scheduled date to be 8 days from today: April 10th.\n\n## Purchase lead times\n\nAutomatically scheduling supplier orders streamlines procurement by showing users exactly when to\nconfirm a request for quotation (RFQ) and when to expect the goods.\nLast calendar day to confirm the RFQ and convert it to a PO\nArrival date of the products. Calculated by Order Deadline + Vendor Lead Time\nIn addition, Odoo has global security lead times, which are buffers that widen the just-in-time (JIT) forecast window. The security\nlead times affect only replenishment methods that use pull rules âfor example reordering rules or make to order (MTO) . They do not change the interval between Order Deadline and Expected Arrival .\nPO scheduling with reordering rules\nPurchase Security Lead Time\nExtra calendar days to account for delays. Typically used to account for weekends or\nholidays.\nNone on the RFQ / PO ; adds buffer days in the JIT forecast window .\nDays the vendor needs to review an RFQ after it is sent.\nNone on the RFQ / PO ; adds buffer days in the JIT forecast window .\nTo tie all the purchase lead times together, consider this:\n- Today: April 21\n- Vendor Lead Time : 1 day\nVendor Lead Time : 1 day\n- Purchase Security Lead Time : 4 days\nPurchase Security Lead Time : 4 days\n- Days to Purchase : 2 days\nDays to Purchase : 2 days\nDays from today = 1 + 4 + 2 = 7\nForecasted date = April 28\nExample of the JIT forecast window, which is April 21-28.\nIf an RFQ is created today, the following fields show:\n- Order Deadline : April 23 ( \\(\\text{Today} + 2\\) )\nOrder Deadline : April 23 ( \\(\\text{Today} + 2\\) )\n- Expected Arrival : April 24 ( \\(\\text{Order Deadline} + 1\\) )\nExpected Arrival : April 24 ( \\(\\text{Order Deadline} + 1\\) )\n\n### Vendor lead time\n\nTo set a vendor lead time for orders arriving in the warehouse from a vendor location, begin by\nnavigating to a product form through Purchase app ⣠Products ⣠Products .\nNext, select the desired product, and switch to the Purchase tab. In the editable vendor\npricelist, click the Add a line button to add vendor details, such as the Vendor name, Price offered for the product, and lastly, the Delivery Lead Time .\nMultiple vendors and lead times can be added to the vendor pricelist. The default vendor and lead\ntime selected is the entry at the top of the list.\nA PO is marked late if the Expected Arrival date has passed, and appears in the Late box on\nthe Purchase appâs dashboard.\nOn the vendor pricelist of the product form, the Delivery Lead Time for the selected\nvendor is set to 10 days.\n`10days.`\n\n### Purchase security lead time\n\nPurchase security lead time is a global buffer to account for delays, applied to all vendors.\nTo set it, go to Inventory app ⣠Configuration ⣠Settings .\nUnder Advanced Scheduling , tick the Security Lead Time for Purchase checkbox.\nNext, enter the desired number of calendar days. By configuring the security lead time, a buffer is\nset to account for potential delays in supplier deliveries. Then, click Save .\n\n### Days to purchase lead time\n\nTo set it up, go to Inventory app ⣠Configuration ⣠Settings . Under the Advanced Scheduling section, in the Days to Purchase field, specify the\nnumber of days required for the vendor to confirm a RFQ after receiving it from the company.\n\n## Manufacturing lead times\n\nLead times can help simplify the procurement process for consumable materials and components used in\nmanufactured products with bills of materials (BoMs).\nThe MO deadline, which is the deadline to begin the manufacturing process to complete the product\nby the scheduled delivery date, can be determined by configuring the manufacturing lead times and\nmanufacturing security lead times.\n\n### Manufacturing lead time\n\nManufacturing lead times for products are configured from a productâs bill of materials (BoM) form.\nTo add a lead time to a BoM , navigate to Manufacturing app ⣠Products ⣠Bills\nof Materials , and select the desired BoM to edit.\nOn the BoM form, click the Miscellaneous tab. Change the value (in days) in the Manuf. Lead Time field to specify the calendar days needed to manufacture the product.\nIf the selected BoM is a multi-level BoM , the manufacturing lead times of the components are\nadded.\nIf the BoM product is subcontracted, the Manuf. Lead Time can be used to determine\nthe date at which components should be sent to the subcontractor.\nEstablish a MO deadline, based on the expected delivery date , indicated in the Scheduled Date field of the DO .\nThe MO deadline, which is the Scheduled Date field on the MO , is calculated as the expected delivery date subtracted by the manufacturing lead time.\nThis ensures the manufacturing process begins on time, in order to meet the delivery date.\nHowever, it is important to note that lead times are based on calendar days. Lead times do not consider weekends, holidays, or work center capacity ( the number of operations that can be\nperformed at the work center simultaneously ).\n- Manufacturing planning\nManufacturing planning\n- Schedule MOs with reordering rules\nSchedule MOs with reordering rules\nA productâs scheduled shipment date on the DO is August 15th. The\nproduct requires 14 days to manufacture. So, the latest date to start the MO to meet the commitment date is August 1st.\n\n### Days to prepare manufacturing order\n\nConfigure the days required to gather components to manufacture a product by going to its BoM . To\ndo that, go to Manufacturing app ⣠Products ⣠Bills of Materials , and select\nthe desired BoM .\nIn the Miscellaneous tab of the BoM , specify the calendar days needed to obtain\ncomponents of the product in the Days to prepare Manufacturing Order field. Doing so\ncreates MOs in advance, and ensures there is enough time to either replenish components, or\nmanufacture semi-finished products.\nClicking Compute , located next to the Days to prepare Manufacturing Order field, calculates the longest lead time among all the components listed on the BoM .\nPurchase security lead times that impact this specific BoM are also added to this value.\nA BoM has two components, one has a manufacturing lead time of two days, and the other has a\npurchase lead time of four days. The Days to prepare Manufacturing Order is four\ndays.\n\n### Manufacturing security lead time\n\nManufacturing security lead time is set globally for the business in Manufacturing\napp ⣠Configuration ⣠Settings . Under the Planning heading, tick the checkbox for Security Lead Time .\nNext, enter the desired number of calendar days. By configuring the security lead time, a buffer is\nset to account for potential delays in the manufacturing process. Then, click Save .\nA product has a scheduled shipment date on the DO set for August 15th.\nThe manufacturing lead time is 7 days, and manufacturing security lead time is 3 days. So, the Scheduled Date on the MO reflects the latest date to begin the manufacturing order.\nIn this example, the planned date on the MO is August 5th.\n\n## Global example\n\nSee the following example to understand how all the lead times work together to ensure timely order\nfulfillment:\n- Sales security lead time : 1 day\nSales security lead time : 1 day\n- Manufacturing security lead time : 2 days\nManufacturing security lead time : 2 days\n- Manufacturing lead time : 3 days\nManufacturing lead time : 3 days\n- Purchase security lead time : 1 day\nPurchase security lead time : 1 day\n- Vendor lead time : 4 days\nVendor lead time : 4 days\nThe customer places an order for a manufactured product on September 1st, and the scheduled delivery\ndate from the warehouse is on September 20th. Odoo uses lead times and automated reordering rules to\nschedule the necessary operations, based on the outgoing shipment delivery date, September 20th:\n- September 1st : Sales order created, confirmed by salesperson.\nSeptember 1st : Sales order created, confirmed by salesperson.\n- September 9th : Deadline to order components to ensure they arrive in time when manufacturing\nbegins (4-day supplier lead time).\nSeptember 9th : Deadline to order components to ensure they arrive in time when manufacturing\nbegins (4-day supplier lead time).\n- September 13th : Scheduled date of receipt for components. Initially, it was set to 9/14, but\nthe 1-day purchase security lead time pushed the date earlier by 1 day.\nSeptember 13th : Scheduled date of receipt for components. Initially, it was set to 9/14, but\nthe 1-day purchase security lead time pushed the date earlier by 1 day.\n- September 14th : Deadline to begin manufacturing. Calculated by subtracting the manufacturing\nlead time of 3 days, and the manufacturing security lead time of 2 days, from the expected\ndelivery date of September 19th.\nSeptember 14th : Deadline to begin manufacturing. Calculated by subtracting the manufacturing\nlead time of 3 days, and the manufacturing security lead time of 2 days, from the expected\ndelivery date of September 19th.\n- September 19th : Scheduled Date on the delivery order form indicates the updated\nexpected delivery date, which was originally set as September 20th. But the sales security lead\ntime pushed the date forward by a day.\nSeptember 19th : Scheduled Date on the delivery order form indicates the updated\nexpected delivery date, which was originally set as September 20th. But the sales security lead\ntime pushed the date forward by a day.\nOdooâs replenishment planning maps a businessâ order fulfillment process, setting pre-determined\ndeadlines and raw material order dates, including buffer days for potential delays. This ensures\nproducts are delivered on time.", "headings": ["Lead time types", "Sales lead times", "Customer lead time", "Sales security lead time", "Deliver several products", "Purchase lead times", "Vendor lead time", "Purchase security lead time", "Days to purchase lead time", "Manufacturing lead times", "Manufacturing lead time", "Days to prepare manufacturing order", "Manufacturing security lead time", "Global example"], "doc_id": "72a0fa637780769a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.html", "title": "Replenish on order (MTO)", "module": "inventory", "section": "Replenish on order (MTO)", "text": "# Replenish on order (MTO)\n\nReplenish on order , also known as MTO (make to order), is a replenishment strategy that creates\na draft order every time a product is needed to fulfill a sales order (SO) or as a component in a\nmanufacturing order (MO).\n- For purchased products , Odoo creates an RFQ\nFor purchased products , Odoo creates an RFQ\n- For manufactured products , it creates an MO\nFor manufactured products , it creates an MO\nIf stock is available, no RFQ or MO is generated and the sale proceeds normally. Otherwise, the RFQ or MO is generated and directly linked to the originating SO through a smart button.\nThis approach offers clear traceability, since each RFQ or MO is tied back to its demand.\nThe RFQ or MO generated by MTO is designed to fulfill the originating SO . These documents\nshould normally be confirmed or adjusted rather than cancelled. If the demand changes, update the\ndocument instead of cancelling it.\nIf an RFQ or MO is cancelled, Odoo does not automatically generate a replacement. A new\nreplenishment document must be created manually, but it cannot be linked back to the original SO through the smart button.\nFinally, click Save to save the change.\n\n## Unarchive MTO route\n\nIn order to use the MTO route, the Multi-Step Routes feature must be enabled. To do\nso, navigate to Inventory app ⣠Configuration ⣠Settings , and tick the checkbox\nnext to Multi-Step Routes , under the Warehouse heading.\nBy default, Odoo sets the MTO route as archived . This is because MTO is a somewhat niche\nworkflow that is only used by certain companies. However, it is easy to unarchive the route in just\na few simple steps.\nTo do so, begin by navigating to Inventory app ⣠Configuration ⣠Routes . On the Routes page, click the (down arrow) icon on the right\nside of the search bar, and click the Archived filter to enable it.\nAfter enabling the Archived filter, the Routes page shows all routes which\nare currently archived. Tick the checkbox next to Replenish on Order (MTO) , then click\nthe Actions button to reveal a drop-down menu. From the drop-down menu,\nselect Unarchive .\nFinally, remove the Archived filter from the search bar. The Routes page now\nshows all unarchived routes, including Replenish on Order (MTO) , which is selectable on\nthe Inventory tab of each product page.\n\n## Configure product for MTO\n\nWith the MTO route unarchived, products can now be properly configured to use replenish on order.\nTo do so, begin by going to Inventory app ⣠Products ⣠Products , then select an\nexisting product, or click New to configure a new one.\nOn the product page, select the Inventory tab and enable the Replenish on\nOrder (MTO) route in the Routes section, along with the Buy or Manufacture route.\nThe Replenish on Order (MTO) route does not work unless another route is selected\nas well. This is because Odoo needs to know how to replenish the product when an order is placed\nfor it (buy or manufacture it).\nIf the product is purchased from a vendor to fulfill SOs , enable the Can be Purchased checkbox under the product name. Doing so makes the Purchase tab appear alongside the\nother tabs below.\nClick the Purchase tab and specify a Vendor and the Price they\nsell the product for.\nSpecifying a vendor is essential for this workflow, because Odoo cannot generate an RFQ without\nknowing who the product is purchased from.\nIf the product is manufactured, make sure it has a bill of materials (BOM) configured for it. To do\nso, click the Bill of Materials smart button at the top of the screen, then click New on the Bill of Materials page to configure a new BoM for the product.\nFor a full overview of BoM creation, see the documentation on bills of materials .\n\n## Replenish using MTO\n\nAfter configuring a product to use the MTO route, a replenishment order is created for it every\ntime an SO or MO including the product is confirmed. The type of order created depends on the\nsecond route selected in addition to MTO .\nFor example, if Buy was the second route selected, then a PO is created upon confirmation of an SO .\nWhen the MTO route is enabled for a product, a replenishment order is always created upon\nconfirmation of an SO or MO . This is the case, even if there is enough stock of the product\non-hand to fulfill the SO , without buying or manufacturing additional units of it.\nWhile the MTO route can be used in unison with the Buy or Manufacture routes, the Buy route\nis used as the example for this workflow. Begin by navigating to the Sales app,\nthen click New , which opens a blank quotation form.\nOn the blank quotation form, add a Customer . Then, click Add a product under\nthe Order Lines tab, and enter a product configured to use the MTO and Buy routes.\nClick Confirm , and the quotation is turned into an SO .\nA Purchase smart button now appears at the top of the page. Clicking it opens the RFQ associated with the SO .\nAfter receiving approval from the vendor that they can meet the demand by the Expected\nArrival date, click Confirm Order to turn it into a PO . A purple Receive\nProducts button now appears above the PO . Once the products are received, click Receive Products to open the receipt order, and click Validate to enter the\nproducts into inventory.\nReturn to the SO by clicking the SO breadcrumb, or by navigating to Sales app ⣠Orders ⣠Orders , and selecting the SO .\nFinally, click the Delivery smart button at the top of the order to open the delivery\norder. Once the products have been shipped to the customer, click Validate to confirm\nthe delivery.\n\n### Cancelling an SO with an MTO product\n\nWhen a SO is cancelled, and it had created an RFQ or MO , the related delivery order is\ncancelled automatically. However, the RFQ or MO themselves are not cancelled. Instead, a\nwarning appears in their chatter noting the SO cancellation. These documents remain active, so the\nuser can either cancel them manually or repurpose the replenishment for another order.\nFor information on workflows that include the MTO route, see the following documentation:\n- Inter-warehouse replenishment\nInter-warehouse replenishment\n- Basic subcontracting\n- Multilevel BoMs", "headings": ["Unarchive MTO route", "Configure product for MTO", "Replenish using MTO", "Cancelling an SO with an MTO product"], "doc_id": "817e35a0282cb225"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules.html", "title": "Reordering rules", "module": "inventory", "section": "Reordering rules", "text": "# Reordering rules\n\nReordering rules are used to keep forecasted stock levels above a certain threshold without\nexceeding a specified upper limit. This is accomplished by specifying a minimum quantity that stock\nshould not fall below and a maximum quantity that stock should not exceed.\nReordering rules can be configured for each product based on the route used to replenish it. If a\nproduct uses the Buy route, then a request for quotation (RFQ) is created when the reordering\nrule is triggered. If a product uses the Manufacture route, then a manufacturing order (MO) is\ncreated instead. This is the case regardless of the selected replenishment route.\n- Odoo Tutorials: Automatic Reordering Rules\nOdoo Tutorials: Automatic Reordering Rules\n- Odoo Tutorials: Manual Reordering Rules\nOdoo Tutorials: Manual Reordering Rules\nTo set up reordering rules for the first time, refer to:\n- Reordering rules setup\nReordering rules setup\n- Trigger\n- Preferred route\nTo understand and optimize replenishment using advanced features, see:\n- Just-in-time logic\n- Visibility days\n- Horizon days\n\n## Reordering rules setup\n\nTo configure automatic and manual reordering rules, complete the following:\n- Product type configuration\nProduct type configuration\n- Replenishment method\n- Create rule\n\n### Product type configuration\n\nA product must be configured correctly to use reordering rules. Begin by navigating to Inventory app ⣠Products ⣠Products , then select an existing product, or create\na new one by clicking New .\nOn the product form, under the General Information tab, set the Product Type to Goods , and make sure the Track Inventory checkbox is ticked. This is\nnecessary for Odoo to track the productâs stock levels and trigger reordering rules.\n\n### Replenishment method\n\nNext, configure the replenishment method (e.g. buy or manufacture).\nIf the product is purchased, install the Purchase app, and confirm that\nthe Purchase checkbox is enabled under the product name. In the Purchase tab, add at least one vendor to the vendor pricelist .\nOdoo uses the vendor at the top of the list to generate RFQs when reordering rules are triggered.\nIn the Inventory tabâs Routes field, tick the Buy checkbox.\nIf the product is manufactured, install the Manufacturing app, and in\nthe Inventory tabâs Routes field, tick the Manufacture checkbox.\nNext, ensure at least one bill of materials (BoM) is displayed in the Bill\nof Materials smart button at the top of the product form. This is necessary because Odoo only\ncreates manufacturing orders (MOs) for products with a BoM .\nIf a BoM does not already exist for the product, click the Bill of Materials smart\nbutton, then click New to configure a new BoM .\n\n### Create new reordering rules\n\nTo create a new reordering rule, navigate to Inventory app ⣠Operations â£\nReplenishment , then click New , and fill out the following fields for the new reordering\nrule line item:\n- Product : The product that is replenished by the rule.\nProduct : The product that is replenished by the rule.\n- Location : The location where the product is stored.\nLocation : The location where the product is stored.\n- Min : The minimum quantity that can be forecasted without the rule being\ntriggered. When forecasted stock falls below this number, a replenishment order for the product is\ncreated.\nMin : The minimum quantity that can be forecasted without the rule being\ntriggered. When forecasted stock falls below this number, a replenishment order for the product is\ncreated.\n- Max : The maximum quantity at which the stock is replenished.\nMax : The maximum quantity at which the stock is replenished.\n- Multiple Quantity : If the product should be ordered in specific quantities, enter the\nnumber that should be ordered. For example, if the Multiple Quantity is set to 5 ,\nand only 3 are needed, 5 products are replenished.\nMultiple Quantity : If the product should be ordered in specific quantities, enter the\nnumber that should be ordered. For example, if the Multiple Quantity is set to 5 ,\nand only 3 are needed, 5 products are replenished.\n`5`\nThe form for creating a new reordering rule.\nReordering rules can also be created from the Reordering Rules smart button on the\nproduct form.\nTo learn how the On Hand , Forecast , and To Order fields are\ncalculated using on-hand quantities and future demand, see the Just-in-time logic section.\nFor advanced usage, learn about the following reordering rule fields:\n- Trigger\n- Preferred route\n- Vendor\n- Bill of materials\n- Procurement group\n- Visibility days\nThe fields above are not available by default, and must be enabled by selecting the (adjust settings) icon in\nthe far-right corner and selecting the desired column from the drop-down menu.\n\n### 0/0/1 reordering rule\n\nThe 0/0/1 reordering rule is a specialty rule used to replenish a product that is not kept\non-hand, each time a sales order (SO) is confirmed for that product.\nThe 0/0/1 reordering rule is similar to the Replenish on Order (MTO) route, in that both\nworkflows are used to replenish a product upon confirmation of an SO .\nThe main difference between the two methods is that the Replenish on Order route automatically\nreserves the product for the SO that caused it to be replenished. This means the product cannot be used for a different SO .\nThe 0/0/1 reordering rule does not have this limitation. A product replenished using the rule is\nnot reserved for any specific SO , and can be used as needed.\nAnother key difference is that replenishment orders created by the Replenish on Order route are\nlinked to the original SO by a smart button at the top of the order. When using the 0/0/1\nreordering rule, a replenishment order is created, but is not linked to the original SO .\nSee the Replenish on Order (MTO) documentation for a full overview of the MTO route.\nTo create a 0/0/1 reordering rule, navigate to Inventory app ⣠Products â£\nProducts , and select a product.\nAt the top of the productâs page, click the Reordering Rules smart\nbutton to open the Reordering Rules page for the product. On the resulting page, click New to begin configuring a new reordering rule.\nIn the Location field of the new reordering rule, select the location in which\nreplenished products should be stored. By default, this location is set to WH/Stock .\nIn the Route field, select the route the rule should use to replenish the item. For\nexample, if the product should be purchased from a vendor, select the Buy route.\nIn the Min field and Max field, leave the values set to 0.00 . In the To Order field, enter a value of 1.00 .\n`0.00`\n`1.00`\nWith the reordering rule configured using these values, each time an SO causes the forecasted\nquantity of the product to fall below the Min of 0.00 , the selected Route is used to replenish the product in one-unit increments, back up to the Max of 0.00 .\n`0.00`\n`0.00`\nAn item is configured with a 0/0/1 reordering rule that uses the Buy route. Zero units are kept\non-hand at any given time.\nA SO is confirmed for one unit, which causes the forecasted quantity to drop to -1.00 . This\ntriggers the reordering rule, which automatically creates a PO for one unit.\n`-1.00`\nOnce the product is received from the vendor, the forecasted quantity returns to 0.00 . There is\nnow one unit on-hand, but it is not reserved for the SO which triggered its purchase. It can be\nused to fulfill that SO , or reserved for a different order.\n`0.00`\n\n## Trigger\n\nA reordering ruleâs trigger can be set to automatic or manual . While both function the same\nway, the difference between the two types of reordering rules is how the rule is launched:\n- Auto : A purchase or manufacturing order is\nautomatically created when the forecasted stock falls below the reordering ruleâs minimum\nquantity. By default, the Auto trigger is selected.\nAuto : A purchase or manufacturing order is\nautomatically created when the forecasted stock falls below the reordering ruleâs minimum\nquantity. By default, the Auto trigger is selected.\n- Manual : The Replenishment report lists products needing replenishment, showing current/forecasted stock, lead times, and arrival\ndates. Users can review forecasts before clicking Order .\nManual : The Replenishment report lists products needing replenishment, showing current/forecasted stock, lead times, and arrival\ndates. Users can review forecasts before clicking Order .\nTo enable the Trigger field, go to Inventory app ⣠Operations â£\nReplenishment . Then, click the (adjust settings) icon, located to the far-right of the column titles, and tick\nthe Trigger checkbox.\nIn the Trigger column, select Auto or Manual . Refer to the\nsections below to learn about the different types of reordering rules.\n\n### Auto\n\nAutomatic reordering rules , enabled by setting the reordering ruleâs Trigger field to Auto , generate purchase or manufacturing orders when either:\n- The scheduler runs, and the Forecasted quantity is below the minimum, or\nThe scheduler runs, and the Forecasted quantity is below the minimum, or\n- A SO is confirmed, and lowers the Forecasted quantity of the product below the minimum.\nA SO is confirmed, and lowers the Forecasted quantity of the product below the minimum.\nIf the Buy route is selected, then an RFQ is generated. To view and manage RFQs ,\nnavigate to Purchase app ⣠Orders ⣠Requests for Quotation .\nIf the Manufacture route is selected, then an MO is generated. To view and manage MOs , navigate to Manufacturing app ⣠Operations ⣠Manufacturing Orders .\nWhen no route is selected, Odoo selects the Route specified in the Inventory tab of the product form.\nThe scheduler is set to run once a day, by default.\nTo manually trigger a reordering rule before the scheduler runs, ensure developer mode is enabled, and select Inventory app ⣠Operations ⣠Run\nScheduler . Then, click the purple Run Scheduler button on the pop-up window that\nappears.\nBe aware that this also triggers any other scheduled actions.\nThe product, Office Lamp , has an automatic reordering rule set to trigger when the forecasted\nquantity falls below the Min Quantity of 5.00 . Since the current Forecast is 55.00 , the reordering rule is not triggered.\n`OfficeLamp`\n`5.00`\n`55.00`\n\n### Manual\n\nManual reordering rules , configured by setting the reordering ruleâs Trigger field to Manual , list a product on the replenishment dashboard when the\nforecasted quantity falls below a specified minimum. Products on this dashboard are called needs ,\nbecause they are needed to fulfill upcoming SOs , for which the forecasted quantity is not enough.\nThe replenishment dashboard, accessible by navigating to Inventory app â£\nOperations ⣠Replenishment , considers order deadlines, forecasted stock levels, and lead times.\nIt displays needs only when it is time to reorder items, thanks to the To Reorder filter.\nWhen a product appears on the replenishment dashboard, clicking the Order button\ngenerates the purchase or manufacturing order with the specified amounts To Order .\n\n## Route\n\nOdoo allows for multiple routes to be selected as replenishment methods under the Inventory tab on each product form. For instance, it is possible to select both Buy and Manufacture , indicating to Odoo that the product can be bought or\nmanufactured.\nSet route on product form\nOdoo also enables users to set a preferred route for a productâs reordering rule. This is the\nreplenishment method (e.g., buying or manufacturing) that the rule defaults to, if multiple are\navailable.\nTo specify a preferred route, begin by navigating to Inventory app ⣠Operations\n⣠Replenishment .\nBy default, the Route column is hidden. To reveal it, select the (adjust settings) icon to the\nfar-right of the column titles, and ticking Route from the drop-down menu that appears.\nClick inside of the column on the row of a reordering rule, and a drop-down menu shows all available\nroutes for that rule. Select one to set it as the preferred route.\nIf multiple routes are enabled for a product but no preferred route is set for its reordering\nrule, the product is reordered using the Buy route, then Manufacture .\n\n### Advanced uses\n\nPairing Route with one of the following fields on the replenishment report unlocks\nadvanced configurations of reordering rules. Consider the following:\n- Vendor : When the selected Route is Buy , setting the Vendor field to one of the multiple vendors on the vendor pricelist indicates to Odoo\nthat the vendor is automatically populated on RFQs when a reordering rule triggers the creation\nof a purchase order.\nVendor : When the selected Route is Buy , setting the Vendor field to one of the multiple vendors on the vendor pricelist indicates to Odoo\nthat the vendor is automatically populated on RFQs when a reordering rule triggers the creation\nof a purchase order.\n- Bill of Materials : When the Route is set to Manufacture , and\nthere are multiple BoMs in use, specifying the desired BoM in the replenishment report, draft\nmanufacturing orders are created with this BoM in use.\nBill of Materials : When the Route is set to Manufacture , and\nthere are multiple BoMs in use, specifying the desired BoM in the replenishment report, draft\nmanufacturing orders are created with this BoM in use.\n- Procurement Group : This is a way to group related POs or MOs that are tied to\nfulfilling a specific demand, like an SO or a project. It helps organize and track which orders\nare linked to a particular demand. Note Procurement groups link replenishment methods to demand, making smart buttons to appear â\nsimilar to how smart buttons appear when using the MTO route . Sales order (demand) with a smart button linking to the related purchase order\n(replenishment method). In the context of reordering rules: Reordering rules do not automatically assign a procurement group, which is why there are no\nsmart buttons that link SOs to POs , unlike the MTO route. To enable smart buttons for products replenished by reordering rules (not MTO ), with specific quantities linked to specific demands (e.g. SOs ), assign a procurement\ngroup. Without a procurement group, demands for the same product can be combined into a single RFQ ,\neven if the reordering rule is executed multiple times for those demands. This allows for more\nefficient procurement by consolidating demands into fewer orders. Selecting a procurement group in the Procurement Group field on the replenishment\nreport ensures that all linked orders are grouped under the same demand, based on the defined\nroute. Exercise How can you set the Procurement Group , Vendor , and Route fields on the replenishment\nreport to generate a single RFQ for five different products in sales order SO35, given they\nshare the same vendor, Azure Interior, and ensure other demands for these products are handled\nseparately? View the answer Set the Procurement Group to SO35 , in the reordering rule for all five\nproducts. This groups the demands for SO35 in the same RFQ or MO . Set the Vendor to Azure Interior to ensure the RFQ is created for the\nsame supplier. Set the Route to Buy to generate an RFQ . Click the Order button to generate a single RFQ for the five products tied\nto SO35 . After placing the order, remove SO35 from the Procurement Group field of the\nfive productsâ reordering rules. This ensures future demands for these products are\nmanaged separately and assigned to different RFQs (the usual behavior).\nProcurement Group : This is a way to group related POs or MOs that are tied to\nfulfilling a specific demand, like an SO or a project. It helps organize and track which orders\nare linked to a particular demand.\nProcurement groups link replenishment methods to demand, making smart buttons to appear â\nsimilar to how smart buttons appear when using the MTO route .\nSales order (demand) with a smart button linking to the related purchase order\n(replenishment method).\nIn the context of reordering rules:\n- Reordering rules do not automatically assign a procurement group, which is why there are no\nsmart buttons that link SOs to POs , unlike the MTO route.\nReordering rules do not automatically assign a procurement group, which is why there are no\nsmart buttons that link SOs to POs , unlike the MTO route.\n- To enable smart buttons for products replenished by reordering rules (not MTO ), with specific quantities linked to specific demands (e.g. SOs ), assign a procurement\ngroup.\nTo enable smart buttons for products replenished by reordering rules (not MTO ), with specific quantities linked to specific demands (e.g. SOs ), assign a procurement\ngroup.\n- Without a procurement group, demands for the same product can be combined into a single RFQ ,\neven if the reordering rule is executed multiple times for those demands. This allows for more\nefficient procurement by consolidating demands into fewer orders.\nWithout a procurement group, demands for the same product can be combined into a single RFQ ,\neven if the reordering rule is executed multiple times for those demands. This allows for more\nefficient procurement by consolidating demands into fewer orders.\nSelecting a procurement group in the Procurement Group field on the replenishment\nreport ensures that all linked orders are grouped under the same demand, based on the defined\nroute.\nHow can you set the Procurement Group , Vendor , and Route fields on the replenishment\nreport to generate a single RFQ for five different products in sales order SO35, given they\nshare the same vendor, Azure Interior, and ensure other demands for these products are handled\nseparately?\n- Set the Procurement Group to SO35 , in the reordering rule for all five\nproducts. This groups the demands for SO35 in the same RFQ or MO .\nSet the Procurement Group to SO35 , in the reordering rule for all five\nproducts. This groups the demands for SO35 in the same RFQ or MO .\n`SO35`\n`SO35`\n- Set the Vendor to Azure Interior to ensure the RFQ is created for the\nsame supplier.\nSet the Vendor to Azure Interior to ensure the RFQ is created for the\nsame supplier.\n`AzureInterior`\n- Set the Route to Buy to generate an RFQ .\nSet the Route to Buy to generate an RFQ .\n- Click the Order button to generate a single RFQ for the five products tied\nto SO35 .\nClick the Order button to generate a single RFQ for the five products tied\nto SO35 .\n`SO35`\n`SO35`\n\n## Just-in-time logic\n\nJust-in-time logic in Odoo minimizes storage costs by placing orders precisely to meet deadlines.\nThis is achieved using the forecasted date ,\nwhich determines when replenishment is necessary to avoid overstocking.\nThe forecasted date is the earliest possible date to receive a product if the replenishment\nprocess starts immediately. It is calculated by summing the lead times linked to the replenishment\nprocess, such as vendor lead times and purchasing delays for purchases, or manufacturing lead times for production. Both\nautomatic and manual reordering rules work this way.\nFor a product with a 5-day total lead time and a sales order delivery date in 10 days, Odoo waits\n5 days to place the order, ensuring it arrives just in time for delivery.\nImportant considerations:\n- If this feels risky , consider adding buffer time or adjusting lead times for more flexibility.\nIf this feels risky , consider adding buffer time or adjusting lead times for more flexibility.\n- While lead times and just-in-time logic provide additional control, reordering rules work\nperfectly fine without them . Keeping delivery dates on sales orders as their creation date ensures purchases are immediately triggered when needed\nWhile lead times and just-in-time logic provide additional control, reordering rules work\nperfectly fine without them . Keeping delivery dates on sales orders as their creation date ensures purchases are immediately triggered when needed\n\n### Forecasted date and To Order quantity\n\nThe forecasted date is the earliest receipt date for a product, if it is ordered right now. It is\ncalculated by summing the lead times linked to the productâs replenishment process. The total of\nthese lead times, added to the current date, determines when Odoo checks for demanded stock.\nTo view the forecasted date go to the replenishment report and click the (info) icon for the desired reordering rule. The Replenishment Information pop-up window displays the Forecasted Date and various lead times.\nA manual reordering rule is set up with no minimum or maximum quantities.\n- Vendor lead time is 4 days, the purchase security lead time is 1 day, and the days to purchase\nis 2 days.\nVendor lead time is 4 days, the purchase security lead time is 1 day, and the days to purchase\nis 2 days.\n- Todayâs date is November 26.\nTodayâs date is November 26.\n- These add up to 7 days, making the forecasted date, December 3rd.\nThese add up to 7 days, making the forecasted date, December 3rd.\nA confirmed SO for 5 units has a delivery date of December 3rd (7 days from today). This demand\nwill appear on the replenishment report today, in the To Order field.\nHowever, if the delivery date were later than December 3rd, it would not yet appear on the\nreport. Odoo only displays quantities to replenish when they fall within the forecasted date\nwindow, ensuring orders are placed precisely when needed.\nThe just-in-time logic ensures replenishment happens only when itâs necessary for the forecasted\ndateâs demand, helping avoid overstocking.\n- If the forecasted quantity drops below the minimum on the forecasted date, replenishment must\nbegin immediately to avoid shortages.\nIf the forecasted quantity drops below the minimum on the forecasted date, replenishment must\nbegin immediately to avoid shortages.\n- If the quantity drops below the minimum after the forecasted date, replenishment can wait.\nIf the quantity drops below the minimum after the forecasted date, replenishment can wait.\nThe To Order quantity is the total demand on the forecasted date.\nBy timing purchase orders based on the combined lead times, Odoo optimizes stock levels, keeping\ninventory minimal while ensuring future requirements are ordered at the last possible\nmomentâstrategic procrastination without the stress!\n\n### Common confusion about forecasted quantities\n\nSOs due after the Forecasted Date are not accounted for in the Forecast quantities of the reordering rule.\nThey are, however, accounted for on the forecasted report that is opened by clicking the (graph) icon on the replenishment report, as this one represents\nthe long-term forecasted quantity .\nContinuing the above example, when the sales orderâs deadline is adjusted to December 4th, the Forecast and To Order quantities are zero.\nOpening the Forecasted Report shows the Forecasted units is 5.00 .\n`5.00`\n\n## Visibility days\n\nVisibility days enable the ability to determine if additional quantities should be added to the\nplanned replenishment. Odoo checks if forecasted stock on the forecasted date will drop below the\nminimum in the reordering rule. Only if it is time to reorder, visibility days check additional\nfuture demand by the specified number of days.\nThis feature helps consolidate orders by grouping immediate and near-future needs, reducing\ntransport costs and enabling supplier discounts for larger orders.\nTo set visibility days to incorporate orders for a specified number of days in the future, navigate\nto Inventory app ⣠Operations ⣠Replenishment , or by clicking the Reordering\nRules smart button from the product form.\nNext, enable the Visibility Days field by clicking the (adjust settings) icon to the far right and\nchoosing the feature from the drop-down menu. Then, enter the desired visibility days.\nThe forecasted date is never pushed forward or extended; Odoo only checks the extra visibility\ndays if the stock falls below the minimum threshold on the forecasted date.\n\n### Example where visibility days is triggered\n\nA product shipped from Asia has a combined vendor lead time of 30 days and a shipping cost of $100\n(including landed costs and\ntariffs).\n- November 4: Current date. The forecasted date is December 4 (30 days later).\nNovember 4: Current date. The forecasted date is December 4 (30 days later).\n- SO 1: Requires the product by Dec 4. Odoo places the order today, costing $100.\nSO 1: Requires the product by Dec 4. Odoo places the order today, costing $100.\n- SO 2: Requires the product by Dec 19. Normally, Odoo would order on Nov 19, costing an\nadditional $100.\nSO 2: Requires the product by Dec 19. Normally, Odoo would order on Nov 19, costing an\nadditional $100.\n- SO 3: Requires the product by Dec 25. Normally, Odoo would order on Nov 25, costing another\n$100.\nSO 3: Requires the product by Dec 25. Normally, Odoo would order on Nov 25, costing another\n$100.\nOrdering separately for these sales orders totals $300 in shipping costs.\nSetting Visibility Days to 20.0 allows Odoo to âlook aheadâ 20 days from December 4\n( SO 1âs forecasted date) to December 24.\n`20.0`\n- It groups SO 2âs order with SO 1, reducing shipping costs by consolidating orders.\nIt groups SO 2âs order with SO 1, reducing shipping costs by consolidating orders.\n- SO 3, which is due on Dec 25, is one day late and is not grouped with the other two orders.\nSO 3, which is due on Dec 25, is one day late and is not grouped with the other two orders.\n\n### Counterexample where visibility days is not triggered\n\nConsidering the example above, if SO 1 does not exist, then:\n- November 4 : Current date. The forecasted date is December 4 (30 days later).\nNovember 4 : Current date. The forecasted date is December 4 (30 days later).\n- November 5 : The forecasted date shifts to December 5.\nNovember 5 : The forecasted date shifts to December 5.\n- SO 2: Requires the product by December 19. Odoo will only trigger the order on November 19,\nmeaning the user will not see a replenishment notification until then.\nSO 2: Requires the product by December 19. Odoo will only trigger the order on November 19,\nmeaning the user will not see a replenishment notification until then.\nThis shows that visibility days complement just-in-time logic by optimizing it to balance\nreplenishment costs more effectively.\n\n## Horizon days\n\nHorizon days determine how many days ahead Odoo checks if the forecasted quantity will drop below\nreordering ruleâs minimum. The feature is meant to help users plan replenishment in advance, by\nincreasing the forecasted date .\nSince horizon days are only meant to be used with manual reordering rules, find details about the\nfeature in the Replenishment report article .", "headings": ["Reordering rules setup", "Product type configuration", "Replenishment method", "Create new reordering rules", "0/0/1 reordering rule", "Trigger", "Auto", "Manual", "Route", "Advanced uses", "Just-in-time logic", "Forecasted date and To Order quantity", "Common confusion about forecasted quantities", "Visibility days", "Example where visibility days is triggered", "Counterexample where visibility days is not triggered", "Horizon days"], "doc_id": "718315b14b7a611d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/report.html", "title": "Replenishment report", "module": "inventory", "section": "Replenishment report", "text": "# Replenishment report\n\nThe replenishment report is an interactive dashboard that uses manual reordering rules , lead times, and upcoming demands to forecast quantities of products that need\nrestocking.\nReordering rules used on this dashboard are normal reordering rules, but the user benefits from a\nmonitoring menu with extra options to manage suggestions for replenishment.\nThis enables users to anticipate future needs, keep less products on hand without the risk of\nrunning out, plan and consolidate orders.\n\n## Navigate the replenishment report\n\nTo access the replenishment report, go to Inventory app ⣠Operations â£\nReplenishment.\nAutomatic reordering rules are available on this menu as well, but are hidden by default.\nThe fields and features unique to the replenishment dashboard are displayed below. For definitions\nof the other fields, go to the Create reordering rules section .\nBy default, the quantity in the To Order field is the quantity required to reach the set Max Quantity . However, the To Order quantity can be adjusted by clicking on\nthe field and changing the value. To replenish a product manually, click Order .\nClick Snooze to temporarily deactivate the reordering rule for\nthe set period, hiding the entry from the replenishment dashboard, when it is supposed to appear.\nDefining a Vendor allows filtering or grouping demands by the vendor. This simplifies\nthe process of identifying products to order and can reduce shipment costs. Click the (adjust settings) icon and select Vendor from\nthe drop-down list to view the field on the report.\n\n### Order to max\n\nIf a reordering rule does not forecast the product to arrive below the minimum, the replenishment\ncannot be triggered, because it is seen as unnecessary . However, there can be instances where a\nproduct needs to be replenished even if it is not deemed necessary , such as when an order needs to\nbe maximized to obtain better discounts, or to save on delivery costs.\nFirst, select one or more products by ticking the appropriate checkbox. Then, click the Replenish button and select Order to Max . Doing so creates a request for\nquotation (RFQ) for the first possible replenishment date for each product for the maximum specified\nin the reordering rule.\n\n### Horizon days\n\nHorizon days determine how many days ahead Odoo checks if the forecasted quantity will drop below\nreordering ruleâs minimum. The feature is meant to help users plan replenishment in advance, by\nincreasing the forecasted date on the replenishment report .\nSetting horizon days to 7 ensures all manual reordering rules set to trigger within the next\nseven days appear on the replenishment report, allowing users to review and decide which products\nto order in advance.\n`7`\nTo set horizon days, go to Inventory app ⣠Operations ⣠Replenishment , and\nclick Manual in the left sidebar. In the\nmenu that appears, set the number of Horizon days.\nBoth horizon days and visibility days allow\nOdoo to anticipate future demand, but they work differently:\n- Visibility days : only checks future demand if a replenishment would have been triggered today.\nVisibility days : only checks future demand if a replenishment would have been triggered today.\n- Horizon days : looks ahead a specified number of days and triggers reordering rules as soon as\nthe forecasted quantity falls below the minimum within that window â even if no replenishment is\nneeded today.\nHorizon days : looks ahead a specified number of days and triggers reordering rules as soon as\nthe forecasted quantity falls below the minimum within that window â even if no replenishment is\nneeded today.\n- Current date: Feb 18\n- On hand quantity: 10\n- Reordering rule: Min: 5, Max 10\nReordering rule: Min: 5, Max 10\n- Vendor lead time: 1 day\nVendor lead time: 1 day\n8 units are needed for an SO on Feb 23. That means, on Feb 23, there will only be 2 units in\nstock.\n- The demand appears on the replenishment report only on Feb 22, one day before the delivery\ndate.\nThe demand appears on the replenishment report only on Feb 22, one day before the delivery\ndate.\n- Forecasted date: Feb 19 (current date + vendor lead time)\nForecasted date: Feb 19 (current date + vendor lead time)\nWith horizon days (4 or more days)\n- Odoo considers demand up to Feb 23 as relevant today (Feb 18)\nOdoo considers demand up to Feb 23 as relevant today (Feb 18)\n- The need for 8 more units appears immediately in the replenishment report\nThe need for 8 more units appears immediately in the replenishment report\n- Forecasted date: Feb 23 (current date + vendor lead time + horizon days)\nForecasted date: Feb 23 (current date + vendor lead time + horizon days)\n\n## Replenishment information\n\nIn each line of the replenishment report, clicking the (info) icon opens the Replenishment Information pop-up window, which displays the lead times and forecasted date .\nFor detailed information on how to use this feature for replenishment, go to the Just in time\nlogic section.\n\n### Select a warehouse\n\nIf a warehouseâs replenishment method is resupply from another warehouse , check for available product quantities in other warehouses by opening the Replenishment Information pop-up window. Warehouses that can replenish the stock are\nlisted under the Warehouses tab, and the Available Quantity shows the\non-hand stock in each warehouse.\nAfter selecting a sourcing warehouse, click Select Route Order button is\nclicked, the reordering rule will revert to its preferred route (Buy or Manufacture).\nTemporary Reordering Rules", "headings": ["Navigate the replenishment report", "Order to max", "Horizon days", "Replenishment information", "Select a warehouse"], "doc_id": "ff1d8ac6abd2c739"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses.html", "title": "Inter-warehouse replenishment", "module": "inventory", "section": "Inter-warehouse replenishment", "text": "# Inter-warehouse replenishment\n\nWhen a business operates multiple locations, such as warehouses, retail shops, or manufacturing\nfacilities, resupplying stock from a central warehouse is sometimes necessary. Odoo uses a Route configuration that enables locations to replenish from a central distribution center, automatically\ngenerating inter-warehouse transfers . Odoo Inventory manages these transfers to keep\nstores in stock.\nThis guide explains how to conduct inter-warehouse transfers using two replenishment strategies:\n- Make to order (MTO)\n- Reordering rule\nDifference between MTO and reordering rules\n\n## Configuration\n\nThe initial configuration for both replenishment strategies is the same. First go to Inventory app ⣠Configuration ⣠Settings . In the Warehouse section,\nactivate Storage Locations . Then, click Save to apply the setting.\n\n### Warehouses\n\nConfigure the settings for the central warehouse and connecting storage locations by going to Inventory app ⣠Configuration ⣠Warehouses .\nEach central warehouse and other locations must have its own warehouse. For example, each shop\nis considered a local warehouse.\nSelect an existing warehouse, or create a new one to be resupplied from the central warehouse, by\nclicking New . Then, give the warehouse a name and a Short Name , which will\nappear on that warehouseâs transfers.\nIn the Warehouse Configuration tab, locate the Resupply From field. Check\nthe box next to the central warehouseâs name. If the warehouse can be resupplied by more than one\nwarehouse, make sure to check those warehousesâ boxes too. Now, Odoo knows which warehouses can\nresupply this warehouse.\nThe central warehouse that will supply the shops is called Central warehouse . The Resupply From field is set to this warehouse on the shopâs warehouse configuration\npage.\n`Centralwarehouse`\n\n### Set route on a product\n\nProducts must also be configured properly in order for them to be transferred between warehouses.\nGo to Inventory app ⣠Products ⣠Products and select the desired product.\nIn the Inventory tab, the new route appears as X: Supply Product from Y in\nthe Routes section, where âXâ is the storeâs warehouse that receives products, and âYâ\nis the warehouse that sends products.\nTick the X: Supply Product from Y checkbox, which is intended to be used with the MTO route or a reordering rule to replenish stock by moving the product from one warehouse to another.\nProceed to the dedicated sections below to continue the process.\n\n#### MTO\n\nTo replenish products using the make-to-order method, go to the product form and ensure the MTO route is unarchived , so it appears in the Routes section of the Inventory tab.\nWith the resupply and MTO routes ticked, jump to the section titled: Replenish from another\nwarehouse .\nThe product, sold at the warehouse, Store , is resupplied from the central warehouse, named YourCompany . To replenish the product using MTO , the following routes are selected:\n`Store`\n`YourCompany`\n- Store: Supply Product from YourCompany\nStore: Supply Product from YourCompany\n- Replenish on Order (MTO)\nReplenish on Order (MTO)\n\n#### Reordering rule\n\nTo replenish products using reordering rules, first ensure the X: Supply Product from Y route is selected in the Inventory tab of the product form.\nThen, create a reordering rule to automate replenishment by clicking the Reordering\nRules smart button.\n- Location : the stock location of the retail store. For example, SHOP/Stock .\nLocation : the stock location of the retail store. For example, SHOP/Stock .\n`SHOP/Stock`\n- Route : X: Supply Product from Y .\nRoute : X: Supply Product from Y .\n- Min Quantity and Max Quantity to trigger automatic stock transfers when\ninventory falls below the set threshold.\nMin Quantity and Max Quantity to trigger automatic stock transfers when\ninventory falls below the set threshold.\nA 0/0 reordering rule to replenish the shopâs\nwarehouse is created, with the Location set to SHOP/Stock , and the Route set to Store: Resupply from YourCompany .\n`SHOP/Stock`\n\n## Replenish one warehouse from another\n\nAfter completing the setup, trigger replenishment using one of several methods, such as:\n- Navigate to the product form of the product that is resupplied from another warehouse. Click the Replenish button on the top-left of the product page. In the pop-up window,\nset the warehouse to the retail shop, (e.g. Store ), and click Confirm .\nNavigate to the product form of the product that is resupplied from another warehouse.\nClick the Replenish button on the top-left of the product page. In the pop-up window,\nset the warehouse to the retail shop, (e.g. Store ), and click Confirm .\n`Store`\n- Create a quotation, and in the Other Info tab, set the Warehouse to the\nretail shop (e.g. Store ), when selling the product makes the on-hand quantity of the product go\nbelow the minimum set on the reordering rule.\nCreate a quotation, and in the Other Info tab, set the Warehouse to the\nretail shop (e.g. Store ), when selling the product makes the on-hand quantity of the product go\nbelow the minimum set on the reordering rule.\n`Store`\nOnce triggered, Odoo creates two transfers: One is a delivery order from the central, supplying\nwarehouse, which contains all the necessary products to the store, and the second is a receipt at\nthe shop, from the main warehouse.\nWhile in transit, the product is located at Physical Locations/Inter-warehouse transit .\n`PhysicalLocations/Inter-warehousetransit`\nA sales order for the product at the shop is created. To replenish the product at the shop and\nship it from there, Odoo generates a delivery order from the central warehouseâs stock, WH/Stock to the shopâs warehouse SHOP/Stock . While the products are traveling between\nwarehouses, they are in Physical Locations/Inter-warehouse transit .\n`WH/Stock`\n`SHOP/Stock`\n`PhysicalLocations/Inter-warehousetransit`\nThe final delivery order is from the shop to the customerâs delivery address, and is not\npertinent to the workflow in this guide.", "headings": ["Configuration", "Warehouses", "Set route on a product", "Replenish one warehouse from another"], "doc_id": "98e51743447a9fcb"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/warehouses_storage/reporting/aging.html", "title": "Stock valuation dashboard", "module": "inventory", "section": "Stock valuation dashboard", "text": "# Stock valuation dashboard\n\nWhen a company has physical assets, such as inventory, they often want to know approximately how\nmuch has been spent on these goods, or how much they are worth at the moment. This process of\nassigning a monetary value to account for inventory is known as stock valuation .\nThis value is often reported for accounting purposes. For instance, an insurance company may want to\nknow the value of goods stored in a warehouse, in the event of a flood or fire.\nStock valuation typically utilizes one of two accounting systems:\n- Perpetual : The inventory is constantly (perpetually) being updated, and the value is\nconstantly changing.\nPerpetual : The inventory is constantly (perpetually) being updated, and the value is\nconstantly changing.\n- Periodic : The inventory value is checked on an occasional (periodic) basis, and the value is\nset at this occasional time.\nPeriodic : The inventory value is checked on an occasional (periodic) basis, and the value is\nset at this occasional time.\nUsing tracked inventory in Odoo\nnecessitates a perpetual inventory accounting system because of the need to know when and where\ninventory exists, and how much of it is available or forecasted. There are a few common stock\nvaluation methods used in Odoo: standard price , average cost (AVCO), and first in, first out (FIFO) accounting. It is important to know that the\nvaluation method chosen for a product impacts the calculation of several fields in the stock\nvaluation reports.\n\n## Open the dashboard\n\nOdooâs Stock Valuation dashboard displays the financial value of all tracked inventory, according\nto each productâs stock valuation method. This report can provide insights into potential issues in\nthe supply chain, such as sunken purchase costs or delays in profitability. To access the dashboard,\ngo to Inventory app ⣠Reporting ⣠Valuation .\nThe Reporting menu in Inventory is only accessible to users with admin access .\nThis dashboard has three different views, or inventory reports â list view (i.e. the default stock valuation report), pivot view (i.e. the stock aging report), and graph view . Each view can be customized with\ndifferent fields to break down inventory valuation by product, operation type, date, or company.\nAll three views can be filtered by various fields. To apply filters, click into the search bar at\nthe top of the report, or click the drop-down arrow next to it. For example, selecting the filter Has Remaining Qty will show only products that are currently in stock.\n\n## List view: stock valuation\n\nBy default, the Stock Valuation dashboard displays in list view , represented by the (list) icon. This report shows a detailed record of stock movements\nand their valuations.\n\n### Configure\n\nThe following columns are displayed by default:\n- Date : the date and time when the stock move was created. The valuation report is sorted by this field by default, emphasizing the importance\nof time when valuing inventory. To sort the report by a different column, simply click on the\ncolumn title.\nDate : the date and time when the stock move was created. The valuation report is sorted by this field by default, emphasizing the importance\nof time when valuing inventory. To sort the report by a different column, simply click on the\ncolumn title.\n- Reference : the reference document associated with this stock move (e.g., a warehouse\nreceipt, a delivery order, or a manual inventory adjustment).\nReference : the reference document associated with this stock move (e.g., a warehouse\nreceipt, a delivery order, or a manual inventory adjustment).\n- Product : the product that is being moved and valued.\nProduct : the product that is being moved and valued.\n- Quantity : the number of units by which this productâs stock has increased or\ndecreased in this particular stock move.\nQuantity : the number of units by which this productâs stock has increased or\ndecreased in this particular stock move.\n- Total Value : the value of the productâs stock in this particular stock move,\ncalculated by multiplying the Quantity and Unit Value .\nTotal Value : the value of the productâs stock in this particular stock move,\ncalculated by multiplying the Quantity and Unit Value .\nIf a Reference document includes several goods, there will be a separate line item\ngenerated on the report for each good.\nThere are additional fields that can be added to this view to provide more insight into the stockâs\nvaluation. To add fields, click the (adjust) icon, and select\nthe desired fields:\n- Lot/Serial Number : the uniquely identifying lot or serial number for this product.\nLot/Serial Number : the uniquely identifying lot or serial number for this product.\n- Company : for businesses that operate with multiple companies, this field displays the\ncompany by which this stock move took place.\nCompany : for businesses that operate with multiple companies, this field displays the\ncompany by which this stock move took place.\n- Remaining Quantity : the number of units remaining for this valuation of the product,\nafter demand has been accounted for (even from other stock moves). This field can be especially\nhelpful for FIFO and AVCO accounting, as it\nconveys which units of stock came into a warehouse first and the value of said stock.\nRemaining Quantity : the number of units remaining for this valuation of the product,\nafter demand has been accounted for (even from other stock moves). This field can be especially\nhelpful for FIFO and AVCO accounting, as it\nconveys which units of stock came into a warehouse first and the value of said stock.\n- Unit Value : the cost of one unit of the product for the company ( not the price to\nconsumers).\nUnit Value : the cost of one unit of the product for the company ( not the price to\nconsumers).\n- Description : a description of the reason for this stock valuation (typically, a stock\nmove has occurred). By default, this field is set as the concatenation of the Reference and Product fields. However, the field may also display other\nimportant messages for this line item, such as a note stating that the line item is an adjustment\ndue to a change in the productâs inventory valuation method.\nDescription : a description of the reason for this stock valuation (typically, a stock\nmove has occurred). By default, this field is set as the concatenation of the Reference and Product fields. However, the field may also display other\nimportant messages for this line item, such as a note stating that the line item is an adjustment\ndue to a change in the productâs inventory valuation method.\n- Remaining Value : the value of this productâs current stock levels for this particular\nstock move, after demand has been accounted for. Along with Remaining Quantity , this\nfield can be especially helpful for FIFO and AVCO accounting, as they convey which stock came into a warehouse first and\nthe value of said stock.\nRemaining Value : the value of this productâs current stock levels for this particular\nstock move, after demand has been accounted for. Along with Remaining Quantity , this\nfield can be especially helpful for FIFO and AVCO accounting, as they convey which stock came into a warehouse first and\nthe value of said stock.\nSome of these settings may not appear unless first enabled in Settings application.\n\n### Stock valuation layers (SVLs)\n\nEach line item in the Stock Valuation report represents a record in Odooâs system known\nas a stock valuation layer (SVL) . SVLs are generated when products\nmove in a way that impacts their stock valuation. Specifically, the stock moves that generate SVLs are warehouse receipts, deliveries, dropshipping orders, and\ndropshipping returns. These stock moves must first be validated (by clicking the Validate button) for the SVL to be created.\nIf a productâs inventory valuation method changes on the product form, new line items are generated\non the Stock Valuation report to reflect the resulting SVLs .\nFor example, if the valuation method changes from standard price to either AVCO or FIFO accounting, revaluation entries will be\nautomatically posted to reflect the change in pricing for goods that remain in stock. One entry will\nbe negative to âremoveâ the old pricing, and the second entry will be positive to record the new\npricing. These entries are connected to journal entries in Odooâs Accounting app.\nBelow is an example of what the Stock Valuation table shows when a few stock moves have\noccurred for a product using standard price accounting.\nConversely, the following image depicts what the Stock Valuation Report table might look like\nafter a product has switched from standard price to FIFO accounting.\nThe Remaining Value and Remaining Quantity fields are derived from what\noccurs at the SVL level in Odoo and, as such, are better understood\nwith an example.\nFrankieâs Consignment Shop buys sweaters at the cost, or Unit Value , of 5.00 dollars. For the first time, Frankieâs purchases and receives a Quantity of 100.00 sweaters in one stock move, then re-sells and delivers -10.00 sweaters in a second stock move.\n`5.00`\n`100.00`\n`-10.00`\nIn the first stock move line item, the Remaining Quantity will change from 100.00 to 90.00 , once the second stock move is recorded. This change reflects that, although 100\nsweaters were originally purchased, only 90 of those sweaters remain in stock and should be\ncounted in the valuation. Similarly, the Remaining Value will drop from $500.00 to $450.00 . The Total Value will remain at $500.00 , regardless of subsequent\ntransactions.\n`100.00`\n`90.00`\n`$500.00`\n`$450.00`\n`$500.00`\nOn the other hand, the Remaining Quantity of the second stock move line item will be\nrecorded and remain at 0.00 because the quantity of -10.00 was sold. In the system, because\nthe SVL was a sale, there is no stock left that needs to be valued\nfrom that transaction.\n`0.00`\n`-10.00`\n\n### Change the valuation date\n\nTo see the valuation of stock moves at a specific date and time, click the Valuation At\nDate button, located in the top-left corner of the Stock Valuation page. The report\nwill show the Quantity and Total Value of each stock move.\nThe Remaining Quantity and Remaining Value of the stock moves will not be point-in-time for any dates chosen in the past. The stock moves shown when selecting a past\ndate will still display the current on-hand quantity and value of the products.\nA business has 100 sofas in stock on January 1st and sells 20 of those sofas on February 1st. The Remaining Quantity of the SVL will drop from 100.00 to 80.00 on February 1st. If no other stock moves take place, and on February 1st, the Valuation at Date is selected as January 1st, the Remaining Quantity will still show as 80.00 .\n`100.00`\n`80.00`\n`80.00`\n\n## Pivot view: stock aging\n\nFrom the Stock Valuation dashboard, access pivot view by clicking the (pivot) icon. This view is essentially a stock aging report , and\nit shows the on-hand quantity and value of inventory by purchase date, which can help monitor\nproducts with expiration dates.\n\n### Configure\n\nBy default, the pivot view shows the value of all product categories by day and month . Clicking\nthe (plus) icon in each column or row will reveal a drop-down\nlist of options to create a more granular breakdown of the inventory valuation. The drop-down\noptions include: Product , Lot/Serial Number , Product Category , Date , Company , or Add Custom Group Clicking the (minus) icon collapses the field back to an empty state.\nIn the table, the Remaining Qty column displays the number of on-hand items, and Remaining Value displays the total cost of purchasing these items.\n\n## Graph view\n\nThe stock value can be depicted graphically by clicking the (graph) icon. By default, the graph is displayed in line chart\nview and filtered to show the cumulative total of all inventory value over time in Odoo.\nAt the top of the report, a bar chart or pie chart view\ncan be selected instead.\nOdoo reporting essentials", "headings": ["Open the dashboard", "List view: stock valuation", "Configure", "Stock valuation layers (SVLs)", "Change the valuation date", "Pivot view: stock aging", "Configure", "Graph view"], "doc_id": "c540d748e0712a65"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/warehouses_storage/reporting/forecast.html", "title": "Forecasted report", "module": "inventory", "section": "Forecasted report", "text": "# Forecasted report\n\nThe Inventory forecasted report provides a real-time view of projected stock levels, helping\nbusinesses manage their inventory efficiently. This report is beneficial for planning and decision\nmaking, ensuring stock availability for upcoming sales, manufacturing, and replenishment activities.\nThe forecast report is only available on products where inventory is being tracked, commonly\nreferred to as a storable product .\n\n## Navigating the forecast report\n\nThe forecast report can be accessed via the Inventory , Purchase , Manufacturing , and Sales apps.\nTo access the report, click the Forecasted smart button on a\nproduct form. Alternatively, the report can be accessed from a sales order (SO) or purchase order\n(PO) by clicking on the (Graph) icon next to the product, then\nselecting View Forecast .\nThe forecasted report consists of a graph and a table. The graph visually represents stock movements\nover time. The following information is displayed:\n- On Hand : current stock physically available in the warehouse.\nOn Hand : current stock physically available in the warehouse.\n- Incoming : quantities expected from confirmed purchase orders or manufacturing orders.\nIncoming : quantities expected from confirmed purchase orders or manufacturing orders.\n- Outgoing : quantities reserved for sales orders or other outgoing operations.\nOutgoing : quantities reserved for sales orders or other outgoing operations.\n- Forecasted : projected stock levels based on confirmed and planned operations.\nForecasted : projected stock levels based on confirmed and planned operations.\nThe table provides detailed metrics regarding operations, including:\n- Replenishment : Shows reserved quantities, especially useful for multi-step operations.\nReplenishment : Shows reserved quantities, especially useful for multi-step operations.\n- Receipt : The date of receipt for the items.\nReceipt : The date of receipt for the items.\n- Units : The number of units involved in each operation.\nUnits : The number of units involved in each operation.\n- Used by : The operation the stock is allocated for.\nUsed by : The operation the stock is allocated for.\n- Delivery : The scheduled or expected date of stock movement.\nDelivery : The scheduled or expected date of stock movement.\n- Forecasted Inventory : The forecasted stock levels.\nForecasted Inventory : The forecasted stock levels.\n- Forecasted with Pending : The updated stock levels with the pending stock movements\nconsidered.\nForecasted with Pending : The updated stock levels with the pending stock movements\nconsidered.\n\n### Reserve and unreserve products\n\nUsers can reserve or unreserve products directly from the forecasted report, ensuring stock\nallocation aligns with operational needs.\n\n### Replenish products\n\nClick the Replenish button at the top of the report to open the Product\nReplenish pop-up. From here, products can be replenished through purchase orders from vendors, or\nmanufactured. Select the Quantity , Preferred Route and Vendor ,\nbefore clicking Confirm .\n\n### Manufacturing forecast\n\nTo view the availability of manufactured products, click the Manufacturing Forecast button. This displays the forecasted stock levels for raw materials, showing how much are expected\nto be consumed for upcoming manufacturing orders.\nThe manufacturing forecast identifies component shortages before they can impact manufacturing\ntimelines, and helps to align manufacturing activities with sales demands.\n\n### Update quantity\n\nTo manually update the quantity of a product, click Update Quantity . This opens the Change Product Quantity pop-up. Confirm the correct product variant is selected in the Product field, then enter the appropriate value in the New Quantity on Hand field. Click Apply when finished. The report then updates to reflect the new product\nquantity.\n\n## Multi-step reservation\n\nReserved quantities for multi-step incoming and outgoing shipments are indicated on in the Replenishment column on the table of the report.\nStock in Transit refers to products that have been received, but are in transit to their\ninput or quality control locations. Free Stock in Transit refers to available products\nreceived in the input location, but not yet placed in stock.\n\n## Operations affecting the forecast report\n\nThe forecast report is influenced by various operations, each impacting stock levels differently.\nScheduled delivery dates, planned manufacturing dates, and expected arrival dates all affect the\nforecast of inventory.\nRequests for Quotation (RFQs) do not immediately impact the forecast report, as the products are not\nconfirmed for replenishment. POs , however, do affect the report as the products are expected to\narrive after the PO has been confirmed.\nConfirmed SOs decrease the forecasted stock, adjusting the report based on the scheduled delivery\ndate. Confirmed manufacturing orders (MOs) affect the forecasted stock for both raw materials and\nfinished goods.\n\n## Use cases\n\n### Negative quantity\n\nA negative forecasted quantity indicates that the projected demand exceeds the available and\nincoming stock at a given point in time. This could occur because the SOs or MOs require more\nstock than is currently available or expected, or because of delays in the shipping or manufacturing\nprocess.\nWhatever the cause, when negative numbers are displayed on the forecast report, it serves as an\nearly warning, allowing business to take preventative action. This can include:\n- Prioritizing specific sales or production orders.\nPrioritizing specific sales or production orders.\n- Adjusting procurement strategies to expedite purchase orders.\nAdjusting procurement strategies to expedite purchase orders.\n- Manage customer expectations by proactively communicating the possibility for delays.\nManage customer expectations by proactively communicating the possibility for delays.\n\n### Split orders\n\nIn the example below, there is not currently enough stock of a product, Cabinet with Doors to\nfulfill the multiple sales orders. The current stock has been reserved for a shipment, WH/OUT/00011 , and the remainder has been split between the two orders. The remaining stock is\nexpected with WH/IN/00004 . Once received, they are the separated out to cover the remaining\norders.\n`CabinetwithDoors`\n`WH/OUT/00011`\n`WH/IN/00004`\n\n### Late receipt\n\nThe replenishment table can be used to determine whether an incoming shipment arrives in time to\nfulfill an order. For example, a SO is displayed with a Delivery Date for today for\nfive Cable Management Boxes . The current on hand quantity is zero. A PO has been confirmed, with\nthe expected arrival three days from today.\n`CableManagementBoxes`\nThe forecasted quantity for today shows -5 , because the confirmed demand is five, but the current\nstock on hand is zero. Since the Receipt date is after the Delivery Date ,\nthe shipment is late.\n`-5`\nThis can be an indication to either expedite the current shipment, if possible, or reschedule the\ndelivery date for the SO .", "headings": ["Navigating the forecast report", "Reserve and unreserve products", "Replenish products", "Manufacturing forecast", "Update quantity", "Multi-step reservation", "Operations affecting the forecast report", "Use cases", "Negative quantity", "Split orders", "Late receipt"], "doc_id": "51817d87c36a4960"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/warehouses_storage/reporting/locations.html", "title": "Locations dashboard", "module": "inventory", "section": "Locations dashboard", "text": "# Locations dashboard\n\nThe Locations dashboard in the Inventory application provides an overview of on-hand storage\nlocations for company products. Use this report to see where stock is stored, identify misplaced items , or view past inventory to see product\nlocations on specific dates.\nTo access the locations report, the Storage Locations feature must be enabled. To do that, go to Inventory app ⣠Configuration ⣠Settings . In the Warehouse section,\ntick the checkbox for Storage Locations , and click Save . Then, access the\nlocations dashboard by navigating to Inventory app ⣠Reporting ⣠Locations .\nThe Reporting menu in Inventory is only accessible to users with admin access .\n\n## Navigate the locations dashboard\n\nBy default, the Locations dashboard lists all on-hand products in stock (in the Product column), along with the following information:\n- Location : current storage location. If a product is stored at Shelf 1 and Shelf 2 ,\nthe product is listed twice, showing quantities at each location.\nLocation : current storage location. If a product is stored at Shelf 1 and Shelf 2 ,\nthe product is listed twice, showing quantities at each location.\n`Shelf1`\n`Shelf2`\n- Package : the package that the product is stored in, if any.\nPackage : the package that the product is stored in, if any.\n- Lot/Serial Number : if the product has a lot or serial number, it is specified here.\nLot/Serial Number : if the product has a lot or serial number, it is specified here.\n- On Hand Quantity : current quantity of products. Click the (edit) icon to modify the on-hand quantity .\nOn Hand Quantity : current quantity of products. Click the (edit) icon to modify the on-hand quantity .\n- Reserved Quantity : on-hand quantity reserved for operations, such as pickings,\ndelivery orders, or manufacturings.\nReserved Quantity : on-hand quantity reserved for operations, such as pickings,\ndelivery orders, or manufacturings.\n- Unit : the unit of measure of the product.\nUnit : the unit of measure of the product.\nClick the buttons to the right of each row item to access additional information:\n- History : access the stock move history of the product, displaying\ninformation about the quantity and description of why the product was moved from one location to\nanother. Tip View what the product is reserved for, by clicking the History button on the far-right of the product line. On the Moves History page, remove the Done filter\nfrom the search bar to reveal filter options, and select the To Do filter.\nHistory : access the stock move history of the product, displaying\ninformation about the quantity and description of why the product was moved from one location to\nanother.\nView what the product is reserved for, by clicking the History button on the far-right of the product line.\nOn the Moves History page, remove the Done filter\nfrom the search bar to reveal filter options, and select the To Do filter.\n- Replenishment : access the reordering rules page to replenish products at the specific location.\nReplenishment : access the reordering rules page to replenish products at the specific location.\nIn the upper-left corner of the page, click the New button to make an inventory\nadjustment to record quantities of a certain product at a\nspecific Location .\nTo view products, quantities, and their locations for a specified date, click the Inventory At Date button (also located in the upper-left corner of the page). Select a\ndate and time in the Inventory at Date field, then click Confirm .\n\n### View empty locations\n\nTo view which locations are currently empty, navigate to Inventory ⣠Configuration\n⣠Locations .\nEmpty locations are designated by the checkbox in the Is Empty column. To show only\nempty locations, click into the search bar and select the Empty Locations filter.\n\n## Generate reports\n\nAfter learning how to navigate the locations dashboard , it can be used to create and share different\nreports.\nA few common reports that can be created using the Locations dashboard are detailed\nbelow.\n\n### Dead stock report\n\nTo get list of expired items, also referred to as dead stock , follow these steps:\n- Go to Inventory app ⣠Reporting ⣠Locations .\nGo to Inventory app ⣠Reporting ⣠Locations .\n- Then, click into the search bar to reveal a drop-down list of Filters , Group By , and Favorite options.\nThen, click into the search bar to reveal a drop-down list of Filters , Group By , and Favorite options.\n- Enable the Internal Locations and Expiration Alerts option under the Filters section.\nEnable the Internal Locations and Expiration Alerts option under the Filters section.\nThe report now displays a list of expired products.\nThis report can also be generated from the Lot and Serials Numbers page, accessed by going to Inventory app ⣠Products ⣠Lots/Serial Numbers .\n\n### Stranded inventory report\n\nBusinesses using multi-step flows in the Inventory or Manufacturing apps, may have stranded items, which are products not in their proper storage locations, due to human error. Use\nthis report to periodically check transfer locations (e.g. WH/Input , WH/Pre-Processing ) to\nensure items are moved to their intended storage locations, and accurately recorded in the database.\nTo get a list of items that might be sitting idly in storage, follow these steps:\n- Go to Inventory app ⣠Reporting ⣠Locations .\nGo to Inventory app ⣠Reporting ⣠Locations .\n- In the search bar, begin typing the name of the location where products are intended to be moved\nto, such as WH/Input , or WH/Packing .\nIn the search bar, begin typing the name of the location where products are intended to be moved\nto, such as WH/Input , or WH/Packing .\n`WH/Input`\n`WH/Packing`\n- Select the Search Location for: [location name] option from the resulting drop-down\nmenu that appears beneath the search bar.\nSelect the Search Location for: [location name] option from the resulting drop-down\nmenu that appears beneath the search bar.\nThe report now displays a list of products at the transit location.\nSearching Input in Location shows a list of products at a WH/Input location.\n`Input`\nThe list shows 500 quantities of Chicken , which is alarming if not refrigerated soon after\nreception. The stranded inventory report helps identify items that have been idling in\nnon-storage locations.\n`500`\n`Chicken`\n\n### Inventory discrepancy report\n\nTo generate a report of items that have been moved since the last inventory audit , follow these steps:\n- Go to Inventory app ⣠Reporting ⣠Locations .\nGo to Inventory app ⣠Reporting ⣠Locations .\n- Then, click into the search bar to reveal a drop-down list of Filters , Group By , and Favorite options.\nThen, click into the search bar to reveal a drop-down list of Filters , Group By , and Favorite options.\n- Enable the Internal Locations and Conflicts option from the Filters section.\nEnable the Internal Locations and Conflicts option from the Filters section.\n- The report now displays items whose quantities have changed since the last cycle count.\nThe report now displays items whose quantities have changed since the last cycle count.\n- Click the History button to view inventory transfers, including\nreceipts and deliveries, that have occurred since the inventory adjustment.\nClick the History button to view inventory transfers, including\nreceipts and deliveries, that have occurred since the inventory adjustment.", "headings": ["Navigate the locations dashboard", "View empty locations", "Generate reports", "Dead stock report", "Stranded inventory report", "Inventory discrepancy report"], "doc_id": "ace8e4e0e55cdd76"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/warehouses_storage/reporting/moves_history.html", "title": "Moves history dashboard", "module": "inventory", "section": "Moves history dashboard", "text": "# Moves history dashboard\n\nThe Moves History report in Odoo Inventory provides a detailed record of product movements\n(containing past and current locations), lot numbers, and reasons for movement. Reports can be\ngenerated for any time frame, making this report essential for analyzing stock levels, monitoring\ninventory turnover, and identifying any discrepancies in inventory.\nThe reporting feature is only accessible to users with admin access .\nTo access the stock report, go to Inventory app ⣠Reporting ⣠Moves History .\n\n## Navigate the moves history report\n\nIn the report, the columns represent:\n- Date : calendar date and time of the stock move.\nDate : calendar date and time of the stock move.\n- Reference : description of the reason for the stock move or quantity change, such as a\nreceipt number (e.g. WH/IN/00012 ).\nReference : description of the reason for the stock move or quantity change, such as a\nreceipt number (e.g. WH/IN/00012 ).\n`WH/IN/00012`\n- Product : name of the product involved in the move.\nProduct : name of the product involved in the move.\n- Lot/Serial Number : specifies the lot or serial number of the tracked product being\nmoved.\nLot/Serial Number : specifies the lot or serial number of the tracked product being\nmoved.\n- From : source location of the moved product.\nFrom : source location of the moved product.\n- To : destination location of the moved product.\nTo : destination location of the moved product.\n- Quantity : number of products moved.\nQuantity : number of products moved.\n- Unit : unit of measure of the products moved.\nUnit : unit of measure of the products moved.\n- Status : indicates the move status, which can be Done , Available (ready for action), or Partially Available (insufficient\nquantities to complete the operation).\nStatus : indicates the move status, which can be Done , Available (ready for action), or Partially Available (insufficient\nquantities to complete the operation).\n\n### Search options\n\nUse the following search options to customize the Moves History report to display\nrelevant information\nThe Filters section allows users to search among pre-made and custom filters to\nfind specific stock records.\n- To Do : show stock move records that are in progress. This includes lines with a Status column value of Available or Partially Available .\nTo Do : show stock move records that are in progress. This includes lines with a Status column value of Available or Partially Available .\n- Done : completed stock moves, with a Status of Done .\nDone : completed stock moves, with a Status of Done .\n- Incoming : displays move records from vendor locations.\nIncoming : displays move records from vendor locations.\n- Outgoing : displays move records to customer locations, including customer\nreturns.\nOutgoing : displays move records to customer locations, including customer\nreturns.\n- Internal : displays move records from one internal location to another.\nInternal : displays move records from one internal location to another.\n- Manufacturing : shows records where products were produced from the virtual,\nproduction location .\nManufacturing : shows records where products were produced from the virtual,\nproduction location .\n- Date : select this drop-down menu to access various date filter options and view\nstock moves from a specific month, quarter, or year.\nDate : select this drop-down menu to access various date filter options and view\nstock moves from a specific month, quarter, or year.\n- Last 30 Days : show records that occurred in the last thirty days.\nLast 30 Days : show records that occurred in the last thirty days.\n- Last 3 Months : show records from the last three months.\nLast 3 Months : show records from the last three months.\nThe Group By section allows users to add pre-made and custom groupings to the\nsearch.\n- Product : group records by product.\nProduct : group records by product.\n- Status : group records by the three status types: Done , Available , and Partially Available .\nStatus : group records by the three status types: Done , Available , and Partially Available .\n- Date : group records by Year , Quarter , Month , Week , or Day .\nDate : group records by Year , Quarter , Month , Week , or Day .\n- Transfers : group records by operation number, e.g. WH/OUT/00012 , WH/MO/00211 .\nTransfers : group records by operation number, e.g. WH/OUT/00012 , WH/MO/00211 .\n`WH/OUT/00012`\n`WH/MO/00211`\n- Location : group records by source location (the From column in this\nreport).\nLocation : group records by source location (the From column in this\nreport).\n- Category : group records by product category. To configure these, go to Inventory app ⣠Configuration ⣠Products: Product Categories .\nCategory : group records by product category. To configure these, go to Inventory app ⣠Configuration ⣠Products: Product Categories .\n- Batch Transfer : group records by batch .\nBatch Transfer : group records by batch .\nTo save the current applied filters and groups, so the same information can be easily accessed\nafter closing this page, click Save current search .\nOptionally, tick the Default filter checkbox to make this current view the default\nfilter when opening the Moves History report. Or tick the Shared checkbox to make the search option available to other users.\nLastly, click the Save button.\nSearch, filter, and group records", "headings": ["Navigate the moves history report", "Search options"], "doc_id": "9fd775df7968955e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory/warehouses_storage/reporting/stock.html", "title": "Stock report", "module": "inventory", "section": "Stock report", "text": "# Stock report\n\nUse the stock report in Odoo Inventory for a detailed list of all stored products, including those\nreserved, purchased and in transit, as well as those delivered to customers.\nThe reporting feature is only accessible to users with admin access .\nTo access the stock report, go to Inventory app ⣠Reporting ⣠Stock .\n\n## Navigate the stock report\n\nOn the stock report, the left sidebar includes several groupings to narrow down what is being shown.\nThe default groupings are Warehouses , which filters products by specific warehouses,\nand Category , which shows products within a selected product category.\nThe Warehouse grouping is only available when there are multiple warehouses in the\ndatabase. Refer to the Warehouses documentation for more details.\nIn the report itself, the columns represent:\n- Product : name of the product.\nProduct : name of the product.\n- Unit Cost : average inventory valuation per unit, adjusted based on the cost to\npurchase and/or manufacture the product.\nUnit Cost : average inventory valuation per unit, adjusted based on the cost to\npurchase and/or manufacture the product.\n- Total Value : Total inventory valuation of the product, calculated by multiplying unit\ncost by on-hand quantity. See also Compute average cost inventory valuation per unit Inventory valuation methods\nTotal Value : Total inventory valuation of the product, calculated by multiplying unit\ncost by on-hand quantity.\n- Compute average cost inventory valuation per unit\nCompute average cost inventory valuation per unit\n- Inventory valuation methods\nInventory valuation methods\n- On Hand : current quantity of products. Click the (pencil) icon to modify the on-hand quantity .\nOn Hand : current quantity of products. Click the (pencil) icon to modify the on-hand quantity .\n- Free to Use : on-hand quantity that are not reserved for delivery or manufacturing\norders, and are available to sell or use.\nFree to Use : on-hand quantity that are not reserved for delivery or manufacturing\norders, and are available to sell or use.\n- Incoming : items expected to arrive at the warehouse. Number of products is based on\nquantities in confirmed purchase orders.\nIncoming : items expected to arrive at the warehouse. Number of products is based on\nquantities in confirmed purchase orders.\n- Outgoing : items expected to leave the warehouse or be consumed in manufacturing\norders. Number of products is based on quantities in confirmed sales or manufacturing orders.\nOutgoing : items expected to leave the warehouse or be consumed in manufacturing\norders. Number of products is based on quantities in confirmed sales or manufacturing orders.\nClick the buttons to the right of each row item to access additional information:\n- History : access the stock move history of the product, displaying information about\nthe quantity and description of why the product was moved from one location to another.\nHistory : access the stock move history of the product, displaying information about\nthe quantity and description of why the product was moved from one location to another.\n- Replenishment : access the reordering rules page for the product to create or manage methods of procuring\nthe product.\nReplenishment : access the reordering rules page for the product to create or manage methods of procuring\nthe product.\n- Locations : break down of on-hand quantity at multiple storage locations. Only\navailable when the product is stored in multiple locations.\nLocations : break down of on-hand quantity at multiple storage locations. Only\navailable when the product is stored in multiple locations.\n- Forecast : access the forecasted report to view on-hand, incoming, and outgoing\nquantities. Report also contains links to confirmed purchase, sales, or manufacturing orders. Only\navailable when there are confirmed sales, purchase, or manufacturing orders for the product.\nForecast : access the forecasted report to view on-hand, incoming, and outgoing\nquantities. Report also contains links to confirmed purchase, sales, or manufacturing orders. Only\navailable when there are confirmed sales, purchase, or manufacturing orders for the product.\n\n### Search options\n\nThe Filters section allows users to search among pre-made and custom filters to\nfind specific stock records.\n- Published : display products published on the website. Only available with the Website app installed.\nPublished : display products published on the website. Only available with the Website app installed.\n- Available in POS : display products available through the Point of Sale app.\nAvailable in POS : display products available through the Point of Sale app.\n- Available in Self : display products available in self order through the Point\nof Sale app. Appears in the search because the Available in Self Order checkbox\nwas ticked in the Point of Sale section of a product formâs Sales tab. The option is only available when the Available in POS checkbox is ticked.\nAvailable in Self : display products available in self order through the Point\nof Sale app. Appears in the search because the Available in Self Order checkbox\nwas ticked in the Point of Sale section of a product formâs Sales tab. The option is only available when the Available in POS checkbox is ticked.\n- Not available in Self : display products available in PoS , but not available in\nself order.\nNot available in Self : display products available in PoS , but not available in\nself order.\nConfigure PoS products\n- Can be Sold : display products that can be sold to customers. Appears in the\nsearch because the Can be Sold checkbox is ticked on the product form.\nCan be Sold : display products that can be sold to customers. Appears in the\nsearch because the Can be Sold checkbox is ticked on the product form.\n- Can be Purchased : display products that can be bought from vendors. Appears in\nthe search because the Can be Purchased checkbox is ticked on the product form.\nCan be Purchased : display products that can be bought from vendors. Appears in\nthe search because the Can be Purchased checkbox is ticked on the product form.\n- Can be Recurring : show subscription products, indicated by ticking the Recurring checkbox on the product form. Only available with the Subscription app activated.\nCan be Recurring : show subscription products, indicated by ticking the Recurring checkbox on the product form. Only available with the Subscription app activated.\n- Can be Rented : show products that can be loaned to customers for a certain time.\nAppears in the search because the Can be Rented checkbox was ticked on the\nproduct form. Only available with the Rental app installed.\nCan be Rented : show products that can be loaned to customers for a certain time.\nAppears in the search because the Can be Rented checkbox was ticked on the\nproduct form. Only available with the Rental app installed.\n- Can be Subcontracted : display products that can be produced by a\nthird-party manufacturer. Available only with the Manufacturing app installed.\nCan be Subcontracted : display products that can be produced by a\nthird-party manufacturer. Available only with the Manufacturing app installed.\n- Can be Expensed : show items that can be expensed. Only available with the Expenses app installed.\nCan be Expensed : show items that can be expensed. Only available with the Expenses app installed.\nThe Group By section allows users to add pre-made and custom groupings to the\nsearch results.\n- Product Type : group items by product type .\nProduct Type : group items by product type .\n- Product Category : group items by product category. To configure these, go to Inventory app ⣠Configuration ⣠Products: Product Categories .\nProduct Category : group items by product category. To configure these, go to Inventory app ⣠Configuration ⣠Products: Product Categories .\n- POS Product Category : group items by point of sale product categories .\nPOS Product Category : group items by point of sale product categories .\nTo save the current applied filters and groupbys, so the same information can be easily\naccessed after closing this page, click Save current search .\nOptionally, tick the Default filter checkbox to make this current view the default\nfilter when opening the stock report. Or tick the Shared checkbox to make the\nsearch option available to other users.\nLastly, click the Save button.\nSearch, filter, and group records", "headings": ["Navigate the stock report", "Search options"], "doc_id": "1cdacf9df1b4253e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/maintenance.html", "title": "Maintenance", "module": "maintenance", "section": "Maintenance", "text": "# Maintenance\n\nOdoo Maintenance helps extend the effectiveness of equipment by keeping track of maintenance\nrequirements.\n- Odoo Tutorials: Managing Equipment Maintenance\nOdoo Tutorials: Managing Equipment Maintenance", "headings": [], "doc_id": "af8cf380fe500bdf"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/maintenance/add_new_equipment.html", "title": "Add new equipment", "module": "maintenance", "section": "Add new equipment", "text": "# Add new equipment\n\nIn Odoo, equipment refers to any item that is used in everyday operations, including the\nmanufacturing of products. This can mean a piece of machinery on a production line, a tool that is\nused in different locations, or a computer in an office space. Equipment registered in Odoo can be\nowned by the company that uses the Odoo database, or by a third party, such as a vendor in the case\nof equipment rentals.\nUsing Odoo Maintenance , it is possible to track individual pieces of equipment, along with\ninformation about their maintenance requirements. To add a new piece of equipment, navigate to the Maintenance module, select Equipments ⣠Machines & Tools ⣠Create ,\nand configure the equipment as follows:\n- Equipment Name : the product name of the piece of equipment\nEquipment Name : the product name of the piece of equipment\n- Equipment Category : the category that the equipment belongs to; for example,\ncomputers, machinery, tools, etc.; new categories can be created by navigating to Configuration ⣠Equipment Categories and clicking Create\nEquipment Category : the category that the equipment belongs to; for example,\ncomputers, machinery, tools, etc.; new categories can be created by navigating to Configuration ⣠Equipment Categories and clicking Create\n- Company : the company that owns the equipment; again, this can be the company that uses\nthe Odoo database, or a third-party company\nCompany : the company that owns the equipment; again, this can be the company that uses\nthe Odoo database, or a third-party company\n- Used By : specify if the equipment is used by a specific employee, department, or both;\nselect Other to specify both an employee and a department\nUsed By : specify if the equipment is used by a specific employee, department, or both;\nselect Other to specify both an employee and a department\n- Maintenance Team : the team responsible for servicing the equipment; new teams can be\ncreated by navigating to Configuration ⣠Maintenance Teams and\nselecting Create ; the members of each team can also be assigned from this page\nMaintenance Team : the team responsible for servicing the equipment; new teams can be\ncreated by navigating to Configuration ⣠Maintenance Teams and\nselecting Create ; the members of each team can also be assigned from this page\n- Technician : the person responsible for servicing the equipment; this can be used to\nassign a specific individual in the event that no maintenance team is assigned or when a specific\nmember of the assigned team should always be responsible for the equipment; any person added to\nOdoo as a user can be assigned as a technician\nTechnician : the person responsible for servicing the equipment; this can be used to\nassign a specific individual in the event that no maintenance team is assigned or when a specific\nmember of the assigned team should always be responsible for the equipment; any person added to\nOdoo as a user can be assigned as a technician\n- Used in location : the location where the equipment is used; this is a simple text\nfield that can be used to specify locations that are not work centers, like an office, for\nexample\nUsed in location : the location where the equipment is used; this is a simple text\nfield that can be used to specify locations that are not work centers, like an office, for\nexample\n- Work Center : if the equipment is used at a work center, specify it here; equipment can\nalso be assigned to a work center by navigating to Maintenance ⣠Equipments â£\nWork Centers , selecting a work center or creating a new one using the Create button,\nand clicking the Equipment tab on the work center form\nWork Center : if the equipment is used at a work center, specify it here; equipment can\nalso be assigned to a work center by navigating to Maintenance ⣠Equipments â£\nWork Centers , selecting a work center or creating a new one using the Create button,\nand clicking the Equipment tab on the work center form\n\n## Include additional product information\n\nThe Product Information tab at the bottom of the page can be used to provide further\ndetails about the piece of equipment:\n- Vendor : the vendor that the equipment was purchased from\nVendor : the vendor that the equipment was purchased from\n- Vendor Reference : the reference code assigned to the vendor\nVendor Reference : the reference code assigned to the vendor\n- Model : the specific model of the piece of equipment\nModel : the specific model of the piece of equipment\n- Serial Number : the unique serial number of the equipment\nSerial Number : the unique serial number of the equipment\n- Effective Date : the date that the equipment became available for use; this is used to\ncalculate the MTBF\nEffective Date : the date that the equipment became available for use; this is used to\ncalculate the MTBF\n- Cost : the amount the equipment was purchased for\nCost : the amount the equipment was purchased for\n- Warranty Expiration Date : the date on which the equipmentâs warranty will expire\nWarranty Expiration Date : the date on which the equipmentâs warranty will expire\n\n## Add maintenance details\n\nThe Maintenance tab at the bottom of the page provides information about the failure\nfrequency of the piece of equipment:\n- Expected Mean Time Between Failure : the average number of days the equipment is\nexpected to operate between failures. This number can be configured manually.\nExpected Mean Time Between Failure : the average number of days the equipment is\nexpected to operate between failures. This number can be configured manually.\n- Mean Time Between Failure : the average number of days the equipment operates between\nfailures. This number is calculated automatically based on previous failures, and cannot\nbe configured manually.\nMean Time Between Failure : the average number of days the equipment operates between\nfailures. This number is calculated automatically based on previous failures, and cannot\nbe configured manually.\n- Estimated Next Failure : the estimated date the equipment may experience its next\nfailure.\nThis date is calculated automatically based on the data in the Mean Time Between\nFailure and Latest Failure fields, and cannot be configured manually.\nEstimated Next Failure : the estimated date the equipment may experience its next\nfailure.\nThis date is calculated automatically based on the data in the Mean Time Between\nFailure and Latest Failure fields, and cannot be configured manually.\n- Latest Failure : the most recent date on which the equipment failed. This date is based\non the creation date of the equipmentâs most recent maintenance request, and cannot be configured\nmanually.\nLatest Failure : the most recent date on which the equipment failed. This date is based\non the creation date of the equipmentâs most recent maintenance request, and cannot be configured\nmanually.\n- Mean Time To Repair : the average number of days needed to repair the equipment. This\nnumber is calculated automatically based on the duration of previous maintenance requests, and\ncannot be configured manually.\nMean Time To Repair : the average number of days needed to repair the equipment. This\nnumber is calculated automatically based on the duration of previous maintenance requests, and\ncannot be configured manually.\nTo see any open maintenance requests for a piece of equipment, go to the page for the equipment,\nand click the Maintenance smart button at the top of the page.", "headings": ["Include additional product information", "Add maintenance details"], "doc_id": "c17638297a2b6437"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/maintenance/maintenance_calendar.html", "title": "Maintenance calendar", "module": "maintenance", "section": "Maintenance calendar", "text": "# Maintenance calendar\n\nAvoiding equipment breakdowns, and blocks in warehouse work centers, requires constant equipment\nmaintenance. Timely corrective maintenance for machines and tools that break unexpectedly, as well\nas preventive maintenance to ensure that such issues are avoided, are key to keeping warehouse\noperations running smoothly.\nIn Odoo Maintenance , users can access the Maintenance Calendar to create, schedule, and edit\nboth corrective and preventive maintenance requests, to stay on top of equipment and work centers.\n\n## Create maintenance request\n\nMaintenance requests can be created directly from the Maintenance Calendar . To access the\ncalendar, navigate to Maintenance app ⣠Maintenance ⣠Maintenance Calendar .\nTo create a new request, click anywhere on the calendar. Doing so opens a New Event pop-up window. In the Name: field, assign a title to the new request.\nClicking Create on the pop-up window saves the new request with no additional details.\nIf the requestâs creation should be cancelled, click Cancel .\nTo add more details and schedule the request for a specific date and time, click Edit .\nClicking Edit opens a blank maintenance request form, where various details about the\nrequest can be filled out.\n\n### Edit maintenance request\n\nIn the Request field, assign a title to the new request. In the Created By field, from the drop-down menu, select which user the request was created by. By default, this field\npopulates with the user actually creating the request.\nIn the For field, from the drop-down menu, select if this request is being created for a\npiece of Equipment , or a Work Center .\nIf Work Center is selected in the For fieldâs drop-down menu, two\nadditional fields appear on the form: Work Center and Block Workcenter .\nIn the Work Center field, select which work center in the warehouse this maintenance\nrequest applies to.\nIf the Block Workcenter optionâs checkbox is ticked, it is not possible to plan work\norders, or other maintenance requests, in this work center during the time that this request is\nbeing performed.\nIf Equipment is selected in the For field, which it is by default, select\nwhich machine or tool requires maintenance from the Equipment field. Once a specific\npiece of equipment is selected, a greyed-out Category field appears, listing the Equipment Category to which the equipment belongs.\nIn the Worksheet Template field, if necessary, click the drop-down menu to select a\nworksheet template. These templates are custom templates that can be filled out by the employee\nperforming the maintenance.\nUnder the Category field, the Request Date field displays the date requested\nfor the maintenance to happen.\nThe Maintenance Type field provides two selectable radio button options: Corrective and Preventive .\nCorrective maintenance is for requests that arise for immediate needs, such as broken\nequipment, while Preventive maintenance is for planned requests, to avoid breakdowns in\nthe future.\nIf this request is tied to a specific MO , select that MO from the Manufacturing\nOrder field.\nFrom the drop-down menu for the Team field, select the desired maintenance team who will\nperform the maintenance. In the Responsible field, select the technician responsible for\nthe request.\nIn the Scheduled Date field, click the date to open a calendar popover. From this\npopover, select the planned date of the maintenance, and click Apply to save the date.\nIn the Duration field, enter the the amount of hours (in a 00:00 format) that the\nmaintenance is planned to take.\n`00:00`\nIn the Priority field, choose a priority between one and three âââ (stars) .\nThis indicates the importance of the maintenance request.\nIf working in a multi-company environment, from the drop-down menu in the Company field,\nselect the company to which this maintenance request belongs.\nAt the bottom of the form, there are two tabs: Notes and Instructions .\nIn the Notes tab, type out any internal notes for the team or technician assigned to the\nrequest, if necessary.\nIn the Instructions tab, if necessary, select one of the three radio button options to\nprovide maintenance instructions to the assigned team or technician. The available methods for\nproviding instructions are via PDF , Google Slide , or Text .\n\n## Calendar elements\n\nThe Maintenance Calendar provides various views, search functions, and filters to help keep track\nof the progress of ongoing and planned maintenance requests.\nThe following sections describe elements found across various views of the calendar.\n\n### Filters and Favorites\n\nTo access the maintenance calendar, navigate to Maintenance app ⣠Maintenance â£\nMaintenance Calendar .\nTo add and remove filters for sorting data on the Maintenance Calendar , click the ð»\n(triangle pointed down) icon, to the right of the search bar at the top of the page.\nThe left-hand side of the resulting drop-down menu lists all the different Filters users\ncan select. By default, To Do and Active are selected, so all open requests\nare displayed.\nTo add a custom filter to the Maintenance Calendar , click Add Custom\nFilter , under the Filters section of the drop-down menu. This opens an Add Custom Filter pop-up window.\nFrom this pop-up window, configure the properties of the new rule for the filter. Once ready,\nclick Add .\nThe right-hand side of the drop-down menu lists the Favorites , or any searches that have\nbeen saved as a favorite to be revisited at a later date.\nTo save a new Favorite search, select the desired Filters . Then, click Save current search . In the field directly below Save current search , assign\na name to the search.\nUnder the assigned name, there are two options, to save the current search either as the Default filter , or as a Shared filter.\nSelecting Default filter sets this filter as the default when opening this calendar\nview.\nSelecting the Shared filter makes this filter available to other users.\nOnce ready, click Save . When clicked, the new Favorite filter appears in the Favorites column, and a â (gold star) icon appears with the filterâs name in\nthe search bar.\n\n### Views\n\nThe Maintenance Calendar is available in six different views: Calendar (default), Kanban , List , Pivot , Graph , and Activity .\n\n#### Calendar view\n\nCalendar is the default view displayed when the Maintenance Calendar is\nopened. There are a number of options in this view type for sorting and grouping information about\nmaintenance requests.\nIn the top-left corner of the page, there is a drop-down menu set to Week , by default.\nClicking that drop-down menu reveals the different periods of time, in which the calendar can be\nviewed: Day , Month , and Year . There is also an option to Show weekends , selected by default. If unselected, weekends are not shown on the\ncalendar.\nTo the left of this menu, there is a â¬
ï¸ (left arrow) icon and a â¡ï¸ (right\narrow) icon. Clicking these arrows moves the calendar backward or forward in time, respectively.\nTo the right of the drop-down menu set to Week , by default, is a Today button. Clicking this button resets the calendar to view todayâs date, no matter which point in time\nis being viewed before clicking it.\nAt the far-right side of the page is a sidebar column, containing a minimized calendar set to\ntodayâs date, and a Technician list, displaying all the Technicians with requests\ncurrently open. Click the (panel) icon at the top of this sidebar to open or close the\nsidebar.\nThe Technician list only displays if technicians are assigned to open requests, and\nindividual technicians are only listed, if they are listed as Responsible on at least one maintenance request form.\n\n#### Kanban view\n\nWith the Kanban view, all open maintenance requests are displayed in Kanban-style\ncolumns, in their respective stages of the maintenance process.\nEach maintenance request appears on its own task card, and each task card can be dragged-and-dropped\nto a different stage of the Kanban pipeline.\nEach column has a name (i.e. In Progress ). Hovering at the top of a column reveals a âï¸ (gear) icon. Clicking the âï¸ (gear) icon reveals a list of options for\nthat column: Fold , Edit , Automations , and Delete .\nClicking Fold folds the column to hide its contents.\nClicking Edit opens an Edit: (stage name) pop-up window, with the\ncorresponding stage name, wherein the columnâs details can be edited. The following are the column\noptions that can be edited:\n- Name : the name of the stage in the Kanban pipeline.\nName : the name of the stage in the Kanban pipeline.\n- Folded in Maintenance Pipe : when checked, this stageâs column is folded by default in\nthe Kanban view type.\nFolded in Maintenance Pipe : when checked, this stageâs column is folded by default in\nthe Kanban view type.\n- Request Confirmed : when this box is not ticked, and the maintenance request type is\nset to Work Center , no leave is created for the respective work center when a maintenance\nrequest is created. If the box is ticked, the work center is automatically blocked for the\nlisted duration, either at the specified date, or as soon as possible, if the work center is\nunavailable.\nRequest Confirmed : when this box is not ticked, and the maintenance request type is\nset to Work Center , no leave is created for the respective work center when a maintenance\nrequest is created. If the box is ticked, the work center is automatically blocked for the\nlisted duration, either at the specified date, or as soon as possible, if the work center is\nunavailable.\n- Sequence : the order in the maintenance process, in which this stage appears.\nSequence : the order in the maintenance process, in which this stage appears.\n- Request Done : if ticked, this box indicates this stage is the final step of the\nmaintenance process. Requests moved to this stage are closed.\nRequest Done : if ticked, this box indicates this stage is the final step of the\nmaintenance process. Requests moved to this stage are closed.\nOnce ready, click Save & Close . If no changes have been made, click Discard ,\nor click the X icon to close the pop-up window.\n\n#### List view\n\nWith the List view selected, all open maintenance requests are displayed in a list, with\ninformation about each request listed in its respective row.\nThe columns of information displayed in this view type are the following:\n- Subjects : the name assigned to the maintenance request.\nSubjects : the name assigned to the maintenance request.\n- Employee : the employee who originally created the maintenance request.\nEmployee : the employee who originally created the maintenance request.\n- Technician : the technician responsible for the maintenance request.\nTechnician : the technician responsible for the maintenance request.\n- Category : the category the equipment being repaired belongs to.\nCategory : the category the equipment being repaired belongs to.\n- Stage : the stage of the maintenance process the request is currently in.\nStage : the stage of the maintenance process the request is currently in.\n- Company : if in a multi-company environment, the company in the database the request is\nassigned to.\nCompany : if in a multi-company environment, the company in the database the request is\nassigned to.\n\n#### Pivot view\n\nWith the Pivot view selected, maintenance requests are displayed in a pivot table, and\ncan be customized to show different data metrics.\nTo add more data to the pivot table, click the Measures button to reveal a drop-down\nmenu. By default, Count is selected. Additional options to add to the table are Additional Leaves to Plan Ahead , Duration , and Repeat Every .\nTo the right of the Measures button is the Insert in Spreadsheet button.\nClicking this button opens a pop-up window titled Select a spreadsheet to insert your\npivot. .\nThere are two tabs in this pop-up window: Spreadsheets and Dashboards . Click\ninto one of these tabs, and select a spreadsheet or dashboard in the database to add this pivot\ntable to. Once ready, click Confirm . If this table shouldnât be added to a spreadsheet\nor dashboard, click Cancel , or click the X icon to close the pop-up window.\nTo the right of the Insert in Spreadsheet button are three buttons:\n- Flip axis : the x and y axis of the pivot data table flip.\nFlip axis : the x and y axis of the pivot data table flip.\n- Expand all : all the available rows and columns of the pivot data table expand fully.\nExpand all : all the available rows and columns of the pivot data table expand fully.\n- Download xlsx : the pivot data table is downloaded as an .xlsx file.\nDownload xlsx : the pivot data table is downloaded as an .xlsx file.\n\n#### Graph view\n\nWith the graph view selected, the following options appear between the search bar and visual\nrepresentation of the data. These graph-specific options are located to the right of the Measures and Insert in Spreadsheet buttons.\nThere are three different types of graphs available to users to view the data:\n- Bar Chart : the data is displayed in a bar chart.\nBar Chart : the data is displayed in a bar chart.\n- Line Chart : the data is displayed in a line chart.\nLine Chart : the data is displayed in a line chart.\n- Pie Chart : the data is displayed in a pie chart.\nPie Chart : the data is displayed in a pie chart.\nWhen viewing the data as a Bar Chart graph, the data can be formatted in the following\nways:\n- Stacked : the data is stacked on the graph.\nStacked : the data is stacked on the graph.\n- Descending : the data is displayed in descending order.\nDescending : the data is displayed in descending order.\n- Ascending : the data is displayed in ascending order.\nAscending : the data is displayed in ascending order.\nWhen viewing the data as a Line Chart graph, the data can be formatted in the following\nways:\n- Stacked : the data is stacked on the graph.\nStacked : the data is stacked on the graph.\n- Cumulative : the data is increasingly accumulated.\nCumulative : the data is increasingly accumulated.\n- Descending : the data is displayed in descending order.\nDescending : the data is displayed in descending order.\n- Ascending : the data is displayed in ascending order.\nAscending : the data is displayed in ascending order.\nWhen viewing the data as a Pie Chart graph, all relevant data is displayed by default,\nand no additional formatting options are available.\n\n#### Activity view\n\nWith the Activity view selected, all open maintenance requests are listed in their own\nrow, with the ability to schedule activities related to those requests.\nMaintenance requests are listed in the Maintenance Request column as activities.\nClicking a request opens a Maintenance Request popover that indicates the status of the\nrequest, and the responsible technician. To schedule an activity directly from the popover, click â Schedule an activity . This opens a Schedule Activity pop-up window.\nFrom the pop-up window, choose the Activity Type , provide a Summary ,\nschedule a Due Date , and choose the responsible user in the Assigned to field.\nType any additional notes for the new activity in the blank space under the greyed-out Log a note⦠field. When clicked, this changes to Type â/â for commands .\nOnce ready, click Schedule to schedule the activity. Alternatively, click Schedule & Mark as Done to close the activity, click Done & Schedule Next to\nclose the activity and open a new one, or click Cancel to cancel the activity.\nWith the Activity view selected, each activity type available when scheduling an\nactivity is listed as its own column. These columns are Email , Call , Meeting , Maintenance Request , To-Do , Upload\nDocument , Request Signature , and Grant Approval .\nTo schedule an activity with that specific activity type, click into any blank box on the\ncorresponding row for the desired maintenance request, and click the â (plus) icon. This\nopens an Odoo pop-up window, wherein the activity can be scheduled.\n- Maintenance requests\n- Add new equipment", "headings": ["Create maintenance request", "Edit maintenance request", "Calendar elements", "Filters and Favorites", "Views"], "doc_id": "aa558408022b1c5e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/maintenance/maintenance_requests.html", "title": "Maintenance requests", "module": "maintenance", "section": "Maintenance requests", "text": "# Maintenance requests\n\nIn order to keep equipment and work centers functioning properly, it is often necessary to perform\nmaintenance on them. This can include preventive maintenance, intended to prevent equipment from\nbreaking down, or corrective maintenance, which is used to fix equipment that is broken or otherwise\nunusable.\nIn Odoo Maintenance , users can create maintenance requests to schedule and track the progress of\nequipment and work center maintenance.\n\n## Create maintenance request\n\nTo create a new maintenance request, navigate to Maintenance app ⣠Maintenance â£\nMaintenance Requests , and click New .\nBegin filling out the form by entering a descriptive title in the Request field (e.g., Drill not working ).\n`Drillnotworking`\nThe Created By field auto-populates with the user creating the request, but a different\nuser can be selected by clicking on the drop-down menu.\nIn the For drop-down menu, select Equipment if the maintenance request is\nbeing created for a piece of equipment, or Work Center if it is being created for a work\ncenter.\nDepending on the option selected in the For field, the next field is titled either Equipment or Work Center . Using the drop-down menu for either field, select\na piece of equipment or a work center.\nIf the Custom Maintenance Worksheets setting is enabled in the Maintenance appâs settings, a Worksheet Template field appears below the Equipment or Work\nCenter field. If necessary, use this field to select a worksheet to be filled out by the employee\nperforming the maintenance.\nThe next field is titled Request Date , and is set by default to the date on which the\nmaintenance request is created. This date cannot be changed by the user.\nIn the Maintenance Type field, select the Corrective option if the request\nis intended to fix an existing issue, or the Preventive option if the request is\nintended to prevent issues from occurring in the future.\nIf the request is being created to address an issue that arose during a specific manufacturing order\n(MO), select it in the Manufacturing Order field.\nIf an MO was selected in the Manufacturing Order field, a Work Order field\nappears below it. If the issue arose during a specific work order, specify it in this field.\nIn the Team field, select the maintenance team that is responsible for managing the\nrequest. If a specific team member is responsible, select them in the Responsible field.\nThe Scheduled Date field is used to specify the date on which maintenance should take\nplace, and the time it should begin. Choose a date by clicking on the field to open a calendar in a\npop-up window, and then select a day on the calendar. Enter an hour and minute in the two fields\nbelow the calendar, and click Apply to save the date and time.\nThe Duration field is used to specify the time it takes to complete the maintenance\nrequest. Use the text-entry field to enter the time in a 00:00 format.\n`00:00`\nIf Work Center was selected in the For field, a Block Workcenter checkbox appears below the Duration field. Enable the checkbox to prevent work orders or\nother maintenance from being scheduled at the specified work center while the maintenance request is\nbeing processed.\nThe Priority field is used to communicate the importance (or urgency) of the maintenance\nrequest. Assign the request a priority between zero and three âââ (stars) , by clicking\non the desired star number. Requests assigned a higher priority appear above those with a lower\npriority, on the Kanban board used to track the progression of maintenance requests.\nIn the Notes tab at the bottom of the form, enter any relevant details about the\nmaintenance request (why the maintenance issue arose, when it occurred, etc.).\nThe Instructions tab is used to include instructions for how maintenance should be\nperformed. Select one of the three options, and then include the instructions as detailed below:\n- PDF : click the Upload your file button to open the deviceâs file manager,\nand then select a file to upload.\nPDF : click the Upload your file button to open the deviceâs file manager,\nand then select a file to upload.\n- Google Slide : enter a Google Slide link in the text-entry field that\nappears after the option is selected.\nGoogle Slide : enter a Google Slide link in the text-entry field that\nappears after the option is selected.\n- Text : enter the instructions in the text-entry field that appears after the option is\nselected.\nText : enter the instructions in the text-entry field that appears after the option is\nselected.\n\n## Process maintenance request\n\nOnce a maintenance request has been created, it appears in the New Request stage of the Maintenance Requests page, which can be accessed by navigating to Maintenance app\n⣠Maintenance ⣠Maintenance Requests .\nMaintenance requests can be moved to different stages by dragging and dropping them. They can also\nbe moved by clicking on a request to open it in a new page, and then selecting the desired stage\nfrom the stage indicator bar, located above the top-right corner of the requestâs form.\nSuccessful maintenance requests should be moved to the Repaired stage, indicating that\nthe specified piece of equipment or work center is repaired.\nFailed maintenance requests should be moved to the Scrap stage, indicating the specified\npiece of equipment, or work center, could not be repaired, and must instead be scrapped.", "headings": ["Create maintenance request", "Process maintenance request"], "doc_id": "903cb5a40f2c1563"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/maintenance/maintenance_setup.html", "title": "Maintenance setup", "module": "maintenance", "section": "Maintenance setup", "text": "# Maintenance setup\n\nOdoo Maintenance helps companies schedule corrective and preventive maintenance on equipment used\nin their warehouse. This helps companies avoid equipment breakdowns, blocks in warehouse work\ncenters, and emergency repair costs.\n\n## Maintenance teams\n\nWhen creating maintenance requests, a maintenance team can be assigned to the request as the team\nresponsible for handling the request.\nTo view existing maintenance teams, navigate to Maintenance app ⣠Configuration\n⣠Maintenance Teams .\nFrom the resulting Teams page, a list of all existing teams (if any) is displayed, with\nthe Team Name , Team Members , and Company listed in the columns,\nby default.\nTo add a new team, click New . This adds a blank line at the bottom of the list of teams.\nIn the blank field that appears below the Team Name column, assign a name to the new\nmaintenance team.\nIn the Team Members column, click the field to reveal a drop-down menu with existing\nusers in the database. Choose which users should be members of the new maintenance team.\nClick Search More⦠to open a Search: Team Members pop-up window to search\nfor users not shown on the initial drop-down menu.\nIn the Company column, if in a multi-company environment, click the drop-down menu to\nselect the company in the database to which this new maintenance team belongs.\nOnce ready, click Save to save changes.\nThe team members assigned to maintenance teams are also referred to as Technicians , when\nviewing the Maintenance Calendar .\nNavigate to Maintenance app ⣠Maintenance ⣠Maintenance Calendar , and click\non an existing maintenance request. From the resulting popover, locate the Technician field. The name listed in the field is the team member, and is the user responsible for that\nparticular request.\nAt the far-right side of the page is a sidebar column, containing a minimized calendar set to\ntodayâs date, and a Technician list, displaying all the technicians (or team members)\nwith requests currently open.\n\n## Equipment\n\nIn Odoo Maintenance , equipment refers to machines and tools used internally in warehouse work\ncenters. Equipment can include technology such as computers or tablets, power tools, machines used\nfor manufacturing, and more.\n\n### Equipment categories\n\nEach piece of equipment belongs to an equipment category . Before adding new equipment, make sure\nthat a fitting equipment category is created.\nTo create a new equipment category, navigate to Maintenance app ⣠Configuration\n⣠Equipment Categories , and click New . Doing so opens a blank equipment category\nform.\nOn the blank form, assign a name in the Category Name field.\nIn the Responsible field, assign a user to be responsible for the equipment in this\ncategory, if necessary. By default, the user who creates the category is selected as Responsible , by default.\nIf in a multi-company environment, click the drop-down menu in the Company field, and\nselect the company in the database to whom the equipment in this category belongs.\nIn the Email Alias field, assign an email alias to this category, if necessary.\nIn the Comments field, type any comments or notes for internal users to reference in\nrelation to this category, if necessary.\nOnce a new equipment category is created, all equipment belonging to that category, as well as\nany past or currently open maintenance requests, are available from the equipment category form.\nNavigate to Maintenance app ⣠Configuration ⣠Equipment Categories , and\nselect a category to view. Locate the Equipment and Maintenance smart\nbuttons at the top of the form.\nClick the Equipment smart button to view all equipment belonging to this category.\nClick the Maintenance smart button to view any past, or currently open, maintenance\nrequests.\n\n### Machines & tools\n\nTo add new equipment, navigate to Maintenance app ⣠Equipment ⣠Machines &\nTools , and click New . This opens a blank equipment form.\nIn the Name field, assign a name for the new equipment. In the Equipment\nCategory field, click the drop-down menu and select which category this new equipment should belong\nto.\nIf in a multi-company environment, click the drop-down menu in the Company field, and\nselect the company in the database to whom the new equipment belongs.\nIn the Used By field, select from one of three radio button options: Department , Employee , or Other .\nIf Department is selected, a Department field appears below the Used By field. Click the drop-down menu and select the department that uses this\nequipment.\nIf Employee is selected, an Employee field appears below the Used\nBy field. Click the drop-down menu, and select the employee who uses this equipment.\nIf the Other option is selected, both the Department and Employee fields appear below the Used By field. Click the drop-down menus\nfor the respective fields, and choose which department and employee uses this equipment.\nIn the Maintenance Team field, select the team responsible for this equipment. In the Technician field, select the team member/user responsible for this equipment.\nIn the Used in location field, enter the location wherein this equipment will be used,\nif not in an internal work center (e.g. in an office).\nIn the Work Center field, click the drop-down menu, and select which work center this\nequipment will be used in.\nIn the blank space under the Description tab at the bottom of the form, add any relevant\ninformation describing the equipment for users to reference.\n\n#### Product Information tab\n\nTo add any relevant information while creating a new piece of equipment, from the equipment form,\nclick the Product Information tab.\nIn the Vendor field, add the vendor from which the equipment was purchased. In the Vendor Reference field, add the product reference number obtained from the vendor, if\napplicable.\nIn the Model field, specify which model this equipment is, if applicable. If the\nequipment is serialized, add a serial number in the Serial Number field.\nIn the Effective Date field, click the date to reveal a calendar popover, and select a\ndate. This date indicates when this equipment was first put in use, and will be used to compute the\nMean Time Between Failure (MTBF) in the equipmentâs Maintenance tab.\nIn the Cost field, specify how much the equipment cost to acquire, if applicable.\nIf the equipment is covered under a warranty, specify the Warranty Expiration Date by\nselecting a date from the calendar popover in that field.\n\n#### Maintenance tab\n\nVarious maintenance metrics are available for each piece of equipment, and are automatically\ncomputed, based on corrective maintenance, and planned preventive maintenance.\nTo view the maintenance metrics for a specific piece of equipment, from the equipment form, click\nthe Maintenance tab.\nDoing so reveals the following fields:\n- Expected Mean Time Between Failure : the amount of time (in days) before the next\nfailure is expected. This is the only field not greyed-out, and the only field users can\nedit.\nExpected Mean Time Between Failure : the amount of time (in days) before the next\nfailure is expected. This is the only field not greyed-out, and the only field users can\nedit.\n- Mean Time Between Failure : the amount of time (in days) between reported failures.\nThis value is computed based on completed corrective maintenances.\nMean Time Between Failure : the amount of time (in days) between reported failures.\nThis value is computed based on completed corrective maintenances.\n- Estimated Next Failure : the date on which the next failure is expected. This date is\ncomputed as the Latest Failure Date + MTBF .\nEstimated Next Failure : the date on which the next failure is expected. This date is\ncomputed as the Latest Failure Date + MTBF .\n- Latest Failure : The date of the latest failure. The value in this field updates once a\nfailure is reported for this equipment.\nLatest Failure : The date of the latest failure. The value in this field updates once a\nfailure is reported for this equipment.\n- Mean Time To Repair : the amount of time (in days) it takes to repair this equipment\nupon failure. This value updates once a maintenance request is completed for this equipment.\nMean Time To Repair : the amount of time (in days) it takes to repair this equipment\nupon failure. This value updates once a maintenance request is completed for this equipment.\n\n## Work centers\n\nTo view the work centers where equipment is being used, and how the equipment is being used in them,\nnavigate to Maintenance app ⣠Equipment ⣠Work Centers , and click into a work\ncenter.\nFrom the resulting work center form, click the Equipment tab to view all machines and\ntools being used in that specific work center.\nEach piece of equipment is listed with certain relevant information: the Equipment Name ,\nthe responsible Technician , the Equipment Category it belongs to, and a few\nimportant maintenance metrics: its MTBF , MTTR , and Est. Next Failure date.\nTo add new equipment to a work center directly from the work center form, click Add a\nline under the Equipment tab. This opens an Add: Maintenance Equipment pop-up window.\nFrom the pop-up window, select the equipment that should be added to the work center, and click Select .", "headings": ["Maintenance teams", "Equipment", "Equipment categories", "Machines & tools", "Work centers"], "doc_id": "ef597e61097c4f51"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing.html", "title": "Manufacturing", "module": "manufacturing", "section": "Manufacturing", "text": "# Manufacturing\n\nOdoo Manufacturing helps manufacturers schedule, plan, and process manufacturing orders. With\nthe work center control panel, put tablets on the shop floor to control work orders in real-time and\nallow workers to trigger maintenance operations, feedback loops, quality issues, etc.\n- Odoo Tutorials: MRP\n- Odoo Tutorials: Barcode Scanner\nOdoo Tutorials: Barcode Scanner\n- IoT Boxes (MES)", "headings": [], "doc_id": "8df6005cd5fe15e4"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/advanced_configuration/kit_shipping.html", "title": "Kits", "module": "manufacturing", "section": "Kits", "text": "# Kits\n\nIn Odoo, a kit is a type of bill of materials (BoM) that can be manufactured and sold. Kits are\nsets of unassembled components sold to customers. They may be sold as standalone products, and are\nalso useful tools for managing more complex bills of materials (BoMs).\nTo use, manufacture, and sell kits, both the Manufacturing and Inventory apps need to be installed.\n\n## Create the kit as a product\n\nTo use a kit as a sellable product, or as a component organization tool, the kit should first be\ncreated as a product.\nTo create a kit product, go to Inventory app ⣠Products ⣠Products , and then\nclick New .\nThen, assign a name to the new kit product. Next, set the kitâs product type depending on inventory\ntracking needs and accounting requirements. To do this, under the General Information tab, set the Product Type to Goods and either check the box next Track Inventory if inventory tracking is required, or leave it unchecked if inventory\ntracking for the kit is not necessary.\nLearn more about tracked versus untracked products .\nThe kitâs components must also be configured as products via Inventory app â£\nProducts ⣠Products . These components require no specific configuration.\n\n### Untracked kit inventory setup details\n\nConsider leaving tracking for the kitâs inventory untracked when the kit is used in other\nmanufacturing processes or when tracking inventory for the kit itself is not needed.\n- Recommended for Continental Accounting : If costs are expensed immediately upon purchase, then\nleaving the kitâs inventory as untracked is recommended.\nRecommended for Continental Accounting : If costs are expensed immediately upon purchase, then\nleaving the kitâs inventory as untracked is recommended.\n- Replenishment via Components : Inventory count is managed at the component level, so reordering\nrules must be set to individual components.\nReplenishment via Components : Inventory count is managed at the component level, so reordering\nrules must be set to individual components.\n- Selling & Stock Constraints : Kits cannot be sold if any required component is out of stock.\nSince availability depends on individual components, a sales order may appear valid, but delivery\ncan be delayed if components are unavailable.\nSelling & Stock Constraints : Kits cannot be sold if any required component is out of stock.\nSince availability depends on individual components, a sales order may appear valid, but delivery\ncan be delayed if components are unavailable.\n\n### Tracked kit inventory setup details\n\nConsider turning on tracking for the kitâs inventory when the kit is a tangible product or warehouse\nand inventory tracking is essential.\n- Recommended for Angle-Saxon Accounting : If the Cost of Goods Sold (COGS) needs to be recorded\nin journals, then tracking the kitâs inventory is recommended.\nRecommended for Angle-Saxon Accounting : If the Cost of Goods Sold (COGS) needs to be recorded\nin journals, then tracking the kitâs inventory is recommended.\n- Component Purchase Constraints : Only the kitâs minimum required components can be added to an eCommerce cart unless the option to continue\nselling is disabled.\nComponent Purchase Constraints : Only the kitâs minimum required components can be added to an eCommerce cart unless the option to continue\nselling is disabled.\n- No Kit Serial Numbers : Serial number tracking does not track the kit, only its shipped\ncomponents.\nNo Kit Serial Numbers : Serial number tracking does not track the kit, only its shipped\ncomponents.\n- Reordering Rule Recommendation : Reordering rules should be set at the component-level.\nReordering Rule Recommendation : Reordering rules should be set at the component-level.\n- Stock Replenishment Recommendation : Stock replenishment should also be done at the\ncomponent-level.\nStock Replenishment Recommendation : Stock replenishment should also be done at the\ncomponent-level.\n\n### Kit setup similarities\n\nRegardless of which setup is used, there are some similarities between the two options.\n- No Kit-Level Stock Adjustments : Stock adjustments cannot be handled at the kit-level.\nNo Kit-Level Stock Adjustments : Stock adjustments cannot be handled at the kit-level.\n- Kit Value Does Not Change : The stockâs value is the same whether the kitâs is tracked.\nKit Value Does Not Change : The stockâs value is the same whether the kitâs is tracked.\n- Kit Internal Transfers : An internal transfer for the kit breaks it into components.\nKit Internal Transfers : An internal transfer for the kit breaks it into components.\n\n## Set up the kit BoM\n\nAfter fully configuring the kit product and its components, a new BoM can be created for the kit product.\nTo do so, go to Manufacturing app ⣠Products ⣠Bills of Materials , and then\nclick New . Next to the Product field, click the drop-down menu to reveal a\nlist of products, and then select the previously configured kit product.\nThen, for the BoM Type field, click the Kit option. Finally, under the Components tab, click Add a line , and add each desired component, and\nspecify their quantities under the Quantity column.\nOnce ready, click Save to save the newly created BoM .\nIf the kit is solely being used as a sellable product, then only components need to be added under\nthe Components tab, and configuring manufacturing operations is not necessary.\nWhen a kit is sold as a product, it appears as a single line item on the quotation and sales\norder. However, on delivery orders, each component of the kit is listed.\n\n## Use kits to manage complex BoMs\n\nKits can also be used for complex BoMs . This method nests BoMs within\nother BoMs, organizing complex products while simplifying manufacturing by defining each procurement\nand production step separately.\nSublevel BoMs (subassemblies or semi-finished products) streamline these workflows, helping with\ntraceability efforts.", "headings": ["Create the kit as a product", "Untracked kit inventory setup details", "Tracked kit inventory setup details", "Kit setup similarities", "Set up the kit BoM", "Use kits to manage complex BoMs"], "doc_id": "c64df8e6182c9668"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/advanced_configuration/product_variants.html", "title": "Managing BoMs for product variants", "module": "manufacturing", "section": "Managing BoMs for product variants", "text": "# Managing BoMs for product variants\n\nOdoo allows one bill of materials (BoM) to be used for multiple variants of the same product. Having\na consolidated BoM for a product with variants saves time by preventing\nthe need to manage multiple BoMs .\n\n## Activate product variants\n\nTo activate the product variants feature, navigate to Inventory app â£\nConfiguration ⣠Settings , and scroll down to the Products section. Then, click the\ncheckbox to enable the Variants option. After that, click Save to apply the\nsetting.\nFor more information on configuring product variants, refer to the product variants documentation.\n\n## Create custom product attributes\n\nOnce the product variants feature is activated, create and edit product attributes on the Attributes page.\nThe Attributes page is accessible either from Inventory app â£\nConfiguration ⣠Settings by clicking the Attributes button, or by clicking Inventory app ⣠Configuration ⣠Attributes .\nOnce on the Attributes page, either click into an existing attribute, or click Create to create a new one. Clicking Create reveals a new, blank form for\ncustomizing an attribute. For an existing attribute, click Edit on its form to make\nchanges.\nAssign an Attribute Name , and choose a category from the Category fieldâs\ndrop-down menu. Then, select the desired options next to the Display Type and Variants Creation Mode fields. Once the desired options are selected, click Add a line under the Attribute Values tab to add a new value.\nIncluded on the Value row is a Is custom value checkbox. If selected,\nthis value will be recognized as a custom value, which allows customers to type special\ncustomization requests upon ordering a custom variant of a product.\nOnce all desired Values have been added, click Save to save the new\nattribute.\n\n## Add product variants on the product form\n\nCreated attributes can be applied on specific variants for particular products. To add product\nvariants to a product, navigate to the product form by going to Inventory app â£\nProducts ⣠Products . To make changes to the product, click Edit . Then, click the Variants tab.\nUnder the Attribute header, click Add a line to add a new attribute, and\nselect one to add from the drop-down menu.\nThen, under the Values header, click the drop-down menu to choose from the list of\nexisting values. Click on each desired value to add them, and repeat this process for any additional\nattributes that should be added to the product.\nOnce finished, click Save to save changes.\nBoM products with multiple variants that are manufactured in-house\nshould either have a 0,0 reordering rule set up, or have their replenishment routes set to Replenish on Order (MTO) .\n\n## Apply BoM components to product variants\n\nNext, create a new BoM . Or, edit an existing one, by going to Manufacturing app ⣠Products ⣠Bills of Materials . Then, click Create to open a new Bills of Materials form to configure from scratch.\nAdd a product to the BoM by clicking the drop-down menu in the Product field and selecting the desired product.\nThen, add components by clicking Add a line under the Component section of\nthe Components tab, and choosing the desired components from the drop-down menu.\nChoose the desired values in the Quantity and Product Unit of Measure columns. Then, choose the desired values in the Apply on Variants column.\nThe Apply on Variants option to assign components to specific product variants on the BoM is available once the Variants setting is activated\nfrom the Inventory application. If the Apply on Variants field is\nnot immediately visible, activate it from the additional options menu (three-dots icon, to the\nright of the header row).\nEach component can be assigned to multiple variants. Components with no variants specified are used\nin every variant of the product. The same principle applies when configuring operations and\nby-products.\nWhen defining variant BoMs by component assignment, the Product Variant field in the main section of the BoM should\nbe left blank. This field is only used when creating a BoM specifically for one product variant.\nWhen all desired configurations have been made to the BoM , click Save at the top of the form to save changes.\nFor components that only apply for specific variants, choose which operations the components\nshould be consumed in. If the Consumed in Operation column is not immediately\nvisible, activate it from the additional options menu (three-dots icon, to the right of the\nheader row).\n\n## Sell and manufacture variants of BoM products\n\nTo sell and manufacture variants of BoM products to order, navigate to Sales app ⣠Create to create a new quotation.\n\n### Sell variant of BoM product\n\nOnce on the blank Quotation form, click the drop-down next to the Customer field to add a customer.\nThen, under the Order Lines tab, click Add a product , and select the\npreviously-created BoM product with variants from the drop-down menu.\nDoing so reveals a Configure a product pop-up.\nFrom the pop-up window, click the desired attribute options to configure the correct variant of the\nproduct to manufacture. Then, click the green + or - icons next to the 1 to change the quantity to sell and manufacture, if desired.\n`1`\nOnce all the specifications have been chosen, click Add . This will change the pop-up to\na second Configure pop-up, where available optional products will appear, if they have\nbeen created previously.\nOnce ready, click Confirm to close the pop-up.\nThen, click Save to save all changes, and click Confirm at the top of the Quotation form to create and confirm a new sales order (SO).\n\n### Manufacture variant of BoM product\n\nOnce the SO is confirmed, a Manufacturing smart button appears at\nthe top of the SO form. Click the Manufacturing smart button to\nopen the Manufacturing Order form.\nOn this form, under the Components tab, the appropriate components for the chosen\nvariant are listed. And, depending on the variant, different components will be listed. To see any\nmandatory or optional Operation steps, click the Work Orders tab.\nTo enter the tablet view work order screen, click the tablet icon to the right of the\nrow for the desired operation to be completed.\nFrom the tablet view, click Mark as Done as the operation progresses to complete the\noperation steps.\nAlternatively, click the Mark as Done button at the top of the manufacturing order form\nto complete the order.\nThen, navigate back to the SO via the breadcrumbs at the top of the page.\nNow that the product has been manufactured, click the Delivery smart button to deliver\nthe product to the customer. From the Delivery Order form, click Validate ,\nthen click Apply to deliver the product.\nTo finish the sale, click back to the SO via the breadcrumbs at\nthe top of the page again. Then, click Create Invoice followed by Create\nInvoice again to invoice the customer for the order.", "headings": ["Activate product variants", "Create custom product attributes", "Add product variants on the product form", "Apply BoM components to product variants", "Sell and manufacture variants of BoM products", "Sell variant of BoM product", "Manufacture variant of BoM product"], "doc_id": "6e14e70d904e4da6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/advanced_configuration/sub_assemblies.html", "title": "Multilevel BoMs", "module": "manufacturing", "section": "Multilevel BoMs", "text": "# Multilevel BoMs\n\nUse a multilevel bill of materials (BoM) when a manufactured product is part of another assembly.\nThis method nests BoMs within other BoMs , organizing complex products while simplifying\nmanufacturing by defining each procurement and production step separately.\nSublevel BoMs (subassemblies or semifinished products) streamline these production workflows, and\nare beneficial when the subassembly is used across multiple finished products (meaning theyâd appear\non multiple top-level BoMs ). The more complicated a product is to build or procure, the more value\na multilevel BoM can provide. Because of this, component and subassembly replenishment planning is\nvital to ensuring multilevel BoMs run smoothly.\n\n## Why replenishment planning is important\n\nReplenishment is critical for multilevel\nBoMs to prevent bottlenecks, manage lead times, and optimize inventory. Without it, missing\ncomponents can halt production, delay orders, and increase costs. A well-planned replenishment\nstrategy ensures just-in-time availability , automates procurement , balances stock levels, and\nkeeps supply chains efficient. This minimizes delays, reduces manual effort, and ensures smooth\nmanufacturing.\nManufacturing orders (MO)s that come from a BoM require all components to be available before the MO can be completed. The Component Status for that MO provides this information.\nLearn how to check an MOâs component status .\n\n## Create a multilevel BoM\n\nTo set up a multilevel BoM , the top-level product and sublevel productsâs BoMs must be created.\nIf starting from scratch, build the BoMs from the bottom up. Start with the lowest-level product BoMs , then include those products as components in higher-level BoMs .\nA printed circuit board (PCB) for a custom keyboard is composed of hundreds of electronic\ncomponents, such as transistors, resistors, and capacitors. Instead of listing all of those\ncomponents out, a sublevel product and BoM for a PCB is created, to track the quantities of\ntransistors and other small components, without needing to overcrowd the top-level BoM for the\ncustom keyboard by listing them. Instead, the custom keyboardâs BoM consists of an assortment\nof components and sublevel BoMs alike, like key caps, switches, the PCB, and keyboard plate.\n`PCB`\nLearn how to build a simple bill of materials . For the\nPCB, this would include the transistors, resistors, and other components.\nAfter the sublevel products (like the PCB, key caps, and keyboard plate) are fully configured,\ncreate the top-level product by navigating to Manufacturing app ⣠Products â£\nProducts , and then selecting New . From here, configure the productâs specifications as\nneeded.\nOnce the top-level product (the keyboard) is configured, click the Bill of Materials smart button on the product form, and then select New to make a BoM for the top-level\nproduct. Add the sublevel products to this BoM , along with any other necessary components.\n\n## Manage production planning\n\nThe two options below are two of the best ways to manage manufacturing order automation for products\nwith multilevel BoMs .\nComplex BoMs are specifically used to manage products that require manufactured components. If\na BoM is being created to organize components or bundle sellable products, use a kit instead.\nTo automatically trigger manufacturing orders for sublevel products after confirming a manufacturing\norder for the main product, there are two options:\n- Option 1 (recommended): Create Reordering Rules for the sublevel products and set both the\nminimum and maximum needed stock quantities to 0 .\nOption 1 (recommended): Create Reordering Rules for the sublevel products and set both the\nminimum and maximum needed stock quantities to 0 .\n`0`\n- Option 2: Activate the Replenish on Order (MTO) and Manufacture routes\nunder the Inventory tab of the sublevel productâs product form.\nOption 2: Activate the Replenish on Order (MTO) and Manufacture routes\nunder the Inventory tab of the sublevel productâs product form.\n- Reordering rules\n- Replenish on order (MTO)\nReplenish on order (MTO)\nOption 1 is more flexible than Option 2 and is recommended. Reordering rules do not directly link\ndemand to replenishment, allowing stock to be unreserved and reassigned as needed. The Replenish on\nOrder (MTO) route, however, uniquely links sublevel and top-level products, reserving quantities for\nthe confirmed top-level manufacturing order.\nIn both methods, sublevel products must be fully manufactured before starting the top-level product.\n\n## Multilevel BoM setup flow\n\nThe following section details how to set up multilevel BoMs, set the initial inventory, establish a 0/0/1 reordering rule (the recommended production\nplan), configure lead times, and set up production options.\nCreating a 0/0/1 reordering rule for the sublevel products (minimum stock set at zero, maximum stock\nset at zero, reorder one automatically) regardless of whether they are a component or subassembly is\nthe recommended approach for managing a multilevel BoM . This setup uses the Inventory , Manufacturing , and Purchase apps.\nThis is only one example of how to set up a multilevel BoM in Odoo. Consider any unique\ncircumstances that need to be addressed during the configuration, and make sure they are included\nin the setup. If any specific help is needed during setup, consider purchasing a success pack .\n\n### Create the BoMs\n\nFollow the steps in the Create a multilevel BoM section to build the BoMs .\nMake sure to build the multilevel BoM from the bottom up. Start by creating the lowest-level\ncomponent products in Odoo, then the subassembly products that those are used for, then the BoM for that subassembly, and repeat until every level of the multilevel BoM is created.\n\n### Set the initial inventory\n\nIf thereâs no initial inventory to configure, then skip this section and begin configuring the\nprocurement method for the multilevel BoM .\nUpdate the quantity on hand for each of the products configured in the prior step (both components,\nsubassemblies, and the final product). To do this, open the Inventory app, and then find the\nproducts with filters, the search bar, or scrolling, and then click on them to open their product\nform. From here, click the On Hand smart button, select the variant if that was configured, and then enter the\nquantity on hand.\nInventory adjustments\n\n### Configure the procurement method\n\nNow it is time to pick the procurement method this multilevel BoM uses. The two options below are\npreferred, but unique circumstances may lead to another procurement method making more sense.\n- Option 1 (recommended): Create Reordering Rules for the sublevel products and set both the\nminimum and maximum needed stock quantities to 0 .\nOption 1 (recommended): Create Reordering Rules for the sublevel products and set both the\nminimum and maximum needed stock quantities to 0 .\n`0`\n- Option 2: Activate the Replenish on Order (MTO) and Manufacture routes\nunder the Inventory tab of the sublevel productâs product form.\nOption 2: Activate the Replenish on Order (MTO) and Manufacture routes\nunder the Inventory tab of the sublevel productâs product form.\n- Reordering rules\n- Replenish on order (MTO)\nReplenish on order (MTO)\nReordering rules are recommended because they do not tie the manufactured product to a specific\nsales order, allowing that manufactured product to fulfill a different sales order if the original\ngets cancelled.\nMaking the product to order is not recommended because the manufactured product cannot be used to\nfulfill another sales order. However, this could be helpful if strict tracking is necessary for the\nbusiness.\n\n### Enter vendor and manufacturing lead times\n\nVendor and manufacturing lead times are used by Odoo to coordinate production and procurement\nactions to fulfill orders on time. Set vendor lead times for components that are purchased. These\ncan appear at any level in a multilevel BoM except the final product. Set manufacturing lead times\nfor products that are built using a BoM . These can appear at any level in a multilevel BoM except the lowest level (when individual components are procured).\n\n### Build out operations to handle the production flow\n\nFirst, determine the current manufacturing flow for the business, then match the corresponding Odoo\nsetup. The list below are only some of the configuration pieces that could be involved in this step.\n- Manufacturing Steps : Consider how many manufacturing steps are taken (one-, two-, or\nthree-step manufacturing).\nManufacturing Steps : Consider how many manufacturing steps are taken (one-, two-, or\nthree-step manufacturing).\n- Work Centers : Decide if any work centers need to be configured.\nWork Centers : Decide if any work centers need to be configured.\n- Master Production Schedule : If manually planned manufacturing orders are needed (e.g., to\nhandle seasonal demand), make a master production schedule (MPS).\nMaster Production Schedule : If manually planned manufacturing orders are needed (e.g., to\nhandle seasonal demand), make a master production schedule (MPS).\nManufacturing operations is an art and a science, so configuring an established flow into Odoo is\nthe recommended approach for this step. Read more about manufacturing in Odoo\n\n### Configuration summary\n\nAt the end of this process, the multilevel BoM is configured, and the top-level product has its\ninventory counts, procurement method set, procurement lead times, and manufacturing operations\nconfigured. From here, sales orders can include the top-level product, automatic procurement through\nvendors or manufacturing can begin, the top-level product can be included in an eCommerce store.\n- Create quotations\n- Catalog", "headings": ["Why replenishment planning is important", "Create a multilevel BoM", "Manage production planning", "Multilevel BoM setup flow", "Create the BoMs", "Set the initial inventory", "Configure the procurement method", "Enter vendor and manufacturing lead times", "Build out operations to handle the production flow", "Configuration summary"], "doc_id": "941cd5b5196bb318"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/advanced_configuration/using_work_centers.html", "title": "Work centers", "module": "manufacturing", "section": "Work centers", "text": "# Work centers\n\nWork centers are where Manufacturing work orders are processed, and can be used to track\ncosts, make schedules, plan capacity, organize equipment, and track efficiency. Specifying a work\ncenter is required when a work order is defined in the Operations tab of a bill of materials (BoM)\nfor a product.\nWork centers only appear if the Work Orders setting is enabled. To do so, navigate to Manufacturing app ⣠Configuration ⣠Settings , then tick the Work\nOrders checkbox. Work orders can be managed in the Manufacturing app by selecting Operations ⣠Work Orders .\n\n## Work center configuration\n\n### Create a new work center\n\nIn the Manufacturing app, select Configuration ⣠Work Centers and click the New button to open a new work center form.\n- Work Center Name : the label for the work center used to select it on a work order or\non the reporting dashboards\nWork Center Name : the label for the work center used to select it on a work order or\non the reporting dashboards\n- Tag : reusable labels that can be used to sort work centers in list view\nTag : reusable labels that can be used to sort work centers in list view\n- Alternative Workcenters : where a work order should be carried out if this work center\nis not available\nAlternative Workcenters : where a work order should be carried out if this work center\nis not available\n- Code : reference id for the work center that is displayed in the list view\nCode : reference id for the work center that is displayed in the list view\n- Working Hours : the hours that work center can be used during the week\nWorking Hours : the hours that work center can be used during the week\n\n#### Working hours\n\nWorking hours define when a work center should operate, based on a one- or two-week schedule.\nThese hours also form the basis for calculating overall equipment efficiency (OEE).\nBy default, Odoo uses the Standard 40 hours/week working hours, which expects work centers to\noperate between 8:00 AM and 5:00 PM on Monday through Friday.\n`Standard40hours/week`\nTo change the working hours, hover over the current Working Hours value and click the ( Internal link ) icon to open the working hours form.\nTo create a new set of working hours, click the New button and give it a name. From\nhere, edit any Work from or Work to value to adjust the time range. Remove a\nline by clicking click the (trash) icon. To create a new time range,\nclick Add a line at the bottom of the list.\n- Overall equipment effectiveness\nOverall equipment effectiveness\n- Work center time off\n\n### Set productivity standards and allowed employees\n\nThe General Information tab on the work center form allows for productivity goals to be\nassigned to a work center. These are used as the basis for calculating how much of the potential\ntime the work center is being used and its operating costs.\n- Time Efficiency : a multiplier for how using this work center affects the normal speed\nof execution of a work order Example If a work center has older equipment and work orders take twice as long to produce, the Time Efficiency would be 50.00% .\nTime Efficiency : a multiplier for how using this work center affects the normal speed\nof execution of a work order\nIf a work center has older equipment and work orders take twice as long to produce, the Time Efficiency would be 50.00% .\n`TimeEfficiency`\n`50.00%`\n- Capacity : the number of products that can be processed at the work center\nsimultaneously\nCapacity : the number of products that can be processed at the work center\nsimultaneously\n- OEE Target : the target for efficiency at the work center Example If a work center is available for 8 hours per day but is only expected to be used for 7 hours per day , the OEE would be 87.50% . \\(7/8*100=87.5\\) See also Overall equipment effectiveness\nOEE Target : the target for efficiency at the work center\nIf a work center is available for 8 hours per day but is only expected to be used for 7 hours per day , the OEE would be 87.50% . \\(7/8*100=87.5\\)\n`8hoursperday`\n`7hoursperday`\n`87.50%`\nOverall equipment effectiveness\n- Setup Time : the time required before work can commence on a work order\nSetup Time : the time required before work can commence on a work order\n- Cleanup Time : breakdown or cleanup time required after a work order is finished\nCleanup Time : breakdown or cleanup time required after a work order is finished\n- Cost per hour : the operating expense of that workstation. The per employee value is for estimating the average cost per employee. See also Manufacturing order costs\nCost per hour : the operating expense of that workstation. The per employee value is for estimating the average cost per employee.\nManufacturing order costs\n- Allowed Employees : the employees who can perform work at the work center. If blank,\nall employees are allowed. Example If equipment at a work center requires a certification to operate, Allowed\nEmployees could list only those employees who have the certification.\nAllowed Employees : the employees who can perform work at the work center. If blank,\nall employees are allowed.\nIf equipment at a work center requires a certification to operate, Allowed\nEmployees could list only those employees who have the certification.\n\n### Set production capacities\n\nThe Capacity setting on a work center creates a default value for how many units can be\nproduced at one time in a work center. To specify that a work center can produce different\nquantities of different products, select the Specific Capacities tab.\nTo specify production capacities in different measurements from a count of units, enable the Units of Measure feature in the Inventory app.\n\n### Integrate IoT devices\n\nThe IoT Triggers tab enables the integration of IoT devices\nwith a work center:\n- Device : specifies the IoT device to be triggered\nDevice : specifies the IoT device to be triggered\n- Key : the security key for the device\nKey : the security key for the device\n- Action : the IoT device action triggered\nAction : the IoT device action triggered\n\n## Assigning equipment to work centers\n\nThe Maintenance app makes it possible to add specific equipment to a work center and\nindividually track its costs and productivity. It also adds the Equipment and Maintenance tabs to the work center form, used to list equipment and schedule\nmaintenance activities.\n\n### Configure equipment\n\nUsing the Equipment tab, it is possible for specific pieces of equipment to be assigned\nto a work center. The following information is displayed for each piece of equipment added:\n- Equipment Name : the name of the piece of equipment\nEquipment Name : the name of the piece of equipment\n- Technician : the technician responsible for servicing the equipment\nTechnician : the technician responsible for servicing the equipment\n- Equipment Category : the category the equipment belongs to\nEquipment Category : the category the equipment belongs to\n- MTBF : mean time between failures; the average time that the piece of equipment will\noperate before failing\nMTBF : mean time between failures; the average time that the piece of equipment will\noperate before failing\n- MTTR : mean time to recovery; the average time it takes for the equipment to become\nfully operational again\nMTTR : mean time to recovery; the average time it takes for the equipment to become\nfully operational again\n- Est. Next Failure : an estimate of when the next equipment failure will occur\nEst. Next Failure : an estimate of when the next equipment failure will occur\nMTBF , MTTR , and Est. Next Failure are all calculated\nautomatically based on past failure data, if any exists.\n\n## Work center planning\n\nThe currently scheduled work orders can be viewed by accessing Manufacturing app â£\nPlanning ⣠Planning by Workcenter .\nDifferent views show how many individual work orders are scheduled, how many minutes of each hour\nthe work center is in production, and the dates and times that are currently scheduled for work\norders. Times and planned work centers can be changed by clicking to access the individual work\norder.\n\n## Work center performance\n\nPerformance for an individual work center can be viewed by selecting Configuration\n⣠Work Centers , and clicking on a work center. Metrics are displayed in smart buttons at the top\nof the form.\n- OEE : overall equipment effectiveness, the percentage of time that the work center has\nbeen productive out of its available work hours. See also Overall equipment effectiveness\nOEE : overall equipment effectiveness, the percentage of time that the work center has\nbeen productive out of its available work hours.\n- Overall equipment effectiveness\nOverall equipment effectiveness\n- Lost : the amount of time lost due to work stoppages\nLost : the amount of time lost due to work stoppages\n- Load : the amount of time it will take to complete the current workload\nLoad : the amount of time it will take to complete the current workload\n- Performance : the real duration of work time, shown as a percentage of the expected\nduration\nPerformance : the real duration of work time, shown as a percentage of the expected\nduration\n\n## Use case: measuring performance by shift using work centers\n\nWork centers support defined working hours, enabling the tracking of production efficiency by shift.\nTo configure shift-based tracking, create working hours for each of the shifts, then duplicate\nversions of each work center for each of the shifts. With this setup, comparing shift productivity\ncan be done with any of the available reporting tools.\n\n### Working hours for multiple shifts\n\nTo create working hours for multiple shifts, open a work center form and in the Working\nHours field click the ( Internal link ), and then click the New button to create a new set of hours for the second shift.\nA manufacturer has two shifts: a day shift from 5 AM to 1 PM and a night shift from 1 PM to 9 PM.\nStarting from any existing work center, edit the existing working hours to match the day shift.\nOnce the day shift is saved, click the (cog) icon and select Duplicate . Rename this new schedule Night Shift and change each Work\nfrom to 1 PM and Work from to 9 PM.\n`NightShift`\n\n### Work centers for multiple shifts\n\nTo create the duplicate work centers, return to the work center view by navigating to Configuration ⣠Work Centers and duplicating each of the work centers that are\nused by both shifts, either on the individual work center forms, or directly from the list view.\nTo duplicate work centers directly from the list view, click the (checkbox) that appears above the list items to select all. Then, click the Actions button at the top of the list and select Duplicate .\nA manufacturer has two work centers, Assembly Line 1 and Assembly Line 2 , and two working\nhours, Day Shift and Night Shift .\n`AssemblyLine1`\n`AssemblyLine2`\n`DayShift`\n`NightShift`\nTo create versions of Assembly Line 1 and Assembly Line 2 for each shift, duplicate each of\nthe work centers. Select the first work center and add the shift name in that work centerâs name\nand assign it the appropriate working hours. Optionally, configure each work center to use its\nopposite shift counterpart as an alternate work center to make sure that manufacturing orders get\nassigned to both. Tags can also help make a visual distinction between each shift.\n`AssemblyLine1`\n`AssemblyLine2`\nUse the (left arrow) and (right arrow) buttons in the\ntop left corner to move on to the next form in the list without returning to the list view.\n\n### Reports comparing different shifts\n\nWith multiple work centers created to represent shifts, reports that sort by work center will now\ncompare shifts. This can be used to compare the number of work orders that are being assigned each\nshift, the OEE, or actual time that each shift is taking to produce a product.\nA report has been created to compare the time efficiency of two shifts producing the same product\nin the same work center.\nTo create this report, go to Reporting ⣠Work Orders and click to remove the Ready or Waiting or Pending or In Progress filter by\nclicking the Remove icon on its right side. Next, click the Measures button and select Duration Deviation (%)\nIn this case, the day shift has on average taken more than the expected time to produce products\n(-6.50%) while the night shift took less than the expected time (15.00%).", "headings": ["Work center configuration", "Create a new work center", "Set productivity standards and allowed employees", "Set production capacities", "Integrate IoT devices", "Assigning equipment to work centers", "Configure equipment", "Work center planning", "Work center performance", "Use case: measuring performance by shift using work centers", "Working hours for multiple shifts", "Work centers for multiple shifts", "Reports comparing different shifts"], "doc_id": "6daa500a53279706"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/advanced_configuration/work_order_dependencies.html", "title": "Work order dependencies", "module": "manufacturing", "section": "Work order dependencies", "text": "# Work order dependencies\n\nWhen manufacturing certain products, specific operations may need to be completed before others can\nbegin. To ensure operations are carried out in the correct order, the Manufacturing app features\na work order dependencies setting. Enabling this setting blocks the bill of materials (BoM)\noperations when other operations should occur first.\n\n## Configuration\n\nThe work order dependencies setting is not enabled by default. To enable it, begin by navigating\nto Manufacturing app ⣠Configuration ⣠Settings . Then, enable the Work Orders setting if it is not already active.\nAfter enabling the Work Orders setting, the Work Order Dependencies setting\nappears below it. Enable Work Order Dependencies , then click Save to confirm\nthe changes.\n\n## Add dependencies to BoM\n\nWork order dependencies are configured on a productâs BoM . To do so, navigate to Manufacturing app ⣠Products ⣠Bills of Materials , then select a BoM , or\ncreate a new one by clicking New .\nOn the BoM , open the Miscellaneous tab, then select the Operation Dependencies checkbox. The Blocked By option becomes available under the (settings) menu of the Operations tab.\nOpen the Operations tab. Click the (settings) icon, then\nenable the Blocked By checkbox. The Blocked By field appears for each\noperation in the tab.\nIn the line of the operation that should be blocked by another operation, click the Blocked By field. The Open: Operations pop-up window opens. In the Blocked\nBy field, select the blocking operation that must be completed before the operation that is\nblocked.\nFinally, save the BoM by clicking (Save manually) .\n\n## Plan work orders using dependencies\n\nAfter work order dependencies are configured for a BoM , the Manufacturing app can plan work\norder schedules based on those dependencies. To plan the work orders for a manufacturing order,\nnavigate to Manufacturing app ⣠Operations ⣠Manufacturing Orders .\nNext, select a manufacturing order for a product with work order dependencies set on its BoM , or\ncreate a new manufacturing order by clicking New . If a new manufacturing order is\ncreated, select a BoM configured with work order dependencies from the Bill of\nMaterial drop-down field, then click Confirm .\nAfter confirming the manufacturing order, open the Work Orders tab to view the work\norders required to complete it. Any work orders that are not blocked by a different work order\ndisplay a Ready tag in the Status column.\nWork orders that are blocked by other work orders display a Waiting for another WO tag\ninstead. After the blocking work orders are completed, the tag updates to Ready .\nTo schedule the manufacturing orderâs work orders, click the Plan button at the top of\nthe page. After doing so, the Start field for each work order on the Work Orders tab\npopulates with a scheduled start date and time. A blocked work order is scheduled at the end of the\ntime period specified in the Expected Duration field of the work order that precedes it.\nA manufacturing order is created for Product A. The manufacturing order has two operations: Cut\nand Assemble. Each operation has an expected duration of 60 minutes, and the Assemble operation\nis blocked by the Cut operation.\nThe Plan button for the manufacturing order is clicked at 1:30 pm, and the Cut\noperation is scheduled to begin immediately. Since the Cut operation has an expected duration of\n60 minutes, the Assemble operation is scheduled to begin at 2:30 pm.\n\n### Planning views\n\nTwo work order planning views are available to display a visual representation of how work orders\nare planned:\n- Manufacturing app ⣠Planning ⣠Planning by Production\nManufacturing app ⣠Planning ⣠Planning by Production\n- Manufacturing app ⣠Planning ⣠Planning by Workcenter\nManufacturing app ⣠Planning ⣠Planning by Workcenter\nBoth open a Work Orders Planning page. This page shows a timeline of all the work orders scheduled\nfor each operation.\nPlanning by Production is best used to view work orders grouped by manufacturing order.\nThis view is ideal for providing estimated delivery times or determining if an order will be\ncompleted on schedule.\nPlanning by Workcenter is best used to view work orders grouped by the work center at\nwhich they take place. This view can help identify overloaded machines or bottlenecks in production.\nIn both views, if one work order is blocked by the completion of another, the work order that is\nblocked is shown as scheduled to start after the work order that blocks it. In addition, a grey\narrow connects the two work orders, leading from the blocking operation to the blocked operation.\n\n#### Resolving inconsistencies\n\nThe arrows on the Work Orders Planning page can also point out inconsistencies in the\nmanufacturing order and how to correct them. When the arrow changes color, an inconsistency has been\nintroduced.\nA workshop is manufacturing a table in three work orders:\n- Assemble\n- Apply finish\nIf the third work order is moved before the second work order, the third work order and the arrow\npointing to it turn red to indicate that the planned schedule violates the defined work order\ndependency.\nInconsistencies can be resolved in three ways:\n- Editing the work order schedule\nEditing the work order schedule\n- Using icons on the line\nUsing icons on the line\n- In the manufacturing order\nIn the manufacturing order\nTo resolve the scheduling conflict and keep the dependency, select the red work order. Click the Edit button, and the Open window appears. Click the red (exclamation triangle) icon next to the Start\nDate , and the Scheduling Information pop-up window appears.\nClick the Replan button, then click Save & Close to save the changes to the\nwork order. The work order is rescheduled after the previous work order in a way that maintains the\nwork order dependency.\nWhen hovering over the connecting line, three icons appear. The left and right arrows can be used to\nreschedule work orders to help maintain the correct work order dependencies.\n- Left arrow : The work order is scheduled to be performed earlier than its linked step.\nLeft arrow : The work order is scheduled to be performed earlier than its linked step.\n- Cancel button : When clicking this button, Odoo assumes the dependencies no longer apply due to\nan exception, and the link between the steps is broken. To remove the dependency, hover over the\nconnecting line. Click the X (cancel) button that appears, and the arrow between the two work\norders disappears.\nCancel button : When clicking this button, Odoo assumes the dependencies no longer apply due to\nan exception, and the link between the steps is broken. To remove the dependency, hover over the\nconnecting line. Click the X (cancel) button that appears, and the arrow between the two work\norders disappears.\n- Right arrow : The work order is scheduled to be performed later than its linked step.\nRight arrow : The work order is scheduled to be performed later than its linked step.\nProblems with scheduled work orders are visible in the Work Orders tab of the manufacturing order.\nProblems are indicated by the red (exclamation triangle) icon on the work order line.\nClick the red (exclamation triangle) icon, then click Replan in the Scheduling Information pop-up window. The work order is rescheduled to\nmaintain its dependencies.", "headings": ["Configuration", "Add dependencies to BoM", "Plan work orders using dependencies", "Planning views"], "doc_id": "db71839145b7b082"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration.html", "title": "Bill of materials", "module": "manufacturing", "section": "Bill of materials", "text": "# Bill of materials\n\nA bill of materials (or BoM for short) documents specific components, along with their\nrespective quantities, that are needed to produce or repair a product. In Odoo, BoMs serve as\nblueprints for manufactured goods and kits, and often include production operations and step-by-step\nguidelines, as well.\n\n## BoM setup\n\nTo create a BoM , go to Manufacturing app ⣠Products ⣠Bills of Materials and\nclick New .\nNext, set the BoM Type to Manufacture this Product .\nThen, specify required components and, if\nnecessary, define any manufacturing operations .\nIndividual BoMs can also be quickly accessed or created by clicking the Bill of\nMaterials smart button on any product form, as accessible through the Sales , Inventory , and Manufacturing apps, as well as through any internal links where a product is referenced (such\nas in a field or a line item).\nBoM for Drawer , displaying the Components tab.\n`Drawer`\n- Basic subcontracting\n\n### Components\n\nIn the Components tab of a BoM , specify components used to manufacture the product by\nclicking Add a line . From the Components drop-down menu, select from\nexisting products or create a new product by typing the name and selecting either the Create â â option to quickly add the line item, or the Create and edit⦠option to add the component and continue to its configuration form.\nOptionally, access additional fields by clicking the (settings\nadjust) icon to the far-right of the Components tab. Tick the checkboxes for the\nfollowing features to enable these columns:\n- Apply on Variants : specify which product variant each component is used in. When the field is left\nblank, the component is used in all product variants.\nApply on Variants : specify which product variant each component is used in. When the field is left\nblank, the component is used in all product variants.\n- Consumed in Operation : specify the operation using the component. Useful for\ndetermining manufacturing readiness .\nConsumed in Operation : specify the operation using the component. Useful for\ndetermining manufacturing readiness .\n- Manual Consumption : tick the checkbox to force operators to check the Consumed checkbox on a manufacturing order (MO). Not doing so triggers the Consumption Warning error message, where the consumed\ncomponent quantity must be manually inputted. Otherwise, the operation cannot be completed.\nManual Consumption : tick the checkbox to force operators to check the Consumed checkbox on a manufacturing order (MO).\nNot doing so triggers the Consumption Warning error message, where the consumed\ncomponent quantity must be manually inputted. Otherwise, the operation cannot be completed.\n\n### Operations\n\nAdd an operation to a BoM to specify instructions for production and register time spent on an\noperation. To use this feature, first enable the Work Orders feature by going to Manufacturing app ⣠Configuration ⣠Settings . In the Operations section, tick the Work Orders checkbox to enable the feature.\nWork order dependencies\nNext, navigate to the BoM by going to Manufacturing app ⣠Products ⣠Bill of\nMaterials and selecting the desired BoM . To add a new operation, go to the Operations tab, and click Add a line .\nDoing so opens the Create Operations pop-up window, where the various fields of the\noperation are configured:\n- Operation : name of the operation.\nOperation : name of the operation.\n- Work Center : select existing locations to perform the operation, or create a new work\ncenter by typing the name and selecting the Create â â option.\nWork Center : select existing locations to perform the operation, or create a new work\ncenter by typing the name and selecting the Create â â option.\n- Apply on Variants : specify if this operation is only available for certain product\nvariants. If the operation applies to all product variants, leave this field blank. See also Configuring BoMs for product variants\nApply on Variants : specify if this operation is only available for certain product\nvariants. If the operation applies to all product variants, leave this field blank.\nConfiguring BoMs for product variants\n- Duration Computation : choose how time spent on the operation is tracked. Opt for Compute based on tracked time to use the operationâs time tracker or Set\nduration manually if operators can record and modify time themselves. Choosing the Compute based on tracked time option enables the Based on last\n__ work orders option, which automatically estimates the time to complete this operation based on\nthe last few operations. Choosing Set duration manually enables the Default\nDuration field instead.\nDuration Computation : choose how time spent on the operation is tracked. Opt for Compute based on tracked time to use the operationâs time tracker or Set\nduration manually if operators can record and modify time themselves.\nChoosing the Compute based on tracked time option enables the Based on last\n__ work orders option, which automatically estimates the time to complete this operation based on\nthe last few operations. Choosing Set duration manually enables the Default\nDuration field instead.\n- Default Duration : estimated amount of time to complete the operation; used for planning manufacturing orders and determining work center availability .\nDefault Duration : estimated amount of time to complete the operation; used for planning manufacturing orders and determining work center availability .\n- Company : specify the company the BoM is available in.\nCompany : specify the company the BoM is available in.\nInclude operation details in the Work Sheet tab. Choose PDF to attach a file\nor Google Slide with public access to share a link. Select Text to type\ninstructions in the Description text field.\nType / for a list of formatting options and features, including ChatGPT.\n`/`\nFinally, click Save & Close to close the pop-up window. To add more operations, click Save & New and repeat the same steps above to configure another operation.\nEach operation is unique, as it is always exclusively linked to one BoM .\nAfter creating an operation, click the Copy Existing Operations button to choose an\noperation to duplicate.\n\n#### Instructions\n\nTo add detailed instructions to operations, the Quality app must be installed.\nAdd specific instructions to an existing operation by clicking the operationâs (list) icon in the Instructions column. The number in the Instructions column shows the number of existing detailed instructions there are for the\noperation.\nOn the Steps dashboard, click New to open a blank quality control point form\nwhere the new manufacturing step can be created. Here, give the specific instruction a Title and set the Type to Instructions . In the Instructions tab of the form, write out the directions for the step in the operation.\nFurther customizations can be made here on this form, beyond ordinary instructions, to also\ninclude specific types of quality control points that carry specific (or complex) conditions. For\nmore details about quality control points refer the Instruction check documentation.\n\n### Miscellaneous\n\nThe Miscellaneous tab contains more BoM configurations to customize procurement,\ncalculate costs, and define how components are consumed.\n- Manufacturing Readiness : choosing When components for the 1st operation are\navailable shows the Component Status as a green Not Available , when\nonly the components that are consumed in the first operation are in stock. This indicates that\nalthough not all components are available, operators can at least begin with the first operation.\nChoosing When all components are available displays a red Not\nAvailable component status unless all components are in available. Tip Specify which operation consumes each component on the BoM in the Manual Consumption\nfield .\nManufacturing Readiness : choosing When components for the 1st operation are\navailable shows the Component Status as a green Not Available , when\nonly the components that are consumed in the first operation are in stock. This indicates that\nalthough not all components are available, operators can at least begin with the first operation.\nChoosing When all components are available displays a red Not\nAvailable component status unless all components are in available.\nSpecify which operation consumes each component on the BoM in the Manual Consumption\nfield .\n- Version : displays the current BoM version, visible with the Odoo PLM app installed\nfor managing BoM changes.\nVersion : displays the current BoM version, visible with the Odoo PLM app installed\nfor managing BoM changes.\n- Flexible Consumption : specifies if components used can deviate from the quantity\ndefined on the BoM . Choose Blocked if operators must adhere strictly to the BoM quantity. Otherwise, choose Allowed or Allowed with Warning .\nFlexible Consumption : specifies if components used can deviate from the quantity\ndefined on the BoM . Choose Blocked if operators must adhere strictly to the BoM quantity. Otherwise, choose Allowed or Allowed with Warning .\n- Routing : select the preferred warehouseâs manufacturing operation type for products\nproduced in multiple warehouses. If left blank, this warehouseâs Manufacturing operation type is\nused by default.\nRouting : select the preferred warehouseâs manufacturing operation type for products\nproduced in multiple warehouses. If left blank, this warehouseâs Manufacturing operation type is\nused by default.\n`Manufacturing`\n- Analytic Distribution : select pre-created analytic distribution models from the list to automatically record\nthe cost of manufacturing products in the chosen journal.\nAnalytic Distribution : select pre-created analytic distribution models from the list to automatically record\nthe cost of manufacturing products in the chosen journal.\n- Manuf Lead Time : define the number of days needed to complete a MO from the date of\nconfirmation.\nManuf Lead Time : define the number of days needed to complete a MO from the date of\nconfirmation.\n- Days to prepare Manufacturing Order : number of days needed to replenish components, or\nmanufacture sub-assemblies of the product.\nDays to prepare Manufacturing Order : number of days needed to replenish components, or\nmanufacture sub-assemblies of the product.\n- Analytic distribution\nAnalytic distribution\n- Lead times\n\n## Add by-products to BoMs\n\nA by-product is a residual product that is created during production in addition to the main\nproduct of a BoM . Unlike the primary product, there can be more than one by-product on a BoM .\nTo add by-products to a BoM , first enable the By-Products feature in Manufacturing app ⣠Configuration ⣠Settings . In the Operations section, tick the checkbox for By-Products to enable the feature.\nOnce the feature is enabled, add by-products to a BoM by clicking the By-products tab.\nClick Add a line , and fill in the By-product , Quantity , and Unit of Measure . Optionally, specify a Produced in Operation for the\nby-product.\nThe by-product, Mush , is created in the Grind grapes operation when producing Red Wine .\n`Mush`\n`Grindgrapes`\n`RedWine`", "headings": ["BoM setup", "Components", "Operations", "Miscellaneous", "Add by-products to BoMs"], "doc_id": "1eb1451495371acf"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/basic_setup/configure_manufacturing_product.html", "title": "Manufacturing product configuration", "module": "manufacturing", "section": "Manufacturing product configuration", "text": "# Manufacturing product configuration\n\nIn order to manufacture a product in Odoo Manufacturing , the product must be properly configured.\nDoing so consists of enabling the Manufacturing route and configuring a bill of materials (BoM)\nfor the product. Once these steps are completed, the product is selectable when creating a new\nmanufacturing order.\n\n## Activate the Manufacture route\n\nThe Manufacture route is activated for each product on its own product page. To do so, begin by\nnavigating to Manufacturing ⣠Products ⣠Products . Then, select an existing\nproduct, or create a new one by clicking New .\nOn the product page, select the Inventory tab, then enable the Manufacture checkbox in the Routes section. This tells Odoo the product can be manufactured.\n\n### Lot/serial number tracking\n\nThe assignment of lots or serial numbers to newly manufactured products is optional. To optionally assign lots or serial numbers to newly manufactured products, go to the Traceability section in the Inventory tab. In the Tracking field, select By Unique Serial\nNumber or By Lots .\nDoing so enables the Lot/Serial Number field on a manufacturing order, or the Register\nProduction instruction on a work order card in the Shop Floor app.\nLot/Serial Number field on the MO.\nRegister Production option to generate lot/serial number on a work order card.\n\n## Configure a bill of materials (BoM)\n\nNext, a BoM must be configured for the product so Odoo knows how it is manufactured. A BoM is a\nlist of the components and operations required to manufacture a product.\nTo create a BoM for a specific product, navigate to Manufacturing ⣠Products â£\nProducts , then select the product. On the product page, click the Bill of Materials smart button at the top of the page, then select New to configure a new BoM .\nOn the BoM , the Product field auto-populates with the product. In the Quantity field, specify the number of units that the BoM produces.\nAdd a component to the BoM by selecting the Components tab and clicking Add\na line . Select a component from the Component drop-down menu, then enter the quantity\nin the Quantity field. Continue adding components on new lines until all components have\nbeen added.\nNext, select the Operations tab. Click Add a line and a Create\nOperations pop-up window appears. In the Operation field, specify the name of the\noperation being added (e.g. Assemble, Cut, etc.). Select the work center where the operation will be\ncarried out from the Work Center drop-down menu. Finally, click Save & Close to finish adding operations, or Save & New to add more.\nThe Operations tab only appears if the Work Orders setting is enabled. To\ndo so, navigate to Manufacturing ⣠Configuration ⣠Settings , then enable the Work Orders checkbox.\nThe section above provides instructions for creating a basic BoM that allows a product to be\nmanufactured in Odoo. However, it is by no means an exhaustive summary of all the options\navailable when configuring a BoM . For more information about bills of materials, see the\ndocumentation on how to create a bill of materials .", "headings": ["Activate the Manufacture route", "Lot/serial number tracking", "Configure a bill of materials (BoM)"], "doc_id": "cc7153bf131de542"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/basic_setup/mo_costs.html", "title": "Manufacturing order costs", "module": "manufacturing", "section": "Manufacturing order costs", "text": "# Manufacturing order costs\n\nThe ability to accurately calculate the cost of manufacturing a product is critical when determining\nproduct profitability. Odooâs Manufacturing app simplifies this calculation by automatically\ncalculating the cost to complete each manufacturing order (MO), as well as the average production\ncost of a product, based on all completed MOs .\nOdooâs Manufacturing app distinguishes between the MO cost and the real cost of an MO .\nThe MO cost represents how much it should cost to complete an MO , based on the\nconfiguration of the productâs bill of materials (BoM). This takes into account the cost and\nquantity of components, as well as the cost of completing the necessary operations.\nThe real cost represents how much it actually costs to complete the MO . A few factors can\ncause the real cost to differ from the MO cost. For example, an operation may take longer to\ncomplete than estimated, a greater component quantity might be needed than was specified on the BoM , or the price of components may change during manufacturing.\n\n## Cost configuration\n\nOdoo computes MO costs based on the configuration of the BoM used to manufacture a product. This\ncalculation includes the cost and quantity of components and operations listed on the BoM , in\naddition to the operating costs of the work centers where those operations are carried out, and the\namount paid to each employee who works on an operation.\n\n### Component cost\n\nComponent cost is calculated automatically, based on the average purchase cost of a component across\nall purchase orders (POs). To view a componentâs cost, navigate to Inventory app â>\nProducts â> Products , and select a component product. The cost is displayed in the Cost field of the General Information tab, on the componentâs product form.\nIt is possible to set the cost of a component manually, by clicking the Cost field on\nthe componentâs product form and entering a value. However, any future POs for the component\noverride a manually entered value, resetting the Cost field back to an automatically\ncomputed value.\n\n### Work center cost\n\nTo set the operating cost for a specific work center, navigate to Manufacturing app\n⣠Configuration ⣠Work Centers , and select a work center.\nTo set the cost of operating the work center for one hour, enter a value in the per\nworkcenter field, located beside the Cost per hour section on the work centerâs General Information tab.\nTo set the hourly cost of each employee that operates the work center, enter a value in the per employee field, located beside the Cost per hour section on the work\ncenterâs General Information tab. For example, if 25.00 is entered in the per employee field, it costs $25.00 per hour for each employee working at the work\ncenter.\n`25.00`\nThe value entered in the per employee field is only used to calculate the MO cost,\nwhich is the estimated cost of completing the MO .\nThe actual cost of completing the MO is represented by the real cost. Instead of using the\nvalue entered in the per employee field, the real cost is calculated using the hourly\ncost specific to each employee.\nFor example, if the per employee cost of a work center is â$50.00â, and an employee\nwith an hourly cost of â$60.00â completes a work order there, the MO cost (estimated) is\ncalculated using the $50/hr cost, while the real cost is calculated using the $60/hr cost.\nSee the employee cost section below for information\non how to set the cost for specific employees.\n\n### Employee cost\n\nTo set the hourly cost for a specific employee, navigate to the Employees app, and\nselect an employee. On the employeeâs form, select the Settings tab, and enter the\nemployeeâs rate in the Hourly Cost field of the Application Settings section.\nAs detailed in the work center cost section above, the value entered in the Hourly Cost field on the employeeâs form is used to\ncalculate the real cost of an MO . The estimated cost of an MO , referred to as the MO cost,\nuses the per employee cost set on each work centerâs form.\n\n### BoMconfiguration\n\nConfiguring a BoM so Odoo can accurately calculate the cost of MOs that use it requires two\nsteps. First, components must be added, and the required quantity specified. Second, operations must be added, along with the work centers where they are carried out.\nBegin by navigating to Manufacturing app ⣠Products ⣠Bills of Materials .\nSelect a BoM , or create a new one by clicking New .\nIn the Components tab of the BoM form, add each component by clicking Add a\nline , selecting the component from the drop-down menu in the Component column, and\nentering the quantity in the Quantity column.\nIn the Operations tab, add an operation by clicking Add a line to open the Create Operations pop-up window. Enter a title for the operation in the Operation field.\nSelect the Work Center where the operation is carried out. Then, add a Default Duration , which is the estimated amount of time the operation takes to complete.\nBy default, the Duration Computation field is set to Set duration manually ,\nwhich means that the number entered in Default Duration field is always used as the\nexpected duration of the operation.\nSelecting Compute based on tracked time causes Odoo to automatically compute the Default Duration based on a certain number of work orders, which is set in the Based on field. Before there are work orders to compute this duration, the value in the Default Duration field is used instead.\nThe hourly cost of operating the work center, and the duration of the operation, are used to\ncalculate the operationâs cost.\nFinally, click Save & Close to add the operation to the BoM , and close the Create Operations pop-up window. Alternatively, click Save & New to add the\noperation to the BoM , and open a blank Create Operations pop-up window to add another\noperation.\nFor a full overview of BoM configuration, see the documentation on bills of materials .\n\n## MOoverview\n\nEach MO has an overview page, which lists a variety of information about the MO , including MO cost and real cost. To view the overview for an MO , navigate to Manufacturing\napp ⣠Operations ⣠Manufacturing Orders , and select an MO . Then, click the Overview smart button at the top of the MO .\nBoth the MO cost and real cost take into account the cost and quantity of components, as well as\nthe cost of completing each work order. The overview page lists a row for each of these values, with\nthe sum of them listed at the bottom of the MO Cost and Real Cost columns.\nBefore work begins on an MO , the MO Cost and Real Cost columns display the\nsame costs. This is the estimated cost of completing the MO .\nHowever, once work commences, the values in the Real Cost column may begin to diverge\nfrom the values in the MO Cost column. This happens if a different component quantity is\nused than was listed on the MO , the duration of a work order is different than expected, or the\nhourly cost of the employee performing a work order differs from the employee cost set on the work\ncenter.\nOnce the MO has been completed by clicking Produce All , the values in the MO Cost column update to match those displayed in the Real Cost column.\n\n## Average manufacturing cost\n\nIn addition to the cost of each individual MO for a product, Odoo also tracks the average cost of\nmanufacturing the product, taking into account the cost of every completed MO . To view this,\nnavigate to Inventory app ⣠Products ⣠Products , and select a product.\nThe manufacturing cost of the product is displayed per unit of measure in the Cost field, located in the General Information tab. The value continues to update as the\ncosts of additional MOs are factored into the average cost.\nTo the right of the Cost field is a Compute Price from BoM button, which\nonly appears for products with at least one BoM . Click this button to reset the cost of the\nproduct to the expected cost, which only takes into account the components and operations listed on\nthe BoM .\nBe aware that clicking Compute Price from BoM does not set the price permanently. The\ncost continues to update based on the average of the BoM price and the real cost of any future MOs .\nExample workflow: manufacturing cost\nGolf product manufacturer Fairway Fields produces a variety of golf products, including an\nindoor putting green . They have configured a BoM for the putting green, so Odoo automatically\ncalculates the manufacturing cost of each putting green MO .\nThe BoM lists two components:\n- One unit of green felt , which costs $20.00.\nOne unit of green felt , which costs $20.00.\n- One unit of a rubber pad , which costs $30.00.\nOne unit of a rubber pad , which costs $30.00.\nThe BoM also lists four operations, all of which are carried out at Assembly Station 1 , which\nhas an hourly operating cost of $30.00. Those operations are as follows:\n- Cut felt : default duration of seven minutes, for a total cost of $3.50.\nCut felt : default duration of seven minutes, for a total cost of $3.50.\n- Cut rubber pad : default duration of five minutes, for a total cost of $2.50.\nCut rubber pad : default duration of five minutes, for a total cost of $2.50.\n- Attach pad to felt : default duration of 15 minutes, for a total cost of $7.50.\nAttach pad to felt : default duration of 15 minutes, for a total cost of $7.50.\n- Cut holes : default duration of three minutes, for a total cost of $1.50.\nCut holes : default duration of three minutes, for a total cost of $1.50.\nAltogether, the components required to produce one putting green cost $50.00, and the operations\nrequired cost $15.00, for a total manufacturing cost of $65.00. This cost is reflected in the Cost field on the putting greenâs product form.\nFairway Fields confirms an MO for one putting green. Before manufacturing starts, the MO overview lists a cost of $65.00 in both the MO Cost and Real Cost fields.\n`$65.00`\nManufacturing begins, and the operations take ten minutes longer than expected, for a total\nmanufacturing time of 40 minutes. This deviation from the BoM is reflected on the MO overview, which now lists a Real Cost of $70.00 .\n`$70.00`\nOnce manufacturing is finished, and the MO is marked as Done , the MO overview updates\nagain, so the values in the MO Cost and Real Cost columns match, each\ndisplaying a value of $70.00 .\n`$70.00`\nOn the putting greenâs product page, the Cost field now displays a cost of $67.50 ,\nthe average of the original cost of $65.00 and the real cost of $70.00 from the MO .\n`$67.50`", "headings": ["Cost configuration", "Component cost", "Work center cost", "Employee cost", "BoMconfiguration", "MOoverview", "Average manufacturing cost"], "doc_id": "97ee9392decf981f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/basic_setup/one_step_manufacturing.html", "title": "One-step manufacturing", "module": "manufacturing", "section": "One-step manufacturing", "text": "# One-step manufacturing\n\nOdoo Manufacturing allows users to manufacture products using one, two, or three steps. When using\none-step manufacturing, Odoo creates a manufacturing order (MO), but does not generate transfers for\nthe movement of components out of inventory or finished products into stock. Inventory counts still\nupdate based on the number of components used and products manufactured, but the act of transferring\nthem to and from inventory is not tracked.\nThe number of steps used in manufacturing is set at the warehouse level, allowing for each\nwarehouse to use a different number of steps. To change the number of steps used for a specific\nwarehouse, begin by navigating to Inventory ⣠Configuration ⣠Warehouses ,\nand then select a warehouse from the Warehouses screen.\nOn the Warehouse Configuration tab, find the Manufacture radio input\nfield, and select one of the three options: Manufacture (1 step) , Pick\ncomponents and then manufacture (2 steps) , or Pick components, manufacture and then\nstore products (3 steps) .\nProducts must be properly configured before they can be manufactured in Odoo. For details on how\nto do so, see the documentation on how to configure a product for manufacturing .\n\n## Create manufacturing order\n\nTo manufacture a product in Odoo Manufacturing , begin by navigating to Manufacturing ⣠Operations ⣠Manufacturing Orders , and then click New to create a new MO .\nOn the new MO , select the product to be produced from the Product drop-down menu. The Bill of Material field auto-populates with the associated bill of materials (BoM).\nIf a product has more than one BoM configured for it, the specific BoM can be selected in the Bill of Material field, and the Product field auto-populates with the\nassociated product.\nAfter a BoM has been selected, the Components and Work Orders tabs\nauto-populate with the components and operations specified on the BoM . If additional components or\noperations are required for the MO being configured, add them to the Components and Work Orders tabs by clicking Add a line .\nFinally, click Confirm to confirm the MO .\n\n## Process manufacturing order\n\nAn MO is processed by completing all of the work orders listed under its Work Orders tab. This can be done on the MO itself, or from the work order tablet view.\n\n### Basic workflow\n\nTo complete work orders from the MO itself, begin by navigating to Manufacturing\n⣠Operations ⣠Manufacturing Orders , and then select an MO .\nOn the MO page, select the Work Orders tab. Once work begins on the first work order\nthat needs to be completed, click the Start button for that work order. Odoo Manufacturing then starts a timer that keeps track of how long the work order takes to complete.\nWhen the work order is completed, click the Done button for that work order. Repeat the\nsame process for each work order listed on the Work Orders tab.\nAfter completing all of the work orders, click Produce All at the top of the screen to\nmark the MO as Done , and register the manufactured product(s) into inventory.\n\n### Shop Floor workflow\n\nTo complete the work orders for an MO using the Shop Floor module, begin by navigating to Manufacturing ⣠Operations ⣠Manufacturing Orders , and then select an MO .\nOn the MO , click on the Work Orders tab, and then select the âï¸ (square\nwith arrow coming out of it) button on the line of the first work order to be processed. Doing so\nopens a Work Orders pop-up window, with details and processing options for the work\norder.\nOn the pop-up window, select the Open Shop Floor button at the top-left of the window to\nopen the Shop Floor module.\nWhen accessed directly from a specific work order within an MO , Shop Floor defaults to the page\nfor the work center where the work order is configured to be carried out. The page shows a card for\nthe work order that displays the MO number, the product and number of units to be produced, and\nthe steps required to complete the work order.\nA work order is processed by completing each step listed on its card. This can be done by clicking\non a step and following the instructions listed on the pop-up window that appears. Once the step is\ncompleted, click Next to move on to the next step, if any are required.\nAlternatively, work order steps can be completed by clicking the checkbox that appears on the right\nside of the stepâs line on the work order card. When using this method, the step is automatically\nmarked as completed, without a pop-up window appearing.\nThe final step on a work order card is titled Register Production . This step is used to register\nthe number of product units that were produced. If the number produced is equal to the number that\nthe MO was created for, click the # Units button on the right side of the line to\nautomatically register that number as the quantity produced.\nIf a different number must be entered, click the Register Production step to open a\npop-up window. Enter the number of units produced in the Units field, and then click Validate to register that number.\nThe Register Production step appears on every work order card. It must be completed for the\nfirst work order that is processed. After doing so, the step appears as already completed for\neach remaining work order in the MO .\nAfter completing all of the steps for a work order, a button appears on the footer of the work order\ncard. If any other work orders must be completed before the MO can be closed, the button is titled Mark as Done . If there are no additional work orders to complete, the button is titled Close Production .\nClicking Mark as Done causes the work order card to fade away. Once it disappears\ncompletely, the work orderâs status is marked as Finished on the MO , and the next work order\nappears in the Shop Floor module, on the page of the work center where it is configured to be\ncarried out. Any additional work orders can be processed using the instructions detailed in this\nsection.\nClicking Close Production causes the work order card to fade away. Once it disappears,\nthe MO is marked as Done , and the units of the product that were produced are entered into\ninventory.\nAfter clicking Mark as Done or Close Production , each button is replaced by\nan Undo button. Click the Undo button before the work order card fades away\nto keep the work order open.\nThis section details the basic workflow for processing an MO in the Shop Floor module. For a\nmore in-depth explanation of the module and all of its features, please see the Shop Floor\noverview documentation.", "headings": ["Create manufacturing order", "Process manufacturing order", "Basic workflow", "Shop Floor workflow"], "doc_id": "a2a2d157a9d548a2"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/basic_setup/three_step_manufacturing.html", "title": "Three-step manufacturing", "module": "manufacturing", "section": "Three-step manufacturing", "text": "# Three-step manufacturing\n\nOdoo Manufacturing allows users to manufacture products using one, two, or three steps. When using\nthree-step manufacturing, Odoo creates a pick components transfer, a manufacturing order (MO), and a\nstore finished products transfer, and updates inventory counts based on the number of components\nremoved, and finished products created.\nThe number of steps used in manufacturing is set at the warehouse level, allowing for each\nwarehouse to use a different number of steps. To change the number of steps used for a specific\nwarehouse, begin by navigating to Inventory ⣠Configuration ⣠Warehouses ,\nand then select a warehouse from the Warehouses screen.\nOn the Warehouse Configuration tab, find the Manufacture radio input\nfield, and select one of the three options: Manufacture (1 step) , Pick\ncomponents and then manufacture (2 steps) , or Pick components, manufacture and then\nstore products (3 steps) .\nProducts must be properly configured before they can be manufactured in Odoo. For details on how\nto do so, see the documentation on how to configure a product for manufacturing .\n\n## Create manufacturing order\n\nTo manufacture a product in Odoo Manufacturing , begin by navigating to Manufacturing ⣠Operations ⣠Manufacturing Orders , and then click New to create a new MO .\nOn the new MO , select the product to be produced from the Product drop-down menu. The Bill of Material field auto-populates with the associated Bill of Materials (BoM).\nIf a product has more than one BoM configured for it, the specific BoM can be selected in the Bill of Material field, and the Product field auto-populates with the\nassociated product.\nAfter a BoM has been selected, the Components and Work Orders tabs\nauto-populate with the components and operations specified on the BoM . If additional components or\noperations are required for the MO being configured, add them to the Components and Work Orders tabs by clicking Add a line .\nFinally, click Confirm to confirm the MO .\n\n## Process pick components transfer\n\nAfter confirming a three-step MO , a Transfers smart button appears at the top of the\npage. Click it to be taken to the Transfers page for the MO . The page lists two\ntransfers: WH/PC/XXXXX (the pick components transfer), and WH/SFP/XXXXX (the store finished\nproducts transfer).\nSelect WH/PC/XXXXX to open the pick components transfer for the MO . This transfer is\nused to track the movement of components from the locations where they are stored to the location\nwhere they are used to manufacture the product.\nAfter transferring the components out of their storage location, click Validate at the\ntop of the transfer, followed by Apply on the Immediate Transfer? pop-up\nwindow that appears. Doing so marks the transfer as Done , and updates inventory counts\nto reflect the quantity of components transferred.\nFinally, return to the MO by clicking the WH/MO/XXXXX breadcrumb at the top of the\npage.\n\n## Process manufacturing order\n\nAn MO is processed by completing all of the work orders listed under its Work Orders tab. This can be done on the MO itself, or from the work order tablet view.\n\n### Basic workflow\n\nTo complete work orders from the MO itself, begin by navigating to Manufacturing\n⣠Operations ⣠Manufacturing Orders , and then select a manufacturing order.\nOn the MO page, select the Work Orders tab. Once work begins on the first work order\nthat needs to be completed, click the Start button for that work order. Odoo Manufacturing then starts a timer that keeps track of how long the work order takes to complete.\nWhen the work order is completed, click the Done button for that work order. Repeat the\nsame process for each work order listed on the Work Orders tab.\nAfter completing all of the work orders, click Produce All at the top of the screen to\nmark the MO as Done , and register the manufactured product(s) into inventory.\n\n### Shop Floor workflow\n\nTo complete the work orders for an MO using the Shop Floor module, begin by navigating to Manufacturing ⣠Operations ⣠Manufacturing Orders , and then select an MO .\nOn the MO , click on the Work Orders tab, and then select the âï¸ (square\nwith arrow coming out of it) button on the line of the first work order to be processed. Doing so\nopens a Work Orders pop-up window, with details and processing options for the work\norder.\nOn the pop-up window, select the Open Shop Floor button at the top-left of the window to\nopen the Shop Floor module.\nWhen accessed directly from a specific work order within an MO , Shop Floor defaults to the page\nfor the work center where the work order is configured to be carried out. The page shows a card for\nthe work order that displays the MO number, the product and number of units to be produced, and\nthe steps required to complete the work order.\nA work order is processed by completing each step listed on its card. This can be done by clicking\non a step, and following the instructions listed on the pop-up window that appears. Once the step is\ncompleted, click Next to move on to the next step, if any are required.\nAlternatively, work order steps can be completed by clicking the checkbox that appears on the right\nside of the stepâs line on the work order card. When using this method, the step is automatically\nmarked as completed, without a pop-up window appearing.\nThe final step on a work order card is titled Register Production . This step is used to register\nthe number of product units that were produced. If the number produced is equal to the number that\nthe MO was created for, click the # Units button on the right side of the line to\nautomatically register that number as the quantity produced.\nIf a different number must be entered, click the Register Production step to open a\npop-up window. Enter the number of units produced in the Units field, and then click Validate to register that number.\nThe Register Production step appears on every work order card. It must be completed for the\nfirst work order that is processed. After doing so, the step appears as already completed for\neach remaining work order in the MO .\nAfter completing all of the steps for a work order, a button appears on the footer of the work order\ncard. If any other work orders must be completed before the MO can be closed, the button is titled Mark as Done . If there are no additional work orders to complete, the button is titled Close Production .\nClicking Mark as Done causes the work order card to fade away. Once it disappears\ncompletely, the work orderâs status is marked as Finished on the MO , and the next work order\nappears in the Shop Floor module, on the page of the work center where it is configured to be\ncarried out. Any additional work orders can be processed using the instructions detailed in this\nsection.\nClicking Close Production causes the work order card to fade away. Once it disappears,\nthe MO is marked as Done , and the units of the product that were produced are entered into\ninventory.\nAfter clicking Mark as Done or Close Production , each button is replaced by\nan Undo button. Click the Undo button before the work order card fades away\nto keep the work order open.\nThis section details the basic workflow for processing an MO in the Shop Floor module. For a\nmore in-depth explanation of the module and all of its features, please see the Shop Floor\noverview documentation.\n\n## Process finished product transfer\n\nAfter completing the MO , return to the orderâs Transfers page by clicking the Transfers button at the top of the order. This time, select WH/SFP/XXXXX to\nopen the store finished products transfer. This transfer is used to track the movement of finished\nproducts from the location where they were manufactured to the location where they are stored.\nAfter transferring the finished products to their storage location, click Validate at\nthe top of the transfer, followed by Apply on the Immediate Transfer? pop-up\nwindow that appears. Doing so marks the transfer as Done , and updates inventory counts\nto reflect the quantity of finished products transferred.", "headings": ["Create manufacturing order", "Process pick components transfer", "Process manufacturing order", "Basic workflow", "Shop Floor workflow", "Process finished product transfer"], "doc_id": "e9cebb5a8106d2c6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/basic_setup/two_step_manufacturing.html", "title": "Two-step manufacturing", "module": "manufacturing", "section": "Two-step manufacturing", "text": "# Two-step manufacturing\n\nOdoo Manufacturing allows users to manufacture products using one, two, or three steps. When using\ntwo-step manufacturing, Odoo creates a manufacturing order (MO) and a pick components transfer, but\ndoes not generate a transfer for the movement of finished products into stock. Inventory counts\nstill update based on the number of products manufactured, but the act of transferring them to and\nfrom inventory is not tracked.\nThe number of steps used in manufacturing is set at the warehouse level, allowing for each\nwarehouse to use a different number of steps. To change the number of steps used for a specific\nwarehouse, begin by navigating to Inventory ⣠Configuration ⣠Warehouses ,\nand then select a warehouse from the Warehouses screen.\nOn the Warehouse Configuration tab, find the Manufacture radio input\nfield, and select one of the three options: Manufacture (1 step) , Pick\ncomponents and then manufacture (2 steps) , or Pick components, manufacture and then\nstore products (3 steps) .\nProducts must be properly configured before they can be manufactured in Odoo. For details on how\nto do so, see the documentation on how to configure a product for manufacturing .\n\n## Create manufacturing order\n\nTo manufacture a product in Odoo Manufacturing , begin by navigating to Manufacturing ⣠Operations ⣠Manufacturing Orders , and then click New to create a new MO .\nOn the new MO , select the product to be produced from the Product drop-down menu. The Bill of Material field auto-populates with the associated Bill of Materials (BoM).\nIf a product has more than one BoM configured for it, the specific BoM can be selected in the Bill of Material field, and the Product field auto-populates with the\nassociated product.\nAfter a BoM has been selected, the Components and Work Orders tabs\nauto-populate with the components and operations specified on the BoM . If additional components or\noperations are required for the MO being configured, add them to the Components and Work Orders tabs by clicking Add a line .\nFinally, click Confirm to confirm the MO .\n\n## Process pick components transfer\n\nAfter confirming a two-step MO , a Transfers smart button appears at the top of the\npage. Click it to open the pick components transfer for the MO . This transfer is used to track the\nmovement of components from the locations where they are stored to the location where they are used\nto manufacture the product.\nAfter transferring the components out of their storage location, click Validate at the\ntop of the transfer, followed by Apply on the Immediate Transfer? pop-up\nwindow that appears. Doing so marks the transfer as Done , and updates inventory counts\nto reflect the quantity of components transferred.\nFinally, return to the MO by clicking the WH/MO/XXXXX breadcrumb at the top of the\npage.\n\n## Process manufacturing order\n\nAn MO is processed by completing all of the work orders listed under its Work Orders tab. This can be done on the MO itself, or from the work order tablet view.\n\n### Basic workflow\n\nTo complete work orders from the MO itself, begin by navigating to Manufacturing\n⣠Operations ⣠Manufacturing Orders , and then select an MO .\nOn the MO page, select the Work Orders tab. Once work begins on the first work order\nthat needs to be completed, click the Start button for that operation. Odoo Manufacturing then starts a timer that keeps track of how long the work order takes to complete.\nWhen the work order is completed, click the Done button for that work order. Repeat the\nsame process for each work order listed on the Work Orders tab.\nAfter completing all of the work orders, click Produce All at the top of the screen to\nmark the MO as Done , and register the manufactured product(s) into inventory.\n\n### Shop Floor workflow\n\nTo complete the work orders for an MO using the Shop Floor module, begin by navigating to Manufacturing ⣠Operations ⣠Manufacturing Orders , and then select an MO .\nOn the MO , click on the Work Orders tab, and then select the âï¸ (square\nwith arrow coming out of it) button on the line of the first work order to be processed. Doing so\nopens a Work Orders pop-up window, with details and processing options for the work\norder.\nOn the pop-up window, select the Open Shop Floor button at the top-left of the window to\nopen the Shop Floor module.\nWhen accessed directly from a specific work order within an MO , Shop Floor defaults to the page\nfor the work center where the work order is configured to be carried out. The page shows a card for\nthe work order that displays the MO number, the product and number of units to be produced, and\nthe steps required to complete the work order.\nA work order is processed by completing each step listed on its card. This can be done by clicking\non a step and following the instructions listed on the pop-up window that appears. Once the step is\ncompleted, click Next to move on to the next step, if any are required.\nAlternatively, work order steps can be completed by clicking the checkbox that appears on the right\nside of the stepâs line on the work order card. When using this method, the step is automatically\nmarked as completed, without a pop-up window appearing.\nThe final step on a work order card is titled Register Production . This step is used to register\nthe number of product units that were produced. If the number produced is equal to the number that\nthe MO was created for, click the # Units button on the right side of the line to\nautomatically register that number as the quantity produced.\nIf a different number must be entered, click the Register Production step to open a\npop-up window. Enter the number of units produced in the Units field, and then click Validate to register that number.\nThe Register Production step appears on every work order card. It must be completed for the\nfirst work order that is processed. After doing so, the step appears as already completed for\neach remaining work order in the MO .\nAfter completing all of the steps for a work order, a button appears on the footer of the work order\ncard. If any other work orders must be completed before the MO can be closed, the button is titled Mark as Done . If there are no additional work orders to complete, the button is titled Close Production .\nClicking Mark as Done causes the work order card to fade away. Once it disappears\ncompletely, the work orderâs status is marked as Finished on the MO , and the next work order\nappears in the Shop Floor module, on the page of the work center where it is configured to be\ncarried out. Any additional work orders can be processed using the instructions detailed in this\nsection.\nClicking Close Production causes the work order card to fade away. Once it disappears,\nthe MO is marked as Done , and the units of the product that were produced are entered into\ninventory.\nAfter clicking Mark as Done or Close Production , each button is replaced by\nan Undo button. Click the Undo button before the work order card fades away\nto keep the work order open.\nThis section details the basic workflow for processing an MO in the Shop Floor module. For a\nmore in-depth explanation of the module and all of its features, please see the Shop Floor\noverview documentation.", "headings": ["Create manufacturing order", "Process pick components transfer", "Process manufacturing order", "Basic workflow", "Shop Floor workflow"], "doc_id": "198866afb2f21413"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/reporting/allocation.html", "title": "Allocation reports", "module": "manufacturing", "section": "Allocation reports", "text": "# Allocation reports\n\nWhen fulfilling sales orders (SOs), or sourcing components for manufacturing orders (MOs), it is\nsometimes necessary to prioritize one SO or MO over another. In situations where there is\ninsufficient stock on-hand to fulfill every SO or MO , ensuring that products and components are\nreserved for priority orders is essential.\nIn Odoo Manufacturing , allocation reports are used on MOs to assign products to specific sales\norders SOs , or components to specific MOs . This ensures the products or components are available\nfor those orders, and are not used by mistake.\n\n## Configuration\n\nTo use allocation reports, the Allocation Report for Manufacturing Orders feature must be\nenabled. To do so, navigate to Manufacturing app ⣠Configuration ⣠Settings ,\nand tick the checkbox next to Allocation Report for Manufacturing Orders . Then, click Save .\nFor products that are sold, it is also necessary to configure them so they can be included in SOs .\nTo do so, begin by navigating to Inventory ⣠Products ⣠Products , and select a\nproduct. Under the Product Name field on the product form, make sure that the Can Be Sold checkbox is ticked.\n\n## Allocate products\n\nTo allocate products or components from an MO to an SO , or to a different MO , begin by\nnavigating to Manufacturing app ⣠Operations ⣠Manufacturing Orders . Click New to create a new MO .\nOn the MO form, select a product in the Product field, and specify the quantity to be\nproduced in the Quantity field. Finally, click Confirm to confirm the MO .\nThe rest of the allocation workflow depends on the current on-hand quantity of the product being\nmanufactured, and whether or not there are any SOs or MOs which require the product, but have\nnot already been allocated units.\nIf there are existing SOs and MOs that require the product, and there are too few units\nof the product on-hand to fulfill those orders, then an Allocation smart\nbutton appears at the top of the page as soon as the MO is confirmed.\nIf there are existing SOs and MOs that require the product, and there are enough units\nof the product on-hand to fulfill those orders, then the Allocation smart button only appears at the top of the page once the MO has been marked as done, by clicking Produce All .\nIf there are not any existing SOs and MOs that require the product, the Allocation smart button does not appear, even when the MO has been marked as done.\nClick the Allocation smart button to open the MRP Reception\nReport for the MO . This report lists open delivery orders or MOs , depending on the type of\nproduct produced in the original MO .\n\n### Allocate to delivery order\n\nIf the MO contains a finished product, the report lists any open delivery orders for which\nquantities of the product have yet to be reserved.\nAn MO is created to produce three units of a rocking chair . Clicking the Allocation smart button on the MO opens an allocation report that lists open\ndelivery orders that require one or more rocking chairs.\nClick the Assign All button to the right of a specific order to assign products for each\nquantity required to fulfill that order.\nIf an order requires one quantity of four units of the product, and one quantity of one unit of\nthe product, clicking Assign All assigns five units of the product to fulfill both\nquantities.\nAlternatively, click Assign next to a specific quantity to only assign products to that\nquantity, and not any others in the order.\nIf an order requires one quantity of four units of the product, and one quantity of one unit of\nthe product, clicking Assign next to the quantity of one unit assigns a product to\nthat quantity, but leaves the quantity of four units without any products assigned.\n\n### Allocate to MO\n\nIf the MO contains a component, the report lists any open MOs for which quantities of the\ncomponent have yet to be reserved.\nAn MO is created to produce three units of wood , which is used as a component for the rocking chair product. Clicking the Allocation smart button on the MO opens an\nallocation report that lists open rocking chair MOs that require one or more pieces of wood.\nClick the Assign All or Assign button to the right of a specific MO to\nassign components to that MO .\n\n### Unassign products\n\nAfter assigning products to a quantity within a delivery order, or components to an MO ,\nthe Assign button turns into an Unassign button. Click Unassign to unreserve the assigned products from that quantity, making them available for other quantities.\n\n### Print labels\n\nAfter clicking Assign All or Assign , the Print Labels or Print Label button to the right of either button becomes selectable. Selecting either\nbutton generates and downloads a PDF document with one label for each product that was assigned.\nThese labels are used to designate each product as being reserved for that specific order.", "headings": ["Configuration", "Allocate products", "Allocate to delivery order", "Allocate to MO", "Unassign products", "Print labels"], "doc_id": "8d467b135afd11b6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/reporting/delayed.html", "title": "Delays", "module": "manufacturing", "section": "Delays", "text": "# Delays\n\nOdooâs Manufacturing app displays delays in manufacturing orders through the Delayed\nProductions filter. If the MO âs end date exceeds its deadline, the deadline is highlighted in red\nto draw attention to the delay.\n\n## Deadline calculation\n\nThe MO deadline depends on how the MO was created, and is calculated as follows:\n- Make To Order : the MO deadline is the Sales Order Delivery Date .\nMake To Order : the MO deadline is the Sales Order Delivery Date .\n- Replenishment : the MO deadline is today + Manufacturing Lead Time .\nReplenishment : the MO deadline is today + Manufacturing Lead Time .\n- Manually created MO : the deadline field remains empty.\nManually created MO : the deadline field remains empty.\nThe MO deadline is not the same as the MO end date .\nThe end date is computed as:\n\n## Filters\n\nSeveral additional filters are available to help track delays:\n- Delayed Productions : the MO âs scheduled start date is later than the deadline.\nDelayed Productions : the MO âs scheduled start date is later than the deadline.\n- Late : the MO âs scheduled end date exceeds the deadline, highlighted in red.\nLate : the MO âs scheduled end date exceeds the deadline, highlighted in red.\n- Late Availability : one or more required components are not available before the\ndeadline. For example, a confirmed purchase order or manufacturing order for components is\nscheduled to end after the MO deadline.\nLate Availability : one or more required components are not available before the\ndeadline. For example, a confirmed purchase order or manufacturing order for components is\nscheduled to end after the MO deadline.\n- Components Available : all components are available to begin production.\nComponents Available : all components are available to begin production.\n\n## Use case\n\nConsider an MO with a deadline of September 17th :\n- If production on the MO starts after September 17th, it appears in the Delayed\nProductions filter.\nIf production on the MO starts after September 17th, it appears in the Delayed\nProductions filter.\n- If required components are scheduled to arrive after September 17th, the MO appears in the Late Availability filter.\nIf required components are scheduled to arrive after September 17th, the MO appears in the Late Availability filter.\n- If the MO has a scheduled end date after September 17th, it appears in the Late filter.\nIf the MO has a scheduled end date after September 17th, it appears in the Late filter.\nBy combining these indicators, planners can quickly identify where production is at risk of missing\ndelivery commitments.", "headings": ["Deadline calculation", "Filters", "Use case"], "doc_id": "17bb72b5a7bb72ff"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/reporting/oee.html", "title": "Overall equipment effectiveness", "module": "manufacturing", "section": "Overall equipment effectiveness", "text": "# Overall equipment effectiveness\n\nIn Odooâs Manufacturing app, overall equipment effectiveness (OEE) represents the amount of time\na work center is fully productive. OEE is displayed as a percentage of the total time a work\ncenter is active.\nFully productive time is considered to be time when the work center is operational and processing work orders that have not exceeded their expected duration .\nOEE helps manufacturing teams understand the efficiency of work centers, and the causes of\nmanufacturing downtime.\nSince OEE tracks work center productivity, using it requires enabling the work centers feature\nin the settings of the Manufacturing app.\nTo do so, navigate to Manufacturing app ⣠Configuration ⣠Settings , and tick\nthe checkbox next to Work Orders , under the Operations heading. Then,\nclick Save .\n\n## Efficiency standards\n\nFor OEE to accurately reflect the percentage of fully productive time for a work center, the work\ncenter must be properly configured with the correct productivity metrics. These include the work\ncenterâs time efficiency , capacity , and OEE target .\n\n### Time efficiency\n\nTime efficiency represents the efficiency of a work center when processing work orders, and is\nrepresented as a percentage. A time efficiency value of 100% signifies that the work center\nprocesses work orders at the speed of the expected duration, as listed on a productâs BoM . A value\nless than or greater than 100% signifies that the work center processes work orders slower or faster\nthan an operationâs expected duration, respectively.\nTo set the time efficiency for a work center, navigate to Manufacturing app â£\nConfiguration ⣠Work Centers , and select a work center. On the General Information tab, enter a numerical value in the Time Efficiency field.\nManufacturing a chair product requires two operations: cut and assemble . The productâs BoM lists an expected duration of 30 minutes for each operation.\nThe cut operation is carried out at the cut station work center, which has a time efficiency\nvalue of 50%. This means it takes twice as long to complete the operation, for a total time of\none hour.\nThe assemble operation is carried out at the assembly line work center, which has a time\nefficiency value of 200%. This means it takes half as long to complete the operation, for a total\ntime of 15 minutes.\n\n### Capacity\n\nCapacity represents how many units of a product can be produced in parallel at a work center. The\nduration of work orders for multiple units increases or decreases, based on how many units the work\ncenter can handle.\nTo set the capacity for a work center, navigate to Manufacturing app â£\nConfiguration ⣠Work Centers , and select a work center. On the General Information tab, enter a numerical value in the Capacity field.\nA drill station work center has a capacity of one unit. An MO is confirmed for 10 units of a chair , a product manufactured using the drill station.\nSince there are ten times as many units to produce than the work center can handle at once, the\noperation time is ten times the duration listed on the productâs BoM .\n\n### OEEtarget\n\nThe OEE target is the goal for how much of a work centerâs operating time should be fully\nproductive time. It is displayed as a percentage, and should only be set as high as 100% .\n`100%`\nTo set the OEE target for a work center, navigate to Manufacturing app â£\nConfiguration ⣠Settings ⣠Work Centers , and select a work center. On the General\nInformation tab, enter a numerical value of 100.00 or less in the OEE Target field.\n`100.00`\n\n## CalculatingOEE\n\nOEE is represented as a percentage value between zero and 100. The value signifies the amount of\ntime that a work center was fully productive. The remainder signifies the amount of time that the\nwork center was operating at less than full efficiency. This can occur for a number of reasons,\nincluding reduced speed , material availability , and equipment failure .\n\n### Fully productive time\n\nFor a work center to be considered fully productive, it must be able to receive work orders, have\nthe components necessary to process work orders, and be operating within the expected duration of\nthe work order it is processing.\nAn assembly line work center is not blocked, and receives a work order to assemble a bicycle .\nThe required components are available, so production begins as soon as they are picked and\ndelivered to the work center. The work order has an expected duration of 30 minutes, and is\ncompleted in 27 minutes. All of this time is considered fully productive time.\n\n### Reduced speed\n\nWhen a work center is operating at reduced speed, it means that it is processing a work order that\nhas exceeded its expected duration. While the work center may be operational, this is not considered\nfully productive time.\nA cutting station work center receives a work order to cut boards for a table . The expected\nduration of the work order is 15 minutes. The work order ends up taking 18 minutes to complete.\nThe work center is considered to have been operating at reduced speed during the three minutes\nthat exceeded the expected duration.\n\n### Material availability\n\nMaterial availability refers to situations where a work center is able to accept a work order, but\nthe required components are not available. This can occur because the components are not in stock,\nor are reserved for a different order.\nManufacturing of a bench requires 20 units of wood . A manufacturing order (MO) is confirmed\nfor 10 units of the bench, but there is not enough wood in stock to begin manufacturing. The time\nit takes to acquire the wood is recorded as material availability downtime.\n\n### Equipment failure\n\nEquipment failure signifies any period of time when a work center is unusable due to maintenance\nissues with its equipment. This can be due to equipment breaking down, or when a work center is shut\ndown for scheduled maintenance. In these cases, a work center can be blocked using a maintenance request .\nThe drill at a drill station work center breaks down, causing the work center to be unusable. A\nmaintenance request is created to fix the drill, and the work center is blocked from receiving\nwork orders. It takes two hours to fix the drill, and make the work center available again. This\ntwo-hour period is recorded as equipment failure downtime.\n\n## OEEreporting\n\nTo view OEE reporting metrics for every work center, navigate to Manufacturing app\n⣠Reporting ⣠Overall Equipment Effectiveness . This page shows the metrics for each work center\nwith OEE data.\nAlternatively, to see OEE reporting metrics for a single work center, navigate to Manufacturing app ⣠Configuration ⣠Work Centers , and select a work center. At\nthe top of the work centerâs form, click the OEE smart button.\nBy default, the main OEE reporting page shows data in a bar chart, while the page for a specific\nwork center shows it in a pie chart. To select a different chart type on either page, click the (bar chart) , (line chart) , or (pie chart) button above the displayed chart.\nIt is also possible to see OEE data in a pivot view, or a list displaying each time entry, by\nclicking the (pivot view) or (list\nview) buttons at the top-right corner of the page.", "headings": ["Efficiency standards", "Time efficiency", "Capacity", "OEEtarget", "CalculatingOEE", "Fully productive time", "Reduced speed", "Material availability", "Equipment failure", "OEEreporting"], "doc_id": "3349e494683f7bff"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/reporting/production_analysis.html", "title": "Production analysis", "module": "manufacturing", "section": "Production analysis", "text": "# Production analysis\n\nThe Production Analysis report provides statistics about products manufactured using Odooâs Manufacturing app. The report is useful when trying to understand production costs, manufacturing\ndurations, and other important statistics about manufactured products.\nTo open the Production Analysis report, navigate to Manufacturing app ⣠Reporting\n⣠Production Analysis .\nThe Production Analysis report is one of many reports available across the Odoo app\nsuite. This documentation only covers the measures specific to the Production\nAnalysis report, along with a few use case examples.\nFor a full overview of the basic features available in most Odoo reports, see the documentation\non reporting essentials .\n\n## Measures\n\nMeasures are the datasets that can be selected in the Production Analysis report. Each\ndataset represents a specific statistic about MOs in the database. Choose a measure by clicking\nthe Measures button, and selecting one of the options from the\ndrop-down menu:\nThe options displayed in the Measures drop-down menu, and the\norder they appear in, differ depending on the filters, groupings, and comparisons enabled in the Search⦠bar. By default, the available measures appear as follows:\n- Average Employee Cost/Unit : the average cost paid to employees to produce one unit of\nthe product.\nAverage Employee Cost/Unit : the average cost paid to employees to produce one unit of\nthe product.\n- By-Products Total Cost : the total value of all by-products created by manufacturing\nthe product.\nBy-Products Total Cost : the total value of all by-products created by manufacturing\nthe product.\n- Component Cost/Unit : the average cost of the components required to produce one unit\nof the product.\nComponent Cost/Unit : the average cost of the components required to produce one unit\nof the product.\n- Cost/Unit : the average cost of producing one unit of the product, including component,\nemployee, operation, and subcontracting costs.\nCost/Unit : the average cost of producing one unit of the product, including component,\nemployee, operation, and subcontracting costs.\n- Duration of Operations/Unit : the average total duration of operations required to\nproduce one unit of the product.\nDuration of Operations/Unit : the average total duration of operations required to\nproduce one unit of the product.\n- Quantity Demanded : the total number of units of the product included in MOs .\nQuantity Demanded : the total number of units of the product included in MOs .\n- Quantity Produced : the total number of units of the product that have actually been\nproduced.\nQuantity Produced : the total number of units of the product that have actually been\nproduced.\n- Total Component Cost : the total amount spent on the productâs components, across every MO for the product.\nTotal Component Cost : the total amount spent on the productâs components, across every MO for the product.\n- Total Cost : the total amount spent manufacturing every unit of the product produced so\nfar.\nTotal Cost : the total amount spent manufacturing every unit of the product produced so\nfar.\n- Total Duration of Operations : the cumulative duration of every operation completed\nwhile manufacturing the product.\nTotal Duration of Operations : the cumulative duration of every operation completed\nwhile manufacturing the product.\n- Total Employee Cost : the cumulative amount paid to employees to manufacture the\nproduct.\nTotal Employee Cost : the cumulative amount paid to employees to manufacture the\nproduct.\n- Total Operation Cost : the cumulative amount spent on operations required to produce\nthe product.\nTotal Operation Cost : the cumulative amount spent on operations required to produce\nthe product.\n- Total Operation Cost/Unit : the average cost of the operations required to produce one\nunit of the product.\nTotal Operation Cost/Unit : the average cost of the operations required to produce one\nunit of the product.\n- Total Subcontracting Cost : the cumulative amount paid to subcontractors to produce the\nproduct.\nTotal Subcontracting Cost : the cumulative amount paid to subcontractors to produce the\nproduct.\n- Total Subcontracting Cost/Unit : the average cost of engaging a subcontractor to\nproduce one unit of the product.\nTotal Subcontracting Cost/Unit : the average cost of engaging a subcontractor to\nproduce one unit of the product.\n- Yield Percentage (%) : the total quantity of the product produced versus the total\nquantity demanded, represented as a percentage.\nYield Percentage (%) : the total quantity of the product produced versus the total\nquantity demanded, represented as a percentage.\n- Count : the total count of MOs created for the product.\nCount : the total count of MOs created for the product.\nOnly one measure can be selected at a time when one of the (graph view) options is enabled. However, multiple measures, and varying group-by\ncriteria (on the x and y axes), can be selected when using the (pivot table) .\n\n## Use case: compare products\n\nOne of the best uses for the Production Analysis report is comparing statistics about\ntwo or more products. This is accomplished by entering the products into the Search⦠bar, then selecting the necessary measure, filter, and grouping, to see the desired data.\nToy manufacturer Tommyâs Toys is trying to reduce their manufacturing operation costs. To\naccomplish this, they have decided to identify redundant products and cease manufacturing the\nones with higher operational costs.\nTwo of the toys that have been singled out for analysis are the pogo stick and moon shoes .\nTommyâs Toys believes these two toys are so similar that they can stop manufacturing one, without\nsignificantly impacting their product offering.\nTo compare operation costs for the toys, business analyst Mike opens the Manufacturing app, and navigates to the Production Analysis page. In\nthe Search⦠bar, he enters the names of both products. Then, he opens the Search⦠bar drop-down menu, and clicks Product in the Group\nBy section.\nBelow the Search⦠bar, Mike clicks on the Measures drop-down menu, and selects the Total Operation Cost/Unit option. Finally, he selects the (bar chart) graph type.\nWith these options selected, the Production Analysis report shows a bar chart for the\ncurrent year, with one bar for each product, signifying the average operation cost for one unit\nof the product.\nWith this data, Mike is able to see that the average operation cost for the moon shoes is almost\ntwice the cost of the pogo stick. Using this insight, Tommyâs Toys decides to cease production of\nmoon shoes, thus lowering their average cost of manufacturing operations.\n\n## Use case: compare time periods\n\nThe Production Analysis report can also be used to compare data for two different time\nperiods. This is accomplished using the options in the Comparison section of the Search⦠bar.\nFurniture company Fannyâs Furnishings wants to compare their production costs for the first and\nsecond quarters of 2024, to see which products they spent the most money producing in each\nquarter.\nTo compare the two time periods, shop floor supervisor Adam opens the Manufacturing app, and navigates to the Production Analysis page. He\nbegins by selecting the (pie chart) graph type option at the top\nof the page.\nThe Comparison feature is meant to be used with the (pie chart) graph type, or the (pivot) view.\nA Comparison option can still be selected with the other view types enabled, but\ndoing so does not change the way data is displayed on the report.\nNext, Adam selects the Total Cost option from the Measures drop-down menu. This option displays the total amount spent producing each\nproduct.\nIn the Search⦠bar drop-down menu, he leaves the 2024 filter enabled in\nthe End Date section, and enables the Q2 filter as well. With both of\nthese time periods selected, the pie chart shows data for the second quarter of 2024.\nFinally, Adam selects the End Date: Previous Period option in the Comparison section of the Search⦠bar. Doing so causes the pie chart to\nbe split into an inner circle, and an outer ring.\nThe outer ring shows data for the selected time period, quarter two of 2024. The inner circle\nshows data for the previous time period, quarter one of 2024.\nIf End Date: Previous Year is selected instead of End Date: Previous\nPeriod , the inner circle shows data for the selected time period, one year previous.\nIn the case of this example, it would show data for quarter two of 2023.\nUsing this report, Adam can see that the products with the highest total cost for quarter two are\nthe bicycle and tricycle . On the other hand, in quarter one, the roller skates had the\nhighest total cost.", "headings": ["Measures", "Use case: compare products", "Use case: compare time periods"], "doc_id": "d5fbceb7c0fc2997"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.html", "title": "Shop Floor overview", "module": "manufacturing", "section": "Shop Floor overview", "text": "# Shop Floor overview\n\nThe Shop Floor module is a companion module to the Manufacturing app. Shop Floor provides a\nvisual interface for processing manufacturing orders (MOs) and work orders. It also allows\nmanufacturing employees to track the amount of time spent working on manufacturing and work orders.\nThe Shop Floor module is installed alongside the Manufacturing app.\n\n## Opening Shop Floor\n\nShop Floor can be opened in the following ways:\n- Click the Shop Floor module icon from the main Odoo dashboard.\nClick the Shop Floor module icon from the main Odoo dashboard.\n- Click the Shop Floor smart button on a manufacturing order.\nThis will open the manufacturing order in the Shop Floor module.\nClick the Shop Floor smart button on a manufacturing order.\nThis will open the manufacturing order in the Shop Floor module.\n\n## Selecting work centers\n\nWhen Shop Floor is opened on a workstation, it is possible to select work centers to assign to it.\nOpen the Shop Floor app from either the main Odoo dashboard or from the Shop Floor smart button on a manufacturing order.\nIf it is the workstationâs first time opening Shop Floor , a window may open to allow a user to\nselect work centers. If the window does not open, click the (Add) icon\nnext to the list of work centers.\nSelect the work centers to assign to the workstation, then click Confirm .\n\n## Installing Shop Floor on a workstation\n\nShop Floor can be installed in the Chrome browser of a workstation to limit its access to other\nOdoo applications.\nFirst, open the Shop Floor app from either the main Odoo dashboard or from the Shop Floor smart button on a manufacturing order.\nOn the Shop Floor overview, a pop-up window to select work centers for the workstation may open.\nIf it does not open, click the (Add) icon next to the list of work\ncenters.\nClick the Install App button. A new window will open. In this window, click the Install button to install the app in the workstationâs browser.\n\n## Navigation\n\nShop Floor is broken down into three main views, which can be selected from the navigation bar at\nthe top of the module:\n- The All MO page serves as the moduleâs main dashboard and displays information cards\nfor MOs .\nThe All MO page serves as the moduleâs main dashboard and displays information cards\nfor MOs .\n- Each work center also has a dedicated page that displays information cards for the work orders\nassigned to it. Work center pages can be toggled on or off by clicking the (plus) icon in the navigation bar, selecting or deselecting them on the pop-up window\nthat appears, and then clicking Confirm .\nEach work center also has a dedicated page that displays information cards for the work orders\nassigned to it. Work center pages can be toggled on or off by clicking the (plus) icon in the navigation bar, selecting or deselecting them on the pop-up window\nthat appears, and then clicking Confirm .\n- The My WO page shows information cards for all work orders assigned to the employee\nwhose profile is currently active in the operator panel on the left side of the module. This page\nfunctions largely the same as the pages for each work center, but it only shows work orders\nassigned to the active employee.\nThe My WO page shows information cards for all work orders assigned to the employee\nwhose profile is currently active in the operator panel on the left side of the module. This page\nfunctions largely the same as the pages for each work center, but it only shows work orders\nassigned to the active employee.\nTo isolate an MO or work order so that no other orders appear, search the reference number of\nthe MO in the Search bar at the top of the module. This search filter remains\nactive when switching between the different module views.\nOn the left side of the module is the operator panel, which shows all of the employees currently\nsigned in to Shop Floor and allows new employees to sign in. The operator panel is always\navailable in the module, regardless of the selected view. It can be toggled on or off by clicking\nthe (sidebar) button in the navigation bar.\n\n### All MO page\n\nBy default, the All MO page shows an information card for every MO that is ready to start . An MO is considered ready to start once it has been confirmed, and all required components are\navailable.\nTo view every confirmed MO regardless of readiness, click the (close) icon on the MO Ready filter to remove it from the Search bar.\n\n#### MO information card\n\nAn MO information card on the All MO page displays all the relevant details of the\nassociated MO , and also provides employees with options for processing the MO .\nThe header for an MO card shows the MO number, the product and number of units being produced,\nand the MO status. If work on the MO has not yet begun, the status appears as Confirmed . Once work has begun, the status updates to In Progress . If all\nwork orders for an MO have been completed and the MO is ready to close, the status updates to To Close .\nThe main body of an MO card shows a line for each completed work order, if any, followed by the\ncurrent work order to be completed. Completed work orders appear in grey and are struck out. The\ncurrent work order is indicated by a button that opens the page for the work center to which the\norder is assigned.\nBelow the current work order is a line titled Register Production , which records lot or\nserial numbers for the units produced. Click the Register Production line to specify a\nlot or serial number for the produced units, then click Validate .\nTo register the quantity of products being produced, click the # Units button on the\nright side of the line, which automatically records the number of units the MO was created for as\nthe number of units produced. For example, if an MO is created for 10 units of a dining table,\nclicking the 10 units button records that 10 units were produced.\nThe footer of the MO card displays a Close Production button. This is used to close\nthe MO once production is completed. However, if any quality checks are required for the MO as a\nwhole (not the work orders within it), a Quality Checks button appears instead. Clicking Quality Checks opens a pop-up window where any required quality checks can be completed.\nAfter clicking Close Production , the MO card begins to fade, and an Undo button appears in the footer. Clicking Undo keeps the MO open. When the MO card\ndisappears completely, the work order is closed.\nOn the right side of the footer is a (gear) button, which opens a pop-up\nwindow with additional options for the MO :\n- Scrap : Send components to a scrap location when they are found to be defective.\nScrap : Send components to a scrap location when they are found to be defective.\n- Add Work Order : Add an additional work order to the MO .\nAdd Work Order : Add an additional work order to the MO .\n- Add Component : Add an additional component to the MO . Note Additional components are consumed in the Shop Floor module, but their stock moves will not be\nvalidated until the MO is closed.\nAdd Component : Add an additional component to the MO .\nAdditional components are consumed in the Shop Floor module, but their stock moves will not be\nvalidated until the MO is closed.\n- Open Manufacturing Order : opens the MO in the Manufacturing app\nOpen Manufacturing Order : opens the MO in the Manufacturing app\n- Log Note : Enter a note that will be visible on the backend and throughout all steps on\nthe shop floor.\nLog Note : Enter a note that will be visible on the backend and throughout all steps on\nthe shop floor.\n\n### Work center pages\n\nBy default, the page for each work center shows an information card for every work order assigned to\nit that is ready to start . A work order is considered ready to start once the MO it is a part of\nis ready to start, and any preceding work orders have been completed.\nTo view every confirmed work order assigned to a work center regardless of readiness, click the (remove) icon on the MO Ready filter to remove it from the Search bar.\n\n#### Work order information card\n\nThe work order information cards on a work centerâs page show all of the relevant details of the\nassociated work order, and also provide employees with options for processing the work order.\nThe header for a work order card shows the reference number of the MO that the work order is a\npart of, the product and number of units being produced. When work has begun, the status updates to\ndisplay a timer showing the total time the work order has been worked on. The instructions for each\nwork order open automatically when the timer starts.\nThe main body of a work order card shows a line for each step required to complete the work order.\nWork order steps can be completed by clicking on the line, then following the instructions on the\npop-up window that appears.\nBelow the final step of the work order is a line titled Register Production , which\nfunctions the same as the Register Production line on an MO card. Registering the\nnumber of units produced using the Register Production line on a work order card also\ncompletes the step for the associated MO card.\nIf there are instructions for a work order, the operator can expand the Instructions header in the work order. To complete a step, click the instruction line and follow the instructions\nin the pop-up window. The instructions that follow an individual instruction will automatically\nopen.\nIf the work order being processed is the final work order for the MO , a Close\nProduction button appears on the footer of the work order card. Clicking Close\nProduction closes both the work order and the MO , unless a quality check is required for the MO . In this case, the quality check must be completed from the MO card before the MO can be\nclosed.\nAlternatively, if the MO requires the completion of additional work orders, a Mark as\nDone button appears instead. Clicking Mark as Done marks the current work order as\ncompleted, and causes the next work order to appear on the page for the work center it is assigned\nto.\nAfter clicking Close Production or Mark as Done , the work order card begins\nto fade away, and an Undo button appears on the footer. Clicking Undo causes\nthe work order to remain open. Once the work order card disappears completely, the work order is\nmarked as Finished on the MO .\nOn the right side of the footer is a (gear) button, which opens a pop-up\nwindow with additional options for the work order:\n- Scrap : sends components to a scrap location when they are found to be defective.\nScrap : sends components to a scrap location when they are found to be defective.\n- Add Component : adds an additional component to the MO .\nAdd Component : adds an additional component to the MO .\n- Open Manufacturing Order : opens the associated MO in the Manufacturing app.\nOpen Manufacturing Order : opens the associated MO in the Manufacturing app.\n- Move to work center : transfers the work order to a different work center.\nMove to work center : transfers the work order to a different work center.\n- Update instructions : allows the user to propose a change to the work orderâs\ninstructions or steps.\nUpdate instructions : allows the user to propose a change to the work orderâs\ninstructions or steps.\n- Create a Quality Alert : opens a quality alert form that can be filled out to alert a\nquality team about a potential issue.\nCreate a Quality Alert : opens a quality alert form that can be filled out to alert a\nquality team about a potential issue.\n- Request Maintenance : creates a maintenance request for the work center.\nRequest Maintenance : creates a maintenance request for the work center.\n\n### Operator panel\n\nThe operator panel is used to manage the employees that are signed in to the Shop Floor module.\nThe panel shows the name and profile picture of every employee that is currently signed in across\nall instances of the database.\nTo interact with Shop Floor as a specific employee, click the employeeâs name to activate their\nprofile. Profiles that are not active appear with their names and profile pictures greyed-out.\nWhen an employee is selected in the operator panel, they can begin working on a work order by\nclicking the work orderâs heading. If an employee is working on one or more work orders, the work\norder titles appear under their name, as well as a timer showing how long theyâve been working on\neach order.\nTo add a new employee to the operator panel, click the Add Operator button at the bottom of the panel. Then, select an employee from the Select Employee pop-up\nwindow.\nTo remove an employee from the operator panel, click the (log out) button next to their name in the panel.\n\n## MO/WO prioritization\n\nThe Shop Floor module prioritizes orders based on their scheduled date . An order can be moved to\nthe top of the list by clicking the (star) icon in the MO form. MOs and work orders scheduled sooner are more highly prioritized and appear before orders which\nare scheduled further out.\nTo specify the scheduled date on an MO , begin by navigating to Manufacturing app\n⣠Operations ⣠Manufacturing Orders , and click New to create a new MO .\nClick on the Scheduled Date field to open a calendar popover window. By default, the Scheduled Date field and its corresponding pop-up window show the current date and time.\nUse the calendar to select the date on which processing should begin for the MO . In the two fields\nat the bottom of the popover window, enter the hour and minute at which processing should begin,\nusing the 24-hour clock format.\nFinally, click Apply at the bottom of the popover window to set the date and time for\nthe Scheduled Date field. Then, click the Confirm button at the top of the MO to confirm it.\nTo prioritize a manufacturing order and its work orders in the Shop Floor app, click the (star) icon in the MO form.\nOnce the MO is confirmed, it appears in the Shop Floor module, as long is it has the Ready status, which means all components are available.\nOn the Odoo dashboard, click on the Shop Floor module to open it. The All MO # page of the dashboard displays Ready MOs , organized in order of their scheduled dates.\nIf a manufacturing order should be prioritized above the standard date scheduling, click the (star) icon next to its number.\nAt the top of the module, select a work center to see the work orders assigned to it. The page for\neach work center organizes work orders, based on the scheduled dates of their corresponding MOs .\nThree MOs are confirmed for a Table product:\n- WH/MO/00076 has a Scheduled Date of April 2.\nWH/MO/00076 has a Scheduled Date of April 2.\n- WH/MO/00077 has a Scheduled Date of March 31.\nWH/MO/00077 has a Scheduled Date of March 31.\n- WH/MO/00078 has a Scheduled Date of April 1.\nWH/MO/00078 has a Scheduled Date of April 1.\nOn the All MO # page of the Shop Floor module, the cards for each MO appear in\nthis order: WH/MO/00077, WH/MO/00078, WH/MO/000076.\nEach MO requires one work order, carried out at Drill 1 . Clicking on the Drill 1 button at the top of the screen opens the page for the work center, which\ndisplays one card for each work order, appearing in the same order as their corresponding MOs .", "headings": ["Opening Shop Floor", "Selecting work centers", "Installing Shop Floor on a workstation", "Navigation", "All MO page", "Work center pages", "Operator panel", "MO/WO prioritization"], "doc_id": "ee374cf756d8e324"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_tracking.html", "title": "Shop Floor time tracking", "module": "manufacturing", "section": "Shop Floor time tracking", "text": "# Shop Floor time tracking\n\nBy signing in to the Odoo Shop Floor module as operators , employees can track the amount of time\nthey spend working on each work order. Odoo tracks the time it takes to complete each work order, as\nwell as the time each operator spends on it.\n\n## Manage operators\n\nWhen the Shop Floor module is first opened, the employee profile that is signed in to the database\nis automatically signed in as an operator.\nAll operators for the current session are listed in the operator panel next to the main content\narea. While the panel can list multiple employee profiles, only one employee can be active at once.\nThe active profile highlighted in the operator panel is used for time tracking. The panel can be\nopened or collapsed by clicking the (employee\npanel) icon located next to the view list.\n\n### Add an operator\n\nTo add employees to the operator panel, click the Add Operator button at\nthe bottom of the panel. In the Select Employee pop-up window, click on a specific employee to\nsign in using their profile. If no PIN code is required to sign in as that employee, the profile\nis automatically signed in and selected as the active operator.\nIf a PIN has been set for the employee, a Password? pop-up window opens. Enter the code using the\nnumber pad or keyboard, then click Confirm to sign in to the Shop Floor module.\nEach employee can be assigned a PIN, which must be entered when signing in to the Shop Floor module. Badges can also be generated and printed for checking in and out with Kiosk Mode in the Attendances app. See the Settings tab section for more details.\n\n### Switch profiles\n\nClick an employeeâs name to make their profile active. The active employee appears highlighted in\nblue, while employees who are signed in but not active appear faded out.\n\n### Log out an operator\n\nTo sign out a specific employee from the module, click the (logout) icon next to their name in the operator panel.\n\n## Track work order duration\n\nTo track time spent on a work order, begin by selecting the employee assigned to it from the\noperator panel.\nNext, select the work center where the work order is scheduled to be carried out. This can be done\nby selecting the work center in the Shop Floor module. Alternatively, open the manufacturing order\n(MO), open the Work Orders tab, and click the (Open Work\nOrder) icon. In the Work Orders pop-up window, click Open Shop\nFloor .\nIn the work center view, find the card for the work order. The assigned operatorâs avatar is listed\non the work order. When work begins, click the (play) icon to start\ntracking the duration. This duration tracks the collective time spent working on the work order by\nall employees. The operatorâs avatar is displayed on the work order to indicate that work has begun\nand is assigned to an operator.\nIn addition, the work order reference number appears in the operator panel under the employeeâs\nname, along with another timer that tracks the time the employee has spent individually on the work\norder. This timer only reflects work done during the current session, even if the employee has\npreviously worked on the work order.\n\n### View active profile work orders\n\nThe operator panel displays the work center location and the individual time spent for each work\norder an operator is working on. This timer only reflects work done during the current session, even\nif the operator has previously worked on the work order.\nOperators can work on multiple work orders simultaneously and track their time for each. Click My WO at the top of the page to see all of the work orders the active profile is working\non.\n\n### Pause and stop timer\n\nTo pause the timer on a work order, click the (pause) icon.\nWhen a work order is complete, click the Mark as Done button at the bottom of the work\norder card to remove it from the work center page.\nIf there are no additional work orders for the MO , the button says Close Production instead. Clicking Close Production marks the entire MO as Done and removes it\nfrom the Shop Floor module.\nThe Close Production button is always visible on the MO card in the All MO view.\n\n## View work order duration\n\n### By individual work order\n\nTo view the duration of a work order, navigate to Manufacturing app ⣠Operations\n⣠Work Orders .\nBy default, the search bar has a filter applied to display incomplete work orders only. To view work\norders that have been completed and marked as Done , remove the filter from the search bar by\nclicking on the (Remove) icon next to the filter.\nThe actual time it took to complete each work order is displayed in the Real Duration column. This value represents the total time spent on the work order by all operators who worked on\nit. It includes time tracked in the Shop Floor module as well as time tracked in the work order\nform or the Work Orders tab of the MO .\nTo view detailed time tracking information, select a work order. In the work order form, go to the Time Tracking tab to see a detailed list of all operators who have worked on the work order and\nthe amount of time they spent on it.\n\n### By manufacturing order\n\nTo view the duration of all work orders in a specific MO , navigate to Manufacturing app ⣠Operations ⣠Manufacturing Orders .\nBy default, the search bar has a filter applied to display incomplete MOs only. To view MOs that\nhave been completed and marked as Done , remove the filter from the search bar by clicking the (Remove) icon next to the filter.\nSelect an MO . In the MO form, go to the Work Orders tab to see a list of all work orders\nincluded in the MO .\nThe actual time it took to complete each work order is displayed in the Real Duration column. This value represents the total time spent on the work order by all operators who worked on\nit. It includes time tracked in the Shop Floor module as well as time tracked in the work order\nform or the Work Orders tab of the MO .\nTo view details for a specific work order, click the (Open Work\nOrder) icon. The work order form opens.", "headings": ["Manage operators", "Add an operator", "Switch profiles", "Log out an operator", "Track work order duration", "View active profile work orders", "Pause and stop timer", "View work order duration", "By individual work order", "By manufacturing order"], "doc_id": "85a5fc7f669bcda6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/subcontracting.html", "title": "Subcontracting", "module": "manufacturing", "section": "Subcontracting", "text": "# Subcontracting\n\nIn manufacturing, subcontracting is the process of a company engaging a third-party manufacturer,\nor subcontractor, to manufacture products that are then sold by the contracting company.\nSubcontracting provides a variety of benefits for both the contracting company and the\nsubcontractor.\nFor the contracting company, subcontracting allows them to sell a wide variety of manufactured\nproducts, without having to worry about investing in and maintaining the equipment and labor\nrequired to handle the manufacturing themselves.\nThis helps contracting companies stay flexible throughout economic cycles, as they can easily\nincrease or decrease their engagements with subcontractors, as necessitated by the current moment.\nIt also means they are able to focus on tasks they excel at, while delegating more specialized work\nto subcontractors.\nOn the other side of the relationship, subcontracting allows subcontractors to specialize in more\nniche areas of production, which might not be as profitable outside the bounds of a subcontracting\nengagement. In certain arrangements, it also provides them with the flexibility to choose which\nprojects they accept or decline, and how many they work on at any given time.\nIn Odoo, companies can configure their subcontracting workflows based on a variety of different\nfactors, including how components are sourced, and what happens to finished products once they are\nmanufactured.\n\n#### Basic subcontracting\n\nSubcontract products without supplying the subcontractor with components.\n\n#### Resupply subcontractor\n\nShip components to a subcontractor each time a PO for a subcontracted product is confirmed.\n\n#### Dropship to subcontractor\n\nDropship components to a subcontractor each time a PO for a subcontracted product is\nconfirmed.\n\n## Configuration\n\nTo enable subcontracting in Odoo, navigate to Manufacturing app ⣠Configuration\n⣠Settings , and tick the checkbox next to the Subcontracting setting, under the Operations heading. Then, click Save .\nWith subcontracting enabled, a few different features become available in Odoo:\n- On bills of materials (BoMs), the BoM Type field now includes a Subcontracting option.\nEnabling the Subcontracting BoM type designates the BoM âs product as a subcontracted\nproduct, which means Odoo knows that it is produced by a subcontractor, and not by the company\nthat owns the Odoo database.\nOn bills of materials (BoMs), the BoM Type field now includes a Subcontracting option.\nEnabling the Subcontracting BoM type designates the BoM âs product as a subcontracted\nproduct, which means Odoo knows that it is produced by a subcontractor, and not by the company\nthat owns the Odoo database.\n- Two subcontracting routes become available in the Inventory app, and can be assigned to specific\nproducts, on the Inventory tab of their product pages: Resupply Subcontractor on Order Dropship Subcontractor on Order\nTwo subcontracting routes become available in the Inventory app, and can be assigned to specific\nproducts, on the Inventory tab of their product pages:\n- Resupply Subcontractor on Order\nResupply Subcontractor on Order\n- Dropship Subcontractor on Order\nDropship Subcontractor on Order\n\n## Subcontracting workflows\n\nIn Odoo, there are three subcontracting workflows, the main difference between them being how the\nsubcontractor obtains the necessary components:\n- In the basic subcontracting workflow, the subcontractor is fully responsible for obtaining the\ncomponents. This workflow is outlined in the Basic subcontracting documentation.\nIn the basic subcontracting workflow, the subcontractor is fully responsible for obtaining the\ncomponents. This workflow is outlined in the Basic subcontracting documentation.\n- In the Resupply Subcontractor on Order workflow, the contracting company sends the components\nfrom their warehouse to the subcontractor. This workflow is outlined in the Resupply subcontracting documentation.\nIn the Resupply Subcontractor on Order workflow, the contracting company sends the components\nfrom their warehouse to the subcontractor. This workflow is outlined in the Resupply subcontracting documentation.\n- In the Dropship Subcontractor on Order workflow, the contracting company purchases the\ncomponents from a vendor, and has them delivered directly to the subcontractor. This workflow is\noutlined in the Dropship to subcontractor documentation.\nIn the Dropship Subcontractor on Order workflow, the contracting company purchases the\ncomponents from a vendor, and has them delivered directly to the subcontractor. This workflow is\noutlined in the Dropship to subcontractor documentation.\nIn addition to how a subcontractor obtains components, it is also necessary to consider why a\nproduct is being subcontracted, as well as what happens to products once they are manufactured by\nthe subcontractor.\nIn terms of why a product is being subcontracted, the two main reasons are to fulfill a customer\norder, or to replenish the quantity of stock on-hand.\nIn terms of what happens to products once they are manufactured, they can either be shipped to the\ncontracting company, or dropshipped directly to an end customer.\nEach of the three subcontracting workflows described above can be configured to facilitate any of\nthese possibilities, and the methods for doing so are outlined in their respective documentation.\n\n## Subcontracted product valuation\n\nThe valuation of a subcontracted product depends upon a few different variables:\n- The cost of the required components, if provided by the contracting company; from here on referred\nto as C .\nThe cost of the required components, if provided by the contracting company; from here on referred\nto as C .\n`C`\n- The price paid to the subcontractor for the service of manufacturing the subcontracted product;\nfrom here on referred to as M .\nThe price paid to the subcontractor for the service of manufacturing the subcontracted product;\nfrom here on referred to as M .\n`M`\n- The cost of shipping components to the subcontractor, and having them shipped back to the\ncontracting company; from here on referred to as S .\nThe cost of shipping components to the subcontractor, and having them shipped back to the\ncontracting company; from here on referred to as S .\n`S`\n- The cost of dropshipping, if the components are shipped by the subcontractor to the end customer;\nfrom here on referred to as D .\nThe cost of dropshipping, if the components are shipped by the subcontractor to the end customer;\nfrom here on referred to as D .\n`D`\n- Any other associated costs, like import taxes, etc.; from here on referred to as x .\nAny other associated costs, like import taxes, etc.; from here on referred to as x .\n`x`\nTherefore, the total valuation of a subcontracted product ( P ) can be represented by the following\nequation:\n`P`\nIt is important to note that not every subcontracted product valuation will include all of these\nvariables. For example, if the product is not dropshipped to the end customer, then there is no need\nto factor in the cost of dropshipping.", "headings": ["Configuration", "Subcontracting workflows", "Subcontracted product valuation"], "doc_id": "658429f2a463a965"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/subcontracting/subcontracting_basic.html", "title": "Basic subcontracting", "module": "manufacturing", "section": "Basic subcontracting", "text": "# Basic subcontracting\n\nIn basic subcontracting, a companyâs product is produced entirely by a subcontractor. The product is\nfirst purchased from the subcontractor, who acquires their own components, manufactures the final\nproduct, then delivers the final product to the contracting companyâs warehouse.\nThe following documentation covers how to configure a subcontracted product and trigger the\nsubcontracting process.\n\n## Configuration\n\nTo use subcontracting, contractors must first configure products with a vendor pricelist as well as a subcontracting-type BoM .\nThe pricelist allows the contracting company to purchase the product from the vendor (subcontractor)\nthrough a PO , while the BoM allows the product to be manufactured externally by the\nsubcontractor.\n\n### Configure product vendor\n\nTo configure a productâs vendor for basic subcontracting, navigate to Inventory app\n⣠Products ⣠Products . Then, select a product or create a new one.\nOn the product form, click the Purchase tab and add the productâs subcontractor as a\nvendor by clicking Add a line . Select the subcontractor in the Vendor drop-down menu.\nThen, enter the price of the product in the Price field.\nFinally, set a lead time for\nthe product in the Delivery Lead Time field to specify the number of days for the\nsubcontractor to produce and deliver the final product.\nSince contractors are only responsible for purchasing and receiving the final product, they do\nnot need to additionally configure manufacturing lead times on a BoM . Instead, provide only a\nsingle Delivery Lead Time on the vendor pricelist that factors in both the subcontractorâs\nmanufacturing and delivery time.\n\n### Configure BoM\n\nAfter specifying the vendor, configure a subcontracting-type BoM for the product. Click the Bill of Materials smart button on the product form. Then, select the desired BoM or\ncreate a new one.\nAlternatively, navigate to Manufacturing app ⣠Products ⣠Bills of\nMaterials , and select the BoM for the subcontracted product.\nIn the BoM Type field, select Subcontracting . In the resulting Subcontractors field, add one or more subcontractors.\nBecause the components and manufacturing are both handled by the subcontractor, there is no need to\nlist any components in the Components tab of the BoM .\n\n## Basic subcontracting workflow\n\nThe basic subcontracting workflow begins by creating a PO to purchase the product from the subcontractor (1).\nThe contractor (YourCompany) then confirms the PO , which creates a receipt to transfer the final product\n(2). The subcontractor manufactures the product and delivers it back to the contractor when done.\nOnce the product has been produced and received, the contractor validates the receipt (5) to trigger inventory moves from the subcontractor to the companyâs stock (3,\n4).\n\n### Create and confirm PO\n\nTo create a PO for the subcontracted product, navigate to Purchase app ⣠Orders\n⣠Purchase Orders , and click New .\nBegin filling out the PO by selecting a subcontractor from the Vendor drop-down menu.\nIn the Products tab, click Add a product to create a new product line.\nSelect the subcontracted product in the Product field, and enter the quantity in the Quantity field.\nAfter adding the product, the Expected Arrival field is updated with the finished\nproductâs expected delivery date, as configured earlier with the vendorâs Delivery Lead Time .\nFinally, click Confirm Order to confirm the PO . A receipt is automatically created,\nand a Receipt smart button appears at the top of the form.\n\n### Process receipt\n\nAfter the order is confirmed, the subcontractor manufactures the product and delivers the finished\ngood back to the contracting company.\nTo receive the finished product from the subcontractor, click the Receive Products button on the PO , or click the Receipt smart button at the top of the page. Then,\nclick Validate to enter the incoming shipment into inventory.\nIf multi-step inventory flows are\nenabled, additional transfers must be validated to enter the incoming product into stock.\n\n### Track inventory moves\n\nAfter validating a receipt, Odoo automatically generates inventory moves to track the movement of\nsubcontracted products between locations. To view these inventory moves, navigate to Inventory app ⣠Reporting ⣠Moves History .\nTo track inventory movement in subcontracting, Odoo sends any product components to a dedicated Subcontracting Location . A virtual location called Production then consumes the components and produces the finished good. Once produced, the\ngood then moves back to the Subcontracting Location before finally entering the contractorâs stock\nwhen the receipt is validated.\nBecause no components are sent in basic subcontracting, there is no movement from the Subcontracting Location to the Production location.", "headings": ["Configuration", "Configure product vendor", "Configure BoM", "Basic subcontracting workflow", "Create and confirm PO", "Process receipt", "Track inventory moves"], "doc_id": "82d8aa12218c26b7"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/subcontracting/subcontracting_dropship.html", "title": "Dropship to subcontractor", "module": "manufacturing", "section": "Dropship to subcontractor", "text": "# Dropship to subcontractor\n\nIn the Dropship to Subcontractor workflow, a company purchases the components of a product from a\nvendor, who delivers them directly to the subcontractor for manufacturing. The subcontractor then\nships the finished product back to the contracting company.\nThe following documentation covers how to configure a subcontracted product and trigger the Dropship to Subcontractor workflow.\n\n## Configuration\n\nTo use the Dropship to Subcontractor workflow, contractors must first configure subcontracted\nproducts with a vendor pricelist and a subcontracting-type BoM . Each\ncomponent must then be configured with the appropriate route .\nThe pricelist allows the contracting company to purchase the product from the vendor (subcontractor)\nthrough a PO , while the BoM allows the product to be manufactured externally by the\nsubcontractor. Routes are applied to each component in order to be properly sent from the\ndropshipping vendor to the subcontractor.\n\n### Configure product vendor\n\nTo configure a productâs vendor for subcontractor dropshipping, navigate to Inventory app ⣠Products ⣠Products , and select a product, or create a\nnew one .\nOn the product form, click the Purchase tab and add the productâs subcontractor as a vendor by\nclicking Add a line . Select the subcontractor in the Vendor drop-down menu.\nThen, enter the price of the product in the Price field.\nFinally, set a lead time for\nthe product in the Delivery Lead Time field to specify the number of days for the\nsubcontractor to receive components, produce the product, and deliver the finished good.\nContractors do not need to configure manufacturing lead times on a BoM . Instead, provide only a\nsingle Delivery Lead Time on the vendor pricelist, factoring in the duration for the\nsubcontractor to receive the components from the dropship vendor, manufacture the product, and\ndeliver the finished good back to the subcontractor.\n\n### Configure BoM\n\nAfter specifying the vendor, configure a subcontracting-type BoM for the product. To start, click\nthe Bill of Materials smart button on the productâs page. Then, select\nthe desired BoM or create a new one.\nAlternatively, navigate to Manufacturing app ⣠Products ⣠Bills of\nMaterials , and select the BoM for the subcontracted product.\nIn the BoM Type field, select the Subcontracting option. Then, add one or\nmore subcontractors in the Subcontractors field.\nFinally, make sure that all necessary components are specified on the Components tab. To\nadd a new component, click Add a line , select the component in the Component drop-down menu, and specify the required quantity in the Quantity field.\n\n### Configure components\n\nWhen dropshipping to subcontractors, each component of a product must have a specified vendor and\nhave the Dropship Subcontractor on Order route enabled. This allows the components to be properly\ndropshipped from the vendor to the subcontractor.\nTo specify a componentâs vendor, select the componentâs name in the Components tab, and\nclick the (Internal link) arrow.\nAlternatively, navigate to Inventory app ⣠Products ⣠Products and select\nthe component.\nOn the component product form, click the Purchase tab. Add a vendor by clicking Add a line . Then, select the vendor in the Vendor field.\nNext, to configure the route, click on the Inventory tab and select the Dropship\nSubcontractor on Order route in the Routes section.\nRepeat the process for every component dropshipped to the subcontractor.\n\n## Workflow\n\nThe Dropship to Subcontractor workflow begins by creating a PO to purchase the product from the\nsubcontractor (1).\nThe contractor (Your Company) then confirms the subcontractor PO (2). This creates an RfQ to\npurchase the components from the vendor, as well as a receipt to transfer the final product.\nNext, the contractor confirms the RfQ , turning it into a vendor PO and\ncreating a dropship order to send the components from the vendor to the subcontractor (3). Once the\ncontractor validates the dropship order, the subcontractor begins\nto manufacture the final product with the components and ships it to the contractor when done.\nOnce the product has been produced and received, the contractor validates the receipt (6) to trigger inventory\nmoves from the subcontractor to\nthe companyâs stock (4, 5).\n\n### Create and confirm subcontractor PO\n\nTo create a PO for the subcontracted product, navigate to Purchase app ⣠Orders\n⣠Purchase Orders , and click New .\nBegin filling out the PO by selecting a subcontractor from the Vendor drop-down menu.\nIn the Products tab, click Add a product to create a new product line.\nSelect the subcontracted product in the Product field, and enter the quantity in the Quantity field.\nAfter adding the product, the Expected Arrival field is updated with the finished\nproductâs expected delivery date, as configured earlier with the vendorâs Delivery Lead Time .\nFinally, click Confirm Order to confirm the PO . A receipt is automatically created,\nand a Receipt smart button appears at the top of the form. In addition,\na separate RfQ is automatically created to purchase the components from the dropship vendor.\nThis RfQ is not automatically linked to the PO . It is accessed separately on the Requests for Quotation page.\n\n### Confirm vendor RfQ\n\nTo confirm the vendor RfQ , navigate to Purchase app ⣠Orders ⣠Requests for\nQuotation . Select the newly-created RfQ for the appropriate vendor.\nOn the RfQ , the Deliver To field reads Dropship Subcontractor , and the Dropship Address field shows the name of the subcontractor to whom components are being\ndropshipped.\nClick Confirm Order to confirm the purchase of components from the vendor. Doing so\nturns the RfQ into a vendor PO . A Dropship smart button appears\nat the top of the vendor PO .\nSimultaneously, a Resupply smart button appears at the top of the subcontractor PO created earlier. In dropship subcontracting, this smart button links to the\ndropship order.\n\n### Validate dropship order\n\nOnce the components have been delivered to the subcontractor by the dropship vendor, click the Dropship smart button on the vendor PO to open the dropship order.\nThe dropship order can also be opened from the subcontractor PO . Navigate to Purchase app ⣠Orders ⣠Purchase Orders , select the PO , then click the Resupply smart button.\nFinally, click the Validate button at the top to confirm that the subcontractor has\nreceived the components. The subcontractor then begins manufacturing the final product.\n\n### Process receipt\n\nAfter the subcontractor completes production, the finished product is shipped to the contractor.\nTo receive the product into stock, navigate to Purchase app ⣠Orders ⣠Purchase\nOrders , and select the subcontractor PO .\nAt the top of the PO , click the Receive Products button, or click the Receipt smart button. Then, click Validate to enter the incoming shipment\ninto inventory.\nIf multi-step inventory flows are\nenabled, additional transfers must be validated to enter the incoming product into stock.\n\n### Track inventory moves\n\nAfter validating a receipt, Odoo automatically generates inventory moves to track the movement of\nsubcontracted products between locations. To view these inventory moves, navigate to Inventory app ⣠Reporting ⣠Moves History .\nIn the Dropship to Subcontractor workflow, product components are first sent from the vendors to a\ndedicated Subcontracting Location . A virtual location called Production then consumes the components and\nproduces the finished good. Once produced, the good then moves back to the Subcontracting Location before finally entering the contractorâs stock when the receipt is validated.", "headings": ["Configuration", "Configure product vendor", "Configure BoM", "Configure components", "Workflow", "Create and confirm subcontractor PO", "Confirm vendor RfQ", "Validate dropship order", "Process receipt", "Track inventory moves"], "doc_id": "3da3e052fb4bf61b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/subcontracting/subcontracting_resupply.html", "title": "Resupply subcontracting", "module": "manufacturing", "section": "Resupply subcontracting", "text": "# Resupply subcontracting\n\nIn resupply subcontracting, a company supplies the components of its product to a subcontractor, who\nmanufactures the product, then delivers the finished product to the contracting companyâs warehouse.\nThis article covers how to configure a subcontracted product and walk through the resupply\nsubcontracting process.\n\n## Configuration\n\nTo use the resupply subcontractor workflow, contractors must first configure products with a vendor pricelist and a subcontracting-type BoM . Each\ncomponent must then be configured with the appropriate route.\nThe pricelist allows the contracting company to purchase the product from the vendor (subcontractor)\nthrough a PO , while the BoM allows the product to be manufactured externally by the\nsubcontractor. Routes are applied to each component in order to be properly sent from the contractor\nto the subcontractor.\n\n### Configure product vendor\n\nTo configure a productâs vendor for resupply subcontracting, navigate to Inventory\napp ⣠Products ⣠Products , and select a product, or create a new one.\nOn the product form, click the Purchase tab and add the productâs subcontractor as a\nvendor by clicking Add a line . Select the subcontractor in the Vendor drop-down menu.\nThen, enter the price of the product in the Price field.\nFinally, set a lead time for\nthe product in the Delivery Lead Time field to specify the number of days for the\nsubcontractor to receive components, produce the product, and deliver the finished good.\nSince contractors are not responsible for manufacturing the final product, there is no need to\nconfigure manufacturing lead times on a BoM . Instead, provide only a single Delivery Lead\nTime on the vendor pricelist, factoring in the duration for the subcontractor to receive the\ncomponents from the contractor, manufacture the product, and deliver the finished good back to\nthe contractor.\n\n### Configure BoM\n\nAfter specifying the vendor, configure a subcontracting-type BoM for the product. To start, click\nthe Bill of Materials smart button on the productâs page. Then, select the desired BoM or create a new one.\nAlternatively, navigate to Manufacturing app ⣠Products ⣠Bills of\nMaterials , and select the BoM for the subcontracted product.\nIn the BoM Type field, select the Subcontracting option. Then, add one or\nmore subcontractors in the Subcontractors field below.\nFinally, add all necessary components in the Components tab. To add a new component,\nclick Add a line . Then, select the component in the Component drop-down\nmenu, and specify the required quantity in the Quantity field.\n\n### Configure components\n\nIn resupply subcontracting, each component must be individually configured with the Resupply\nSubcontractor on Order route. This allows the components to be transferred from the contractor to\nthe subcontractor when a PO is made for the subcontracted product.\nTo configure a componentâs route, select the componentâs name in the Components tab, and\nclick the (Internal link) arrow. Alternatively, navigate to Inventory app ⣠Products ⣠Products , and select the component.\nOn the component product form, click on the Inventory tab. Then, in the Routes section, select the Resupply Subcontractor on Order route.\nRepeat the process for every component that must be sent to the subcontractor.\n\n## Workflow\n\nThe resupply subcontracting workflow begins by creating a PO to purchase the product from the\nsubcontractor (1).\nThe contractor (YourCompany) then confirms the PO , which creates both a resupply order to transfer\nthe components and a receipt to receive the final product (2) from the subcontractor.\nNext, the contractor validates the transfer of components to the\nsubcontractor (3). The subcontractor begins producing the product.\nOnce the product has been produced and received, the contractor validates the receipt (6) to trigger inventory\nmoves from the subcontractor to\nthe companyâs stock (4, 5).\n\n### Create and confirm PO\n\nTo create a PO for the subcontracted product, navigate to Purchase app ⣠Orders\n⣠Purchase Orders and click New .\nBegin filling out the PO by selecting a subcontractor from the Vendor drop-down menu.\nIn the Products tab, click Add a product to create a new product line.\nSelect the subcontracted product in the Product field, and enter the quantity in the Quantity field.\nAfter adding the product, the Expected Arrival field is updated with the finished\nproductâs expected delivery date, as configured earlier with the vendor Delivery Lead Time .\nFinally, click Confirm Order to confirm the PO . A receipt and a resupply order are\nautomatically created, accessible via the Receipt and Resupply smart buttons\nat the top of the form.\n\n### Validate resupply order\n\nClick the Resupply smart button at the top of the PO to open the resupply order, and\nclick Validate to confirm that the components have been sent to the subcontractor.\nAlternatively, navigate to the Inventory app, click the (#) To Process button on the Resupply Subcontractor card, and select the relevant resupply order. Then,\nclick Validate to confirm that the components have been sent to the subcontractor.\n\n### Process receipt\n\nAfter the resupply order is confirmed, the subcontractor manufactures the product and delivers the\nfinished good back to the contracting company.\nTo receive the finished product from the subcontractor, click the Receive Products button on the PO , or click the Receipt smart button at the top of the page. Then,\nclick Validate to enter the incoming shipment into inventory.\nIf multi-step inventory flows are\nenabled, additional transfers must be validated to enter the incoming product into stock.\n\n### Track inventory moves\n\nAfter validating the receipt, Odoo automatically generates inventory moves to track the movement of\nsubcontracted products between locations. To view these inventory moves, navigate to Inventory app ⣠Reporting ⣠Moves History .\nIn resupply subcontracting, Odoo first transfers any product components to a dedicated Subcontracting Location . A virtual location called Production then consumes the components and produces the finished good. Once produced, the\ngood then moves back to the Subcontracting Location before finally entering the contractorâs stock\nwhen the receipt is validated.", "headings": ["Configuration", "Configure product vendor", "Configure BoM", "Configure components", "Workflow", "Create and confirm PO", "Validate resupply order", "Process receipt", "Track inventory moves"], "doc_id": "fa0079d12f7f2f4f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/workflows/byproducts.html", "title": "By-Products", "module": "manufacturing", "section": "By-Products", "text": "# By-Products\n\nWhen manufacturing certain products, it is common to be left with residual materials, in addition to\nthe finished product. These materials are known as by-products . By specifying the by-products\ncreated during manufacturing on a productâs bill of materials (BoM), the quantity of by-products\non-hand is tracked by Odoo.\nManufacturing a rocking chair requires ten pieces of wood. During production, five pieces of scrap wood are created, in addition to the rocking chair. By designating the scrap wood as a\nby-product on the rocking chairâs BoM , Odoo tracks the on-hand count of scrap wood, as well as\nthe quantity of rocking chairs produced.\n\n## Configuration\n\nTo specify by-products on a productâs BoM , the By-Products setting must be enabled. To do\nso, navigate to Manufacturing app ⣠Configuration ⣠Settings , and tick the By-Products checkbox, located under the Operations heading. Then, click Save to apply the change.\nWith the By-Products setting enabled, a By-products tab appears on product BoMs .\n\n## Add byproduct to BoM\n\nTo add by-products to a BoM , navigate to Manufacturing app ⣠Products ⣠Bills\nof Materials , and select a BoM .\nOn the BoM , select the By-products tab. Click Add a line , and select the\nby-product in the By-product drop-down field. In the Quantity field, enter\nthe quantity of the by-product produced during manufacturing.\nIf the by-product is produced during a specific operation of a manufacturing order (MO), select the\noperation in the Produced in Operation field. For example, if a scrap wood by-product is\nproduced during an Assemble operation, select that operation in the Produced in\nOperation field.\n\n## Manufacture by-product\n\nWhen an MO is completed and marked as Done , Odoo registers the quantity of by-products created\nduring the manufacturing process. To create a new MO , navigate to Manufacturing\napp ⣠Operations ⣠Manufacturing Orders , and click New .\nIn the Bill of Material field, select a BoM on which by-products have been specified.\nAfter doing so, the Product field auto-populates with the corresponding product. Click Confirm to confirm the MO .\nWhen manufacturing is completed, click the Produce All button at the top of the MO .\nAfter doing so, inventory counts update to reflect the quantity of by-product(s) produced, as well\nas the quantity of the product.\nClick the Product Moves smart button at the top of the MO page to see the movements of\ncomponents and products. Each by-product is listed on the resulting Inventory Moves page, with the From column displaying the virtual production location, and the To column displaying the location where the by-product is stored.", "headings": ["Configuration", "Add byproduct to BoM", "Manufacture by-product"], "doc_id": "7495a9c2b8874c3a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/workflows/continuous_improvement.html", "title": "Continuous product improvement", "module": "manufacturing", "section": "Continuous product improvement", "text": "# Continuous product improvement\n\nContinuous improvement is a general philosophy intended to help individuals and organizations\nconstantly improve themselves and the work they produce.\nThere are a variety of different methodologies that fall under the umbrella of continuous\nimprovement. These include kaizen, six sigma, and lean, among others. While the specific steps of\neach method differ, their goal remains the same: implement a process by which improvement is a\nperpetual goal, rather than a one-time accomplishment.\nThe sections below contain details about how Odoo can be used to implement four general steps common\nto many of the most popular continuous improvement strategies, with links to documentation about\nconfiguring the necessary features. The final section details how a specific company might configure\nthese Odoo implementations within their organization.\n- Identify problems\n- Suggest improvements\n- Implement strategies\n- Review actions\nContinuous improvement is not a one-size-fits-all methodology. While most strategies include\nbetween four and six steps, proper implementation requires developing a system tailored to the\nspecific needs of each company.\nThis is not a limitation, but rather a benefit, as it makes the methodology flexible enough to\nadapt to almost any use case. Odoo, in particular, adapts well to this flexibility, as it can be\nconfigured to meet the needs of almost any workflow.\nAs such, it is important to remember the content below only provides examples of how Odoo might be used. They should be viewed as more of a starting point, rather than a concrete\noutline that every organization must follow.\n\n## Identify problems\n\nBefore improvement can begin, it is necessary to determine where improvement is necessary. This is\nwhere identifying problems comes into play. Two of the best Odoo apps for identifying problems with\nproducts or processes are Helpdesk and Quality .\n\n### Helpdesk\n\nThe Helpdesk app is useful for receiving feedback from outside of the organization, like from\nclients or customers. This is accomplished by implementing one (or more) of the methods for receiving tickets , including email\naliases, live chat conversations, and website forms.\nUsing these methods, customers can submit feedback about problems, which is then reviewed by a\nmember of a helpdesk team . Depending on the outcome of the\nreview, the team member may decide to take further action to ensure the issue is addressed. This can\ninclude creating a quality alert .\n\n### Quality\n\nThe Quality app is useful for receiving feedback from within the organization, like from\nemployees.\nOne method for accomplishing this is to set up a quality control point (QCP). A QCP is used to automatically\ncreate quality checks at regular intervals, prompting employees to inspect, and confirm, the quality\nof a product.\nIf an issue is found, an employee can then create a quality alert to notify a quality team. Quality alerts can also\nbe created independent of a QCP , in the event that an employee discovers an issue without being\nprompted to check for one. This is a great way for customer support employees to notify a quality\nteam of an issue brought to their attention by a customer ticket.\n\n## Suggest improvements\n\nOnce a problem is identified, the next step is to put forward ideas for how to address the problem.\nAs with identifying problems, the Quality app is also useful for suggesting improvements. In\naddition, the PLM ( Product Lifecycle Management ) app can be used for this purpose, as well.\n\n### Quality\n\nWhen creating a quality alert to bring an\nissue to the attention of a quality team, the Corrective Actions and Preventive Actions tabs can be used to provide feedback about how the issue can be\naddressed.\nThe Corrective Actions tab is used to suggest a method for fixing items affected by the\nissue. For example, Screw the bolts on tighter, so the seat stays in place .\n`Screwtheboltsontighter,sotheseatstaysinplace`\nThe Preventive Actions tab is used to suggest a method for preventing the issue from\noccurring in the future. For example, Do not tighten the screws too much, or they will be stripped .\n`Donottightenthescrewstoomuch,ortheywillbestripped`\nThe quality team that reviews the alert sees these suggested actions, and can take them into account\nwhen deciding how to address the issue.\n\n### PLM\n\nThe PLM app is used to manage the lifecycle of a product from its introduction through each\nsuccessive version. As such, it is useful for testing ideas for product improvements.\nUsing engineering change orders , product\nmanagement teams can create new iterations of product BoMs , adding or removing specific components\nor operations, as needed. The products created using these BoMs are put through a review process\nto confirm the effectiveness of the changes.\n\n## Implement strategies\n\nImplementing strategies involves putting the proposed solutions from the suggest improvements step\ninto action. The PLM app continues to be useful during this step, as it can be configured to make BoM updates. The Field Service app can also be used by certain companies to make improvements to\nproducts that have already been sold to customers.\n\n### PLM\n\nOnce BoM changes have gone through the proper review process, they can be approved, and the\nupdated BoM put into use. This is accomplished by configuring one of the ECO review stages to apply the changes made to the BoM , at which point the updated BoM becomes available for new MOs .\nProduct BoMs can continue to be updated, as needed. The version control features of the PLM app allow for easy management of\nall versions of a given BoM .\n\n### Field Service\n\nThe PLM app is a great way to make changes to product BoMs . However, these changes only affect\nproducts produced using the new BoM . If a defective product has already been sold to a customer,\nit may be necessary to repair (or update) that product.\nIn such a case, the Field Service app can be used to schedule onsite interventions . These interventions allow service\ntechnicians (or other employees) to be sent to a customerâs location to address an issue with a\nproduct.\n\n## Review actions\n\nReviewing actions is where the âcontinuousâ part of continuous improvement comes into play, as it\nallows an organization to evaluate the decisions made in the previous steps. As such, this step is,\nessentially, returning to the beginning of the process, so that additional problems can be\nidentified and addressed.\nThis means that the Helpdesk and Quality apps should be used again to receive customer and\nemployee feedback. Another app that may be useful at this stage is the Surveys app.\n\n### Surveys\n\nAfter implementing changes to a product or process, it may be wise to solicit customers for their\nfeedback directly, rather than waiting to hear from them of their own volition. This may bring to\nlight feedback that customers may have otherwise neglected to share.\nOne of the best ways to accomplish this is through the Surveys app. Creating a survey, and sending it to customers who receive an updated product, increases the\nlikelihood of receiving relevant feedback about the product.\nExample workflow: coat rack product improvement\nWood Hut is a manufacturer of fine wood products. They are committed to manufacturing products\nof the highest-possible quality, and are always looking for ways to improve the products they\nsell, along with the processes used to create them.\nWood Hut uses the Odoo platform to manage every element of their production, fulfillment, and\ncustomer satisfaction processes. They have developed a custom product improvement workflow that\nincorporates the Helpdesk, Quality, PLM, and Manufacturing apps.\nOne of Wood Hutâs most popular products is their coat rack . Itâs made entirely of oak, and\ncustomers describe it as âsleek and elegant.â However, recent customer feedback about the coat\nrack has brought attention to quality issues that necessitate revising the current manufacturing\nprocess.\nThe product revision workflow begins when the customer service team receives a ticket in the\nHelpdesk app from a customer having problems with the coat rack she purchased. The customer,\nAbigail Peterson, has found that her coat rack falls over when more than five coats are hanging\nfrom it. This is a major issue, as the coat rack has enough dowels for six coats.\nMarc, the customer service employee assigned to the helpdesk ticket, opens the Quality app, and\ncreates a new quality alert. He tags the Production Quality Team and assigns Julie Andreson as\nthe quality employee responsible for the alert.\nJulie reviews the alert, and consults with her team about the best course of action. They decide\nthat it is necessary to revise the productâs BoM to prevent the issue from occurring in the\nfuture, which Julie notes in the Corrective Actions tab of the quality alert.\nThen, Julie messages product engineer, Joe Kazan in the chatter of the quality alert to bring it\nto his attention. Joe opens the PLM app and creates a new ECO , noting the problem with the\ncoat rack, and suggesting that a change to the productâs BoM may be necessary.\nJoe clicks Start Revision , and then the Revision smart button to open\nversion two of the coat rackâs BoM . This BoM was created alongside the ECO , and remains\narchived until it is approved.\nAfter some testing, Joe discovers that adding a metal support rod to the coat rack strengthens\nit, allowing the rack to hold six or more coats without falling over. He updates the BoM to\ninclude the support rod as one of the components, and adds an extra operation to make sure it is\ninstalled during the manufacturing process. Finally, he leaves a message in the chatter of the ECO , letting his manager, Jose, know that it is ready for review.\nJose reviews the changes, and confirms they are an effective method for addressing the problem\nwith the coat rack. He moves the ECO to the Approved stage, which makes version two of the\ncoat rack BoM the current version.\nNow, each time an MO is created to produce a coat rack, the updated BoM is automatically\nselected. Wood Hut begins producing the improved coat rack, and customer feedback confirms that\nthe new version has addressed the problem with its predecessor.\nUsing the Odoo platform, Wood Hut has implemented an end-to-end product improvement process.\nSince the essential elements of this process (customer feedback, quality control, etc.) are\nalways functioning, it can be reused to continuously update products and processes.", "headings": ["Identify problems", "Helpdesk", "Quality", "Suggest improvements", "Quality", "PLM", "Implement strategies", "PLM", "Field Service", "Review actions", "Surveys"], "doc_id": "668bf076ecf621f8"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/workflows/manufacture_lots_serials.html", "title": "Manufacture with lots and serial numbers", "module": "manufacturing", "section": "Manufacture with lots and serial numbers", "text": "# Manufacture with lots and serial numbers\n\nIn Odoo, lot numbers and serial numbers are used to identify and track products in Odoo. Serial\nnumbers are used to assign unique numbers to individual products, while lot numbers are used to\nassign a single number to multiple units of a specific product.\nWhen manufacturing products tracked using lots or serial numbers, Odoo requires the lot or serial\nnumber to be assigned to each product before manufacturing can be completed. This ensures that each\nproduct is properly tracked from the moment it enters inventory.\n\n## Configure products for tracking\n\nBy default, Odoo tracks the quantity of each product on hand, but does not track individual units of\na product. Lot or serial number tracking must be enabled for each product individually.\nTo track a product using lots or serial numbers, begin by navigating to Inventory\n⣠Configuration ⣠Settings , then scroll down to the Traceability section, and tick\nthe Lots & Serial Numbers checkbox. Finally, click Save to save the change.\nNext, click on Products ⣠Products , and select a product to track. Make sure the Track Inventory checkbox is ticked in the General Information tab. Since lot\nand serial number functionality is enabled, a drop-down menu appears next to the ticked checkbox.\nClick on the Track Inventory drop-down menu. By default, By Quantity is\nselected, which only tracks the quantity on hand. Select By Lots to track the product\nusing lot numbers, or By Unique Serial Number to track the product using serial numbers.\n\n## Lot number manufacturing\n\nTo manufacture a product tracked with lots, begin by navigating to Manufacturing â£\nOperations ⣠Manufacturing Orders . Click New to create a new manufacturing order\n(MO).\nIn the Product field, select a product tracked using lots, and enter the desired Quantity . Click Confirm to confirm the MO .\nOnce the MO is confirmed, a Lot/Serial Number field appears in the top section of the MO form. By default, this field is empty.\nTo populate the Lot/Serial Number field with a lot number, click the (plus) icon to the right of the field. Doing so automatically\ngenerates a lot, using the next available number, and enters it in the field.\nAlternatively, click on the Lot/Serial Number field and select an existing lot number,\nor manually enter a new lot number and click Create â#â in the drop-down menu.\nEither of these methods assign the product(s) in the MO a lot number before production is\nfinished. It is also possible to complete production and close the MO by clicking Produce All , without assigning a lot number. Doing so automatically generates and\nassigns a lot, using the next available number.\n\n## Serial number manufacturing\n\nTo manufacture a product tracked with serial numbers, begin by navigating to Manufacturing ⣠Operations ⣠Manufacturing Orders . Click New to\ncreate a new MO .\nIn the Product field, select a product tracked using serial numbers, and enter the\ndesired Quantity . Click Confirm to confirm the MO .\nOnce the MO is confirmed, a Lot/Serial Number field appears in the top section of the MO form. By default, this field is empty.\nThe rest of the manufacturing process depends on how many units the MO contains.\n\n### Manufacture single unit\n\nIf a single unit of the product is being manufactured, clicking Produce All closes the MO , and automatically generates and assigns the next available serial number, which appears in the Lot/Serial Number field.\nTo assign a serial number without closing the MO , enter a number manually in the Lot/Serial Number field, and click Create â#â , or click the (plus) icon to the right of the field to auto-fill it with the\nnext available number.\n\n### Manufacture multiple units\n\nWhen manufacturing a product tracked using serial numbers, an MO can be created for multiple\nunits. However, when serial numbers are assigned to each unit, either at the end of production or\nbefore, the MO is split into multiple MOs , each containing one unit of the product.\nEach of the split MOs is identified by a numerical tag added to the end of the original MO number.\nMO WH/MO/00109 contains two units of a Chair , a product tracked using serial numbers. A\nserial number is assigned to each unit of the chair. This causes the MO to be split into two MOs , each containing one unit of the chair. The MOs are titled WH/MO/00109-001 and WH/MO/00109-002 .\n`WH/MO/00109`\n`Chair`\n`WH/MO/00109-001`\n`WH/MO/00109-002`\nTo assign serial numbers to each unit of an MO , click Produce All to open the Batch Production pop-up window.\nThe First Lot/SN field of the pop-up window is auto-filled with the next available\nserial number. The Number of SN field defaults to the number of units being\nmanufactured. The values of either field can be changed manually.\nClick Generate to generate the specified number of serial numbers, beginning with the\nnumber entered in the First Lot/SN field. The serial numbers are displayed in the text\nbox at the bottom of the pop-up window, and can be manually changed after generation.\nTo assign serial numbers without completing production, click the Prepare MO button.\nDoing so splits the MO into individual MOs , one for each unit in the original MO . Each MO is\nleft open, and can be closed individually.\nTo assign serial numbers and complete production, click the Produce button. Doing so\nsplits the MO into individual MOs , one for each unit in the original MO . All of the MOs are\nclosed, since production is complete.\nAfter clicking Prepare MO or Produce , the Manufacturing app\nautomatically shows the first of the split MOs (ex. WH/MO/00109-001 ). To view and access the\nrest the split MOs , click the Backorders smart button at the top of the screen.\n`WH/MO/00109-001`", "headings": ["Configure products for tracking", "Lot number manufacturing", "Serial number manufacturing", "Manufacture single unit", "Manufacture multiple units"], "doc_id": "ac51631098b72ec8"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/workflows/manufacturing_backorders.html", "title": "Manufacturing backorders", "module": "manufacturing", "section": "Manufacturing backorders", "text": "# Manufacturing backorders\n\nIn some cases, the full quantity of a manufacturing order cannot be produced immediately. When this\nhappens, Odoo Manufacturing allows for the manufacturing of partial quantities of the order and\ncreates a backorder for the remaining amount.\nIn the Manufacturing app, creating a backorder splits the original manufacturing order into two\norders. The reference tag for each order is the tag used for the original order, followed by a\nhyphen and then an additional number to indicate that itâs a backorder.\nA company creates a manufacturing order with the reference tag WH/MO/00175 , for 10 units of Product X . After starting work on the manufacturing order, the employee working the production\nline realizes there are only enough components in stock to produce five units of the product.\nInstead of waiting for additional stock of the components, they manufacture five units and create\na backorder for the remaining five. This splits the manufacturing order into two separate orders: WH/MO/00175-001 and WH/MO/00175-002 .\nOrder 001 contains the five units that have been manufactured, and is immediately marked as Done . Order 002 contains the five units that still need to be manufactured and is\nmarked as In Progress . Once the remaining components are available, the employee\nreturns to order 002 and manufactures the remaining units before closing the order.\n\n## Create a manufacturing backorder\n\nTo create a backorder for part of a manufacturing order, begin by navigating to Manufacturing ⣠Operations ⣠Manufacturing Orders . Select a manufacturing order\nwith a quantity of two or more or create one by clicking Create .\nIf a new manufacturing order is created, select a product from the Product drop-down\nmenu and enter a quantity of two or more in the Quantity field, then click Confirm to confirm the order.\nAfter manufacturing the quantity that is being produced immediately, enter that number in the Quantity field at the top of the manufacturing order.\nNext, click Validate , and a You produced less than initial demand pop-up\nwindow appears, from which a backorder can be created. Click Create Backorder to split\nthe manufacturing order into two separate orders, with the reference tags WH/MO/XXXXX-001 and WH/MO/XXXXX-002 .\nOrder 001 contains the items that have been manufactured, and is closed immediately. Order 002 is the backorder that contains the items that have yet to be manufactured, and remains open, to be\ncompleted at a later date.\nOnce the remaining units can be manufactured, navigate to Manufacturing â£\nOperations ⣠Manufacturing Orders , and then select the backorder manufacturing order. If all of\nthe remaining units are manufactured immediately, simply click Validate to close the\norder.\nIf only some of the remaining units are manufactured immediately, create another backorder for the\nremainder by following the steps detailed in this section.\n\n## Create a backorder in Shop Floor\n\nBackorders for manufacturing orders can also be created from the Shop Floor module.\nIn order to use the Shop Floor module, the Work Orders setting must be enabled. To do so,\nnavigate to Manufacturing ⣠Configuration ⣠Settings , enable the Work Orders checkbox, and then click Save .\nTo create a backorder from the Shop Floor module, begin by navigating to Manufacturing ⣠Operations ⣠Manufacturing Orders . Select an MO for multiple\nunits of a product, for which a backorder needs to be created.\nOn the MO , select the Work Orders tab, and then click the Open Work Order\n(external link icon) button on the line of the work order to be processed. On the resulting Work Orders pop-up window, click the Open Shop Floor button to open the Shop Floor module.\nWhen accessed from a specific work order, the Shop Floor module opens to the page for the work\ncenter where the order is configured to be processed, and isolates the work orderâs card so that no\nother cards are shown.\nComplete the steps on the work orderâs card until the Register Production step is\nreached, and then click on it to open the Register Production pop-up window.\nDo not click the # Units button on the right side of the step. Doing so\nautomatically registers the full amount of units as having been produced.\nOn the Register Production pop-up window, enter the number of units produced in the Quantity field. Make sure the number entered is less than the number of units listed\nto the right of the field. Then, click Validate .\nThe pop-up window disappears and the # Units button on the work orderâs card updates to\nreflect the number of units produced, as a fraction of the number of units for which the MO was\noriginally created.\nNext, click the Mark as Done button at the bottom-right of the work orderâs card. The\nwork order card begins to fade away. Once it disappears completely, a new work order card appears,\ntitled with the original MO âs reference number with a -002 tag added to the end of it.\n`-002`\nThis new reference number represents the backorder MO . The original MO âs reference number now\nappears with a -001 tag added to the end of it to distinguish it from the backorder MO .\n`-001`\nIf the original MO has no remaining work orders, it can be closed by selecting the All filter in the top navigation of the Shop Floor module, and then clicking Close\nProduction at the bottom of the MO âs card.\nIf the original MO has remaining work orders that must be completed before it can be closed, cards\nfor these work orders appear on the Shop Floor pages for the work centers where they are\nconfigured to be carried out. They can be processed as normal, and additional backorders can be\ncreated from their work order cards using the instructions detailed in this section.\nOnce the current work order for the backorder MO is ready to be processed, this can also be\ncompleted as normal, and an additional backorder can be created from its work order card by\nfollowing the instructions detailed in this section.\nAfter the final work order for the backorder MO has been completed, the MO can be closed by\nclicking the Close Production button at the bottom of the work orderâs card.", "headings": ["Create a manufacturing backorder", "Create a backorder in Shop Floor"], "doc_id": "b9a78bf8afad6658"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/workflows/scrap_manufacturing.html", "title": "Scrap during manufacturing", "module": "manufacturing", "section": "Scrap during manufacturing", "text": "# Scrap during manufacturing\n\nDuring the manufacturing process, scrapping components or finished products may be necessary when\nitems are damaged, defective, or no longer usable.\nTracking scrapped materials helps manufacturers monitor waste, identify process issues, and account\nfor production costs.\nIn Odoo, scrapped items are removed from physical inventory and moved to a virtual location called Virtual Locations/Scrap . This location is not a physical spaceâit is a way to log and track losses\nwithout affecting real stock levels.\nScrap orders can be viewed by navigating to Inventory ⣠Operations ⣠Scrap .\nEach scrap order shows the date and time the order was created, along with the product and\nquantity that was scrapped.\nTo view the total quantity of each item scrapped, navigate to Inventory â£\nConfiguration ⣠Locations , then remove the Internal filter from the Search⦠bar to display all virtual locations. From the list, select the Virtual Locations/Scrap location.\n\n## Navigate to the scrap window\n\nScrapping can be done in either the Manufacturing app or the Shop Floor module, depending on\nthe task.\nManufacturing app allows:\n- Scrapping finished products (only if the MO is in the Done stage).\nScrapping finished products (only if the MO is in the Done stage).\n- Scrapping components (while the MO is in the Draft or Confirmed stage).\nScrapping components (while the MO is in the Draft or Confirmed stage).\n- Scrapping only components.\nScrapping only components.\n\n### Manufacturing app\n\nTo scrap a product from the Manufacturing app, go to Manufacturing â£\nOperations ⣠Manufacturing Orders and select the desired MO .\nOn the MO , click the (Actions) icon, then choose Scrap from\nthe drop-down menu.\n\n### Shop Floor\n\nIn Shop Floor , only components can be scrapped. Navigate to the desired MO card, and then tap\nthe (Actions) icon and in the What do you want to do? pop-up\nwindow, select Scrap .\n\n## Scrap pop-up window\n\nAfter opening the Scrap Products pop-up window using one of the methods detailed\nabove , select the component or finished product being\nscrapped, from the Product drop-down menu.\nIn the Quantity field, enter the quantity being scrapped.\nBy default, the Source Location field is set to the warehouseâs pre-production location,\nwhile the Scrap Location field is set to the Virtual Locations/Scrap location. If either the source or scrap location should be changed, select a different location from\ntheir respective drop-down menus.\nEnable the Replenish Scrapped Quantities checkbox if a picking order should be created\nto replace the scrapped component upon confirmation of the scrap order. This option should only be\nenabled for warehouses with two-step or three-step manufacturing enabled, since components\nare not picked as part of the one-step manufacturing\nprocess.\nAfter filling out the Scrap Products pop-up window, click the Scrap Products button. After one or more scrap orders have been created, a Scraps smart button appears\nat the top of the screen. Click it to view a list of all scrap orders for the MO .", "headings": ["Navigate to the scrap window", "Manufacturing app", "Shop Floor", "Scrap pop-up window"], "doc_id": "7d547e1aaad70936"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/workflows/split_merge.html", "title": "Split and merge manufacturing orders", "module": "manufacturing", "section": "Split and merge manufacturing orders", "text": "# Split and merge manufacturing orders\n\nIn Odoo Manufacturing , it is possible to create manufacturing orders for a single unit of an item,\nor multiple units of the same item. In some cases, it may be necessary to split a manufacturing\norder that contains multiple units into two or more orders, or to merge two or more orders into a\nsingle order.\nA manufacturing order can only contain one unit of a product, or multiple units of a single\nproduct that all use the same Bill of Materials (BoM). As a result, it is only possible to merge\nmanufacturing orders when every order contains the same product being manufactured with the same\nBoM.\n\n## Split manufacturing orders\n\nTo split a manufacturing order into multiple orders, begin by navigating to Manufacturing ⣠Operations ⣠Manufacturing Orders , then select a manufacturing\norder. At the top of the page, next to the New button, the manufacturing orderâs\nreference number appears with a âï¸ (settings) button next to it.\nClick the âï¸ (settings) button to open the general settings for the manufacturing order,\nthen select Split .\nAfter selecting Split , a Split production pop-up window appears. In the Split # field, enter the number of manufacturing orders that the original order should\nbe split into, then click outside of the field. A table appears below, with a line for each new\nmanufacturing order that will be created by the split. In the Quantity To Produce column, enter the number of units that will be assigned to each new manufacturing order. Finally,\nclick Split to split the manufacturing order.\nAfter clicking Split , the original manufacturing order is split into the number of\norders that was specified in the Split # field. The reference numbers for the new\nmanufacturing orders are the reference number for the original order with -### tags added to the\nend.\nManufacturing order WH/MO/00012 is split into three separate orders. The reference numbers for\nthe new orders are WH/MO/00012-001 , WH/MO/00012-002 , and WH/MO/00012-003 .\n\n## Merge manufacturing orders\n\nTo merge two or more manufacturing orders into a single order, begin by navigating to Manufacturing ⣠Operations ⣠Manufacturing Orders . Select the manufacturing\norders that will be merged by activating the checkbox to the left of the name of each order.\nOnce all manufacturing orders have been selected, click the Actions button at the top of\nthe page, then select Merge from the drop-down menu.\nThe selected manufacturing orders are merged into a single order. The reference number for the new\nmanufacturing order is the next sequential number that has not already been assigned to an order.\nThe last reference number used for a manufacturing order was WH/MO/00012 . Two manufacturing\norders, WH/MO/00008 and WH/MO/00009 , are merged into a single order. The reference number for\nthe manufacturing order created by the merger is WH/MO/00013 .\nIn the Source field for the manufacturing order created by the merger, the reference\nnumbers of the manufacturing orders that were merged are listed.\nManufacturing orders WH/MO/00009 and WH/MO/00010 are merged to create WH/MO/00011 . The\nsource field for WH/MO/00011 lists both WH/MO/00009 and WH/MO/00010 .", "headings": ["Split manufacturing orders", "Merge manufacturing orders"], "doc_id": "1a8ccb610e0bf42a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/workflows/unbuild_orders.html", "title": "Unbuild orders", "module": "manufacturing", "section": "Unbuild orders", "text": "# Unbuild orders\n\nIn some cases, it is necessary to dismantle manufactured products into their individual components.\nThis may be required if too many units of a product were built, or if the components of one product\nmust be reclaimed to use in the manufacturing of another.\nIn Odoo Manufacturing , products can be dismantled, and their components returned to inventory,\nusing unbuild orders . By using unbuild orders to accomplish this task, inventory counts for the\nfinished product and its components remain accurate, based on the quantity of products dismantled,\nand the quantity of components reclaimed.\n\n## Create unbuild order\n\nA new unbuild order can be created by navigating to Manufacturing app ⣠Operations\n⣠Unbuild Orders , and clicking New .\nBegin filling out the new unbuild order by selecting a Product to unbuild. After doing\nso, the Bill of Material field auto-populates with the corresponding bill of materials\n(BoM). If a different BoM should be used, click on the Bill of Material field, and\nselect it from the drop-down menu.\nAlternatively, a specific BoM can be selected in the Bill of Material field before\nselecting a product, which causes the corresponding product to auto-populate in the Product field.\nNext, specify the Quantity of the product that is being unbuilt.\nIf the product being unbuilt was originally manufactured in a specific manufacturing order (MO),\nselect it in the Manufacturing Order field.\nIn the Source Location field, select the location where the product being unbuilt is\ncurrently stored.\nIn the Destination Location field, select the location where the reclaimed components\nare stored after the unbuild order is completed.\nIf the Lots & Serial Numbers feature is enabled in the settings of the Inventory app, a Lot/Serial Number field appears on the unbuild order, which can be used to specify the\nlot(s) or serial number(s) of the product being unbuilt, if any are assigned.\nIf the Odoo database has been configured with multiple companies, a Company field\nappears on the unbuild order, which can be used to specify the company that owns the product being\nunbuilt.\nFinally, once the product has been unbuilt, click the Unbuild button at the top of the\norder to confirm that it has been completed.\nWhile it is possible to create unbuild orders for products that have zero (or fewer) units\non-hand, this is not advised, since it can lead to inventory inconsistencies.\nIf an unbuild order is created for a product with zero (or fewer) units on-hand, a pop-up window\nappears, warning the user that there is an insufficient quantity to unbuild.\nTo ignore the warning, and proceed with the unbuild order, click Confirm at the\nbottom of the pop-up window. To return to the unconfirmed unbuild order, click Discard , instead.\nAfter completing an unbuild order, inventory counts automatically update, based on the quantity of\nproducts unbuilt, and the quantity of components reclaimed.\nA Coat Rack product is comprised of one Wooden Pole component and six Wooden Dowel components.\n`CoatRack`\n`WoodenPole`\n`WoodenDowel`\nAn unbuild order is created for one unit of the Coat Rack . Once the order is completed, the\non-hand quantity of Coat Racks decreases by one, while the on-hand quantities of Wooden Poles and Wooden Dowels increase by one and six, respectively.\n`CoatRack`\n`CoatRacks`\n`WoodenPoles`\n`WoodenDowels`\n\n## Scrap unusable components\n\nIn some cases, components may be unusable after the unbuilding process is completed. To ensure that\ninventory counts accurately reflect the quantity of usable components on-hand, any component that\ncan no longer be used should be removed from inventory using a scrap order .", "headings": ["Create unbuild order", "Scrap unusable components"], "doc_id": "bb0d2a9208676c5b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/workflows/use_mps.html", "title": "Master production schedule", "module": "manufacturing", "section": "Master production schedule", "text": "# Master production schedule\n\nIn Odooâs Manufacturing app, the master production schedule (MPS) is used to manually plan\nmanufacturing orders (MOs) and purchase orders (POs), based on forecasted quantities of products and\ncomponents.\nBy considering the impact of confirmed MOs and POs , along with manually adjusted demand\nforecasts, the MPS can be used to manage long-term product replenishment. This ensures the\ncontinued availability of the necessary products and components.\nSince the MPS allows for manual intervention, it is useful for replenishing products where the\ndemand of existing sales orders (SOs) does not reflect probable future demand.\nA retail store sells artificial Christmas trees during the holiday season. It is currently\nSeptember, and the store has less than ten Christmas tree MOs confirmed for the month of\nDecember.\nDespite the number of confirmed MOs , the procurement manager knows that the demand for\nChristmas trees in December is going to be much higher, once the holiday season starts. As a\nresult, they manually enter a greater demand in the MPS , so they can properly replenish the\nproduct in time for the increase in customer demand.\nIt is essential to remember that the MPS is a MANUAL tool. Adding a product to the MPS does not cause it to be manufactured or purchased automatically. The MPS simply suggests the\namount of the product that should be replenished, but requires user input to create the MOs or POs that are used to replenish it.\nFor this reason, it is recommended that the MPS NOT be used alongside reordering rules for\nthe same product. Because reordering rules are an automated workflow, they conflict with the\nmanual replenishment method of MPS . Using both, in unison, can lead to inaccurate forecasts and\nthe creation of unnecessary replenishment orders.\n\n## Enable and configureMPS\n\nTo use the MPS feature, navigate to Manufacturing app ⣠Configuration â£\nSettings , and tick the Master Production Schedule checkbox in the Planning section. Finally, click Save .\nAfter enabling the Master Production Schedule feature, two new fields appear under it on\nthe Settings page: Time Range and Number of Columns .\nThe Time Range field is used to select the period of time over which planning takes\nplace, and offers three options: Monthly , Weekly , and Daily . For\nexample, if Monthly is selected, the MPS plans the production requirements of products\nand components on a monthly basis.\nThe Number of Columns field is used to specify the quantity of the selected Time Range units shown on the MPS page. For example, if the Time Range field is set to Monthly , and 12 is entered in the Number of Columns field,\nthe MPS shows one column for the next 12 months, starting with the current month.\n`12`\nIf the values of the Time Range or Number of Columns fields are altered,\nclick Save again to save the changes.\n\n## MPSdashboard\n\nTo open the MPS , navigate to Manufacturing app ⣠Planning ⣠Master Production\nSchedule . The MPS view appears as follows:\nThe grey column on the left side of the screen shows a section for every product added to the MPS ,\nwith each product section being broken down into smaller rows. The information shown in the rows\ndepends on the filters selected in the Search⦠bar drop-down menu at the top of the\npage. The default categories that appear in the rows are:\n- [Product] by [unit] : the forecasted stock quantity at the\nbeginning of each time period. [Product] and are selectable\nbuttons which open the productâs page, or the forecast report for the product, respectively.\n[Product] by [unit] : the forecasted stock quantity at the\nbeginning of each time period. [Product] and are selectable\nbuttons which open the productâs page, or the forecast report for the product, respectively.\n- - Forecasted Demand : the demand forecast, which is entered manually. This represents\nan estimate of the demand for the product during each time period.\n- Forecasted Demand : the demand forecast, which is entered manually. This represents\nan estimate of the demand for the product during each time period.\n- - Indirect Demand Forecast : while this is a default category, it only appears for\nproducts that are components of other products. It represents the demand for the component from\nexisting MOs.\n- Indirect Demand Forecast : while this is a default category, it only appears for\nproducts that are components of other products. It represents the demand for the component from\nexisting MOs.\n- + Suggested Replenishment : the quantity of the product that is suggested to be\nreplenished through MOs or POs . To the right of the category title is a Replenish button, which is used to manually replenish the product, based on the quantity suggested to be\nreplenished. The âReplenishâ button on the â+ Suggested Replenishmentâ row.\n+ Suggested Replenishment : the quantity of the product that is suggested to be\nreplenished through MOs or POs . To the right of the category title is a Replenish button, which is used to manually replenish the product, based on the quantity suggested to be\nreplenished.\nThe âReplenishâ button on the â+ Suggested Replenishmentâ row.\n- = Forecasted Stock : the quantity of the product forecasted to be in stock at the end\nof each time period, assuming that suggested replenishment numbers are fulfilled.\n= Forecasted Stock : the quantity of the product forecasted to be in stock at the end\nof each time period, assuming that suggested replenishment numbers are fulfilled.\nAltogether, these default categories form an equation:\nIn the case of components, the Indirect Demand Forecast is taken into account as well.\nThe - Forecasted Demand and + Suggested Replenishment fields can be edited\nfor any of the time periods to the right of the product column. Doing so changes the equation, and\nupdates the value displayed in the Forecasted Stock field.\nChanging the value in the + Suggested Replenishment field also makes an (reset) button appear to the left of the field. Click the (reset) button next to the field to reset its value back to the one calculated by the MPS .\nWhile the MPS can be used with only the default categories enabled, it is advisable to also\nenable the Actual Demand category. This is done by clicking the (down arrow) on the right side of the Search⦠bar, and enabling the Actual Demand option under the Rows header.\nWith the Actual Demand option enabled, the - Forecasted Demand category\nchanges to the - Actual / Forecasted Demand category. In addition to the manually\nentered forecasted demand, this category also displays the confirmed demand for the product,\nwhich is based on confirmed SOs .\nEach column to the right of the products column lists one unit of the time period selected in the Time Range field on the Manufacturing app Settings page (ex. months). The number of time\nperiod columns corresponds to the value entered in the Number of Columns field.\nThe first time period column represents the current time period. For example, if the MPS is\nconfigured to use months, the first column displays data for the current month. On this first\ncolumn, the + Suggested Replenishment field appears in one of five colors:\n- Green : a replenishment order must be generated to keep stock at the Safety\nStock Target , based on the configured lead times .\nGreen : a replenishment order must be generated to keep stock at the Safety\nStock Target , based on the configured lead times .\n- Gray : a replenishment order has already been generated to keep stock at the Safety Stock Target .\nGray : a replenishment order has already been generated to keep stock at the Safety Stock Target .\n- Yellow : a replenishment order has already been generated, but the quantity it was\ncreated for is not enough to keep stock at the Safety Stock Target .\nYellow : a replenishment order has already been generated, but the quantity it was\ncreated for is not enough to keep stock at the Safety Stock Target .\n- Red : a replenishment order has already been generated, but the quantity it was created\nfor puts the amount of stock above the Safety Stock Target .\nRed : a replenishment order has already been generated, but the quantity it was created\nfor puts the amount of stock above the Safety Stock Target .\nThe + Suggested Replenishment field appears white, if no replenishment order has been\ngenerated, and it is not necessary to generate one at the current moment.\n\n## Add a product\n\nTo use MPS to manage the replenishment of a product, navigate to Manufacturing app\n⣠Planning ⣠Master Production Schedule . At the top of the MPS page, click Add a\nProduct to open the Add a Product pop-up window.\nProducts must be properly configured to be replenished through the MPS .\nIn the case of manufactured products, the Manufacture route must be selected in the Routes section of the Inventory tab, on the productâs form.\nIn the case of products that are purchased, the Buy route must be selected in the Routes section of the Inventory tab, on the productâs form. Additionally, a vendor and the price they\nsell the product for must also be specified on the Purchase tab.\nOn the pop-up window, select the product to add in the Product drop-down menu. If the\nproduct is replenished through manufacturing, select the productâs BoM in the Bill of\nMaterials field.\nSelecting a BoM when adding a product to the MPS also adds any components listed on the BoM. If\nit is not necessary to manage the replenishment of components through the MPS , simply leave the Bill of Materials field blank.\nIf the database is configured with multiple warehouses, a Production Warehouse field\nappears on the Add a Product pop-up window. Use this field to specify which warehouse\nthe product is replenished to.\nIn the Safety Stock Target field, specify the minimum quantity of the product that\nshould be kept available for orders at all times. For example, if there should always be 20 units of\nthe product available for order fulfillment, enter 20 in the Safety Stock Target field.\n`20`\nIn the Minimum to Replenish field, enter the minimum product quantity for orders created\nto replenish the product. For example, if 5 is entered in this field, replenishment orders for the\nproduct include a minimum of five units.\n`5`\nIn the Maximum to Replenish field, enter the maximum product quantity for orders created\nto replenish the product. For example, if 100 is entered in this field, replenishment orders for\nthe product include a maximum of 100 units.\n`100`\nFinally, click Save to add the product to the MPS . The product now appears on the MPS page each time it is opened. If a BoM was selected in the Bill of Materials field of the Add a Product pop-up window, any components listed on the BoM appear on\nthe page, as well.\n\n### Edit a product\n\nAfter adding a product to the MPS , it may be necessary to change the replenishment values entered\non the Add a Product pop-up window. To do so, click the # â¤â¦â¤ # button to\nthe immediate right of the Replenish button, on the + Suggested\nReplenishment row, below the productâs name.\nThe first and second number displayed on the # â¤â¦â¤ # button correspond to the values\nentered in the Minimum to Replenish and Maximum to Replenish fields when\nadding the product to the MPS .\nFor example, if 5 was entered in the Minimum to Replenish field, and 100 was\nentered in the Maximum to Replenish field, the button appears as 5 â¤â¦â¤\n100 .\n`5`\n`100`\nClicking the # â¤â¦â¤ # button opens the Edit Production Schedule pop-up\nwindow. This pop-up window is the same as the Add a Product pop-up window, except that\nthe Product and Bill of Materials fields cannot be edited.\nOn the Edit Production Schedule pop-up window, enter the desired values in the Safety Stock Target , Minimum to Replenish , and Maximum to\nReplenish fields. Then, click Save to save the changes.\n\n### Remove a product\n\nTo remove a product from the MPS , tick the checkbox to the left of its name. Then, click the Actions button at the top of the screen, and select Delete from the resulting drop-down menu. Finally, click Ok on the Confirmation pop-up window.\nDeleting a product from the MPS removes it, along with all of its data. If the product is\nre-added, its replenishment values must be reconfigured.\n\n## MPSreplenishment\n\nProducts in the MPS can be replenished in one of three ways:\n- Click the Replenish button at the top of the screen to generate replenishment orders\nfor every product below its Safety Stock Target for the current month.\nClick the Replenish button at the top of the screen to generate replenishment orders\nfor every product below its Safety Stock Target for the current month.\n- Click the Replenish button on the right side of the + Suggested\nReplenishment row of a specific product, to generate a replenishment order for that specific\nproduct.\nClick the Replenish button on the right side of the + Suggested\nReplenishment row of a specific product, to generate a replenishment order for that specific\nproduct.\n- Tick the checkbox to the left of the product name of one or more products. Then, click the Actions button at the top of the screen, and select Replenish from the resulting drop-down menu. Doing so generates a replenishment order\nfor each selected product.\nTick the checkbox to the left of the product name of one or more products. Then, click the Actions button at the top of the screen, and select Replenish from the resulting drop-down menu. Doing so generates a replenishment order\nfor each selected product.\nThe type of replenishment order generated corresponds to the route selected on the Inventory tab\nof the productâs form:\n- If the Buy route is selected, an RfQ is generated to replenish the product. RfQs can be\nselected by navigating to the Purchase app. Any RfQ generated by the MPS lists MPS in its Source Document field.\nIf the Buy route is selected, an RfQ is generated to replenish the product. RfQs can be\nselected by navigating to the Purchase app. Any RfQ generated by the MPS lists MPS in its Source Document field.\n- If the Manufacture route is selected, an MO is generated to replenish the product. MOs can\nbe selected by navigating to Manufacturing app ⣠Operations ⣠Manufacturing\nOrders . Any MO generated by the MPS lists MPS in its Source Document field.\nIf the Manufacture route is selected, an MO is generated to replenish the product. MOs can\nbe selected by navigating to Manufacturing app ⣠Operations ⣠Manufacturing\nOrders . Any MO generated by the MPS lists MPS in its Source Document field.", "headings": ["Enable and configureMPS", "MPSdashboard", "Add a product", "Edit a product", "Remove a product", "MPSreplenishment"], "doc_id": "9de2ce0816942452"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/manufacturing/workflows/work_center_time_off.html", "title": "Work center time off", "module": "manufacturing", "section": "Work center time off", "text": "# Work center time off\n\nIn Odoo, work centers are used to carry out manufacturing operations at specific locations.\nHowever, if a work center cannot be used for some reason, work orders begin to pile up at the work\ncenter until it is operational again.\nAs a result, it is necessary to make the work center unavailable in Odoo so new work orders are\nrouted to alternative work centers that are operational. Using Odooâs Time Off app, it is\npossible to designate a work center as being unavailable for a set period of time. Doing so ensures\nmanufacturing operations can continue until the impacted work center is available again.\n\n## Configuration\n\nBefore a work center can be designated as unavailable, the Odoo platform must be properly\nconfigured. First, it is necessary to enable developer mode . This allows the Time Off smart button to appear on each work centerâs Working Hours page.\nNext, install the Time Off app. This is the app used for managing time off for all resources\nwithin Odoo, including employees and work centers.\nTo do so, navigate to the Apps app, then search Time Off in the search bar. The\ncard for the Time Off app should be the only one that appears on the page. Click the Install button on the card to install the app.\n`TimeOff`\nThe last step is to properly configure work centers. For this workflow, it is necessary to have at\nleast two work centers: one that is made unavailable, and a second that receives the work orders\nthat the other cannot accept. If no second work center is configured, Odoo cannot route work orders\naway from the unavailable work center, and they pile up in its queue.\nTo create a work center, navigate to Manufacturing app ⣠Configuration ⣠Work\nCenters ⣠New .\nFor a full guide to work center creation, refer to the documentation on work centers .\nMake sure both work centers have the same equipment listed under the Equipment tab. This\nensures operations carried out at one work center can also be performed at the other.\nOn the work center that is made unavailable, select the second work center from the Alternative Workcenters drop-down menu. Now, Odoo knows to send work orders to the\nsecond work center when the first is unavailable for any reason.\n\n## Add time off for a work center\n\nWith configuration completed, time off can now be assigned to a work center. Begin by navigating to Manufacturing app ⣠Configuration ⣠Work Centers , and selecting the affected\nwork center. Click the (Internal link) button on the right side\nof the Working Hours drop-down menu, to open the working hours page for the work center.\nThe working hours page displays the standard working hours for the work center. With developer mode\nactivated, a Time Off smart button appears at the top of the page.\nClick it to open the Resource Time Off page.\nOn this page, click New to configure a new time-off entry. On the time-off form, note\nthe Reason for the work center closure (e.g. broken equipment, maintenance, etc.),\nselect the affected work center as the Resource , and choose a Start Date and End Date to specify the period during which the work center is unavailable.\n\n## Alternative work center planning\n\nOnce a work center is within its specified time-off period, work orders sent to it can be\nautomatically routed to an alternative work center using the Plan button.\nBegin by creating a new manufacturing order (MO), by navigating to Manufacturing app\n⣠Operations ⣠Manufacturing Orders ⣠New . On the MO form, specify a Product that uses the unavailable work center for one of its operations. Click Confirm to\nconfirm the MO .\nOn the confirmed MO , select the Work Orders tab. By default, the unavailable work\ncenter is specified in the Work Center column. There is also a Plan button\nat the top left of the page.\nClick Plan , and the work center listed in the Work Center column of the Work Orders tab is automatically changed to the alternative work center.\nBefore clicking Plan , the work order is scheduled at Main Assembly Line .\nAfter clicking Plan , the work order is rescheduled at Alternative Assembly\nLine .\nOnce the time-off period for the unavailable work center ends, Odoo recognizes the work center is\navailable again. At this point, clicking the Plan button does not route work orders to\nan alternative work center unless the first one is at capacity.", "headings": ["Configuration", "Add time off for a work center", "Alternative work center planning"], "doc_id": "d4ef68bf500c1aec"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/purchase.html", "title": "Purchase", "module": "purchase", "section": "Purchase", "text": "# Purchase\n\nOdoo Purchase helps keep track of purchase agreements, quotations, and purchase orders. Learn\nhow to monitor purchase tender, automate replenishment, and follow up on your orders.\n- Odoo Tutorials: Purchase\nOdoo Tutorials: Purchase", "headings": [], "doc_id": "72a6fd38e1a7f1c3"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/purchase/advanced/analyze.html", "title": "Purchase Analysis report", "module": "purchase", "section": "Purchase Analysis report", "text": "# Purchase Analysis report\n\nThe Purchase Analysis report provides statistics about products purchased using Odooâs Purchase app. This data is useful for gaining a deeper understanding of key metrics related to\npurchase orders (POs), including the quantity of products ordered and received, the amount of time\nit takes to receive purchased products, and more.\nTo open the Purchase Analysis report, navigate to Purchase app ⣠Reporting â£\nPurchase .\nThe Purchase Analysis report is one of many reports available across the Odoo app\nsuite. This documentation only covers the measures specific to the Purchase Analysis report, along with a few use case examples.\nFor a full overview of the basic features available in most Odoo reports, see the documentation\non reporting essentials .\n\n## Measures\n\nMeasures refer to the various datasets that can be displayed on the Purchase Analysis report, with each dataset representing a key statistic about POs or products. To choose a measure,\nclick the Measures button, and select one of the options from the\ndrop-down menu:\n- # of Lines : The number of PO order lines, across all POs .\n# of Lines : The number of PO order lines, across all POs .\n- Average Cost : The average cost of POs .\nAverage Cost : The average cost of POs .\n- Days to Confirm : The number of days it takes to confirm a PO .\nDays to Confirm : The number of days it takes to confirm a PO .\n- Days to Receive : The number of days it takes to receive the products in a PO .\nDays to Receive : The number of days it takes to receive the products in a PO .\n- Gross Weight : The total weight of purchased products.\nGross Weight : The total weight of purchased products.\n- Qty Billed : The quantity of a product (or products) for which the vendor has already\nbeen billed.\nQty Billed : The quantity of a product (or products) for which the vendor has already\nbeen billed.\n- Qty Ordered : The quantity of a product (or products) ordered.\nQty Ordered : The quantity of a product (or products) ordered.\n- Qty Received : The quantity of an ordered product (or products) received.\nQty Received : The quantity of an ordered product (or products) received.\n- Qty to be Billed : The quantity of an ordered product (or products) for which the\nvendor has yet to be billed.\nQty to be Billed : The quantity of an ordered product (or products) for which the\nvendor has yet to be billed.\n- Total : The total amount spent, including tax.\nTotal : The total amount spent, including tax.\n- Untaxed Total : The total amount spent, excluding tax. This measure is selected by\ndefault.\nUntaxed Total : The total amount spent, excluding tax. This measure is selected by\ndefault.\n- Volume : The total volume of ordered products, for products which are measured by\nvolume.\nVolume : The total volume of ordered products, for products which are measured by\nvolume.\n- Count : The total count of POs .\nCount : The total count of POs .\nOnly one measure can be selected at a time when one of the (graph view) options is enabled. However, multiple measures, and varying group-by\ncriteria (on the x and y axes), can be selected when using the (pivot table) .\n\n## Use case: determine days to receive products from each vendor\n\nOne possible use case for the Purchase Analysis report is determining how long each\nvendor takes to deliver purchased items. This allows companies to make better informed decisions\nabout which vendors they want to purchase from.\nA local bike shop, Bike Haus , sells high-quality unicycles, bicycles, tricycles, and all the\naccessories needed to ride and maintain them. They purchase their inventory from a few different\nvendors, and then sell those products on to customers through their storefront.\nRecently, Bike Haus has decided to have their purchasing manager, David, look into how long it\nhas taken each of their vendors to deliver the items theyâve purchased during the current year,\n2024.\nDavid starts by navigating to Purchase app ⣠Reporting ⣠Purchase , and\nselecting the (bar chart) graph type at the top of the report.\nNext, he clicks the (toggle) button on the right of the search\nbar to open its drop-down menu. In the Confirmation Date filter section, he makes\nsure that only the 2024 filter is enabled. Then, he selects the Vendor option in the Group By section, before clicking away from the\ndrop-down menu to close it.\nFinally, David clicks on the Measures drop-down menu, and\nselects the Days to Receive option.\nWith all of these options enabled, the Purchase Analysis report shows a bar chart,\nwith one bar for each vendor, representing the average number of days it takes to receive\nproducts purchased from the vendor.\nUsing this data, David can see that it takes Bike Friends over 4.5 days, on average, to deliver\npurchased products. This is more than four times the amount of time it takes any other vendor.\nBased on these findings, David makes the decision to reduce the quantity of products purchased\nfrom Bike Friends.\n\n## Use case: compare vendor POs for two time periods\n\nAnother use for the Purchase Analysis report is to compare key statistics about POs for two different time periods, for a specific vendor. By doing so, it is easy to understand how\npurchases from the vendor have increased or decreased.\nFollowing the previous example , it has been one month\nsince Bike Haus decided to reduce the quantity of products purchased from Bike Friends, one of\ntheir retailers. Bike Hausâ purchasing manager, David, wants to understand the impact this\ndecision has had on the amount of money they have spent on Bike Friends products.\nDavid starts by navigating to Purchase app ⣠Reporting ⣠Purchase . Then, he\nselects the (pivot table) option at the top of the screen.\nIn the search bar, he types Bike Friends , and clicks Enter , so the report only\nshows data for purchases from Bike Friends.\n`BikeFriends`\nThen, David clicks the (toggle) button on the right of the\nsearch bar to open its drop-down menu. In the Confirmation Date field, he leaves the June and 2024 filters enabled. He also selects Confirmation\nDate: Previous Period in the Comparison section, before clicking away from the\ndrop-down menu to close it.\nNext, David clicks on the Measures drop-down menu. He leaves\nthe Total and Untaxed Total datasets enabled, and disables the Order and Count datasets.\nFinally, David clicks the Total button above the rows on\nthe pivot table, and selects the Product option.\nWith all of these options configured, the Purchase Analysis report shows a pivot\ntable comparing purchase data for the current month, June, with the previous month, May.\nThe pivot table is broken down into two main columns: one for the untaxed total spent, and one\nfor the taxed total spent. These columns are further broken down into three smaller columns: the\namount spent in May, the amount spent in June, and the variation between the two months,\nrepresented as a percentage.\nOn the left side of the pivot table, one row is shown for each product purchased from Bike\nFriends during June. Using this report, David is able to see that Bike Haus has spent much less\nmoney on products purchased from Bike Friends, compared to the previous month.", "headings": ["Measures", "Use case: determine days to receive products from each vendor", "Use case: compare vendor POs for two time periods"], "doc_id": "c841514f7dd75192"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/purchase/advanced/edi.html", "title": "EDI purchase-to-sales order import", "module": "purchase", "section": "EDI purchase-to-sales order import", "text": "# EDI purchase-to-sales order import\n\nElectronic data interchange (EDI) enables companies using different software systems to exchange\ninformation in a standardized, structured format.\nIn Odoo, a purchase order (PO) can be exported as an XML file and imported as a sales order (SO)\ninto another Odoo database, removing the need for manual entry of products, quantities, prices, and\nother key information.\nThe workflow in this document describes how buyers and sellers exchange data directly between their\nOdoo databases. As an alternative, sellers can receive a PDF version of the request for quotation\n(RFQ) by email and upload it directly in their Sales dashboard . This method is simpler but does not use the XML-based exchange\ndescribed in the document.\nExported XMLs follow the UBL schema . When exchanging data between two\nOdoo databases, this schema remains compatible.\nHowever, implementing custom developments for software that does not support the UBL schema may\nintroduce additional complexity.\n\n## Roles and configuration\n\nTo facilitate the EDI workflow, two companies are involved: the buyer (the company placing the\norder) and the seller (the company fulfilling the order). Each company has specific roles and\nconfigurations.\n\n### Buyer database\n\nThe buyer database is responsible for creating and confirming purchase orders. Prerequisites\ninclude:\n- (required) installing the Purchase app\n(required) installing the Purchase app\n- (optional) adding vendors (the sellers in this workflow) as portal users .\n(optional) adding vendors (the sellers in this workflow) as portal users .\n\n### Seller database\n\nThe seller database is responsible for receiving and processing sales orders. The only prerequisite\nis installing the Sales app.\n\n## Workflow\n\n### Buyerâs process\n\nTo begin, the buyer (in their database) navigates to the Purchase app to create a RFQ .\nSet the Vendor to the portal user representing the seller, and Confirm the RFQ . Doing so converts it into a purchase order .\nPO from the buyerâs database. The Vendor is the sellerâs portal user account, Joel.\n\n### Sellerâs process\n\nOnce the PO is confirmed, it appears on the sellerâs portal dashboard. The seller downloads the\nXML file and uploads it to their database.\n\n#### Download file\n\nAs the seller, log in to the buyerâs database as the portal user. On the dashboard, scroll down and\nclick the Our Orders button. Doing so reveals a list of purchase orders the buyerâs\ndatabase has addressed to the portal user.\nSelect the desired purchase order, and the click Connect with your software! button.\nIn the pop-up window, copy the provided URL, and paste it into a new browser tab to download the XML\nfile.\nJoelâs portal view of the PO. The first image displays the Connect with your\nsoftware! button, and the second image displays a pop-up window with the Copy button.\n`XMLfile`\n\n#### Upload file\n\nNext, the seller logs in to their own Odoo database and opens Sales app. Click Upload and select the downloaded XML file. Alternatively, users can drag and drop the\nfile into the Quotations dashboard.\nDoing so automatically generates a sales order with the customer populated as the buyer and all\nproduct lines, quantities, and prices pre-filled. This process ensures efficient and accurate data\nexchange between the two databases.\nUploaded SO in the sellerâs database.", "headings": ["Roles and configuration", "Buyer database", "Seller database", "Workflow", "Buyerâs process", "Sellerâs process"], "doc_id": "2e1ba69459aebdc5"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/purchase/advanced/procurement_expenses_report.html", "title": "Procurement expenses report", "module": "purchase", "section": "Procurement expenses report", "text": "# Procurement expenses report\n\nWith the Purchase application, users can monitor procurement expenses over time. This report helps\ncompanies track and analyze spending, identify cost-saving opportunities, and ensure efficient\nbudget management.\n\n## Create procurement expenses report\n\nTo create a procurement expenses report, first navigate to Purchase app ⣠Reporting ⣠Purchase to\nopen the Purchase Analysis dashboard.\nBy default, the dashboard displays a line chart overview of the Untaxed Total of Purchase Orders (POs) with a Confirmation Date for the current month, or of\nRequests for Quotation (RFQs) with a status of Draft , Sent , or Cancelled .\n\n### Add filters and groups\n\nOn the top-right, click the (pivot) icon to switch to pivot view.\nWhile the procurement expenses report can also be viewed as a (bar chart) , (line chart) , or (pie chart) , the pivot view provides the most detailed view of the data, and is the\nrecommended starting point.\nRemove any default filters from the Search⦠bar. Then, click the (down) icon to open the\ndrop-down menu that contains the Filters , Group By , and Favorites columns.\nUnless otherwise specified, the report displays data from both RfQs and POs . This can be\nchanged by selecting either Requests for Quotation or Purchase Orders under the Filters column.\nUnder the Filters column, select a time frame to use for comparison. The report can be\nfiltered by either Order Date or Confirmation Date . Choose one from the\nlist, and click the (down) icon to specify the date range, either by month, quarter, or year.\nNext, under the Group by column, select Vendor . Then, select Product Category , which is also located in the Group By column.\nThe selections under the Group By heading can be altered, depending on the needs of\nthe individual company. For example, selecting Product , instead of Product\nCategory , provides a more in depth look at the performance of specific items, in place of an\nentire category.\nNext, make a selection under the Comparison heading that appears. These options are only\navailable after the date range is selected under the Filters column, and vary based on\nthat range. Previous Period adds a comparison to the previous period, such as the last\nmonth or quarter. Previous Year compares the same time period from the previous year.\nWhile multiple time-based filters can be added at once, only one comparison can be selected at a\ntime.\nThe filter for Q2, comparison for Previous Period , and group-by for Vendor and Product\nCategory were selected.\n\n### Add measures\n\nAfter selecting the Filters , Group by , and Comparison settings,\nclick out of the drop-down menu.\nBy default, the report displays data with the following measures: Order , Total , Untaxed Total , and Count . Click Measures at\nthe top-left to open the drop-down list of available measures.\nClick the following specific measures to include additional columns for the procurement expenses\nreport:\n- Total and Untaxed Total : can include one or both measures. These are\nincluded for overall spending analysis.\nTotal and Untaxed Total : can include one or both measures. These are\nincluded for overall spending analysis.\n- Average Cost : included to evaluate cost efficiency.\nAverage Cost : included to evaluate cost efficiency.\n- Days to Confirm and Days to Receive : used to assess supplier performance.\nDays to Confirm and Days to Receive : used to assess supplier performance.\n- Qty Ordered and Qty Received : used to understand order efficiency.\nQty Ordered and Qty Received : used to understand order efficiency.\n- Qty Billed and Qty to be Billed : used to track order accuracy.\nQty Billed and Qty to be Billed : used to track order accuracy.\nAdditional measures can be included in the report, if desired, to provide additional insights.\nFor example, Gross Weight and Volume may be included for further\nlogistics and management analysis.\nAfter selecting all necessary measures, click out of the drop-down menu.\n\n## View results\n\nAfter all of the filters and measures have been selected, the report generates in the selected view.\nClick Insert in Spreadsheet to add the pivot view into an editable spreadsheet format\nwithin the Documents app.\nThe Insert in Spreadsheet option is only available if the Documents Spreadsheet module is installed.\nThe procurement expenses report is also available in graph view. Click the (area\nchart) icon to change to graph view. Click the corresponding icon at the top of the report to\nswitch to a (bar chart) , (line\nchart) , or (pie chart) .\nTo save this report as a favorite , see Favorites .", "headings": ["Create procurement expenses report", "Add filters and groups", "Add measures", "View results"], "doc_id": "7b2e3de24d2aa31d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/purchase/advanced/vendor_costs_report.html", "title": "Vendor costs report", "module": "purchase", "section": "Vendor costs report", "text": "# Vendor costs report\n\nWith the Purchase application, users can track the fluctuation of vendor costs over time. This\nallows users to identify the most expensive vendors, and track seasonal changes.\n\n## Create vendor costs reports\n\nTo create a vendor costs report, first navigate to Purchase app ⣠Reporting â£\nPurchase to open the Purchase Analysis dashboard. By default, the dashboard displays a\nline chart overview of the Untaxed Total of POs (Purchase Orders) with a Confirmation Date for the current month, or of RFQs (Requests for Quotation) with a\nstatus of Draft , Sent, or *Cancelled .\n\n### Add filters and groups\n\nOn the top-right, click the (pivot) icon to switch to pivot view.\nRemove any default filters from the Search⦠bar. Then, click the (down) icon to open the\ndrop-down menu that contains the Filters , Group By , and Favorites columns.\nUnless otherwise specified, the report displays data from both RfQs and POs . This can be\nchanged by selecting either Requests for Quotation or Purchase Orders under the Filters column.\nUnder the Filters column, select a date range to use for comparison. The report can be\nfiltered by either Order Date or Confirmation Date . Choose one from the\nlist, and click the (down) icon to specify the date range, either by month, quarter, or year.\nNext, under the Group by column, select Vendor . Then, select Product , which is also located in the Group By column.\nSelecting Product is not required for this report. However, it is recommended, as\nit provides additional insight into the performance of individual vendors. Additional selections\ncan be made under the Group by heading as well, including Product\nCategory , Status , and Purchase Representative .\nTo ensure the report is generated correctly, make sure that Vendor is the first selection made under the Group By column.\nNext, make a selection under the Comparison heading. These options are only available\nafter the date range is selected under the Filters column, and vary based on that range. Previous Period adds a comparison to the previous period, such as the last month or\nquarter. Previous Year compares the same time period from the previous year.\nWhile multiple time-based filters can be added at once, only one comparison can be selected at a\ntime.\n\n### Add measures\n\nAfter selecting the Filters , Group by , and Comparison settings,\nclick out of the drop-down menu.\nBy default, the report displays with the following measures: Order , Total , Untaxed Total , and Count . Click Measures at the top-left to open\nthe drop-down list of available measures. Click Average Cost to add it to the report.\nSelect any additional measures to add to the report, or click on any of the already selected\nmeasures to remove them, if desired.\nIt is recommended to run the report with at least Average Cost , Total , or Untaxed Total selected from the Measures list. Additional measures, such\nas Days to Receive , can be added to provide additional insights.\n\n## View results\n\nAfter all of the filters and measures have been selected , the report generates in the pivot view. Click Insert in Spreadsheet to add the pivot view into an editable spreadsheet format within\nthe Documents app.\nThe Insert in Spreadsheet option is only available if the Documents Spreadsheet module is installed.\nThe vendor costs report is also available in graph view. Click the (area chart) icon to change to graph view. Click the corresponding icon at the top of\nthe report to switch to a (bar chart) , (line chart) , or (pie chart) .\nTo save this report as a favorite , see Favorites .", "headings": ["Create vendor costs reports", "Add filters and groups", "Add measures", "View results"], "doc_id": "5368299b0eea2baf"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders.html", "title": "Blanket orders", "module": "purchase", "section": "Blanket orders", "text": "# Blanket orders\n\nBlanket orders are long-term purchase agreements between a company and a vendor to deliver products\non a recurring basis with predetermined pricing.\nBlanket orders are helpful when products are consistently purchased from the same vendor, but in\ndifferent quantities, and at different times.\nBy simplifying the ordering process, blanket orders not only save time, they also save money, since\nthey can be advantageous when negotiating bulk pricing with vendors.\n\n## Create a new blanket order\n\nTo create blanket orders, enable the Purchase Agreements feature from the Purchase app settings.\nNavigate to Purchase app ⣠Configuration ⣠Settings , and under the Orders section, click the checkbox for Purchase Agreements . Then click Save to implement the changes.\nIn addition to creating blanket orders, the Purchase Agreements setting also allows users to\ncreate alternative requests for quotation (RfQs).\nTo create a blanket order, go to Purchase app ⣠Orders ⣠Purchase Agreements ,\nand click New . This opens a new purchase agreement form.\nConfigure the following fields in the new purchase agreement form to establish predetermined rules\nfor the recurring long-term agreement:\n- Vendor : the supplier to whom this agreement is tied, either once or on a recurring\nbasis. The vendor can be selected directly from the drop-down menu next to this field.\nVendor : the supplier to whom this agreement is tied, either once or on a recurring\nbasis. The vendor can be selected directly from the drop-down menu next to this field.\n- Buyer : the user assigned to this specific blanket order. By default, this is the user\nwho created the agreement; the user can be changed directly from the drop-down menu next to this\nfield.\nBuyer : the user assigned to this specific blanket order. By default, this is the user\nwho created the agreement; the user can be changed directly from the drop-down menu next to this\nfield.\n- Agreement Type : the type of purchase agreement this blanket order is classified as.\nUse the drop-down menu to choose Blanket Order if not already selected.\nAgreement Type : the type of purchase agreement this blanket order is classified as.\nUse the drop-down menu to choose Blanket Order if not already selected.\n- Currency : the agreed-upon currency to be used for this exchange. If multiple\ncurrencies have been activated in the database, the currency can be changed from the drop-down\nmenu next to this field.\nCurrency : the agreed-upon currency to be used for this exchange. If multiple\ncurrencies have been activated in the database, the currency can be changed from the drop-down\nmenu next to this field.\n- Agreement Validity : the date range this agreement should be valid for. If this blanket\norder should not expire, leave this field blank.\nAgreement Validity : the date range this agreement should be valid for. If this blanket\norder should not expire, leave this field blank.\n- Reference : the source purchase order (PO) that this blanket order is tied to. If this\nblanket order should not be tied to any existing PO , leave this field blank.\nReference : the source purchase order (PO) that this blanket order is tied to. If this\nblanket order should not be tied to any existing PO , leave this field blank.\n- Operation Type : the operation type that should be applied to this order once it is\ndelivered.\nOperation Type : the operation type that should be applied to this order once it is\ndelivered.\n- Company : the company assigned to this specific blanket order. By default, this is the\ncompany that the user creating the blanket order is listed under. If the database is not a\nmulti-company database, this field cannot be changed, and defaults to the only company listed\nin the database.\nCompany : the company assigned to this specific blanket order. By default, this is the\ncompany that the user creating the blanket order is listed under. If the database is not a\nmulti-company database, this field cannot be changed, and defaults to the only company listed\nin the database.\nOnce all relevant fields have been filled out, click Add a line to add products under\nthe Product column. Then, in the Quantity column, change the quantity of\neach product, and set a price in the Unit Price column.\nWhen adding products to a new blanket order, the pre-existing prices of products are not\nautomatically added to the product lines. Instead, the prices must be manually assigned, by\nchanging the value in the Unit Price column to an agreed-upon price with the listed\nvendor. Otherwise, the price will remain 0 .\n`0`\nClick Confirm to save this new purchase agreement.\nOnce confirmed, the blanket orderâs stage changes from Draft to Confirmed ,\nmeaning this agreement can be selected and used when creating new RfQs .\nAfter creating and confirming a blanket order, products, quantities, and prices can still be\nedited, added, and removed from the purchase agreement.\n\n## Create a newRfQfrom the blanket order\n\nAfter confirming a blanket order, new quotations can be created directly from the blanket order\nform. RfQs using this form are pre-populated with information based on the rules set in the form.\nThe total quantities of products ordered through linked RfQs are automatically updated in the Ordered field on the agreement.\nAdditionally, new quotations are automatically linked to this blanket order form, via the RFQs/Orders smart button at the top-right of the form.\nTo create a new quotation from the blanket order form, click the New Quotation button.\nThis opens a new RfQ , that is pre-populated with the correct information, depending on the\nsettings configured on the blanket order form.\nFrom the new RfQ form, click Send by Email to compose and send an email to the listed\nvendor. Click Print RFQ to generate a printable PDF of the quotation; or, once ready,\nclick Confirm Order to confirm the PO .\nOnce the PO has been confirmed, click back to the blanket order form (via the breadcrumbs, at the\ntop of the page). From the blanket order form, there is now one RfQ listed in the RFQs/Orders smart button at the top-right of the form. Click the RFQs/Orders smart button to see the PO that was just created.\n\n## Replenishment\n\nOnce a blanket order is confirmed, a new vendor line is added under the Purchase tab of\nthe products included in the order.\nThis makes blanket orders useful with automated replenishment , because information about the Vendor , Price , and the Agreement are referenced on the vendor line. This information\ndictates when, where, and at what price the product should be replenished.", "headings": ["Create a new blanket order", "Create a newRfQfrom the blanket order", "Replenishment"], "doc_id": "aeb9664788182edc"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders.html", "title": "Call for tenders", "module": "purchase", "section": "Call for tenders", "text": "# Call for tenders\n\nSometimes, companies might want to invite vendors to submit offers for similar goods or services all\nat once. This helps companies select the cheapest, fastest vendors for their specific business\nneeds.\nIn Odoo, this can be done by creating alternative requests for quotation (RfQs) for different\nvendors. Once a response is received from each vendor, the product lines from each RfQ can be\ncompared, and a decision can be made for which products to purchase from which vendors.\nSometimes referred to as a call for tender , this process is primarily used by organizations in\nthe public sector, who are legally bound to use it when making a purchase. However, private\ncompanies can also use alternative RfQs to spend money efficiently.\n\n## Configuration\n\nTo create alternative RfQs , the Purchase Agreements feature must be enabled in the Purchase app settings. To enable the feature, navigate to Purchase app â£\nConfiguration ⣠Settings . Under the Orders section, click the checkbox for Purchase Agreements .\nThen, click Save to apply the change.\n\n## Create anRfQ\n\nTo create a new RfQ , follow the instructions in the Requests for quotation documentation.\nOdoo Tutorial: Purchase Basics and Your First Request for Quotation\n\n## Create alternativeRfQs\n\nOnce a PO is created and sent to a vendor, alternative RfQs can be created for additional\nvendors to compare prices, delivery times, and other factors, to help make a decision for the order.\nTo create alternative RfQs from the original, click the Alternatives tab. Then, click Create Alternative . When clicked, a Create alternative pop-up window\nappears.\nFrom this window, select an alternative vendor from the drop-down menu next to the Vendor field, to whom the alternative quotation is assigned.\nNext to this, there is a Copy Products checkbox that is selected by default. When\nselected, the product quantities of the original RfQ are copied over to the alternative. For this\nfirst alternative quotation, leave the checkbox checked. Once finished, click Create\nAlternative . This opens a new RfQ form.\nSince the Create Alternative checkbox was left checked, the new form is already\npre-populated with the same products, quantities, and other details as the previous, original RfQ .\nWhen the Copy Products checkbox is selected while creating an alternative quotation,\nadditional products do not need to be added, unless desired.\nHowever, if a chosen vendor is listed in the Vendor column under a specific product\nform included in the order, the values set on the product form carry over to the RfQ , and must be changed manually, if necessary.\nOnce ready, create a second alternative quotation by clicking the Alternatives tab,\nfollowed by Create Alternative .\nThis opens the Create alternative pop-up window. Once again, choose a different vendor\nfrom the drop-down menu next to Vendor . For this particular RfQ , however, uncheck the Copy Products checkbox. Doing so removes all products on the new alternative RfQ ,\nleaving it blank. The specific products which should be ordered from this particular vendor can be\nadded in as needed.\nOnce ready, click Create Alternative .\nIf an alternative quotation should be removed from the Alternatives tab, they can be\nindividually removed by clicking on the X (remove) icon at the end of their row.\nThis creates a third, new RfQ . But, since the product quantities of the original RfQ were not copied over, the product lines are empty, and new products can be added as needed by\nclicking Add a product , and selecting the desired products from the drop-down menu.\nOnce the desired number of specific products are added, click Send by Email .\nThis opens a Compose Email pop-up window, wherein the message to the vendor can be\ncustomized, and attachments can be added, if necessary. Once ready, click Send .\nFrom this newest form, click the Alternatives tab. Under this tab, all three RfQs can\nbe seen in the Reference column. Additionally, the vendors are listed under the Vendor column, and the order Total (and Status ) of the orders\nare in the rows, as well.\nThe date in the Expected Arrival column is calculated for each vendor, based on any\npre-configured lead times in the vendor and product forms.\n\n## Link newRfQto existing quotations\n\nEven if a quotation is not created directly from the Alternatives tab of another RfQ ,\nit can still be linked to existing RfQs .\nTo do that, begin by creating a new RfQ . Navigate to Purchase app ⣠New . Fill\nout the RfQ , according to the previous instructions .\nThen, once ready, click the Alternatives tab. Since this new RfQ was created\nseparately, there are no other orders linked yet.\nHowever, to link this RfQ with existing alternatives, click Link to Existing RfQ on\nthe first line in the Vendor column.\nThis opens an Add: Alternative POs pop-up window. Select the desired previously-created RfQs , and click Select . All of these orders are now copied to this RfQ , and can be\nfound under the Alternatives tab.\nIf a large number of POs are being processed, and the previous POs canât be located, click\nthe (chevron) icon to the right of the search bar, at the top\nof the pop-up window.\nThen, under the Group By section, click Vendor . Vendors are displayed in\ntheir own nested drop-down lists, and each vendorâs list can be expanded to view open POs for\nthat vendor.\n\n## Compare product lines\n\nAlternative RfQs can be compared side-by-side, in order to determine which vendors offer the best\ndeals on the products included in the orders.\nTo compare alternative RfQs , navigate to the Purchase app, and select one of the\npreviously-created RfQs .\nThen, click the Alternatives tab to see all linked RfQs . Next, under the Create Alternative option, click Compare Product Lines . This navigates to\nthe Compare Order Lines page.\nThe Compare Order Lines page, by default, groups by Product . Each product\nincluded in any of the RfQs is displayed in its own nested drop-down list, and features all of the PO numbers in the Reference column.\nTo remove product lines from the Compare Order Lines page, click Clear at\nthe far-right end of that product lineâs row.\nDoing so removes this specific product as a selectable option from the page, and changes the Total price of that product on the page to 0 .\n`0`\nAdditionally, on the RfQ form, in which that product was included, its ordered quantity is also\nchanged to 0 .\n`0`\nOnce the best offers have been identified, individual products can be selected by clicking the Choose button at the end of each corresponding row.\nOnce all desired products have been chosen, click Requests for Quotation (in the\nbreadcrumbs, at the top of the page) to navigate back to an overview of all RfQs .\n\n## Cancel (or keep) alternatives\n\nOnce the desired products have been chosen from the Compare Order Lines page, the\nremaining RfQs , from which no products were chosen, can be cancelled.\nThe cost in the Total column for each product that wasnât chosen is automatically set to 0 , indicated at the far-right of each corresponding row.\n`0`\nAlthough they havenât been cancelled yet, this indicates that each of those orders can be cancelled\nwithout having an effect on the other live orders, once those orders have been confirmed.\nTo confirm an RfQ for which products were selected, click into an RfQ , and click Confirm Order .\nThis causes a What about the alternative Requests for Quotations? pop-up window\nto appear.\nTo view a detailed form of one of the RfQs listed, click the line item for that quotation. This\nopens an Open: Alternative POs pop-up window, from which all details of that particular RfQ can be viewed.\nOnce ready, click Close to close the pop-up window.\nIn the What about the alternative Requests for Quotations? pop-up window, two options\nare presented: Cancel Alternatives and Keep Alternatives .\nIf this PO should not be confirmed, click Discard .\nSelecting Cancel Alternatives automatically cancels the alternative RfQs . Selecting Keep Alternatives keeps the alternative RfQs open, so they can still be accessed, if\nany additional product quantities need to be ordered later.\nOnce all products are ordered, select Cancel Alternatives from whichever PO is open at that time.\nFinally, using the breadcrumbs at the top of the page, click Requests for Quotation to\nnavigate back to an overview of all RfQs .\nThe cancelled orders can be seen, greyed out and listed with a Cancelled status, under\nthe Status column at the far-right of their respective rows.\nNow that all product quantities have been ordered, the purchase process can be completed, and the\nproducts can be received into the warehouse.", "headings": ["Configuration", "Create anRfQ", "Create alternativeRfQs", "Link newRfQto existing quotations", "Compare product lines", "Cancel (or keep) alternatives"], "doc_id": "8167e04fa2e6031d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/purchase/manage_deals/control_bills.html", "title": "Bill control policies", "module": "purchase", "section": "Bill control policies", "text": "# Bill control policies\n\nIn Odooâs Purchase app, the bill control policy determines the quantities billed by vendors on\nevery purchase order (PO), for either ordered or received quantities.\nThe policy selected in the Purchase app settings acts as the default value, and is applied to any\nnew product created.\n\n## Configuration\n\nTo configure the bill control policy, navigate to Purchase app ⣠Configuration\n⣠Settings , and scroll down to the Invoicing section. Under Bill Control ,\nselect either Ordered quantities or Received quantities . Then, click Save .\n- Ordered quantities : creates a vendor bill as soon as a PO is confirmed. The products\nand quantities in the PO are used to generate a draft bill.\nOrdered quantities : creates a vendor bill as soon as a PO is confirmed. The products\nand quantities in the PO are used to generate a draft bill.\n- Received quantities : a bill is created only after part of the total order has been\nreceived. The products and quantities received are used to generate a draft bill. An error message\nappears if creation of a vendor bill is attempted without receiving anything.\nReceived quantities : a bill is created only after part of the total order has been\nreceived. The products and quantities received are used to generate a draft bill. An error message\nappears if creation of a vendor bill is attempted without receiving anything.\nIf a specific product should use a different control policy than selected in the Purchase app\nsettings, the Bill Control policy for that product can be changed from its product\nform.\nTo do that, navigate to Purchase app ⣠Products ⣠Products , and select a\nproduct. From the product form, click the Purchase tab. Under the Vendor\nBills section, modify the selection in the Control Policy field.\n\n## 3-way matching\n\nThe 3-way matching feature ensures vendor bills are only paid once some (or all) of the products\nincluded in the PO have been received.\nTo activate 3-way matching , navigate to Purchase app ⣠Configuration â£\nSettings , and scroll down to the Invoicing section. Then, tick the checkbox for 3-way matching to enable the feature, and click Save .\nThe 3-way matching feature only works with the Bill Control policy\nset to Received quantities .\n\n### Pay vendor bills with 3-way matching\n\nWhen 3-way matching is enabled, vendor bills display a Should Be Paid field under the Other Info tab. When a new vendor bill is created, the field is set to Yes ,\nsince a bill cannot be created until at least some of the products included in a PO have been\nreceived.\nTo create a vendor bill from a PO , navigate to Purchase app ⣠Orders â£\nPurchase Orders . From the Purchase Orders page, select the desired PO from the list.\nThen, click Create Bill . Doing so opens a new draft Vendor Bill form, in the Draft stage. Click the Other Info tab, and locate the Should Be\nPaid field.\nThe PO selected from the list must not be billed yet, or an Invalid Operation pop-up window appears. This occurs for POs with a Received quantities policy, and a Fully Billed Billing Status .\nClick the drop-down menu next to Should Be Paid to view the available options: Yes , No , and Exception .\nIf the total quantity of products from a PO has not been received, Odoo only includes the\nproducts that have been received in the draft vendor bill.\nDraft vendor bills can be edited to increase the billed quantity, change the price of the products\nin the bill, and add additional products to the bill.\nIf the draft billâs information is changed, the Should Be Paid field status is set to Exception . This means that Odoo notices the discrepancy, but does not block the changes\nor display an error message, since there might be a valid reason for making changes to the draft\nbill.\nTo process the vendor bill, select a date in the Bill Date field, and click Confirm , followed by Register Payment .\nThis opens a Register Payment pop-up window. From this window, accounting information is\npre-populated based on the databaseâs accounting settings. Click Create Payment to\nprocess the vendor bill.\nOnce payment has been registered for a vendor bill, and the bill displays the green Paid banner, the Should Be Paid field status is set to No .\nThe Should Be Paid status on bills is automatically set by Odoo. However, the status\ncan be manually changed by clicking the fieldâs drop-down menu inside the Other Info tab.\n\n## View a purchase orderâs billing status\n\nOnce a PO is confirmed, its Billing Status can be viewed under the Other\nInformation tab on the PO form.\nTo view the Billing Status of a PO , navigate to Purchase app â£\nOrders ⣠Purchase Orders , and select a PO to view.\nClick the Other Information tab, and locate the Billing Status field.\nThe table below details the different values the Billing Status field could read, and\nwhen they are displayed, depending on the Bill Control policy used.\nOn received quantities\nOn ordered quantities\nPO confirmed; no products received\nAll/some products received; bill not created\nAll/some products received; draft bill created", "headings": ["Configuration", "3-way matching", "Pay vendor bills with 3-way matching", "View a purchase orderâs billing status"], "doc_id": "b7f4d6a4e44b78dc"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/purchase/manage_deals/manage.html", "title": "Manage vendor bills", "module": "purchase", "section": "Manage vendor bills", "text": "# Manage vendor bills\n\nA vendor bill is an invoice received for products and/or services purchased by a company from a\nvendor. Vendor bills record payables as they arrive from vendors, and can include amounts owed for\nthe goods and/or services purchased, sales taxes, freight and delivery charges, and more.\nIn Odoo, a vendor bill can be created at different points in the purchasing process, depending on\nthe bill control policy chosen in the Purchase appâs settings.\n\n## Bill control policies\n\nTo configure the default bill control policy, navigate to Purchase app â£\nConfiguration ⣠Settings , and scroll to the Invoicing section.\nThe Bill Control feature lists two policy options: Ordered quantities and Received quantities .\nThe policy selected acts as the default for any new product created. Each policy acts as follows:\n- Ordered quantities : creates a vendor bill as soon as a purchase order is confirmed.\nThe products and quantities in the purchase order are used to generate a draft bill.\nOrdered quantities : creates a vendor bill as soon as a purchase order is confirmed.\nThe products and quantities in the purchase order are used to generate a draft bill.\n- Received quantities : a bill is only created after all (or part) of the total order\nhas been received. The products and quantities received are used to generate a draft bill.\nReceived quantities : a bill is only created after all (or part) of the total order\nhas been received. The products and quantities received are used to generate a draft bill.\nOnce a policy is selected, click Save to save the changes.\nIf a product needs a different control policy than the one set in the Purchase app settings,\nthat productâs control policy can be overridden by going to the Purchase tab on a\nproduct form, and selecting the desired policy in the Control Policy field.\n\n### 3-way matching\n\nThe 3-way matching policy ensures vendor bills are only paid once all (or some) products in a\npurchase order (PO) have been received.\nTo activate 3-way matching, navigate to Purchase app ⣠Configuration â£\nSettings , and scroll to the Invoicing section.\nTick the checkbox next to 3-way matching , and click Save .\nThe 3-way matching feature is only intended to work with the Bill\nControl policy set to Received quantities .\n\n## Create and manage vendor bills on receipts\n\nWhen products are received into a companyâs warehouse, receipts are created. Once the company\nprocesses the received quantities, they can choose to create a vendor bill directly from the\nwarehouse receipt form.\nDepending on the bill control policy chosen in the settings, vendor bill creation is completed at\ndifferent steps of the procurement process.\n\n### Ordered quantities\n\nTo create and manage vendor bills for receipts with the Bill Control policy set to Ordered\nQuantities , first navigate to the Purchase app , and click New from the Requests for Quotation dashboard.\nDoing so opens a new Request for Quotation (RfQ) form. On the blank RfQ form, add a Vendor , and click Add a line under the Product tab to add\nproducts to the order.\nOn the product line, select a product from the drop-down menu in the Product field, and\nenter the quantity to order in the Quantity field.\nOnce ready, click Confirm Order to confirm the RfQ into a PO .\nThen, click Create Bill to create a vendor bill. This opens a Vendor Bill form in the Draft state. From here, add a billing date in the Bill Date field.\nOnce ready, confirm the bill by clicking Confirm on the Vendor Bill page.\nSince the bill control policy is set to Ordered quantities , the draft bill can be confirmed as\nsoon as it is created, before any products have been received.\nOnce a payment has been received, click Register Payment at the top of the bill to\nrecord it.\nDoing so causes a Register Payment pop-up window to appear, wherein a payment Journal can be chosen, and a Payment Method selected.\nAdditionally, the bill Amount , Payment Date , and Memo ( Reference Number ) can be edited from this pop-up window, if necessary.\nOnce ready, click Create Payment to finish creating the Vendor Bill . Doing\nso displays a green Paid banner on the RfQ form.\n\n### Received quantities\n\nTo create and manage vendor bills for receipts with the bill control policy set to Received\nquantities , first navigate to the Purchase app, and click New .\nDoing so opens a new RfQ form. On the blank RfQ form, add a Vendor , and click Add a line under the Product tab to add products to the order.\nOn the product line, select a product from the drop-down menu in the Product field, and\nenter the quantity to order in the Quantity field.\nOnce ready, click Confirm Order to confirm the RfQ into a PO .\nWhen using the Received quantities control policy, clicking Create Bill before any\nproducts are received causes an Invalid Operation pop-up window to appear.\nOdoo requires at least partial quantities of the items included in the PO to be received in\norder to create a vendor bill.\nOn the PO , click the Receipt smart button to view the warehouse receipt form.\nFrom here, click Validate to register the Done (received) quantities.\nThen, navigate back to the PO , via the breadcrumb, and click Create Bill .\nThis opens a Vendor Bill form in the Draft state. From here, add a billing\ndate in the Bill Date field. Once ready, confirm the bill by clicking Confirm at the top of the draft.\nOnce a payment has been received, click Register Payment at the top of the bill to\nrecord it.\nDoing so causes a Register Payment pop-up window to appear, wherein a payment Journal can be chosen, and a Payment Method selected.\nAdditionally, the bill Amount , Payment Date , and Memo ( Reference Number ) can be edited from this pop-up window, if necessary.\nOnce ready, click Create Payment to finish creating the Vendor Bill . Doing\nso displays a green Paid banner on the RfQ form.\n\n## Manage vendor bills in Accounting\n\nVendor bills can also be created directly from the Accounting app, without having to create a\npurchase order first.\nNavigate to Accounting app ⣠Vendors ⣠Bills , and click New . Doing\nso reveals a blank Vendor Bill form.\nAdd a vendor in the Vendor field. Then, in the Invoice Lines tab, click Add a line to add products.\nSelect a product from the drop-down menu in the Product field, and enter the quantity to\norder in the Quantity field.\nSelect a Bill Date , and configure any other necessary information. Finally, click Confirm to confirm the bill.\nOnce confirmed, click the Journal Items tab to view the Account journals.\nThese journals are populated based on the configuration on the corresponding Vendor and Product forms.\nIf necessary, click Credit Note to add a credit note to the bill. Additionally, a Bill Reference number can be added.\nOnce ready, click Register Payment , followed by Create Payment , to complete\nthe Vendor Bill .\nTo link a draft bill to an existing purchase order, click the drop-down menu next to Auto-Complete before clicking Confirm , and select a PO from the menu.\nThe bill auto-populates with the information from the chosen PO .\n\n## Batch billing\n\nVendor bills can be processed and managed in batches in the Accounting app.\nNavigate to Accounting app ⣠Vendors ⣠Bills . Then, click the checkbox in the top-left corner, beside the Number column, under the New button.\nThis selects all existing vendor bills with a Status of Posted or Draft .\nClick the Print button to print the selected invoices or bills.\nClick Register Payment to create and process payments for multiple vendor bills at once.\nOnly payments with their Status listed as Posted can be billed in\nbatches. Payments in the Draft stage must be posted before they can be included\nin a batch billing.\nClicking Register Payment opens a Register Payment pop-up window. From the\npop-up window, select the Journal the bills should post to, choose a Payment\nDate , and select a Payment Method .\nThere is also the option to Group Payments together from this pop-up window, as well. If\nthis checkbox is ticked, only one payment is created, instead of one per bill. This option only\nappears if the Batch Payments feature is enabled in the settings of the Accounting app.\nOnce ready, click the Create Payment button. This creates a list of journal entries on a\nseparate page. The journal entries on this list are all tied to their corresponding vendor bills.\nBill control policies", "headings": ["Bill control policies", "3-way matching", "Create and manage vendor bills on receipts", "Ordered quantities", "Received quantities", "Manage vendor bills in Accounting", "Batch billing"], "doc_id": "a5c888efd8c137f1"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/purchase/manage_deals/purchase_templates.html", "title": "Purchase templates", "module": "purchase", "section": "Purchase templates", "text": "# Purchase templates\n\nPurchase templates are an agreement type that allow for the repeated creation of requests for\nquotations (RFQs) for recurring purchases. Products can then be added and quantities can be changed,\nas needed. Purchase templates can be used for multiple vendors, saving time and simplifying the RFQ process.\nPurchase templates differ from blanket orders in that a blanket order is a large order\nsplit into several deliveries, therefore all RFQs must be for the same vendor. Purchase templates can be\nreplicated for multiple vendors, and can copy over quantities, which is useful when placing frequent\norders.\n\n## Configuration\n\nFirst, navigate to Purchase app ⣠Configuration ⣠Settings . Under the Orders section, tick the Purchase Agreements checkbox. Click Save to save the changes.\n\n## Create a new template\n\nNavigate Purchase app ⣠Orders ⣠Purchase Agreements and click New .\nSelect a Vendor from the drop-down list.\nTo make this template available to use with multiple vendors, leave the Vendor field\nblank.\nIn the Agreement Type field, select Purchase Template from the drop-down.\nConfirm the information in the remaining fields is correct, or update as needed.\nOn the Products tab, click Add a line , and select the desired product.\nUpdate the Quantity , and set the Unit Price .\nWhen adding products to a new blanket order, the pre-existing prices of products are not\nautomatically added to the product lines. Instead, the prices must be manually assigned, by\nchanging the value in the Unit Price column to an agreed-upon price with the listed\nvendor. Otherwise, the price will remain 0 .\n`0`\nAfter adding all necessary products, click Confirm .\n\n### Create a new RFQ from a purchase template\n\nAfter confirming a purchase template, new quotations can be created directly from the purchase template form. RFQs using\nthis form are pre-populated with information based on the rules set in the form. Additionally, new\nquotations are automatically linked to this purchase template form, via the RFQs/Orders smart button at the top of the form.\nTo create a new quotation , click New\nQuotation . This opens a new RFQ , that is pre-populated with the correct information, depending on\nthe settings configured on the purchase template form.\nIf there was no vendor identified on the purchase template, choose a Vendor from the drop-down list.\nProducts can be added to the RFQ by clicking Add a product in the Products tab. To remove a product, click the (trash) icon at the far-right of\nthe product line.\nFrom the new RFQ form, click Send by Email to compose and send an email to the listed\nvendor. Click Print RFQ to generate a printable PDF of the quotation; or, once ready,\nclick Confirm Order to confirm the purchase order.\nAfter confirming the order, return to the purchase template via the breadcrumbs. The RFQs/Orders smart button has been updated to list the confirmed order.", "headings": ["Configuration", "Create a new template", "Create a new RFQ from a purchase template"], "doc_id": "d508cb3d4f51d12e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/purchase/manage_deals/rfq.html", "title": "Requests for quotation", "module": "purchase", "section": "Requests for quotation", "text": "# Requests for quotation\n\nOdooâs requests for quotation (RFQs) feature in the Purchase app standardizes ordering products\nfrom multiple vendors with varying prices and delivery times.\nRFQs are documents companies send to vendors requesting product pricing. In Odoo, once the vendor\napproves the RFQ , the purchase order (PO) is confirmed to align on lead times and pricing.\n\n## Configuration\n\n### Product\n\nTo auto-populate product information and prices on an RFQ , configure products by going to Purchase app ⣠Products ⣠Products . Select an existing product, or create a new\none by selecting New . Doing so opens the product form, where sales and purchasing data\ncan be configured.\nTo configure purchasable products, tick the Purchase checkbox, under the product name.\nNext, go to the Inventory tab, and enable the Buy route.\nThe Inventory tab and routes are only visible if using the Inventory app .\nConfigure product types and track quantities\n\n### Vendor pricelist\n\nIn the Purchase tab of the product form, click Add a line to input the\nvendor and their price, to have this information auto-populate on an RFQ each time the product is\nlisted.\nImport vendor pricelist\nDefault columns include Quantity , Unit Price , and Delivery Lead\nTime , but other columns like, Vendor Product Code or Discount (%) , can also\nbe enabled.\nTo enable or disable columns, click the (additional options) icon on the right side of the header row to reveal a drop-down menu of additional columns that can\nbe added (or removed) from the Purchase tab.\nAlternatively, prices and delivery lead times for existing products can be added by going to Purchase app ⣠Configuration ⣠Vendor Pricelists . Click New in\nthe top-left corner. In the Vendor section of the pricelist form that appears, add\nthe product information as it pertains to the vendor.\n\n## Order products\n\nWith products and prices configured, follow these steps to create and send RFQs to make purchases\nfor the company.\n\n### RFQdashboard\n\nTo get started, navigate to Purchase app ⣠Orders ⣠Requests for Quotation .\nThe Requests for Quotation dashboard displays an overview of the companyâs RFQs , POs , and their status. The top of the screen breaks down all RFQs in the company, as well as\nindividual ones (where the user is the buyer) with a summary of their status.\nThe top-right corner also provides a report of the companyâs recent purchases by total value, lead\ntimes, and number of RFQs sent.\nAdditionally, the dashboard includes buttons for:\n- To Send : orders in the RFQ stage that have not been sent to the vendor.\nTo Send : orders in the RFQ stage that have not been sent to the vendor.\n- Waiting : RFQs that have been sent by email, and are waiting on vendor confirmation.\nWaiting : RFQs that have been sent by email, and are waiting on vendor confirmation.\n- Late : RFQs or POs where the Order Deadline has passed.\nLate : RFQs or POs where the Order Deadline has passed.\nIn addition to view options, the Requests for Quotation dashboard provides Filters and Group By options, accessible via the search bar drop-down menu.\nSearch, filter, and group records\n\n### Create a newRFQ\n\nTo create a new RFQ , click the New button on the top-left corner of the Requests for Quotation dashboard to reveal a new PO form.\nStart by assigning a Vendor .\nThe Vendor Reference field points to the sales and delivery order numbers sent by the\nvendor. This comes in handy once products are received, and the PO needs to be matched to the\ndelivery order.\nWith the Purchase Agreements feature activated, the Blanket\nOrder field appears, referring to long-term purchase agreements on recurring orders with set\npricing. To view and configure blanket orders, head to Purchase app ⣠Orders â£\nPurchase agreements .\nThe Purchase agreements view only appears if the Blanket Order setting is\nenabled. To do so, navigate to Purchase app ⣠Configuration ⣠Settings , then\ntick the Blanket Orders checkbox.\nNext, configure an Order Deadline , which is the date by which the vendor must confirm\ntheir agreement to supply the products.\nAfter the Order Deadline is exceeded, the RFQ is marked as late, but the products\ncan still be ordered.\nExpected Arrival is automatically calculated based on the Order Deadline and\nvendor lead time. Tick the checkbox for Ask confirmation to ask the vendor to confirm\nthe shipping date by email.\nWith the Storage Locations feature activated, the Deliver to field appears, which specifies which warehouse operation (set in the Inventory app) is used to receive the shipment.\nSelect the receiving warehouse address here, or select Dropship to indicate that this\norder is to be shipped directly to the end customer. When Dropship is selected, the Dropship address field is enabled. Contact names auto-populate here from the Contacts app.\nThe Dropship options only appear if the Dropshipping setting is enabled\nin the Inventory app. To do so, navigate to Inventory app ⣠Configuration\n⣠Settings , then tick the Dropshipping checkbox.\nTo create RFQs using different currencies, each currency needs to be enabled in the Invoicing app settings. See Foreign currencies to\nlearn more.\n\n#### Products tab\n\nIn the Products tab, add the products to be ordered. Click Add a product ,\nand type in the product name, or select the item from the drop-down menu.\nTo create a new product and add it, type the new product name in the Product column,\nselect Create [product name] from the resulting drop-down menu and manually add the unit\nprice. Alternatively, select Create and edit⦠to be taken to the product form for that\nnew item.\nCatalog can also be selected to navigate to a product menu from the chosen vendor. From\nhere, products can be added to the cart.\nTo make adjustments to products and prices, access the product form by clicking the (right arrow) icon that becomes available upon hovering over\nthe Product name.\n\n### Send theRFQ\n\nClicking Send by Email reveals a Compose Email pop-up window, with a Purchase: Request for Quotation template loaded, ready to send to the vendorâs email\naddress (configured in the Contacts app).\nAfter crafting the desired message, click Send . Once sent, the RFQ moves to the RFQ Sent stage.\nClicking Print RFQ downloads a PDF of the RFQ .\n\n### Confirm order\n\nClicking Confirm Order directly transforms the RFQ into an active PO .\nOdoo tracks communications on each order through the chatter of the PO form. This shows the\nemails sent between the user and the contact, as well as any internal notes and activities.\nMessages, notes, and activities can also be logged on the chatter.\nOnce an RFQ is confirmed, it creates a PO .\nOn the new PO , the Order Deadline field changes to Confirmation Date ,\nwhich displays the date and time the user confirmed the order.\nDepending on the userâs chosen configuration in the Purchase app settings, a vendor bill is\ncreated once products have been ordered or received. For more information, refer to the\ndocumentation on managing vendor bills .\nAfter an order is placed, clicking Receive Products records the reception of new\nproducts into the database.\nWith the Inventory app installed, confirming a PO automatically creates a receipt document,\nwith the product information and expected arrival dates automatically populated.", "headings": ["Configuration", "Product", "Vendor pricelist", "Order products", "RFQdashboard", "Create a newRFQ", "Send theRFQ", "Confirm order"], "doc_id": "1be7dabd6a5653bc"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/purchase/products/pricelist.html", "title": "Import vendor pricelist", "module": "purchase", "section": "Import vendor pricelist", "text": "# Import vendor pricelist\n\nSet vendor prices to auto-populate requests for quotations (RFQs) or purchase orders (POs) with the\nunit price, once the product is added, which reduces errors and saves time.\nIn Odoo, vendor pricelists can be added individually on the\nproduct form, or imported in bulk , via an XLSX or CSV\nfile.\nPlease review this import guide before uploading\nvendor pricelists.\n\n## On product form\n\nTo manually add the vendor price on the product form, go to the Purchase app â£\nProducts ⣠Products , and click the desired product.\nProduct forms are accessible from multiple apps, such as Sales , Inventory , and Manufacturing .\nIn the Purchase tab of the product form, input the vendor and their price, to have this\ninformation auto-populate on a request for quotation each time the product is listed.\nVendor pricelist on product form\n\n## Import vendor pricelist\n\nTo import vendor pricelists, ensure the XLSX or CSV file is accurately completed. The best way to\nobtain a correctly formatted template, including product names, references, and vendor details, is\nto first export a pricelist from the database.\nModify the exported file, as needed, then import it back into the Odoo database.\n\n### Export pricelist\n\nTo export a pricelist, go to Purchase app ⣠Configuration ⣠Vendor Pricelists .\nOn the page, tick the checkbox(es) for the desired vendor pricelists.\nThen, click the Actions button that appears, and choose Export from the drop-down menu.\nIn the resulting pop-up window, fields listed under the Fields to export section are\nincluded in the exported file. To add more fields, find the desired field in the Available fields section, and click the (plus) icon to the\nright of the field.\nTo update to existing records, tick the I want to update data (import-compatible\nexport) checkbox, and refer to the section on the External ID field.\nFor details on commonly-used fields for importing vendor pricelists, see the Common fields section.\nSelect the desired Export Format : XLSX or CSV .\nTo save the selected fields as a template, click the Template field, and select New template from the drop-down menu. Type the name of the new template, and click the (save) icon. After that, the template is a selectable option when\nclicking the Template field.\nFinally, click Export .\nWith developer mode turned on, the column names of the exported file\ndisplay the field name with the technical name in parenthesis.\nExport vendor pricelist in XLSX format. It includes Product Template and other\nfields in the Fields to export section.\n\n#### External ID\n\nExternal ID is a unique identifier used to update existing vendor pricelists. Without it, imported\nrecords create new entries, instead of updating existing ones. Including this field in the XLSX or\nCSV, indicates the line replaces an existing vendor pricelist in the Odoo database.\nReady Mat appears twice because the external ID was omitted during the price update from $790 to $780 .\n`ReadyMat`\n`$790`\n`$780`\nTo look-up the External ID for a vendor pricelist, tick the I want to update\ndata (import-compatible export) checkbox at the top of the Export Data pop-up window.\nSelecting External ID from the Available fields section with the I want to update data (import-compatible export) checkbox ticked results in an export\nfile with two columns containing the external ID.\n\n#### Common fields\n\nBelow is a list of commonly-used fields when importing vendor pricelists:\nField in Odoo database\nTechnical name of field\nThe only required field for creating a vendor pricelist record. This field specifies the\nvendor associated with the product.\nVendor field in the vendor pricelist of the product form .\n`partner_id`\nThe Odoo product the vendor pricelist entry is related to.\nProduct field in the vendor pricelist.\n`product_tmpl_id`\nThe minimum quantity required to receive the product at the specified price.\nQuantity field in the vendor pricelist. (If not visible, enable it by clicking\nthe (adjust) icon, and tick the Quantity checkbox)\n`min_qty`\nThe purchase price for the product from the vendor.\nPrice field in the vendor pricelist.\n`price`\nNumber of days before receiving the product\nafter confirming a purchase order.\nDelivery Lead Time field on the vendor pricelist.\n`delay`\nDefines the order of vendors in the pricelist when multiple vendors are available. For\nexample, if Azure Interior is listed first and Wood Corner second, their sequences would be 1 and 2 .\n`AzureInterior`\n`1`\n`2`\n`sequence`\nName of company the product belongs to.\nCompany field in the vendor pricelist.\n`company_id`\nUnique ID of a record used to update existing vendor pricelists.\n`id`\n\n### Import records\n\nWith a template downloaded, fill out the XLSX or CSV file with the necessary information. After\ninputting everything, import the file back into the Odoo database, by going to Purchase app ⣠Configuration ⣠Vendor Pricelists .\nOn the page, click the (gear) icon in the top-left corner. In the\ndrop-down menu that appears, click Import records .\nThen, click Upload File in the upper-left corner, and after selecting the XLSX or CSV\nfile, confirm the correct fields, and click Import .\n- Export and import data\nExport and import data\n- Common fields\n\n#### Formatting import file\n\nTo understand how to format import files for vendor pricelists, consider the following example.\n- Storage Box ( Reference : E-COM08 ) is sold by Wood Corner for $10 .\nStorage Box ( Reference : E-COM08 ) is sold by Wood Corner for $10 .\n`StorageBox`\n`E-COM08`\n`WoodCorner`\n`$10`\n- Large Desk ( Reference : E-COM09 ) has no records in the vendor pricelist.\nLarge Desk ( Reference : E-COM09 ) has no records in the vendor pricelist.\n`LargeDesk`\n`E-COM09`\nAn import file is created to do the following:\n- Update the price for Wood Corner from $10 to $13 .\nUpdate the price for Wood Corner from $10 to $13 .\n`WoodCorner`\n`$10`\n`$13`\n- Add pricelist for Storage Box : the vendor, Ready Mat intends to sell the product for $14 .\nAdd pricelist for Storage Box : the vendor, Ready Mat intends to sell the product for $14 .\n`StorageBox`\n`ReadyMat`\n`$14`\n- Add pricelist for Large Desk : vendor is Wood Corner , price is $1299 .\nAdd pricelist for Large Desk : vendor is Wood Corner , price is $1299 .\n`LargeDesk`\n`WoodCorner`\n`$1299`\n- Add pricelist for Large Desk : vendor is Azure Interior , price is $1399 .\nAdd pricelist for Large Desk : vendor is Azure Interior , price is $1399 .\n`LargeDesk`\n`AzureInterior`\n`$1399`\nproduct.product_supplierinfo_3\nMy Company (San Francisco)\n[E-COM08] Storage Box\nMy Company (San Francisco)\n[E-COM08] Storage Box\nMy Company (San Francisco)\nMy Company (San Francisco)\nThe technical field name was used to create this information.\nDownload the sample files for reference:\n- Sample XLSX import file\nSample XLSX import file\n`SampleXLSXimportfile`\n- Sample CSV import file\nSample CSV import file\n`SampleCSVimportfile`", "headings": ["On product form", "Import vendor pricelist", "Export pricelist", "Import records"], "doc_id": "e7cb65a04f2f6228"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/purchase/products/reordering.html", "title": "Configure reordering rules", "module": "purchase", "section": "Configure reordering rules", "text": "# Configure reordering rules\n\nFor certain products, it is necessary to ensure that there is always a minimum amount available on\nhand at any given time. Maintaining a minimum stock level ensures that businesses can meet customer\ndemand without delays, and keep operations running smoothly. It also helps buffer against supply\nchain disruptions and unexpected spikes in demand. Inefficiencies may arise from inaccurate demand\nforecasting, supply chain delays, and warehouse mismanagement, all of which can lead to increased\noperational costs and wasted resources.\nKeep highly demanded products in-stock at all times using reordering rules, that trigger a RFQ\n(Request for Quotation) each time the forecasted stock quantities fall below the minimum. RFQs generated from reordering rules have the vendor, price,\nquantity needed to reorder, which makes things faster and more convenient.\nThe Inventory app must be installed to use reordering rules, as it keeps track of stock\nquantity.\n\n## Configure products for reordering\n\nProducts must be configured in a specific way before a reordering rule can be added to them.\nStarting from the Inventory , Manufacturing , Purchase , or Sales app, navigate to Products â£\nProducts and then click New to make a new product. Alternatively, find a product that\nalready exists in the database and click into itâs product form.\nNext, on the product form, enable reordering by ticking the Purchase checkbox\nunderneath the Product name field. Then, under the General Information tab,\nset the Product Type to Goods . Finally, tick the checkbox labeled Track Inventory , and select an option from the drop-down.\n\n## Add a reordering rule to a product\n\nAfter properly configuring a product, a reordering rule can be added to it by selecting the now\nvisible Reordering Rules smart button at the top of that productâs\nform, then clicking Create on the Reordering Rules dashboard.\nIf the Reordering Rules smart button is not visible, click More .\nOnce created, the reordering rule can be configured to generate purchase orders automatically by\ndefining the following fields:\n- Location specifies where the ordered quantities should be stored once they are\nreceived and entered into stock.\nLocation specifies where the ordered quantities should be stored once they are\nreceived and entered into stock.\n- Min Quantity sets the lower threshold for the reordering rule while Max\nQuantity sets the upper threshold. If the stock on hand falls below the minimum quantity, a new\npurchase order is then created to replenish it up to the maximum quantity. Example If Min Quantity is set to 5 and Max Quantity is set to 25 and the\nstock on hand falls to four, a purchase order is then created for 21 units of the product.\nMin Quantity sets the lower threshold for the reordering rule while Max\nQuantity sets the upper threshold. If the stock on hand falls below the minimum quantity, a new\npurchase order is then created to replenish it up to the maximum quantity.\nIf Min Quantity is set to 5 and Max Quantity is set to 25 and the\nstock on hand falls to four, a purchase order is then created for 21 units of the product.\n`5`\n`25`\n- Multiple Quantity can be configured so that products are only ordered in batches of a\ncertain quantity. Depending on the number entered, this can result in the creation of a purchase\norder that would put the resulting stock on hand above what is specified in the Max\nQuantity field. Example If Max Quantity is set to 100 but Multiple Quantity is set to order\nthe product in batches of 200 , a purchase order is then created for 200 units of the\nproduct.\nMultiple Quantity can be configured so that products are only ordered in batches of a\ncertain quantity. Depending on the number entered, this can result in the creation of a purchase\norder that would put the resulting stock on hand above what is specified in the Max\nQuantity field.\nIf Max Quantity is set to 100 but Multiple Quantity is set to order\nthe product in batches of 200 , a purchase order is then created for 200 units of the\nproduct.\n`100`\n`200`\n- Unit specifies the unit of measurement by which the quantity is to be ordered. For\ndiscrete products, this should be set to Units . However, it can also be set to units of\nmeasurement like Volume or Weight for non-discrete products like water or bricks.\nUnit specifies the unit of measurement by which the quantity is to be ordered. For\ndiscrete products, this should be set to Units . However, it can also be set to units of\nmeasurement like Volume or Weight for non-discrete products like water or bricks.\n`Units`\n`Volume`\n`Weight`\n\n## Manually trigger reordering rules using the scheduler\n\nReordering rules are automatically triggered by the scheduler, which runs once a day by default. To\ntrigger reordering rules manually, turn on developer mode, navigate to Inventory app\n⣠Operations ⣠Procurement: Run Scheduler . On the pop-up window, confirm the manual action by\nclicking Run Scheduler .\nManually triggering reordering rules will also trigger any other scheduled actions.\n\n## Manage reordering rules\n\nTo manage the reordering rules for a single product, navigate to that product pageâs form and select\nthe Reordering Rules smart button at the top of the form.\nTo manage all reordering rules for every product, go to Inventory app ⣠Operations\n⣠Replenishment . From this dashboard, typical bulk actions in Odoo can be performed such as\nexporting data or archiving rules that are no longer needed. As well, the Filters , Group By or triple-dotted menu on the form are available to search for and/or organize\nthe reordering rules as desired.", "headings": ["Configure products for reordering", "Add a reordering rule to a product", "Manually trigger reordering rules using the scheduler", "Manage reordering rules"], "doc_id": "76b759d2edc8a00f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/purchase/products/temporary_reordering.html", "title": "Temporary reordering rules", "module": "purchase", "section": "Temporary reordering rules", "text": "# Temporary reordering rules\n\nSome businesses require certain products to always have a minimum quantity of stock on-hand at any\ngiven time. To avoid stock falling below a certain threshold, companies can create reordering\nrules in Odoo to automate purchase orders for specific products.\nReordering rules keep the forecasted stock levels above a certain threshold, without exceeding a\nspecified upper limit, or maximum amount. When a product with a reordering rule falls below a\nspecified quantity, Odoo generates an order using the specified route (e.g. Buy or Manufacture ) to replenish the stock.\nIn certain cases, businesses might opt for temporary reordering rules when they do not want\nspecific products to be replenished automatically.\nIn Odoo, a âtemporaryâ reordering rule is created in the replenishment dashboard when a product:\n- is configured with a Buy route\nis configured with a Buy route\n- has no reordering rule configured\nhas no reordering rule configured\n- has 0 quantity in stock\nhas 0 quantity in stock\n`0`\n- is included in a sales order (SO).\nis included in a sales order (SO).\nThis rule is deleted upon confirmation of the purchase order (PO) generated for the product.\n- Reordering rules\n- Configure reordering rules\nConfigure reordering rules\n\n## Configuration\n\nTo configure a product that triggers temporary reordering rules when its stock reaches 0 , begin by\ngoing to Inventory app ⣠Products ⣠Products , and click New .\n`0`\nThe same configurations can also be made on an existing product, by going to Inventory app ⣠Products ⣠Products , and selecting an existing product.\nOn the product form, enter the product name, and ensure the Can be Sold and Can be Purchased options are enabled, located beneath the Product Name field.\nThen, set the Product Type to Storable Product , under the General\nInformation tab.\n`StorableProduct`\nNext, click the Purchase tab, and under Vendor , click Add a line to select a vendor from the drop-down menu. Then, set a purchase price under Price .\nA vendor must be set for temporary reordering rules to work. While a PO can still be created automatically, attempting to replenish the product from the Replenishment dashboard in the Inventory app triggers a warning to add a vendor on\nthe product form.\nBefore creating a SO for the product, ensure the On Hand smart\nbutton on the product form reads 0.00 Units . Then, ensure that the Reordering Rules smart button reads 0 , indicating there are no rules applied to this product.\n`0.00Units`\n`0`\n\n## Trigger temporary reordering rule\n\nTo trigger a temporary reordering rule, create a new sales order for a product by navigating to Sales app ⣠New .\nThen, add a customer in the Customer field, and click Add a product under\nthe Product column in the Order Lines tab. Next, select the desired product\nfrom the drop-down menu. Lastly, Confirm the SO .\n\n## Check replenishment report\n\nTo see the temporary reordering rule created for the out-of-stock product included in the sales\norder, navigate to Inventory app ⣠Operations ⣠Replenishment . Doing so opens\nthe Replenishment dashboard.\nOn this dashboard, locate the product for which the temporary reordering rule was created. On its\nproduct line, its On Hand quantity, negative Forecast quantity, Buy Route , and To Order quantity to replenish can be seen.\nAdditionally, two replenishment options are located to the far-right of the row: Order\nOnce and Automate .\nTo use the one-time, temporary reordering rule, click Order Once . This action triggers a\nconfirmation pop-up window in the top-right corner, reading The following replenishment\norder has been generated , along with a new purchase order number.\nOnce the purchase order has been generated after clicking Order Once , refresh the\npage. The temporary reordering rule for the product no longer appears in the Replenishment dashboard.\n\n## Complete purchase order\n\nTo view the purchase order created from the Replenishment dashboard, navigate to the Purchase app , and select the generated PO from the Requests for Quotation overview.\nFrom here, click Confirm Order , then click Receive Products . Finally, click Validate to complete the purchase order.\nNow, the original sales order can be delivered and invoiced.\nOnce the SO is delivered and invoiced, ensure there are no reordering rules\non the product form.\nGo to Inventory app ⣠Products ⣠Products , select the product, and confirm\nthat the Reordering Rules smart button displays 0 .\n`0`", "headings": ["Configuration", "Trigger temporary reordering rule", "Check replenishment report", "Complete purchase order"], "doc_id": "17f306de0d86b955"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/quality.html", "title": "Quality", "module": "quality", "section": "Quality", "text": "# Quality\n\nOdoo Quality helps ensure product quality throughout manufacturing processes and inventory\nmovements. Conduct quality checks, automate quality inspection frequency, and create quality alerts\nwhen issues arise.\n- Odoo Tutorials: Quality Overview\nOdoo Tutorials: Quality Overview", "headings": [], "doc_id": "a33b29707c90a442"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.html", "title": "Instructions quality check", "module": "quality", "section": "Instructions quality check", "text": "# Instructions quality check\n\nIn Odoo Quality , an Instructions check is one of the quality check types that can be selected\nwhen creating a new quality check or quality control point (QCP). Instructions checks consist of a\ntext entry field that allows the creator to provide instructions for how to complete the check.\nFor a full overview of how to configure a quality check or a QCP , see the documentation on quality checks and quality control points .\n\n## Process an Instructions quality check\n\nThere are multiple ways that Instructions quality checks can be processed. If a quality check is\nassigned to a specific manufacturing, inventory, or work order, the check can be processed on the\norder itself. Alternatively, a check can be processed from the checkâs page.\n\n### Process from the quality checkâs page\n\nTo process an Instructions quality check from the checkâs page, begin by navigating to Quality ⣠Quality Control ⣠Quality Checks , and select a quality check. Follow\nthe Instructions for how to complete the check.\nIf the product passes the check, click the Pass button above the quality check form. If\nthe product does not pass the check, click the Fail button, instead.\n\n### Process quality check on an order\n\nTo process an Instructions quality check on an order, select a manufacturing order or inventory\norder (receipt, delivery, return, etc.) for which a check is required. Manufacturing orders can be\nselected by navigating to Manufacturing ⣠Operations ⣠Manufacturing Orders ,\nand clicking on an order. Inventory orders can be selected by navigating to Inventory , clicking the # To Process button on an operation card, and\nselecting an order.\nOn the selected manufacturing or inventory order, a purple Quality Checks button appears\nabove the order. Click the button to open the Quality Check pop-up window, from which\nany quality checks created for the order can be processed.\nTo complete an Instructions quality check, follow the instructions detailed in the Quality Check pop-up window. Finally, click Validate to confirm that the\ncheck has been completed.\nIf an issue or defect is found during the quality check, a quality alert may need to be created to\nnotify a quality team. To do so, click the Quality Alert button that appears at the top\nof the manufacturing or inventory order after the check is validated.\nClicking Quality Alert opens a quality alert form on a new page. For a complete guide on\nhow to fill out quality alert forms, view the documentation on quality alerts .\n\n### Process work order quality check\n\nWhen configuring a QCP that is triggered by a manufacturing order, a specific work order can also\nbe specified in the Work Order Operation field on the QCP form. If a work order is\nspecified, an Instructions quality check is created for that specific work order, rather than the MO as a whole.\nQuality checks configured for work orders must be completed from the Shop Floor module. To do\nso, begin by navigating to Manufacturing ⣠Operations ⣠Manufacturing Orders .\nSelect an MO that includes a work order for which an Instructions quality check is required.\nOn the MO , select the Work Orders tab, and click the Open Work Order\n(square with arrow coming out of it) button on the line of the work order to be processed. On the\nresulting Work Orders pop-up window, click the Open Shop Floor button to\nopen the Shop Floor module.\nWhen accessed from a specific work order, the Shop Floor module opens to the page for the work\ncenter where the order is configured to be processed, and isolates the work orderâs card so that no\nother cards are shown.\nBegin processing the work orderâs steps until the Instructions quality check step is reached.\nClick on the step to open a pop-up window that details how to complete the quality check. Once\ncompleted, click the Next button to complete the check, and move on to the next step.\nAlternatively, an Instructions quality check can be completed by clicking the checkbox that\nappears on the right side of the stepâs line on the work order card. When using this method, the\nquality check automatically passes, without a pop-up window appearing.\nFor a full guide to the Shop Floor module, see the Shop Floor overview documentation.", "headings": ["Process an Instructions quality check", "Process from the quality checkâs page", "Process quality check on an order", "Process work order quality check"], "doc_id": "49d5e63f26316fa2"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/quality/quality_check_types/measure_check.html", "title": "Measure quality check", "module": "quality", "section": "Measure quality check", "text": "# Measure quality check\n\nIn Odoo Quality , a Measure check is one of the quality check types that can be selected when\ncreating a new quality check or quality control point (QCP). Measure checks prompt users to\nmeasure a certain aspect of a product and record the measurement in Odoo. For the quality check to\npass, the recorded measurement must be within a certain tolerance of a norm value.\n\n## Create a Measure quality check\n\nThere are two distinct ways that Measure quality checks can be created. A single check can be\nmanually created. Alternatively, a QCP can be configured that automatically creates checks at a\npredetermined interval.\nThis documentation only details the configuration options that are unique to Measure quality\nchecks and QCPs . For a full overview of all the configuration options available when creating a\nsingle check or a QCP , see the documentation on quality checks and quality control points .\n\n### Quality check\n\nTo create a single Measure quality check, navigate to Quality ⣠Quality Control\n⣠Quality Checks , and click New . Fill out the new quality check form as follows:\n- In the Type drop-down field, select the Measure quality check type.\nIn the Type drop-down field, select the Measure quality check type.\n- In the Team drop-down field, select the quality team responsible for managing the\ncheck.\nIn the Team drop-down field, select the quality team responsible for managing the\ncheck.\n- In the Instructions text field of the Notes tab, enter instructions for\nhow the picture should be taken.\nIn the Instructions text field of the Notes tab, enter instructions for\nhow the picture should be taken.\n\n### Quality control point (QCP)\n\nTo create a QCP that generates Measure quality checks automatically, navigate to Quality ⣠Quality Control ⣠Control Points , and click New . Fill out\nthe new QCP form as follows:\n- In the Type drop-down field, select the Measure quality check type. Doing\nso causes two new fields to appear: Norm and Tolerance . Use the first text-entry field of the Norm field to record the ideal measurement\nthat the product should conform to. Use the second text-entry field to specify the unit of\nmeasurement that should be used. The Tolerance field features two sub-fields: from and to .\nUse the from field to specify the minimum acceptable measurement, and the to field to specify the maximum acceptable measurement.\nIn the Type drop-down field, select the Measure quality check type. Doing\nso causes two new fields to appear: Norm and Tolerance .\n- Use the first text-entry field of the Norm field to record the ideal measurement\nthat the product should conform to. Use the second text-entry field to specify the unit of\nmeasurement that should be used.\nUse the first text-entry field of the Norm field to record the ideal measurement\nthat the product should conform to. Use the second text-entry field to specify the unit of\nmeasurement that should be used.\n- The Tolerance field features two sub-fields: from and to .\nUse the from field to specify the minimum acceptable measurement, and the to field to specify the maximum acceptable measurement.\nThe Tolerance field features two sub-fields: from and to .\nUse the from field to specify the minimum acceptable measurement, and the to field to specify the maximum acceptable measurement.\n- In the Team drop-down field, select the quality team responsible for managing the\nchecks created by the QCP .\nIn the Team drop-down field, select the quality team responsible for managing the\nchecks created by the QCP .\n- In the Instructions text field, enter instructions for how the measurement should be\ntaken.\nIn the Instructions text field, enter instructions for how the measurement should be\ntaken.\n\n## Process a Measure quality check\n\nOnce created, there are multiple ways that Measure quality checks can be processed. If a quality\ncheck is assigned to a specific inventory, manufacturing, or work order, the check can be processed\non the order itself. Alternatively, a check can be processed from the checkâs page.\n\n### From the checkâs page\n\nTo process a Measure quality check from the checkâs page, begin by navigating to Quality ⣠Quality Control ⣠Quality Checks , and select a quality check. Follow\nthe Instructions for how to take the measurement.\nAfter taking the measurement, record the value in the Measure field on the quality check\nform. To manually pass or fail the check, click Pass or Fail at the top-left\ncorner of the check.\nAlternatively, if the quality check is assigned to a QCP for which norm and tolerance values\nhave been specified, click Measure at the top-left corner of the check instead. Doing so\nautomatically marks the check as Passed if the recorded value is within the specified tolerance ,\nor Failed if the value is outside of it.\n\n### On an order\n\nTo process a Measure quality check on an order, select a manufacturing order or inventory order\n(receipt, delivery, return, etc.), for which a check is required. Manufacturing orders can be\nselected by navigating to Manufacturing ⣠Operations ⣠Manufacturing Orders ,\nand clicking on an order. Inventory orders can be selected by navigating to Inventory , clicking the # To Process button on an operation card, and\nselecting an order.\nOn the selected manufacturing or inventory order, a purple Quality Checks button appears\nat the top of the page. Click the button to open the Quality Check pop-up window, which\nshows all of the quality checks required for that order.\nTo process a Measure quality check, measure the product as instructed, then enter the value in the Measure field on the pop-up window. Finally, click Validate to register the\nrecorded value.\nIf the value entered is within the range specified in the Tolerance section of the QCP , the quality check passes and the pop-up window closes. The rest of the manufacturing or\ninventory order can then be processed as usual.\nHowever, if the value entered is outside of the specified range, a new pop-up window appears, titled Quality Check Failed . The body of the pop-up shows a warning message that states, You measured # units and it should be between # units and # units. , as well as the\ninstructions entered in the Message If Failure tab of the QCP . At the bottom of the\npop-up, two buttons appear: Correct Measure and Confirm Measure .\nIf the measurement was not entered correctly and should be changed, select Correct\nMeasure . Doing so re-opens the Quality Check pop-up window. Enter the corrected\nmeasurement in the Measure field, and then click Validate to complete the\ncheck.\nIf the measurement was entered correctly, click Confirm Measure instead, and the quality\ncheck fails. Follow any instructions that were listed on the Quality Check Failed pop-up\nwindow.\nIf a quality alert must be created, click the Quality Alert button that appears at the\ntop of the manufacturing or inventory order after the check fails. Clicking Quality\nAlert opens a quality alert form on a new page.\nFor a complete guide on how to fill out the quality alert form, view the documentation on quality alerts .\n\n### On a work order\n\nWhen configuring a QCP that is triggered during manufacturing, a specific work order can also be\nspecified in the Work Order Operation field on the QCP form. If a work order is\nspecified, a Measure quality check is created for that specific work order, rather than the\nmanufacturing order as a whole.\nMeasure quality checks configured for work orders must be completed from the Shop Floor module. To do so, begin by navigating to Manufacturing ⣠Operations â£\nManufacturing Orders . Select an MO that includes a work order for which a Measure quality check\nis required.\nOn the MO , select the Work Orders tab, and click the Open Work Order\n(external link icon) button on the line of the work order to be processed. On the resulting Work Orders pop-up window, click the Open Shop Floor button to open the Shop Floor module.\nWhen accessed from a specific work order, the Shop Floor module opens to the page for the work\ncenter where the order is configured to be processed, and isolates the work orderâs card, so no\nother cards are shown.\nProcess the work orderâs steps until the Measure quality check step is reached. Click on the step\nto open a pop-up window that includes instructions for how the measurement should be taken. After\ntaking the measurement, enter it in the Measure field of the pop-up window, and then\nclick Validate .\nIf the measurement entered is within the range specified in the Tolerance section of the QCP , the quality check passes, and the pop-up window moves on to the next step of the work order.\nHowever, if the measurement entered is outside of the specified range, a new pop-up window appears,\ntitled Quality Check Failed .\nThe body of the Quality Check Failed pop-up window shows a message that states, You measured # units and it should be between # units and # units , as well as the\ninstructions entered in the Message If Failure tab of the QCP . At the bottom of the\npop-up window, two buttons appear: Correct Measure and Confirm Measure .\nIf the measurement was not entered correctly, and should be changed, select Correct\nMeasure . Doing so opens a new pop-up window, titled Quality Check . Enter the corrected\nmeasure in the Measure field, and then click Validate to complete the check\nand close the pop-up window.\nIf the measurement was entered correctly, click Confirm Measure instead, and the quality\ncheck fails. Follow any instructions that were listed on the Quality Check Failed pop-up\nwindow.\nIf a quality alert must be created, exit the pop-up window by clicking the X (close) button in the top-right corner.\nThen, click the â® (three vertical dots) button on the bottom-right corner of the work\norder card to open the What do you want to do? pop-up window.\nOn the What do you want to do? pop-up window, select the Create a Quality\nAlert button. Doing so opens a blank quality alert form in a new Quality Alerts pop-up\nwindow.\nFor a complete guide on how to fill out quality alert forms, view the documentation on quality alerts .", "headings": ["Create a Measure quality check", "Quality check", "Quality control point (QCP)", "Process a Measure quality check", "From the checkâs page", "On an order", "On a work order"], "doc_id": "e44f4af5b6707f69"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.html", "title": "Pass - Fail quality check", "module": "quality", "section": "Pass - Fail quality check", "text": "# Pass - Fail quality check\n\nIn Odoo Quality , a Pass - Fail check is one of the quality check types that can be selected when\ncreating a new quality check or quality control point (QCP). Pass - Fail checks consist of a text\nfield that allows the creator to specify a certain criteria that a product must meet to pass the\ncheck.\n\n## Create a Pass - Fail quality check\n\nThere are two distinct ways that Pass - Fail quality checks can be created. A single check can be\nmanually created. Alternatively, a QCP can be configured that automatically creates checks at a\npredetermined interval.\nThis documentation only details the configuration options that are unique to Pass - Fail quality\nchecks and QCP . For a full overview of all the configuration options available when creating a\nsingle check or a QCP , see the documentation on quality checks and quality control points .\n\n### Quality check\n\nTo create a single Pass - Fail quality check, navigate to Quality ⣠Quality\nControl ⣠Quality Checks , and click New . Fill out the new quality check form as\nfollows:\n- In the Type drop-down field, select the Pass - Fail quality check type.\nIn the Type drop-down field, select the Pass - Fail quality check type.\n- In the Team drop-down field, select the quality team responsible for managing the\ncheck.\nIn the Team drop-down field, select the quality team responsible for managing the\ncheck.\n- In the Instructions text field of the Notes tab, enter instructions for\nhow to complete the quality check and the criteria that must be met for the check to pass.\nIn the Instructions text field of the Notes tab, enter instructions for\nhow to complete the quality check and the criteria that must be met for the check to pass.\n\n### Quality Control Point (QCP)\n\nTo create a QCP that generates Pass - Fail quality checks automatically, begin by navigating to Quality ⣠Quality Control ⣠Control Points , and click New . Fill out\nthe new QCP form as follows:\n- In the Type drop-down field, select the Pass - Fail quality check type.\nIn the Type drop-down field, select the Pass - Fail quality check type.\n- In the Team drop-down field, select the quality team responsible for managing the\nchecks created by the QCP .\nIn the Team drop-down field, select the quality team responsible for managing the\nchecks created by the QCP .\n- In the Instructions text field, enter instructions for how to complete the quality\ncheck and the criteria that must be met for the check to pass.\nIn the Instructions text field, enter instructions for how to complete the quality\ncheck and the criteria that must be met for the check to pass.\n\n## Process a Pass - Fail quality check\n\nOnce created, there are multiple ways that Measure quality checks can be processed. If a quality\ncheck is assigned to a specific inventory, manufacturing, or work order, the check can be processed\non the order itself. Alternatively, a check can be processed from the checkâs page.\n\n### From the checkâs page\n\nTo process a Measure quality check from the checkâs page, begin by navigating to Quality ⣠Quality Control ⣠Quality Checks , and select a quality check. Follow\nthe Instructions for how to complete the check.\nIf the criteria for the check is met, click the Pass button at the top-left corner of\nthe page. If the criteria is not met, click the Fail button.\n\n### On an order\n\nTo process a Pass - Fail quality check on an order, select a manufacturing order or inventory\norder (receipt, delivery, return, etc.), for which a check is required. Manufacturing orders can be\nselected by navigating to Manufacturing ⣠Operations ⣠Manufacturing Orders ,\nand clicking on an order. Inventory orders can be selected by navigating to Inventory , clicking the # To Process button on an operation card, and\nselecting an order.\nOn the selected manufacturing or inventory order, a purple Quality Checks button appears\nat the top of the order. Click the button to open the Quality Check pop-up window, which\nshows all of the quality checks required for that order.\nTo process a Pass - Fail quality check, follow the instructions shown on the Quality\nCheck pop-up window. If the criteria for the check is met, click the Pass button at the\nbottom of the window. If the criteria is not met, click the Fail button.\nIf a quality alert must be created, click the Quality Alert button that appears at the\ntop of the manufacturing or inventory order after the check fails. Clicking Quality\nAlert opens a quality alert form on a new page.\nFor a complete guide on how to fill out quality alert forms, view the documentation on quality alerts .\n\n### On a work order\n\nWhen configuring a QCP that is triggered during manufacturing, a specific work order can also be\nspecified in the Work Order Operation field on the QCP form. If a work order is\nspecified, a Pass - Fail quality check is created for that specific work order, rather than the\nmanufacturing order as a whole.\nPass - Fail quality checks configured for work orders must be completed from the Shop Floor module. To do so, begin by navigating to Manufacturing ⣠Operations â£\nManufacturing Orders . Select an MO that includes a work order for which a Pass - Fail quality\ncheck is required.\nOn the MO , select the Work Orders tab, and then click the Open Work Order\n(external link icon) button on the line of the work order to be processed. On the resulting Work Orders pop-up window, click the Open Shop Floor button to open the Shop Floor module.\nWhen accessed from a specific work order, the Shop Floor module opens to the page for the work\ncenter where the order is configured to be processed, and isolates the work orderâs card so that no\nother cards are shown.\nBegin processing the work orderâs steps until the Pass - Fail quality check step is reached. Click\non the step to open a pop-up window that details the criteria for whether the check passes or fails.\nClick the Pass button at the bottom of the pop-up window if the check passes, or the Fail button if it fails.\nIf the Pass button is clicked, the pop-up window moves to the next step for the work\norder. If the Fail button is clicked, a Quality Check Failed pop-up window\nappears, detailing what should be done next.\nAlternatively, instead of clicking on the step to open the pop-up window, a Pass - Fail quality\ncheck can be completed by clicking the checkbox that appears on the right side of the stepâs line\non the work order card. When using this method, the quality check passes automatically, without a\npop-up window appearing.", "headings": ["Create a Pass - Fail quality check", "Quality check", "Quality Control Point (QCP)", "Process a Pass - Fail quality check", "From the checkâs page", "On an order", "On a work order"], "doc_id": "909aa703d7c7e61d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/quality/quality_check_types/picture_check.html", "title": "Take a Picture quality check", "module": "quality", "section": "Take a Picture quality check", "text": "# Take a Picture quality check\n\nIn Odoo Quality , a Take a Picture check is one of the quality check types that can be selected\nwhen creating a new quality check or quality control point (QCP). Take a Picture checks require a\npicture to be attached to the check, which can then be reviewed by a quality team.\n\n## Create a Take a Picture quality check\n\nThere are two distinct ways that Take a Picture quality checks can be created. A single check can\nbe manually created. Alternatively, a QCP can be configured that automatically creates checks at a\npredetermined interval.\nThis documentation only details the configuration options that are unique to Take a Picture quality checks and QCP . For a full overview of all the configuration options available when\ncreating a single check or a QCP , see the documentation on quality checks and quality control points .\n\n### Quality check\n\nTo create a single Take a Picture quality check, navigate to Quality ⣠Quality\nControl ⣠Quality Checks , and click New . Fill out the new quality check form as\nfollows:\n- In the Type drop-down field, select the Take a Picture quality check type.\nIn the Type drop-down field, select the Take a Picture quality check type.\n- In the Team drop-down field, select the quality team responsible for managing the\ncheck.\nIn the Team drop-down field, select the quality team responsible for managing the\ncheck.\n- In the Instructions text field of the Notes tab, enter instructions for\nhow the picture should be taken.\nIn the Instructions text field of the Notes tab, enter instructions for\nhow the picture should be taken.\n\n### Quality control point\n\nTo create a QCP that generates Take a Picture quality checks automatically, navigate to Quality ⣠Quality Control ⣠Control Points , and click New . Fill out\nthe new QCP form as follows:\n- In the Type drop-down field, select the Take a Picture quality check type.\nIn the Type drop-down field, select the Take a Picture quality check type.\n- If the Maintenance app is installed, a Device field appears after selecting the Take a Picture check type. Use this field to specify a device that should be used to take\nquality check pictures. For information about managing devices in the Maintenance app, see the\ndocumentation on adding new equipment .\nIf the Maintenance app is installed, a Device field appears after selecting the Take a Picture check type. Use this field to specify a device that should be used to take\nquality check pictures. For information about managing devices in the Maintenance app, see the\ndocumentation on adding new equipment .\n- In the Team drop-down field, select the quality team responsible for managing the\nchecks created by the QCP .\nIn the Team drop-down field, select the quality team responsible for managing the\nchecks created by the QCP .\n- In the Instructions text field, enter instructions for how the picture should be\ntaken.\nIn the Instructions text field, enter instructions for how the picture should be\ntaken.\n\n## Process a Take a Picture quality check\n\nOnce created, there are multiple ways that Take a Picture quality checks can be processed. If a\nquality check is assigned to a specific inventory, manufacturing, or work order, the check can be\nprocessed on the order itself. Alternatively, a check can be processed from the checkâs page.\n\n### From the checkâs page\n\nTo process a Take a Picture quality check from the checkâs page, begin by navigating to Quality ⣠Quality Control ⣠Quality Checks , and then select a quality check.\nFollow the Instructions for how to take the picture.\nAfter taking the picture, make sure it is stored on the device being used to process the quality\ncheck (computer, tablet, etc.). Then, click the âï¸ (pencil) button in the Picture section to open the deviceâs file manager. In the file manager, navigate to the\npicture, select it, and click Open to attach it.\n\n### On an order\n\nTo process a Take a Picture quality check on an order, select a manufacturing order or inventory\norder (receipt, delivery, return, etc.), for which a check is required. Manufacturing orders can be\nselected by navigating to Manufacturing ⣠Operations ⣠Manufacturing Orders ,\nand clicking on an order. Inventory orders can be selected by navigating to Inventory , clicking the # To Process button on an operation card, and\nselecting an order.\nOn the selected manufacturing or inventory order, a purple Quality Checks button appears\nat the top of the page. Click the button to open the Quality Check pop-up window, which\nshows all of the quality checks required for that order.\nFollow the instructions detailing how to take the picture, which are shown on the Quality\nCheck pop-up window. After taking the picture, make sure it is stored on the device being used to\nprocess the quality check (computer, tablet, etc.).\nThen, click the Take a Picture button in the Picture section to open the\ndeviceâs file manager. In the file manager, navigate to the picture, select it, and click Open to attach it. Finally, click Validate on the Quality Check pop-up window to complete the quality check.\nIf a quality alert must be created, click the Quality Alert button that appears at the\ntop of the manufacturing or inventory order after the check is validated. Clicking Quality Alert opens a quality alert form on a new page. For a complete guide on how to\nfill out quality alert forms, view the documentation on quality alerts .\n\n### On a work order\n\nWhen configuring a QCP that is triggered during manufacturing, a specific work order can also be\nspecified in the Work Order Operation field on the QCP form. If a work order is\nspecified, a Take a Picture quality check is created for that specific work order, rather than the\nmanufacturing order as a whole.\nTake a Picture quality checks configured for work orders must be completed from the Shop\nFloor module. To do so, begin by navigating to Manufacturing ⣠Operations â£\nManufacturing Orders . Then, select an MO that includes a work order for which a Take a Picture quality check is required.\nOn the MO , select the Work Orders tab, and then click the Open Work Order\n(external link icon) button on the line of the work order to be processed. On the resulting Work Orders pop-up window, click the Open Shop Floor button to open the Shop Floor module.\nWhen accessed from a specific work order, the Shop Floor module opens to the page for the work\ncenter where the order is configured to be processed, and isolates the work orderâs card, so no\nother cards are shown.\nProcess the work orderâs steps until the Take a Picture quality check step is reached. Click on\nthe step to open a pop-up window that includes instructions for how the picture should be taken.\nAfter taking the picture, make sure it is stored on the device being used to process the quality\ncheck (computer, tablet, etc.).\nThen, click the Take a Picture button on the pop-up window to open the deviceâs file\nmanager. In the file manager, navigate to the picture, select it, and click Open to\nattach it.\nFinally, click Validate at the bottom of the pop-up window to complete the quality\ncheck. The pop-up window then moves on to the next step of the work order.\nIf a quality alert must be created, exit the pop-up window by clicking the X (close) button in the top-right corner.\nThen, click the â® (three vertical dots) button on the bottom-right corner of the work\norder card to open the What do you want to do? pop-up window.\nOn the What do you want to do? pop-up window, select the Create a Quality\nAlert button. Doing so opens a blank quality alert form in a new Quality Alerts pop-up\nwindow.\nFor a complete guide on how to fill out quality alert forms, view the documentation on quality alerts .\n\n## Review picture attached to quality check\n\nAfter a picture has been attached to a check, it can then be reviewed by quality team members or\nother users. To do so, navigate to Quality ⣠Quality Control ⣠Quality Checks ,\nand select a quality check to review.\nThe attached picture appears in the Picture section of the quality check form. After\nreviewing the picture, click the Pass button if the check passes, or the Fail button if the check fails.", "headings": ["Create a Take a Picture quality check", "Quality check", "Quality control point", "Process a Take a Picture quality check", "From the checkâs page", "On an order", "On a work order", "Review picture attached to quality check"], "doc_id": "88450da7abcf78e0"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/quality/quality_management/failure_locations.html", "title": "Failure locations", "module": "quality", "section": "Failure locations", "text": "# Failure locations\n\nIn Odoo, quality control points (QCPs) are used to create quality checks , which prompt employees\nto confirm the quality of products, when they are included in certain operations. By setting one or\nmore failure locations on a QCP , products that fail the quality checks it creates can be sent to\none of the specified locations.\nThe Failure Location feature was added in version 17.0 of Odoo, and does not appear in any\nprevious version. To upgrade an Odoo database to a more recent version, see the documentation on database upgrades .\n\n## Configuration\n\nTo use failure locations, the Storage Locations setting must be enabled in the settings of the Inventory app. This setting allows for the creation of sub-locations within a warehouse, including\nfailure locations.\nTo enable the Storage Locations setting, navigate to Inventory app â£\nConfiguration ⣠Settings , and tick the checkbox next to Storage Locations , under the Warehouses heading. Then, click Save .\nFailure locations are most effective when used for products configured as storable products .\nThis is because inventory counts are only tracked for storable products, versus consumable products, for which exact counts are not tracked.\nQuality checks can still be created for consumable products, and those products can be sent to a\nfailure location if they fail a check. However, Odoo does not track the exact quantity of a\nconsumable product stored at a failure location.\nTo configure a product as storable, navigate to Inventory app ⣠Products â£\nProducts , and select a product. In the Product Type field on the General\nInformation tab, make sure that Storable Product is selected from the drop-down\nmenu.\n\n## Add failure location to QCP\n\nTo add a failure location to a QCP , navigate to Quality app ⣠Quality Control\n⣠Control Points . Select an existing QCP from the list, or create a new one by clicking New .\nThe following instructions only detail the configuration settings necessary for adding a failure\nlocation to a QCP . For a full overview of QCP and all of the options available when\nconfiguring them, see the documentation on quality control points .\nIn the Control Per field on the QCP form, select the Quantity option.\nDoing so causes a Failure Locations field to appear on the form. This field is only\navailable when the Quantity option is selected.\nIn the Failure Locations field, select one or more locations from the drop-down menu. To\ncreate a new location, type the desired location name into the field, and then select Create â[name]â from the drop-down menu.\n\n## Send products to failure location\n\nOnce a QCP has been configured with one or more failure locations, products that fail a check\ncreated by the QCP can be routed to one of the locations.\nTo do so, open an order that requires a quality check created by a QCP configured with a failure\nlocation. For example, navigate to Inventory app ⣠Operations ⣠Receipts , and\nselect a receipt.\nAt the top of the selected order, click the Quality Checks button to open a pop-up\nwindow, from which the quality check can be processed. At the bottom of the pop-up window, click the Fail button to fail the quality check, which opens a second pop-up window, titled Quality Check Failed for [Product] .\nIn the Quantity Failed field, enter the quantity of the product that failed to pass the\nquality check. In the Failure Location field, select a location to which the failed\nquantity should be sent. Then, click Confirm at the bottom of the pop-up window to close\nit.\nFinally, on the order, click the Validate button at the top of the page. Doing so\nconfirms the products that failed the quality check were sent to the failure location, while\nproducts that passed it were sent to their normal storage locations.\n\n## View failure location inventory\n\nTo view the product quantities stored in a failure location, navigate to Inventory\napp ⣠Configuration ⣠Locations . Select a failure location from the list. Then, click the Current Stock smart button on the locationâs page.\nA failure locationâs page lists all of the products stored within the location, along with the\nquantity of each.", "headings": ["Configuration", "Add failure location to QCP", "Send products to failure location", "View failure location inventory"], "doc_id": "2691ff1b55540b9e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/quality/quality_management/quality_alerts.html", "title": "Quality alerts", "module": "quality", "section": "Quality alerts", "text": "# Quality alerts\n\nIn the Odoo Quality app, quality alerts are used to notify quality teams of product defects or\nother issues. Quality alerts can be created from a manufacturing or inventory order, from a work\norder in the Shop Floor module, or directly within the Quality app.\n\n## Create quality alerts\n\nThere are multiple ways to create a new quality alert:\n- From the Quality app itself , by to Quality ⣠Quality Control ⣠Quality\nAlerts , and then click New to open a quality alert form.\nFrom the Quality app itself , by to Quality ⣠Quality Control ⣠Quality\nAlerts , and then click New to open a quality alert form.\n- Navigate to Manufacturing ⣠Operations ⣠Manufacturing Orders , and then\nselect an MO . Click the Quality Alert button at the top of the MO to open a\nquality alert form in a new page. Important This method can only be used if a quality check has been requested for the MO . The Quality Alert button will not appear otherwise.\nNavigate to Manufacturing ⣠Operations ⣠Manufacturing Orders , and then\nselect an MO . Click the Quality Alert button at the top of the MO to open a\nquality alert form in a new page.\nThis method can only be used if a quality check has been requested for the MO . The Quality Alert button will not appear otherwise.\n- Open the Inventory app, click the # To Process button on an inventory\norder type card (Receipts, Delivery Orders, etc.), and then select an order. Click the Quality Alert button at the top of the order to open a quality alert form in a new\npage. Important This method can only be used if a quality check has been requested for the inventory order. The Quality Alert button will not appear otherwise. If the button does not appear, a\nquality alert can also be created by clicking the âï¸ (gear) icon at the top of the\npage and selecting the Quality Alert option from the resulting menu.\nOpen the Inventory app, click the # To Process button on an inventory\norder type card (Receipts, Delivery Orders, etc.), and then select an order. Click the Quality Alert button at the top of the order to open a quality alert form in a new\npage.\nThis method can only be used if a quality check has been requested for the inventory order. The Quality Alert button will not appear otherwise. If the button does not appear, a\nquality alert can also be created by clicking the âï¸ (gear) icon at the top of the\npage and selecting the Quality Alert option from the resulting menu.\n- Open the Shop Floor module, and then select a work center from the navigation bar\nat the top of the page. Then, click the â® (three vertical dots) button at the\nbottom-right of a work order card to open the What do you want to do? menu. Select the Create a Quality Alert option from this menu to open a quality alert in a pop-up\nwindow.\nOpen the Shop Floor module, and then select a work center from the navigation bar\nat the top of the page. Then, click the â® (three vertical dots) button at the\nbottom-right of a work order card to open the What do you want to do? menu. Select the Create a Quality Alert option from this menu to open a quality alert in a pop-up\nwindow.\nDepending on how a new quality alert form is opened, certain fields on the form may already be\nfilled in. For example, if a quality alert is created from a work order card in the Shop Floor module, the Product and Work Center are pre-filled.\n\n### Quality alerts form\n\nAfter opening a new quality alert form, begin by giving it a short Title that summarizes\nthe issue with the product.\nThen, if the quality alert is referencing:\n- A specific product or product variant , select it from the Product or Product Variant drop-down menus.\nA specific product or product variant , select it from the Product or Product Variant drop-down menus.\n- A specific work center , select it from the Work Center drop-down menu.\nA specific work center , select it from the Work Center drop-down menu.\n- A specific picking order , select it from the Picking drop-down menu.\nA specific picking order , select it from the Picking drop-down menu.\nNext in the Team field, select the quality team that is responsible for managing the\nquality alert. If a specific employee should be responsible for the quality alert, select them from\nthe Responsible drop-down menu.\nIn the Tags field, select any tags relevant to the quality alert from the drop-down\nmenu.\nUse the Root Cause field to select the cause of the quality issue, if known.\nLastly, choose a Priority level by selecting a â (star) number between one\nand three. Quality alerts with higher priorities appear at the top of the Quality Alerts Kanban board in the Quality app.\nAt the bottom of the quality alert form are four tabs which aid in adding supplemental information\nor actions to be taken for the quality alert. They can be filled out as follows:\n- In the Description tab, enter a description of the quality issue.\nIn the Description tab, enter a description of the quality issue.\n- Use the Corrective Actions tab to detail the steps that should be taken to fix the\nissue.\nUse the Corrective Actions tab to detail the steps that should be taken to fix the\nissue.\n- Use the Preventive Actions tab to detail what should be done to prevent the issue from\noccurring in the future.\nUse the Preventive Actions tab to detail what should be done to prevent the issue from\noccurring in the future.\n- In the Miscellaneous tab, select the Vendor of the product. If using an\nOdoo database which manages multiple companies, select the relevant company in the Company field. Finally, specify when the alert was assigned to a quality team in the Date Assigned field.\nIn the Miscellaneous tab, select the Vendor of the product. If using an\nOdoo database which manages multiple companies, select the relevant company in the Company field. Finally, specify when the alert was assigned to a quality team in the Date Assigned field.\n\n## Manage quality alerts\n\nTo view all existing quality alerts, navigate to Quality ⣠Quality Control â£\nQuality Alerts . By default, alerts are displayed in a Kanban board view, which organizes them into\ndifferent stages based on where they are in the review process.\nTo move an alert to a different stage, simply drag and drop it on the desired stage. Alternatively,\nselect a quality alert to open it, and then click the desired stage above the top-right corner of\nthe quality alert form.\nTo create a new alert within a specific stage, click the + (plus) button to the right of\nthe stage name. In the new alert card that appears below the stage title, enter the Title of the alert, and then click Add . To configure the rest of the alert,\nselect the alert card to open its form.", "headings": ["Create quality alerts", "Quality alerts form", "Manage quality alerts"], "doc_id": "1c860173aec6e445"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/quality/quality_management/quality_checks.html", "title": "Quality checks", "module": "quality", "section": "Quality checks", "text": "# Quality checks\n\nQuality checks are manual inspections conducted by employees, and are used to ensure the quality of\nproducts. In Odoo, a quality check can be conducted for a single product, or multiple products\nwithin the same inventory operation or manufacturing order.\nUsing a Quality Control Point (QCP), it is possible to create quality checks automatically at\nregular intervals. When quality checks are created by a QCP , they appear on a manufacturing or\ninventory order, where the employee processing the order will be prompted to complete them. For a\nfull explanation of how to create and configure a QCP , see the documentation on quality\ncontrol points .\nWhile quality checks are most commonly created automatically by a QCP , it is also possible to\nmanually create a single quality check. Creating a check manually is useful when an employee wants\nto schedule a quality check that will only occur once, or register a quality check that they conduct\nunprompted.\n\n## Manual quality check\n\nTo manually create a single quality check, navigate to Quality ⣠Quality Control\n⣠Quality Checks , and click New . On the quality check form, begin by selecting an\noption from the Control per drop-down menu:\n- Operation requests a check for an entire operation (ex. delivery order) and all\nproducts within it.\nOperation requests a check for an entire operation (ex. delivery order) and all\nproducts within it.\n- Product requests a check for every unit of a product that is part of an operation (ex.\nevery unit of a product within a delivery order).\nProduct requests a check for every unit of a product that is part of an operation (ex.\nevery unit of a product within a delivery order).\n- Quantity requests a check for every quantity of a product that is part of an operation\n(ex. one check for five units of a product within a delivery order). Selecting Quantity also causes a Lot/Serial drop-down field to appear, from which\ncan be selected a specific lot or serial number that the quality check should be conducted for.\nQuantity requests a check for every quantity of a product that is part of an operation\n(ex. one check for five units of a product within a delivery order). Selecting Quantity also causes a Lot/Serial drop-down field to appear, from which\ncan be selected a specific lot or serial number that the quality check should be conducted for.\nNext, select an inventory operation from the Picking drop-down menu or a manufacturing\norder from the Production Order drop-down menu. This is necessary because Odoo needs to\nknow for which operation the quality check is being conducted.\nIf the quality check should be assigned to a specific QCP , select it from the Control\nPoint drop-down menu. This is useful if the quality check is being created manually, but should\nstill be recognized as belonging to a specific QCP .\nSelect a quality check type from the Type drop-down field:\n- Instructions provides specific instructions for how to conduct the quality check.\nInstructions provides specific instructions for how to conduct the quality check.\n- Take a Picture requires a picture to be attached to the check before the check can be\ncompleted.\nTake a Picture requires a picture to be attached to the check before the check can be\ncompleted.\n- Print label opens a pop-up from which labels can be printed. This step can be\ncustomized to provide instructions about where to add the labels on a product.\nPrint label opens a pop-up from which labels can be printed. This step can be\ncustomized to provide instructions about where to add the labels on a product.\n- Pass - Fail is used when the product being checked must meet a certain criteria to\npass the check.\nPass - Fail is used when the product being checked must meet a certain criteria to\npass the check.\n- Selecting Measure causes a Measure input field to appear, in which a\nmeasurement must be entered before the check can be completed.\nSelecting Measure causes a Measure input field to appear, in which a\nmeasurement must be entered before the check can be completed.\n- Selecting Worksheet causes a Quality Template drop-down field to appear.\nUse it to select a quality worksheet that must be filled out to complete the check.\nSelecting Worksheet causes a Quality Template drop-down field to appear.\nUse it to select a quality worksheet that must be filled out to complete the check.\nIn the Team field, select the quality team that is responsible for the quality check. In\nthe Company field, select the company that owns the product being inspected.\nOn the Notes tab at the bottom of the form, enter any relevant instructions in the Instructions text entry box (ex. âAttach a picture of the productâ). In the Notes text entry box, enter any relevant information about the quality check (who\ncreated it, why it was created, etc.).\nFinally, if the check is being processed immediately, click the Pass button at the top\nleft of the screen if the check passes, or the Fail button if the check fails.\n\n## Process quality check\n\nQuality checks can be processed directly on the quality checkâs page, or from a manufacturing or\ninventory order for which a check is required. Alternatively, if a quality check is created for a\nspecific work order operation, the check is processed in the Shop Floor module.\nIt is not possible to manually create a single quality check that is assigned to a specific work\norder operation. Quality checks for work order operations can only be created by a QCP . See the\ndocumentation on Quality Control Points for information about how to configure a QCP that will create quality checks for a specific work order operation.\n\n### Quality check page\n\nTo process a quality check from the checkâs page, begin by navigating to Quality â£\nQuality Control ⣠Quality Checks , then select the check to process. Follow the instructions for\nhow to complete the check, listed in the Instructions field of the Notes tab\nat the bottom of the page.\nIf the quality check passes, click the Pass button at the top of the page. If the check\nfails, click the Fail button, instead.\n\n### Quality check on order\n\nTo process a quality check on an order, select a manufacturing or inventory order (receipt,\ndelivery, return, etc.), for which a check is required. Manufacturing orders can be selected by\nnavigating to Manufacturing ⣠Operations ⣠Manufacturing Orders , and clicking\non an order. Inventory orders can be selected by navigating to Inventory , clicking\nthe # To Process button on an operation card, and selecting an order.\nOn the selected inventory or manufacturing order, a purple Quality Checks button appears\nat the top of the order. Click the button to open the Quality Check pop-up window, which\nshows all of the quality checks required for that order.\nFollow the instructions that appear on the Quality Check pop-up window. If a Pass - Fail\ncheck is being processed, complete the check by clicking Pass or Fail at the\nbottom of the pop-up window. For all other quality check types, a Validate button\nappears instead. Click it to complete the check.\n\n### Quality check on work order\n\nTo process a quality check for a work order, begin by navigating to Manufacturing\n⣠Operations ⣠Manufacturing Orders . Select an MO that includes a work order for which a\nquality check is required.\nOn the MO , select the Work Orders tab, and then click the Open Work Order\n(external link icon) button on the line of the work order to be processed. On the resulting Work Orders pop-up window, click the Open Shop Floor button to open the Shop Floor module.\nFor a full guide to the Shop Floor module, see the Shop Floor overview documentation.\nWhen accessed from a specific work order, the Shop Floor module opens to the page for the work\ncenter where the order is configured to be processed, and isolates the work orderâs card so that no\nother cards are shown.\nProcess the work orderâs steps until the quality check step is reached. Click on the step to open a\npop-up window that details how the check should be completed. After following the instructions,\nclick Validate to complete the check. Alternatively, if a Pass - Fail check is being\nprocessed, click either the Pass or Fail button.\nIt is also possible to complete a quality check by clicking the checkbox on the right side of the\nstep. Doing so automatically marks the check as Passed .\nThe specific steps for processing a quality check depend upon the type of check being conducted.\nFor information about processing each type of quality check, see the associated documentation:\n- Instructions quality check\nInstructions quality check\n- Pass - Fail quality check\nPass - Fail quality check\n- Measure quality check\nMeasure quality check\n- Take a Picture quality check\nTake a Picture quality check", "headings": ["Manual quality check", "Process quality check", "Quality check page", "Quality check on order", "Quality check on work order"], "doc_id": "199d09666f20e6c3"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/quality/quality_management/quality_control_points.html", "title": "Quality control points", "module": "quality", "section": "Quality control points", "text": "# Quality control points\n\nIn Odoo, quality control points (QCPs), are used to automatically create quality checks at predetermined intervals. QCPs can be configured to create quality checks for\nspecific operations (manufacturing, delivery, etc.), as well as specific products within those\noperations.\nUsing QCPs allows quality teams to ensure products are being regularly inspected for defects and\nother issues.\n\n## Configure quality control points\n\nTo create a new QCP , navigate to Quality ⣠Quality Control ⣠Control Points ,\nand then click New .\nBegin filling out the new QCP by entering a unique Title that makes the QCP easily\nidentifiable.\nIn the Products field, select one or more products the QCP should apply to. If the QCP should apply to an entire product category, select it in the Product Categories field.\nIn the Operations field, select the operation(s) that should trigger the QCP . For\nexample, selecting the Manufacturing option in the Operations field causes a\nquality check to be created for new manufacturing orders (MOs).\nWhen creating a new QCP , at least one operation must be listed in the Operations field. However, the Products and Product Categories fields can be left\nblank. If they are left blank, the QCP generates quality checks for every instance of the\nspecified operation(s).\nIf the Manufacturing operation is selected in the Operations field, a new\nfield appears below it, titled Work Order Operation . From this field, select a specific\nwork order to generate quality checks for that operation, rather than the manufacturing operation,\nin general.\nA QCP could be configured to create quality checks for the Assembly work order of the Coffee Table product. Then, if a new MO is confirmed for a Coffee Table , the QCP creates a\nquality check specifically for the Assembly operation.\n`Assembly`\n`CoffeeTable`\n`CoffeeTable`\n`Assembly`\nThe Control Per field is set to one of three options that determine when a new quality\ncheck is created:\n- Operation : One check is requested for the specified operation, as a whole.\nOperation : One check is requested for the specified operation, as a whole.\n- Product : One check is requested for each unique product included in the specified\noperation. For example, a delivery operation for one table and four chairs would generate two\nchecks, since two unique products are included in the operation.\nProduct : One check is requested for each unique product included in the specified\noperation. For example, a delivery operation for one table and four chairs would generate two\nchecks, since two unique products are included in the operation.\n- Quantity : A check is requested for a certain percentage of items within the specified\noperation. This percentage is set by enabling the Partial Transfer Test checkbox, and\nthen entering a numerical value in the Percentage field that appears below. If the\ncheckbox is not enabled, one quality check is created for the full quantity.\nQuantity : A check is requested for a certain percentage of items within the specified\noperation. This percentage is set by enabling the Partial Transfer Test checkbox, and\nthen entering a numerical value in the Percentage field that appears below. If the\ncheckbox is not enabled, one quality check is created for the full quantity.\nThe Control Frequency field is set to one of three options that determine how often a\nnew quality check is created:\n- All : A quality check is requested every time the conditions of the QCP are met.\nAll : A quality check is requested every time the conditions of the QCP are met.\n- Randomly : A quality check is randomly requested for a certain percentage of\noperations, which can be specified in the Every #% of Operations field that appears\nbelow.\nRandomly : A quality check is randomly requested for a certain percentage of\noperations, which can be specified in the Every #% of Operations field that appears\nbelow.\n- Periodically : A quality check is requested once every set period of time, which is\nspecified by entering a numerical value in the field below, and choosing either Days , Weeks , or Months as the desired time interval.\nPeriodically : A quality check is requested once every set period of time, which is\nspecified by entering a numerical value in the field below, and choosing either Days , Weeks , or Months as the desired time interval.\nIn the Type field, specify the type of quality check that should be performed. The\nmethod for processing quality checks created by the QCP depends upon the type of quality check\nselected:\n- Instructions checks provide specific instructions for how to complete the quality\ncheck.\nInstructions checks provide specific instructions for how to complete the quality\ncheck.\n- Take a Picture checks require a picture of the product be uploaded for later review by\nthe assigned quality team.\nTake a Picture checks require a picture of the product be uploaded for later review by\nthe assigned quality team.\n- Register Production checks prompt manufacturing employees to confirm the quantity of\nthe product that was produced during the manufacturing operation.\nRegister Production checks prompt manufacturing employees to confirm the quantity of\nthe product that was produced during the manufacturing operation.\n- Pass - Fail checks specify a criterion that products must meet for the check to pass.\nPass - Fail checks specify a criterion that products must meet for the check to pass.\n- Measure checks prompt employees to record a measurement of the product that must be\nwithin a tolerance of a norm value for the check to pass.\nMeasure checks prompt employees to record a measurement of the product that must be\nwithin a tolerance of a norm value for the check to pass.\n- Worksheet checks require the employee processing the check to fill out an interactive\nworksheet.\nWorksheet checks require the employee processing the check to fill out an interactive\nworksheet.\n- Spreadsheet checks require the employee processing the check to fill out an\ninteractive spreadsheet.\nSpreadsheet checks require the employee processing the check to fill out an\ninteractive spreadsheet.\nAn Instructions check is the same as a step on a work order for an MO.\nWhen a step is added to a work order, Odoo stores it in the Quality app as a QCP . It is\npossible to manually create a QCP with the Instructions check type, and even assign it to an\noperation other than manufacturing, like receipts.\nHowever, when creating a control point specifically for quality control purposes, using a\ndifferent check type is probably more effective.\nWhen creating a QCP with the Worksheet or Spreadsheet check types, it\nis necessary to specify a Quality Worksheet Template or Quality Spreadsheet Template in the Template field that appears below the Type field.\nThe selected template is duplicated for each quality check created by the QCP , and must be\nfilled out to complete the quality check.\nTo create a new template, navigate to Quality app ⣠Configuration ⣠Quality\nWorksheet/Spreadsheet Templates , and click New .\nIn the Team field, specify the quality team that is responsible for managing the QCP ,\nand the quality checks it creates. If a specific quality team member is responsible for the QCP ,\nselect them in the Responsible field.\nThe Step Document field has two options that specify the location of an instructional\ndocument detailing how to complete the quality checks created by the QCP .\nSelect Specific Page of Operation Worksheet if the document is included with the\ninstructional worksheet for the work order, then enter the page number in the Worksheet\nPage field that appears below.\nSelect Custom if the document should be included in the Instructions tab at\nthe bottom of the QCP .\nIn the Instructions tab at the bottom of the form, enter instructions for how to\ncomplete the quality checks created by the QCP .\nIf the Custom option was selected in the Step Document field above, a\ndocument can be attached in this tab. To do so, either select the Upload your file button to open the deviceâs file manager, and then select a file, or add a link to a Google Slides\ndocument in the Google Slide Link field.\nIn the Message If Failure tab, include instructions for what to do if the quality check\nfails. For example, instruct the employee processing the quality check to create a quality\nalert .\nThe Notes tab is used to provide additional information about the QCP , like the reason\nit was created. The information entered in this tab is not shown to employees processing the\nquality checks created by the QCP .", "headings": ["Configure quality control points"], "doc_id": "364b7f386f2faf68"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/email_marketing.html", "title": "Email Marketing", "module": "marketing", "section": "Email Marketing", "text": "# Email Marketing\n\nThe Odoo Email Marketing app provides drag-and-drop design tools, pre-built templates, and other\ninteractive features to create engaging email campaigns. The Email Marketing app also provides\ndetailed reporting metrics to track the campaignsâ overall effectiveness.\n- Odoo Tutorial: Email Marketing\nOdoo Tutorial: Email Marketing\n- Magic Sheet - Email Marketing strategy [PDF]\nMagic Sheet - Email Marketing strategy [PDF]\n\n#### Mailing lists\n\nSilo contacts into specific mailing lists.\n\n#### Manage unsubscriptions (Blacklist)\n\nAllow recipients to unsubscribe and blacklist from future mailings.\n\n#### Lost leads reactivation email\n\nTarget lost leads with Email Marketing.\n\n#### Analyze Metrics\n\nAnalyzing campaign metrics.\n\n## Email marketing dashboard\n\nAfter installing the application, click the Email Marketing app icon from the main\nOdoo dashboard. Doing so reveals the main Mailings dashboard in the default list view.\nIn the search bar, the default filter of My Mailings is present to show all the mailings\nrelated to the current user. To remove that filter, click the âï¸ (remove) icon next to\nthe filter in the search bar. Doing so reveals all the mailings in the database.\nThe information on the Mailings dashboard has four different view options, located in\nthe upper-right corner as individual icons.\nThe view options, from left-to-right, are:\n- List (default view)\n- Kanban\n- Calendar\n\n### List view\n\nThe list view, represented by the â° (horizontal lines) icon in the upper-right corner,\nis the default view of the Mailings dashboard in the Email Marketing app.\nWhile in list view, there are columns dedicated to different aspects of information related to the\nlisted emails. Those columns are as follows:\n- Date : the date the email was sent.\nDate : the date the email was sent.\n- Subject : the subject of the email.\nSubject : the subject of the email.\n- Responsible : the user who created the email, or the user who has been assigned to the\nemail.\nResponsible : the user who created the email, or the user who has been assigned to the\nemail.\n- Sent : how many times the email has been sent.\nSent : how many times the email has been sent.\n- Delivered (%) : percentage of sent emails that have been successfully delivered.\nDelivered (%) : percentage of sent emails that have been successfully delivered.\n- Opened (%) : percentage of sent emails that have been opened by the recipients.\nOpened (%) : percentage of sent emails that have been opened by the recipients.\n- Clicked (%) : percentage of sent emails that have been clicked by the recipients.\nClicked (%) : percentage of sent emails that have been clicked by the recipients.\n- Replied (%) : percentage of sent emails that have been replied to by the recipients.\nReplied (%) : percentage of sent emails that have been replied to by the recipients.\n- Status : the status of the email ( Draft , In Queue , or Sent ).\nStatus : the status of the email ( Draft , In Queue , or Sent ).\nTo add or remove columns, click the Additional Options (two horizontal lines with dots) icon, located to the far-right of the column titles in list view. Doing so reveals a drop-down menu\nof additional column options.\n\n### Kanban view\n\nThe Kanban view, represented by the (inverted bar graph) icon, can be accessed in the\nupper-right corner of the Mailings dashboard in the Email Marketing app.\nWhile in Kanban view, the email information is displayed in the various stages.\nThe stages are: Draft , In Queue , Sending , and Sent .\n- Draft : the email is still being written/created.\nDraft : the email is still being written/created.\n- In Queue : the email is scheduled to be sent at a later date.\nIn Queue : the email is scheduled to be sent at a later date.\n- Sending : the email is currently being sent to its recipients.\nSending : the email is currently being sent to its recipients.\n- Sent : the email has already been sent to its recipients.\nSent : the email has already been sent to its recipients.\nIn each stage, there are drag-and-drop cards representing the emails that have been created/sent,\nand the stage they are in represents the current status of that mailing.\nEach card on the Mailings dashboard provides key information related to that specific\nemail.\nWhen the cursor hovers over the upper-right corner of an email campaign card, a â® (three\nvertical dots) icon appears. When clicked, a mini drop-down menu reveals the option to color-code\nthe email, Delete the email, or Archive the message for potential future\nuse.\n\n### Calendar view\n\nThe calendar view, represented by a ð (calendar) icon, can be accessed in the\nupper-right corner of the Mailings dashboard in the Email Marketing app.\nWhile in calendar view, a monthly calendar (by default), shows when the mailings have been sent or\nare scheduled to be sent.\nThe current date is represented by a ð´ (red circle) icon over the date on the calendar.\nTo the right of the calendar, the options to filter the results by Responsible and/or Status are available, via checkboxes.\nTo hide the right sidebar, click the (panel-right) icon, located above the sidebar.\nIn the top-left corner, above the calendar, the option to change the time period being displayed is\navailable via a drop-down menu, which shows Month , by default. When clicked, the\ndrop-down menu that appears reveals the options: Day , Week , Month (default), Year , and Show weekends (selected by default).\nClicking any of those options changes the calendar display to reflect that desired amount of time.\nClicking either â¬
ï¸ (left arrow) icon or â¡ï¸ (right arrow) icon changes the\ncalendar to a previous or future time, depending on what is clicked, based on the chosen amount of\ntime being represented.\nTo jump back to the current date, click the Today button.\n\n### Graph view\n\nThe graph view, represented by a (line graph) icon, can be accessed in the upper-right\ncorner of the Mailings dashboard in the Email Marketing app.\nWhile in graph view, the status of the emails on the Mailings page is represented in a\nbar graph, but other graph view options can be implemented, if needed.\nIn the upper-left corner, above the graph, there is a Measures drop-down menu. When\nclicked, different filter options become available to further customize the graph views.\nThose Measures options are: A/B Testing percentage and Count (default).\nTo the right of the Measures drop-down menu is an Insert in Spreadsheet button, if the Documents application is installed. When clicked, a pop-up window appears, in which\nthe ability to add the graph to a spreadsheet or dashboard becomes available.\nBeside the Measures drop-down menu and Insert in Spreadsheet button are\ndifferent graph view options. From left-to-right, those graph view options are: (bar\nchart) (default), (line chart) , and (pie chart) .\nEach graph view option provides its own series of additional view options, which appear to the\nright of the selected graph view option.\n\n### Search options\n\nRegardless of the view chosen for the Mailings dashboard in the Email\nMarketing app, the Filters , Group by , and Favorites options are\nalways available to further customize the information being displayed.\nTo access those options, click the (downward arrow) icon, located to the right of the\nsearch bar. Doing so reveals a drop-down mega menu featuring those filtering and grouping options.\nThese options provide various ways to specify and organize the information seen on the Mailings dashboard.\nThis section of the drop-down mega menu provides different ways to filter email results being\nshown on the Mailings dashboard in the Email Marketing app.\nThe options are: My Mailings , Sent Date , A/B Tests , A/B Tests to review , Archived , and Add Custom Filter .\nIf Add Custom Filter is selected, Odoo reveals a pop-up window, with three\ncustomizable fields to fill in, in order to create custom filter rules for Odoo to use to\nretrieve results that fit more specific criteria.\nThis section of the drop-down mega menu provides different ways to group email results being\nshown on the Mailings dashboard in the Email Marketing app.\nUsing this section, the data can be grouped by the messagesâ Status , or who it was Sent By .\nThere is also the option to group the data by Sent Period , which has its own\nsub-menu of options to choose from. The Sent Period options are Year , Quarter , Month , Week , and Day .\nIf none of the above Group By options deliver the desired results, click Add Custom Group at the bottom of the Group By section. Doing so\nreveals a drop-down menu, wherein custom criteria can be selected and applied, thus delivering\nany grouping of data that may be desired.\nThis section provides the opportunity to save custom filters and/or groupings for future use.\nTo utilize this section, click the Save current search field, which reveals\nadditional fields.\nGive the favorited filter/grouping a title on the blank line above the checkboxes for Default filter and Shared .\nTicking the box for Default filter makes this favorited filter/grouping the\ndefault option. Ticking the box for Shared allows other users to see and use this\nfavorited filter/grouping.\nWhen all desired options are configured, click Save to save the filter/grouping in\nthe Favorites section of the mega drop-down menu.\n\n## Settings\n\nTo view and modify the Email Marketing settings, navigate to Email Marketing app\n⣠Configuration ⣠Settings .\nOn the Settings page, there are four features available.\n- Mailing Campaigns : enables the option to manage mass mailing campaigns.\nMailing Campaigns : enables the option to manage mass mailing campaigns.\n- Blacklist Option when Unsubscribing : allows recipients to blacklist themselves from\nfuture mailings during the unsubscribing process.\nBlacklist Option when Unsubscribing : allows recipients to blacklist themselves from\nfuture mailings during the unsubscribing process.\n- Dedicated Server : provides the option to utilize a separate, dedicated server for\nmailings. When enabled, Odoo reveals a new field (and link), in which the specific server\nconfigurations must be entered, in order for it to connect properly to Odoo.\nDedicated Server : provides the option to utilize a separate, dedicated server for\nmailings. When enabled, Odoo reveals a new field (and link), in which the specific server\nconfigurations must be entered, in order for it to connect properly to Odoo.\n- 24H Stat Mailing Reports : allows users to check how well mailings have performed a day\nafter it has been sent.\n24H Stat Mailing Reports : allows users to check how well mailings have performed a day\nafter it has been sent.\n\n## Create an email\n\nTo create an email, open the Email Marketing application, and click the New button in the upper-left corner of the Mailings dashboard page.\nClicking New reveals a blank email form.\nOn the email form, there are fields for the Subject and Recipients of the email.\nBeneath that, there are three tabs: Mail Body , A/B Tests , and Settings .\n\n### Subject\n\nFirst, enter a Subject to the email. The Subject is visible in the\nrecipientsâ inbox, allowing them to quickly see what the message is about.\nThe Subject field is mandatory. An email can not be sent without a Subject .\nThe (smiley face with a plus sign) icon at the end of the Subject field\nrepresents emojis that can be added to the Subject field. Clicking that icon reveals a\npop-up menu of emojis that can be used.\nBeside the (smiley face with a plus sign) icon at the end of the Subject field is an empty (star) icon. When clicked, the (star) icon turns gold, and\nthe email is saved as a template in the Mail Body tab, which can be used again in the\nfuture.\n\n### Recipients\n\nBeneath the Subject field on the email form is the Recipients field. In this\nfield, select the recipients of the email. By default, the Mailing List option is\nselected, but clicking the field reveals a drop-down menu of other recipient options.\nWith the default Mailing List option selected, a specific mailing list must be\nchosen from the adjacent Select mailing lists field drop-down menu.\nMore than one mailing list can be chosen from the Select mailing lists field.\nOdoo then sends the email to contacts on that specific mailing list(s).\nWhen the Recipients field is clicked, a drop-down menu of other options is revealed.\nEach option provides different ways Odoo can create a target audience for the email.\nThose options (excluding the default Mailing List ) provide the option to create a more\nspecified recipient filter, in an equation-like format, which appears beneath the Recipients field.\nThe Recipients field options, other than the default Mailing List option,\nare as follows:\n- Contact : ties specifically to the Contacts app, and includes all the contacts\nentered in the database.\nContact : ties specifically to the Contacts app, and includes all the contacts\nentered in the database.\n- Event Registration : ties specifically to the Events app, and provides opportunities\nto interact with event registrants, in order to communicate important information about the\nevent(s), or nurture other valuable actions, such as post-event surveys, purchases, etc.\nEvent Registration : ties specifically to the Events app, and provides opportunities\nto interact with event registrants, in order to communicate important information about the\nevent(s), or nurture other valuable actions, such as post-event surveys, purchases, etc.\n- Lead/Opportunity : ties specifically to records in the CRM application, which opens\nup a number of opportunities to influence sales or purchase decisions.\nLead/Opportunity : ties specifically to records in the CRM application, which opens\nup a number of opportunities to influence sales or purchase decisions.\n- Mailing Contact : ties specifically to the Email Marketing app, and focuses on\nspecific mailing contacts that have been entered in that specific application, and are related to\na specific mailing list. These contacts are also unique because they do not have their own\ncontact card in the Contacts application. This list can be accessed by navigating to Email Marketing app ⣠Mailing Lists ⣠Mailing List Contacts .\nMailing Contact : ties specifically to the Email Marketing app, and focuses on\nspecific mailing contacts that have been entered in that specific application, and are related to\na specific mailing list. These contacts are also unique because they do not have their own\ncontact card in the Contacts application. This list can be accessed by navigating to Email Marketing app ⣠Mailing Lists ⣠Mailing List Contacts .\n- Sales Order : ties specifically to the Sales app, and focuses on a specific sales\norders in the database.\nSales Order : ties specifically to the Sales app, and focuses on a specific sales\norders in the database.\n\n#### Add recipient filter\n\nTo add a more specific recipient filter to any Recipient option, select any recipient\noption (other than Mailing List ), and click the Modify filter (right-facing\narrow) icon beneath the Recipient field to reveal three subsequent filter rule fields,\nformatted like an equation.\nIt is highly recommended that users implement detailed targeting criteria for the Recipients field. Typically, a single line of targeting logic is not sufficient enough\nfor an email campaign.\nWhile the Mailing List option is adequate for the Recipients field, the Lead/Opportunity and Event Registration options provide far more detailed\ntargeting criteria, which can be added on top of those seed sources.\nFor example, with the Lead/Opportunity option chosen in the Recipients field, users can add various custom criteria related to Created on dates, Stages , Tags , Lost Reasons , Sales Teams , Active statuses, Country , and so much more.\nTo reveal the sub-menu options within the filter rule fields, click each field, and make the desired\nselections, until the preferred configuration has been achieved.\nThe number of records in the database that match the configured rule(s) are indicated\nbeneath the configured filter rule(s), in green.\nSome sub-menu options in the first rule field allow for a second choice to provide even more\nspecificity.\nTo the right of each rule, there are three additional options, represented by â (plus\nsign) , (sitemap) , and ðï¸ (trash) icons.\n- The â (plus sign) icon adds a new node (line) to the overall targeting logic.\nThe â (plus sign) icon adds a new node (line) to the overall targeting logic.\n- The (sitemap) icon adds a branch to the node. A branch contains two additional,\nindented sub-nodes that are related to that specific rule, providing even more specificity to the\nparent line above it.\nThe (sitemap) icon adds a branch to the node. A branch contains two additional,\nindented sub-nodes that are related to that specific rule, providing even more specificity to the\nparent line above it.\n- The ðï¸ (trash) icon deletes a specific node (line) in the array of logic.\nThe ðï¸ (trash) icon deletes a specific node (line) in the array of logic.\n\n### Mail Body tab\n\nIn the Mail Body tab, there are a number of pre-configured message templates to choose\nfrom.\nSelect the desired template, and proceed to modify every element of its design details with Odooâs\ndrag-and-drop building blocks, which appear on the right sidebar when a template is chosen.\nThe features on the sidebar used to create and customize emails are separated into three sections: Blocks , Customize , and Design .\nEach building block provides unique features and professional design elements. To use a building\nblock, drag-and-drop the desired block element onto the body of the email being built. Once dropped,\nvarious aspects of the building block can be customized.\nTo build an email from the ground up, without any building block elements, select the Plain Text template. When selected, Odoo provides a completely blank email canvas,\nwhich can be customized in a number of way using the front-end rich text editor that accepts\nforward slash / commands.\n`/`\nWhen / is typed into the blank body of the email, while using a Plain Text template, a drop-down menu of various design elements appears, which can be used to create the\ndesired email design.\n`/`\n\n### A/B Tests tab\n\nInitially, when the A/B Tests tab is opened on an email form, the only option available\nis Allow A/B Testing . This is not a required option.\nIf this option is enabled, recipients are only mailed once for the entirety of the campaign.\nThis allows the user to send different versions of the same mailing to randomly selected recipients\nto gauge the effectiveness of various designs, formats, layouts, content, and so on â without any\nduplicate messages being sent.\nWhen the checkbox beside Allow A/B Testing is ticked, an on (%) field\nappears, in which the user determines the percentage of the pre-configured recipients that are going\nto be sent this current version of the mailing as part of the test.\nThe default figure in the on (%) field is 10 , but that figure can be changed at any\ntime.\n`10`\nBeneath that, two additional fields appear:\nThe Winner Selection field provides a drop-down menu of options, wherein the user\ndecides what criteria should be used to determine the âwinningâ version of the email tests that are\nsent.\nThe options in the Winner Selection field are as follows:\n- Manual : allows the user to determine the âwinningâ version of the mailing. This option\nremoves the Send Final On field.\nManual : allows the user to determine the âwinningâ version of the mailing. This option\nremoves the Send Final On field.\n- Highest Open Rate (default): the mailing with the highest open rate is determined to\nbe the âwinningâ version.\nHighest Open Rate (default): the mailing with the highest open rate is determined to\nbe the âwinningâ version.\n- Highest Click Rate : the mailing with the highest click rate is determined to be the\nâwinningâ version.\nHighest Click Rate : the mailing with the highest click rate is determined to be the\nâwinningâ version.\n- Highest Reply Rate : the mailing with the highest reply rate is determined to be the\nâwinningâ version.\nHighest Reply Rate : the mailing with the highest reply rate is determined to be the\nâwinningâ version.\n- Leads : the mailing with the most leads generated is determined to be the âwinningâ\nversion.\nLeads : the mailing with the most leads generated is determined to be the âwinningâ\nversion.\n- Quotations : the mailing with the most quotations generated is determined to be the\nâwinningâ version.\nQuotations : the mailing with the most quotations generated is determined to be the\nâwinningâ version.\n- Revenues : the mailing with the most revenue generated is determined to be the\nâwinningâ version.\nRevenues : the mailing with the most revenue generated is determined to be the\nâwinningâ version.\nThe Send Final On field allows users to choose a date that is used to know when Odoo\nshould determine the âwinningâ email, and subsequently, send that version of the email to the\nremaining recipients.\nTo the right of those fields is a Create an Alternative Version button. When clicked,\nOdoo presents a new Mail Body tab for the user to create an alternate version of the\nemail to test.\n\n### Settings tab\n\nThe options present in the Settings tab of the mail form are divided into two sections: Email Content and Tracking .\nThe options available in the Settings tab vary depending on if the Mailing\nCampaigns feature is activated in Email Marketing ⣠Configuration â£\nSettings . See Mailing campaigns for more information.\nWithout the Mailing Campaigns feature activated, the Settings tab on the email form\nonly contains the Preview Text , Send From , Reply To , Attachments , and Responsible fields.\n\n#### Email content\n\n- Preview Text : allows the user to enter a preview sentence to encourage recipients to\nopen the email. In most inboxes, this is displayed next to the subject. If left empty, the first\ncharacters of the email content appear, instead. The ability to add an emoji in this field is\navailable, as well, via the (smiley face with a plus sign) icon.\nPreview Text : allows the user to enter a preview sentence to encourage recipients to\nopen the email. In most inboxes, this is displayed next to the subject. If left empty, the first\ncharacters of the email content appear, instead. The ability to add an emoji in this field is\navailable, as well, via the (smiley face with a plus sign) icon.\n- Send From : designate an email alias that displays as the sender of this particular\nemail.\nSend From : designate an email alias that displays as the sender of this particular\nemail.\n- Reply To : designate an email alias to whom all the replies of this particular email\nare sent.\nReply To : designate an email alias to whom all the replies of this particular email\nare sent.\n- Attach a file : if any specific files are required (or helpful) for this email, click\nthe Attachments button, and upload the desired file(s) to the email.\nAttach a file : if any specific files are required (or helpful) for this email, click\nthe Attachments button, and upload the desired file(s) to the email.\n\n#### Tracking\n\n- Responsible : designate a user in the database to be responsible for this particular\nemail.\nResponsible : designate a user in the database to be responsible for this particular\nemail.\nIf the Mailing Campaign feature is activated, an additional Campaign field\nappears in the Tracking section of the Settings tab.\nThe additional Campaign field allows users to attach this particular email to a\nmailing campaign, if desired.\nIf the desired campaign is not available in the initial drop-down menu, select Search\nMore to reveal a complete list of all mailing campaigns in the database.\nOr, type the name of the desired mailing campaign in the Campaign field, until Odoo\nreveals the desired campaign in the drop-down menu. Then, select the desired campaign.\n\n## Send, schedule, test\n\nOnce the mailing is finalized, the following options can be utilized, via buttons located in the\nupper-left corner of the email form: Send , Schedule , and Test .\n\n### Send\n\nThe Send button reveals a Ready to unleash emails? pop-up window.\nWhen the Send to all button is clicked, Odoo sends the email to the desired recipients.\nOnce Odoo has sent the mailing, the status changes to Sent .\n\n### Schedule\n\nThe Schedule button reveals a When do you want to send your mailing? pop-up\nwindow.\nIn this pop-up window, click the Send on field to reveal a calendar pop-up window.\nFrom the calendar pop-up window, select the future date and time for Odoo to send this email. Then,\nclick âï¸ Apply . When a date and time are chosen, click the Schedule button,\nand the status of the mailing changes to In Queue .\n\n### Test\n\nThe Test button reveals a Test Mailing pop-up window.\nFrom this pop-up window, enter the email addresses of the contacts to whom Odoo should send this\ntest email in the Recipients field. Multiple contacts can be added in this field, if\ndesired.\nOnce all the desired email addresses have been entered in the Recipients field, click\nthe Send Test button.\nBy default, thereâs a daily limit applied for all emails sent throughout all\napplications . So, if there are remaining emails to be sent after a limit has been reached,\nthose mailings are not sent automatically the next day. The sending needs to be forced, by\nopening the email and clicking Retry .\n\n## Mailing campaigns\n\nThe Email Marketing application provides users with the ability to build mailing campaigns.\nIn order to create and customize mailing campaigns, the Mailing Campaigns feature must be\nactivated in the Settings page of the Email Marketing application. To do that, navigate to Email Marketing app ⣠Configuration ⣠Settings , tick the box beside Mailing Campaigns , and click the Save button.\nOnce the Mailing Campaigns feature is activated, a new Campaigns menu option\nappears in the header.\nWhen that is clicked, Odoo reveals a separate Campaigns page, displaying all the mailing\ncampaigns in the database, and the current stage they are in, showcased in a default Kanban view.\nThis information can also be viewed in a list, by clicking the â° (horizontal lines) icon in the upper-right corner.\nClicking any campaign from the Campaigns page reveals that campaignâs form.\nThere are two different ways to create and customize campaigns in the Email Marketing application,\neither directly from the Campaigns page or through the Settings tab on an email form.\n\n### Create mailing campaign (from campaigns page)\n\nWhen the Mailing Campaigns feature is activated, a new Campaigns option appears in the header of\nthe Email Marketing application. Campaigns can be created directly on the Campaigns page in the Email Marketing app.\nTo do that, navigate to Email Marketing app ⣠Campaigns ⣠New .\n\n#### Kanban view\n\nWhen the New button is clicked in the default Kanban view on the Campaigns page, a Kanban card appears in the New stage.\nNew campaign cards can also be made by clicking the â (plus sign) at the top of any\nKanban stage on the Campaigns page.\nWhen the new campaign Kanban card appears, the options to enter a Campaign Name , a Responsible , and Tags become readily available.\nTo add the campaign to the Kanban stage, click the Add button.\nTo delete the campaign, click the ðï¸ (trash can) icon.\nTo further customize the campaign, click the Edit button, which reveals the campaign\nform for additional modifications.\nA Campaign Name must be entered in the Kanban card, in order for the Edit button to reveal the campaign form for further modifications.\n\n#### List view\n\nTo enter the list view on the Campaigns page, click the â° (horizontal lines) icon in the upper-right corner. Doing so reveals all campaign information in a list format.\nTo create a campaign from the Campaigns page while in list view, click the New button. Doing so reveals a blank campaign form.\nFrom this campaign form, a Campaign Name , a Responsible , and Tags can be added.\nAt the top of the form, various metric-related smart buttons can be seen that showcase specific\nanalytics related to the campaign. Those smart buttons are: Revenues , Quotations , Opportunities , and Clicks .\nOnce a Campaign Name is entered and saved, additional buttons appear at the top of\nthe campaign form.\nThose additional buttons are: Send Mailing and Send SMS .\n\n### Campaign form\n\nOn the campaign form (after clicking Edit from the Kanban card, or selecting an existing\ncampaign from the Campaigns page) there are additional options and metrics available.\nAt the top of the form, various smart buttons can be seen that showcase specific analytics related\nto the campaign. Those smart buttons are: Revenues , Quotations , Opportunities , and Clicks .\nThere are also buttons to Send Mailing , Send SMS , Add Post , and Add Push (push notification).\nIf the Send Mailing and Send SMS buttons are not readily available, enter\na Campaign Name , then save (either manually or automatically). Doing so reveals those\nbuttons.\nThe status of the campaign can be viewed in the upper-right corner of the campaign form, as well.\n\n### Create mailing campaign (from settings tab)\n\nTo create a new campaign from the Settings tab of a mailing form, click the Campaign field, and start typing the name of the new campaign. Then, select either Create â[Campaign Name]â or Create and edit⦠from the drop-down menu that\nappears.\nSelect Create to add this new mailing campaign to the database, and modify its settings\nin the future.\nSelect Create and Edit⦠to add this new mailing campaign to the database, and reveal a Create Campaign pop-up window.\nHere, the new mailing campaign can be further customized. Users can adjust the Campaign\nName , assign a Responsible , and add Tags .\nButtons to Add Post or Send Push (push notifications) are also available.\nThere is also a status located in the upper-right corner of the Create Campaign pop-up\nwindow.\nWhen all modifications are ready to be finalized, click Save & Close . To delete the\nentire campaign, click Discard .\n- Mailing lists\n- Manage unsubscriptions (blacklist)\nManage unsubscriptions (blacklist)\n- Lost leads reactivation email\nLost leads reactivation email\n- Analyze metrics", "headings": ["Email marketing dashboard", "List view", "Kanban view", "Calendar view", "Graph view", "Search options", "Settings", "Create an email", "Subject", "Recipients", "Mail Body tab", "A/B Tests tab", "Settings tab", "Send, schedule, test", "Send", "Schedule", "Test", "Mailing campaigns", "Create mailing campaign (from campaigns page)", "Campaign form", "Create mailing campaign (from settings tab)"], "doc_id": "fb0df22de504a6fc"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/email_marketing/analyze_metrics.html", "title": "Analyze metrics", "module": "marketing", "section": "Analyze metrics", "text": "# Analyze metrics\n\nIn order to properly understand the success or failure of an email marketing campaign, it is\nnecessary to monitor several key metrics. The insights gained from these metrics can then be used to\noptimize future campaigns. Odooâs Email Marketing application tracks several key metrics , that can be interpreted through reports to improve future campaigns.\n\n## View metrics\n\nAfter a mass mail has been sent, the results for that particular mailing are displayed in multiple\nlocations.\nTo access the metrics for an individual mailing, navigate to Email Marketing app\n⣠Mailings . Locate the specific mailing in the list view, and use the column headings to view the\nresults for that mailing. Click on one of the mailings in the list to open the record.\nAt the top of the record, detailed metrics are displayed as smart buttons.\n\n### Opened rate\n\nThe percentage of emails opened by recipients, against the total number of sent emails.\nIn cases where a reply is expected, such as cold outreach emails, high open rate may indicate the\nsubject line was timely, compelling, and successfully prompted the recipients to view the message.\nIn cases where a reply is not expected, such as promotional emails, it may indicate an issue with\nthe email, such as incorrect product links or coupon codes.\nIn cases where a reply is expected, a low open rate may indicate the subject\nline failed to capture the recipientsâ interest or the message ended up in a spam or junk folder. It\ncould also indicate the email ended up in a spam or junk folder.\nEmails that consistently land in recipient spam folders could be due to having a poor sender\nreputation (i.e. high unsubscribe rate, high percentage of past emails marked as spam, etc.),\nor failing to configure the proper DNS records .\n\n### Replied rate\n\nThe percentage of recipients who responded to the email, against the total number of sent emails.\nA high replied rate may indicate the email resonated with recipients, prompting them to take\naction or provide feedback.\nA low replied rate may suggest the message lacked relevance or did not contain a clear\ncall-to-action.\n\n### Clicked rate\n\nThis represents the Clicked through rate (CTR) , which measures the\npercentage of recipients who clicked on a link within the email, against the total number of sent\nemails.\nA high CTR may indicate the email content was relevant and appropriately targeted. Recipients\nwere motivated to click the links provided, and likely found the content engaging.\nA low CTR may indicate issues with either the targeting, or the content itself. Recipients may\nhave been unmotivated by the calls-to-action, if there were any, or the message itself may have\nbeen directed toward the wrong audience.\n\n### Received rate\n\nThis rate measures the percentage of emails that were successfully delivered, against the total\nnumber of sent emails.\nA high received rate can indicate the mailing list used is up-to-date, and the sender authentication\nis trusted by email providers.\nA low received rate may indicate issues, either with the mailing list used for the mailing, or with\nthe sender authentication. View the Mass mailing analysis section for more\ninformation.\n\n### Bounced rate\n\nThis rate measures the percentage of emails that were unsuccessfully delivered, and did not\nenter a recipientâs inbox, against the total number of sent emails.\nA high bounce rate could indicate issues, either with the mailing list used for the mailing, or with\nthe sender authentication.\nA low bounce rate may indicate that the mailing list used is up-to-date, and the sender\nauthentication is trusted by email providers. View the Mass mailing analysis section for more information.\nClick on the respective smart buttons to see all the corresponding recipient records that are\nattributed to each metric. When these filtered records are in view, multiple types of reports can\nbe run for further analysis.\n\n## Create metrics reports\n\nIndividual metrics can be analyzed by creating a report. To begin, click on the smart button of the\ndesired metric.\nNext, click the (down arrow) to the right of the search bar to see\na drop-down menu of filtering and grouping parameters.\nFilters , located in the left column of the search options, can be used to keep only the\nresults that fit the filter. For example, selecting the Bounced filter only shows emails\nthat could not be delivered.\nGroup By , found in the middle column, is used to organize the results into groups, and\ncan be used with or without filters.\nSetting multiple Group By options creates nested groups, according to which option\nis selected first. For example, selecting Sent Period , followed by Add Custom Group â> Responsible , in the Group By column, sorts all\nresults first by the sent period, then by the team member responsible. This is a useful\nmetric for analyzing who on the team is sending in volume or quantity over a set time period.\nThis can be verified by looking at the direction, and order, of the selections in the group tile\nthat appears in the search bar after the selections are made.\nA monthly newsletter has been sent out, and 6.9% of the sent emails were bounced.\nTo see what these bounced recipients have in common, the records are grouped using a custom group\ntargeting Mailing Lists , which groups all records by the mailing lists they are on.\nThe records are then filtered using a custom filter with the rule Created on >= 07/01/2024 00:00:00 , to filter by when the mailing list was last checked. This filter only includes\nrecipients that have been created on, or after, July 1st, 2024, in the report.\n`Createdon>=07/01/202400:00:00`\nUsing these configurations, it is evident that all the recipients with bounced emails were added\nafter the list was last checked. Looking closer at the domains, it is evident that each\nrecipient has a malformed email domain (i.e: @yaoo.com instead of @yahoo.com), likely due to a\nmanual entry error while updating the database.\nView Search, filter, and group records for more information about making custom groups and\nfilters.\n\n## Mass mailing analysis\n\nIt is also possible to analyze the success between mailing campaigns by creating a Mass Mailing\nAnalysis report. To begin, navigate to Email Marketing app ⣠Reporting ⣠Mass\nMailing Analysis .\nA dashboard appears displaying a bar chart containing each mailing campaign. By default, Sent is selected, displaying the number of sent records on the y-axis. To change the\nmeasure, click the Measures button, and select the desired measure from the drop-down\nmenu.\nThe following chart displays the number of opened emails from two different mass mailings.\nIn this view, it can be seen that the first mass mailing led to a higher opened rate than the\nsecond. Because a lower opened rate can sometimes be attributed to a subject line that failed to\ncapture readersâ attention, the subject line of each mass mailing can be a good place to begin\nlooking.\nComparing the two subject lines, it is clear the newsletterâs subject line was less engaging,\nwhich may have led to the lower opened rate, when compared to the other mass mailing.\n\n## Deliverability issues\n\nThe following define possible reasons for a high bounce rate or low received rate:\n- Using a mailing list that contains outdated contact information, or malformed email addresses are\nlikely to result in a high bounce rate and/or a low received rate.\nUsing a mailing list that contains outdated contact information, or malformed email addresses are\nlikely to result in a high bounce rate and/or a low received rate.\n- Mailings sent using a From email address that differs from the senderâs domain are likely to\nbounce with certain email providers due to failing DMARC authentication .\nMailings sent using a From email address that differs from the senderâs domain are likely to\nbounce with certain email providers due to failing DMARC authentication .\n- Failing to configure the proper DNS records can also result in a high bounce rate.\nFailing to configure the proper DNS records can also result in a high bounce rate.\n- Mailing campaigns\n- Manage unsubscriptions\nManage unsubscriptions", "headings": ["View metrics", "Opened rate", "Replied rate", "Clicked rate", "Received rate", "Bounced rate", "Create metrics reports", "Mass mailing analysis", "Deliverability issues"], "doc_id": "9673874b3e52f6e3"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/email_marketing/lost_leads_email.html", "title": "Lost leads reactivation email", "module": "marketing", "section": "Lost leads reactivation email", "text": "# Lost leads reactivation email\n\nIn Odoo, lost leads are removed from the active CRM pipeline, but can still be targeted with the Email Marketing application for strategic campaign purposes, such as lost leads reactivation.\nA lost leads reactivation email looks at the leads that were lost during a specific period of time,\nand uses custom filters and lost reasons to exclude undesirable leads from the mailing list.\nOnce a lost leads reactivation email is complete, it can be sent as is, modified and sent to\ndifferent groups for A/B testing, or saved as a template for later.\nA warehouse has leftover merchandise from a limited run of items from last year. To help clear\nout the excess inventory, the warehouse manager creates a lost leads email to reach out to old\nopportunities that were lost, and inform them that the limited merchandise is back in stock.\nThe warehouse manager uses the following filters for a lost leads email:\n- Blacklist is not set\n`notset`\n- Created on >= 01/01/2024 00:00:01\nCreated on >= 01/01/2024 00:00:01\n`01/01/202400:00:01`\n- Stage is not in New , Qualified , or Won\nStage is not in New , Qualified , or Won\n`New`\n`Qualified`\n`Won`\n- Lost Reason is in Not enough stock\nLost Reason is in Not enough stock\n`Notenoughstock`\n- and either Active is set or not set\nand either Active is set or not set\n`set`\n`notset`\nAs filters are added and removed, pay attention to the # record(s) value below the\nfiltering section. This value indicates the total number of records that match the current\ncriteria.\nTo view a list of all matching records, click the # record(s) text.\n\n## Minimum requirements\n\nIn order to create and deliver a lost leads reactivation email campaign, the CRM and Email\nMarketing applications must be installed and configured.\nHere are the minimum necessary filters that pertain to a lost leads reactivation mailing campaign:\n- The Recipients field must be set to the Lead/Opportunity model.\nThe Recipients field must be set to the Lead/Opportunity model.\n- A Blacklist filter to exclude unsubscribed recipients.\nA Blacklist filter to exclude unsubscribed recipients.\n- A Created on to target leads that were lost during a\nspecific period of time.\nA Created on to target leads that were lost during a\nspecific period of time.\n- Stage filter(s) to exclude leads that were already won, or\nare still active in new stages of the sales pipeline (i.e. New , Qualified , etc.). These values\nwill be different per organization; however, itâs minimally viable to exclude all the leads in the Won stage.\nStage filter(s) to exclude leads that were already won, or\nare still active in new stages of the sales pipeline (i.e. New , Qualified , etc.). These values\nwill be different per organization; however, itâs minimally viable to exclude all the leads in the Won stage.\n- One or more Lost Reason filters to exclude undesired\nleads, such as duplicate, spam, or irrelevant records.\nOne or more Lost Reason filters to exclude undesired\nleads, such as duplicate, spam, or irrelevant records.\n- A pair of Active filters to target both active and\ninactive leads.\nA pair of Active filters to target both active and\ninactive leads.\n\n## Add the necessary filters\n\nFirst, navigate to the Email Marketing app, and on the Mailings page,\nclick the New button in the top-left corner.\nOn the new Mailings form, enter an appropriate Subject line for the email in\nthe corresponding field. Then, in the Recipients field, choose the Lead/Opportunity model from the drop-down menu.\nIn the rules section, located beneath the Recipients field, click the modify filter\n( â (triangle pointing right) ) icon to expand the filter rules. Leave the default Blacklist rule in place.\n\n### Created on\n\nBegin by clicking New Rule beneath the default Blacklist rule. Then, click\nthe first field of the new rule that appears, and select the Created on parameter from\nthe drop-down menu. With that in place, a specific time period during which the targeted leads were\nlost can be designated (e.g. 30 days prior, 90 days prior, previous year, etc.).\nThen, in the second field, select <= (less than or equal to) , >= (greater\nthan or equal to) , or is between as a date operator, in order to frame the time\nselection chosen in the third field.\nIn the third field, use the calendar popover window to select dates, and click Apply to\nlock in the time range.\nWhen there is more than one rule applied, make sure the statement at the top of the Recipients filter list reads: Match all of the following rules . If it\ndoes not, click on the statement, and select all from the drop-down menu (as opposed\nto any ).\n\n### Stage\n\nNow, add the Stage filter to exclude leads that are in the New , Qualified , and Won stages of the sales pipeline.\nThis step assumes that the New , Qualified , and Won stages exist in the CRM pipeline;\nhowever, stage names may differ from business to business. Refer to the databaseâs actual stage\nnames in the CRM appâs pipeline to complete this step, accordingly.\nBegin again by clicking New Rule and select Stage from the first fieldâs\ndrop-down menu. In the second field, select the is not in operator, and in the third\nfield, select the New , Qualified and Won stages to define the\nruleâs parameters.\nWhen the rule is added in this way, the logic in the third field renders as OR ( | )\nstatements.\n`OR`\n`|`\nAnother way to add Stage rules, is to do so on a one-rule-per-row basis using the contains or does not contain operators, and manually typing out the\ndefining characters in each stage name. This method, however, only allows for one selection at a\ntime, which can be useful for quickly turning on/off filters in the Search⦠bar.\n\n### Lost Reason\n\nNext, add one or more Lost Reason rules to exclude leads that should not be targeted\nfor specific lost reasons .\nTo do that, create another New Rule , once again. Then, in the ruleâs first field, select Lost Reason from the drop-down menu. For the operator, choose either is not\nin or does not contain from the drop-down menu. With either selection, use the third\nfield to enter a lost reason (or multiple lost reasons, depending on your operator choice) to\ninclude in the rule.\nIf choosing the does not contain operator, then repeat the preceding steps to add more\nlost reasons, as needed, where each lost reason occupies one rule row at a time.\nFor more information, refer to the section below outlining how to select appropriate lost\nreasons .\n\n### Active\n\nFinally, add a pair of Active filters to include both active and inactive leads for the\ncampaign.\nAdding both active and inactive lead records is necessary to capture the full scope of lost\nleads in the database. Doing one without the other greatly impacts the number of targetable\nrecords for the email campaign, and does not include a complete or accurate lost leads\naudience.\nFirst, click the (Add Branch) icon on the most recently created rule (e.g. Lost Reason ), which is the middle of three icons located to the right of the rule row.\nDoing so adds a pair of any of rules. Then, in the top ruleâs first field of the\nnewly-created branch, select the Active parameter from the drop-down menu. The rule then\nautomatically fills out to read: Active is set .\n`set`\nFor the first field of the bottom rule of the branch, select Active from the drop-down\nmenu again. However, this time, select is not from the operator drop-down menu in the\nsecond field. The rule should then read: Active is not set .\n`set`\n\n## Add body content\n\nNow, with the domain section of the email campaign complete, create the body content of the email\nusing any of the premade stylized templates, or choose between the Plain Text or Start From Scratch options for more granular control. For more information, refer to the Email Marketing documentation on how to create an email .\nTo save the set of filters for later use, click Save as Favorite Filter ð¾ (floppy\ndisk) , enter a name (such as Lost Leads ), and click Add .\n`LostLeads`\n\n## Send or schedule\n\nOnce all the components of the email campaign are complete, either:\n- click the purple Send button at the top-left of the form to immediately send the\nemail; or\nclick the purple Send button at the top-left of the form to immediately send the\nemail; or\n- click the gray Schedule button, located to the right of the Send button,\nto send the email at a future date and time.\nclick the gray Schedule button, located to the right of the Send button,\nto send the email at a future date and time.\nConsider using A/B Testing to send an alternate version of the email to a percentage of the\ntarget leads. This can help determine what subject lines and body content produce the best\nclick-through rates, before sending a final version to the remaining leads.\nTo do so, open the A/B Tests tab on the mailing form and check the box next to Allow A/B Testing . Then, adjust the parameters as needed, and click Create\nan Alternative Version .\n\n## Select appropriate lost reasons\n\nWhen a lead is marked as lost, Odoo recommends selecting a Lost Reason to indicate why the\nopportunity did not result in a sale. Doing so keeps the pipeline organized and reporting data\naccurate, and generates potential to follow up with the lead in the future.\nIf an existing Lost Reason is not applicable, users with the necessary permissions can create new\nones, which means the lost reasons in a database can vary from organization to organization, and\nfrom pipeline to pipeline.\nFor more information on Lost Reasons , including the creation of them, refer to Lost opportunities .\nBy default, Odoo includes a few common Lost Reasons , such as:\n- Too expensive\n- We donât have people/skills\nWe donât have people/skills\n- Not enough stock\nWhen determining which reasons to include in a lost leads reactivation email, consider what the\nemail is advertising, in order pinpoint one or more relevant lost reasons. Then, add a rule stating, Lost Reason does not contain _____ for every reason in the database, except for\nthe relevant one(s).\n`_____`\nIf the email advertises a selection of previously-limited merchandise that is now back in stock,\nit makes sense to target leads with the lost reason: not enough stock .\nIf the email advertises a price reduction, it makes sense to target leads with the lost reason: too expensive .\n\n## Analyze the results\n\nAfter sending a lost leads reactivation email, marketing teams can use the smart buttons along the\ntop of the email to analyze the results, and determine follow-up actions.\nClicking on any of the smart buttons opens a list of records matching that buttonâs specific\ncriteria.\nThe smart buttons include:\n- Sent : total number of emails sent.\nSent : total number of emails sent.\n- Opened : percentage of recipients that opened the email.\nOpened : percentage of recipients that opened the email.\n- Replied : percentage of recipients that replied to the email.\nReplied : percentage of recipients that replied to the email.\n- Clicked : click-through rate (%) of recipients that clicked on a link in the email.\nClicked : click-through rate (%) of recipients that clicked on a link in the email.\n- Leads/Opportunities : number of leads (or opportunities) that have been created in the CRM pipeline, as a result of the email campaign.\nLeads/Opportunities : number of leads (or opportunities) that have been created in the CRM pipeline, as a result of the email campaign.\n- Quotations : number of quotations that have been created in the Sales application, as\na result of the email.\nQuotations : number of quotations that have been created in the Sales application, as\na result of the email.\n- Invoiced : total revenues generated, as a result of the email campaign, via invoices\nsent to, and paid by, customers. These values are recorded in either the Invoicing or Accounting application, depending on which app is installed in the database.\nInvoiced : total revenues generated, as a result of the email campaign, via invoices\nsent to, and paid by, customers. These values are recorded in either the Invoicing or Accounting application, depending on which app is installed in the database.\n- Received : percentage of recipients that received the email.\nReceived : percentage of recipients that received the email.\n- Bounced : percentage of emails that bounced ( not delivered ).\nBounced : percentage of emails that bounced ( not delivered ).\n- Ignored : the number of recipients that received the email, but have not interacted\nwith it in a meaningful way (i.e. opened, clicked, etc.).\nIgnored : the number of recipients that received the email, but have not interacted\nwith it in a meaningful way (i.e. opened, clicked, etc.).\n\n## Email nurturing\n\nEmail nurturing (sometimes referred to as lead nurturing ) is the process of sending a series of\ntimely and relevant ânudgeâ emails to connect with a lead, build a deeper relationship, and\nultimately convert the lead into a sale.\nThe point of nurturing is to keep the email campaign âvisibleâ or at the top of a leadâs inbox,\nuntil they are ready to buy.\nThere are many approaches to effective lead nurturing, but they often involve:\n- Sending an initial email (such as, a lost leads reactivation email).\nSending an initial email (such as, a lost leads reactivation email).\n- Sending a follow-up email each week (or according to specific triggers) for the duration of the\ncampaign.\nSending a follow-up email each week (or according to specific triggers) for the duration of the\ncampaign.\n- Continuously analyzing results to learn what approaches have resulted in sales.\nContinuously analyzing results to learn what approaches have resulted in sales.\n- Continuously adjusting the approach to remain âvisibleâ at the top of the leadâs inbox, and\nhopefully, get a meaningful response from the lead.\nContinuously adjusting the approach to remain âvisibleâ at the top of the leadâs inbox, and\nhopefully, get a meaningful response from the lead.\nAs a campaign progresses, a marketing team may send different follow-up emails depending on how a\nlead responded the previous week.\nA marketing team wants to advertise a restocking of limited-run merchandise to all leads with a\nlost reason of not enough stock . They develop the following three-week long lead nurturing\ncampaign.\n- Week 1: the marketing team sends an initial email, with the subject line: âLimited run\nmerchandise is back in stock! Act now!â\nWeek 1: the marketing team sends an initial email, with the subject line: âLimited run\nmerchandise is back in stock! Act now!â\n- Week 2: the marketing team sends two different emails, depending on how a lead responded. If a lead ignored the Week 1 email: âStock is almost out, did you get yours?â If a lead clicked on the Week 1 email: âYou still have time to add this to your collectionâ\nWeek 2: the marketing team sends two different emails, depending on how a lead responded.\n- If a lead ignored the Week 1 email: âStock is almost out, did you get yours?â\nIf a lead ignored the Week 1 email: âStock is almost out, did you get yours?â\n- If a lead clicked on the Week 1 email: âYou still have time to add this to your collectionâ\nIf a lead clicked on the Week 1 email: âYou still have time to add this to your collectionâ\n- Week 3: the marketing team sends a final email to all leads who have not been converted\nstating: â20% off, donât miss your last chance to get these items before theyâre gone!â\nWeek 3: the marketing team sends a final email to all leads who have not been converted\nstating: â20% off, donât miss your last chance to get these items before theyâre gone!â\nThroughout the campaign, the marketing team continuously refers to the smart buttons along the\ntop of the mailing page to see what percentages of leads are opening, clicking on, or ignoring\nthe emails. They also regularly analyze reports on how many opportunities, quotations, and\ninvoices have been generated by the campaign.\n- Email Marketing\n- Manage unsubscriptions (blacklist)\nManage unsubscriptions (blacklist)\n- Marketing Automation", "headings": ["Minimum requirements", "Add the necessary filters", "Created on", "Stage", "Lost Reason", "Active", "Add body content", "Send or schedule", "Select appropriate lost reasons", "Analyze the results", "Email nurturing"], "doc_id": "5b97aeb956e867e1"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/email_marketing/mailing_lists.html", "title": "Mailing lists", "module": "marketing", "section": "Mailing lists", "text": "# Mailing lists\n\nMailing lists in Odoo are used for both pre and post sales communications in the Email Marketing application. They provide sales teams with qualified lead lists, focus group participants, or\ncurrent customers that fulfill specific criteria.\nMailing lists can be generated in Odoo, and exported as a downloadable file, or into the Knowledge , Dashboards , or Spreadsheets applications, or imported via copy/paste or file\nupload.\n\n## Create mailing lists\n\nTo create a mailing list in the Email Marketing application, navigate to Email\nMarketing app ⣠Mailing Lists ⣠Mailing Lists ⣠New .\nClicking New reveals a blank mailing list form.\nOn the form, type a name in the Mailing List field at the top.\nIf the mailing list should be accessible by recipients from the subscription management page,\nallowing them to update their preferences, tick the box next to Show In Preferences .\nIn the upper-left corner of the mailing list form, there are two buttons: Send Mailing and Send SMS .\nThe Send SMS button only appears if the SMS Marketing application is installed.\nClicking Send Mailing reveals a separate page with a blank email template form, which\ncan be filled out by following steps explained in the Email Marketing doc .\nClicking Send SMS reveals a separate page with a blank SMS template form, which can be\nfilled out by following steps explained in the SMS Marketing doc .\nAt the top of the mailing list form is a series of smart buttons that display a variety of metrics\nrelated to the specific mailing list. When any of the smart buttons are clicked, a separate page is\nrevealed, showcasing detailed analytics related to that particular statistic.\nThe smart buttons available on a mailing list form are:\n- Recipients : how many people are subscribed to the mailing list\nRecipients : how many people are subscribed to the mailing list\n- Mailings : how many mailings have been sent using this mailing list\nMailings : how many mailings have been sent using this mailing list\n- % Bounce : percentage of mailings related to this mailing list that have been bounced\nback\n% Bounce : percentage of mailings related to this mailing list that have been bounced\nback\n- % Opt-out : percentage of recipients that have opted-out of mailings from this mailing\nlist\n% Opt-out : percentage of recipients that have opted-out of mailings from this mailing\nlist\n- % Blacklist : percentage of recipients that have blacklisted themselves from the\nmailing list altogether\n% Blacklist : percentage of recipients that have blacklisted themselves from the\nmailing list altogether\nOnce all the configurations on the mailing list form are complete, Odoo automatically adds the new\nmailing list to the Mailing List page in the Email Marketing app\n( Email Marketing app ⣠Mailing Lists ⣠Mailing Lists ).\n\n## Add contacts to mailing list\n\nIn Odoo Email Marketing , there are a few different ways to add contacts to a mailing list.\nFrom the Mailing Lists page ( Email Marketing ⣠Mailing Lists â£\nMailing Lists ), click the Total Contacts link on the line of the desired mailing list\nto which contacts should be added.\nDoing so reveals a separate Mailing List Contacts page for that specific mailing list,\nwhere contacts can be created or imported, and then added to the specific mailing list.\nThis same page can also be accessed by clicking the desired mailing list from the Mailing\nLists page, and then clicking the Recipients smart button on the mailing list form.\nDoing so also reveals a separate Mailing List Contacts page for that specific mailing\nlist, where contacts can be created or imported, and then added to the specific mailing list.\nContacts can also be directly imported to a specific mailing list from the Mailing Lists page, by clicking Import Contacts to the far-right of the desired mailing list.\nDoing so reveals an Import Mailing Contacts pop-up form.\nHere, the desired mailing list is auto-populated in the Import contacts in field.\nBeneath that, write or paste email addresses in the Contact List field.\nThe option to import a country, company name, and more is available, via the Upload a\nfile link at the bottom of the pop-up form.\nWhen all contacts and configurations are complete, click Import .\nTo add contacts to a specific mailing list from a master list of all mailing list contacts in the\ndatabase, navigate to Email Marketing app ⣠Mailing Lists ⣠Mailing List\nContacts . Doing so reveals the Mailing List Contacts page, featuring a list of all\ncontacts associated with every mailing list.\nThe default Exclude Blacklisted Emails filter appears in the search bar.\nFrom the Mailing List Contacts page, contacts can be created and/or imported, and then\nadded to a mailing list.\nTo add an existing contact to a mailing list, select the desired contact from the list on the Mailing List Contacts page to reveal their contact form.\nAt the bottom of their contact form, click Add a line under the Mailing List column, locate the desired mailing list from the drop-down menu, and select it.\nA mailing list can be created directly from a contact form, by typing the name of the new mailing\nlist in the Mailing List field. Then, after a new mailing list name has been entered,\ntwo options appear on the drop-down menu beneath the new mailing list name.\nFrom this drop-down menu, select Create to create the mailing list and edit it later,\nor select Create and edit⦠to create and edit the new mailing list right away.\nTo remove a contact from a mailing list that the contact has been added to, enable the Opt Out checkbox. If the Opt Out checkbox is ticked, the ability to add a Reason why the contact opted-out is also available.\nWhen/if a contact has opted-out of a mailing list, the date they activated their opt-out appears\nin the Unsubscription Date column on their contact form.\nLastly, the initial Subscription Date can be seen, as well. This field is auto-populated\nwith the date and time their subscription to the mailing list has been saved.\nMultiple mailing lists can be added to a single contact form.\nTo delete any mailing list from a contact form, simply click the ðï¸ (trash can) icon.\n\n## Link mailing list to website\n\nWhen a mailing list is created in the database, Odoo provides the option to directly link the\nmailing list to the Odoo-built website (created via the Odoo Website application).\nTo link a mailing list to a website, navigate to the front-end of the website, which can be\naccomplished in a variety of ways throughout the database. The most direct way to get to the\nfront-end of the website is to simply open the Website application from the main\nOdoo dashboard.\nDoing so reveals the designated homepage of the Odoo-built website for the database.\nFrom the front-end of the website, click the Edit button in the upper-right corner. When\nclicked, Odoo reveals a right-sidebar, filled with drag-and-drop building blocks , packed with\nvarious features, options, and design elements.\nNext, in the search bar of the right-sidebar, search for Newsletter . The Newsletter selection of building blocks is used to add subscription fields for any mailing list onto the\nwebsite.\n`Newsletter`\nDoing so reveals the following building block options: Newsletter Block , Newsletter Popup , and Newsletter . Any of these options can be used to add\nsubscription fields for a mailing list onto the website.\nThe Newsletter Block option places a customizable block onto the body of the website\nwhere a visitor to enter their email and click a button to subscribe to a designated mailing list.\nThe Newsletter Popup option reveals a customizable pop-up window that appears when a\nvisitor scrolls to the specific section of the webpage on which the building block is placed. When\nthe visitor reaches the designated section, a pop-up window appears, in which a visitor can enter\ntheir email address, click a button, and subscribe to that predetermined mailing list.\nThe Newsletter option provides the same functionality as the other options. However, it\nonly consists of a field for the visitor to enter their email address, and a button to subscribe to\nthe mailing list.\nIt is covertly designed in this fashion to be cleanly implemented into the content of the webpage\nand/or footer.\nOnce the desired newsletter building block is chosen, drag-and-drop it onto the body of the\nwebsite. Then, select the newly-placed newsletter building block to reveal its configuration options\non the right-sidebar.\nFrom there, open the Newsletter drop-down menu, and select the specific mailing list\nthat should be applied to the block.\nOnce the desired configurations and customizations are complete, be sure to click the Save button in the upper-right corner.\nNow, when a visitor enters their email address, and clicks the button to subscribe, they are\ninstantly subscribed to that pre-configured mailing list. They are also added as a contact for that\nmailing list in Odoo Email Marketing .\n- Email Marketing\n- Manage unsubscriptions (blacklist)\nManage unsubscriptions (blacklist)", "headings": ["Create mailing lists", "Add contacts to mailing list", "Link mailing list to website"], "doc_id": "66f174451ad6cbeb"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/email_marketing/unsubscriptions.html", "title": "Manage unsubscriptions (blacklist)", "module": "marketing", "section": "Manage unsubscriptions (blacklist)", "text": "# Manage unsubscriptions (blacklist)\n\nProviding recipients with the power to unsubscribe from mailing lists is not only a smart business\npractice, itâs often a legal requirement. Allowing recipients to unsubscribe from a mailing list\nestablishes a sense of trust and control with an audience. It also helps companies appear more\ngenuine, and less spammy .\n\n## Unsubscribe and blacklist\n\nIn addition to having the option to unsubscribe from specific mailing lists, the recipient can also blacklist themselves during the unsubscription process, meaning they will not receive any more\nmarketing emails from the Odoo database.\nIn order to provide recipients with the ability to blacklist themselves, a specific feature must be enabled in the Email Marketing application.\nNavigate to Email Marketing app ⣠Configuration ⣠Settings , and tick the\ncheckbox next to the Blacklist Option when Unsubscribing feature. Then, click Save in the upper-left corner of the Settings page.\n\n### Unsubscribe\n\nBy default, an Unsubscribe link appears at the bottom of all mailing templates.\nThe Unsubscribe link does not appear by default if the Start From Scratch template is\nused to create a mailing. The user must manually add the specific unsubscribe link /unsubscribe_from_list in the body of the email, or use a block from the Footers section of\nthe email builder, which includes the unsubscribe link.\n`/unsubscribe_from_list`\nIf a recipient clicks the Unsubscribe link in a mailing, Odoo instantly unsubscribes them from the\nmailing list, presents them with a Mailing Subscriptions page where they can directly\nmanage their subscriptions, and informs them that theyâve been Successfully\nUnsubscribed .\nBeneath that, Odoo asks the former subscriber to Please let us know why you updated your\nsubscription , and the user can proceed to choose the appropriate opt-out reason from a series of\noptions presented to them.\nThe opt-out answer options can be created and modified by navigating to Email\nMarketing app ⣠Configuration ⣠Optout Reasons .\nOnce theyâve chosen the appropriate opt-out reason from the options presented to them, they can\nclick the Send button. Odoo then logs their reasoning for unsubscribing in the Email\nMarketing app for future analysis.\n\n### Blacklist\n\nFor a recipient to remove (i.e. blacklist) themselves from all marketing emails during the\nunsubscription process, on the Mailing Subscriptions page, they must click Exclude Me .\nUpon clicking Exclude Me , Odoo informs the recipient they have been successfully\nblacklisted, with a message reading: âï¸ Email added to our blocklist .\nBeneath that, Odoo asks the former subscriber to Please let us know why you want to be\nadded to our blocklist , and the user can proceed to choose the appropriate reason from a series of\noptions presented to them.\nOnce theyâve chosen the appropriate reason from the options presented to them, they can click the Send button. Odoo then logs their reasoning for blacklisting themselves in the Email\nMarketing app for future analysis.\n\n## Blacklisted email addresses\n\nTo view a complete list of all blacklisted email addresses, navigate to Email\nMarketing app ⣠Configuration ⣠Blacklisted Email Addresses .\nWhen a blacklisted record is selected from this list, Odoo reveals a separate page with the\nrecipientâs contact information, along with the provided Reason why they chose to\nblacklist themselves.\nIn the chatter of the blacklisted record page, thereâs a time-stamped message, informing the user\nwhen the recipient blacklisted themselves (via a Mail Blacklist created log note).\nBlacklisted emails are excluded from all marketing mailings, however, these emails can still\nreceive transactional emails, such as order confirmations, shipping notifications, etc.\n\n## Unblacklist contacts\n\nTo Unblacklist contacts, click the Unblacklist button in the upper-left corner of a\nblacklisted recordâs page to remove the contact from the blacklist, allowing them to receive\nmailings once again.\nWhen Unblacklist is clicked, an Are you sure you want to unblacklist this\nEmail Address? pop-up window appears.\nIn this pop-up window, the email address of the selected blacklisted record is shown, and thereâs a Reason field, in which a reason can be entered, explaining why this particular contact\nwas removed from the blacklist.\nAfter filling in the fields, click Confirm to officially remove that particular contact\nfrom the blacklist.\n- Email Marketing\n- Mailing lists", "headings": ["Unsubscribe and blacklist", "Unsubscribe", "Blacklist", "Blacklisted email addresses", "Unblacklist contacts"], "doc_id": "80f55b160c8b6c98"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/events.html", "title": "Events", "module": "marketing", "section": "Events", "text": "# Events\n\nExplore the various aspects of the Odoo Events detailed dashboard, and useful settings, that can\nbe utilized to generate and gather valuable data about events (and their attendees), which can then\nbe used to improve decision-making and event-planning.\nOdoo Tutorials: Events\n\n#### Create events\n\nDiscover how to create events with Odoo.\n\n#### Sell event tickets\n\nLearn how to create, configure, and sell event tickets.\n\n#### Track and manage talks\n\nSee how to create, track, and manage event tracks with Odoo.\n\n#### Event templates\n\nExpedite the event-creation process with event templates.\n\n#### Event tracks\n\nLearn how to create, track, and manage event tracks with Odoo.\n\n#### Event booths\n\nCreate, manage, and sell event booths.\n\n#### Registration Desk\n\nInstantly grant access to event attendees with Odooâs Registration Desk feature.\n\n#### Revenues report\n\nAnalyze the financial success of events with Odoo.", "headings": [], "doc_id": "cdf465ed00c17c45"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/events/attendee_experience/community_rooms.html", "title": "Community Chat Rooms", "module": "marketing", "section": "Community Chat Rooms", "text": "# Community Chat Rooms\n\nIn the Events app, users can create Jitsi video conference rooms for event attendees to\nconnect and discuss topics related to the event.\n\n## Configuration\n\nTo set up community rooms, the Community Chat Rooms feature needs to be enabled in the Events settings by navigating to Events app ⣠Configuration ⣠Settings . In the Events section, enable Community Chat Rooms and click Save .\nWith the Community Chat Rooms feature enabled, users can then create community rooms in the database and publish them on the website. Event attendees can\nnot only join rooms but also create them directly on the website .\n\n## Create a room\n\nTo create a community room in the database, open the Events app, then select or create an event.\nA Rooms smart button appears at the top of the event form. Click\nit to open the list of meeting rooms created for the event.\n\n### Meeting room form\n\nTo create a new room, click New . This opens a form to configure details about the room.\nBegin by entering the name of the topic in the Topic field.\nThen, complete the information in the following fields:\n- Event : Select the corresponding event for the meeting room. This field is\nautomatically populated.\nEvent : Select the corresponding event for the meeting room. This field is\nautomatically populated.\n- Summary : Enter a short description of the meeting roomâs purpose.\nSummary : Enter a short description of the meeting roomâs purpose.\n- Audience : Specify the intended audience of the meeting room.\nAudience : Specify the intended audience of the meeting room.\n- Is Pinned : Specify whether the meeting room should be pinned on the event website.\nIs Pinned : Specify whether the meeting room should be pinned on the event website.\n- Max capacity : Select the maximum number of participants allowed in the room.\nMax capacity : Select the maximum number of participants allowed in the room.\n- Language : Select the language of the meeting.\nLanguage : Select the language of the meeting.\nThe Chat Room field is automatically populated with a generated name for the Jitsi conference room. If desired, the user can change this name by clicking the field and modifying any\ndetails on the resulting form.\nFinally, the Participant count field automatically populates with the number of\nattendees currently in the meeting room.\nOnce the meeting room form is complete, a Reporting tab appears at the bottom of the\nform, allowing users to monitor the Last activity date and the Peak\nparticipants count for the event.\n\n### Publish meeting room\n\nAfter configuring the meeting room form, users must publish the room on the event website to make it\nvisible for event attendees. To do this, click the Go to Website smart\nbutton at the top of the meeting room form.\nThis opens the meeting room page on the event website, currently invisible to attendees. To publish\nit, toggle the Unpublished button. The meeting room is then Published and available for attendees to join.\n\n## Community rooms on the website\n\nOnce published, community rooms appear on the eventâs webpage. To access them, open the Website app and navigate to the Events header menu item on the website. Then, select the desired\nevent to open the event-specific webpage. The sub-menu appears with the Community option.\nIf the Community sub-menu item is not displayed, the website must first be modified\nin the database using the editor mode in order to display the sub-menu.\nTo start, click Edit in the top corner. In the Customize tab, toggle the Sub-menu (Specific) option, then click Save .\nClicking the Community sub-menu item opens the Join a room page, listing all published\nmeeting rooms, along with information including the topic title, a short summary of the roomâs\npurpose, and the number of participants in the room. Optionally, attendees can also pin a meeting\nroom by clicking the (pin) icon next to the title.\nTo join a room, click on the desired topic. This opens the Jitsi video conferencing room where\nattendees can chat.\n\n### Create a room as an attendee\n\nThe Join a room page on the event website also features an option for attendees to launch a new\nmeeting room for a specific topic.\nTo create a new meeting room as an attendee, click the Create a Room button. This opens\na Launch a new topic pop-up window.\nSimilar to creating a room in the database, continue by filling in the following details about the\nroom:\n- Room Topic : The name of the topic.\nRoom Topic : The name of the topic.\n- Short Summary : A short description about the meetingâs purpose.\nShort Summary : A short description about the meetingâs purpose.\n- Target People : The intended audience of the meeting.\nTarget People : The intended audience of the meeting.\n- Language : The target language of the meeting.\nLanguage : The target language of the meeting.\n- Capacity : The maximum capacity of the room.\nCapacity : The maximum capacity of the room.\nAfter completing the form, click Create to finish. The room is then created and the\nattendee is redirected to the conferencing page.", "headings": ["Configuration", "Create a room", "Meeting room form", "Publish meeting room", "Community rooms on the website", "Create a room as an attendee"], "doc_id": "bf98e0a239f486ce"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/events/attendee_experience/event_tracks.html", "title": "Event tracks", "module": "marketing", "section": "Event tracks", "text": "# Event tracks\n\nOdoo Events provides users the ability to create, schedule, and manage tracks , which are\ntalks, lectures, presentations, etc.\n\n## Configuration\n\nTo enable tracks in Odoo, navigate to Events app ⣠Configuration ⣠Settings ,\nand tick the checkbox beside the Schedule & Tracks setting.\nOnce the setting is selected, two additional configuration options appear beneath it:\n- Live Broadcast : Broadcast tracks online through a YouTube integration.\nLive Broadcast : Broadcast tracks online through a YouTube integration.\n- Event Gamification : Share quizzes with attendees after a track concludes.\nEvent Gamification : Share quizzes with attendees after a track concludes.\nOnce all desired settings have been enabled, click the Save button in the upper-left\ncorner of the Settings page.\n\n## Event tracks dashboard\n\nTo access, modify, and/or create tracks for an event, navigate to Events app , and\neither select an existing event from the Events dashboard or create a new one .\nOn the selected event form, click the Tracks smart button at the top to land on the Event Tracks page, which presents all the tracks (both scheduled and proposed) for the\nevent.\n\n### Views\n\nThe Event Tracks page can be displayed in six different views:\nBy default, the Event Tracks page opens in the (Kanban) view, providing users an at-a-glance overview of all tracks for the\nselected event.\nIn the default (Kanban) view, the tracks are categorized\ninto several modifiable stages: Proposal Confirmed , Announced , Published , Refused (collapsed), and Cancelled (collapsed).\nRecords displayed in the Kanban can be narrowed down using grouping and filter options.\nFor more information about using the Kanban view, see the Kanban documentation.\nThe (List) view displays a detailed list of all tracks for\nthe selected event in a centralized view. Each track is displayed on a line along with its Title , the speakerâs Name , Email , Phone , and\nthe trackâs Stage .\nRecords displayed in the List view can be narrowed down using grouping and filter options.\nFor more information about using the List view, see the List documentation.\nThe (Gantt) view displays all tracks as horizontal bars against\nan adjustable timeline, providing the user a chronological view of their tracksâ progress.\nRecords displayed in the List view can be narrowed down using grouping and filter options.\nFor more information about using the Gantt view, see the Gantt documentation.\nThe (Calendar) view displays all tracks for the selected event\nas clickable entries in a calendar view, providing users an interactive schedule by day, week,\nmonth, or year.\nRecords displayed in the Calendar view can be narrowed down using filter options.\nFor more information about using the Calendar view, see the Calendar documentation.\nThe (Graph) view allows users to visually compare\ntracks-related data for the selected event using multiple different charts.\nRecords displayed in the Graph view can be narrowed down using grouping and filter options.\nFor more information about using the Graph view, see the Graph documentation.\nThe (Activity) view displays a table of all scheduled\nactivities linked to tracks for the selected event.\nRecords displayed in the Activity view can be narrowed down using filter options.\nFor more information about using the Activity view, see the Activity documentation.\n\n#### Filter options\n\nThe Filters column in the search barâs drop-down menu filters track-related data by\nspecific criteria in any given view. Multiple filters can be selected at once.\nThe Filters column has the following options:\n- My Tracks : Filter by tracks with the Responsible user set to the current user\nprofile.\nMy Tracks : Filter by tracks with the Responsible user set to the current user\nprofile.\n- Published : Filter by published tracks.\nPublished : Filter by published tracks.\n- Always Wishlisted : Filter by tracks with the Always Wishlisted field enabled.\nAlways Wishlisted : Filter by tracks with the Always Wishlisted field enabled.\n- Track Date : Filter by a specific track date. Click the (down) arrow to reveal a list of month, quarter, and year options.\nTrack Date : Filter by a specific track date. Click the (down) arrow to reveal a list of month, quarter, and year options.\n- Archived : Filter by archived tracks.\nArchived : Filter by archived tracks.\n- Custom Filter⦠: Create and apply a custom filter .\nCustom Filter⦠: Create and apply a custom filter .\n\n#### Group By options\n\nThe Group By column in the search barâs drop-down menu groups track-related data by\nspecific criteria in the Kanban, List, Gantt, and Graph views only. Multiple grouping options can be\nselected at once.\nThe Group By column has the following options:\n- Responsible : Group data by the Responsible user specified across all tracks.\nResponsible : Group data by the Responsible user specified across all tracks.\n- Stage : Group data by stage.\nStage : Group data by stage.\n- Date : Group data by a specific date. Click the (down) arrow to reveal a list of day, week, month, quarter, and year options.\nDate : Group data by a specific date. Click the (down) arrow to reveal a list of day, week, month, quarter, and year options.\n- Event : Group data by event.\nEvent : Group data by event.\n- Location : Group data by location.\nLocation : Group data by location.\n- Custom Group⦠: Group data by a custom group .\nCustom Group⦠: Group data by a custom group .\n\n## Create event track\n\nNew event tracks are created from the Event Tracks page.\nTo create a new event track, click New in the upper-left corner to reveal a blank event\ntrack form.\nStart by giving this track a Title . This field is required .\nOptionally, upload an image for the track to be displayed on the trackâs webpage.\nNext, enter details for the track in the following fields:\n- Track Date : Specify the date of the track.\nTrack Date : Specify the date of the track.\n- Location : Specify the location of the track.\nLocation : Specify the location of the track.\n- Duration : Specify the duration of the track (in minutes).\nDuration : Specify the duration of the track (in minutes).\n- Always Wishlisted : Specify whether to automatically set the track as favorite for each\nregistered attendee.\nAlways Wishlisted : Specify whether to automatically set the track as favorite for each\nregistered attendee.\n- Responsible : Select the database user responsible for managing the track. By default,\nthis field is assigned to the user who initially created the track.\nResponsible : Select the database user responsible for managing the track. By default,\nthis field is assigned to the user who initially created the track.\n- Event : Select the trackâs associated event. By default, this field is already\npopulated with the event from the Event Tracks page.\nEvent : Select the trackâs associated event. By default, this field is already\npopulated with the event from the Event Tracks page.\n- Tags : Select one or multiple tags for the track to add as filters on the Talks webpage.\nTags : Select one or multiple tags for the track to add as filters on the Talks webpage.\n- Agenda Color : Select a color to represent the track on the Agenda webpage.\nAgenda Color : Select a color to represent the track on the Agenda webpage.\nTo access a complete list of locations for event tracks, which can be modified (and added to) at\nany time, navigate to Events app ⣠Configuration ⣠Track Locations .\n\n### Speaker tab\n\nThe Speaker tab on an event track form contains various fields to configure information\nabout the track host or speaker.\n\n#### Contact Details section\n\nIn the Contact Details section, click the Contact drop-down field to select\nan existing contact from the database as the main point of contact for the talk.\nIf this contact is not yet in the database, type in the name of the contact, and click Create to create and edit the contact form later, or click Create and\nedit⦠to be taken to that new contactâs contact form for immediate configuration.\nThe Contact Email and Contact Phone fields are greyed-out and populated with\nthe information found on the chosen contactâs form. These fields are not modifiable once the Contact field is selected.\n\n#### Speaker Bio section\n\nIn the Speaker Bio section, enter any information related to the specific speaker\nscheduled to conduct/host the track.\nIf the chosen contact in the Contact Details section is properly configured, the Name , Email , and Phone fields are automatically populated.\nOtherwise, manually enter the information.\nThis information appears on the front-end of the event website, on the specific track webpage,\nproviding more information about the speaker to the track attendees.\nOptionally, upload an image to appear alongside the speaker biography on the event website.\nThen, enter a Job Position for the designated speaker, followed by the Company Name associated with the speaker.\nIn the Biography field, proceed to enter a custom biography with any speaker-related\ninformation.\n\n### Description tab\n\nThe Description tab of an event track form contains a blank text field to enter any\nadditional information about the track. This information appears on the specific track page on the\nevent website.\n\n### Interactivity tab\n\nThe Interactivity tab of the track form provides users the option to display an\ninteractive button for additional attendee engagement.\nWhen the Magic Button checkbox is ticked, Odoo displays a call to action button to\nattendees on the sidebar of the track webpage while the track is taking place.\nWith that checkbox ticked, three more options appear below to configure the button:\n- Button Title : Enter a title to appear on the button for attendees.\nButton Title : Enter a title to appear on the button for attendees.\n- Button Target URL : Enter a URL that leads attendees to a specific page.\nButton Target URL : Enter a URL that leads attendees to a specific page.\n- Show Button : Enter how many minutes after Track start the button should\nappear.\nShow Button : Enter how many minutes after Track start the button should\nappear.\nThe magic button only appears if there is more than one published track.\n\n## Publish event track\n\nOnce all the desired configurations are complete on an event track form, publish the track on the\nevent website by clicking the Published stage in the upper-right corner.\nThe stage of a track can also be changed from the Event Tracks page, where the\ndesired track card can be dragged-and-dropped into the appropriate Kanban stage.\nAn event track can also be published by opening the desired event track form and clicking the Go to Website smart button. Then, toggle the Unpublished button at the top of the page to Published .\n\n## Additional track configurations\n\nThe Schedule & Tracks setting in the Events configuration page provides additional\nconfiguration options for users to enable live broadcasting and gamification for tracks.\n\n### Live broadcasting\n\nIf the Live Broadcast setting is enabled in the Events app settings, the option to\nadd a corresponding link in the YouTube Video Link field appears in the track form.\n\n### Event gamification\n\nIf the Event Gamification setting is enabled, an Add Quiz button appears on\nthe top-left of a track form, allowing the user to create a quiz for attendees to complete after the\ntrack ends.\n\n#### Track quiz form\n\nTo add a quiz to the event track, click the Add Quiz button. Doing so opens a form to\nconfigure the quiz.\nStart by entering a title for the quiz in the blank field at the top of the page.\nIf participants are allowed to take the quiz multiple times, tick the checkbox beside Allow multiple tries .\nThe Event and Event Track fields are automatically populated with the\ncorresponding event and track. These fields are non-modifiable.\nTo add questions to the quiz, click Add a line beneath the Question column.\nDoing so reveals a Create Questions pop-up window.\nAll track quiz questions are multiple choice.\nFrom the pop-up window, enter the question in the blank field at the top. Then, click Add\na line to add an answer option.\nOptionally, fill in the following fields:\n- Correct : Designate whether the option is the correct response.\nCorrect : Designate whether the option is the correct response.\n- Points : Specify a point value for the answer option.\nPoints : Specify a point value for the answer option.\n- Extra Comment : Add any additional comments that should accompany the answer option.\nExtra Comment : Add any additional comments that should accompany the answer option.\nOnce all desired answer options are completed, click Save & Close to save the question,\nclose the pop-up window, and return to the track quiz form. Or, click Save & New to save\nthis question and instantly start creating another question on a new Create Questions pop-up form.\n- Create events\n- Talks, proposals, and agenda\nTalks, proposals, and agenda", "headings": ["Configuration", "Event tracks dashboard", "Views", "Create event track", "Speaker tab", "Description tab", "Interactivity tab", "Publish event track", "Additional track configurations", "Live broadcasting", "Event gamification"], "doc_id": "1cb6fa58aaa34f87"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/events/attendee_experience/track_manage_talks.html", "title": "Talks, proposals, and agenda", "module": "marketing", "section": "Talks, proposals, and agenda", "text": "# Talks, proposals, and agenda\n\nWith Odoo Events , users can utilize a fully-integrated event website, where attendees can quickly\naccess various tracks (talks, presentations, etc.), view entire agendas, and propose talks for the\nevent.\n\n## Event website\n\nTo access an event website, navigate to the specific event form in the Odoo Events app, and click\nthe Go to Website smart button. Or, while on the Odoo-built website for the company,\nclick the Events header option, and select the desired event to view that eventâs\nwebsite.\nOn the event website, there is an event-specific subheader menu with different options to choose\nfrom.\nWith the Schedule & Tracks setting enabled in the Odoo Events app, the following links are\nautomatically added to the subheader menu, located on the event website: Talks , Talk Proposals , and Agenda .\nTo enable the Schedule & Tracks setting, navigate to Events app â£\nConfiguration ⣠Settings , tick the checkbox beside Schedule & Tracks , and click Save .\n\n### Talks page\n\nThe Talks link takes the attendee to a page filled with all the planned tracks for the\nevent.\nAt the top of Talks page, there are drop-down filter menus beside a Search\na talk⦠search bar.\nThe first drop-down filter menu (with the starting title: Favorites ) is the only\ndrop-down filter menu that appears by default. When clicked, the resulting menu presents two\noptions: Favorites and All Talks .\nSelecting Favorites shows only the tracks that have been favorited by the attendee.\nIf no tracks have been favorited, and the Favorites filter is selected, Odoo presents\nall the event tracks.\nSelecting All Talks shows all the tracks, regardless if they have been favorited or\nnot.\nThe other drop-down filter menus that appear on this page are related to any configured tags (and\ntag categories) created for event tracks in the backend.\nTo add tags and tag categories to track forms, open a desired event track form, and start typing\na new tag in the Tags field. Then, click Create and edit⦠from the\nresulting drop-down menu.\nDoing so reveals a Create Tags pop-up form.\nFrom here, users see the recently added tag in the Tag Name field. Beneath that,\nthere is an option to add a specific Color Index to the tag for added organization.\nLastly, there is the Category field, where users can either select a pre-existing\ncategory for this new tag, or create a new one.\nAll options in the Category field for tags appear as their own drop-down filter menu\non the Talks page, located on the event website.\nBeneath the drop-down filter menus at the top of the Talks page, there is a list of\nplanned tracks for the specific event, organized by day.\nIf an attendee wishes to favorite a track, they can click the (empty\nbell) icon, located to the right of the track title. Attendees will know a track has been favorited\nwhen they notice the icon has been changed to (filled bell) icon.\nFavoriting a track this way places it on the list of Favorites , which is accessible from\nthe default drop-down filter menu, located at the top of the Talks page.\n\n### Talk Proposals page\n\nThe Talk Proposals link takes attendees to a page on the event website, wherein they can\nformerly submit a proposal for a talk ( track ) for the event, via a custom online form.\nIn addition to the form, an introduction to the page, along with any other pertinent information\nrelated to the types of talks the event will feature can be added, if needed.\nThe talk proposal form can be modified in a number of different ways, via the web builder tools,\naccessible by clicking Edit while on the specific page.\nThen, proceed to edit any of the default fields, or add new forms with the Form building\nblock (located in the Blocks section of the web builder tools sidebar).\nOnce all the necessary information is entered into the form, the attendees just need to click the Submit Proposal button.\nThen, that talk, and all the information entered on the form, can be accessed on the Event Tracks page for that specific event in the Proposal stage, which is\naccessible via the Tracks smart button on the event form.\nAt that point, an internal user can review the proposed talk, and choose to accept or deny the\nproposal.\nIf accepted, the internal user can then move the track to the next appropriate stage in the Kanban\npipeline on the Event Tracks page for the event. Then, they can open that track form,\nand click the Go to Website smart button to reveal that trackâs page on the event\nwebsite.\nFrom there, they can toggle the Unpublished switch in the header to Published , which allows all event attendees to view and access the talk.\n\n### Agenda page\n\nThe Agenda link takes attendees to a page on the event website, showcasing an event\ncalendar, depicting when (and where) events are taking place for that specific event.\nClicking any track on the calendar takes the attendee to that specific trackâs detail page on the\nevent website.\nIf an attendee wishes to favorite a track, they can click the (empty\nbell) icon, located to the right of the track title. Attendees will know a track has been favorited\nwhen they notice the icon has been changed to (filled bell) icon.", "headings": ["Event website", "Talks page", "Talk Proposals page", "Agenda page"], "doc_id": "0496259f0b9bf953"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/events/event_reporting/attendees_report.html", "title": "Attendees report", "module": "marketing", "section": "Attendees report", "text": "# Attendees report\n\nThe Odoo Events application creates custom reports based on event-related data and analytics.\nThe following documentation focuses on reporting options related to event Attendees .\n\n## Attendees reporting page\n\nTo access the Attendees reporting page, navigate to Events app ⣠Reporting â£\nAttendees .\n\n### Reporting views\n\nOnce opened, the Attendees page offers five different view options.\nBy default, the Attendees page opens in the (Graph) view, allowing users to visually compare attendance data across events.\nThe graph view provides three available charts to display different insights about event\nattendance:\n- (Bar) / (Line) : Compare\nattendance trends across events.\n(Bar) / (Line) : Compare\nattendance trends across events.\n- (Pie) : View attendance distribution across events.\n(Pie) : View attendance distribution across events.\nFor more information about customizing the graph view, see the Reporting documentation.\nThe (pivot) view displays a pivot table, allowing users to\nbreak down subsets of attendee-related data into specific categories or groups for more\nprecise analysis.\nFor example, using the Group By options, users can\norganize an eventâs total registration count (subset) by its count for each ticket type\n(group) to draw more granular insights about each ticket typeâs popularity across events.\nFor more information about using the pivot view, see the Reporting documentation.\nThe (Kanban) view displays a Kanban, providing users with\nan at-a-glance overview of all registered attendees across events along with their ticket\ntype and registration status.\nBy applying specific Group By options, users can\ngroup all attendees by specific criteria (e.g., registration status or ticket type) into\nseparate, vertical stages to get a quick overview of their attendeesâ records.\nIn Attendees reporting , only attendees without a specified ticket type can be\ndragged between stages.\nFor more information about using the Kanban view, see the Kanban documentation.\nThe (list) view displays a list of all registered attendees\nalong with additional information such as contact information and registration status.\nThe list view provides users the option to view detailed records of their attendees in a\ncentralized view. By applying the Group By options,\nusers can then collapse long lists of records into smaller groups by specific criteria such\nas event or ticket type.\nFor more information about using the List view, see the List documentation.\nThe (cohort) view displays the percentage of event\nregistrations per time interval over a certain time period.\nThe cohort view allows users to view broader registration patterns over a customizable time\nframe. For example, users can track the change in percentage of registrations over days,\nweeks, months, or years to identify trends at specific moments in time.\nFor more information about using the Cohort view, see the Cohort documentation.\nThe option to select a measure from the Measures drop-down menu is available only on the Kanban, pivot, and cohort views. Additionally, only the Count option is available as a measure for the Attendees reporting page.\n\n### Filter options\n\nThe Filters column in the search barâs drop-down menu sorts attendee data by specific\ncriteria in any given view. Multiple filters can be selected at once.\nThe Filters column has the following options:\n- Ongoing Events : Filter by ongoing events.\nOngoing Events : Filter by ongoing events.\n- Taken : Filter by events with sold tickets.\nTaken : Filter by events with sold tickets.\n- Unconfirmed : Filter by unconfirmed attendees.\nUnconfirmed : Filter by unconfirmed attendees.\n- Registered : Filter by registered attendees.\nRegistered : Filter by registered attendees.\n- Registration Date : Filter by a specific registration date. Click the (down) arrow to reveal a list of month, quarter, and year\noptions.\nRegistration Date : Filter by a specific registration date. Click the (down) arrow to reveal a list of month, quarter, and year\noptions.\n- Event Start Date : Filter by a specific event start date. Click the (down) arrow to reveal a list of month, quarter, and year\noptions.\nEvent Start Date : Filter by a specific event start date. Click the (down) arrow to reveal a list of month, quarter, and year\noptions.\n- Attended Date : Filter by a specific attendance date. Click the (down) arrow to reveal a list of month, quarter, and year options.\nAttended Date : Filter by a specific attendance date. Click the (down) arrow to reveal a list of month, quarter, and year options.\n- Last 30 days : Filter by the last 30 days of attendee data.\nLast 30 days : Filter by the last 30 days of attendee data.\n- Archived : Filter by archived attendee records.\nArchived : Filter by archived attendee records.\n- Add Custom Filter : Create a custom filter to analyze\nevent-related attendee data.\nAdd Custom Filter : Create a custom filter to analyze\nevent-related attendee data.\n\n### Group By options\n\nThe Group By column in the search barâs drop-down menu sorts attendee data by specific\ncriteria in any given view. Multiple grouping criteria can be selected at once.\nGrouping options are not available in the Cohort view.\nThe Group By column has the following options:\n- Partner : Group data based on the partner of attendeesâ registered events.\nPartner : Group data based on the partner of attendeesâ registered events.\n- Event : Group data based on attendeesâ registered events.\nEvent : Group data based on attendeesâ registered events.\n- Ticket Type : Group data based on the type of event ticket purchased by attendees.\nTicket Type : Group data based on the type of event ticket purchased by attendees.\n- Status : Group data based on attendeesâ registration status.\nStatus : Group data based on attendeesâ registration status.\n- Registration Date : Group data based on a specific registration date. Click the (down) arrow to reveal a list of day, week, month, quarter, and\nyear options.\nRegistration Date : Group data based on a specific registration date. Click the (down) arrow to reveal a list of day, week, month, quarter, and\nyear options.\n- Campaign : Group data based on marketing campaigns .\nCampaign : Group data based on marketing campaigns .\n- Add Custom Group : Create a custom group to organize data by\nadditional fields. Click the (down) arrow to reveal a drop-down\nof grouping options. Multiple selections can be made.\nAdd Custom Group : Create a custom group to organize data by\nadditional fields. Click the (down) arrow to reveal a drop-down\nof grouping options. Multiple selections can be made.\nA local production company recently organized a music festival and wants to measure the\ndistribution of ticket registrations across concerts. Using the event attendance report, the\nproduction company created a graph showing the count of ticket registrations in the last 30 days,\ngrouped by individual events and attendeesâ ticket types.\nTo create this report, use the default graph view, with the (Bar) and (Stacked) options selected. Remove the\ndefault filters in the search bar.\nThen, click the (down) arrow to the right of the search bar to\nopen the drop-down menu of filter and grouping options.\nSelect the Last 30 days filter from the Filters column to filter the\ndata.\nNext, select the Event and Ticket Type options from the Group\nBy column in that sequential order . This groups the data by event, then by ticket type.\nThe order in which the options are selected in the Group By columns directly\naffects how the data is grouped and displayed in the report.", "headings": ["Attendees reporting page", "Reporting views", "Filter options", "Group By options"], "doc_id": "8070d905b8ad6cea"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/events/event_reporting/revenues_report.html", "title": "Revenues report", "module": "marketing", "section": "Revenues report", "text": "# Revenues report\n\nThe Odoo Events application creates custom reports, based on event-related data and analytics.\nThese reports can either be focused on Attendees or Revenues .\nThe following documentation focuses on the reporting options related to event Revenues .\n\n## Revenues reporting page\n\nTo access the Attendees reporting page, navigate to Events app ⣠Reporting â£\nRevenues .\nBy default, the Revenues reporting page appears as a graph (a (Line Chart) with (Stacked) data). The default filters, Non-free tickets and Event Start Date: (current year) , are present in the\nsearch bar.\nTo learn more about the various graph views (and graph view options), refer to the Graph\nviews documentation.\nThe Revenues reporting page can also be viewed as a pivot table , by clicking the (Pivot) icon in the\nupper-right corner.\n\n### Measures\n\nChoosing specific Measures is a quick way to customize\nreporting pages.\nRegardless of the chosen view, the measures on the Revenues reporting page are as\nfollows: Revenues , Untaxed Revenues , and Count .\nIn the default graph view of the Revenues reporting page, only the Revenues option is set in the Measures drop-down menu.\nIn graph view, only one of the Measures can be selected at a time.\nWhen the pivot option is selected, all Measures options are selected, by default.\n- Revenues : shows the revenues generated from events.\nRevenues : shows the revenues generated from events.\n- Untaxed Revenues : shows the untaxed revenues generated from events.\nUntaxed Revenues : shows the untaxed revenues generated from events.\n- Count : shows the total amount of registrants who attended events.\nCount : shows the total amount of registrants who attended events.\n\n### Filters and grouping options\n\nTo reveal a drop-down menu of filter and grouping options to create custom reports, click the (down arrow) to the right of the search bar.\nDoing so opens a drop-down mega menu of options organized into columns: Filters , Group By , and Favorites .\nIf a time-related option has been selected from the Filters column (e.g. the default Event Start Date: (year) filter), a Comparison column appears, with\ncomparison options for the corresponding time-related filter option selected.\nOnly one selection can be made from the Comparison column at a time.\nSearch, filter, and group records\n\n#### Filter options\n\nIn the Filters column of the drop-down mega menu, there are various event-related\noptions that can be utilized to create custom reports, based on a number of specific criteria.\nMultiple options in the Filters column can be selected at once.\nThe Filters column has the following options:\n- Non-free tickets : event tickets/registrations that were not free.\nNon-free tickets : event tickets/registrations that were not free.\n- Free : event tickets/registrations that were free.\nFree : event tickets/registrations that were free.\n- Pending payment : event tickets/registrations that were purchased, but still have\npayment pending.\nPending payment : event tickets/registrations that were purchased, but still have\npayment pending.\n- Sold : event tickets/registrations that have been successfully sold (and paid for).\nSold : event tickets/registrations that have been successfully sold (and paid for).\n- Registration Date : Click the (down arrow) icon to\nreveal a list of month, quarter, and year options. Select any number of these options to view a\nspecific periods of time and see how many registrations happened during that time.\nRegistration Date : Click the (down arrow) icon to\nreveal a list of month, quarter, and year options. Select any number of these options to view a\nspecific periods of time and see how many registrations happened during that time.\n- Upcoming/Running : include revenue-related information for events that are either\ncurrently running or are going to happen in the future.\nUpcoming/Running : include revenue-related information for events that are either\ncurrently running or are going to happen in the future.\n- Past Events : include revenue-related information for events that have already taken\nplace.\nPast Events : include revenue-related information for events that have already taken\nplace.\n- Event Start Date : Click the (down arrow) icon to\nreveal a list of month, quarter, and year options. Select any number of these options to designate\nevent start dates to use as filters for revenue-related event data.\nEvent Start Date : Click the (down arrow) icon to\nreveal a list of month, quarter, and year options. Select any number of these options to designate\nevent start dates to use as filters for revenue-related event data.\n- Event End Date : Click the (down arrow) icon to\nreveal a list of month, quarter, and year options. Select any number of these options to designate\nevent end dates to use as filters for revenue-related event data.\nEvent End Date : Click the (down arrow) icon to\nreveal a list of month, quarter, and year options. Select any number of these options to designate\nevent end dates to use as filters for revenue-related event data.\n- Published Events : Select this option to show revenue-related data for published\nevents.\nPublished Events : Select this option to show revenue-related data for published\nevents.\n- Add Custom Filter : Create a custom filter to analyze event-related revenue data. To\nlearn more, refer to the documentation on custom filters .\nAdd Custom Filter : Create a custom filter to analyze event-related revenue data. To\nlearn more, refer to the documentation on custom filters .\n\n#### Group By options\n\nIn the Group By column of the drop-down mega menu, there are various event-related\noptions to create custom groupings of data.\nMultiple Group By options can be selected at once.\nThe Group By column has the following options:\n- Event Type : Group data based on the type of event.\nEvent Type : Group data based on the type of event.\n- Event : Organize data into individual groups, separated by events.\nEvent : Organize data into individual groups, separated by events.\n- Product : Group data based on the event registration product.\nProduct : Group data based on the event registration product.\n- Ticket : Group data based on the type of event ticket purchased by attendees.\nTicket : Group data based on the type of event ticket purchased by attendees.\n- Registration Status : Group data based on the status of registrations.\nRegistration Status : Group data based on the status of registrations.\n- Sale Order Status : Group data based on the status of event-related sales orders.\nSale Order Status : Group data based on the status of event-related sales orders.\n- Customer : Group data based on customer records.\nCustomer : Group data based on customer records.\n- Add Custom Group : Click the (down arrow) icon to\nreveal a drop-down of grouping options. To select one, click on the desired option, and Odoo adds\nit to the Group By column. Multiple selections can be made.\nAdd Custom Group : Click the (down arrow) icon to\nreveal a drop-down of grouping options. To select one, click on the desired option, and Odoo adds\nit to the Group By column. Multiple selections can be made.\n\n## Sample report: event ticket analysis (graph)\n\nThe following is an example of how various filters and grouping options can create a useful analytic\ngraph report related to event revenues. In this case, the configurations present data about sold or\nfree tickets to published events, with the metrics separated by ticket type and event.\nTo create such a report, navigate to Events app ⣠Reporting ⣠Revenues . Stay in\nthe default graph view, but remove the default filters from the search bar.\nThen, click the (down arrow) to the right of the search bar, to\nreveal the drop-down mega menu of filter and grouping options.\nFrom here, select Free and Sold from the Filters column.\nThen, since it is desired to only view data related to already published events, select the Published Events option in the Filters column, as well.\nNext, in the Group By column, select the Event and Ticket options, in that sequential order . Doing so first groups the data by event, then by ticket\ntype, which provides a more useful array of data to analyze.\nThe order in which the options are selected in the Group By column directly affects\nhow the data is presented on the report.\nFrom there, additional configurations can be added for more detailed data, if desired.\nIf no additional filters or groupings are added, Odoo presents a graphical representation of data\nrelated to all free or sold tickets for published events , grouped by event , and organized by ticket type.\n\n## Sample report: event type analysis (pivot table)\n\nThe following is an example of how various filters and grouping options can create a useful analytic\npivot table report related to event revenues. In this case, the configurations present data about\nhow much revenue different event types have generated, in order to gauge which events are the most\nprofitable.\nFirst, navigate to Events app ⣠Reporting ⣠Revenues , and switch to the pivot\ntable view, by clicking the (Pivot) icon in the upper-right\ncorner.\nKeep the default filters ( Non-free tickets and Event Start Date: (year) ) in\nthe search bar.\nNext, open the Measures drop-down menu, and deselect the option for Count ,\nbecause this report is only going to focus on revenues.\nThen, click Total above the column titles, and select Event Type from the resulting drop-down menu.\nWith these configurations in place, all the revenues generated from the events (and their\ncorresponding registrations) are displayed, organized by the event type (presented as expandable\ncolumns).", "headings": ["Revenues reporting page", "Measures", "Filters and grouping options", "Sample report: event ticket analysis (graph)", "Sample report: event type analysis (pivot table)"], "doc_id": "cd0cda3622ccbaf8"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/events/event_setup/create_events.html", "title": "Create events", "module": "marketing", "section": "Create events", "text": "# Create events\n\nWith the Events application, organizers can create and configure in-person or online events in\nOdoo. Each new event contains a number of options to customize specific logistics such as ticket\nsales, registration desk, booths, tracks, sponsors, rooms, and more.\nEvents can be manually created from scratch or built from preconfigured templates. Once launched,\nthe Events app integrates with other apps for enhanced functionalities, including promoting\nevents, selling registration tickets to attendees, and generating leads using customizable rules.\n\n## Dashboard\n\nTo create an event, navigate to the Events app to land on the dashboard. By default, the Events dashboard uses the (Kanban) view, which\nshowcases all events in the database in their respective pipeline stages. Other views can be set\nusing the buttons in the upper-right corner.\nEach event card displays the name of the event, its scheduled date, location, number of expected Attendees , any scheduled activities related to the event, and the responsible event\nmanager.\nThe default stages in the Kanban view are New , Booked , Announced , Ended , and Cancelled . The cards can be\ndragged-and-dropped into any stage in the pipeline.\nThe Ended and Cancelled stages are folded by default and located to the\nright of the other stages.\nTo add a new stage, click the Add Stage button on the right, enter a\nname for the stage, then click Add .\n\n## Add a new event\n\nEvents can be created by going to the Events app, on the (Kanban) , (List) , or (Gantt) views. Then, click the New button in the upper-left corner of the\ndashboard to open up a new event form.\nAt the top of the event form are a series of smart buttons related to various event metrics. These\nauto-populate with data once attendees begin to register, when booths and sponsors sign on for the\nevent, when the event takes place, and so on. These smart buttons can be clicked to navigate to the\neventâs related pages to modify any details and/or perform any desired actions.\nBeneath the smart buttons is the event form, which contains various fields and clickable tabs to\nconfigure the necessary details of the event.\nTo start, enter some basic information about the event in the following fields:\n- Event Name : The title of the event. This field is required .\nEvent Name : The title of the event. This field is required .\n- Date : The scheduled date or date range of the event (expressed in the local timezone).\nThis field is auto-populated but modifiable and is required .\nDate : The scheduled date or date range of the event (expressed in the local timezone).\nThis field is auto-populated but modifiable and is required .\n- Display Timezone : The timezone in which the event date is displayed on the website.\nThis field is auto-populated but modifiable and is required .\nDisplay Timezone : The timezone in which the event date is displayed on the website.\nThis field is auto-populated but modifiable and is required .\n- Language : The chosen language for all event communications.\nLanguage : The chosen language for all event communications.\nTo the right of the entered Event Name , there is a language tooltip, represented by\nan abbreviated language indicator (e.g., EN ). When clicked, a Translate name pop-up window appears, displaying various preconfigured language translation options available in\nthe database.\n`EN`\nAlternatively, to populate the event form from an event template, select an option in the Template drop-down menu. To learn more, see the Event templates documentation.\nAdditionally, add any corresponding tags (e.g., Online , Conference ) for the event in the Tags field. Multiple tags can be added per event.\n`Online`\n`Conference`\nTags can be displayed on events that are listed on the website by enabling the Show on\nWebsite checkbox from Events app ⣠Configuration ⣠Event Tag Categories .\nContinue by entering information such as points of contact and venue location in the following\nfields:\n- Organizer : The organizer of the event (a company, contact, or employee).\nOrganizer : The organizer of the event (a company, contact, or employee).\n- Responsible : The specific user responsible for managing the event in the database.\nResponsible : The specific user responsible for managing the event in the database.\n- Company : The specific company in the database to which the event is related. This\nfield only appears if working in a multi-company environment. This field is auto-populated but\nmodifiable. It is required .\nCompany : The specific company in the database to which the event is related. This\nfield only appears if working in a multi-company environment. This field is auto-populated but\nmodifiable. It is required .\n- Website : The specific website in the database on which the event is published. If this\nfield is left blank, the event can be published on all websites in the database. To learn\nmore, refer to the Multiple websites documentation.\nWebsite : The specific website in the database on which the event is published. If this\nfield is left blank, the event can be published on all websites in the database. To learn\nmore, refer to the Multiple websites documentation.\n- Venue : The event venue location. This field pulls information from the Contacts application. Alternatively, the information can be entered manually.\nVenue : The event venue location. This field pulls information from the Contacts application. Alternatively, the information can be entered manually.\n- Exhibition Map : The image of the event venue map. Click the Upload your\nfile button to upload an image of the event venue map.\nExhibition Map : The image of the event venue map. Click the Upload your\nfile button to upload an image of the event venue map.\nTo limit the number of registrations for the event, check the Limit Registrations and\nenter the maximum number of attendees allowed in the resulting field.\nOptionally, to create event badges for attendees, fill in the following fields:\n- Badge Dimension : The desired paper format dimension for the badges. The options are A4 foldable , A6 , or 4 per sheet .\nBadge Dimension : The desired paper format dimension for the badges. The options are A4 foldable , A6 , or 4 per sheet .\n- Badge Background : The custom background image for the badges. Click the Upload your file button to upload an image.\nBadge Background : The custom background image for the badges. Click the Upload your file button to upload an image.\n\n## Additional event configurations\n\nAfter filling out the fields on the event form, move on to the four tabs at the bottom for further\ncustomization.\n\n### Tickets tab\n\nIn the Tickets tab of the event form, create custom registration tickets and ticket\ntiers for events.\nTo create a ticket, click Add a line in the Tickets tab. In the Product field, either select the preconfigured Event Registration product,\nor create a new one by typing in the name of the new event registration product and then selecting\neither Create or Create and edit⦠from the resulting drop-down menu. Then,\nenter a name for the ticket (e.g. Basic Ticket or VIP ) in the Name field.\n`BasicTicket`\n`VIP`\nIn order for an event registration product to be selectable in the Tickets tab, the\nevent registration Product Type must be set to Service and the Create on Order field must be set to Event Registration .\nExisting event registration products can be modified directly from this field as well by clicking\nthe (right arrow) icon located beside the event registration\nproduct. Doing so reveals that productâs form. If the Inventory application is installed,\nadditional choices are available to customize for the product.\nNext, set the registration cost of the ticket in the Price field.\nThe Sales Price defined on the event registration productâs product form sets the\ndefault cost of a ticket. Modifying the Price of a ticket in the Tickets tab sets a new registration cost of the ticket for that event.\nNext, enter the Sales Start and Sales End dates in their respective fields.\nTo do that, click into the blank field to reveal a calendar pop-over. From there, select the desired\ndate and time, then click Apply .\nThen, if desired, designate a Maximum amount of that specific ticket that can be sold.\nThe Registration column populates with the number of tickets that are sold.\nTo delete any tickets from the Tickets tab, click the (trash can) icon at the right in the corresponding line for the ticket that should be\ndeleted.\nTo add an optional Description column to the Tickets tab, click the (additional options) drop-down menu, located to the\nfar-right of the column titles.\nThen, tick the checkbox beside Description from the resulting drop-down menu.\nWhen added, the option to add brief descriptions for each event ticket appears, which can be used\nto inform attendees of any perks or amenities that may coincide with specific ticket purchases.\n\n### Communication tab\n\nIn the Communication tab of an event form, create various marketing communications that\ncan be scheduled to be sent at specific intervals leading up to and following the event.\nBy default, Odoo provides three separate preconfigured communications on every new event form.\nOne is an email sent after each registration to confirm the purchase with the attendee. The other\ntwo are email event reminders that are scheduled to be sent at different time intervals leading\nup to the event to remind the recipient of the upcoming event.\nTo add a communication in the Communication tab, click Add a line . Then,\nselect the desired type of communication from the first drop-down menu on the Template field. The options are: Mail , SMS , Social Post , or WhatsApp .\nThe Social Post option only appears if the Social Marketing application is\ninstalled. The WhatsApp option only appears if the WhatsApp module is installed.\nWhatsApp templates cannot be edited during active\nconfiguration. A separate approval from Meta is required.\nThen, select an existing email template from the second drop-down menu on the Template field.\nNext, define the Interval and Unit from their respective drop-down fields,\nletting Odoo know when the communication should be sent. The Unit options are: Immediately , Hours , Days , Weeks , and Months .\nThen, select an option from the Trigger drop-down menu. The options are: After each registration , Before the event , and After the event .\nThe Sent column populates with the number of sent communications. Next to the number are\ndifferent icons that appear, depending on the status of that particular communication. The Running status is represented by a (three gears) icon. The Sent status is\nrepresented by a (checkmark) icon. And, the Scheduled status is\nrepresented by an (hourglass) icon.\nAny number of communications can be added in the Communication tab of an event form.\nTo send a confirmation email an hour after an attendee registers for an event, configure the\nfollowing communication:\n- Interval : 1\n`1`\n- Unit : Hours\n- Trigger : After each registration\nTrigger : After each registration\nExisting email templates can be modified directly from the Template drop-down menu,\nif necessary, by clicking the (Internal link) icon next to the\ntemplate name. Doing so reveals a separate page where users can edit the Content , Email Configuration , and Settings of that particular email template.\nTo view and manage all email templates, activate Developer mode (debug mode) and navigate to Settings ⣠Technical ⣠Email: Email Templates . Modify with caution as email\ntemplates effect all communications where the template is used.\n\n### Questions tab\n\nIn the Questions tab of an event form, users can create brief questionnaires for\nregistrants to interact with, and respond to, after they register for the event.\nThese questions can be focused on gathering basic information about the attendee, learning about\ntheir preferences, expectations, and other things of that nature. This information can also be used\nto create more detailed reporting metrics, in addition to being utilized to create specific lead\ngeneration rules.\nBy default, Odoo provides three questions in the Questions tab for every event form.\nThe default questions require one or more registrants to provide their Name , Email , and an optional Phone number as well.\nThe information gathered from the Questions tab can be found on the Attendees dashboard, accessible via the Attendees smart\nbutton. Odoo populates individual records that contain basic information about the registrants,\nas well as their preferences.\nTo add a question in the Questions tab, click Add a line . Doing so reveals a Create Question pop-up window. From here, users can create and configure their question.\nFirst, enter the question in the field at the top of the form. Then, decide if the question should\nrequire a Mandatory Answer and/or if Odoo should Ask once per order , by\nticking their respective boxes, if desired.\nIf the Ask once per order checkbox is ticked, the question will only be asked once, and\nits value is applied to every attendee in the order (if multiple tickets are purchased at once). If\nthe checkbox is not ticked for this setting, Odoo presents the question for every attendee that\nis connected to that registration.\nNext, select a Question Type option:\n- Selection : Provide answer options to the question for registrants to choose from.\nSelectable answer options can be managed in the Answers column at the bottom of the\npop-up window.\nSelection : Provide answer options to the question for registrants to choose from.\nSelectable answer options can be managed in the Answers column at the bottom of the\npop-up window.\n- Text Input : Lets the users enter a custom response to the question in a text field.\nText Input : Lets the users enter a custom response to the question in a text field.\n- Name : Provides registrants with a field for them to enter their name.\nName : Provides registrants with a field for them to enter their name.\n- Email : Provides registrants with a field for them to enter their email address.\nEmail : Provides registrants with a field for them to enter their email address.\n- Phone : Provides registrants with a field for them to enter their phone number.\nPhone : Provides registrants with a field for them to enter their phone number.\n- Company : Provides registrants with a field for them to enter a company they are\nassociated with.\nCompany : Provides registrants with a field for them to enter a company they are\nassociated with.\nOnce all the desired configurations have been entered, either click Save & Close to save\nthe question, and return to the Questions tab on the event form, or click Save & New to save the question and immediately create a new question on a new Create Question pop-up window.\nAs questions are added to the Questions tab, the informative columns showcase the\nconfigurations of each question.\nThe informative columns are the following:\n- Mandatory\n- Once per Order\n- Answers (if applicable)\nAnswers (if applicable)\nFor Selection and Text Input types, a Stats button appears on the right side of the question line. When clicked, Odoo reveals a separate page,\nshowcasing the response metrics to that specific question.\nTo delete any question from the Questions tab, click the (trash can) icon on the corresponding question line.\nAny number of questions can be added in the Questions tab of an event form.\n\n### Notes tab\n\nIn the Notes tab of an event form, users can leave detailed internal notes and/or\nevent-related instructions/information for attendees.\nIn the Note field of the Notes tab, users can leave internal notes for other\nevent employees, like âto-doâ lists, contact information, instructions, and so on.\nIn the Ticket Instructions field of the Notes tab, users can leave specific\ninstructions for people attending the event that appear on the attendees ticket.\n\n## Publish events\n\nOnce all configurations and modifications are complete on the event form, it is time to publish the\nevent on the website. Doing so makes the event visible to website visitors, and makes it possible\nfor people to register for the event.\nTo publish an event after all the customizations are complete, click the Go to Website smart button at the top of the event form. Doing so reveals the eventâs\nweb page, which can be customized like any other web page on the site, via the Edit button.\nTo learn more about website design functionality and options, consult the Building block documentation.\nOnce the event website is ready to be shared, click the red Unpublished toggle switch in\nthe header menu, changing it to a green Published switch. At this point, the event web\npage is published and viewable/accessible by all website visitors.\n\n## Send event invites\n\nTo send event invites to potential attendees, navigate to the desired event form, via Events app ⣠Events , and click into the desired event. Following this, click the Invite button in the upper-left corner of the event form.\nDoing so reveals a blank email form to fill out, as desired. To learn more about how to create and\ncustomize emails like this, refer to the Create an email documentation.\nProceed to create and customize an email message to send as an invite to potential attendees.\nRemember to include a link to the registration page on the event website, allowing interested\nrecipients to register.\nSending emails from Odoo is subject to a daily limit, which, by default, is 200. To learn more\nabout daily limits, visit the Daily limit reached documentation.\nTalks, proposals, and agenda", "headings": ["Dashboard", "Add a new event", "Additional event configurations", "Tickets tab", "Communication tab", "Questions tab", "Notes tab", "Publish events", "Send event invites"], "doc_id": "1aeb2f891cc6db3e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/events/event_setup/event_templates.html", "title": "Event templates", "module": "marketing", "section": "Event templates", "text": "# Event templates\n\nOdoo Events app allows users to create and configure reusable event templates.\nWith templates, users can automatically configure similar events without needing to recreate them\nfrom scratch.\n\n## Event templates dashboard\n\nTo view and manage event templates, navigate to Events app ⣠Configuration â£\nEvent Templates .\nDrag-and-drop the event templates using the (draggable) icon to\nchange the order in which they appear in the Template drop-down field on an event form.\n\n## Create event template\n\nTo create a new event template, click New in the upper-left corner of the dashboard.\nOn the form, provide the template with a name in the Event Template field.\nBeneath the field, the user may customize navigation options on the event website by selecting one\nor more of the following checkboxes:\n- Website Submenu : Display a submenu on the event website. When selected, every other\ncheckbox in this series is automatically selected. Deselect any of the checkbox options as\ndesired.\nWebsite Submenu : Display a submenu on the event website. When selected, every other\ncheckbox in this series is automatically selected. Deselect any of the checkbox options as\ndesired.\n- Tracks Menu Item : Display a submenu item that navigates to a page of all planned\ntracks for the event.\nTracks Menu Item : Display a submenu item that navigates to a page of all planned\ntracks for the event.\n- Track Proposals Menu Item : Display a submenu item that navigates to a track proposal form.\nTrack Proposals Menu Item : Display a submenu item that navigates to a track proposal form.\n- Booth Menu Item : Display a submenu item that navigates to the Booths purchasing page.\nBooth Menu Item : Display a submenu item that navigates to the Booths purchasing page.\n- Exhibitors Menu Item : Display a submenu item that navigates to a page of the eventâs\nexhibitors.\nExhibitors Menu Item : Display a submenu item that navigates to a page of the eventâs\nexhibitors.\n- Community : Display a submenu item allowing attendees to access preconfigured virtual\ncommunity rooms to meet with other attendees. When this checkbox is ticked, the Allow\nRoom Creation feature becomes available.\nCommunity : Display a submenu item allowing attendees to access preconfigured virtual\ncommunity rooms to meet with other attendees. When this checkbox is ticked, the Allow\nRoom Creation feature becomes available.\n- Allow Room Creation : If the Community option is enabled, allow visitors to\ncreate their own community rooms.\nAllow Room Creation : If the Community option is enabled, allow visitors to\ncreate their own community rooms.\n- Register Button : Display a button taking visitors to the event-specific registration\npage.\nRegister Button : Display a button taking visitors to the event-specific registration\npage.\nOnce the desired checkboxes have been ticked, select an appropriate Timezone for the\nevent from the available drop-down menu.\nOptionally, add any desired Tags to this event template for organizational purposes.\nTo limit the number of event attendees, click the Limit Registrations checkbox and enter\nthe maximum number of Attendees allowed for the event.\n\n## Additional configuration options\n\nBeneath the general information fields at the top of the event template form, users can configure\nadditional event options using the following tabs:\n- Tickets\n- Communication\n- Booths\n- Questions\nThese tabs (except for Booths ) can also be found on a standard event form during event\ncreation .\n\n### Booths tab\n\nThe Booths tab allows users to add booths to an event directly within the event template\nform.\nTo add a booth, click Add a line . Doing so reveals a blank Create Booths pop-up window.\nStart by providing a Name for this booth in the corresponding field.\nThen, select an appropriate Booth Category from the drop-down field below.\nOnce the desired Booth Category is selected, the remaining fields in the window\n( Currency , Product , and Price ) are automatically populated.\nThese fields cannot be modified from the Create Booths pop-up window. They can\nonly be modified from the specific booth category form page.\nWhen all desired configurations are complete, click Save & Close to save the booth and\nreturn to the event template form. Or click Save & New to save the booth and start\ncreating another booth in a new Create Booths pop-up window. Click Discard to remove all changes and return to the event template form.\nOnce the booth has been saved, it appears in the Booths tab on the event template form.\n\n## Use event templates\n\nOnce an event template is created, it is accessible on all event forms in the Odoo Events application.\nTo use an event template, navigate to the Events app and click New to\nopen a new event form.\nIn the event form, click the Template field to view all event templates in the database.\nEvent templates in the drop-down field appear in the same order as they are listed in on the Event Templates page ( Events app ⣠Configuration ⣠Event Templates ).\nUpon selecting the desired event template, the event form is automatically populated with the\ntemplateâs configuration.\nThe resulting configuration can be further modified as desired.", "headings": ["Event templates dashboard", "Create event template", "Additional configuration options", "Booths tab", "Use event templates"], "doc_id": "846e291e8dbbdf9b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/events/promote_monetize/event_booths.html", "title": "Event booths", "module": "marketing", "section": "Event booths", "text": "# Event booths\n\nThe Odoo Events application provides users with the ability to create, sell, and manage event\nbooth reservations.\n\n## Configuration\n\nIn order to create, sell, and manage booths for events, the Booth Management feature must be\nactivated.\nTo do that, navigate to Events app ⣠Configuration ⣠Settings . Click the Booth Management checkbox, then click Save to enable the setting.\nWhen the Booth Management setting is activated, Odoo automatically creates a default Event Booth product in the database with its Product Type set to Service and its Create on Order field set to Event Booth .\nUsers can modify/duplicate this default product or create a new, custom product. In either case,\nusers must verify that an Event Booth product exists with this configuration in order to\ncreate booths and booth categories, as shown later in this documentation.\n\n## Booth categories\n\nCustom booth categories can be created by users to assign different price tiers and sponsors for multiple booths at once.\nWhen the Booth Management setting is activated, Odoo automatically creates three default booth\ncategories: Standard Booth , Premium Booth , and VIP Booth . Users can modify/duplicate these\ndefault categories or create new, custom categories. In either case, booth categories must exist\nin the database before users can create event booths.\n\n### Booth categories dashboard\n\nTo view and manage booth categories, navigate to Events app ⣠Configuration â£\nBooth Categories .\nThe Booth Category dashboard displays a list of all created booth categories along with\nthe booth category name, associated Event Booth product, and price.\nIf sponsors are enabled in the Events app, an additional Create Sponsor checkbox appears on\neach record in the list as well as on the booth category form.\nTo edit an existing booth category, select it from the list and proceed to make any desired\nmodifications in the resulting booth category form.\n\n### Create booth category\n\nTo create a booth category, click the New button in the upper-left corner of the page to\nreveal a blank booth category form.\nStart by entering a name for the booth category in the top Booth Category field. This is\na required field.\nOptionally, upload a corresponding image (e.g., a sample photo of how the booth looks).\nIn the Booth Details section, assign an Event Booth product in the Product field. This a required field.\nNext, set a price for the booth category in the Price field.\nIf event sponsors are configured, a Sponsorship section appears with a Create\nSponsor checkbox option. When enabled, the user is created as an official Sponsor of the event\nwhenever a booth of this category is booked.\nAdditionally, the Sponsor Level and Sponsor Type fields can be configured to\nspecify the level/tier and the type of sponsorship. See the event sponsors documentation for more information about configuring sponsor levels and types.\nFinally, in the Description tab, enter any information about the booth category (e.g.,\nthe square footage, any amenities, size of display screen, etc.).\n\n## Add booths to events\n\nAfter configuring booth categories, booths can be created and added to specific events.\n\n### Booths dashboard\n\nTo create and add booths to a specific event, first navigate to its event form and click the Booths smart button at the top to access the Booths dashboard.\nThe dashboard is displayed in a Kanban view, by default, and grouped by two different: Available and Unavailable . The booths in the Available stage are\nstill available for exhibitors to reserve. The booths in the Unavailable stage have\nalready been reserved and are no longer available.\nThe Booths dashboard is also viewable in a (List) , (Graph) , or (Pivot) views for\nusers to track insights about booths for a particular event.\nIn addition to the default Available and Unavailable filters, the Booths dashboard can be grouped by the following:\n- Status : Group by the availability of the booths. This is the default grouping option.\nStatus : Group by the availability of the booths. This is the default grouping option.\n- Renter : Group by the individual renters of the booths.\nRenter : Group by the individual renters of the booths.\n- Booth Category : Group by the booth categories of the booths.\nBooth Category : Group by the booth categories of the booths.\n- Is Paid : Group by booths that have been paid and reserved.\nIs Paid : Group by booths that have been paid and reserved.\n- Event : Group by the associated event of the booths.\nEvent : Group by the associated event of the booths.\nSee the reporting documentation for more information about\nviews and how to apply filters and grouping options.\n\n### Create an event booth\n\nTo create a new booth, click New in either the Kanban or List view. This opens an event\nbooth form for the user to configure a new booth.\nStart by typing in a Name for the booth. This is a required field.\nThen, apply (or create ) a Booth Category . This\nis a required field.\nAfter selecting an existing Booth Category , the corresponding product and price of the\nselected booth category appear in the non-modifiable Product and Price fields.\nContinue by selecting a renterâs contact in the Renter drop-down to automatically\npopulate the Renter Name , Renter Email , and Renter Phone fields.\nAlternatively, these fields can also be entered manually.\nWhen a renter reserves a booth through the event\nwebsite, the renter-related fields on the form automatically populate based on the information\nprovided during the online transaction. The booth then automatically changes status from Available to Unavailable .\nThe status of the booth ( Available or Unavailable ) can also be changed\nmanually, either by clicking the appropriate status from the status bar in the upper-right of the\nbooth form or by dragging-and-dropping the desired booth into the appropriate stage via the Booths dashboard Kanban view.\n\n## Event booth reservation\n\nWith event booths configured, renters can view and reserve them on the event webpage via the Get A\nBooth event sub-menu link.\nThis section outlines how to configure the event website to allow renters to reserve booths. It then\nprovides a view of how renters can reserve the booths through the website.\n\n### Enable booth reservations\n\nTo access the event booths page for a specific event, navigate to the event form in the Events app and click the Go to Website smart button to open the event page.\nIf the event sub-menu (with the Get A Booth option) is not showing up, there are two\nways to make it appear: via the website edit mode or through the developer mode.\n\n#### Website edit mode\n\nWhile on the event page, enter the edit mode by clicking the Edit button in the\nupper-right corner. Then, click into the Customize tab of the resulting sidebar of web\ndesign tools.\nIn the Customize tab, click the toggle switch for Sub-menu (Specific) , then\nclick Save . Doing so reveals the event sub-menu with various options (e.g., Talks,\nAgenda, Info, etc.).\n\n#### Developer mode\n\nAlternatively, enter Debug mode and open the specific event\nform in the Events application.\nWith Debug mode on, an array of sub-menu options appears at the top of the event form. Click the\ncheckbox for Website Submenu to display the event sub-menu on the event page.\nNext, choose which sub-menu options to include on the event page. In this case, make sure the Booth Register checkbox is selected.\n\n### Reserve a booth\n\nOnce the sub-menu is enabled on the event page either through the website editor or through the\ndebug mode, renters can then view and reserve available booths.\nRenters can access the Get A Booth page on the event website by selecting the desired event from\nthe Events homepage then clicking the Get A Booth sub-menu option.\nFrom the Get A Booth page, the renter can select their desired booth option, then Location . Next, they click the Book my Booth(s) button located at the\nbottom-right of the page.\nDoing so reveals a Contact Details page where they fill out either Contact Details or Sponsor Details depending on how the booth was configured.\nOnce the necessary information has been entered, the renter then clicks the Go to\nPayment at the bottom of the page and proceeds to complete the typical checkout process .\nUpon a successful payment confirmation, the renter has successfully reserved a booth.\nIn the database, that selected booth automatically moves to the Unavailable stage on the\nevent-specific Booths page in the Events app.\nThe provided Sponsor information (if applicable) and Sales Order information are also accessible\nfrom the specific event form via their respective smart buttons that appear at the top of the form.\n- Create events\n- Sell event tickets", "headings": ["Configuration", "Booth categories", "Booth categories dashboard", "Create booth category", "Add booths to events", "Booths dashboard", "Create an event booth", "Event booth reservation", "Enable booth reservations", "Reserve a booth"], "doc_id": "1db1195e0075ccbc"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/events/promote_monetize/event_sponsors.html", "title": "Event sponsors", "module": "marketing", "section": "Event sponsors", "text": "# Event sponsors\n\nIn the Events app, users can add sponsors for the event and feature them online or in person as\nexhibitors.\n\n## Configuration\n\nTo allow users to create and manage event sponsors, the Events app must first be configured by\nnavigating to Events app ⣠Configuration ⣠Settings .\nNext, click on the Online Exhibitors checkbox. This setting enables the user to create\nand manage event sponsors. Finally, remember to click the Save button on the top-left to\nenable and load the setting.\n\n## View or manage sponsors\n\nTo view and manage sponsors for an event, navigate to Events app ⣠Events then\nclick the relevant event.\nAt the top of the event form, click on the Sponsors smart button.\nThis opens a list of existing sponsors/exhibitors in the ( Kanban )\nview. Optionally, to view the sponsors in a list, click the ( List )\nview.\nAny newly added sponsors appear on this page as cards with the sponsor logo, name, type of sponsor,\nand contact information. Additionally, a green Published banner appears in the corner\nwhen the sponsor is published on the webpage.\nTo delete a sponsor, click on the sponsor card. Next to the sponsor name at the top-left, click the (gear) icon and select Delete .\n\n## Create a new sponsor\n\nOn the sponsor dashboard page, click the New button at the top-left to open a new event\nsponsor form.\nOn the form are multiple fields to configure the sponsorâs contact details and type of sponsorship:\n- Sponsor Name : Name of the sponsor displayed on the website.\nSponsor Name : Name of the sponsor displayed on the website.\n- Slogan : Slogan of the sponsor.\nSlogan : Slogan of the sponsor.\n- Partner : Contact of the sponsorship partner. This field is required .\nPartner : Contact of the sponsorship partner. This field is required .\n- Email : Email of the sponsor.\nEmail : Email of the sponsor.\n- Phone : Phone number of the sponsor.\nPhone : Phone number of the sponsor.\n- Mobile : Mobile phone of the sponsor.\nMobile : Mobile phone of the sponsor.\n- Website : Link to the sponsorâs website.\nWebsite : Link to the sponsorâs website.\n- Event : Specific event to be sponsored.\nEvent : Specific event to be sponsored.\n- Sponsorship Level : Tier or level of sponsorship.\nSponsorship Level : Tier or level of sponsorship.\n- Sponsor Type : Type of participation of the sponsor during the event.\nSponsor Type : Type of participation of the sponsor during the event.\nTo start, enter a name for the sponsor under the Sponsor Name field.\nAlternatively, selecting a contact under the Partner drop-down will auto-populate\nthe Sponsor Name field with the partner name.\nOptionally, enter the Slogan . This slogan is displayed on the sponsorâs page on the\nwebsite.\nNext, select or create a Partner for the sponsorship by selecting a contact from the\ndrop-down.\nSelecting an existing partner contact will auto-populate the remaining Email , Phone , Mobile , and Website fields only if those fields\nare already configured on the partnerâs contact form. To view this contact form, click the (right) arrow at the right of the Partner drop-down.\nOtherwise, if the fields do not auto-populate, manually enter the contactâs details.\nThe Event field is already populated. However, it is possible to change the sponsorâs\nevent by selecting the relevant option under the drop-down.\nThen, select or create a sponsorship level/tier. By default Odoo Events creates three\nsponsorship levels: Gold , Silver , and Bronze . Each of these options displays the sponsorâs\nlogo on the event webpage in gold, silver, and bronze colors, respectively.\nIn the Sponsor Type field, select how the sponsor should be featured during the event.\nOdoo Events supports three sponsor types:\n- Footer Logo Only : Displays the sponsorâs logo in the footer of the event webpage.\nSelecting this option creates a Display in footer toggle button on the form. The\nfooter logo is displayed only if this button is toggled.\nFooter Logo Only : Displays the sponsorâs logo in the footer of the event webpage.\nSelecting this option creates a Display in footer toggle button on the form. The\nfooter logo is displayed only if this button is toggled.\n- Exhibitor : Features the sponsor as an exhibitor on the event webpage under the Exhibitors sub-menu.\nExhibitor : Features the sponsor as an exhibitor on the event webpage under the Exhibitors sub-menu.\n- Online Exhibitor : Features the sponsor as an online exhibitor on the event webpage\nunder the Exhibitors sub-menu, similar to the Exhibitor option. However, this option\nalso displays a Connect button when hovering over the sponsorâs thumbnail. When clicked,\nattendees can connect with the sponsor online through their contact details.\nOnline Exhibitor : Features the sponsor as an online exhibitor on the event webpage\nunder the Exhibitors sub-menu, similar to the Exhibitor option. However, this option\nalso displays a Connect button when hovering over the sponsorâs thumbnail. When clicked,\nattendees can connect with the sponsor online through their contact details.\nBoth the Exhibitor and the Online Exhibitor options display the sponsor\nlogo in the footer of the event webpage.\nIf the Exhibitor or Online Exhibitor option is selected, an additional Description tab appears at the bottom of the sponsor form. Enter a description for the\nsponsor to be displayed on the sponsorâs webpage.\nAdditionally, for the Online Exhibitor option, a Online tab appears at the\nbottom for the user to configure their Jitsi integration.\n\n## Publish an event sponsor\n\nTo feature the sponsor as an exhibitor, the sponsor must be published first on the event\nwebpage.\nIf the Footer Logo Only sponsor type is selected, toggling the Display in\nfooter button publishes the sponsor and displays the sponsor logo in the footer of the eventâs\nwebpage.\nFor the Exhibitor or Online Exhibitor options, click on the Go to Website on the form. Then, click the Unpublished toggle button at the\ntop-right to publish the sponsor page.\nTo see the published list of sponsors on the website, navigate to Website app â£\nEvents sub-header . Then, click on the relevant event. In the sub-menu, click on Exhibitors to see the list of published sponsors.\nIf the sub-header menu is not showing up on the event website, click Edit at the\ntop-right corner. Then, click into the Customize tab of the sidebar.\nIn the Customize tab, click the Sub-menu (Specific) toggle button and\nclick Save .\nThe website then displays the event sub-header menu with various options.\n- Event booths\n- Event tracks", "headings": ["Configuration", "View or manage sponsors", "Create a new sponsor", "Publish an event sponsor"], "doc_id": "208ff19049d173eb"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/events/promote_monetize/sell_tickets.html", "title": "Sell event tickets", "module": "marketing", "section": "Sell event tickets", "text": "# Sell event tickets\n\nOdoo Events provides users with the ability to create custom event tickets and ticket tiers with\nvarious price points.\nIt also allows them to sell event tickets in different ways: via standard sales orders, through\npoint of sales, and online through an integrated website.\n\n## Configuration\n\nIn order to sell event tickets in Odoo, some settings must first be enabled.\nFirst, navigate to Events app ⣠Configuration ⣠Settings . In the Registration section, there are several different settings:\n- Tickets with Sale : Allows users to sell event tickets with standard sales orders in\nthe Sales app.\nTickets with Sale : Allows users to sell event tickets with standard sales orders in\nthe Sales app.\n- Tickets with PoS : Allows users to sell even tickets with point of sales in the Point\nof Sale app.\nTickets with PoS : Allows users to sell even tickets with point of sales in the Point\nof Sale app.\n- Online Ticketing : Allows users to sell event tickets online through their integrated\nOdoo website.\nOnline Ticketing : Allows users to sell event tickets online through their integrated\nOdoo website.\nTo activate a setting, tick the checkbox beside the desired featureâs label, and click Save at the upper-left to enable it.\nWith these settings enabled, any event with paid tickets sold (either through a sales order or\nthrough the website) features a Sales smart button at the top of the\nevent form. Clicking the Sales smart button reveals a separate page,\nshowcasing all the sales orders (standard and/or online) related to tickets that have been sold for\nthat specific event.\n\n## Sell event tickets with the Sales app\n\nTo sell event tickets with sales orders, start by navigating to the Sales app.\nThen, click New to open a new quotation form.\nAfter filling out the top portion of the form with the appropriate customer information, click Add a product in the Order Lines tab. Then, in the Product column, select (or create) an event registration product.\nTo add an event registration product to a sales order, its Product Type field must be set to Service and the Create on Order field must be set to Event Registration . These fields are accessible in the product form of the event\nregistration product.\nOnce an event registration product is selected, a Select an Event pop-up window appears.\nFrom the Select an Event pop-up window, select which event this ticket purchase is\nrelated to in the Event field drop-down menu. Then, in the Ticket Type drop-down menu, select which ticket tier the customer wishes to purchase, if there are multiple\ntiers configured for that event.\nWhen all the desired configurations are complete, click Add . Doing so returns the user\nto the sales order, with the event registration ticket product now present in the Order\nLines tab. The user can proceed to confirm and close the sale, per the usual process.\nTo re-open the Select an Event pop-up window, click on the event registration product name in\nthe Order Lines tab, then click on the (pencil) icon.\n\n## Sell event tickets through the Point of Sale app\n\nTo sell event tickets through a point of sale, the event registration products must be configured to\nappear in the Point of Sale app.\nFirst, navigate to the product form for the event registration product by going to Sales app ⣠Products ⣠Products and selecting the desired product. Under the\nname of the product, select the Point of Sale checkbox to enable the product to be\nvisible in a POS .\nAfter selecting, a Point of Sale tab appears where the user can optionally provide\nadditional information about the event tickets in a POS , such as its\ncategory or whether it can be self-ordered.\nWith the products configured, navigate to Point of Sale app and open a POS register. The POS displays any open events with the\ncorresponding event registration products, as well as the event registration products themselves.\nTo learn more about configuring and selling products in a POS , refer to the Point of Sale documentation.\n\n## Sell event tickets through the Website app\n\nWhen a visitor arrives on the registration page of the event website, they can click the Register button to purchase a ticket to the event.\nIf the visitor is not already on the registration page of the event website, clicking Register on the event websiteâs submenu redirects them to the proper\nregistration page. From there, they can click the Register button to begin the ticket\npurchasing process.\nIf different ticket tiers are configured for the event, the visitor is presented with a Tickets pop-up window.\nFrom here, visitors select which ticket tier they would like to purchase, along with a quantity,\nusing the drop-down menu available to the right of their desired ticket. Once the desired selections\nhave been entered, the visitor then clicks the Register button.\nThen, an Attendees pop-up window appears, containing all the questions that have been\nconfigured in the Questions tab of the event form for this particular event.\nIf multiple tickets are being purchased at once, there are numbered sections for each individual\nticket registrant, each containing the same questions. However, if any question has been configured\nwith the Ask once per order setting, that question is only asked once, not for every\nattendee making the reservation in the order.\nWith all necessary information entered, the visitor can then click the Go to Payment button. Doing so first takes the visitor to a Billing confirmation page, followed by a Payment confirmation page, where they can utilize any configured payment method set up\nin the database to complete the order.\nThen, once the purchase is complete on the front-end of the website, the subsequent sales order is\ninstantly accessible in the back-end of the database.", "headings": ["Configuration", "Sell event tickets with the Sales app", "Sell event tickets through the Point of Sale app", "Sell event tickets through the Website app"], "doc_id": "b2df93bec9053fb2"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/events/registration_desk.html", "title": "Registration Desk", "module": "marketing", "section": "Registration Desk", "text": "# Registration Desk\n\nThe Registration Desk feature in Odoo Events allows users to grant access to registered event\nattendees as they arrive and store attendee-related data in the reporting metrics.\n\n## Registration Desk page\n\nOn a mobile device (on the Odoo app or in a browser), navigate to Events app â£\nRegistration Desk to open the Registration Desk page.\nIn the Registration Desk box, the user has the option to either Scan a badge or Select Attendee .\n\n## Scan a badge\n\nTo scan the code on event attendeesâ badges, navigate to Events app ⣠Registration\nDesk and tap the Scan or Tap option.\nOdoo must be granted access to the camera being used for the Scan a badge option\nto work.\nOnce Odoo has access to the camera, a Barcode Scanner pop-up window appears, showing a\nviewfinder box in the camera frame. The size of the box can be manually adjusted by dragging the (crop) icon.\nWhen the badge code is in the middle of the view-finder box, the code is scanned and the Barcode Scanner pop-up window disappears. The attendee is then granted access to the\nevent and their attendance is logged in the Odoo Events app.\nIf the scanned barcode is invalid, an error pop-up message appears in the upper-right corner.\n\n## Select Attendee\n\nTo manually grant access to event attendees, navigate to Events app ⣠Registration\nDesk and tap the Select Attendee option.\nThis opens an Attendees page with all registered attendees across events in the\ndatabase. By default, this page opens in the (Kanban) view,\nallowing the user to see an overview of all attendees at a glance. Each attendee is displayed as a\ncard with their name, registered event, associated company (if applicable), ticket type (if\napplicable), and registration status.\nAlternatively, users can view a detailed list of all attendees using the (List) view. Each attendee is displayed on a line with their name, contact information,\nregistered event, ticket type, registration status, and an option to Mark as Attending .\nTo grant access to an attendee and mark them as Attended in the Kanban view, click on\ntheir card. The resulting pop-up window notifies the user that the attendee has been marked as\nregistered. Click Continue at the bottom-left to mark the attendee as Attended .\nAlternatively, in the List view, click on the Mark as Attending button on the attendeeâs\nline. The button then disappears and the attendeeâs registration status changes to Attended .\nUsers can apply filters and grouping options on the Attendees page in both the Kanban and List views to narrow down a large list of\nattendees or reorganize the page by specific categories.\nTo do that, click the (down arrow) beside the search bar to\nreveal a drop-down menu with Filters , Group By , and Favorites options.\nSearch, filter, and group records", "headings": ["Registration Desk page", "Scan a badge", "Select Attendee"], "doc_id": "c726558231a34dfa"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/marketing_automation.html", "title": "Marketing Automation", "module": "marketing", "section": "Marketing Automation", "text": "# Marketing Automation\n\nUse the Odoo Marketing Automation application to create dynamic campaigns with actions that\nautomatically occur within a defined duration, such as sending a series of timed mass emails or\nengaging with leads based on their interactions with marketing campaigns.\nWhile the application is designed to be user-friendly for creating, launching, and reviewing\nmarketing campaigns, it also provides advanced features to automate repetitive tasks throughout the\ndatabase.\nGet started by creating a new campaign from scratch or start\nwith a campaign template .\n- Odoo Tutorials: Marketing\nOdoo Tutorials: Marketing\n- Magic Sheet - Marketing Automation [PDF]\nMagic Sheet - Marketing Automation [PDF]\n\n#### Audience targeting\n\nConfigure the target audience for a campaign.\n\n#### Workflow activities\n\nDefine the activities that occur within a campaign.\n\n#### Testing/running campaigns\n\nLaunch a test or run a campaign.\n\n#### Campaign metrics\n\nReview the metrics of a campaign.\n\n## Configuration\n\nTo begin, make sure the Marketing Automation application is installed .\nInstalling the Marketing Automation application also installs the Email Marketing app, as most features of Odoo Marketing Automation are dependent on that\nspecific application.\nAdditionally, install the CRM and SMS Marketing applications to access all of the features available in Marketing Automation .\nThe following documentation assumes that all three of these dependent applications are installed\non the database.\n\n## Campaigns\n\nA campaign refers to a workflow of activities that are automatically executed to a target\naudience, based on predefined filters, triggers, and durations of activities.\nA new campaign can be created from scratch or from a template .\nTo create a campaign, navigate to the Marketing Automation application and click\nthe New button to reveal a new campaign form.\n\n### Campaign templates\n\nOdoo provides six campaign templates to help users get started. The campaign template cards only display when there are no existing campaigns in the database. Once a campaign has been created, the\ntemplate cards on the Campaigns dashboard are replaced with a Kanban view of the existing\ncampaigns.\nTo get started with a template, navigate to the Marketing Automation application,\nfrom the main Odoo dashboard, to open the Campaigns dashboard, which displays six campaign template cards:\n- Tag Hot Contacts Send a welcome email to contacts and tag them if they click it.\n- Welcome Flow Send a welcome email to new subscribers, remove the address that bounced.\n- Double Opt-in Send an email to new recipients to confirm their consent.\n- Commercial prospection Send a free catalog and follow-up according to reactions.\n- Schedule Calls If a lead is created for existing contact, schedule a call with their salesperson.\n- Prioritize Hot leads Send an email to new leads and assign them a high priority if they open it.\nThese templates are designed to be used as starting points for creating new campaigns. Click one of\nthe template cards to open the campaign form.\nTo display the campaign template cards again after a campaign has been created, type the name of\na campaign that does not exist in the database into the search bar, then press Enter .\nFor example, searching for empty displays the campaign template cards again, as long as there\nis not a campaign with the name âemptyâ in the database.\n`empty`\n\n## Targets and filters\n\nOn the campaign form, the Target and Filter section, also referred to as the\ndomain, contains the fields used to define the target audience for the campaignâs reach (i.e.,\nthe unique contact records in the database).\nThe target audience specifies the type of records available for use in the campaign, such as Lead/Opportunity , Event Registration , Contact , and more.\n\n### Records\n\nThe contacts in the system that fit the specified criteria for a campaign are referred to as records .\nThe number of records that are displayed next to the campaign Filter represent the total\nnumber of records the campaign is targeting.\n\n### Participants\n\nThe records that are engaged by the campaign are referred to as participants .\nThe number of participants engaged in a test run are shown in the Tests smart button, which\ndisplays on the top of the campaign form after a test has been run.\nThe number of participants engaged in a running, or stopped, campaign are shown in the Participants smart button at the top of the campaign form.\n\n## Workflow\n\nA workflow consists of an activity, many activities, or a sequence of activities organized in a\ncampaign. A campaignâs workflow is defined in the Workflow section of the campaign form.\n\n### Activities\n\nActivities are the methods of communication or server actions, organized in a workflow, that are\nexecuted within a campaign. Once running, each activity displays the number of participants that\nare engaged by the activity as Success and Rejected counts.\nTo create one of the following activities, click Add new activity in the Workflow section of the campaign form:\n- Email : an email that is sent to the target\naudience.\nEmail : an email that is sent to the target\naudience.\n- Server action : an internal action within the\ndatabase that is executed.\nServer action : an internal action within the\ndatabase that is executed.\n- SMS : a text message that is sent to the target\naudience.\nSMS : a text message that is sent to the target\naudience.\nCampaign workflow activities\n\n## Testing and running\n\nOnce a campaign has been created, it can be tested to ensure the workflow is functioning as\nexpected, to check for errors, and correct any mistakes before it reaches its target audience.\nAfter testing, the campaign can be launched to start engaging the target audience. The campaign can\nalso be launched without testing, if the user is confident in the workflow.\nTesting/running campaigns\n\n## Reporting\n\nA range of reporting metrics are available to measure the success of each campaign. Navigate to Marketing Automation app ⣠Reporting to access the following menu options:\n- Link Tracker : displays the metrics of links to track the number of clicks.\nLink Tracker : displays the metrics of links to track the number of clicks.\n- Traces : displays the results of all activities from all campaigns.\nTraces : displays the results of all activities from all campaigns.\n- Participants : displays an overview of the participants of all campaigns.\nParticipants : displays an overview of the participants of all campaigns.\nAdditionally, each activity within the workflow of a campaign displays its engagement metrics.", "headings": ["Configuration", "Campaigns", "Campaign templates", "Targets and filters", "Records", "Participants", "Workflow", "Activities", "Testing and running", "Reporting"], "doc_id": "0c9a520c0012bae8"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/marketing_automation/campaign_templates/double_optin.html", "title": "Double Opt-in", "module": "marketing", "section": "Double Opt-in", "text": "# Double Opt-in\n\nA double opt-in , also referred to as a confirmed opt-in , may be required in some countries\nfor marketing communications, due to anti-SPAM laws. Confirming consent has several other benefits,\nas well: it validates email addresses, avoids spam/robo subscribers, keeps mailing lists clean, and\nonly includes engaged contacts in the mailing list.\nWhen the Double Opt-in campaign template is used, a new mailing list titled, Confirmed contacts is created in the Email Marketing app, and any new mailing list contacts that are added to the\ndefault Newsletter mailing list are sent a confirmation email to double opt-in. The contacts that\nclick on the confirmation link in the email are automatically added to the Confirmed contacts mailing list in Odoo.\nWhen using the Double Opt-in campaign template, only the contacts in the Confirmed contacts\nmailing list are considered to have confirmed their consent.\n\n## Use the Double Opt-in campaign template\n\nOpen the Marketing Automation app, and select the Double Opt-in campaign template to create a new campaign for confirming consent.\nThe campaign templates do not display, by default, when there are existing Marketing\nAutomation campaigns. To display the campaign templates, type the name of a campaign (that does\nnot exist in the database) into the Search⦠bar, then press Enter .\nFor example, searching for empty displays the campaign template cards again, as long as there\nis not a campaign with the name âemptyâ in the database.\n`empty`\n\n### Campaign configuration\n\nUpon creation of the campaign, the campaign form loads with a new preconfigured campaign.\nThe Target and Filter configurations of the campaign are as follows:\n- Name : Double Opt-in\n`DoubleOpt-in`\n- Responsible *: The user who created the campaign.\nResponsible *: The user who created the campaign.\n- Target : Mailing Contact\nTarget : Mailing Contact\n- Unicity based on : Email (Mailing Contact)\nUnicity based on : Email (Mailing Contact)\n- Filter : Email is set Blacklist is not set Mailing lists contains Newsletter\n- Email is set\n- Blacklist is not set\n- Mailing lists contains Newsletter\nMailing lists contains Newsletter\n`Newsletter`\n* The Responsible field is only visible with Developer mode (debug mode) activated.\nThe Target model of the campaign should not be modified. Changing the Target model with activities in the Workflow invalidates the existing\nactivities in the Workflow .\nThe Double Opt-in campaign template is intended to only use the Mailing Contact model.\nThe campaign loads two activities in the Workflow section of the campaign: an email\nactivity, with a child server action activity that triggers on click .\nBy default, the Confirmation email activity is set to trigger 1 Hours after the\nbeginning of the workflow. In other words, the email is sent 1 hour after a new contact is added to\nthe Newsletter mailing list.\n`Confirmation`\nThe email activity uses the preconfigured Confirmation email template, which contains a button for\nthe contact to click to confirm their consent.\nTo modify the email template, select the Templates smart button at\nthe top of the campaign form. Then, in the list of templates, select the Confirmation email\ntemplate.\n`Confirmation`\nBe sure to personalize the contents of the email template; however, it is recommended to keep the\ncontents of double opt-in confirmation emails short and to-the-point.\nThe default confirmation button, in the body of the template, links directly to the databaseâs\nwebsite homepage. Click on the button to edit the button text and URL.\nTo provide a streamlined experience for the contact, consider creating a page on the\nwebsite that expresses gratitude to the contact for\nconfirming their subscription to the mailing list. Add the link to that page in the URL of the\nconfirmation button.\nThe email template should only include a single call-to-action link for confirmation, other than\nan unsubscribe link.\nAny click on a link (or button) included in the confirmation email, besides the unsubscribe\nbutton, triggers the Add to list server action.\nThe child activity Add to list server actionâs On click trigger cannot differentiate between\nmultiple URLs in an email, besides the /unsubscribe_from_list unsubscribe button that is\nincluded in any one of the footer blocks.\n`/unsubscribe_from_list`\nThe Add to list server action activity triggers immediately after a click in the parent Confirmation email activity is detected.\n`Addtolist`\n`Confirmation`\nWhen triggered, the Add to list activity executes the Add To Confirmed List server action,\nautomatically adding the contact to the Confirmed contacts mailing list, if they are not already\nin the mailing list.\n`Addtolist`\nTo modify the server action, select the title of the activity to open the Open:\nActivities pop-up window and edit the server action activities configuration.\nConsider setting an Expiry Duration to prevent executing the activity after a\nspecific amount of time.\nIt is not recommended to modify the preconfigured Python code in the Add To Confirmed\nList server action, as doing so may trigger a change in the databaseâs pricing plan.\nOnce the campaign configuration is complete, consider launching a test to verify the campaign executes as expected. If the campaign testing is successful, Start the campaign to begin sending double opt-in confirmation emails to Newsletter mailing list contacts, and fill the Confirmed contacts mailing list with engaged contacts.\n\n## Double Opt-in use-case\n\nTo prepare for sending newsletter marketing emails on an Odoo database, a mailing contact list\nmust be procured. One way of collecting subscribers is through a sign-up form on the website that\nadds contacts to the Newsletter mailing list on the form submission.\nBefore sending any marketing emails, use the Double Opt-in campaign template in the Marketing Automation app to confirm\nmarketing email consent from the contacts in the Newsletter mailing list.\nAfter launching the Double Opt-in campaign, view the contacts that have double opt-in in the Confirmed contacts mailing list ( Email Marketing app ⣠Mailing Lists â£\nMailing Lists ).\nNow, the Confirmed contacts mailing list is ready to be used for sending newsletter marketing\nemails from an Odoo database.\n- Campaign metrics\n- Mailing lists\n- Email Marketing", "headings": ["Use the Double Opt-in campaign template", "Campaign configuration", "Double Opt-in use-case"], "doc_id": "f51e3eadd37f9a15"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/marketing_automation/target_audience.html", "title": "Audience targeting", "module": "marketing", "section": "Audience targeting", "text": "# Audience targeting\n\nThe Target and Filter fields on the campaign form, also referred to as the domain , contain the parameters used to define the target audience for the campaignâs reach (i.e.,\nthe unique contact records in the database, and imported list, etc.).\n- Target : specifies the type of records available for use in the campaign, such as Lead/Opportunity , Event Registration , Contact , The assigned\nrecords model determines the fields that are available throughout the campaign, including the\nfields available in the Filter section, and in dynamic placeholders.\nTarget : specifies the type of records available for use in the campaign, such as Lead/Opportunity , Event Registration , Contact , The assigned\nrecords model determines the fields that are available throughout the campaign, including the\nfields available in the Filter section, and in dynamic placeholders.\n- Save as Favorite Filter : saves the current Filter for future use with the\ncurrent Target model, and can be managed from the Marketing Automation\napp ⣠Configuration ⣠Favorite Filters menu.\nSave as Favorite Filter : saves the current Filter for future use with the\ncurrent Target model, and can be managed from the Marketing Automation\napp ⣠Configuration ⣠Favorite Filters menu.\n- Unicity based on : specifies the Target model field where duplicates should\nbe avoided. Traditionally, the Email field is used, but any available field can be\nused.\nUnicity based on : specifies the Target model field where duplicates should\nbe avoided. Traditionally, the Email field is used, but any available field can be\nused.\n- Filter : contains an interactive form with configurable logic to further refine the\ntargeting parameters under the chosen Target model. See more details in the Defining filters section.\nFilter : contains an interactive form with configurable logic to further refine the\ntargeting parameters under the chosen Target model. See more details in the Defining filters section.\n- Include archived : allows or disallows the inclusion of archived records in the target\naudience.\nInclude archived : allows or disallows the inclusion of archived records in the target\naudience.\nA Responsible user can be assigned to the campaign by activating Developer mode (debug mode) .\nEach activity in a campaignâs workflow can target a subset of the target audience; see the Campaign workflow activities documentation for more information.\n\n## Defining filters\n\nThe default campaign Filter configuration is set to Match all records ,\nindicating that the campaign is targeting all records of the Target model.\nTo refine the Filter rules of a campaign, click the â Add condition button\nto reveal a new row with configurable rule parameters. See the Search, filter, and group\nrecords documentation for more information on how to create filter rules.\nAt the bottom of the filter rules is a # record(s) button, which indicates the total\nnumber of records targeted by this domain. Select the # record(s) button to open a Selected records pop-up window, in which the targeted records can be viewed.\nActivate Developer mode (debug mode) to reveal each fieldâs technical name and data type, as well as\nthe # Code editor text area below the filter rules, to view and edit the domain\nmanually.\nTo target all leads and opportunities from the CRM app that are in the New stage, and have an\nexpected revenue greater than $1,000, the following should be entered:\n- Target : Lead/Opportunity\nTarget : Lead/Opportunity\n`Lead/Opportunity`\n- Unicity based on : Email (Lead/Opportunity)\nUnicity based on : Email (Lead/Opportunity)\n`Email(Lead/Opportunity)`\n- Filter : Match all ð½ (down arrow) of the\nfollowing rules: Stage is in New Expected Revenue > 1,000 any ð½ (down arrow) of: Type = Lead Type = Opportunity\nFilter : Match all ð½ (down arrow) of the\nfollowing rules:\n- Stage is in New\n- Expected Revenue > 1,000\nExpected Revenue > 1,000\n`1,000`\n- any ð½ (down arrow) of: Type = Lead Type = Opportunity\nany ð½ (down arrow) of:\n- Type = Lead\n- Type = Opportunity\nWith the above configuration, the campaign targets 157 record(s) .\n- Domain developer documentation\nDomain developer documentation\n- Campaign workflow activities\nCampaign workflow activities\n- Testing/running campaigns\nTesting/running campaigns\n- Campaign metrics", "headings": ["Defining filters"], "doc_id": "9393ab0db7b8c181"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/marketing_automation/testing_running.html", "title": "Testing/running campaigns", "module": "marketing", "section": "Testing/running campaigns", "text": "# Testing/running campaigns\n\nThe Odoo Marketing Automation app allows users to test marketing campaigns (and mailings) before\nofficially running them to check for errors and correct any mistakes before it reaches its target\naudience.\n\n## Test campaigns\n\nTo test a marketing campaign, open the Marketing Automation app , and select the\ndesired campaign to test, which reveals the campaignâs detail form.\nOn the campaign detail form, make sure the campaign already has activities configured in the\nworkflow (or build a campaign by following the directions on Campaign workflow activities documentation).\nTesting marketing automation campaigns is meant to be performed in the production version of the\ndatabase. Duplicate (or trial) databases have limited email sending capabilities.\nTo start a test, click the Launch a Test button at the top of the campaign form, to the\nright of the Start button.\nWhen clicked, a Launch a test pop-up window appears.\nIn the Launch a test pop-up window, click the Pick or create a/an Contact to\ngenerate a Test Participant field to reveal a drop-down menu of contacts. From this drop-down menu,\nselect an existing contact (or create a new one) to run the test on.\nOnly one contact can be selected from the Launch a test pop-up window.\nTo create a new contact directly from the Launch a test pop-up window, start typing the\nname of the new contact in the blank field, and click Create and edit⦠.\nDoing so reveals a blank Create Record pop-up form, in which the necessary contact\ninformation ( Email , Mobile , etc.) must be entered, in order for the test\nto work. When the necessary information is entered, click Save & Close .\nWhen all the necessary fields have been entered, click Save & Close to return to the Launch a test pop-up window.\nOnce a contact is selected, click Launch to reveal the campaign test page.\nOn the campaign test page, the name of the Record being tested is visible, along with\nthe precise time this test workflow was started in the Workflow Started On field.\nBeneath that, in the Workflow section is the first activity (or activities) in the\nworkflow thatâs being tested.\nTo start a test, click the Run button, represented by a âï¸ (play button) icon beside the first activity in the workflow. When clicked, the page reloads, and Odoo shows the\nvarious results (and analytics) connected to that specific activity as they occur, in real-time.\nIf a child activity is scheduled beneath a parent activity, that child activity will be revealed\nslightly indented in the workflow, once that parent activity has been run, via the âï¸\n(play button) icon.\nOnce all the workflow activities are completed, the test ends, and the status bar (in the\nupper-right corner) moves to the Completed stage.\nTo stop a test before all the workflow activities are completed, click the Stop button\nin the upper-left corner of the campaign test page.\n\n## Run campaigns\n\nTo run a campaign, navigate to Marketing Automation app , and select the desired\ncampaign to run.\nOn the campaign detail form, with all the desired activities ready in the Workflow section, click Start in the upper-left corner to officially run the campaign to the\nconfigured target audience specified on the campaign detail form.\nClicking Start launches the campaign, and the status bar of the campaign switches to Running , which is located in the upper-right corner of the campaign detail form.\nIf some participants are already running on a campaign, and was stopped for any reason, clicking\nthe Start button again prompts a pop-up warning. This warning advises the user to\nclick an Update button to apply any modifications made to the campaign.\nBe aware that participants that had already gone through an entire campaign in its original state can be reintroduced into the newly-modified campaign, and new traces could be created for\nthem.\nThen, as the mailings and actions are triggered in the Workflow , the various stats and\ndata related to each activity appear in each activity block. There is also a series of stat-related\nsmart buttons that appear at the top of the campaign detail form, as well.\nThese analytical smart buttons will also populate with real-time data as the campaign progresses: Templates , Clicks , Tests , Participants .\n\n## Stop campaigns\n\nTo stop a campaign thatâs currently running, navigate to the Marketing Automation\napp , and select the desired campaign to stop. On the campaign detail form, click the Stop button in the upper-left corner.\nWhen clicked, the campaign is officially stopped, and the status changes to Stopped in\nthe upper-right corner of the campaign detail form.\n- Campaign configuration\nCampaign configuration\n- Audience targeting\n- Campaign workflow activities\nCampaign workflow activities", "headings": ["Test campaigns", "Run campaigns", "Stop campaigns"], "doc_id": "a6fd1fed830d7e67"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/marketing_automation/understanding_metrics.html", "title": "Campaign metrics", "module": "marketing", "section": "Campaign metrics", "text": "# Campaign metrics\n\nCampaign metrics are detailed statistics and analytics within a marketing campaign, measuring its\nsuccess and effectiveness. Triggered marketing activities populate relevant activity blocks with\nreal-time metrics, in the campaign detail form.\n\n## Activity analytics\n\nIn the Workflow section of a campaign detail form in the Marketing Automation app,\nwhere the various campaign activities are located, a collection of useful data can be found on every\nindividual activity block, like number of communications Sent , percentage of messages\nthat have been Clicked , and more.\nTo the left of the activity block, the configured trigger time is\ndisplayed as a duration (either Hours , Days , Weeks , or Months ) if it corresponds to period after the workflow begins.\nIf the trigger time is dependent on another activity or triggering action (e.g. Mail:\nReplied , etc.) the time is displayed, along with the necessary action for that activity to be\nactivated (e.g. Replied after 2 Hours ).\n`Repliedafter2Hours`\nIn the activity block, an icon represents each activity type. An âï¸ (envelope) icon\nmeans the activity is an email. Three tiny, interlocking âï¸ (gear) icons means the\nactivity is an internal action. And, a small, basic ð± (mobile) icon means the activity\nis an SMS.\nThe activity type name is also displayed in smaller font below the activity title.\nBeside the activity icon, at the top of the activity block, is the title of the activity. To the\nright of the activity title, there are Edit and Delete buttons.\nClick Edit to open the Open: Activities pop-up form for that specific\nactivity, in which that activity can be modified. Click the Delete button to completely\ndelete that specific activity from the workflow.\nCampaign workflow activities\n\n### Activity graph tab\n\nIn every activity block, the Graph (pie chart icon) tab is open by default, displaying\nrelated metrics as a simple line graph. The success metrics are represented in green and the\nrejected metrics are represented in red .\n`green`\n`red`\nNumerical representations of both Success and Rejected activities are shown\nto the right of the line graph.\nHovering over any point in the line graph of the activity block reveals a notated breakdown of\ndata for that specific date.\nBeneath the graph in the activity block, for Email or SMS activity types, a line of accessible\ndata figures provide a birdâs eye view of the campaign activity, including: Sent (numerical), Clicked (percentage), Replied (percentage), and Bounced (percentage).\nClicking any of those stats on the DETAILS line, beneath the line graph, reveals a\nseparate page containing every specific record for that particular data point.\n\n### Activity filter tab\n\nNext to the Graph tab on the activity block, thereâs the option to open a Filter tab (represented by a filter/funnel icon).\nClicking the Filter tab on an activity block, reveals what the specific filters are for\nthat particular campaign activity, and how many records in the database match that specific\ncriteria.\nClicking the records link beneath the displayed filter reveals a separate pop-up\nwindow containing a list of all the records that match that specific campaign activity rule(s).\n\n## Link tracker\n\nOdoo tracks all URLs used in marketing campaigns. To access and analyze those URLs, navigate to Marketing Automation app ⣠Reporting ⣠Link Tracker . Doing so reveals a Link Statistics page, wherein all campaign-related URLs can be analyzed.\nThe default view on the Link Statistics page is the Bar Chart view, but\nthere are different view options available in the upper-left corner. There is the option to view the\nstatistics as a Line Chart or Pie Chart .\nBeside that, there is also the option to view the statistics as Stacked , and the data\ncan be put into Descending or Ascending order.\nTo the far-left of the view options, there is the Measures drop-down menu. When clicked,\nthe options to view the Number of Clicks or total Count are available. And,\nto the right of the Measures drop-down menu, thereâs the ability to add any data to a\nspreadsheet by clicking the Insert in Spreadsheet button.\nAlso, in the upper-right corner of the Link Statistics page, to the far-right of the\nsearch bar, there are additional view options to choose from: the default Graph view,\nthe Pivot table view, and the List view.\n\n## Traces\n\nOdoo tracks all activities used in every marketing campaign. The data related to these activities\ncan be accessed and analyzed in the Traces page, which can be found by navigating to Marketing Automation app ⣠Reporting ⣠Traces .\nThe default view on the Traces page is the Bar Chart view, but there are\ndifferent view options available in the upper-left corner. There is the option to view the\nstatistics as a Line Chart or Pie Chart .\nAt the top of the graph, thereâs a color key, informing the user which activities have been Processed , Scheduled , and Rejected . Thereâs also an outline\nindicator to inform users of the Sum of certain activities, as well.\nBeside the various view option in the upper-left corner of the Traces page, there is\nalso the option to view the statistics as Stacked , and the data can be put into Descending or Ascending order.\nTo the far-left of the view options, there is the Measures drop-down menu. When clicked,\nthe options to view the Document ID or total Count are available. And, to\nthe right of the Measures drop-down menu, thereâs the ability to add any data to a\nspreadsheet by clicking the Insert in Spreadsheet button.\nAlso, in the upper-right corner of the Link Statistics page, to the far-right of the\nsearch bar, there are additional view options to choose from: the default Graph view,\nthe Pivot table view, and the List view.\n\n## Participants\n\nOdoo tracks all participants related to every marketing campaign. The data related to these\nparticipants can be accessed and analyzed in the Participants page, which can be found\nby navigating to Marketing Automation app ⣠Reporting ⣠Participants .\nThe default view on the Participants page is the Pie Chart view, but there\nare different view options available in the upper-left corner. There is the option to view the\nstatistics as a Line Chart or Bar Chart .\nAt the top of the graph, thereâs a color key that describes the type of participants found in the\ngraph.\nTo the far-left of the view options, there is the Measures drop-down menu. When clicked,\nthe options to view the Record ID or total Count are available. And, to the\nright of the Measures drop-down menu, thereâs the ability to add any data to a\nspreadsheet by clicking the Insert in Spreadsheet button.\nAlso, in the upper-right corner of the Link Statistics page, to the far-right of the\nsearch bar, there are additional view options to choose from: the default Graph view,\nthe Pivot table view, and the List view.", "headings": ["Activity analytics", "Activity graph tab", "Activity filter tab", "Link tracker", "Traces", "Participants"], "doc_id": "9b7c5346c5b99bc5"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/marketing_automation/workflow_activities.html", "title": "Campaign workflow activities", "module": "marketing", "section": "Campaign workflow activities", "text": "# Campaign workflow activities\n\nA workflow is the overall activity structure of a marketing automation campaign. There can only\nbe a single workflow in each campaign. However, a workflow can be made up of any number of activities to meet the needs of the campaign.\nWorkflow sequence of three activities; the last child activity has a trigger type of Mail: not opened .\n\n## Activities\n\nActivities are the methods of communication or server actions, organized in a workflow, that are\nexecuted within a campaign; they are the building blocks of the campaignâs workflow.\nA new activity can be added to the workflow on a campaign form by selecting an existing campaign or creating a new campaign from the Marketing\nAutomation app ⣠Campaigns dashboard, then clicking the Add new activity button in\nthe Workflow section. Doing so opens the Create Activities pop-up window.\nFirst, define the name of the activity in the Activity Name field, and select the type of activity to be executed from the Activity Type field.\nThen, configure the activityâs Trigger , and optionally, the Expiry Duration and the DOMAIN of the activity.\nOnce the activity is fully configured, click Save & Close to add it to the campaignâs\nworkflow, or click Save & New to add the activity to the workflow and open a new Create Activities pop-up window to add another activity. Clicking Discard closes the pop-up window without saving the activity.\n\n### Activity types\n\nThere are three different types of activities available in the Marketing Automation app:\n- Email : an email that is sent to the target\naudience.\nEmail : an email that is sent to the target\naudience.\n- Server action : an internal action within the\ndatabase that is executed.\nServer action : an internal action within the\ndatabase that is executed.\n- SMS : a text message that is sent to the target\naudience.\nSMS : a text message that is sent to the target\naudience.\n\n#### Email\n\nIf Email is selected as the Activity Type , the option to Pick a\nTemplate in the Mail Template field is available.\nTo create a new template directly from the Mail Template field, start typing the title\nof the new template, then select Create and edit⦠to reveal a Create\nMarketing Template pop-up window. Proceed to create and configure the new email template.\nOnce the email template is configured, click Save & Close to save the activity, and\nreturn to the Create Activities pop-up window, in order to continue to configure the trigger .\nThe title used for the Mail Template must be unique from any other mail template\ntitles in the campaign, and it also serves as the subject of the email.\nCreating and configuring email templates\n\n#### Server action\n\nIf Server Action is selected as the Activity Type , the option to Pick a Server Action in the Server Action field is available. This field is\na drop-down menu containing all the pre-configured server actions for the campaignâs Target model. Optionally, create a new server action .\nAfter selecting a pre-configured server action, no other activity type configuration is needed.\nClick Save & Close to save the activity, and return to the Create Activities pop-up window, in order to configure the trigger .\nTo view all server actions in the database, activate Developer mode (debug mode) , and navigate to Settings app ⣠Technical ⣠Actions ⣠Server Actions dashboard.\nThe option to create a new server action is also available. To do so, type in the Server\nAction field a title for the new action, then click Create and edit⦠. Doing so\nreveals a blank Create Server Action pop-up window, wherein a custom server action can\nbe created and configured.\nOn the Create Server Action pop-up window, select the Type of server action.\nThe configuration fields change, depending on the selected Type :\n- Update Record : update the values of a record.\nUpdate Record : update the values of a record.\n- Create Activity : create an activity with the Discuss app.\nCreate Activity : create an activity with the Discuss app.\n- Send Email : post a message, a note, or send an email with the Discuss app.\nSend Email : post a message, a note, or send an email with the Discuss app.\n- Send SMS : send an SMS, and log them on documents, with the SMS app.\nSend SMS : send an SMS, and log them on documents, with the SMS app.\n- Add Followers or Remove Followers : add or remove followers on a record\nwith the Discuss app.\nAdd Followers or Remove Followers : add or remove followers on a record\nwith the Discuss app.\n- Create Record : create a new record with new values.\nCreate Record : create a new record with new values.\n- Execute Code : execute a block of Python code.\nExecute Code : execute a block of Python code.\n- Send Webhook Notification : send a POST request to an external system.\nSend Webhook Notification : send a POST request to an external system.\n- Execute Existing Actions : define an action that triggers several other server\nactions.\nExecute Existing Actions : define an action that triggers several other server\nactions.\nOnce the server action is configured, click Save & Close to save the activity, and\nreturn to the Create Activities pop-up window, in order to configure the trigger .\nSome of the server action types have advanced configurations available when Developer mode (debug mode) is activated, such as specifying the Allowed Groups that can execute this server\naction.\n\n#### SMS\n\nIf SMS is selected as the Activity Type , the option to Pick a\nTemplate in the SMS Template field is available.\nTo create a new template directly from the SMS Template field, start typing the title of\nthe new template, and select Create and edit⦠to reveal a Create Marketing\nTemplate pop-up window. Proceed to create and configure the new SMS template.\nOnce the SMS template is configured, click Save & Close to save the activity, and return\nto the Create Activities pop-up window, in order to configure the trigger .\nCreating and configuring SMS templates\n\n### Trigger\n\nOnce an activity type is configured, the next step in\nthe Create Activities pop-up window is to define when the activity should be executed.\nThis is done in the Trigger field group.\nTo set an execution delay for the activity from when the trigger type occurs, type a whole number in the interval number input\n(e.g. 2 is valid, 0 is also valid, and 1.5 is not).\n`2`\n`0`\n`1.5`\nNext, select the unit of time for the interval number in the interval type drop-down menu, the\noptions are: Hours , Days , Weeks , and Months .\nIf the interval number is set to 0 and the interval type is set to Hours , the\nactivity will be executed immediately after the trigger type occurs (at the next scheduled run of\nthe Mail: Email Queue Manager cron ).\n`0`\n\n#### Trigger type\n\nTo define the event occurrence that sets the activity into motion, select a trigger type from the\ndrop-down menu:\n- beginning of workflow : the activity is executed when the campaign is started.\nbeginning of workflow : the activity is executed when the campaign is started.\nAll other trigger types reveal a drop-down menu Activity field containing all of the\nother activities in the campaign. Selecting one of these types converts this activity into a child activity to be executed directly after the\nselected Activity :\n- another activity : to be executed after another activity in the campaign.\nanother activity : to be executed after another activity in the campaign.\n- Mail: opened : the activityâs email was opened by the participant.\nMail: opened : the activityâs email was opened by the participant.\n- Mail: not opened : the activityâs email was not opened by the participant.\nMail: not opened : the activityâs email was not opened by the participant.\n- Mail: replied : the activityâs email was replied to by the participant.\nMail: replied : the activityâs email was replied to by the participant.\n- Mail: not replied : the activityâs email was not replied to by the participant.\nMail: not replied : the activityâs email was not replied to by the participant.\n- Mail: clicked : a link in the activityâs email was clicked by the participant.\nMail: clicked : a link in the activityâs email was clicked by the participant.\n- Mail: not clicked : a link in the activityâs email was not clicked by the\nparticipant.\nMail: not clicked : a link in the activityâs email was not clicked by the\nparticipant.\n- Mail: bounced : the activityâs email has bounced.\nMail: bounced : the activityâs email has bounced.\n- SMS: clicked : a link in the activityâs SMS was clicked by the participant.\nSMS: clicked : a link in the activityâs SMS was clicked by the participant.\n- SMS: not clicked : a link in the activityâs SMS was not clicked by the participant.\nSMS: not clicked : a link in the activityâs SMS was not clicked by the participant.\n- SMS: bounced : the activityâs SMS has bounced.\nSMS: bounced : the activityâs SMS has bounced.\nIf the trigger type is set to Mail: clicked , this activity is converted to a child activity and will execute after a\nparticipant clicks on a link from the parent activity defined in the Activity field.\n\n### Expiry duration\n\nOptionally, an Expiry Duration can be defined in the Create Activities pop-up window to cancel the execution of this activity after a specific amount of time. Selecting\nthis checkbox reveals the Cancel after field with interval and interval type inputs.\nType a whole number in the interval number input (e.g. 2 is valid, 0 is also valid, and 1.5 is not). Then, select the unit of time for the interval number in the interval type drop-down menu,\nthe options are: Hours , Days , Weeks , and Months .\n`2`\n`0`\n`1.5`\nIf the interval number is set to 2 and the interval type is set to Days , the\nactivity will be cancelled if it has not been executed within 2 days of the trigger type.\n`2`\n\n### Activity domain\n\nThe DOMAIN section of the Create Activities pop-up window contains fields to\nfurther filter the target audience of the activity.\nThe Activity Filter field focuses this activity, and its child activities , even further on a specific group of the campaignâs filter.\nThe process is the same as defining filters for the\ncampaign, and the fields that are available to filter are also specific to the Target of the campaign.\nThe # record(s) beside the Activity Filter field indicates how many records\nare currently being targeted by this Activity Filter .\nThe Applied Filter displays the combined filters from the Activity Filter and the inherited campaign Filter . This field is read-only.\nThe # record(s) beside the Applied Filter field indicates how many records,\nin total, are currently being targeted by the activity.\n\n## Child activities\n\nActivities that are connected to, and triggered by, another activity are known as, child\nactivities .\nThe activity that triggers a child activity is known as its parent activity .\nA child activity can be added to a campaignâs workflow by hovering over the â Add child\nactivity button, located beneath the desired parent activity.\nThe child activityâs trigger types are specific to the\nparent activity type ( Email , SMS , or Server\nAction ), and are as follows:\nEach trigger the child activity on the following conditions of the parent activity:\n- Add Another Activity : to be executed after the parent activity.\nAdd Another Activity : to be executed after the parent activity.\n- Opened : the email was opened by the participant.\nOpened : the email was opened by the participant.\n- Not Opened : the email was not opened by the participant.\nNot Opened : the email was not opened by the participant.\n- Replied : the email was replied to by the participant.\nReplied : the email was replied to by the participant.\n- Not Replied : the email was not replied to by the participant.\nNot Replied : the email was not replied to by the participant.\n- Clicked : a link in the email was clicked by the participant.\nClicked : a link in the email was clicked by the participant.\n- Not Clicked : a link in the email was not clicked by the participant.\nNot Clicked : a link in the email was not clicked by the participant.\n- Bounced : the email has bounced.\nBounced : the email has bounced.\nTriggers the child activity on the following condition of the parent activity:\n- Add Another Activity : to be executed after the parent activity.\nAdd Another Activity : to be executed after the parent activity.\nEach trigger the child activity on the following conditions of the parent activity:\n- Add Another Activity : to be executed after the parent activity.\nAdd Another Activity : to be executed after the parent activity.\n- Clicked : a link in the SMS was clicked by the participant.\nClicked : a link in the SMS was clicked by the participant.\n- Not Clicked : a link in the SMS was not clicked by the participant.\nNot Clicked : a link in the SMS was not clicked by the participant.\n- Bounced : the SMS has bounced.\nBounced : the SMS has bounced.\nOnce a trigger type is selected, the Create Activities pop-up window opens to configure\nthe child activity. The process is the same as creating a new activity , with the exception that the Trigger field is\npre-filled with the selected trigger type, and the Activity field has the parent\nactivity selected.\n- Testing/running campaigns\nTesting/running campaigns\n- Campaign metrics\n- Audience targeting", "headings": ["Activities", "Activity types", "Trigger", "Expiry duration", "Activity domain", "Child activities"], "doc_id": "a0088ea5c47f4782"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/marketing_card.html", "title": "Marketing Card", "module": "marketing", "section": "Marketing Card", "text": "# Marketing Card\n\nThe Marketing Card application allows users to create and manage promotional campaigns with\npersonalized, digital cards as well as view analytics about their campaign performance. Event\nmarketers can design dynamic card templates using different layouts. They can also expand their\nreach by emailing cards to recipients in bulk and allow recipients to share the cards to their own\nnetworks.\n\n## Card campaigns\n\nTo see a dashboard of all created card campaigns, navigate to the Marketing Card app. By\ndefault, card campaigns appear in the (List) view, providing users\nwith detailed information about each campaign. Alternatively, the (Kanban) view provides users with a card-view of all campaigns, along with icons\ndisplaying each campaignâs performance metrics .\n\n## Create a campaign\n\nTo create a campaign, click New . This opens a new campaign form, allowing users to\nconfigure campaign information, design the card layout , and customize the campaign message .\nBegin by providing a name for the campaign in the Name field. This field is required .\nThen, in the Recipients drop-down menu, users must select the type of recipient of\nthe campaign. The following recipient types are provided:\n- Contact : Send cards to existing contacts.\nContact : Send cards to existing contacts.\n- Event Booth : Send cards contacts with registered event booths .\nEvent Booth : Send cards contacts with registered event booths .\n- Event Registration : Send cards to contacts with event registrations .\nEvent Registration : Send cards to contacts with event registrations .\n- Event Track : Send cards to contacts with event tracks .\nEvent Track : Send cards to contacts with event tracks .\nOnce selected, a Preview on⦠field appears, allowing the user to preview the campaign\non a specific contact from the selected recipient type. After choosing a preview target, a Preview button appears above the campaign form.\nNext, fill out the following fields:\n- Post Link : Relative URL of a page on the userâs Odoo website.\nPost Link : Relative URL of a page on the userâs Odoo website.\n- Post Suggestion : Description below the card when sharing on X.\nPost Suggestion : Description below the card when sharing on X.\n- Responsible : Internal user responsible for managing the card campaign.\nResponsible : Internal user responsible for managing the card campaign.\n- Tags : Relevant tags for the campaign.\nTags : Relevant tags for the campaign.\n\n### Card Layout tab\n\nThe Card Layout tab on the campaign form provides options to configure the text and\nappearance of the card.\nTo customize the card, users can configure the following fields:\n- Background : Upload an image to be displayed as the card background.\nBackground : Upload an image to be displayed as the card background.\n- Header : Enter the main header text.\nHeader : Enter the main header text.\n- Sub-Header : Enter a sub-header text, displayed above the header.\nSub-Header : Enter a sub-header text, displayed above the header.\n- Section : Enter a text to be displayed in the lower section.\nSection : Enter a text to be displayed in the lower section.\n- Sub-section 1 : Enter a text to be displayed below the lower section.\nSub-section 1 : Enter a text to be displayed below the lower section.\n- Sub-section 2 : Enter a text to be displayed next to Sub-section 1 .\nSub-section 2 : Enter a text to be displayed next to Sub-section 1 .\n- Dynamic Image 1 : Select an existing image from the selected recipientâs model to be\ndisplayed in a corner of the card. This field only takes a dynamic placeholder as input.\nDynamic Image 1 : Select an existing image from the selected recipientâs model to be\ndisplayed in a corner of the card. This field only takes a dynamic placeholder as input.\n- Dynamic Image 2 : Select an existing image from the selected recipientâs model to be\ndisplayed in a corner of the card. This field only takes a dynamic placeholder as input.\nDynamic Image 2 : Select an existing image from the selected recipientâs model to be\ndisplayed in a corner of the card. This field only takes a dynamic placeholder as input.\n- Button : Enter a text for the button.\nButton : Enter a text for the button.\nA preview of the resulting card allows the user to interactively visualize their configuration.\nAbove the preview are selectable themes to change the appearance of the card.\n\n#### Dynamic placeholders\n\nBy default, the text content of each field is static. However, the fields listed (except for Background and Button ) can also be populated automatically using dynamic placeholders to personalize the card content\nfor different recipients.\nTo do this, click the checkmark next to the field. Then, browse and select a placeholder value to be\npopulated from the selected recipient.\n\n### Recipient Message tab\n\nThe Recipient Message tab on the campaign form provides options to configure messages\nsent to recipients when sharing the card.\nUsers can configure the following fields:\n- Request : Enter a request to be displayed at the top of the campaign.\nRequest : Enter a request to be displayed at the top of the campaign.\n- Request Description : Enter a description of the request, displayed below the request.\nRequest Description : Enter a description of the request, displayed below the request.\n- Reward Link : Provide a link to reward recipients who share the campaign.\nReward Link : Provide a link to reward recipients who share the campaign.\n- Thank You Message : Enter a message to thank recipients for sharing the campaign.\nThank You Message : Enter a message to thank recipients for sharing the campaign.\n\n## Preview campaign\n\nOnce the card campaign form has been configured, click the Preview button to view a copy\nof a campaign to be sent to recipients.\nThe campaign layout is organized with the request and the request description displayed at the very\ntop, followed by the card, then a list of social media icons allowing the user to share the campaign\nacross different platforms.\n\n## Campaign mailing\n\nAfter configuring a card campaign, users can configure mailing options then share the cards with\nrecipients.\n\n### Configure mailing\n\nTo configure the campaign mailing, click Send . On the Send Cards pop-up\nwindow, users configure the email form to filter or specify\nrecipients and customize the body of the message.\nTo start, enter the subject of the mailing in the Subject field.\nThe Card Campaign and Recipients fields are already populated. The filtering\nrule under the Recipients field can be modified to update the mailing list.\nThe Mail Body tab is automatically populated with a default message along with the card.\nThis message can be modified using the website editor.\nAfter configuring the email form, click the Update (#) Cards button to generate or\nupdate the personalized cards for each recipient. Then, on the Confirm Cards Update pop-up window, click Update Cards to create a draft mailing, or click Cancel to cancel.\nAlternatively, clicking Save also creates a draft mailing.\n\n### Send cards\n\nOnce the cards have been updated, users can either send the cards or schedule the mailing for a\nfuture date.\nTo send the mailing, navigate to Marketing Cards ⣠Campaigns , select the\ncampaign, then click the Mailings .\nNext, select the mailing and click Send . On the Ready to unleash emails? pop-up window, click Send to all to send the cards to the specified recipients.\nAlternatively, to schedule for a later date, click Schedule . On the pop-up window,\nselect a date in the Send on field. Finally, click Schedule to schedule the\nmailing.\nAfter sending or scheduling a mailing campaign, a series of smart buttons appear, showing the engagement metrics for the campaign.\n\n## Campaign metrics\n\nAt any point, users can view metrics about the campaign, displayed as smart buttons at the top of\nthe campaign form.\nThe following buttons provide specific information about the performance of the campaign:\n- Mailings : View a list of recipients of the campaign.\nMailings : View a list of recipients of the campaign.\n- Clicks : View how many times the campaign was clicked. This\nbutton is not clickable.\nClicks : View how many times the campaign was clicked. This\nbutton is not clickable.\n- Cards : View how many cards were sent to recipients.\nCards : View how many cards were sent to recipients.\n- Opened : View how many times the campaign was opened.\nOpened : View how many times the campaign was opened.\n- Shared : View how many times the campaign was shared.\nShared : View how many times the campaign was shared.\nClicking on a smart button opens a list of occurrences or instances of the metric (e.g., a list of\ntimes a card was created for a recipient).", "headings": ["Card campaigns", "Create a campaign", "Card Layout tab", "Recipient Message tab", "Preview campaign", "Campaign mailing", "Configure mailing", "Send cards", "Campaign metrics"], "doc_id": "476517af9b085b93"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/sms_marketing.html", "title": "SMS Marketing", "module": "marketing", "section": "SMS Marketing", "text": "# SMS Marketing\n\nUtilizing SMS outreach in communication strategies can help\ncompanies expand their market reach, especially in some countries, where emails might not be very\ncommon, or even used at all.\nOdooâs SMS Marketing application can also help boost conversion rates around valuable actions,\nsuch as event registrations, free trials, purchases, etc., since text and mobile-based marketing\nchannels typically yield higher CTOR and CTR outcomes.\nOdoo Tutorials: Marketing\n\n#### Create SMS messages\n\nExplore how to create, configure, send, and schedule SMS messages.\n\n#### SMS analysis\n\nExamine detailed reporting metrics related to every aspect of sent SMS messages.\n\n#### SMS marketing campaigns\n\nDiscover how to create and customize SMS marketing campaigns for any occasion with Odoo.\n\n#### Mailing lists and blacklists\n\nSet up custom mailing lists and blacklists to ensure all SMS messages reach the right\nrecipients.\n\n#### Pricing and FAQ\n\nFind out more about Odooâs SMS pricing, and check out some of the most frequently asked\nquestions.\n\n#### Twilio\n\nIn some countries with stricter regulations, the out-of-the-box solution proposed by Odoo may\nnot work. In this case, you can use our Twilio integration to send SMS worldwide.\n\n## SMS marketing dashboard\n\nWhen the application is opened, Odoo displays the main SMS Marketing dashboard, which\nshowcases the various SMS mailings that have been created, along with pertinent information and data\nrelated to that specific message.\nThe Kanban view is the default Odoo uses when the application is\nopened, which provides an organized display of the SMS mailings that have been created, and what\ntheir current status is at the moment.\nAn SMS mailing can have one of the following statuses: Draft , In Queue , Sending , or Sent .\nIn the upper right corner of the main SMS Marketing dashboard, there are a few different\nview options to choose from. Each one provides a unique take on the same SMS information.\nThe List view provides the same useful data related to SMS\nmailings, but in a more traditional list layout.\nThe Calendar view shows when SMS mailings are scheduled or have been\nsent. Clicking a future date opens a blank SMS template to be scheduled for that date.\nLastly, the Graph view visualizes that same SMS-related data in\nseries of graphs and charts. Odoo also provides various ways to sort and group the data for more\ndetailed analysis.", "headings": ["SMS marketing dashboard"], "doc_id": "e4352b0c9648236a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/sms_marketing/create_sms.html", "title": "Create SMS messages", "module": "marketing", "section": "Create SMS messages", "text": "# Create SMS messages\n\nTo start, click Create on the main SMS Marketing dashboard, and Odoo reveals\na blank SMS template form, which can be configured in a number of different ways.\nFirst, give the mailing a Subject , which describes what the mailing is about.\nNext, in the Recipients field, choose to whom this SMS will be sent. By default, Odoo has Mailing List selected. If this is the desired Recipients field option, specify which mailing list Odoo should send this SMS to in the Select Mailing List field.\nTo create (or edit) a mailing list, go to Mailing Lists ⣠Mailing List . There,\nOdoo displays all previously created mailing lists, along with various types of data related to\nthat specific list (e.g. number of contacts, mailings, recipients, etc.).\nTo learn more about mailing lists and contacts, check out Mailing lists and blacklists .\nTo reveal all the possible options in the Recipients field, click the field to see all\nthe choices Odoo makes available.\nWhen another field (other than Mailing List ) is selected, the option to specify that\nchosen field even further becomes available â either with a default recipient filter equation that\nappears automatically (which can be customized to fit any business need), or, if no default\nrecipient filter equation is present, an Add Filter button will appear.\nClicking the Add Filter button, reveals fully customizable domain rule fields, which can\nbe configured similar to an equation. You can create multiple recipient rules, if necessary.\nThen, Odoo will only send the SMS to recipients who fit into\nwhatever criteria is configured in those fields. Multiple rules can be added.\nIf Contact is chosen, all of the Contacts records in the Odoo database (vendors,\ncustomers, etc.) will receive the SMS , by default â unless more\nspecific recipient rules are entered.\nFor instance, the message below will only be sent to contacts in the database that are located in\nthe United States (e.g. Country > Country Name equals United States ), and they havenât\nblacklisted themselves from any mailings (e.g. Blacklist > is > not set ).\n`Country`\n`CountryName`\n`UnitedStates`\n`Blacklist`\n`is`\n`notset`\n\n## Writing SMS messages\n\nEnter the content of the SMS in the text field, found in the SMS Content tab. Links and emojis can also be included. Beneath the text field, Odoo\ndisplays how many characters are used in the message, along with how many SMS mailings it will take to deliver the complete message.\nTo check the price of sending an SMS for a country, click on the Information icon.\nCredits must be purchased from Odoo in order to take advantage of the SMS Marketing app; SMS messages will not be sent without credits.\n\n## Track links used in SMS messages\n\nWhen links are used in SMS messages, Odoo automatically generates\nlink trackers to gather analytical data and metrics related to those specific links, which can be\nfound by going to Configuration ⣠Link Tracker .\n\n### Adjust SMS settings\n\nUnder the Settings tab of the SMS template, there is an option to Include\nopt-out link . If activated, the recipient is able to unsubscribe from the mailing list, thus\navoiding all future mailings.\nAn employee can be designated as the Responsible in the Tracking section of\nthe Settings tab, as well.\n\n### Send SMS messages\n\nOnce a mailing is created, choose when Odoo should deliver the message from the following options:\n- Send : sends the message immediately. Consider using this option if the recipient list\nis highly refined, or in cases that involve fast approaching deadlines, such as a âflash sale.â\nSend : sends the message immediately. Consider using this option if the recipient list\nis highly refined, or in cases that involve fast approaching deadlines, such as a âflash sale.â\n- Schedule : choose a day (and time) for Odoo to send the mailing. This is typically the\nbest option for mailings related to a specific event. Such a method can also be used to promote a\nlimited-time offer, or to help plan a companyâs content strategy in advance.\nSchedule : choose a day (and time) for Odoo to send the mailing. This is typically the\nbest option for mailings related to a specific event. Such a method can also be used to promote a\nlimited-time offer, or to help plan a companyâs content strategy in advance.\n- Test : allows for an SMS to be sent to one or multiple\nnumbers for test purposes. Remember to use a comma between phone numbers if multiple numbers are\nused as recipients.\nTest : allows for an SMS to be sent to one or multiple\nnumbers for test purposes. Remember to use a comma between phone numbers if multiple numbers are\nused as recipients.", "headings": ["Writing SMS messages", "Track links used in SMS messages", "Adjust SMS settings", "Send SMS messages"], "doc_id": "467f70409493fa6f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/sms_marketing/mailing_lists_blacklists.html", "title": "Mailing lists and blacklists", "module": "marketing", "section": "Mailing lists and blacklists", "text": "# Mailing lists and blacklists\n\nCreating or importing mailing lists in Odoo is very useful when curating content to specific groups\nof people that already share similar demographics or interests. Mailing lists are also a great way\nto get started if a company is migrating from another system, and already has a established\naudience.\nMoreover, providing an audience with the option to âunsubscribeâ from mailings, helps businesses\nmaintain good customer relations, by giving recipients the power to control what they are (and\narenât) sent.\n\n## Mailing lists\n\nIn the SMS Marketing app, thereâs an option on the header menu called Mailing\nLists . When clicked, a sub-menu is revealed with options for Mailing Lists and Mailing List Contacts .\nClick Mailing Lists ⣠Mailing Lists to see an overview of all mailing lists in\nthe database.\nTo edit any existing list, select the desired list from the Mailing Lists page, and\nproceed to modify it in a number of ways.\nTo create a new mailing list, click Create in the upper left corner of the Mailing Lists page. Doing so, will reveal a blank mailing list template form.\nFirst, choose a name for the Mailing List , and activate the option Is\nPublic , to make the mailing list accessible to recipients on the Subscription Management\npage . Doing so allows users to update their subscription preferences at any time.\nChecking the Is Public box is not required, but is recommended to maintain good\ncustomer relations.\nWhen those fields are filled in, click Create to finalize the form. Then on the main Mailing Lists dashboard, the new mailing list that was just created will be accessible.\nTo edit or customize the mailing list further, select the mailing list from the main Mailing Lists page to reveal the mailing list detail form.\nAlong the top of the mailing list detail form, there are various analytical smart buttons displaying\nstatistics for different metrics related to the mailing list (e.g. Recipients , Mailings , etc.).\nTo review or edit any of those elements, click the desired smart button to reveal a separate page\nwith in-depth data associated with the mailing list.\nTo make changes to the mailing list itself, click the Edit button in the upper-left\ncorner of the mailing list detail form.\nDonât forget to hit the Save button once changes have been made.\n\n## Mailing lists contacts\n\nAccess contacts information from one or more mailing lists navigate to Mailing Lists\n⣠Mailing List Contacts to reveal a dashboard with with all the contacts associated with one or\nmore of the configured mailing lists in the database.\nBy default, Odoo reveals the Mailing List Contacts page with the Exclude\nBlacklisted Phone filter in the search bar. Therefore only showing contact information for\nrecipients who still want to receive communications and mailings.\n\n### Communication history in the Chatter\n\nAn accessible record of every sent mailing(s) is kept on each recipientâs chatter section, located\nbeneath a recipientâs contact form (in the Contacts application).\nDatabase users can reference the chatter to easily keep track of communications, and see a history\nof interactions with contacts and prospects.\nFor example, sales representatives can use the chatter to quickly find out which SMS mailing promotions a certain customer has received (or not received).\n\n## Blacklist\n\nOdoo SMS Marketing has a Blacklist feature that provides recipients with the power to\nadd their phone number to a list of people who no longer want to receieve communications or\nmailings.\nThis is also known as the unsubscribe process: customers will automatically be added onto a blacklist , if they click Unsubscribe , via their Subscription Management page. Customers can also be added manually to the blacklist, if necessary.\nTo see a complete collection of blacklisted numbers, navigate to the SMS Marketing\napp ⣠Configuration ⣠Blacklisted Phone Numbers to reveal a dashboard containing every\nblacklisted phone number in the database.\nTo manually add a number to a blacklist, click the Create button in the upper-left\ncorner of the dashboard and enter the phone number on the next pageâs form. Thereâs also a\ncheckbox to indicate whether that particular phone numnber is Active (or not).\nOnce the form is completed, click Save to add it to the Blacklisted Phone\nNumbers list. To remove any number from the blacklist, select the desired number on the dashboard,\nand then, on the phone numberâs form, click Unblacklist .\n\n### Importing blacklists\n\nDuring a software/platform migration, it is possible to import an already existing blacklist of\ncontacts. This would include customers, who have already asked to be blacklisted` on SMS mailings.\nTo do that, navigate to SMS Marketing app ⣠Configuration ⣠Blacklisted Phone\nNumbers , and then select the Favorites drop-down menu (beneath the search bar), and\nclick Import records .", "headings": ["Mailing lists", "Mailing lists contacts", "Communication history in the Chatter", "Blacklist", "Importing blacklists"], "doc_id": "d9d5e10be9eec8fb"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/sms_marketing/marketing_campaigns.html", "title": "SMS campaign settings", "module": "marketing", "section": "SMS campaign settings", "text": "# SMS campaign settings\n\nUtilizing SMS campaigns with Odoo SMS Marketing isnât just an\neffective advertisement strategy, itâs also a great way to remind people about upcoming events,\nissued invoices, and so much more.\nBut, before SMS campaigns can be created (and sent), a few specific\nsettings and features must be enabled first.\n\n## SMS campaign setting\n\nTo enable SMS campaigns in Odoo, make sure the Mailing Campaigns feature is activated by going to Email Marketing ⣠Configuration ⣠Settings ,\nand then enable Mailing Campaigns and Save the changes.\nActivating the Mailing Campaigns feature in the General Settings also enables the A/B Test feature.\nOnce the setting is enabled, navigate back to the SMS Marketing app, and notice the Campaigns header menu is now available for use. Similarly, the A/B Test tab\nis now also available on every SMS template form.\n\n## A/B tests\n\nA/B Tests allows any SMS mailings to be tested against\nother versions within the same campaign, in order to compare which version is the most successful in\nproducing engagement and/or conversion outcomes.\nOn an SMS template form, under the A/B Tests tab,\ninitially, thereâs only a single checkbox labeled: Allow A/B Testing.\nWhen clicked, a series of other options appear.\nIn the first field, enter a desired percentage of recipients to conduct the A/B Test on.\nBeneath the percentage field is the Winner Selection field. This is what Odoo will use\nto determine the successful result of an A/B Test. In other words, this tells Odoo how to pick a\nwinning A/B test.\nThe following sections are available: Manual , Highest Click Rate , Leads , Quotations , or Revenues .\nFinally, the Send Final On field is listed. This represents the date-time that Odoo uses\nas a deadline to determine the winning mailing variation. Then, Odoo sends that winning mailing\nvariation to the remaining recipients, who werenât involved in the test, at that prior date and\ntime.\nQuickly create different versions of the mailing to add to the A/B Test by clicking the Create an Alternate Version button.\nRemember, the winning mailing variation is based on the criteria selected in the Winner Selection field.\n\n## Campaigns page\n\nTo create, edit, or analyze any campaign, click Campaigns in the header menu of the SMS Marketing app. On the Campaigns page, each campaign displays various\ninformation related to the mailings associated with that campaign (e.g. number of emails, social\nposts, SMSs, and push notifications).\n\n## Campaign templates\n\nClick Create to create a new campaign, and Odoo reveals a blank campaign template form\nto fill out. Alternatively, select any previously-made campaign in order to duplicate, review, or\nedit its campaign template form.\nWith each campaign, the options to Send New Mailing , Send SMS , Send Social Post , and Push Notifications are available above the template\nform.\nWhenever one of those communication options is added to the campaign, Odoo will create a new\ncorresponding tab on the template form, where those types of messages can be reviewed or edited,\nalong with various data sets related to each specific mailing.\nAt the top of the template, there are various analytical smart buttons. When clicked, Odoo reveals\nin-depth metrics related to that specific topic (e.g. Engagement , Opportunities , etc.) on a separate page.\nBeneath the smart buttons, are fields for Campaign Name and Responsible .\nOdoo also allows for various Tags to be added, as well (if necessary).\n\n## Sending SMSs through the Contacts app\n\nSending SMS mailings directly through a contactâs form is available\nby default.\nIn order to send an SMS in this fashion, navigate to the Contacts app, select the desired contact in the database, and click on the SMS icon on the contact form (next to the Phone Number field).\nTo send a message to multiple contacts at once, navigate to the main Contacts app\nmain dashboard, choose the List View , and select all the desired contacts to whom the\nmessage should be sent. Then, under Action , select Send SMS .\n\n## Set up SMS templates for future use\n\nIn order to set up SMS Templates for future use, activate developer mode , by navigating to the main Odoo dashboard that is full of apps, and select the Settings app . Then, scroll down to the Developer Tools section, and\nclick Activate the Developer Mode .\nOnce developer mode is activated, the main Odoo dashboard appears once more, with a now-visible\nbug icon, which is located at the top-right corner of the dashboard; this bug icon indicates that\ndeveloper mode is currently active.\nNext return to the Settings app and, in the now-visible header menus at the top,\nchoose Technical ⣠SMS Templates to begin setting up SMS templates for future marketing campaigns.\nInside of the SMS Templates dashboard, Odoo reveals an entire page of SMS templates. The default List view showcases each templateâs name, and\nto which recipients it applies.\nOn this page, SMS templates can be edited or created from scratch.", "headings": ["SMS campaign setting", "A/B tests", "Campaigns page", "Campaign templates", "Sending SMSs through the Contacts app", "Set up SMS templates for future use"], "doc_id": "64ac01fb62844b68"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/sms_marketing/pricing_and_faq.html", "title": "SMS Pricing and FAQ", "module": "marketing", "section": "SMS Pricing and FAQ", "text": "# SMS Pricing and FAQ\n\n## What do I need to send SMSs?\n\nSMS Text Messaging is an In-App Purchase (IAP) service that requires prepaid credits to work.\n\n## How many types of SMSs are there?\n\nThere are 2 types: GSM7 and UNICODE.\nGSM7 is the standard format, with a limit of 160 characters per message, that includes the\nfollowing characters:\nUNICODE is the format applied if a special character, that is not in the GSM7 list, is used.\nLimit per SMS: 70 characters.\nFor GSM7 SMS the size limit is 160 characters, and for Unicode is 70. Above these limits, the\ncontent is divided into a multi-part message and the limit of characters is lowered to 153 for\nGSM7 and to 67 for Unicode. Then, in real-time, the system displays the number of SMS mailings\nthe message represents.\n\n## How much does it cost to send an SMS?\n\nThe price of an SMS depends on the destination and the length (number of characters) of the\nmessage. To see the price per country, please consult : Odoo SMS - FAQ .\nThe number of SMSs a message represents will always be available in the database.\n\n## How to buy credits\n\nGo to Settings ⣠Buy Credits .\nOr go to Settings ⣠View my Services .\nIf Odoo Online (Saas) is being used, along with the Enterprise version, free trial credits are\navailable to test the feature.\n\n## More common questions\n\n- Is there an expiration time for my credits? No, credits do not expire.\n- Can I send an SMS to a phone number (which is not a mobile phone) because I see the icon in\nfront of the field âphoneâ? Only if that phone number supports SMS (e.g. SIP phones).\n- Do I receive an invoice to buy my credits? Yes.\n- Can the recipient answer me? No, it is not possible to reply to the SMS.\n- What happens if I send multiple SMSs at once, but I donât have enough credits to send them\nall? Multiple SMS communications at once at are counted as a single transaction, so no SMSs will be\nsent until there are enough credits to send them all.\n- Do I have a history of the sent SMSs? A history of sent SMSs, along with all pertinent information related to its sent contacts (and\nthe message itself), can be found in the Sent column of the main SMS\nMarketing dashboard (while in Kanban view). For more detailed information, select a desired SMS from the main dashboard (in Kanban view), and click on either link in the blue banner above the SMS detail form\nto learn more.\nFor more detailed information, select a desired SMS from the main dashboard (in Kanban view), and click on either link in the blue banner above the SMS detail form\nto learn more.\n- Can I send as many SMSs I want at once? Yes, if you have enough credits.\n- If an SMS is sent to a number that doesnât exist in the list of recipients, will credits be\nlost? No, not if the phone number is incorrectly formatted (e.g. too many digits). However, if the\nSMS is sent to the wrong person (or to a fake number), the credit for that SMS will be lost.\n- What happens if I send my SMS to a paying number (e.g.: a contest to win a ticket for a\nfestival)? The SMS will not be delivered to that kind of number, so no charges will be made.\n- Can I identify the numbers that do not exist when I send several SMSs? Only the ones that have an invalid format.\n- How does the GDPR regulation affect this service? Please find our Privacy Policy here .\n- Can I use my own SMS provider? Yes, but it is not possible out-of-the-box. Odoo experts can help customize a database to allow\nfor the use of a personal SMS provider. Please check our success packs here .", "headings": ["What do I need to send SMSs?", "How many types of SMSs are there?", "How much does it cost to send an SMS?", "How to buy credits", "More common questions"], "doc_id": "7325f8edc8f5c78a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/sms_marketing/sms_analysis.html", "title": "SMS analysis", "module": "marketing", "section": "SMS analysis", "text": "# SMS analysis\n\nOn the Reporting page (accessible via the Reporting option in the\nheader menu), there are options to apply different combinations of Filters and Measures to view metrics in a number of different layouts (e.g. Graph , List , and Cohort views.)\nEach Reporting metric view option allows for more extensive performance analysis of SMS mailings.\nFor example, while in the default Graph view, SMS data\nis visualized as different graphs and charts, which can be sorted and grouped in various ways (e.g. Measures drop down menu).\nSMS messages can be sent using automation rules in Odoo. Odoo Studio is required to use\nautomation rules.\nTo install Odoo Studio , go to the Apps application . Then, using the Search⦠bar, search for studio .\n`studio`\nIf it is not already installed, click Install .\nAdding the Studio application upgrades the subscription status to Custom , which increases the\ncost. Consult support , or reach out to the databaseâs\ncustomer success manager, with any questions on making the change.\nTo use automation rules, navigate in developer mode , to Settings app ⣠Technical menu ⣠Automation section ⣠Automation Rules .\nThen, click New to create a new rule.\nEnter a name for the automation rule, and select a Model to implement this rule on.\nBased on the selection for the Trigger , additional fields will populate below. Set\nthe Trigger to one of the following options:\n- User is set\n- State is set to\n- On archived\n- On unarchived\n- Based on date field\n- After creation\n- After last update\n- On save\n- On deletion\n- On UI change\n- On webhook\nOther options may appear based on the Model selected. For example if the Calendar Event model is selected, then the following options appear in addition to\nthose above:\n- On incoming message\n- On outgoing message\nUnder the Before Update Domain field, set a condition to be met before updating the\nrecord. Click Edit Domain to set record parameters.\nUnder the Actions To Do tab, select Add an action . Next, in the resulting Create Actions pop-up window, select Send SMS , and set the Allowed Groups . Allowed Groups are the access rights groups that are\nallowed to execute this rule. Leave the field empty to allow all groups. See this documentation: Create and modify groups .\nNext, set the SMS Template and choose whether the SMS message should be logged as a\nnote, by making a selection in the drop-down menu: Send SMS as . Click Save and Close to save the changes to this new action.\nAdd any necessary notes under the Notes tab. Finally, navigate away from the\ncompleted automation rule, or manually save (by clicking the âï¸ (cloud) icon), to\nimplement the change.", "headings": [], "doc_id": "b51edab818901d44"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/sms_marketing/twilio.html", "title": "SMS via Twilio", "module": "marketing", "section": "SMS via Twilio", "text": "# SMS via Twilio\n\n## What is Twilio\n\nTwilio is a third-party provider that enables you to send SMS messages to your clients. Odoo\nprovides an easy way to use this service within your Odoo apps.\n\n### Why would I need it?\n\nAlthough Odoo already comes with an out-of-the-box (IAP) solution for SMS messages, it might not\nwork in some countries with stricter legal requirements. Currently, Odoo registers itself when\npossible to avoid extra setup for its customers, however in some countries that is not enough and\nthe client itself must do it. This can be done through Twilio.\n\n## Setup your Twilio account\n\nBy creating a Twilio account, you will be able to create a virtual phone number from which you will\nbe able to send SMS messages. These cost credits that are to be bought on Twilio, not Odoo.\n- Go to Twilio\n- Sign up and create a Twilio account\nSign up and create a Twilio account\n- Within your Twilio account, you can create multiple accounts (e.g. one for testing, one for each\nsub-company, etc.)\nWithin your Twilio account, you can create multiple accounts (e.g. one for testing, one for each\nsub-company, etc.)\n- Create a new account Enter the name, and select Twilio for the type Select your Billing Country and click Create new account Select the different options that match your needs For the Twilio product , select SMS For How to build with Twilio , select With no code at all For your goal , select 3rd party integrations Click on Get Started with Twilio\n- Enter the name, and select Twilio for the type\nEnter the name, and select Twilio for the type\n- Select your Billing Country and click Create new account\nSelect your Billing Country and click Create new account\n- Select the different options that match your needs For the Twilio product , select SMS For How to build with Twilio , select With no code at all For your goal , select 3rd party integrations\nSelect the different options that match your needs\n- For the Twilio product , select SMS\nFor the Twilio product , select SMS\n- For How to build with Twilio , select With no code at all\nFor How to build with Twilio , select With no code at all\n- For your goal , select 3rd party integrations\nFor your goal , select 3rd party integrations\n- Click on Get Started with Twilio\nClick on Get Started with Twilio\n- You account is now created, and you should arrive on your Dashboard\nYou account is now created, and you should arrive on your Dashboard\n- Go to Phone Numbers ⣠Manage ⣠Buy a number\nGo to Phone Numbers ⣠Manage ⣠Buy a number\n- Buy a number (it is a paying service, but you should have received some credits to start with)\nBuy a number (it is a paying service, but you should have received some credits to start with)\n- Go back to bottom of the Dashboard page\nGo back to bottom of the Dashboard page\n- Copy the Account SID and Auth Token\nCopy the Account SID and Auth Token\nIn case of a testing account, you will only be able to send SMS to phones that you have verified\nwithin Twilioâs console .\nSending SMS to some countries (such as the US or Canada) might require a registration. This can\nonly be done by you, and not by Odoo. Please check out Twilioâs Help Center .\n\n## Setup Odoo to use Twilio\n\n- Install the Twilio SMS module ( sms_twilio )\nInstall the Twilio SMS module ( sms_twilio )\n`sms_twilio`\n- In Odoo, go to Settings ⣠General Settings ⣠Contacts ⣠Send SMS , select Send via Twilio option, and save your change.\nIn Odoo, go to Settings ⣠General Settings ⣠Contacts ⣠Send SMS , select Send via Twilio option, and save your change.\n- Go back to that option, and click Configure Twilio Account\nGo back to that option, and click Configure Twilio Account\n- Paste the copied credentials accordingly\nPaste the copied credentials accordingly\n- Click on Reload numbers\nClick on Reload numbers\n- Your newly bought phone number should appear in the list\nYour newly bought phone number should appear in the list\n- You can use the Test Number field to send an SMS\nYou can use the Test Number field to send an SMS\nYou can have multiple numbers (for instance once per country, or one per campaign), in that case,\nyou can reorder the numbers. By default, when sending an SMS to a client, Odoo will select the\nnumber whose country is the same as the client. If none matches, Odoo will use the first number\navailable from the list respecting the order you have chosen.", "headings": ["What is Twilio", "Why would I need it?", "Setup your Twilio account", "Setup Odoo to use Twilio"], "doc_id": "053d55636826d026"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/social_marketing.html", "title": "Social Marketing", "module": "marketing", "section": "Social Marketing", "text": "# Social Marketing\n\nOdooâs Social Marketing application helps content marketers create and schedule posts, manage\nvarious social media accounts, analyze content effectiveness, and engage directly with social media\nfollowers in one, centralized location.\n- Odoo Tutorials: Marketing\nOdoo Tutorials: Marketing\n\n#### Social posts\n\nDiscover everything there is to know about how to create and customize social media posts\nusing Odoo.\n\n#### Social campaigns\n\nLearn about all the different campaign and marketing tools this application has to offer.\n\n## Social media accounts\n\nIn order to create social posts and analyze content with Odoo Social Marketing , social media\naccounts must be added as a stream on the applicationâs main dashboard.\nBe aware that personal profiles cannot be added as a stream. The main use of Odoo Social\nMarketing is to manage and analyze business accounts on social media platforms.\nOdoo Social Marketing has some limitations in regards to social media accounts. For example,\nOdoo cannot handle a large quantity of various pages (e.g. ~40 pages) under the same company.\nThe same limitations are present in a multi-company environment because of how the API is\nconstructed.\nIn multi-company environments, if every company doesnât activate a page at once, it will result\nin a permission error.\nFor example, if Company 1 is the only company selected from the main Odoo dashboard, and\nactivates Facebook Page 1 and Facebook Page 2 , then those pages will be accesible on the Social Marketing dashboard.\nHowever, if on that same database, the user adds Company 2 from the company drop-down menu in the\nheader, and attempts to add those same streams, it results in a permission error.\n\n## Social media streams\n\nTo add a social media business account as a stream, navigate to Social Marketing\napp and select the Add A Stream button located in the upper-left corner. Doing so\nreveals an Add a Stream pop-up window.\nIn the Add a Stream pop-up window, choose to Link a new account for a\nbusiness from any of the following popular social media platforms: Facebook , Instagram , LinkedIn , Twitter , and YouTube .\nAfter clicking the desired social media outlet from the Add a Stream pop-up window, Odoo\nnavigates directly to that specific social media outletâs authorization page, where permission must\nbe granted, in order for Odoo to add that particular social media account as a stream to the Social\nMarketing application.\nOnce permission is granted, Odoo navigates back to the Feed on the main Social Marketing dashboard, and a new column, with that accountâs posts, is added.\nAccounts/streams can be added at any time.\nA Facebook page can be added as long as the Facebook account that grants\npermission is the administrator for the page. It should also be noted that different pages can be\nadded for different streams.\nInstagram accounts are added through a Facebook login because it uses the\nsame API. This means, an Instagram account needs to be linked to a Facebook account in order for it to show up as a stream in Odoo.\n\n## Social media page\n\nAnother way to quickly link social media accounts to Odoo Social Marketing can be done on the Social Media page. To access the Social Media page, navigate to Social Marketing app ⣠Configuration ⣠Social Media .\nOn the Social Media page there is a collection of all social media options, each\ncomplete with a Link account button: Facebook , Instagram , LinkedIn , Twitter , YouTube , and Push Notifications .\n\n## Social accounts page\n\nTo see a list of all social accounts and websites linked to the database, go to Social Marketing app ⣠Configuration ⣠Social Accounts . This Social\nAccounts display the Name , the Handle/Short Name , the Social\nMedia platform, who it was Created by , and the Company to which it is\nassociated.\nTo edit/modify any of the social accounts on this page, simply select the desired account from the\nlist on this page, and proceed to make any adjustments necessary.\n\n## Social streams page\n\nTo view a separate page with all the social media streams that have been added to the main Social\nMarketing dashboard, navigate to Social Marketing app ⣠Configuration ⣠Social\nStreams .\nHere, the social stream information is organized in a list with the Social Media , the Title of the stream, the Type of the stream (e.g. Posts , Keyword , etc.), who it was Created by , and the Company to which\nit is associated.\nTo modify any streamâs information, simply click the desired stream from the list, and proceed to\nmake any necessary adjustments.\n\n## Visitors\n\nTo see a complete overview of all the people who have visited the website(s) connected to the\ndatabase, navigate to Social Marketing app ⣠Visitors .\nHere, Odoo provides a detailed layout of all the visitorsâ pertinent information in a default kanban\nview. If visitors already have contact information in the database, the option to send them an Email and/or an SMS is available.\nThis same visitor data can also be viewed as a list or a graph. Those view options are located in\nthe upper-right corner of the Visitors page.", "headings": ["Social media accounts", "Social media streams", "Social media page", "Social accounts page", "Social streams page", "Visitors"], "doc_id": "597d4e011c8511f6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/social_marketing/social_campaigns.html", "title": "Social marketing campaigns", "module": "marketing", "section": "Social marketing campaigns", "text": "# Social marketing campaigns\n\nSocial marketing campaigns help companies connect directly with the marketplace. These campaigns\nare helpful when introducing a new product to customers, explaining the value of a product or\nservice, or when advertising an upcoming event or product release.\nThe most effective social marketing campaigns typically involve multiple channels to maximize\ncontent distribution, and Odooâs Social Marketing application acts as a singular control center to\nmonitor, plan, post, track, and analyze all of the various content and content channels within a\nsingle dashboard.\n\n## Campaigns page\n\nTo access a complete overview of all social marketing campaigns, open the Social\nMarketing application, and click Campaigns from the header menu. Doing so reveals\na separate page with every campaign in a default kanban view.\nEach stage in the kanban view can be edited, by clicking the gear icon to the left of\nthe + (plus sign) - located to the right of the stage title.\nThe gear icon only appears when the cursor hovers to the left of the + (plus sign) .\nWhen the gear icon is clicked, a drop-down menu reveals the options: Fold , Edit Stage , and Delete .\nClicking Fold minimizes that specific stageâs column. The stage column can be restored\nby clicking the folded version of it on the main Campaigns dashboard in the default\nkanban view.\nSelecting Edit Stage reveals a pop-up window, in which the name and the sequence of the\nstage can be modified. If changes are made, be sure to click Save .\nClicking Delete removes the stage entirely.\nTo add a new stage to the pipeline, side-scroll to the right on the Campaigns dashboard, click Add a Column , enter in the desired information, and click Add .\nThe same social marketing campaign information on the Campaigns dashboard can also be\nviewed as a list, by selecting the List option, located under the search bar, in the\nupper-right corner.\n\n## Create social marketing campaigns\n\nFirst, open the Social Marketing application, and select Campaigns from\nthe header menu.\nOn the Campaigns dashboard, a new campaign can be created by clicking the quick add + (plus sign) located in the top-right corner of each stage in the pipeline, visible in\nthe kanban view. Campaigns can also be created by clicking Create in the upper-left\ncorner of the Campaigns dashboard.\nBoth options reveal a new campaign detail window directly on the Campaigns dashboard\nwhen clicked.\nHere, the Campaign Name , Responsible , and Tags can be entered.\nWhen all modifications are complete, click Add to add the campaign to the database.\n\n## Edit social marketing campaigns\n\nIn order to edit a campaign in greater detail, and create/send various forms of communications\nrelated to it, the template page for that campaign must be accessed and modified, accordingly.\nThere are multiple ways to access a template page for a campaign.\n- After entering the pertinent information in the Quick Add campaign drop-down, click Edit .\nAfter entering the pertinent information in the Quick Add campaign drop-down, click Edit .\n- Simply select the desired campaign from the Campaigns dashboard in list or kanban\nview.\nSimply select the desired campaign from the Campaigns dashboard in list or kanban\nview.\n- On the Campaigns dashboard in the kanban view, select the â® (three dots) drop-down menu on the desired campaign, and select Edit .\nOn the Campaigns dashboard in the kanban view, select the â® (three dots) drop-down menu on the desired campaign, and select Edit .\nAny of the above routes will reveal the Campaign Template page for that specific campaign.\n\n## Social marketing campaign templates\n\nOn a Campaign Template page, numerous elements can be customized/modified, and various forms of\ncommunications can be created, modified, and sent or scheduled. Below is a sample of a completed\ncampaign template.\nIn order for the Send New Mailing option to appear on campaign templates, make sure\nthe Mailing Campaigns feature is enabled in the Email Marketing app. To do that, navigate to Email Marketing ⣠Configuration ⣠Settings , activate Mailing\nCampaigns , and click Save .\nIn order for the Send SMS option to appear, the Odoo SMS Marketing application must\nbe installed on the database.\n\n## Add content and communications to campaigns\n\nIf the proper settings and applications are installed (as instructed above), there are four forms\nof communication/content options that can be added to campaigns. Each of these options are displayed\nas buttons in the upper-left corner of the campaign template page.\n- Send New Mailing : reveals a blank email template on a separate page, in which the\nmessage can be fully customized in a variety of ways.\nSend New Mailing : reveals a blank email template on a separate page, in which the\nmessage can be fully customized in a variety of ways.\n- Send SMS : reveals a blank SMS template on a separate page, in which a SMS\ncommunication can be created and configured.\nSend SMS : reveals a blank SMS template on a separate page, in which a SMS\ncommunication can be created and configured.\n- Send Social Post : reveals a blank social post template on a separate page, in which\na post can be created, and applied to social media accounts that are already connected to the\ndatabase.\nSend Social Post : reveals a blank social post template on a separate page, in which\na post can be created, and applied to social media accounts that are already connected to the\ndatabase.\n- Push Notification : reveals a similar blank social post template on a separate page,\nhowever, the Push Notification options are already pre-selected in the Post\non field.\nPush Notification : reveals a similar blank social post template on a separate page,\nhowever, the Push Notification options are already pre-selected in the Post\non field.\nWhichever form of communication is created, once itâs completed, Odoo returns to the Campaign Template page, showcasing that new content in its corresponding tab (e.g. Mailings , SMS , Social Media , and/or Push\nNotifications ).\nAs content and communications are added to a campaign, tabs for those specific mediums appear,\nalong with a variety of analytical smart buttons (e.g. Revenues , Quotations , Leads , etc.).\nThese smart buttons, located at the top of the template, display different metrics related to the\ncampaign, and its various communications and content. Clicking any smart button reveals a separate\npage dedicated to that particular element of the campaign, allowing for quicker, more organized\nanalysis.\nThe Odoo Social Marketing app is integrated with other Odoo applications, such as Sales , Invoicing , CRM , and Website .", "headings": ["Campaigns page", "Create social marketing campaigns", "Edit social marketing campaigns", "Social marketing campaign templates", "Add content and communications to campaigns"], "doc_id": "75a8c7c62498d61b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/social_marketing/social_posts.html", "title": "Social posts", "module": "marketing", "section": "Social posts", "text": "# Social posts\n\nThe Odoo Social Marketing application provides various ways to create posts for any type of social\nmedia outlet.\n\n## Posts page\n\nTo see a complete overview of posts, go to Odoo Social Marketing app ⣠Posts .\nHere, on the Social Posts page, every post that has been created and posted with Odoo\ncan be seen and accessed.\nThere are four different view options for the Social Posts page data: kanban , calendar , list , and pivot .\nThe view options are located in the upper right corner of the Posts page, beneath the\nsearch bar.\nBy default, Odoo displays the posts in a kanban view. The information on this page can be\nsorted even further, via the left sidebar, where all connected social accounts and posts can\nbe quickly seen, accessed, and analyzed.\nThe kanban view is represented by an inverted bar graph icon in the upper-right\ncorner.\nThe calendar view option displays a visual representation of posts in a calendar format of\nwhen posts were published, or are scheduled to be published. This option provides a clear\noverview of any planned day, week, or month, and Odoo displays all drafted, scheduled, and\npublished posts.\nClicking on a date reveals a blank social media post detail form, in which a social media\npost can be created, and Odoo will post it on that specific date/time.\nThe calendar view is represented by a calendar icon in the upper-right corner.\nThe list view option is similar to the kanban option, but instead of individual blocks, all\npost information is displayed in a clear, list layout. Each line of the list displays the Social Accounts , Message , and Status of every post.\nThere is also a helpful left sidebar that organizes all posts by Status and lists\nall connected Social Accounts , as well.\nThe list view is represented by four vertical lines in the upper-right corner.\nThe pivot view option provides a fully customizable grid table, where different measures of\ndata can be added and analyzed.\nThe pivot view option provides numerous analytical options, allowing for in-depth, detailed\nanalysis of various posts and metrics.\nClick on any â (plus sign) icon next to a line in the pivot table to reveal more\nmetric options to add to the grid.\nWhile in the pivot view, the option to Insert in Spreadsheet is available, located\nto the right of the Measures drop-down menu, in the upper-left corner of the Social Posts page.\nNext to the Insert in Spreadsheet are three options, specific to the pivot view.\nFrom left to right, those options are:\n- Flip Axis , which switches the X and Y axis in the grid table.\nFlip Axis , which switches the X and Y axis in the grid table.\n- Expand All , which expands each line in the grid, revealing more detailed\ninformation related to it.\nExpand All , which expands each line in the grid, revealing more detailed\ninformation related to it.\n- Download , which, when clicked, instantly downloads the pivot table as a\nspreadsheet.\nDownload , which, when clicked, instantly downloads the pivot table as a\nspreadsheet.\n\n### Posts\n\nClicking on a post from a social media stream reveals a pop-up window, showcasing the content of\nthat specific post, along with all the engagement data related to it (e.g. likes, comments, etc.).\nIf desired, the user can leave a new comment of the post from the postâs pop-up window, by typing\none in the Write a comment⦠field, and clicking Enter to post that\ncomment.\n\n### Create leads from comments\n\nOdoo Social Marketing also provides the ability to create leads directly from social media\ncomments.\nTo create a lead from a comment left on a social media post, click on the desired post from the\ndashboard to reveal that postâs specific pop-up window. Then, scroll to the desired comment, and\nclick the three vertical dots icon to the right of that comment.\nDoing so reveals a drop-down menu with the option: Create Lead .\nUpon clicking Create Lead from the commentâs drop-down menu, a Conver Post to\nLead pop-up window appears.\nIn this pop-up window, select to either: Create a new customer , Link to an\nexisting customer , or Do not link to a customer .\nIf Link to an existing customer is selected, a new Customer field appears\nbeneath those options, wherein a customer can be chosen to be linked to this lead.\nOnce the desired selection has been made, click the Convert button at the bottom of the Convert Post to Lead pop-up window. Doing so reveals a fresh lead detail form, where the\nnecessary information can be entered and processed.\n\n### Insights\n\nWhen a social media account stream is added to the Social Marketing dashboard, each stream also\ndisplays and links that specific social media platformâs KPIs (if the platform has them).\nTo get redirected to the statistics and metrics related to any social media accountâs KPIs, click on\nthe Insights link, located at the top of each stream.\nIn a multi-company environment, if not all pages are selected, de-authentication happens.\nFor example, if the companies have 3 Facebook pages, but only grant access to 1, and try to\ngrant access to another at a later date, they will be de-authenticated, and access to the initial\npageâs insights/analytics will be lost.\nSo, be sure to add all pages for all companies in a multi-company environment to avoid this\nissue. If a page gets de-autenticated, simply remove the stream, and re-establish it.\n\n## Create and post social media content\n\nOdoo Social Marketing offers the ability to create and post content for social media accounts\ndirectly through the application.\nTo create content for social media accounts, navigated to the Social Marketing app ,\nand click New Post located in the upper-right corner of the Social Marketing dashboard.\nOr, navigate to Social Marketing app ⣠Posts and click the New button.\nEither route reveals a blank social media post detail form that can be customized and configured in\na number of different ways.\n\n### Post detail form\n\nThe social media post detail form in Odoo Social Marketing has many different configurable options\navailable.\n\n#### Company\n\nIf working in a multi-company environment, the first field in the Your Post section of\nthe social media post detail form is Company . In this field, select the company that\nshould be connected to this specific social media post.\n\n#### Post on\n\nIf working in a single-company environment, the first field in the Your Post section of\nthe social media post detail form is Post on . In this field, determine which social\nmedia outlets (streams) this post is intended to be posted on, and/or which websiteâs visitors this\npost should be sent to, via push notification, by checking the box beside the desired option(s).\nOdoo automatically provides every available social media account thatâs been linked to the database\nas an option in this section. If a social media account hasnât been added as a stream to the Social\nMarketing application, it will not appear as an option on the post template.\nMultiple social media outlets (streams) and websites can be selected in the Post on field. At least one option in the Post on field must be selected.\nIn order for the Push Notification option to appear on the social media post detail\nform in Odoo Social Marketing , make sure the Enable Web Push Notifications feature is enabled\nin the Website app.\nTo do that, navigate to Website app ⣠Configuration ⣠Settings , activate Enable Web Push Notifications , fill out the corresponding fields, and click Save .\n\n#### Message\n\nNext, thereâs the Message field. This is where the main content of the post is created.\nIn the Message field, type in the desired message for the social post. After typing,\nclick away from the Message field to reveal visual samples of how the post will look on\nall the previously selected social media accounts (and/or websites, as push notifications).\nEmojis can also be added directly to the text in the Message field. Just click the ð (smiley face) icon, located on the line of the Message field to the far\nright. Clicking this icon reveals a drop-down menu containing numerous emojis to choose from.\nIf Twitter is chosen in the Post on field, a character counter appears\nbeneath the Message field.\n\n#### Attach Images\n\nIf images are to be used in the post, click the Attach Images button, in the Attach Images field, located beneath the Message field. When clicked, Odoo\nreveals a pop-up window. In this pop-up window, select the desired image from the hard drive, and\nupload it.\nAfter successfully uploading and attaching the desired image, Odoo reveals a new preview of the\nsocial media post, complete with the newly-added image, on the right side of the detail form.\n\n#### Campaign\n\nNext, there is the Campaign field. This non-required field provides the options to\nattach this post to a specific marketing campaign.\nTo add this post to a pre-existing campaign, click the empty Campaign field to reveal a\ndrop-down menu, containing all the existing campaigns in the database. Select the desired campaign\nfrom this drop-down menu to add this post to that campaign.\nTo create a new campaign directly from the social media post detail form, start typing the name of\nthe new campaign in the blank Campaign field, and select either Create or Create and edit⦠.\nClicking Create creates the campaign, which can be edited/customized later.\nClicking Create and edit⦠creates the campaign, and reveals a Create\nCampaign pop-up form, wherein the Campaign Identifier , Responsible , and Tags can be instantly configured.\nWhen all the desired settings have been entered, click Save & Close to save the campaign\nand return to the social media post detail form.\n\n#### When\n\nThen, in the When field, choose either Send Now to have Odoo publish the\npost immediately, or Schedule later to have Odoo publish the post at a later date and\ntime.\nIf Schedule later is selected, a new Scheduled Date field appears. Clicking\nthe empty field reveals a pop-up calendar, in which a future date and time can be designated.\nAfter selecting a desired date and time, click Apply . Then, Odoo will promptly publish\nthe post at that specific date and time on the pre-detemined social media account(s).\nIf scheduling a post, the Post button at the top of the social media post detail form\nchanges to Schedule . Be sure to click Schedule after completing the\nsocial media post detail form.\nDoing so, locks in that specific date/time for Odoo to send the post, and it changes the status\nof the post to Scheduled .\n\n#### Push Notification Options\n\nIf one (or multiple) [Push Notification] options are chosen in the Post on field, a specific Push Notification Options section appears at the bottom of the social\nmedia post detail form.\nIt should be noted that none of these fields are required.\nThe first field in this section is Notification Title . In this field, there is the\noption to add a custom title to the push notification that will be sent.\nTo designate a specific page on the website that should trigger this push notification, enter that\npageâs URL in the Target URL field. Then, once a visitor reaches that specific page,\nOdoo will display the push notification.\nBelow that field is the option to add a custom Icon Image to the push notification. This\nis an icon that appears beside the push notification.\nTo upload a new image, click the âï¸ (pencil) icon when hovering over the Icon\nImage camera icon. Doing so reveals a pop-up window, in which the desired icon image can be located\non the hard drive, and subsequently uploaded.\nOnce thatâs complete, Odoo automatically updates the visual preview of how the icon appears on the\npush notification.\nNext, if the post is scheduled to be posted later, there is the option to ensure the post is sent\nin the visitorâs timezone, by enabling the Local Time option. If enabled, Odoo will\nsend it at the appropriate, pre-determined time, taking the visitorâs location into\nconsideration.\nThen, there is the Match all records field. This field provides the ability to target a\nspecific group of recipients in the database, based on certain criteria, and can be applied to match all or any of the rules.\nTo utilize this field, click the + Add condition button, which reveals an equation-like\nrule field.\nIn this equation-like rule field, specifiy the specific criteria Odoo should take into account when\nsending this post to a particular target audience.\nTo add an additional rule, click the â (plus sign) icon to the far-right of the rule.\nTo add a branch (series of additional rules based on the previous rule, to further specify a target\naudience), click the unique branch icon , located to the right of the â (plus\nsign) icon .\nLastly, click the ðï¸ (trash can) icon to delete any rule.\nThe size of the specified target audience of recipients is represented by the number of Records displayed beneath the rules.\nSocial marketing campaigns", "headings": ["Posts page", "Posts", "Create leads from comments", "Insights", "Create and post social media content", "Post detail form"], "doc_id": "647b8276db4f55f1"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/surveys.html", "title": "Surveys", "module": "marketing", "section": "Surveys", "text": "# Surveys\n\nCompanies gather valuable insights from customers and employees through surveys, aiding informed\ndecision-making.\nWith Odoo Surveys , users create various surveys, questionnaires, certifications, assessments, and\nso much more. These can be used to collect feedback, evaluate the success of a recent event, and\nmeasure the satisfaction of customers and/or employees. This process yields valuable insights into\nshifting market trends.\nOdoo Tutorials: Surveys\n\n#### Create surveys\n\nDiscover how to create surveys with Odoo.\n\n#### Scoring surveys\n\nLearn how to create and analyze survey scores with Odoo.\n\n#### Create questions\n\nSee how to create, configure, and customize all types of survey questions with Odoo.\n\n#### Live Session surveys\n\nFind out everything there is to know about Odooâs unique Live Session surveys.\n\n#### Survey analysis\n\nExplore the various ways to analyze surveys using Odooâs in-depth reporting pages.\n\n## Dashboard\n\nUpon opening the Surveys application, Odoo presents the main dashboard of the Surveys application, otherwise known as the Surveys page.\nThe Surveys dashboard can be accessed at any time throughout the application by clicking Surveys from the header menu.\nIn the upper-left corner, there is a New button. When clicked, Odoo presents a blank\nsurvey form that can be used to create a survey.\nOn the dashboard, all the surveys that have been created in the database are displayed in a default\nKanban view.\nFrom left-to-right, after the survey name, the user who is responsible for it, and the month it was\ncreated, each line on the Surveys dashboard shows the following:\n- Number of Questions in that particular survey\nNumber of Questions in that particular survey\n- Average Duration of the survey (how long it typically takes a participant to complete)\nAverage Duration of the survey (how long it typically takes a participant to complete)\n- Number of Registered participants for the survey\nNumber of Registered participants for the survey\n- Number of times that particular survey has been Completed\nNumber of times that particular survey has been Completed\n- Percentage and data bar showcasing how many people have Passed or become Certified Note The Passed percentage and bar only appears when a Required Score has been\nconfigured for that particular survey. The Certified percentage and bar only appears if that particular survey has the Is a Certification option enabled on the survey form. If neither Passed nor Certified appear on the line, that indicates the\nsurvey is without a Required Score and was not enabled with the Is a Certification option.\nPercentage and data bar showcasing how many people have Passed or become Certified\nThe Passed percentage and bar only appears when a Required Score has been\nconfigured for that particular survey.\nThe Certified percentage and bar only appears if that particular survey has the Is a Certification option enabled on the survey form.\nIf neither Passed nor Certified appear on the line, that indicates the\nsurvey is without a Required Score and was not enabled with the Is a Certification option.\n- Number of Courses related to that survey, which only appears if more than one\ncourse has been created and attached to a single survey\nNumber of Courses related to that survey, which only appears if more than one\ncourse has been created and attached to a single survey\nA half-trophy background image behind the survey name indicates that the survey is a Certification .\nTo the far-right of those data points on the survey lines, located on the Surveys application\ndashboard, are a collection of buttons.\nThose buttons are as follows:\n- Share : click to reveal a Share a Survey pop-up form that can be used to\ninvite potential participants to the survey - complete with a Survey Link that can be\ncopied and sent to potential participants, and a Send by Email toggle switch. When the Send by Email toggle is active (green switch), additional fields appear, in\nwhich Recipients , Additional Emails , and a Subject can be\nadded to the email. Below that, a dynamic email template, complete with a Start Certification button\nappears, which can be modified, as well, if needed. Attachments can be added to the email, as well as an Answer deadline can\nbe set, if needed. Once modifications are complete, click Send to send that email invite to all the email\naddresses/contacts listed in the Recipients field. Tip The default Mail Template for survey invites can be edited by navigating to Settings ⣠Technical ⣠Email Templates and searching for Survey: Invite . Note The Send by Email toggle switch is not present when the survey line has zero\nquestions. The Survey Link only appears when the surveyâs Access Mode is set to Anyone with\nthe link . The Additional Emails field only appears when the surveyâs Require Login field is not active.\nShare : click to reveal a Share a Survey pop-up form that can be used to\ninvite potential participants to the survey - complete with a Survey Link that can be\ncopied and sent to potential participants, and a Send by Email toggle switch.\nWhen the Send by Email toggle is active (green switch), additional fields appear, in\nwhich Recipients , Additional Emails , and a Subject can be\nadded to the email.\nBelow that, a dynamic email template, complete with a Start Certification button\nappears, which can be modified, as well, if needed.\nAttachments can be added to the email, as well as an Answer deadline can\nbe set, if needed.\nOnce modifications are complete, click Send to send that email invite to all the email\naddresses/contacts listed in the Recipients field.\nThe default Mail Template for survey invites can be edited by navigating to Settings ⣠Technical ⣠Email Templates and searching for Survey: Invite .\n`Survey:Invite`\nThe Send by Email toggle switch is not present when the survey line has zero\nquestions.\nThe Survey Link only appears when the surveyâs Access Mode is set to Anyone with\nthe link .\nThe Additional Emails field only appears when the surveyâs Require Login field is not active.\n- Test : click to take a test version of the survey in a new tab, from the point-of-view\nof a survey participant, in order to check for any errors or inconsistencies.\nTest : click to take a test version of the survey in a new tab, from the point-of-view\nof a survey participant, in order to check for any errors or inconsistencies.\n- See results : click to reveal a new tab showcasing detailed metrics and graphical\nrepresentations of all survey participants, questions, and responses for deeper analysis.\nSee results : click to reveal a new tab showcasing detailed metrics and graphical\nrepresentations of all survey participants, questions, and responses for deeper analysis.\n- Start Live Session : click to initiate a Live session survey, and reveal a session\nmanager window in a new tab. This button is not present for surveys that have enabled the Is\na Certification option on the survey form.\nStart Live Session : click to initiate a Live session survey, and reveal a session\nmanager window in a new tab. This button is not present for surveys that have enabled the Is\na Certification option on the survey form.\n- End Live Session : click to end a Live session survey that has been officially\nstarted. This button option only appears on survey lines that have previously initiated a live\nsession.\nEnd Live Session : click to end a Live session survey that has been officially\nstarted. This button option only appears on survey lines that have previously initiated a live\nsession.\nAbove the buttons that are located to the far-right of the survey lines, a â® (three\ndots) icon appears when the cursor hovers over that particular line. When the â® (three\ndots) icon is clicked, a drop-down menu with some configuration-related options appear:\n- Edit Survey : when clicked, Odoo reveals the survey form for that particular survey,\nwhich can then be modified in a number of different ways.\nEdit Survey : when clicked, Odoo reveals the survey form for that particular survey,\nwhich can then be modified in a number of different ways.\n- Share : when clicked, Odoo reveals the Share a Survey pop-up form that can\nbe used to invite potential participants to the survey.\nShare : when clicked, Odoo reveals the Share a Survey pop-up form that can\nbe used to invite potential participants to the survey.\n- Delete : when clicked, Odoo presents a pop-up window, wherein the user must confirm\nthey want to delete the survey entirely, which they can do by clicking the Delete button at the bottom of the pop-up window.\nDelete : when clicked, Odoo presents a pop-up window, wherein the user must confirm\nthey want to delete the survey entirely, which they can do by clicking the Delete button at the bottom of the pop-up window.\n- Color : users can opt to choose a color to add to the survey line on the dashboard for\nadded organizational purposes, if needed.\nColor : users can opt to choose a color to add to the survey line on the dashboard for\nadded organizational purposes, if needed.\nBeneath the buttons that are located to the far-right of the survey lines, there is an Activities button, represented by a ð (clock) icon. When clicked, a mini pop-up window appears,\nfrom which activities related to that particular survey can be scheduled and customized.\n\n### List view\n\nThe Surveys dashboard is shown in the Kanban view, by default, but there is also a list view\noption available in the upper-right corner, represented by a ⣠(bars) icon.\nWhen the ⣠(bars) icon is clicked, the survey related data is displayed in a list view.\nThe columns shown on the Surveys app dashboard, while in list view, are as follows:\n- Survey Title\n- Responsible\n- Average Duration\n- Registered\n- Success Ratio (%)\n- Avg Score (%)\nAdditional columns can be added to the Surveys application dashboard, while in list view, by\nclicking the additional options drop-down menu, located to the far-right of the column titles,\nrepresented by a (slider with two dots) icon.\n\n### Activities view\n\nTo have the Surveys application dashboard display nothing but the activities associated to the\nsurveys in the database, click the ð (clock) icon to the far-right of the other view\noptions, located in the upper-right corner.\nDoing so reveals a table with rows and columns. The rows show the different surveys in the database,\nand the columns depict the various activity types.\nA new survey cannot be created in this view, as it is solely for the purpose of creating and\nviewing scheduled activities.\n\n## Create surveys\n\nLearn about all the different options and configurations that can be utilized when creating a survey\nin Odoo.\n\n## Scoring surveys\n\nDiscover how to measure a survey participantâs performance, or overall satisfaction, with Odooâs\ndetailed (and fully customizable) survey scoring options.\n\n## Create questions\n\nWith Odoo Surveys , there are many question types and options to choose from, providing the ability\nto create any kind of unique survey, questionnarire, and/or certification.\n\n## Live Session surveys\n\nThe Live Session survey option available in Odoo can enhance in-person demonstrations and\npresentations, where participantsâ real-time responses can be used to dictate where the conversation\ngoes next.\n\n## Survey analysis\n\nOnce the surveys start to come in, it is time to analyze the responses from your participants.\nFortuantely, the in-depth reporting pages and options available in Odoo Surveys provide countless\nways to examine everything related to surveys, and their submitted responses.", "headings": ["Dashboard", "List view", "Activities view", "Create surveys", "Scoring surveys", "Create questions", "Live Session surveys", "Survey analysis"], "doc_id": "f08978351d6c1aca"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/surveys/analysis.html", "title": "Survey analysis", "module": "marketing", "section": "Survey analysis", "text": "# Survey analysis\n\nAfter surveys have been created and sent to participants, it is only a matter of time before the\nresponses start to come in. When they do, it is important to know where and how to analyze them in\nthe Odoo Surveys application.\nFortunately, Odoo provides numerous ways to view survey responses, allowing users to access and\nanalyze survey responses as they are submitted.\n\n## See results\n\nUpon opening the Surveys application, the main dashboard reveals a list of all the\nsurveys in the database, along with pertinent information related to each one.\nBy default, every survey line showcases its number of Questions , Average\nDuration , and how many participants have Registered or Completed the\nsurvey.\nThere are also elements showing the percentage of how many participants Passed (if a Required Score (%) was configured), or how many participants became Certified (if the Is a Certification option was configured).\nTo learn more about the different analytical elements found on the Surveys dashboard,\ncheck out the Survey Essentials documentation.\nOn the Surveys dashboard, to the far-right of each survey line displayed in the default\nlist view, there is a See results button.\nWhen the See results button is clicked, a new browser tab opens, revealing a separate\npage filled with all of that particular surveyâs results and responses, with an informative Results Overview and some filtering drop-down menus at the top.\nAt the top of the page, there is an Edit Survey link, in the middle of a blue header\nbanner. When clicked, Odoo returns the user to the survey form for that particular survey.\nBeneath that, is the title of the survey, and its description, if one was configured for it on its\nsurvey form.\nTo the right of the survey title, there are two drop-down menus with various filtering options,\nwhich can be used to personalize and segment the survey results in a number of different ways.\nThe first filter drop-down menu is set on the default All Surveys option, meaning the\nresults below are showing results and responses from all the submitted surveys, regardless if they\nhave been fully completed or not.\nWhen that drop-down menu is clicked open, another option, Completed surveys , appears.\nWith that drop-down menu open, the number corresponding to each filter option appears to the right\nof each option.\nTo the right of that drop-down menu of filter options, is another drop-down menu of filter options\nthat can be used to further customize the results showcased on this page.\nThat drop-down menu is set to the Passed and Failed option, by default. This option\nshows the results and responses from all participants who have passed or failed this particular\nsurvey.\nThis second drop-down menu of filter options only appears if the survey being analyzed has a Scoring option configured, or if the Is a Certification feature has been enabled.\nWhen that second drop-down menu of filter options is clicked open, two additional options appear: Passed only and Failed only .\nEach option would filter the results below to only show responses from participants who have passed\nthe survey, or who have failed the survey, respectively.\nDirectly beneath the survey title, there is a Print button. When clicked, the entire\nresults page can be printed.\nThe Results Overview section is below the survey title, filter option drop-down menus,\nand Print button.\nThis section of the results page provides a summarized collection of useful survey-related data and\nmetrics for quick analysis.\n\n### Question analysis\n\nDirectly beneath the Results Overview section is where the results and responses of the\nsurvey are found.\nThe various sections of the survey, if there were any, appear at the top of their corresponding\nquestions on the results page, as well, for added organization.\nEvery question that was a part of the survey is shown, along with an in-depth breakdown, and visual\nrepresentation, of how it was answered by participants, beneath the Results Overview section.\nEach question is displayed above its corresponding results. To the left of the question is an ðï¸ (eye) icon. When clicked, Odoo hides the visual and data-related results and\nresponses. When clicked again, that questionâs visual and data-related results re-appear.\nTo the far-right of the question, there are indicators to see how many participants Responded and how many Skipped the question.\nIf the question required the participant to enter in their own answer, without any options to choose\nfrom, like entering a specific number or date, for example, there is also an indicator to showcase\nhow many users answered the question Correct .\nEven if there is no configured correct response for question of this nature, the Correct indicator still appears, although, it displays a 0 .\n`0`\nThis would occur for opinion-based questions, like When would be a good time to hold another sale?\n`Whenwouldbeagoodtimetoholdanothersale?`\nIf there is only one correct response to a multiple choice question, those results and responses are\nrepresented by a Pie Graph . The correct answer is indicated by a âï¸\n(checkmark) icon next to the correct answer option, in the legend above the graph.\nIf there are multiple correct answer options (or no correct answers at all) for a multiple choice\nquestion, those results and responses are represented by a Bar Graph .\nEach multiple choice question has a Graph tab and an Data tab. The\ngraph-related tab is shown by default.\nThe Data tab shows all the provided Answer options for the question. The User Choice (with percentages and votes) along with the Score of each\noption.\nOther question types, wherein there were no answer options for the participant to choose from, there\nis a Most Common tab and an All Data tab.\nThe Most Common tab shows the User Responses , the Occurrence ,\nand the Score (if applicable).\nThe All Data tab shows a list of all the submitted responses to that particular\nquestion.\nIf a question is looking for participants to enter a numerical value as a response, Maximum , Minimum , and Average indicators appear to the far-right\nof the results tabs.\nA filter icon is also present either to the right of the User Choice column\nin a Data tab, or to the far-right of a User Response line in an All Data tab.\nWhen that filter icon is clicked, Odoo returns the user to the top of the results page,\nwith that chosen filter applied, showing the results of each question for participants who submitted\nthat particular answer for that specific question.\nTherefore, showcasing the remaining results for participants who answered that specific question in\nthe same way. To remove that filter, and reveal all the results once again, click Remove\nall filters or click the âï¸ (X) icon in the filter box at the top of the results page.\n\n## Participations\n\nTo view a consolidated list of participation results for a specific survey, navigate to Surveys app , select the desired survey from the list, and click the Participations smart button at the top of the survey form.\nDoing so reveals a separate Participations page, showcasing the participants for that\nspecific survey, along with a collection of pertinent information related to each one.\nHere, users can view information related to individual participants who took that specific survey.\nIf they desire to see a more detailed breakdown of their various answers and responses, they can\nclick on any participant, and Odoo reveals a separate page showing that participantâs survey\ndetails, along with their submitted answers.\nTo view a consolidated list of all participants of every survey in the database, navigate to Surveys app ⣠Participations . Here, every survey in the database is shown in a\ndefault nested list. Beside each survey title has the number of participants in parenthesis.\nWhen a survey is un-nested from this list, by clicking the survey title, the corresponding\nparticipants, along with their response-related data for that survey, appear on the page.\nThe Participations page can also be viewed in a Kanban layout, as well.\n- Create surveys\n- Scoring surveys", "headings": ["See results", "Question analysis", "Participations"], "doc_id": "92d4a147073ea312"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/surveys/create.html", "title": "Create surveys", "module": "marketing", "section": "Create surveys", "text": "# Create surveys\n\nTo create a survey in the Odoo Surveys application, navigate to Surveys app â£\nNew to reveal a blank survey form.\nThe New button is not present on the Surveys dashboard if in the Activities view.\n\n## Survey form\n\nAt the top of the survey form are four radio buttons, each representing a survey style. The radio\nbutton options are:\n- Survey\n- Live Session\n- Assessment\n- Custom (selected by default)\nCustom (selected by default)\nThese options are here to streamline the survey-making process, by providing users with automated\nsettings and options that are ideally specific to those types of surveys. Each of those survey type\noptions comes equipped with its own specific selection of options.\nThe Custom option, selected by default, offers all the options from every potential\nsurvey type (located in the Options tab).\nBeneath those radio survey type options is a blank field in which a name for the survey must be\nentered.\nBelow the survey name field, is the Responsible field. Choose a user from the drop-down\nmenu to be in charge of the survey. By default, the user who initially created the survey is\nselected as the default Responsible .\nTo the right of those fields, and above the tabs, is the option to add a background image,\nrepresented by a ð· (camera) icon. When clicked, the option to upload an image becomes\navailable. This image would be used as the background image for the entire survey. This is not a\nrequired option.\nBelow those fields and options are four tabs: Questions , Options , Description , and End Message .\n\n### Questions tab\n\nView, access, add, and/or delete questions and sections to the survey in the Questions tab.\nBy default, two columns are present in the Questions tab: Title (i.e. the\nquestion) and Question Type .\nIf the Randomized per Section option is enabled in the Options tab of the\nsurvey form, a column titled, # Questions Randomly Picked appears in the Questions tab.\nIndicate whether questions require a mandatory answer by clicking the (optional columns) icon to the far-right of the column titles. Then, select Mandatory Answer from the\ndrop-down menu to reveal the Mandatory Answer column in the Questions tab.\n\n#### Add a question\n\nTo add a question to a survey, click Add a question in the Questions tab,\nand proceed to fill out the Create Sections and Questions pop-up window that appears.\nTo learn how to create and customize questions, refer to the create questions documentation.\nThere must be a survey title entered in order for the Create Sections and\nQuestions pop-up window to appear. If no title is entered for the survey, an error pop-up\nmessage appears in the upper-right corner, instructing the user to enter a survey title.\n\n#### Add a section\n\nA section divides the survey into organized parts, in order to visually group similar questions\ntogether. To make a section, click Add a section at the bottom of the Questions tab, proceed to type in a desired name for the section, then either press Enter or click away.\nThe section line appears in dark gray in the Questions tab.\nThen, drag-and-drop desired questions beneath a section, or drag-and-drop a section title on top of\n(i.e. before ) the desired question(s) in the survey. Doing so populates the section with questions\nthat align with its theme.\nIf the Randomized per Section option is enabled in the Options tab of the\nsurvey form, the number 1 appears, by default, on the section line, beneath the #\nQuestions Randomly Picked column.\n`1`\nThis indicates that 1 question from that section will be picked at random for each participant\ntaking the survey, bypassing every other, non-chosen question from that section. To change that\nnumber, select that figure, and type in the desired number in its place. Then, either press Enter , or click away.\n`1`\n\n### Options tab\n\nIn the Options tab of the survey form, there are many options to choose from, separated\nin four different sections: Questions , Time & Scoring , Participants , and Live Session .\nThe options available in this tab vary on the survey type chosen, via the radio buttons at the top\nof the survey form: Survey , Live Session , Assessment , or Custom .\nThe Custom survey type showcases all the possible options in the Options tab. So, if any of the following options do not appear in the Options tab, it is\nlikely because the selected survey type does not offer it.\n\n#### Questions section\n\nThe first field in the Questions section revolves around the Pagination ,\nor overall layout, of the survey.\nChoose between One page per question , One page per section , or One page with all the questions in the Pagination field.\nIf One page with all the questions is selected, all the remaining options in the Questions field, apart from Question Selection is removed, as they are no\nlonger needed.\nNext, select one of the following options in the Display Progress as field:\n- Percentage left : displays the percentage of the survey remaining to participants.\nPercentage left : displays the percentage of the survey remaining to participants.\n- Number : display the number of questions answered along with the total number of\nquestions to answer.\nNumber : display the number of questions answered along with the total number of\nquestions to answer.\nIn the Question Selection field choose to have the survey show All questions or Randomized per Section . If Randomized per Section a new column appears in\nthe Questions tab, titled: # Questions Randomly Picked .\nIn the # Questions Randomly Picked column, designate how many questions, in that\nparticular section, should be chosen at random to the participant.\nLastly, there is the Allow Roaming option. When enabled, participants are able to\nnavigate back to previous pages in the survey.\n\n#### Time & Scoring section\n\nThe first option in the Time & Scoring section is the Survey Time Limit option. If enabled, proceed to enter in an amount of time (in minutes ) to be set as the\ntime limit for the survey.\nNext, in the Scoring section, determine whether there should be: No scoring , Scoring with answers after each page , Scoring with answers at the end , or Scoring without answers .\nIf the No scoring option is selected, no other options are available in this section.\nHowever, if any other Scoring option is selected, two additional fields appear: Required Score (%) and Is a Certification .\nIn the Required Score (%) field, enter the minimum percentage participants must earn\nin order to pass the survey. Scores below this threshold are considered fails. This figure is also\nused to determine if a participant is âcertifiedâ or not, if the Is a Certification option is enabled.\nIf the Is a Certification option is enabled, that makes the survey a Certification ,\nwhich is represented on the main Surveys app dashboard via a half-tropy image behind the survey\ntitle, while in the default Kanban view. Or, via a full-trophy icon, while in list view.\nWhen the Is a Certification option is enabled, three additional fields appear â one\nbeside the option, and two below.\nIn the field that appears beside the option, users can select (and Preview ) a\ncertification template.\nBeneath that, in the Certified Email Template field, users can select a preconfigured\nemail template, or create one on-the-fly, to be sent to certified participants of the survey upon\ncompletion.\nLastly, if the Give Badge field is enabled, a preconfigured badge is then displayed on\nthe contact page for that certified survey participant.\n\n#### Participants section\n\nThe first available option in the Participants section is the Access Mode field. This is where users can determine who has access to the survey. Users can select either: Anyone with the link or Invited people only .\nNext, there is the option to Require Login . Enabling this feature means users must login before being able to take the survey, even if they have a valid token.\nLastly, in there is the Limit Attempts field. If enabled, an additional field appears\nbeside it, in which users can determine how many times users can attempt this survey.\n\n#### Live Session section\n\nThe Live Session section in the Options tab of the survey form only pertains to Live Session surveys.\nThe first option in the Live Session section is the Session Code field. In\nthis field, enter a custom code, consisting of letters, numbers, and/or symbols, to be used by\nparticipants in order to access the live session survey.\nNext, is the Session Link field, which cannot be customized, but it can be sent\nout to potential participants.\nIf a Session Code has been entered, the URL in the Session Link field\nends with that specific Session Code .\nIf that complete Session Link (ending in the custom Session Code ) is used\nby participants to access the live session survey, that link would already be entered for them.\nAt that point, theyâd simply have to wait until the host of the live session begins the survey,\nand then theyâd be able to enter.\nIf the Session Link (ending in the custom Session Code ) is sent without including the Session Code ending, participants trying to access the live\nsession, via that link, will need to enter the custom Session Code to gain access.\nIf the Session Code field is empty, a slightly longer, more complicated URL populates\nthe Session Link field. When participants attempt to access the live session via that\nlink (without a configured Session Code ), all they have to do is wait for the host of\nthe live session to begin the survey, and theyâd be able to participate.\nLastly, in the Live Session section, there is the option to Reward quick\nanswers . If that option is enabled, participants who submit their answer quickly receive more\npoints.\n\n### Description tab\n\nIn this non-required tab, users can enter a custom description about the survey, along with any\nexplanations or guidance that a survey participant may need in order to properly participate (and\ncomplete) the survey.\n\n### End Message tab\n\nIn this non-required tab, users can enter a custom message that participants see upon completing the\nsurvey.\n\n## Survey form buttons\n\nOnce the survey has been configured properly, and questions have been added, the user can utilize\nany of the available buttons in the upper-left corner of the survey form.\nThose buttons are the following:\n- Share : click to reveal a Share a Survey pop-up form that can be used to\ninvite potential participants to the survey â complete with a Survey Link that can be\ncopied and sent to potential participants, and a Send by Email toggle switch. When the Send by Email toggle is in the âonâ position, indicated by a green switch,\nadditional fields appear, in which Recipients and a Subject can be added\nto the email. Below that, a dynamic email template, complete with a Start\nCertification button appears, which can also be modified. Once modifications are complete, click Send to send that email invite to all the email\naddresses/contacts listed in the Recipients field.\nShare : click to reveal a Share a Survey pop-up form that can be used to\ninvite potential participants to the survey â complete with a Survey Link that can be\ncopied and sent to potential participants, and a Send by Email toggle switch.\nWhen the Send by Email toggle is in the âonâ position, indicated by a green switch,\nadditional fields appear, in which Recipients and a Subject can be added\nto the email. Below that, a dynamic email template, complete with a Start\nCertification button appears, which can also be modified.\nOnce modifications are complete, click Send to send that email invite to all the email\naddresses/contacts listed in the Recipients field.\n- See results : this button only appears if there has been at least one participant\nwho has completed the survey. Clicking See results reveals a separate tab containing\na visual analysis of the survey questions and responses. For more information, check out the scoring surveys documentation.\nSee results : this button only appears if there has been at least one participant\nwho has completed the survey. Clicking See results reveals a separate tab containing\na visual analysis of the survey questions and responses. For more information, check out the scoring surveys documentation.\n- Create Live Session : clicking this button opens the Session Manager in a separate\ntab. It also allows participants to access the live session, but the actual survey does not begin until the user hosting the live session survey clicks the Start button on the Session Manager window. Additionally, when Create Live Session has been clicked, and the Session Manager tab\nhas been opened, the Create Live Session button on the survey form is replaced with\ntwo new buttons: Open Session Manager and Close Live Session . Clicking Open Session Manager opens another separate tab to the Session Manager , and\nclicking Close Live Session closes, and subsequently ends, the live session.\nCreate Live Session : clicking this button opens the Session Manager in a separate\ntab. It also allows participants to access the live session, but the actual survey does not begin until the user hosting the live session survey clicks the Start button on the Session Manager window.\nAdditionally, when Create Live Session has been clicked, and the Session Manager tab\nhas been opened, the Create Live Session button on the survey form is replaced with\ntwo new buttons: Open Session Manager and Close Live Session .\nClicking Open Session Manager opens another separate tab to the Session Manager , and\nclicking Close Live Session closes, and subsequently ends, the live session.\n- Test : clicking this button opens a new tab to a test version of the survey, in order\nfor the user to check for errors or inconsistencies, from the point-of-view of a participant.\nUsers can tell if they are in a test version of the survey if there is a blue banner at the top of\nthe screen, reading: This is a Test Survey --> Edit Survey . If the link in the blue banner is clicked, Odoo returns the user to the survey form.\nTest : clicking this button opens a new tab to a test version of the survey, in order\nfor the user to check for errors or inconsistencies, from the point-of-view of a participant.\nUsers can tell if they are in a test version of the survey if there is a blue banner at the top of\nthe screen, reading: This is a Test Survey --> Edit Survey .\n`ThisisaTestSurvey-->EditSurvey`\nIf the link in the blue banner is clicked, Odoo returns the user to the survey form.\n- Print : clicking this button opens a new tab to a printable version of the survey that\nthe user can proceed to print for their records.\nPrint : clicking this button opens a new tab to a printable version of the survey that\nthe user can proceed to print for their records.\n- Close : clicking this button closes the survey (i.e. archives it), which is represented\nby a red Archived banner across the top-right corner of the survey form. When this button is clicked, and the survey is closed, a single button appears in the upper-right\ncorner of the survey form, titled: Reopen . When Reopen is clicked the\nsurvey is reopened (i.e. unarchived), and the Archived banner is removed from the\nsurvey form.\nClose : clicking this button closes the survey (i.e. archives it), which is represented\nby a red Archived banner across the top-right corner of the survey form.\nWhen this button is clicked, and the survey is closed, a single button appears in the upper-right\ncorner of the survey form, titled: Reopen . When Reopen is clicked the\nsurvey is reopened (i.e. unarchived), and the Archived banner is removed from the\nsurvey form.\n- Create questions\n- Scoring surveys", "headings": ["Survey form", "Questions tab", "Options tab", "Description tab", "End Message tab", "Survey form buttons"], "doc_id": "84ed183246feba82"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/surveys/live_session.html", "title": "Live Session surveys", "module": "marketing", "section": "Live Session surveys", "text": "# Live Session surveys\n\nWith the Odoo Surveys application, users can enhance in-person demonstrations and presentations\nwith the Live Session feature.\nLive Session surveys function the same way as a normal survey, but with a host or moderator, who\npresents the questions to participants, reveals their responses in real-time, and controls the tempo\nof the survey.\nIn Live Session surveys, participants access the survey experience via a custom URL, and sign in\nwith an optional access code. When the survey has begun, the host presents one question at a time.\nThen, the audience of participants submit their answer, either via their computer or mobile device,\nand once the responses have been gathered, the host reveals all the participantâs responses, in real\ntime, with each answerâs results displayed as a bar graph.\n\n## Create Live Session survey\n\nTo create a Live Session survey, begin by opening the Surveys application. From the Surveys dashboard, click the New button to reveal a blank survey form.\nAny of the survey type options ( Survey , Live Session , Assessment , or Custom ), presented as radio buttons at the top of the survey,\ncan be used to create a Live Session .\nHowever, selecting the Live Session survey type radio button streamlines the process\nbecause Odoo auto-selects the optimal settings and options for a Live Session survey when that\noption is selected.\nIf the Is a Certification option is enabled in the Options tab, the\nsurvey cannot be used as a Live Session survey.\nWith the desired survey radio button option selected, proceed to create a survey with questions and sections .\nWhile creating questions for the Live Session survey, open the Options tab on the Create Sections and Questions pop-up form, in order to reveal the Live\nSessions section, which only has one available feature: Question Time Limit .\nWhen the Question Time Limit option is enabled, a new field appears beside it, wherein\nthe user must enter the desired amount of time (in seconds) the participant gets to answer the\nquestion.\n\n### Options tab\n\nAfter the questions have been created for the Live Session survey, open the Options tab of the survey form to further configure the survey.\nThe Options tab is organized into four sections: Questions , Time\n& Scoring , Participants , and Live Session .\n\n#### Questions section\n\nRegardless of the option selected for the Pagination field, the Live Session survey only shows One page per question , and will default to that option when the Create Live Session button is clicked, and a Live Session survey officially begins.\nThe One page per question option in the Pagination field is selected by\ndefault, and no other options appear in the Questions section, when the Live Session survey type radio button is selected.\nThe Display Progress as and Question Selection options are still viable and\nactive options for Live Session surveys, if desired, but they are not required.\nHowever, the Allow Roaming feature is not available during Live Session surveys\nwhatsoever, as the host/moderator controls the survey, and participants have no control over what\nquestion they see, or when they see it.\n\n#### Time & Scoring section\n\nThe Survey Time Limit option is not applicable for Live Session surveys. This\noption does not even appear in the Time & Scoring section of the Options tab\nif the Live Session survey type radio button option is selected.\nWhile the Survey Time Limit option is not applicable for Live Session surveys, each\nquestion can be affixed with its own Question Time Limit , via the Options tab of the\nquestion pop-up form. Those question-specific time limits do work with Live Session surveys.\nIf desired, any Scoring option, and subsequent Required Score (%) option are\navailable to use with Live Session surveys.\nHowever, if the Is a Certification option is enabled, the survey cannot be used as a Live Session survey. The Is a Certification option does not appear in the Time & Scoring section of the Options tab if the Live Session survey type radio button option is selected.\n\n#### Participants section\n\nThe Access Mode field is set to the Anyone with the link option when the\nsurvey is used as a Live Session . The Anyone with the link option cannot be\nmodified if the Live Session survey type radio button option is selected.\nThe Require Login option is available for Live Session surveys. However, if the Live Session survey type radio button option is selected, the usual Limit\nAttempts field that appears when Require Login is enabled does not appear, as live\nsession participants only get to attempt the survey once, as the host leads them through it.\n\n#### Live Session section\n\nThe Session Code field allows users to create unique codes for participants to use, in\norder to gain access to the Live Session survey. This code can consist of any combination of\nletters, numbers, and/or symbols.\nThe Session Code field is not required, however, it is encouraged because it adds a\nlevel of exclusivity to the survey and, without a Session Code , the URL that appears in\nthe following Session Link field becomes far more complex.\nIf a Session Code is not entered, participants can access the survey, via the Session Link without needing a host, and the fundamental elements of the Live\nSession are lost, as the survey is then just a normal questionnaire, without any real-time\nresults.\nWith a Session Code , the URL in the non-modifiable Session Link field is\nsimplified, and ends with the Session Code , preceded by /s/ .\n`/s/`\nIf 1212 has been entered as the Session Code , the URL in the Session\nLink field begins with the basic URL of the database (e.g. sample-database.odoo.com ), followed\nby: /s/1212 .\n`1212`\n`sample-database.odoo.com`\n`/s/1212`\nSo, collectively, that sample Session Link would be: sample-database.odoo.com/s/1212 .\n`sample-database.odoo.com/s/1212`\nIf a user sends out the Session Link URL in its complete form - Session\nCode and all - participants would not need to enter in a code, as it would already be entered\nfor them. That complete link places the participant in a virtual waiting room, where they simply\nneed to wait for the host to officially start the Live Session survey.\nIf a user sends out the Session Link URL - except for the Session Code at the end (i.e. the entire URL through .../s/ ) - participants would be taken to a page,\nwherein they would need to enter the specific Session Code in order to access the Live Session .\n`.../s/`\nIf any Scoring option has been enabled, the opportunity to Reward quick\nanswers is also available with Live Session surveys.\n\n## Start Live Session surveys\n\nOnce all the questions and configurations are complete, users can click the Create Live\nSession button at the top of the survey form. Doing so opens a new browser tab to the Session\nManager .\nWhen the Create Live Session button has been clicked, and the Live Session has begun,\na new Open Session Manager button appears on the survey form, which opens a new browser\ntab to the Session Manager . If the Live Session has already begun, that button leads the user to\nthe question or section the Live Session is currently on.\nAdditionally, a Close Live Session button appears on the survey form. When that button\nis clicked, the Live Session survey closes.\nThe Session Manager is controlled by the host/moderator of the Live Session survey, and is\ntypically shown on a projection or screen, so the participants can collectively view the questions\nand real-time responses, as the host/moderator guides them through the Live Session .\nThe participant can see and answer the questions from their computer or mobile device, but the\nresults and real-time responses can only be seen on the Session Manager .\nInitially, the Session Manager shows the title of the Live Session survey, the link needed to\naccess it, and a Waiting for attendees⦠counter, which populates as participants enter\nthe Live Session survey.\nOnce the desired amount of participants have entered the Live Session survey, the host/moderator\ncan click the Start button on the right side of the Session Manager window to begin\nthe Live Session .\nIf the survey begins with a section title on the survey form, that section title appears in the Session Manager , and the participantâs view of the survey informs them to Pay attention to the host screen until the next question . This message appears whenever a section title appears\nduring a Live Session .\n`Payattentiontothehostscreenuntilthenextquestion`\nWhen the first question appears on the survey, the Session Manager shows the question above an\nempty bar graph, showing the potential answer options on the x-axis. The participants see the\nquestion and selectable answer options on their computer or mobile device.\nAs participants submit their answers, a progress bar, in the upper-left corner of the Session\nManager , fills in. This is how Live Session hosts/moderators know when every participant has\nsubmitted their responses.\nThen, when the desired amount of participants have submitted their responses, the host/moderator\nclicks the Show Results button on the right side of the Session Manager to reveal the\ncollective real-time responses on the bar graph.\nOnce the host/moderator feels like the participants have had enough time to view the real-time\nresults, via the populated bar graph, they can click the Show Correct Answer(s) button\non the right side of the Session Manager window. Doing so highlights the correct response, if one\nhas been designated, in green. All incorrect responses are highlighted in red.\nWhen the host/moderator feels the participants have had enough time to take in the correct and\nincorrect responses, via the bar graph on the Session Manager , they can click the Next button to move on to the next portion of the survey.\nRepeat this process until the survey is complete.\n- Create surveys\n- Create questions\n- Scoring surveys", "headings": ["Create Live Session survey", "Options tab", "Start Live Session surveys"], "doc_id": "e1ebcff1f2fdacff"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/surveys/questions.html", "title": "Create questions", "module": "marketing", "section": "Create questions", "text": "# Create questions\n\nIn Odoo Surveys , crafting and tailoring survey questions is crucial for creating and\ncustomizing surveys .\nFortunately, Odoo provides numerous ways to configure tailored questions for any kind of survey.\nTo access a list of all the questions that have been created in the database, navigate to Surveys app ⣠Questions & Answers ⣠Questions . There, users can view and modify\nany question from any survey.\nHowever, there is only one place in the Odoo Surveys application where survey questions can be\ncreated. To do that, navigate to a survey form, by going to Surveys app ⣠New , or\nby selecting any pre-existing survey from the Surveys page ( Surveys app\n⣠Surveys ).\n\n## Questions tab\n\nOn a survey form, users can view, access, add, and/or delete questions (and sections) in the Questions tab.\nBy default, two columns are present in the Questions tab: Title (i.e. the\nquestion) and Question Type .\nIf the Randomized per Section option is enabled in the Options tab of the\nsurvey form, a column titled, # Questions Randomly Picked appears in the Questions tab.\nTo reveal the Mandatory Answer column on the Questions tab, which indicates\nif questions require a mandatory answer or not, click the (optional columns) icon\nlocated to the far-right of the column titles.\n\n### Create sections\n\nA section divides the survey into organized parts, in order to visually group similar questions\ntogether. To make a section, click Add a section at the bottom of the Questions tab, proceed to type in a desired name for the section, then either press Enter or click away.\nThe section line appears in dark gray in the Questions tab.\nThen, drag-and-drop desired questions beneath a section, or drag-and-drop a section title on top of\n(i.e. before ) the desired question(s) in the survey, in order to populate the section with\nspecific questions that fit the theme of the section.\nIf the Randomized per Section option is enabled in the Options tab of the\nsurvey form, the number 1 appears, by default, on the section line, beneath the #\nQuestions Randomly Picked column.\n`1`\nThis indicates that 1 question from that section will be picked at random for each participant\ntaking the survey, bypassing every other, non-chosen question from that section. To change that\nnumber, select that figure, and type in the desired number in its place. Then, either press Enter , or click away.\n`1`\n\n## Create questions\n\nTo create questions for the survey, click Add a question in the Questions tab.\nClicking Add a question opens the Create Sections and Questions pop-up\nwindow, in which a survey question can be created.\nThere must be a survey title entered in order for the Create Sections and\nQuestions pop-up window to appear. If no title is entered for the survey, an error pop-up\nmessage appears in the upper-right corner, instructing the user to enter a survey title.\nWhen all desired configurations are complete click either Save & Close to save the\nquestion and return to the survey form, or Save & New to save the question and create a\nnew one right away in a fresh Create Sections and Questions pop-up window.\nClick Discard to discard the question entirely.\n\n### Create Sections and Questions pop-up window\n\nIn the Create Sections and Questions pop-up window, start by typing the question into\nthe Question field, located at the top of the pop-up window.\nThen, choose the desired Question Type . A preview of each Question Type is\nto the right of the Question Type field, when a Question Type is selected.\nChoose from the following Question Types :\n- Multiple choice: only one answer : a multiple choice question, where only one answer is\npermitted.\nMultiple choice: only one answer : a multiple choice question, where only one answer is\npermitted.\n- Multiple choice: multiple answers allowed : a multiple choice question, where more than\nanswer is permitted.\nMultiple choice: multiple answers allowed : a multiple choice question, where more than\nanswer is permitted.\n- Multiple Lines Text Box : an open-ended question, where participants can type in a\nmultiple line response.\nMultiple Lines Text Box : an open-ended question, where participants can type in a\nmultiple line response.\n- Single Line Text Box : an open-ended question, where participants can type in a single\nline response.\nSingle Line Text Box : an open-ended question, where participants can type in a single\nline response.\n- Numerical Value : a number-based question, where participants must enter a number as a\nresponse.\nNumerical Value : a number-based question, where participants must enter a number as a\nresponse.\n- Date : a date-based question, where participants must enter a date (year-month-day) as\na response.\nDate : a date-based question, where participants must enter a date (year-month-day) as\na response.\n- Datetime : a date-based question, where participants must enter a date and time\n(year-month-day, hour-minute-second) as a response.\nDatetime : a date-based question, where participants must enter a date and time\n(year-month-day, hour-minute-second) as a response.\n- Matrix : a multiple-choice, multiple question, in a table/chart layout, where\nparticipants are presented with different questions on each row, and different answer options on\neach column.\nMatrix : a multiple-choice, multiple question, in a table/chart layout, where\nparticipants are presented with different questions on each row, and different answer options on\neach column.\nDifferent features appear in the Answers and Options tabs, depending on\nthe chosen Question Type .\nHowever, the Description tab always remains the same, regardless of the question\ntype chosen.\nOnce a Question Type has been selected, there are three possible tabs where information\ncan be customized for the question. These include the Answers tab (if applicable for the\nchosen Question Type ), the Description tab, and the Options tab.\nEach tab offers a variety of different features, depending on what Question Type was\nchosen.\n\n#### Answers tab\n\nThe Answers tab only appears if the selected Question Type provides\nanswer options to the participant.\nHowever, if a custom response is required to answer the selected Question Type , like a Multiple Lines Text Box , for example. Or, if the answer to the Question Type is a number, date, or datetime, the Answers tab disappears completely.\nIf the Single Line Text Box is selected as the Question Type , the Answers tab remains, although it only provides two checkbox options: Input\nmust be an email and Save as user nickname .\nIf the Input must be an email option is enabled, a new field, Save as user\nemail appears. If that box is ticked, Odoo saves the participantâs answer to that specific question\nas their email address.\nIf the Save as user nickname option is enabled, Odoo saves the participantâs answer as\nits nickname.\nFor all other applicable Question Type options that provide answer options to the\nparticipant, the Answers tab appears the same.\nFrom here, users can add answer options by clicking Add a line , and typing in the\nvarious answer options for that question. Then, either press Enter to lock in that answer\noption and immediately add another one. Or, click away to simply lock in that answer option.\nThe entered answer options appear in the Choices column of the Answers tab.\nIf any Scoring option is enabled in the Options tab of the survey form, the Correct and Score columns appear to the right of the Choices column.\nTo mark an answer option as correct, tick the box beneath the Correct column for the\nrespective question. If Multiple choice: multiple answers allowed is set as the Question Type , multiple answers in the Choices column can be marked as Correct .\nIn the Score column, designate how many points (if any) should be rewarded to the\nparticipant for entering that specific answer. It is possible to enter a negative amount as the Score to take points away for an incorrect response.\nThe option to upload a corresponding image to accompany the answer options is available on the\nquestion line, beneath the Image column, by clicking Upload your file , and\nuploading the desired image.\nTo delete any answer option, click the ðï¸ (trash can) icon to the far-right of the\nquestion line.\nAn exception to that is if the Matrix option is selected as the Question\nType . If thatâs chosen, the Answers tab remains, but below the typical Choices section, there is a Rows section. Thatâs because the Matrix option provides an answer table for participants to fill out.\n\n#### Description tab\n\nIn the Description tab of the Create Sections and Questions pop-up window is\nused to provide any kind of guidelines, instructions, or any other type of supplemental material\ndeemed necessary to help participants answer/understand the question.\nEntering a description is not required.\n\n#### Options tab\n\nIn the Options tab of the Create Sections and Questions pop-up window, there\nare four available sections: Answers , Constraints , Conditional\nDisplay , and Live Sessions .\nFields in the Answers section in the Options tab of the Create\nSections and Questions pop-up window vary, depending on the selected Question Type and overall Options configured on the survey form.\nIf the selected Question Type is either Multiple choice: only one answer or Multiple choice: multiple answers allowed , there is a Show Comments Field present in the Answers section.\nWhen enabled, two additional fields appear: Comment Message and Comment is an\nanswer .\nIn the Comment Message field, type in a guiding message to help participants know what\nis expected of them (e.g. If other, please specify ).\n`Ifother,pleasespecify`\nIf the Comment is an answer option is enabled, Odoo takes the participantâs commented\nresponse as an answer, and not just commentary on the question. This is best utilized in surveys\nwhere there is no scoring option enabled.\nIf the selected Question Type is Multiple Lines Text Box , a Placeholder field appears in the Answers section of the Options tab.\nIn the Placeholder field, enter a guiding direction to help participants know what they\nshould write in the Multiple Lines Text Box presented to them.\nIf the selected Question Type is Single Line Text Box , Numerical\nValue , Date , or Datetime , two options appear in the Answers section of the Options tab: Validate Entry and Placeholder .\nIf the Validate Entry option is enabled, two additional fields appear beneath: Min/Max Limits and Validation Error .\nIn the Min/Max Limits field, designate the minimum and maximum allowed quantities for\nthat specific question.\nIn the Validation Error field, enter a custom message that Odoo displays when an answer\nis not valid.\nIn the Placeholder field, enter a guiding direction to help participants know what they\nshould write in the Multiple Lines Text Box presented to them.\nThe Constraints section in the Options tab is the same, regardless of the\nselected Question Type .\nIn the Constraints section, there is one option available: Mandatory Answer .\nWhen Mandatory Answer is enabled, that means that specific question requires an answer\nfrom the participant before they can move on. Also, when Mandatory Answer is enabled,\nthat reveals an additional field: Error Message .\nIn the Error Message field, enter a custom error message prompting the participant to\nprovide an answer for this question.\nConditional Display means the question is only displayed if a specified conditional\nanswer(s) (i.e. Triggering Answers ) has been selected in a previous question(s).\nThe Conditional Display section of the Options tab is not available\nwhen questions are randomly picked.\nThere is only one field in the Conditional Display section: Triggering\nAnswers .\nIn the Triggering Answers field, select specific responses from previous questions that\nwould trigger this question. More than one answer can be selected. Leave the field empty if the\nquestion should always be displayed.\nThe option in the Live Sessions section of the Options tab are only supported by Live Session surveys.\nThere is only one option available in the Live Sessions section: Question\nTime Limit .\nWhen the Question Time Limit option is enabled, designate how much time (in seconds ) participants have to answer the question during a Live Session survey.\nSurvey text colors are directly linked to the colors used for the website theme .", "headings": ["Questions tab", "Create sections", "Create questions", "Create Sections and Questions pop-up window"], "doc_id": "4c95532f8760800d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/marketing/surveys/scoring.html", "title": "Scoring surveys", "module": "marketing", "section": "Scoring surveys", "text": "# Scoring surveys\n\nTo measure a survey participantâs performance, knowledge, or overall satisfaction, Odoo ascribes\npoints to survey answers. At the end of the survey, these points are summed up, resulting in the\nparticipantâs final score.\nTo add points to questions, open the Surveys application, choose the desired survey\nform, and then click on the Options tab. Under the :guilabel;`Scoring` section, choose\nbetween Scoring with answers at the end or Scoring without answers at the\nend .\n- Scoring with answers at the end shows the survey participant their answers after\ncompleting the survey, and displays which questions they got right or wrong. On questions where\nthere was an incorrect answer, the correct answer will be highlighted.\nScoring with answers at the end shows the survey participant their answers after\ncompleting the survey, and displays which questions they got right or wrong. On questions where\nthere was an incorrect answer, the correct answer will be highlighted.\n- Scoring without answers at the end does not show the survey participant their answer\nchoices after completing the survey, only their final score.\nScoring without answers at the end does not show the survey participant their answer\nchoices after completing the survey, only their final score.\nTo indicate correct answers, click on the Questions tab and choose a question. In the\nquestion form, check the Is a correct answer box for the choice that is the correct\nanswer and attach a score value.\nBack on the Options tab of the survey, set the Success % . The percentage\nentered determines what percentage of correct answers is needed to pass the survey.\nFurther on the Options tab of the survey, survey administrators can also choose to make\nthe survey a certification. A certification indicates that the survey asks questions to test the\nparticipantsâ knowledge level on a subject.\nWhen enabling the Is a certification option, choose a Certification email\ntemplate . The certification will automatically be emailed using this email template to users who\npass the survey with a final score that is greater than or equal to the set Success % .\nIn the Candidates section, participants can be required to log in to take the survey.\nIf the Login Required setting is enabled, two new options appear: the Attempts Limit checkbox, which limits the number of times a participant can attempt\nthe survey, and the option to Give Badge , located beneath the Certification options in the Scoring section.\nBadges are displayed on the eLearning portion of a given userâs portal, and are a way to set\nmilestones and reward participants for passing surveys or gaining points. Besides the awardee,\nwebsite visitors who access the Courses page will also be able to see the granted\nbadges.", "headings": [], "doc_id": "5a3d8a32d1d670a2"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/productivity/discuss.html", "title": "Discuss", "module": "discuss", "section": "Discuss", "text": "# Discuss\n\nOdoo Discuss is an internal communication app that allows users to connect through messages,\nnotes, file sharing, and video calls. Discuss enables communication through a persistent chat\nwindow that works across applications, or through the dedicated Discuss dashboard.\nUpon opening the Discuss app , the Discuss dashboard appears.\n\n## Inbox, starred, and history\n\nUpon opening the Discuss app , the Discuss dashboard appears.\nOn the Discuss dashboard, unread messages are visible in the Inbox . Starred is where starred messages are stored. History shows chatter updates for records in the Odoo database the\nuser has been assigned to, or tagged on.\n\n## Direct messages\n\nDirect messages allow the user to communicate privately with one or multiple team members. To\nstart a new direct message, click the icon, next to Direct Messages on\nthe Discuss dashboard, and enter the name of the desired person in the Start\na conversation search bar that appears.\nMultiple names can be selected in the Start a conversation search bar. Once all of\nthe names have been entered, press Enter .\n\n### Direct message actions\n\nHover over a direct message in the chat window to see a menu of actions to take on the message.\n- (Add a Reaction) : open a drop-down menu of emojis that can be\nused to react to the direct message.\n(Add a Reaction) : open a drop-down menu of emojis that can be\nused to react to the direct message.\n- (Reply) : reply to the direct message in a thread.\n(Reply) : reply to the direct message in a thread.\n- (Mark as Todo) : add the message to the Starred tab.\n(Mark as Todo) : add the message to the Starred tab.\n- (Expand) : reveals more message actions, including: Pin Mark as Unread Edit Delete\n(Expand) : reveals more message actions, including:\n- Mark as Unread\n- Delete\n\n### Conversation actions\n\nThe icons in the top-right corner of a direct message conversation represent different actions the\nuser can take on that conversation.\nClick Notification Settings to set up notification preferences for the\nconversation, or click Start a Call to begin a meeting. See the Meetings section for more information about meetings.\nAt the top of the direct message window, click the name of the direct message to change the group\nname, and choose to add a description in the adjacent Add a description field.\nThe Add a description field is only available for group messages with more than\ntwo participants.\n\n### User status\n\nIt is helpful to see what colleagues are up to, and how quickly they can respond to messages, by\nchecking their status. The status is displayed as a circle in the bottom-right corner of a contactâs\nphoto in the (Members List) .\nThe color of the circle represents the userâs status:\n- Green = online\n- Orange = away\n- White = offline\n- Airplane = out of the office\nAirplane = out of the office\n\n### Leave a direct message conversation\n\nTo leave a direct message conversations, click the (Leave this channel) icon next to the conversation name in the Direct Messages section of the sidebar.\nLeaving a conversation does not delete the direct messages in the conversation. The direct\nmessage conversationâs history is visible when another direct message with the same person, or\ngroup, is created.\n\n## Meetings\n\nIn Discuss , Meetings are video calls. To start a meeting from the Discuss dashboard, click Start a meeting in the top-left corner, and select who to invite to the\nmeeting, via the Invite People drop-down window that appears. To start a meeting from a\ndirect message, click the Start a Call icon in the top-right corner.\nOnce a meeting has been started, the following buttons can be used:\n\n## User-specific notification preferences\n\nAccess user-specific preferences for the Discuss app by navigating to Settings\napp ⣠Manage Users , select a user, then click the Preferences tab.\nBy default, the Notification field is set as Handle by Emails . With this\nsetting enabled, a notification email is sent by Odoo every time a message is sent from the chatter\nof a record, a note is sent with an @ mention (from the chatter of a record), or a notification is\nsent for a record the user follows.\n`@`\nBy choosing Handle in Odoo , the above notifications are shown in the Discuss appâs Inbox .\n\n## Chat from different applications\n\nThe Discuss application enables communication across all of Odooâs applications. To view chats\nand channels, or start a new message, select the speech bubbles that are consistently present in the\nupper-right corner of the database header.\n- Use channels for team communication\nUse channels for team communication\n- Activities\n- Configure ICE servers with Twilio\nConfigure ICE servers with Twilio\n- Chatter", "headings": ["Inbox, starred, and history", "Direct messages", "Direct message actions", "Conversation actions", "User status", "Leave a direct message conversation", "Meetings", "User-specific notification preferences", "Chat from different applications"], "doc_id": "31d5f1e1d8467915"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/productivity/discuss/canned_responses.html", "title": "Canned responses", "module": "discuss", "section": "Canned responses", "text": "# Canned responses\n\nCanned responses are customizable inputs where a typed shortcut populates a longer response. A\nuser enters a keyword shortcut, which is then automatically replaced by the expanded substitution\nresponse. Canned responses save time by allowing users to use shorthand phrases to populate longer\nmessages. This also limits the possibility of errors when typing out longer messages because these\nare pre-set messages. This maintains consistency throughout customer interactions.\nCanned responses consist of two main components: the shortcut and the substitution . The shortcut\nis the keyword or key phrase that is to be replaced. The substitution is the longer message that\nreplaces the shortcut.\nCanned responses are available to use in Live Chat conversations, the Discuss app, and the Chatter composer. This includes direct message conversations, channel\nconversations, and WhatsApp messages.\n\n## Creating canned responses\n\nCanned responses are managed through the Discuss application. To create a new canned response,\nor manage the list of existing responses, navigate to Discuss app ⣠Configuration\n⣠Canned Responses .\nThen, to create a new canned response, click New at the top-left of the list. Doing so\nreveals a new blank line in the list.\nCanned responses consist of two main components, a shortcut the user enters, and the substitution that replaces the shortcut.\nType a shortcut command in the Shortcut field. Next, click on the Substitution field, and type the message that will replace the shortcut.\nTry to connect the shortcut to the topic of the substitution. Not only does this make it easier\nto use the responses, it prevents the list of responses from becoming disorganized and\noverwhelming.\nIn the Description field, add any information that provides context for this response,\nsuch as guidelines for when it should or should not be used.\nThe Created by field automatically populates with the name of the user that creates a\nnew response. This field cannot be edited.\nTo share this response with other users, select one or more\ngroups in the Authorized Group field that should have access.\nIf the Authorized Group field is left blank, the response can only be used by the\nuser that created it.\nCanned responses created by the database are automatically credited as created by OdooBot . They\nmust be assigned to an authorized group before they can be used by any users. To view the\nresponses created by OdooBot , navigate to Discuss app ⣠Configuration â£\nCanned Responses . Click into the search bar, and remove any filters.\nLastly, the Last Used field keeps track of the date and time each response was most\nrecently used. This field cannot be edited.\n\n## Share responses\n\nCanned responses, by default, are made available only to the user who creates them. To make a\ncanned response available for others to use, they need to be shared.\nUsers with Administrator access rights can view and edit canned responses created by other\nusers through the Discuss app. However, they are only able to use them if they are\nincluded in an authorized group that has been designated on that canned responses item line,\nlocated on the Canned Responses page.\nAccess to shared responses is granted on the groups level.\nTo view the Groups a user is a member of, first enable Developer mode ,\nthen navigate to Settings app ⣠Users & Companies ⣠Users . Select a user from\nthe list, and click to open their User Record . Then, click the Groups smart\nbutton at the top of the page.\nTo view a list of users in a specific group, first enable Developer mode . Next, navigate to Settings app ⣠Users &\nCompanies ⣠Groups . Select a group from the list, then click to open the Group\nRecord . A list of users is included on the Users tab.\nAfter determining what groups should have access to a response, they must be added to the Authorized Groups field for each canned\nresponse.\nThe user who created the response can use it, even if they are not a member of one of the Authorized Groups .\n\n## Use a canned response\n\nCanned responses can be used in the Discuss app, in a Live Chat conversation, or on any\nrecord that contains a Chatter composer. This includes direct message conversations, channel\nconversations, and WhatsApp messages.\nTo use a canned response, type a colon ( : ) into a Chatter composer or chat window, followed by\nthe shortcut. Then press Enter . This replaces the shortcut with the substitution, though the\nresponse can still be edited before it is sent.\n`:`\nTyping : in the Chatter composer, or chat window, on its own generates a drop-down list of\navailable canned responses. A response can be selected from the list, in addition to the use of\nshortcuts.\n`:`\nTo search through the list of available responses, type : , followed by the first few letters of\nthe shortcut.\n`:`\n- Chatter\n- Discuss\n- Commands and Canned Responses\nCommands and Canned Responses", "headings": ["Creating canned responses", "Share responses", "Use a canned response"], "doc_id": "dcda932369333493"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/productivity/discuss/chatter.html", "title": "Chatter", "module": "discuss", "section": "Chatter", "text": "# Chatter\n\nThe Chatter feature is integrated throughout Odoo to streamline communication, maintain\ntraceability, and provide accountability among team members. Chatter windows, known as composers ,\nare located on almost every record within the database, and allow users to communicate with both\ninternal users and external contacts.\nChatter composers also enable users to log notes, upload files, and schedule activities.\n\n## Chatter thread\n\nA chatter thread can be found on most pages in the database, and serves as a record of the updates\nand edits made to a record. A note is logged in the chatter thread when a change is made to the\nrecord. The note includes details of the change, and a time stamp.\nA user, Mitchell Admin, needs to update the email address of a contact. After they save the\nchanges to the contact record, a note is logged in the chatter of the contact record with the\nfollowing information:\n- The date when the change occurred.\nThe date when the change occurred.\n- The email address as it was previously listed.\nThe email address as it was previously listed.\n- The updated email address.\nThe updated email address.\nIf a record was created, or edited, via an imported file, or was otherwise updated through an\nintervention by the system, the chatter thread creates a log note, and credits the change to\nOdooBot.\n\n## Add followers\n\nA follower is a user or contact that is added to a record and is notified when the record is\nupdated, based on specific follower subscription settings .\nFollowers can add themselves, or can be added by another user.\nIf a user creates, or is assigned to a record, they are automatically added as a follower.\nTo follow a record, navigate to any record with a chatter thread. For example, to open a Helpdesk ticket, navigate to Helpdesk app ⣠Tickets ⣠All Tickets , and select a ticket\nfrom the list to open it.\nAt the top-right, above the chatter composer, click Follow . Doing this changes the\nbutton to read Following . Click it again to Unfollow .\n\n### Manage followers\n\nTo add another user, or contact, as a follower, click the (user) icon. This opens a drop-down list of the\ncurrent followers. Click Add Followers to open an Invite Follower pop-up\nwindow.\nSelect one or more contacts from the Recipients drop-down list. To notify the contacts,\ntick the Send Notification checkbox. Edit the message template as desired, then click Add Followers .\nTo remove followers, click the (user) icon to open the current followers list. Find the name of the\nfollower to be removed, and click the (remove) icon.\n\n### Edit follower subscription\n\nThe updates a follower receives can vary based on their subscription settings. To see the type of\nupdates a follower is subscribed to, and to edit the list, click the (user) icon. Find the appropriate\nfollower in the list, then click the (pencil) icon. This opens the Edit Subscription pop-up window for the follower.\nThe list of available subscription settings varies depending on the record type. For example, a\nfollower of a Helpdesk ticket may be informed when the ticket is rated. This option would not be\navailable for the followers of a CRM opportunity.\nTick the checkbox for any updates the follower should receive, and clear the checkbox for any\nupdates they should not receive. Click Apply when finished.\nThe Edit Subscription options vary depending on the record type. These are the options for a\nHelpdesk ticket.\n\n## Log notes\n\nThe chatter function includes the ability to log internal notes on individual records. These notes\nare only accessible to internal users, and are available on any records that feature a chatter\nthread.\nTo log an internal note, first navigate to a record. For example, to open a CRM opportunity,\nnavigate to CRM app ⣠Sales ⣠My Pipeline , and click on the Kanban card of an\nopportunity to open it. Then, at the top-right, above the chatter composer, click Log\nnote .\nEnter the note in the chatter composer. To tag an internal user, type @ , and begin typing the name\nof the person to tag. Then, select a name from the drop-down menu. Depending on their notification\nsettings, the user is notified by email, or through Odoo.\n`@`\nOutside contacts can also be tagged in an internal log note. The contact then receives an email\nwith the contents of the note they were tagged in, including any attachments added directly to\nthe note. If they respond to the email, their response is logged in the chatter, and they are\nadded to the record as a follower.\nOutside contacts are not able to log in to view the entire chatter thread, and are only\nnotified of specific updates, based on their follower subscription settings , or when they are tagged directly.\n\n## Send messages\n\nChatter composers can send messages to outside contacts, without having to leave the database, or\nopen a different application. This makes it easy to communicate with potential customers in the Sales and CRM applications, or vendors in the Purchase app.\nTo send a message, first navigate to a record. For example, to send a message from a CRM opportunity, navigate to CRM app ⣠Sales ⣠My Pipeline , and click on the Kanban\ncard of an opportunity to open it. Then, at the top-right, above the chatter composer, click Send message .\nPress Ctrl + Enter to send a message, instead of using the Send button.\nIf any followers have been added to the record, they are added as\nrecipients of the message.\nFollowers of a record are added as recipients of a message\nautomatically. If a follower should not receive a message, they must be removed as a follower\nbefore the message is sent, or a note is logged.\n\n### Expand full composer\n\nThe chatter composer can be expanded to a larger pop-up window, allowing for additional\ncustomizations.\nTo open the full composer, click the (expand) icon in the bottom-right\ncorner of the composer window.\nThe expand icon in a chatter composer.\nDoing this opens a Compose Email pop-up window. Confirm or edit the intended Recipients of the message, or add additional recipients. The Subject field\nauto-populates based on the title of the record, though it can be edited, if desired.\nTo use an email template for the message, click the (vertical ellipsis) icon, then select a template from the list. Existing templates can also be overwritten or\ndeleted from this menu.\nThe number and type of templates available vary, based on the record the message is created from.\nClick (paperclip) icon to add any files to the message, then click Send .\n\n#### Generate text with AI\n\nTo generate message text using AI, click the AI icon from the expanded chatter composer. This opens\na Generate Text with AI pop-up.\nEnter a prompt in the Send a message field to instruct the AI on the type of content\nneeded, then press enter, or click the (paper plane) icon.\nAfter the text is generated, click Insert to insert the text into the message composer.\nBefore sending the final message, be sure to edit any commentary from the AI, or any text in\nbrackets.\n\n### Edit sent messages\n\nMessages can be edited after they are sent, to fix typos, correct mistakes, or add missing\ninformation.\nWhen messages are edited after they have been sent, an updated message is not sent to the\nrecipient.\nTo edit a sent message, click the (vertical ellipsis) menu to the right of the message. Then, select Edit . Make any necessary adjustments to the message.\nTo save the changes, press Ctrl + Enter . To discard the changes, press Escape .\nUsers with Admin-level access rights can edit any sent messages. Users without Admin rights can only edit messages they created.\n\n## Search messages\n\nChatter threads can become long after a while, because of all the information they contain. To make\nit easier to find a specific entry, users can search the text of messages and notes for specific\nkeywords.\nFirst, select a record with a chatter thread. For example, to search a CRM opportunity, navigate\nto CRM app ⣠Sales ⣠My Pipeline , and click on the Kanban card of an\nopportunity to open it. Then, at the top-right, above the chatter composer, click the (search) icon to open the search bar.\nEnter a keyword or phrase into the search bar, then hit Enter , or click the (search) icon to the right of the search bar. Any messages or notes\ncontaining the keyword or phrase entered are listed below the search bar, with the keyword\nhighlighted.\nTo be taken directly to a particular message in the chatter thread, hover over the upper-right\ncorner of the result to reveal a Jump button. Click this button to be directed to that\nmessageâs location in the thread.\nSearch results in a chatter thread. Hover over the upper-right corner of a result to see the Jump option. Click it to be taken directly to that message in the chatter thread.\n\n## Schedule activities\n\nActivities are follow-up tasks tied to a record in an Odoo database. Activities can be scheduled\non any database page that contains a chatter thread, Kanban view, list view, or activities view of\nan application.\nTo schedule an activity through a chatter thread, click the Activities button, located\nat the top of the chatter on any record. On the Schedule Activity pop-up window that\nappears, select an Activity Type from the drop-down menu.\nIndividual applications have a list of Activity Types dedicated to that application. For\nexample, to view and edit the activities available for the CRM application, go to CRM app ⣠Configuration ⣠Activity Types .\nEnter a title for the activity in the Summary field, located in the Schedule\nActivity pop-up window.\nSelect a name from the Assigned to drop-down menu to assign the activity to a different\nuser. Otherwise, the user creating the activity is automatically assigned.\nAdd any additional information in the optional Log a note⦠field.\nThe Due Date field on the Schedule Activity pop-up window auto-populates\nbased on the configuration settings for the selected Activity Type . However, this\ndate can be changed by selecting a day on the calendar in the Due Date field.\nLastly, click one of the following buttons:\n- Schedule : adds the activity to the chatter under Planned activities .\nSchedule : adds the activity to the chatter under Planned activities .\n- Schedule & Mark as Done : adds the details of the activity to the chatter under Today . The activity is added to Today , and is automatically marked as\ndone.\nSchedule & Mark as Done : adds the details of the activity to the chatter under Today . The activity is added to Today , and is automatically marked as\ndone.\n- Done & Schedule Next : adds the task under Today marked as done, and opens\na new activity window.\nDone & Schedule Next : adds the task under Today marked as done, and opens\na new activity window.\n- Cancel : discards any changes made on the pop-up window.\nCancel : discards any changes made on the pop-up window.\nScheduled activities are added to the chatter for the record under Planned activities ,\nand are color-coded based on their due date.\n- Red icons indicate an overdue activity.\nRed icons indicate an overdue activity.\n- Yellow icons indicate an activity with a due date scheduled for the current date.\nYellow icons indicate an activity with a due date scheduled for the current date.\n- Green icons indicate an activity with a due date scheduled in the future.\nGreen icons indicate an activity with a due date scheduled in the future.\nClick the (info) icon next to a planned activity to see\nadditional details.\nAfter completing an activity, click Mark Done under the activity entry in the chatter.\nThis opens a Mark Done pop-up window, where additional notes about the activity can be\nentered. After adding any comments to the pop-up window, click: Done & Schedule Next , Done , or Discard .\nAfter the activity is marked complete, an entry with the activity type, title, and any other details\nthat were included in the pop-up window are listed in the chatter.\n\n## Attach files\n\nFiles can be added as attachments in the chatter, either to send with messages, or to include with a\nrecord.\nAfter a file has been added to a chatter thread, it can be downloaded by any user with access to\nthe thread. Click the (paperclip) icon to make the files header visible, if necessary. Then, click the (download) icon the file to download it.\nTo attach a file, click the (paperclip) icon located at the top of the chatter composer of any record\nthat contains a chatter thread.\nThis opens a file explorer pop-up window. Navigate to the desired file, select it, then click Open to add it to the record. Alternatively, files can be dragged and dropped directly\nonto a chatter thread.\nAfter files have been added, they are listed in the chatter thread, under a Files heading.\nAfter at least one file has been added to a chatter record, a new button labeled Attach files appears below the Files heading. To attach any additional\nfiles, this is the button that must be used, instead of the (paperclip) icon at the top of the\nchatter thread.\nAfter the Files section heading appears in the thread, clicking the (paperclip) icon no\nlonger opens a file explorer pop-up window. Instead, clicking the (paperclip) icon toggles the Files section from visible to invisible in the chatter thread.\n\n## Integrations\n\nBeyond the standard features, additional integrations can be enabled to work with the chatter\nfeature, specifically WhatsApp and Google Translate .\nBefore the WhatsApp and Google Translate integrations can be used with the chatter, they must be configured. Step-by-step instructions on how to set-up each of these features can be\nfound in the documentation below:\n- WhatsApp\n- Google Translate\n\n### WhatsApp\n\nWhatsApp is an instant messaging and voice-over-IP app that allows users to send and receive\nmessages, as well as share content.\nWhatsApp is an Odoo Enterprise-only application that does not work in the Odoo Community\nedition. To sign up for an Odoo Enterprise edition, click here: Odoo Free Trial .\nAfter WhatsApp has been configured and enabled within a database, a WhatsApp button is\nadded above the chatter composer on any applicable record. If one or more approved WhatsApp templates are found for that model, clicking this button opens a Send WhatsApp Message pop-up window.\nWhatsApp templates must be approved before they can be used. See WhatsApp templates for more information.\n\n### Google Translate\n\nGoogle Translate can be used to translate user-generated text in the Odoo chatter.\nTo enable Google Translate on a database, an API key must first be created through the Google API Console .\nAfter creating the API key, navigate to the Settings app ⣠Discuss section and\npaste the key in the Message Translation field. Click Save to save the\nchanges.\n\n#### Translate a chatter message\n\nTo translate a userâs text from another language, click the (vertical ellipsis) menu to the right of the chatter.\nThen, select Translate . The content translates to the language set in the userâs\npreferences .\nUsing the Google Translate API requires a current billing account with Google .\n- Discuss\n- Discuss Channels\n- Activities\n- WhatsApp", "headings": ["Chatter thread", "Add followers", "Manage followers", "Edit follower subscription", "Log notes", "Send messages", "Expand full composer", "Edit sent messages", "Search messages", "Schedule activities", "Attach files", "Integrations", "WhatsApp", "Google Translate"], "doc_id": "60b24df924eb4d50"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/productivity/discuss/ice_servers.html", "title": "Configure ICE servers with Twilio", "module": "discuss", "section": "Configure ICE servers with Twilio", "text": "# Configure ICE servers with Twilio\n\nOdoo Discuss uses WebRTC API and peer-to-peer connections for voice and video calls. If one of the\ncall attendees is behind a symmetric NAT, you need to configure an ICE server to establish a\nconnection to the call attendee. To set up an ICE server, first, create a Twilio account for video\ncalls, and then, connect that Twilio account to Odoo.\n\n## Create a Twilio account\n\nFirst, go to Twilio and click Sign up to create a new\nTwilio account. Next, enter your name and email address, create a password, and accept Twilioâs\nterms of service. Then, click Start your free trial . Verify your email address with\nTwilio, as per their instructions.\nNext, enter your phone number into Twilio. Then, Twilio will send you an SMS text message\ncontaining a verification code. Enter the verification code into Twilio to verify your phone\nnumber.\nAfter that, Twilio redirects to a welcome page. Use the following list to answer Twilioâs\nquestions:\n- For Which Twilio product are you here to use? , select Video .\nFor Which Twilio product are you here to use? , select Video .\n- For What do you plan to build with Twilio? , select Other .\nFor What do you plan to build with Twilio? , select Other .\n- For How do you want to build with Twilio? , select With no code at all .\nFor How do you want to build with Twilio? , select With no code at all .\n- For What is your goal today? , select 3rd party integrations .\nFor What is your goal today? , select 3rd party integrations .\nIf necessary, change the billing country. Finally, click Get Started with Twilio .\n\n## Locate the Twilio Account SID and Auth Token\n\nTo locate the Account SID and Auth Token, go to the Twilio account dashboard. Then, click Develop on the sidebar. In the Account Info section, locate the Account SID and the Auth Token . Both of these are needed to connect Twilio\nto Odoo.\n\n## Connect Twilio to Odoo\n\nOpen the Odoo database and go to Settings ⣠General Settings ⣠Discuss . Check\nthe box next to Use Twilio ICE servers and enter the Twilio accountâs Account SID and Auth Token . Finally, click Save to apply these\nchanges.\n\n## Define a list of custom ICE servers\n\nThis step is not required for the Twilio configuration. However, if Twilio is not configured or is\nnot working at any given moment, Odoo will fall back on the custom ICE servers list. The user must\ndefine the list of custom ICE servers.\nIn Settings ⣠General Settings ⣠Discuss , click the ICE Servers button under Custom ICE server list .\nOdoo will redirect to the ICE servers page. Here you can define your own list of ICE\nservers.\nFor on-premise instances of Odoo, the package python3-gevent is necessary for the Discuss\nmodule to run calls/video calls on Ubuntu (Linux) servers.\n`python3-gevent`", "headings": ["Create a Twilio account", "Locate the Twilio Account SID and Auth Token", "Connect Twilio to Odoo", "Define a list of custom ICE servers"], "doc_id": "cf72b0077ec1c673"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/productivity/discuss/team_communication.html", "title": "Use channels for team communication", "module": "discuss", "section": "Use channels for team communication", "text": "# Use channels for team communication\n\nUse channels in the Odoo Discuss app to organize discussions between individual teams,\ndepartments, projects, or any other group that requires regular communication. With channels,\nemployees can communicate inside dedicated spaces within the Odoo database around specific topics,\nupdates, and latest developments having to do with the organization.\n\n## Create a new channel\n\nTo create a new channel, navigate to the Discuss app, and then click on the (plus) icon next to the Channels heading in the left-side\nmenu.\nThe channelâs Group Name , Description , and Privacy settings can\nbe modified by clicking on the channelâs settings, represented by a (gear) icon in the left sidebar menu, next to the channelâs name.\n\n### Privacy tab\n\nTo control which users can join a channel, open the channelâs setting page and navigate to the Privacy tab.\nTo limit access of the channel to a specific group, select an option from the Authorized\nGroup drop-down menu.\nTo automatically add members of a group as followers of the channel, click the Auto\nSubscribe Groups field, and select one or more groups from the list.\nUsers who are automatically added as followers can manually edit their subscription to the\nchannel, if necessary.\nThe option to Auto Subscribe Groups automatically adds users of that particular user\ngroup as followers. In other words, while Authorized Groups limits which users can\naccess the channel, Auto Subscribe Groups automatically adds users as members as long as\nthey are part of a specific user group. The same is true for Auto Subscribe Departments .\n\n### Invite members to a channel\n\nTo invite members to a channel, click on the Members tab. Click Add a line ,\nthen select either a Partner or Guest from the drop-down menu.\nInviting members can also be done from the Discuss appâs main dashboard, by selecting the\nchannel, clicking the (add user) icon in the top-right corner of\nthe dashboard, and finally clicking Invite to Channel once all the users have been\nadded.\n\n## Quick search bar\n\nOnce at least 20 channels, direct messages, or live chat conversations are pinned in the sidebar, a Quick search⦠bar is displayed. This feature is a convenient way to filter conversations\nand find relevant communications.\n\n### Finding channels\n\nTo view all available channels, click on the (gear) icon to the right of\nthe CHANNELS menu. Users can join or leave channels on this screen by clicking the Join or Leave buttons that appear in the channel boxes.\nThere is also the ability to apply filtering criteria and save them for later use. The Search⦠function accepts wildcards by using the underscore character [ _ ], and\nspecific searches can be saved by using the Favorites ⣠Save Current Search drop-down menu.\n`_`\n\n## Linking channel in chatter\n\nChannels can be linked in the chatter of a record to share relvant discussions. To do so, type: # and the channel name. Click or press enter on the Channel name. Upon logging the note a link\nto the channel appears. After clicking on the link a chat window with the channel conversation pops\nup in the lower right corner of the screen.\n`#`\nUsers are able to contribute to this group channel by typing messages in window and pressing enter .\n- Discuss\n- Activities", "headings": ["Create a new channel", "Privacy tab", "Invite members to a channel", "Quick search bar", "Finding channels", "Linking channel in chatter"], "doc_id": "c49aa5022faa5354"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm.html", "title": "CRM", "module": "crm", "section": "CRM", "text": "# CRM\n\nOdoo CRM helps you organize your sales activities: track leads, close opportunities and get\naccurate forecasts. Keep opportunities organized with the pipeline and manage your day-to-day\nactivities with meetings and next activities.\n- Odoo Tutorials: CRM", "headings": [], "doc_id": "d70d737c222b7a50"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/acquire_leads/convert.html", "title": "Convert leads into opportunities", "module": "crm", "section": "Convert leads into opportunities", "text": "# Convert leads into opportunities\n\nLeads act as a qualifying step before an opportunity is created. This provides additional time to\nreview its potential, and gauge its viability, before the opportunity is assigned to a salesperson.\n\n## Configuration\n\nTo activate the Leads setting, navigate to CRM app ⣠Configuration ⣠Settings and check the box labeled, Leads . Then, click Save .\nActivating this feature adds a new menu option, Leads , to the header bar, located along\nthe top of the screen.\nOnce the Leads setting has been activated, it applies to all sales teams by default. To turn off\nleads for a specific team, navigate to CRM app ⣠Configuration ⣠Sales Teams .\nThen, select a team from the list to open that teamâs configuration page. Clear the Leads checkbox, located beneath the Sales Team field, then click Save .\n\n## Convert a lead into an opportunity\n\nTo convert a lead into an opportunity , navigate to CRM app ⣠Leads , and click\non a lead from the list to open it.\nIf a Similar Leads smart button appears at the top of the page for the lead, it\nindicates a similar lead or opportunity already exists in the database. Before converting this\nlead, click the smart button to confirm if the lead should be merged.\nClick the Convert to Opportunity button, located at the top-left of the page.\nThis opens a Convert to opportunity pop-up modal. Here, in the Conversion\nAction field, select the Convert to opportunity option.\nTo merge this lead with an existing similar lead or opportunity, select Merge with\nexisting opportunities in the Conversion Action field. This generates a list of the\nsimilar leads/opportunities to be merged.\nWhen merging, Odoo gives priority to whichever lead/opportunity was created in the system first,\nmerging the information into the first created lead/opportunity. However, if a lead and an\nopportunity are being merged, the resulting record is referred to as an opportunity, regardless\nof which record was created first.\nThen, select a Salesperson and a Sales Team to which the opportunity should\nbe assigned. Neither field is required, though if a selection is made in the Salesperson field, the Sales Team field is populated automatically, based on the salespersonâs team\nassignments.\nIf the lead has already been assigned to a salesperson or a team, these fields automatically\npopulate with that information.\nUnder the Customer heading, choose from the following options:\n- Create a new customer : choose this option to use the information in the lead to create\na new customer record.\nCreate a new customer : choose this option to use the information in the lead to create\na new customer record.\n- Link to an existing customer : choose this option, then select a customer from the\nresulting drop-down menu, to link this opportunity to an existing customer record.\nLink to an existing customer : choose this option, then select a customer from the\nresulting drop-down menu, to link this opportunity to an existing customer record.\n- Do not link to a customer : choose this option to convert the lead, but not link it to\na new or existing customer.\nDo not link to a customer : choose this option to convert the lead, but not link it to\na new or existing customer.\nLastly, when all configurations are complete, click Create Opportunity .\nTo view the newly created opportunity, navigate to CRM app ⣠My Pipeline .\nSome filters may need to be removed from the Search⦠bar on the top Pipeline page to view all opportunities.", "headings": ["Configuration", "Convert a lead into an opportunity"], "doc_id": "35f785309b0fb5b5"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/acquire_leads/email_manual.html", "title": "Create leads (from email or manually)", "module": "crm", "section": "Create leads (from email or manually)", "text": "# Create leads (from email or manually)\n\nLeads can be added to the CRM app from custom email aliases, and by manually creating new\nrecords. This is in addition to the leads and opportunities created in the app through the website contact form .\nFirst, ensure the Leads feature is enabled in the database by navigating to CRM\napp ⣠Configuration ⣠Settings . Tick the Leads checkbox, then click Save .\n\n## Configure email aliases\n\nEach sales team has the option to create and utilize their own unique email alias. When messages\nare sent to this address, a lead (or opportunity), is created with the information from the\nmessage.\nTo create or update a sales teamsâ email alias, navigate to CRM app â£\nConfiguration ⣠Sales Teams . Click on a team from the list to open the teamâs details page.\nIn the Email Alias field, enter a name for the email alias, or edit the existing name.\nIn the Accept Emails From field, use the drop-down menu to choose who is allowed to send\nmessages to this email alias:\n- Everyone : messages are accepted from any email address.\nEveryone : messages are accepted from any email address.\n- Authenticated Partners : only accepts messages from email addresses associated with a\na partner (contact or customer) record.\nAuthenticated Partners : only accepts messages from email addresses associated with a\na partner (contact or customer) record.\n- Followers only : only accepts messages from those who are following a record related to\nthe team, such as a lead or opportunity. Messages are also accepted from team members.\nFollowers only : only accepts messages from those who are following a record related to\nthe team, such as a lead or opportunity. Messages are also accepted from team members.\n- Authenticated Employees : only accepts messages from email addresses that are connected\nto a record in the Employees app.\nAuthenticated Employees : only accepts messages from email addresses that are connected\nto a record in the Employees app.\n\n### Leads created from email\n\nLeads created from email alias messages can be viewed by navigating to CRM app â£\nLeads . Click a lead from the list to open it, and view the details.\nThe email received by the alias is added to the chatter thread for the lead. The subject line of\nthe message is added to the title field, and the Email field is updated with the\ncontactâs email address.\nIf the leads feature is not enabled on the database, messages to the email alias are added\nto the database as opportunities.\nCommunication in Odoo by email\n\n## Manually create leads\n\nLeads can be added directly to the CRM app by manually creating a new record. Navigate to CRM app ⣠Leads to view a list of existing leads.\nLeads can also be added via the Generate Leads button.\nAt the top-left of the list, click New to open a blank Leads form.\nIn the first field of the new form, enter a title for the new lead. Next, enter a Contact\nName , and a Company Name .\nIf a lead is converted to an opportunity , the Company Name field is\nused to either link this opportunity to an existing customer, or to create a new customer.\n\n### Manually create opportunities\n\nTo manually create an opportunity, navigate to CRM app ⣠Sales ⣠My Pipeline .\nAt the top-left of the page, click New to create a new opportunity Kanban card. In the Organization/Contact field, enter the name of the company the opportunity is for.\nChoose a name, and enter it in the Opportunity field. This is a required field. When\nmanually creating an opportunity, it is helpful to add a name that relates to the details of the\nopportunity.\nIn the example below, the opportunity is named 5 VP Chairs . This identifies the product the\ncustomer is interested in, as well as the potential number of products.\n`5VPChairs`\nEnter the contact information for the opportunity in the Email and Phone fields.\nIn the Expected Revenue field, enter an estimated value for the opportunity.\nThe information in the Expected Revenue and priority fields can be used to track\nperformance for individual salespeople, and on a team basis. See Expected revenue report and Assign leads with predictive lead scoring for more\ninformation.\nThen, use the (star) icons to assign a priority.\n- : low priority\n- : medium priority\n- : high priority\n- : very high priority\nAssigning a priority changes the order of leads in Kanban view, with higher priority leads\ndisplayed first.\nOnce all the necessary information has been entered, click Add .", "headings": ["Configure email aliases", "Leads created from email", "Manually create leads", "Manually create opportunities"], "doc_id": "d6f6dbe0bca7ca29"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/acquire_leads/lead_mining.html", "title": "Lead mining", "module": "crm", "section": "Lead mining", "text": "# Lead mining\n\nLead mining is a feature that allows CRM users to generate new leads directly into their Odoo\ndatabase. To ensure lead qualification, lead mining output is determined by a variety of filtering\ncriteria, such as the country, the company size, and the industry.\n\n## Configuration\n\nTo get started, go to CRM app ⣠Configuration ⣠Settings , and tick the Lead Mining checkbox to activate the feature. Then, click Save .\n\n## Generate leads\n\nAfter the Lead Mining setting is activated, a new button called Generate Leads is available to\nuse in the upper-left corner of the CRM Pipeline ( CRM app ⣠Sales ⣠My\nPipeline ).\nLead mining requests are also available through CRM app ⣠Configuration ⣠Lead\nMining Requests , or through CRM app ⣠Leads ⣠Leads , where the Generate Leads button is also available.\nClick the Generate Leads button, and a pop-up window appears, offering a variety of\ncriteria by which to generate leads.\nChoose to generate leads for Companies to get company information only, or choose Companies and their Contacts to get company information and individual employee contact information.\nWhen targeting Companies and their Contacts , additional options are available to filter contacts based on Role or Seniority .\nAdditional filtering options include the following:\n- Countries : filter leads based on the country (or countries) they are located in.\nCountries : filter leads based on the country (or countries) they are located in.\n- States : further filter leads based on the state in which they are located, if\napplicable.\nStates : further filter leads based on the state in which they are located, if\napplicable.\n- Industries : filter leads based on the specific industry they work in.\nIndustries : filter leads based on the specific industry they work in.\n- Filter on Size : tick this checkbox to specify the number of employees at the company.\nThis generates a field labeled Size . Fill in the blanks to create a range for the\ndesired company size.\nFilter on Size : tick this checkbox to specify the number of employees at the company.\nThis generates a field labeled Size . Fill in the blanks to create a range for the\ndesired company size.\n- Sales Team : choose which Sales Team the leads will be assigned to.\nSales Team : choose which Sales Team the leads will be assigned to.\n- Salesperson : choose which member of the Sales Team the leads will be assigned to.\nSalesperson : choose which member of the Sales Team the leads will be assigned to.\n- Default Tags : choose which tags are applied directly to the leads once found.\nDefault Tags : choose which tags are applied directly to the leads once found.\nMake sure to be aware of the latest EU regulations when receiving contact information. Get more\ninformation about the General Data Protection Regulation on Odoo GDPR .\n\n### View leads\n\nAfter leads are generated, they are assigned to the designated salesperson and team. To view\nadditional information regarding the lead, select one from the list, and click to open it.\nIn the chatter thread for the lead, additional information is provided. This can include the number\nof employees, the technology used by the company, the timezone, and direct contact information.\nIf Leads are not enabled for the database, then leads are generated as opportunities , and added to the pipeline for the designated salesperson.\nTo enable the Leads feature, navigate to CRM app ⣠Configuration\n⣠Settings , and tick the Leads checkbox. Then, click Save .\n\n## Pricing\n\nLead mining is an In-App Purchase feature, and each generated lead costs one credit .\nGenerating Companies and their Contacts costs one additional credit for each contact generated. See here for complete\npricing information: Lead Generation by Odoo IAP .\nTo buy credits, navigate to CRM app ⣠Configuration ⣠Settings . In the Lead Generation section, under the Lead Mining feature, click Buy\nCredits .\nCredits may also be purchased by navigating to the Settings app . In the Contacts section, under the Odoo IAP feature, click View My\nServices .\nEnterprise Odoo users with a valid subscription get free credits to test IAP features before\npurchasing more credits for the database. This includes demo/training databases, educational\ndatabases, and one-app-free databases.\nIn-app purchases (IAP)", "headings": ["Configuration", "Generate leads", "View leads", "Pricing"], "doc_id": "87f4834089a016ae"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/acquire_leads/opportunities_form.html", "title": "Create opportunities from web contact forms", "module": "crm", "section": "Create opportunities from web contact forms", "text": "# Create opportunities from web contact forms\n\nAdding a contact form to a website makes it easy to convert visitors into leads and opportunities.\nAfter a visitor submits their information, an opportunity can be created automatically, and assigned\nto a designated sales team and salesperson.\n\n## Customize contact forms\n\nBy default, the Contact Us page on an Odoo website displays a preconfigured contact form. This\nform can be customized, as needed, to suit the needs of a specific sales team.\nNavigate to Website app ⣠Contact Us , then click Edit in the\ntop-right of the screen to open the web editor. Click on the form building block in the body of the\nwebpage to open the form configuration settings on the right sidebar. The following options are\navailable to customize the contact form from the From section of the right sidebar:\n- Action : the default action for a contact form is Send an Email . Select Create an Opportunity from the drop-down list to capture the information in the CRM app.\nAction : the default action for a contact form is Send an Email . Select Create an Opportunity from the drop-down list to capture the information in the CRM app.\n- Sales Team : choose a sales team from the drop-down menu that the opportunities from\nthis form should be assigned to. This field only appears if the Action field is\nset to Create an Opportunity .\nSales Team : choose a sales team from the drop-down menu that the opportunities from\nthis form should be assigned to. This field only appears if the Action field is\nset to Create an Opportunity .\n- Salesperson : if the opportunities should be assigned to a specific salesperson, select\nthem from the drop-down menu. If no selection is made in this field, the opportunities are\nassigned based on the teamâs existing rules.\nSalesperson : if the opportunities should be assigned to a specific salesperson, select\nthem from the drop-down menu. If no selection is made in this field, the opportunities are\nassigned based on the teamâs existing rules.\n- Marked Fields : use this field to alter how the form handles marked fields. The default\noption is to treat marked fields as Required , which is the recommended setting.\nMarked Fields : use this field to alter how the form handles marked fields. The default\noption is to treat marked fields as Required , which is the recommended setting.\n- Mark Text : choose how Marked Fields should be identified. The default\ncharacter is an asterisk ( * ).\nMark Text : choose how Marked Fields should be identified. The default\ncharacter is an asterisk ( * ).\n`*`\n- Labels Width : use this field to alter the pixel width of the labels, if desired.\nLabels Width : use this field to alter the pixel width of the labels, if desired.\n- On Success : select how the webpage reacts after a customer successfully submits a\nform. Nothing keeps the customer on the same screen, with the addition of a\nconfirmation message that the form was submitted successfully. Redirect sends the\ncustomer to a new webpage, based on the address provided in the URL field below. Show Message replaces the form with a preconfigured message that informs the customer\nsomeone should respond to them as soon as possible.\nOn Success : select how the webpage reacts after a customer successfully submits a\nform. Nothing keeps the customer on the same screen, with the addition of a\nconfirmation message that the form was submitted successfully. Redirect sends the\ncustomer to a new webpage, based on the address provided in the URL field below. Show Message replaces the form with a preconfigured message that informs the customer\nsomeone should respond to them as soon as possible.\n- URL : if Redirect is selected in the On Success field, enter\nthe URL for the webpage, where customers should be directed after successfully submitting a form.\nURL : if Redirect is selected in the On Success field, enter\nthe URL for the webpage, where customers should be directed after successfully submitting a form.\n- Visibility : use the drop-down menu to add any visibility conditions for this field, if\ndesired.\nVisibility : use the drop-down menu to add any visibility conditions for this field, if\ndesired.\nIf leads are activated in CRM settings, selecting Create an Opportunity generates\na lead instead. To activate leads, navigate to CRM app ⣠Configuration â£\nSettings , and tick the Leads checkbox. Then, click Save .\n\n### Customize contact form fields\n\nIn addition to the settings for the form, the settings for each field can be customized, as well.\nWith the web editor menu still open, click into a field to open the Field configuration\nsettings section on the sidebar. The following options are available to customize a field:\n- Type : choose a custom field option or an existing field type.\nType : choose a custom field option or an existing field type.\n- Input Type : determine the type of information customers should input. Available\noptions are Text , Email , Telephone , or Url . The\nselection made in this field limits the format that customers can use when entering information.\nInput Type : determine the type of information customers should input. Available\noptions are Text , Email , Telephone , or Url . The\nselection made in this field limits the format that customers can use when entering information.\n- Label : enter the name for the field.\nLabel : enter the name for the field.\n- Position : choose the way the label is aligned with the rest of the form. The label can\nbe hidden, above the field, to the left of the field, or right adjusted and closer to the field.\nPosition : choose the way the label is aligned with the rest of the form. The label can\nbe hidden, above the field, to the left of the field, or right adjusted and closer to the field.\n- Description : slide the toggle to add a description for the field, which can provide\nadditional instructions to customers. Click under the field on the form to add the description.\nDescription : slide the toggle to add a description for the field, which can provide\nadditional instructions to customers. Click under the field on the form to add the description.\n- Placeholder : enter an example to help users know how to input information where\nformatting is important, such as a phone number or email address.\nPlaceholder : enter an example to help users know how to input information where\nformatting is important, such as a phone number or email address.\n- Default Value : enter a value to include in the form, by default, if the customer does\nnot provide information in the field. It is not recommended to include a default value for\nrequired fields .\nDefault Value : enter a value to include in the form, by default, if the customer does\nnot provide information in the field. It is not recommended to include a default value for\nrequired fields .\n- Required : slide the toggle to mark this field as required if it must be filled in\nfor every submission.\nRequired : slide the toggle to mark this field as required if it must be filled in\nfor every submission.\n- Visibility : select when this field should be visible. Use the button on the left to\nchoose whether to show or hide this field on a desktop users. Use the button on the right to\nchoose whether to show or hide this field to mobile users.\nVisibility : select when this field should be visible. Use the button on the left to\nchoose whether to show or hide this field on a desktop users. Use the button on the right to\nchoose whether to show or hide this field to mobile users.\n- Animation : select if this field should have any animation.\nAnimation : select if this field should have any animation.\n\n## View opportunities\n\nAfter a customer submits a contact form, and an opportunity is created, it is assigned based on the form settings . To view opportunities, navigate to CRM app ⣠Sales ⣠My Pipeline .\nIf leads are activated on the database, contact form submissions are generated as leads, not\nopportunities. To activate leads, navigate to CRM app ⣠Configuration â£\nSettings , and tick the Leads checkbox. Then, click Save .\nNavigate to CRM app ⣠Leads to view the newly-created leads.\nOn the My Pipeline dashboard, click on an opportunity card in the Kanban view to open\nthe opportunity record. The information submitted by the customer is visible on the opportunity\nrecord.\nAs the contact form fields are customizable, the fields on the opportunity record, where the form\ninformation is stored, varies accordingly.\nIf the preconfigured contact form is used, the Subject field is added to the Title field, and the content in the Notes field, which is labeled as Your\nQuestion , is added to the Internal Notes tab.\n- Manage sales teams\n- Convert leads into opportunities\nConvert leads into opportunities\n- Assign leads with predictive lead scoring\nAssign leads with predictive lead scoring\n- Website forms", "headings": ["Customize contact forms", "Customize contact form fields", "View opportunities"], "doc_id": "d387d5972e707854"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/acquire_leads/send_quotes.html", "title": "Create and send quotations", "module": "crm", "section": "Create and send quotations", "text": "# Create and send quotations\n\nOnce a qualified lead has been converted into an opportunity, the next step is to create and deliver\na quotation. This process can be easily handled through Odooâs CRM application.\n\n## Create a new quotation\n\nTo create a new quotation, open the CRM app , revealing the Pipeline page on the main CRM dashboard.\nFrom here, click on any opportunity to open it. Review the existing information and update any\nfields, if necessary.\nIf a quotation has already been created for this opportunity, it can be found by clicking on the Quotations smart button at the top of the top of the form. The number of existing\nquotations is listed on the smart button, as well.\nAt the top-left of the form, click the New Quotation button.\nThe Sales application must be installed for the New Quotation button to\nappear.\nThe Customer field is not required on the opportunity form.\nHowever, customer information must be added or linked before a quotation can be sent. If the Customer field is left blank on the opportunity, clicking the New\nQuotation button opens a pop-up window with the following options:\n- Create a new customer : creates a new customer record, using any available\ninformation provided on the opportunity form.\nCreate a new customer : creates a new customer record, using any available\ninformation provided on the opportunity form.\n- Link to an existing customer : opens a drop-down field with existing customer names.\nSelect a name to link this new quotation to an existing customer record.\nLink to an existing customer : opens a drop-down field with existing customer names.\nSelect a name to link this new quotation to an existing customer record.\n- Do not link to a customer : the quotation will not be linked to a customer, and\nno changes are made to the customer information.\nDo not link to a customer : the quotation will not be linked to a customer, and\nno changes are made to the customer information.\nOnce this button is clicked, a new quotation form appears. Confirm the information in the top half\nof the form, and update any missing or incorrect fields:\n- Customer : the company or contact for whom this quotation was created.\nCustomer : the company or contact for whom this quotation was created.\n- Referrer : if this customer was referred by another customer or contact, select it from\nthe drop-down menu in this field.\nReferrer : if this customer was referred by another customer or contact, select it from\nthe drop-down menu in this field.\n- Invoice Address : physical address where the invoice should be sent.\nInvoice Address : physical address where the invoice should be sent.\n- Delivery Address : physical address where any products should be delivered.\nDelivery Address : physical address where any products should be delivered.\n- Quotation Template : if applicable, select a pre-configured quotation template from this field.\nQuotation Template : if applicable, select a pre-configured quotation template from this field.\n- Expiration : date when this quotation is no longer valid.\nExpiration : date when this quotation is no longer valid.\n- Quotation Date : creation date of draft/sent orders, confirmation date of confirmed\norders. Note that this field is only visible if Developer mode (debug mode) is active.\nQuotation Date : creation date of draft/sent orders, confirmation date of confirmed\norders. Note that this field is only visible if Developer mode (debug mode) is active.\n- Recurring Plan : if this quotation is for a recurring product or subscription, select\nthe recurring plan configuration to be used.\nRecurring Plan : if this quotation is for a recurring product or subscription, select\nthe recurring plan configuration to be used.\n- Pricelist : select a pricelist to be applied to this order.\nPricelist : select a pricelist to be applied to this order.\n- Payment Terms : select any applicable payment terms for this quotation.\nPayment Terms : select any applicable payment terms for this quotation.\nThe Expiration field automatically populates based on the creation date of the\nquotation, and the default validity time frame.\nTo update the default validity time frame, navigate to Sales app â£\nConfiguration ⣠Settings ⣠Quotations & Orders and update the Default Quotation\nValidity field. To disable automatic expiration, enter 0 in this field.\n`0`\nWhen the desired changes are complete, click Save .\nWhen using a quotation template, the expiration date is based off of the Quotation\nValidity field on the template. To alter the validity date computation on a template, go to Sales app ⣠Configuration ⣠Sales Orders ⣠Quotation Templates .\nThen, click on a template to open it, and update the number in the Quotation Validity field.\n\n### Order lines\n\nAfter updating the customer, payment, and deadline information on the new quotation, the Order Lines tab can be updated with the appropriate product information.\nTo do that, click Add a product in the Order Lines tab.\nNext, type the name of an item into the Product field to search through the product\ncatalog. Then, select a product from the drop-down menu, or create a new one by selecting Create or Create and Edit .\nAfter selecting a product, update the Quantity , if necessary. Confirm the information in\nthe remaining fields.\nTo remove a line from the quotation, click the (trash can) icon.\nTo organize products into sections click Add a section and type a name for the section.\nThen, click the (drag) icon to the left of the name and drag to\nmove the section to the appropriate location. Move each product using the same method to finish\norganizing the quotation order lines.\n\n#### Product catalog\n\nTo quickly add numerous products to the quotation, click the Catalog button to open the\nproduct catalog.\nAll products in the database are listed as cards and can be sorted in the left panel by Product Category and Attributes .\nTo add a product, click the Add button on the product card.\nSet the quantity of the item using the (add) or (subtract) buttons, or type the quantity in the number field between the two buttons.\nTo remove an item, click the Remove button on the product card.\nOnce all product quantities are set, click the Back to Quotation button to return to the\nquotation. The items selected in the product catalog now appear in the Order Lines tab.\n\n## Preview and send quotation\n\nTo see a preview of the quotation as the customer will see it, click the Preview button.\nDoing so opens a preview in the Customer Portal .\nAfter reviewing the customer preview, click Return to edit mode to return to the\nquotation form in the backend.\nWhen the quotation is ready to deliver to the customer, click the Send by Email button.\nDoing so opens a pop-up window with a pre-configured email message. Information from the quotation,\nincluding the contact information, total cost, and quotation title are be imported from the\nquotation.\nA PDF of the quotation is added as an attachment to the email.\nA pre-loaded template is used to create the email message. To alter the template, click the\ninternal link to the right of the Load template field, located at the bottom of the\nemail pop-up window.\nTo select a new template, select an option from the Load template drop-down menu.\nProceed to make any necessary changes to the email, then click Send . A copy of the\nmessage is added to the Chatter of the of the record.\nAfter a quotation is sent, the originating opportunityâs Quotations smart button updates\nwith a new count. This quotation, and all other quotations can be accessed through this smart\nbutton at the top of the opportunity in the CRM app.\nAny quotations attached to the opportunity that are confirmed, and have therefore been converted to\nsales orders, will be deducted from the number listed on the Quotations smart button.\nInstead, the value of the sales order will appear in the Orders smart button located in\nthe same control panel.\n\n## Mark an opportunity won or lost\n\nIn order to keep the pipeline up to date and accurate, opportunities need to be identified as won or lost once a customer has responded to a quotation.\nTo mark an opportunity as won or lost , return to the opportunity using the breadcrumbs at the\ntop-left of the quotation form. Or navigate to CRM app ⣠Sales ⣠My Pipeline and click on the correct opportunity to open it.\nAt the top-left of the form, click on either the Won or Lost button.\nIf the opportunity is marked won , a green Won banner is added to the record, and it is\nmoved to the Won stage.\nMarking an opportunity as lost , via the Lost button opens a Mark Lost pop-up window, where a Lost Reason can be entered.\nFrom the Lost Reason drop-down field, choose an existing lost reason. If no applicable\nreason is available, create a new one by entering it into the Lost Reason field, and\nclicking Create .\nItâs best practice to try and use pre-configured Lost Reason values as much as\npossible or to limit the creation of new values only to sales team leads. Using consistent values\nfor this parameter will make pipeline analysis easier and more accurate when filtering for the Lost Reason parameter.\nTo set up new values for this field, navigate to CRM ⣠Configuration ⣠Lost\nReasons , and click both New and Save for each new entry added to the\nlist.\nAdditional notes and comments can be added in the Closing Note field.\nWhen all the desired information has been entered in the Mark Lost pop-up window, click Mark as Lost .\nUpon clicking Mark as Lost , the pop-up window disappears, and Odoo returns to the\nopportunity form, where a new red Lost banner is now present in the upper-right corner\nof the opportunity.\nOnce an opportunity is marked as lost , it is no longer considered active, and it is removed from\nthe pipeline.\nIn order to view a lost opportunity from the pipeline, click the down arrow icon to\nthe right of the search bar, and select either Lost or Archived from the\ndrop-down menu that appears.\nWhile opportunities that have been marked as lost are considered Archived , be advised that,\nin order for an opportunity to be included as lost in reporting, it must be specifically\nmarked as lost , not Archived .", "headings": ["Create a new quotation", "Order lines", "Preview and send quotation", "Mark an opportunity won or lost"], "doc_id": "b99e897d41317fc5"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/optimize/gamification.html", "title": "CRM Gamification", "module": "crm", "section": "CRM Gamification", "text": "# CRM Gamification\n\nIn Odooâs CRM app, gamification tools provide the opportunity to evaluate and motivate users\nthrough customizable challenges, goals, and rewards. Goals are created to target actions within the CRM app, and can be tracked and rewarded automatically to participating sales teams.\n\n## Configuration\n\nTo install the CRM Gamification module, navigate to the Apps application. Click\ninto the Search⦠bar at the top of the page and remove the Apps filter.\nType CRM Gamification to search.\n`CRMGamification`\nOn the CRM Gamification module, click Install . This module features goals\nand challenges related to the CRM and Sales applications.\nIf both the CRM and Sales apps are installed, the CRM Gamification module is\nautomatically installed on the database.\nTo access the Gamification Tools menu, first enable Developer mode (debug mode) .\nNext, navigate to Settings app ⣠Gamification Tools .\n\n## Create badges\n\nBadges are awarded to users when they have completed a challenge. Different badges can be awarded\nbased on the type of task completed, and can be issued to more than one user, depending on the time\nthey accomplish the goal.\nTo view the existing badges, or create a new one, navigate to Settings â£\nGamification Tools ⣠Badges .\nSome badges can be awarded outside of challenges, as well. Select the Kanban card for the desired\nbadge, then click Grant . This opens a Grant Badge pop-up window. Select\na user from the Who would you like to reward? field.\nAdd any additional information regarding why the user is receiving the reward in the field below,\nthen click Grant Badge .\nTo create a new badge, click New at the top-left of the page to open a blank form.\nEnter a name for the Badge , followed by a description.\nThe Allowance to Grant field determines when a badge can be granted, and by whom:\n- Everyone : this badge can be manually granted by any user.\nEveryone : this badge can be manually granted by any user.\n- A selected list of users : this badge can only be granted by a select group of users.\nIf this option is selected, it generates a new field, Authorized Users . Choose the\nappropriate users from this drop-down list.\nA selected list of users : this badge can only be granted by a select group of users.\nIf this option is selected, it generates a new field, Authorized Users . Choose the\nappropriate users from this drop-down list.\n- People having some badges : this badge can only be granted by users who have already\nbeen awarded a specific badge. If this option is selected it generates a new field, Required Badges . Use this drop-down list to select the badge(s) a user must have\nbefore they can award this badge to others.\nPeople having some badges : this badge can only be granted by users who have already\nbeen awarded a specific badge. If this option is selected it generates a new field, Required Badges . Use this drop-down list to select the badge(s) a user must have\nbefore they can award this badge to others.\n- No one, assigned through challenges : this badge cannot be manually granted, it can\nonly be awarded through challenges.\nNo one, assigned through challenges : this badge cannot be manually granted, it can\nonly be awarded through challenges.\nTo limit the number of badges a user can send, tick the Monthly Limited Spending checkbox. This sets a limit on the number of times a user can grant this badge. In the Limitation Number field, enter the maximum number of times this badge can be sent per\nmonth, per person.\n\n## Create a challenge\n\nTo create a challenge, navigate to to Settings ⣠Gamification Tools â£\nChallenges . Click New in the top-left corner to open a blank challenge form.\nAt the top of the form, enter a Challenge Name .\n\n### Create assignment rules\n\nTo assign the challenge to specific users, one or more assignment rules must be utilized.\nClick into the first field under Assign Challenge to , and select a parameter from the\ndrop-down list to define the rule. Then, click into the next field to define the ruleâs operator. If\nnecessary, click into the third field to further define the parameter.\nTo include all users with permissions in the Sales app, create a rule with the following\nparameters:\n- Groups\n- Sales/User: Own Documents Only\nSales/User: Own Documents Only\n`Sales/User:OwnDocumentsOnly`\nIn the Periodicity field, select a time frame for goals to be automatically assessed.\n\n### Add goals\n\nChallenges can be based on a single goal, or can include multiple goals with different targets. To\nadd a goal to the challenge, click Add a line on the Goals tab.\nIn the Goal Definition field, choose a goal from the drop-down list. The Condition field automatically updates to reflect the condition set on the goal\ndefinition.\nThe CRM Gamification module contains preconfigured goals geared towards salesteams:\n- New Leads\n- Time to Qualify a Lead\nTime to Qualify a Lead\n- Days to Close a Deal\n- New Opportunities\n- New Sales Orders\nEnter a Target for the goal based on the Suffix .\nRepeat these steps for each additional goal.\n\n### Add rewards\n\nNext, click the Reward tab. Choose the badges to be awarded For 1st User and For Every Succeeding User by selecting them from the\ndrop-down lists.\nBadges are granted when a challenge is finished. This is either at the end of a running period,\nat the end date of a challenge, or when the challenge is manually closed.\nAfter setup is complete, click the Start Challenge button at the top-left of the page to\nbegin the challenge.", "headings": ["Configuration", "Create badges", "Create a challenge", "Create assignment rules", "Add goals", "Add rewards"], "doc_id": "2c3f24999ebdfcbb"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/optimize/lead_enrichment.html", "title": "Lead enrichment", "module": "crm", "section": "Lead enrichment", "text": "# Lead enrichment\n\nLead enrichment is a service that provides business information for a contact attached to a lead.\nLead enrichment is an In-App Purchase (IAP) that requires credits to use, and is available for\nexisting leads in an Odoo database.\nThe information provided by lead enrichment can include general information about the business\n(including full business name and logo), social media accounts, Company type , Founded information, Sectors information, the number of Employees , Estimated revenue , Phone number, Timezone , and Technologies Used .\nEnterprise Odoo users with a valid subscription get free credits to test IAP features before deciding to purchase more credits for the database. This includes\ndemo/training databases, educational databases, and one-app-free databases.\nThe leads feature must be activated in the CRM settings page in order to use lead\nenrichment. To access the CRM settings, navigate to CRM app ⣠Configuration\n⣠Settings . Under the CRM section activate the Leads option and click Save .\n\n## Lead enrichment set up\n\nTo set up lead enrichment in the CRM application, navigate to CRM app â£\nConfiguration ⣠Settings . Then, under the Lead Generation section, tick the checkbox\nnext to Lead Enrichment , and select either Enrich leads on demand only or Enrich all leads automatically . Click the Save button to activate the\nchanges.\n\n## Enrich leads\n\nEnrichment of leads is based on the domain of the email address of the customer set on the lead.\nThere are two different ways that a lead can be enriched: automatically or manually .\n\n### Automatically enrich leads\n\nDuring set up, if Enrich all leads automatically was selected on the CRM Settings page, then no action needs to be taken by the user to enrich the lead. A\nscheduled action runs automatically, every sixty minutes, and enrichment occurs on leads, after a\nremote database is contacted.\nTo access the cron that runs for the automatic lead enrichment, activate developer mode , and navigate to Settings app ⣠Technical menu ⣠Automation\nsection ⣠Scheduled Actions . In the Search⦠bar, type in CRM . Click into the\nresult labeled CRM: enrich leads (IAP) , and make any necessary adjustments. In the Execute Every field, enter a value greater than, or equal to, five minutes.\n`CRM`\nThe following is an example of lead enrichment data that has been autocompleted successfully:\n\n### Manually enrich leads\n\nIf the Enrich leads on demand only option was selected on the CRM Settings page, when activating Lead Enrichment , each lead that a user wishes to enrich must be manually enriched. This is achieved by clicking the Enrich button in the top menu of\nthe lead.\nThe same information will be retrieved at the same IAP credit cost (one per\nenrichment). This method of enrichment is useful when every lead does not need to be enriched, or\ncost is an issue.\nManually enrich leads in bulk using the list view. First, navigate to CRM app\n⣠Leads , and click the list view button ( â° (three horizontal lines) icon). Next,\ntick the checkboxes for the leads that should be manually enriched. Finally, click the âï¸ Action icon, and select Enrich from the resulting drop-down menu. This\ncan also be achieved from the My Pipeline page. To do so, simply open the CRM app, or\nnavigate to CRM app ⣠Sales ⣠My Pipeline . Either route reveals leads and\nopportunities on the Pipeline page.\n\n## Pricing\n\nLead enrichment is an In-App Purchase (IAP) feature, and each enriched lead costs one credit.\nSee here for full pricing information: Lead Generation by Odoo IAP .\nTo buy credits, navigate to CRM app ⣠Configuration ⣠Settings . In the Lead Generation section, under the Lead Enrichment feature, click on Buy Credits .\nCredits and balances may also be purchased by navigating to the Settings app . In\nthe Contacts section, under the Odoo IAP feature, click on View\nMy Services .\nIn-app purchases (IAP)\nWhen collecting a companyâs contact information, make sure to be aware of the latest EU\nregulations. For more information about General Data Protection Regulation, refer to: Odoo GDPR .", "headings": ["Lead enrichment set up", "Enrich leads", "Automatically enrich leads", "Manually enrich leads", "Pricing"], "doc_id": "a781db7012a8200d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/optimize/partner_autocomplete.html", "title": "Enrich contacts with partner autocomplete", "module": "crm", "section": "Enrich contacts with partner autocomplete", "text": "# Enrich contacts with partner autocomplete\n\nPartner autocomplete enriches the contacts database with corporate data. In any module, enter the\nnew company name into the Customer field ( partner_id technical field), and select one\nof the companies suggested in the drop-down menu. Instantly get valuable company information full of\nhard-to-find data for a desired company.\n`partner_id`\nA company cannot already be manually entered in the Contacts application prior to enriching\nit with data.\nThe information provided by partner autocomplete can include general information about the business\n(including full business name and logo), Phone number, Email , Tax ID , address and UNSPSC activities as Tags .\nWhen getting a companyâs contact information make sure to be aware of the latest EU regulations.\nFor more information about General Data Protection Regulation refer to: Odoo GDPR . In Odoo, individual contact information cannot be searched for with\nthe partner autocomplete feature.\n\n## Configuration\n\nGo to Settings app ⣠Contacts section . Then, activate the Partner\nAutocomplete feature, by ticking the checkbox beside it, and clicking Save .\n\n## Enrich contacts with corporate data\n\nFrom any module, as the user is typing in the name of a new company contact, Odoo reveals a large\ndrop-down menu of potential match suggestions. If any are selected, the contact is then populated\nwith corporate data related to that specific selection.\nFor example, after typing Odoo , the following information populates:\n`Odoo`\nPartner Autocomplete also works if a VAT number is entered instead of\ncompany name.\n\n## Pricing\n\nPartner Autocomplete is an In-App Purchase (IAP) service, which requires prepaid credits to be\nused. Each request consumes one credit.\nTo buy credits, go to Settings app ⣠Contacts section . Then, locate either the Partner Autocomplete feature and click Buy credits , or locate the Odoo IAP feature and click View My Services . From the resulting page, select\na desired package.\nIf the database runs out of credits, the only information populated when clicking on the\nsuggested company will be the website link and the logo.\nLearn about our Privacy Policy .\nEnterprise Odoo users with a valid subscription get free credits to test IAP features before deciding to purchase more credits for the database. This includes\ndemo/training databases, educational databases, and one-app-free databases.\nIn-app purchases (IAP)", "headings": ["Configuration", "Enrich contacts with corporate data", "Pricing"], "doc_id": "af7666cecca4268f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/optimize/utilize_activities.html", "title": "Utilize activities for sales teams", "module": "crm", "section": "Utilize activities for sales teams", "text": "# Utilize activities for sales teams\n\nActivities are follow-up tasks tied to a record in an Odoo database. Activities can be scheduled\non any page of the database that contains a chatter thread, Kanban view, list view, or activities\nview of an application.\nPlanned Activities for Leads and Opportunities.\n\n## Activity types\n\nA set of preconfigured activity types is available in the CRM app. To view the list of available\nactivity types, navigate to the CRM app ⣠Configuration ⣠Activity Types .\nAdditional activity types are available within the database, and can be utilized through\ndifferent applications. To access the complete list of activity types, go to the Settings app , then scroll to the Discuss section, and click Activity Types .\nThe preconfigured activity types for the CRM app are as follows:\n- Email : adds a reminder to the chatter that prompts the salesperson to send an email.\nEmail : adds a reminder to the chatter that prompts the salesperson to send an email.\n- Call : opens a calendar link where the salesperson can schedule time to call the\ncontact.\nCall : opens a calendar link where the salesperson can schedule time to call the\ncontact.\n- Meeting : opens a calendar link where the salesperson can schedule time to have a\nmeeting with the contact.\nMeeting : opens a calendar link where the salesperson can schedule time to have a\nmeeting with the contact.\n- To Do : adds a general reminder task to the chatter.\nTo Do : adds a general reminder task to the chatter.\n- Upload Document : adds a link on the activity where an external document can be\nuploaded. Note that the Documents app is not required to utilize this activity type.\nUpload Document : adds a link on the activity where an external document can be\nuploaded. Note that the Documents app is not required to utilize this activity type.\nIf other applications are installed, such as Sales or Accounting , other activity types are\nmade available in the CRM app.\n\n### Create a new activity type\n\nTo create a new activity type, click New at the top-left of the page to open a blank\nform.\nAt the top of the form, start by choosing a Name for the new activity type.\n\n#### Activity settings\n\nThe Action field specifies the intent of the activity. Some actions trigger specific behaviors\nafter an activity is scheduled.\n- If Upload Document is selected, a link to upload a document is added directly to the\nplanned activity in the chatter.\nIf Upload Document is selected, a link to upload a document is added directly to the\nplanned activity in the chatter.\n- If either Phonecall or Meeting are selected, users have the option to open\ntheir calendar to schedule a time for this activity.\nIf either Phonecall or Meeting are selected, users have the option to open\ntheir calendar to schedule a time for this activity.\n- If Request Signature is selected, a link is added to the planned activity in the\nchatter that opens a signature request pop-up window.\nIf Request Signature is selected, a link is added to the planned activity in the\nchatter that opens a signature request pop-up window.\nThe actions available to select on an activity type vary, depending on the applications currently\ninstalled in the database.\nTo automatically assign this activity to a specific user when this activity type is scheduled,\nchoose a name from the Default User drop-down menu. If this field is left blank, the\nactivity is assigned to the user who creates the activity.\nTo include notes whenever this activity type is created, enter them into the Default\nSummary field.\nThe information in the Default User and Default Summary fields are\nincluded when an activity is created. However, they can be altered before the activity is\nscheduled or saved.\n\n#### Next activity\n\nTo automatically suggest, or trigger, a new activity after an activity has been marked complete, the Chaining Type must be set.\nIn the Chaining Type field, select Suggest Next Activity . Upon doing so, the\nfield underneath changes to: Suggest . Click the Suggest field drop-down menu\nto select any activities to recommend as follow-up tasks to this activity type.\nIn the Schedule field, choose a default deadline for these activities. To do so,\nconfigure a desired number of Days , Weeks , or Months . Then,\ndecide if it should occur after completion date or after previous activity\ndeadline .\nThis Schedule field information can be altered before the activity is scheduled.\nWhen all configurations are complete, click Save .\nIf an activity has the Chaining Type set to Suggest Next Activity , and\nhas activities listed in the Suggest field, users are presented with recommendations\nfor activities as next steps.\nSetting the Chaining Type to Trigger Next Activity immediately launches the\nnext activity once the previous one is completed.\nIf Trigger Next Activity is selected in the Chaining Type field, the field\nbeneath changes to: Trigger . From the Trigger field drop-down menu, select\nthe activity that should be launched once this activity is completed.\nIn the Schedule field, choose a default deadline for these activities. To do so,\nconfigure a desired number of Days , Weeks , or Months . Then,\ndecide if it should occur after completion date or after previous activity\ndeadline .\nThis Schedule field information can be altered before the activity is scheduled.\nWhen all configurations are complete, click Save .\nWhen an activity has the Chaining Type set to Trigger Next Activity ,\nmarking the activity as Done immediately launches the next activity listed in the Trigger field.\n\n## Activity tracking\n\nTo keep the pipeline up to date with the most accurate view of the status of activities, as soon as\na lead is interacted with, the associated activity should be marked as Done . This ensures the next\nactivity can be scheduled as needed. It also prevents the pipeline from becoming cluttered with\npast due activities.\nThe pipeline is most effective when it is kept up-to-date and accurate to the interactions it is\ntracking.\n\n## Activity plans\n\nActivity plans are preconfigured sequences of activities. When an activity plan is launched, every\nactivity in the sequence is scheduled automatically.\nTo create a new plan, navigate to CRM app ⣠Configuration ⣠Activity Plan .\nClick New at the top-left of the page to open a blank Lead Plans form.\nEnter a name for the new plan in the Plan Name field. On the Activities to\nCreate tab, click Add a line to add a new activity.\nSelect an Activity Type from the drop-down menu. Click Search More to see a\ncomplete list of available activity types, or to create a new one .\nNext, in the Summary field, enter any details to describe the specifics of the activity,\nincluding instructions for the salesperson or information due upon the completion of the activity.\nThe contents of this field are included with the scheduled activity, and can be edited later.\nIn the Assignment field, select one of the following options:\n- Ask at launch : activities are assigned to a user when the plan is scheduled.\nAsk at launch : activities are assigned to a user when the plan is scheduled.\n- Default user : activities are always assigned to a specific user.\nDefault user : activities are always assigned to a specific user.\nIf Default user is selected in the Assignment field, choose a user in the Assigned to field.\nActivity plans can feature activities that are assigned to default users and users assigned at\nthe plan launch.\nNext, configure the timeline for the activity. Activities can be scheduled to occur either before\nthe plan date or after. Use the Interval and Units fields to set the\ndeadline for this activity. Lastly, in the Trigger field, select whether the activity\nshould occur before or after the plan date.\nAn activity plan is created to handle high priority leads. Specifically, these leads should be\ncontacted quickly, with a meeting scheduled within two days of the initial contact. The plan is\nconfigured with the following activities:\n- Email two days before plan date\nEmail two days before plan date\n- Meeting zero days before plan date\nMeeting zero days before plan date\n- Make quote three days after plan date\nMake quote three days after plan date\n- Upload document three days after plan date\nUpload document three days after plan date\n- Follow-up five days after plan date\nFollow-up five days after plan date\nThis sets the plan date as the meeting deadline, which is the objective of the plan. Before\nthat date, there is lead time to contact the customer and prepare for the meeting. After that\ndate, the salesperson has time to create a quote, upload the document, and follow-up.\nRepeat these steps for each activity included in the plan.\n\n### Launch an activity plan\n\nTo launch an activity plan on a CRM opportunity, navigate to CRM app and click on\nthe Kanban card of an opportunity to open it.\nAt the top-right of the chatter, click Activities to open the Schedule\nActivity pop-up window.\nIn the Plan field, select the desired activity plan to launch. This generates a Plan summary , listing out the activities included in the plan. Select a Plan\nDate using the calendar popover. This updates the Plan summary with deadlines based on\nthe intervals configured on the activity plan .\nSelect a user in the Assigned To field. This user is assigned to any of the activities\non the plan were configured with Ask at launch in the Assignment field.\nThe details of the plan are added to the chatter, in addition to each of the activities.\n- Activities", "headings": ["Activity types", "Create a new activity type", "Activity tracking", "Activity plans", "Launch an activity plan"], "doc_id": "3e316aa7b8fb8c4e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/performance/expected_revenue_report.html", "title": "Expected revenue report", "module": "crm", "section": "Expected revenue report", "text": "# Expected revenue report\n\nExpected revenue is the total cash value of leads that are expected to close by a certain date,\nusually the end of the current month.\nAn expected revenue report compiles all active leads in a sales pipeline that have a set expected\nclosing date, and compares how sales teams are performing in a given time frame.\nBy pulling a monthly expected revenue report, sales managers can see which team members are reaching\ntheir goals, and who may need additional assistance to close valuable deals.\n\n## Create an expected revenue report\n\nTo create an expected revenue report, first navigate to CRM app ⣠Reporting â£\nPipeline . This opens the Pipeline Analysis dashboard.\nThe Pipeline Analysis dashboard includes several filters in the search bar by default. Remove\nthese before adding any additional custom filters.\nOn the top-left of the report, click Measures , then select Expected Revenue from the drop-down menu.\nAt the top of the page, click the ð»(triangle pointed down) icon to the right of the Search⦠bar to open the drop-down menu that contains Filters , Group By , and Favorites columns. Under the Filters column, click Add Custom Filter , which opens an Add Custom Filter pop-up window.\n\n### Add custom filters\n\nIn order to generate an expected revenue report, filters need to be created for the following\nconditions:\n- Expected closing date : limits results to only\ninclude leads expected to close within a specific time frame.\nExpected closing date : limits results to only\ninclude leads expected to close within a specific time frame.\n- Exclude unassigned leads : excludes leads\nwithout an assigned salesperson.\nExclude unassigned leads : excludes leads\nwithout an assigned salesperson.\n- Specific sales teams : limits results to only include\nleads assigned to one or more sales teams. This filter is optional and should not be included if\nthe report is intended for the entire company.\nSpecific sales teams : limits results to only include\nleads assigned to one or more sales teams. This filter is optional and should not be included if\nthe report is intended for the entire company.\n\n#### Add filter for expected closing date\n\nOn the Add Custom Filter pop-up window, click into the first field of the new rule.\nType Expected Closing into the Search⦠bar, or scroll to select it from the list.\nClick in the second field and select is set . This limits the results to only include\nleads where an estimated closing date is listed.\n`ExpectedClosing`\nNext, click the â (plus) icon to the right of the rule to duplicate it.\nUsing the â (plus) icon makes it easy to add multiple rules based on the same\nfilter.\nIn the second field of the new rule, select is between from the drop-down menu. This\ncreates a set time frame during which the expected closing date must occur for leads to be included\nin the results.\nClick in each date field, one at a time, and use the calendar popover window to add both a start and\nend date to the rule. This is usually the beginning and ending of the current month, or fiscal\nquarter.\n\n#### Exclude unassigned leads\n\nAfter filtering for the expected closing date, add a New Rule . Then, click into the new\nruleâs first field, and type Salesperson in the Search⦠bar, or scroll through the\nlist to select it. Click in the ruleâs second field and select is set from the drop-down\nmenu. This excludes any results without an assigned salesperson.\n`Salesperson`\n\n#### Add a filter for sales teams\n\nThis filter is optional. To view results for the entire company, do not add this filter, and\ncontinue to View results .\nTo limit the results of the report to one or more sales teams, click New Rule . Next,\nclick the first field for the new rule, and type Sales Team in the Search⦠bar, or\nscroll to search through the list to locate it.\n`SalesTeam`\nIn the ruleâs second field, select is in from the drop-down menu. Selecting this\noperator limits results to the sales teams indicated in the next field.\nLastly, click into the third field, and either: make a selection from the complete list revealed in\nthe popover menu, or type the first few characters of the specific sales teamâs title to quickly\nfind and select it as a parameter.\nMultiple teams can be added to the Sales Team rule, where each parameter is treated with an\nâorâ (e.g. âanyâ) operator in the search logic.\n`SalesTeam`\n\n## View results\n\nAt the top of the Add Custom Filter form, there is an option to match any or all of the rules. In order to properly run the report, only records that match all of the following filters should be included. Before adding the filters, make sure all is\nselected in this field.\nAt the bottom of the Add Custom Filter form, click Add .\n\n### View options\n\nThe expected revenue report benefits from utilizing multiple views. The default graph view can be\nused to identify which salespeople are expected to bring in the most revenue, while the list view\nand pivot view provide more detail on specific deals.\nThe graph view is used to visualize data, and is beneficial in identifying patterns and\ntrends.\nBar charts are used to show the distribution of data across several categories or among\nseveral salespeople.\nLine charts are useful to show changing trends over a period of time.\nPie charts are useful to show the distribution, or comparison, of data among a small number\nof categories or salespeople, specifically how they form the meaningful part of a whole\npicture.\nThe default view for the expected revenue report is the bar chart, stacked. To change to a\ndifferent graph view, click one of the icons at the top-left of the report. While both the\nline chart and bar chart are available in stacked view, the pie chart is not.\nGraph view icons in order: bar chart, line chart, pie chart, stacked.\nThe list view provides a list of all leads that are expected to close by the designated\ndate. Clicking on a lead in list view opens the record for detailed analysis, but many\ninsights can be gleaned from the basic view.\nTo switch to the list view, click the ⣠(list) icon at the top-right of the\nreport.\nTo add additional metrics to the report, click the additional options menu indicated by the toggle icon at the top-right of the list.\nClicking the toggle icon in list view opens the additional options menu .\nSelect any additional metrics from the drop-down menu to add them to the list view. Some\noptions that may be useful are Expected Closing and Probability .\nThe pivot view arranges all leads that are expected to close by the designated date into a\ndynamic table.\nTo switch to the pivot view, click the Pivot icon at the top-right of the report.\nWhen the pivot view is selected for this report, the X-axis lists the stages in\nthe pipeline, while the Y-axis defaults to group the results by their creation date. To switch\nthese groupings, click the flip access icon ( â ) at the top of the report.\nTo add additional measures to the report, click the Measures button at the\ntop-left of the report. Select any additional metrics from the drop-down menu.\nTo add a group to a row or column to the pivot view, click the â (plus sign) next\nto Total , and then select one of the groups. To remove one, click the â (minus sign) and de-select the appropriate option.\nClick Insert in Spreadsheet to add the pivot view into an editable spreadsheet\nformat within the Dashboards app. If the Odoo Documents app is installed, the report can\nbe inserted into a blank or existing spreadsheet, and exported.", "headings": ["Create an expected revenue report", "Add custom filters", "View results", "View options"], "doc_id": "e3fb2145e152aa85"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/performance/forecast_report.html", "title": "Forecast report", "module": "crm", "section": "Forecast report", "text": "# Forecast report\n\nThe Forecast report in the CRM app allows users to view upcoming opportunities and build a\nforecast of potential sales. Opportunities are grouped by the month of their expected closing date,\nand can be dragged-and-dropped to adjust the deadline.\nTo access the Forecast report, navigate to CRM app ⣠Reporting ⣠Forecast .\n\n## Navigate the forecast report\n\nThe default Forecast report includes opportunities assigned to the current userâs\npipeline, and are expected to close within four months. It also shows opportunities without an\nassigned expected closing date. The opportunities are grouped by month in a (Kanban) view.\n\n### Expected closing date\n\nOpportunities are grouped by the date assigned in the Expected Closing field on an opportunity\nform. To change this date directly from the Forecast page, select the Kanban card for\nthe desired opportunity, then click and drag the card to the desired column.\nThe default time frame for the forecast is month . This can be changed by clicking the (down) icon\nnext to the Search⦠bar at the top of the report. Under the Group By heading in the resulting drop-down menu, click Expected Closing to expand the list of\navailable options, and select a desired amount of time from the list.\nAfter an opportunity is added to a new month, the Expected Closing field on the opportunity form\nis updated to the last date of the new month.\nThe Expected Closing field can also be manually updated on the opportunity card. To do that,\nclick on the Kanban card for an opportunity on the Forecast page to open the\nopportunityâs detail form. Click in the Expected Closing field, and use the calendar\npopover to select a new closing date.\n\n### Prorated revenue\n\nThe prorated revenue is the Expected Revenue amount that is displayed at the top of the\ncolumn for each month on the Forecast reporting page. This value is situated to the\nright of the progress bar. The calculation for Expected Revenue is the total of the\nprorated revenue specific to that particular time frame.\nThe prorated revenue is calculated using the formula below:\nAs opportunities are moved from one column to another, the columnâs revenue is automatically updated\nto reflect the change.\nA forecast report for June includes two opportunities:\nThe first opportunity, Global Solutions , has an expected revenue of $3,800 , and a probability\nof 90% . This results in a prorated revenue of $3,420 .\n`GlobalSolutions`\n`$3,800`\n`90%`\n`$3,420`\nThe second opportunity, Quote for 600 Chairs , has an expected revenue of $22,500 , and a\nprobability of 20% . This results in a prorated revenue of $4,500 .\n`Quotefor600Chairs`\n`$22,500`\n`20%`\n`$4,500`\nThe combined prorated revenue of the opportunities is $7,920 , which is listed at the top of the\ncolumn for the month.\n`$7,920`\nFor more information on how probability is assigned to opportunities, see Assign leads with predictive lead scoring\n\n## View results\n\nClick the (area chart) icon to change to graph view. Then, click\nthe corresponding icon at the top of the report to switch to a (bar\nchart) , (line chart) , or (pie\nchart) .\nClick the (pivot) icon to change to the pivot view, or the (list) icon to change to the list view.\nThe pivot view can be used to view and analyze data in a more\nin-depth manner. Multiple measures can be selected, and data can be viewed by month, and by\nopportunity stage.\nTo save this report as a favorite , see Favorites .", "headings": ["Navigate the forecast report", "Expected closing date", "Prorated revenue", "View results"], "doc_id": "a3c13ca7080413a2"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/performance/win_loss.html", "title": "Pipeline Analysis", "module": "crm", "section": "Pipeline Analysis", "text": "# Pipeline Analysis\n\nThe CRM app manages the sales pipeline as leads/opportunities move from stage to stage,\norigination to sale ( Won ) or archival ( Lost ).\nAfter organizing the pipeline, use the search options and reports available on the Pipeline\nAnalysis page to gain insight into the effectiveness of the pipeline and its users.\nTo access the Pipeline Analysis page, go to CRM app ⣠Reporting ⣠Pipeline .\n\n## Navigate the pipeline analysis page\n\nUpon accessing the Pipeline Analysis page, a bar graph showcasing the leads from the\npast year automatically populates. The bars represent the number of leads in each stage of the sales\npipeline, color-coded to show the month the lead reached that stage.\nThe interactive elements of the Pipeline Analysis page manipulate the graph to report\ndifferent metrics in several views. From left-to-right, top-to-bottom, the elements include:\n- Actions : represented by the âï¸ (gear) icon, located next to the Pipeline Analysis page title. When clicked, a drop-down menu appears with three\noptions, each with their own sub-menu: Knowledge , Dashboard , Spreadsheet . (See Save and share reports for more\ninformation) The Knowledge option is for linking to or inserting the graph in a Knowledge app\narticle. The Dashboard option is for adding the graph to a dashboard in the Dashboards app. The Spreadsheet option is for linking the graph in a spreadsheet in the Documents app.\nActions : represented by the âï¸ (gear) icon, located next to the Pipeline Analysis page title. When clicked, a drop-down menu appears with three\noptions, each with their own sub-menu: Knowledge , Dashboard , Spreadsheet . (See Save and share reports for more\ninformation)\n- The Knowledge option is for linking to or inserting the graph in a Knowledge app\narticle.\nThe Knowledge option is for linking to or inserting the graph in a Knowledge app\narticle.\n- The Dashboard option is for adding the graph to a dashboard in the Dashboards app.\nThe Dashboard option is for adding the graph to a dashboard in the Dashboards app.\n- The Spreadsheet option is for linking the graph in a spreadsheet in the Documents app.\nThe Spreadsheet option is for linking the graph in a spreadsheet in the Documents app.\n- Search⦠bar: shows the filters and groupings currently being applied to the graph.\nTo add new filters/groups, type them into the search bar, or click the â¬ï¸ (down arrow) icon, at the end of the bar, to open a drop-down menu of options. (See Search Options for more information)\nSearch⦠bar: shows the filters and groupings currently being applied to the graph.\nTo add new filters/groups, type them into the search bar, or click the â¬ï¸ (down arrow) icon, at the end of the bar, to open a drop-down menu of options. (See Search Options for more information)\nIn the upper-right corner, there are view options represented by different icons. (See View\nOptions for more information)\n- Graph view: displays the data in a bar graph. This is the default view.\nGraph view: displays the data in a bar graph. This is the default view.\n- Pivot view: displays the data in a customizable, categorized metrics table.\nPivot view: displays the data in a customizable, categorized metrics table.\n- Cohort view: displays and organizes the data, based on their Created on and Closed Date week (default), day, month, or year.\nCohort view: displays and organizes the data, based on their Created on and Closed Date week (default), day, month, or year.\n- List view: displays the data in a list.\nList view: displays the data in a list.\nLocated on the far-left side of the page, beneath the Pipeline Analysis page title,\nthere are more configurable filter and view options.\n- Measures : opens a drop-down menu of different measurement options that can be seen in\nthe graph, pivot, or cohort view. The Measure drop-down menu is not available in the\nlist view. (See Measurement Options for more information)\nMeasures : opens a drop-down menu of different measurement options that can be seen in\nthe graph, pivot, or cohort view. The Measure drop-down menu is not available in the\nlist view. (See Measurement Options for more information)\n- Insert in Spreadsheet : opens a pop-up window with options for adding a graph or pivot\ntable to a spreadsheet in the Documents app or a dashboard in the Dashboards app. This option\nis not available in the cohort or list view.\nInsert in Spreadsheet : opens a pop-up window with options for adding a graph or pivot\ntable to a spreadsheet in the Documents app or a dashboard in the Dashboards app. This option\nis not available in the cohort or list view.\nWith the graph view selected, the following options are available:\n- Bar Chart : switches the graph to a bar chart.\nBar Chart : switches the graph to a bar chart.\n- Line Chart : switches the graph to a line chart.\nLine Chart : switches the graph to a line chart.\n- Pie Chart : switches the graph to a pie chart.\nPie Chart : switches the graph to a pie chart.\n- Stacked : when selected, the results of each stage of the graph are stacked on top of\neach other. When not selected, the results in each stage are shown as individual bars.\nStacked : when selected, the results of each stage of the graph are stacked on top of\neach other. When not selected, the results in each stage are shown as individual bars.\n- Descending : re-orders the stages in the graph in descending order from left-to-right.\nClick the icon a second time to deselect it. Depending on the search criteria, this option may not\nbe available.\nDescending : re-orders the stages in the graph in descending order from left-to-right.\nClick the icon a second time to deselect it. Depending on the search criteria, this option may not\nbe available.\n- Ascending : re-orders the stages in the graph in ascending order from left-to-right.\nClick the icon a second time to deselect it. Depending on the search criteria, this option may not\nbe available.\nAscending : re-orders the stages in the graph in ascending order from left-to-right.\nClick the icon a second time to deselect it. Depending on the search criteria, this option may not\nbe available.\nWith the pivot view selected, the following options are available:\n- Flip Axis : flips the X and Y axis for the entire table.\nFlip Axis : flips the X and Y axis for the entire table.\n- Expand All : when additional groupings are selected using the â (plus\nsign) icons, this button opens those groupings under every row.\nExpand All : when additional groupings are selected using the â (plus\nsign) icons, this button opens those groupings under every row.\n- Download xlsx : downloads the table as an Excel file.\nDownload xlsx : downloads the table as an Excel file.\n\n### Search options\n\nThe Pipeline Analysis page can be customized with various filters and grouping options.\nTo add new search criteria, type the desired criteria into the search bar, or click the â¬ï¸ (down arrow) icon, next to the search bar, to open a drop-down menu of all options.\nSee the sections below for more information on what each option does.\nThe Filters section allows users to add pre-made and custom filters to the search\ncriteria. Multiple filters can be added to a single search.\n- My Pipeline : show leads assigned to the current user.\nMy Pipeline : show leads assigned to the current user.\n- Opportunities : show leads that have been qualified as opportunities.\nOpportunities : show leads that have been qualified as opportunities.\n- Leads : show leads that have yet to be qualified as opportunities.\nLeads : show leads that have yet to be qualified as opportunities.\n- Active : show active leads.\nActive : show active leads.\n- Inactive : show inactive leads.\nInactive : show inactive leads.\n- Won : show leads that have been marked Won .\nWon : show leads that have been marked Won .\n- Lost : show leads that have been marked Lost .\nLost : show leads that have been marked Lost .\n- Created On : show leads that were created during a specific period of time. By\ndefault, this is the past year, but it can be adjusted as needed, or removed entirely.\nCreated On : show leads that were created during a specific period of time. By\ndefault, this is the past year, but it can be adjusted as needed, or removed entirely.\n- Expected Closing : show leads that are expected to close (marked Won ) during\na specific period of time.\nExpected Closing : show leads that are expected to close (marked Won ) during\na specific period of time.\n- Date Closed : show leads that were closed (marked Won ) during a specific\nperiod of time.\nDate Closed : show leads that were closed (marked Won ) during a specific\nperiod of time.\n- Archived : show leads that have been archived (marked Lost ).\nArchived : show leads that have been archived (marked Lost ).\n- Add Custom Filter : allows the user to create a custom filter with numerous\noptions. (See Add Custom Filters and Groups for more\ninformation)\nAdd Custom Filter : allows the user to create a custom filter with numerous\noptions. (See Add Custom Filters and Groups for more\ninformation)\nThe Group By section allows users to add pre-made and custom groupings to the\nsearch results. Multiple groupings can be added to split results into more manageable chunks.\nThe order that groupings are added affects how the final results are displayed. Try\nselecting the same combinations in a different order to see what works best for each use\ncase.\n- Salesperson : groups the results by the Salesperson to whom a lead is assigned.\nSalesperson : groups the results by the Salesperson to whom a lead is assigned.\n- Sales Team : groups the results by the Sales Team to whom a lead is assigned.\nSales Team : groups the results by the Sales Team to whom a lead is assigned.\n- City : groups the results by the city from which a lead originated.\nCity : groups the results by the city from which a lead originated.\n- Country : groups the results by the country from which a lead originated.\nCountry : groups the results by the country from which a lead originated.\n- Company : groups the results by the company to which a lead belongs (if multiple\ncompanies are activated in the database).\nCompany : groups the results by the company to which a lead belongs (if multiple\ncompanies are activated in the database).\n- Stage : groups the results by the stages of the sales pipeline.\nStage : groups the results by the stages of the sales pipeline.\n- Campaign : groups the results by the marketing campaign from which a lead\noriginated.\nCampaign : groups the results by the marketing campaign from which a lead\noriginated.\n- Medium : groups the results by the medium (Email, Google Adwords, Website, etc.)\nfrom which a lead originated.\nMedium : groups the results by the medium (Email, Google Adwords, Website, etc.)\nfrom which a lead originated.\n- Source : groups the results by the source (Search engine, Lead Recall,\nNewsletter, etc.) from which a lead originated.\nSource : groups the results by the source (Search engine, Lead Recall,\nNewsletter, etc.) from which a lead originated.\n- Creation Date : groups the results by the date a lead was added to the database.\nCreation Date : groups the results by the date a lead was added to the database.\n- Conversion Date : groups the results by the date a lead was converted to an\nopportunity.\nConversion Date : groups the results by the date a lead was converted to an\nopportunity.\n- Expected Closing : groups the results by the date a lead is expected to close\n(marked âWonâ).\nExpected Closing : groups the results by the date a lead is expected to close\n(marked âWonâ).\n- Closed Date : groups the results by the date a lead was closed(marked âWonâ).\nClosed Date : groups the results by the date a lead was closed(marked âWonâ).\n- Lost Reason : groups the results by the reason selected when a lead was marked\nâLost.â\nLost Reason : groups the results by the reason selected when a lead was marked\nâLost.â\n- Add Custom Group : allows the user to create a custom group with numerous\noptions. (See Adding Custom Filters and Groups for more\ninformation)\nAdd Custom Group : allows the user to create a custom group with numerous\noptions. (See Adding Custom Filters and Groups for more\ninformation)\nThe Comparison section allows users to add comparisons to the same search criteria\nover another period of time.\nThis option is only available if the search includes time-based filters, such as Created On , Expected Closing , or Date Closed . While\nmultiple time-based filters can be added at once, only one comparison can be selected at a\ntime.\n- Previous Period : adds a comparison to the same search criteria from the previous\nperiod.\nPrevious Period : adds a comparison to the same search criteria from the previous\nperiod.\n- Previous Year : adds a comparison to the same search criteria from the previous\nyear.\nPrevious Year : adds a comparison to the same search criteria from the previous\nyear.\nThe Favorites section allows users to save a search for later, so it does not need\nto be recreated every time.\nMultiple searches can be saved, shared with others, or even set as the default for whenever\nthe Pipeline Analysis page is opened.\n- Save current search : save the current search criteria for later. Default filter : when saving a search, check this box to make it the default\nsearch filter when the Pipeline Analysis page is opened. Shared : when saving a search, check this box to make it available to other\nusers.\nSave current search : save the current search criteria for later.\n- Default filter : when saving a search, check this box to make it the default\nsearch filter when the Pipeline Analysis page is opened.\nDefault filter : when saving a search, check this box to make it the default\nsearch filter when the Pipeline Analysis page is opened.\n- Shared : when saving a search, check this box to make it available to other\nusers.\nShared : when saving a search, check this box to make it available to other\nusers.\n\n#### Add custom filters and groups\n\nIn addition to the pre-made options in the search bar, the Pipeline Analysis page can\nalso utilize custom filters and groups.\nCustom filters are complex rules that further customize the search results, while custom groups\ndisplay the information in a more organized fashion.\nTo add a custom filter:\n- On the Pipeline Analysis page, click the down arrow icon next to the Search⦠bar.\nOn the Pipeline Analysis page, click the down arrow icon next to the Search⦠bar.\n- In the drop-down menu, click Add Custom Filter .\nIn the drop-down menu, click Add Custom Filter .\n- The Add Custom Filter pop-up window appears with a default rule ( Country\nis in _____ ) comprised of three unique fields. These fields can be edited to make a custom rule,\nand multiple rules can be added to a single custom filter.\nThe Add Custom Filter pop-up window appears with a default rule ( Country\nis in _____ ) comprised of three unique fields. These fields can be edited to make a custom rule,\nand multiple rules can be added to a single custom filter.\n- To edit a rule, start by clicking the first field ( Country ), and select an option\nfrom the drop-down menu. The first field determines the primary subject of the rule.\nTo edit a rule, start by clicking the first field ( Country ), and select an option\nfrom the drop-down menu. The first field determines the primary subject of the rule.\n- Next, click the second field, and select an option from the drop-down menu. The second field\ndetermines the relationship of the first and third fields, and is usually an is or is not statement, but can also be greater than or less than statements, and more.\nNext, click the second field, and select an option from the drop-down menu. The second field\ndetermines the relationship of the first and third fields, and is usually an is or is not statement, but can also be greater than or less than statements, and more.\n- Finally, click the third field, and select an option from the drop-down menu. The third field\ndetermines the secondary subject of the rule.\nFinally, click the third field, and select an option from the drop-down menu. The third field\ndetermines the secondary subject of the rule.\n- With all three fields selected, the rule is complete. To add more rules: click New Rule and repeat steps 4-7, as needed. To delete a rule: click the ðï¸ (trash) icon to the right of the rule. To duplicate an existing rule: click the â (plus sign) icon to the right of\nthe rule. To create more complex rules: click the Add branch icon to the right of the\nrule. This adds another modifier below the rule for adding an âall ofâ or âany ofâ statement.\nWith all three fields selected, the rule is complete.\n- To add more rules: click New Rule and repeat steps 4-7, as needed.\nTo add more rules: click New Rule and repeat steps 4-7, as needed.\n- To delete a rule: click the ðï¸ (trash) icon to the right of the rule.\nTo delete a rule: click the ðï¸ (trash) icon to the right of the rule.\n- To duplicate an existing rule: click the â (plus sign) icon to the right of\nthe rule.\nTo duplicate an existing rule: click the â (plus sign) icon to the right of\nthe rule.\n- To create more complex rules: click the Add branch icon to the right of the\nrule. This adds another modifier below the rule for adding an âall ofâ or âany ofâ statement.\nTo create more complex rules: click the Add branch icon to the right of the\nrule. This adds another modifier below the rule for adding an âall ofâ or âany ofâ statement.\n- Once all rules have been added, click Add to add the custom filter to the search\ncriteria. To remove a custom filter: click the âï¸ (x) icon beside the filter in the\nsearch bar.\nOnce all rules have been added, click Add to add the custom filter to the search\ncriteria.\n- To remove a custom filter: click the âï¸ (x) icon beside the filter in the\nsearch bar.\nTo remove a custom filter: click the âï¸ (x) icon beside the filter in the\nsearch bar.\nTo add a custom group:\n- On the Pipeline Analysis page, click the down arrow icon next to the\nsearch bar.\nOn the Pipeline Analysis page, click the down arrow icon next to the\nsearch bar.\n- In the drop-down menu that appears, click Add Custom Group .\nIn the drop-down menu that appears, click Add Custom Group .\n- Scroll through the options in the drop-down menu, and select one or more groups. To remove a custom group: click the âï¸ (x) icon beside the custom group in the\nsearch bar.\nScroll through the options in the drop-down menu, and select one or more groups.\n- To remove a custom group: click the âï¸ (x) icon beside the custom group in the\nsearch bar.\nTo remove a custom group: click the âï¸ (x) icon beside the custom group in the\nsearch bar.\n\n### Measurement options\n\nBy default, the Pipeline Analysis page measures the total Count of leads\nthat match the search criteria, but can be changed to measure other items of interest.\nTo change the selected measurement, click the Measures button on the top-left of the\npage, and select one of the following options from the drop-down menu:\n- Days to Assign : measures the number of days it took a lead to be assigned after\ncreation.\nDays to Assign : measures the number of days it took a lead to be assigned after\ncreation.\n- Days to Close : measures the number of days it took a lead to be closed (marked Won ).\nDays to Close : measures the number of days it took a lead to be closed (marked Won ).\n- Days to Convert : measures the number of days it took a lead to be converted to an\nopportunity.\nDays to Convert : measures the number of days it took a lead to be converted to an\nopportunity.\n- Exceeded Closing Days : measures the number of days by which a lead exceeded its\nExpected Closing date.\nExceeded Closing Days : measures the number of days by which a lead exceeded its\nExpected Closing date.\n- Expected MRR : measures the Expected Recurring Revenue of a lead.\nExpected MRR : measures the Expected Recurring Revenue of a lead.\n- Expected Revenue : measures the Expected Revenue of a lead.\nExpected Revenue : measures the Expected Revenue of a lead.\n- Prorated MRR : measures the Prorated Monthly Recurring Revenue of a lead.\nProrated MRR : measures the Prorated Monthly Recurring Revenue of a lead.\n- Prorated Recurring Revenues : measures the Prorated Recurring Revenues of a lead.\nProrated Recurring Revenues : measures the Prorated Recurring Revenues of a lead.\n- Prorated Revenue : measures the Prorated Revenue of a lead.\nProrated Revenue : measures the Prorated Revenue of a lead.\n- Recurring Revenues : measures the Recurring Revenue of a lead.\nRecurring Revenues : measures the Recurring Revenue of a lead.\n- Count : measures the total amount of leads that match the search criteria.\nCount : measures the total amount of leads that match the search criteria.\n\n### View options\n\nAfter configuring filters, groupings, and measurements, the Pipeline Analysis page can\ndisplay the data in a variety of ways. By default, the page uses the graph view, but can be changed\nto a pivot view, cohort view, or list view.\nTo change the pipeline to a different view, click one of the four view icons, located in the\ntop-right of the Pipeline Analysis page.\nThe graph view is the default selection for the Pipeline Analysis page. It\ndisplays the analysis as either a: bar chart, line chart, or pie chart.\nThis view option is useful for quickly visualizing and comparing simple relationships, like\nthe Count of leads in each stage, or the leads assigned to each Salesperson .\nBy default, the graph measures the Count of leads in each group, but this can be\nchanged by clicking the Measures button, and selecting another option from the resulting drop-down menu.\nWhen using a bar chart in this view, consider deselecting the Stacked option,\nin order to make the breakdown of results more legible.\nThe pivot view displays the results of the analysis as a table. By default, the table groups\nthe results by the stages of the sales pipeline, and measures Expected Revenue .\nThe pivot view is useful for analyzing more detailed numbers than the graph view can handle,\nor for adding the data to a spreadsheet, where custom formulas can be set up, like in an Excel\nfile.\nThe three icons at the top-left of the page perform the following functions:\n- Flip Axis : flips the X and Y axis for the entire table.\nFlip Axis : flips the X and Y axis for the entire table.\n- Expand All : when additional groupings are selected using the â (plus\nsign) icons, this button opens those groupings under every row.\nExpand All : when additional groupings are selected using the â (plus\nsign) icons, this button opens those groupings under every row.\n- Download xlsx : downloads the table as an Excel file.\nDownload xlsx : downloads the table as an Excel file.\nThe Stage grouping cannot be removed, but the measurement can be changed by\nclicking the Measures button, and selecting another option.\nThe cohort view displays the analysis as periods of time (cohorts) that can be set to days,\nweeks, months, or years. By default, Week is selected.\nThis view option is useful specifically for comparing how long it has taken to close leads.\nFrom left-to-right, top-to-bottom, the columns in the chart represent the following:\n- Created On : rows in this column represent the weeks of the year, in which\nrecords matching the search criteria exist. When set to Week , a row with the label W52 2023 means the results\noccurred in: Week 52 of the Year 2023.\nCreated On : rows in this column represent the weeks of the year, in which\nrecords matching the search criteria exist.\n- When set to Week , a row with the label W52 2023 means the results\noccurred in: Week 52 of the Year 2023.\nWhen set to Week , a row with the label W52 2023 means the results\noccurred in: Week 52 of the Year 2023.\n- Measures : the second column in the chart is the measurement of the results. By\ndefault, it is set to Count , but can be changed by clicking the Measures button, and selecting an option from the drop-down menu.\nMeasures : the second column in the chart is the measurement of the results. By\ndefault, it is set to Count , but can be changed by clicking the Measures button, and selecting an option from the drop-down menu.\n- Closed Date - By Day/Week/Month/Year : this column looks at what percentage of\nthe measured results were closed in subsequent days/weeks/months/years.\nClosed Date - By Day/Week/Month/Year : this column looks at what percentage of\nthe measured results were closed in subsequent days/weeks/months/years.\n- Average : this row provides the average of all other rows in the column.\nAverage : this row provides the average of all other rows in the column.\nThe cohort view can also be downloaded as an Excel file, by clicking the Download icon in the top-left of the page.\nThe list view displays a single list of all leads matching the search criteria. Clicking a\nlead opens the record for closer review. Additional details such as Country , Medium , and more can be added to the list, by clicking the Filters icon in the top-right of the list.\nThis view option is useful for reviewing many records at once.\nClicking the âï¸ (gear) icon opens the Actions drop-down menu, with options for the\nfollowing:\n- Import records : opens a page for uploading a spreadsheet of data, as well as a\ntemplate spreadsheet to easily format that data.\nImport records : opens a page for uploading a spreadsheet of data, as well as a\ntemplate spreadsheet to easily format that data.\n- Export All : downloads the list as an xlsx file for Excel.\nExport All : downloads the list as an xlsx file for Excel.\n- Knowledge : inserts a view of, or link to, the list in an article in the Knowledge app.\nKnowledge : inserts a view of, or link to, the list in an article in the Knowledge app.\n- Dashboard : adds the list to My Dashboard in the Dashboards app.\nDashboard : adds the list to My Dashboard in the Dashboards app.\n- Spreadsheet : links to, or inserts, the list in a spreadsheet in the Documents app.\nSpreadsheet : links to, or inserts, the list in a spreadsheet in the Documents app.\nOn the list view, clicking New closes the list, and opens the New Quotation page. Clicking Generate Leads opens a pop-up window for lead generation.\nNeither feature is intended to manipulate the list view.\n\n## Create reports\n\nAfter understanding how to navigate the pipeline analysis page , the Pipeline Analysis page can be used to create and share different reports. Between the\npre-made options and custom filter and groupings, almost any combination is possible.\nOnce created, reports can be saved to favorites, shared with other users, and/or added to\ndashboards and spreadsheets .\nA few common reports that can be created using the Pipeline Analysis page are detailed\nbelow.\n\n### Win/Loss reports\n\nWin/Loss is a calculation of active or previously active leads in a pipeline that were either marked\nas Won or Lost over a specific period of time. By calculating opportunities won over\nopportunities lost, teams can clarify key performance indicators (KPIs) that are converting leads\ninto sales, such as specific teams or team members, certain marketing mediums or campaigns, and so\non.\nA win/loss report filters the leads from the past year, whether won or lost, and groups the results\nby their stage in the pipeline. Creating this report requires a custom filter, and grouping the\nresults by Stage .\nFollow the steps below to create a win/loss report:\n- Navigate to CRM app ⣠Reporting ⣠Pipeline .\nNavigate to CRM app ⣠Reporting ⣠Pipeline .\n- On the Pipeline Analysis page, click the â¬ï¸ (down arrow) icon, next to\nthe search bar, to open a drop-down menu of filters and groupings.\nOn the Pipeline Analysis page, click the â¬ï¸ (down arrow) icon, next to\nthe search bar, to open a drop-down menu of filters and groupings.\n- In drop-down menu that appears, under the Group By heading, click Stage .\nIn drop-down menu that appears, under the Group By heading, click Stage .\n- Under the Filters heading, click Add Custom Filter to open another pop-up\nmenu.\nUnder the Filters heading, click Add Custom Filter to open another pop-up\nmenu.\n- In the Add Custom Filter pop-up menu, click on the first field in the Match any of the following rules: section. By default, this field displays Country .\nIn the Add Custom Filter pop-up menu, click on the first field in the Match any of the following rules: section. By default, this field displays Country .\n- Clicking that first field reveals a sub-menu with numerous options to choose from. From this\nsub-menu, locate and select the Active option. Doing so automatically populates the\nremaining fields. The first field reads: Active . The second field reads: is . And lastly,\nthe third field reads: set . In total, the rule reads: Active is set .\nClicking that first field reveals a sub-menu with numerous options to choose from. From this\nsub-menu, locate and select the Active option. Doing so automatically populates the\nremaining fields.\nThe first field reads: Active . The second field reads: is . And lastly,\nthe third field reads: set .\nIn total, the rule reads: Active is set .\n- Click New Rule , change the first field to Active , and the last field to not set . In total, the rule reads Active is not set .\nClick New Rule , change the first field to Active , and the last field to not set . In total, the rule reads Active is not set .\n- Click Add .\nThe report now displays the total Count of leads, whether âWonâ or âLost,â grouped by\ntheir stage in the CRM pipeline. Hover over a section of the report to see the number of leads in\nthat stage.\n\n#### Customize win/loss reports\n\nAfter creating a win/loss report , consider using the options below to\ncustomize the report for different needs.\nA sales manager might group wins and losses by salesperson, or sales team, to see who has the\nbest conversion rate. Or, a marketing team might group by sources, or medium, to determine where\ntheir advertising has been most successful.\nTo add more filters and groups, click the â¬ï¸ (down arrow) icon, next to the search\nbar, and select one or more options from the drop-down menu.\nSome useful options include:\n- Created on : adjusting this filter to a different period of time, such as the\nlast 30 days, or the last quarter, can provide more timely results.\nCreated on : adjusting this filter to a different period of time, such as the\nlast 30 days, or the last quarter, can provide more timely results.\n- Add Custom Filter : clicking this option, and scrolling through the numerous\noptions in the drop-down menu, opens up additional search criteria, like Last\nStage Update or Lost Reason .\nAdd Custom Filter : clicking this option, and scrolling through the numerous\noptions in the drop-down menu, opens up additional search criteria, like Last\nStage Update or Lost Reason .\n- Add Custom Group > Active : Clicking Add Custom Group ⣠Active separates the results into Won ( true ) or Lost ( false ). This\nshows at what stage leads are being marked Won or Lost .\nAdd Custom Group > Active : Clicking Add Custom Group ⣠Active separates the results into Won ( true ) or Lost ( false ). This\nshows at what stage leads are being marked Won or Lost .\n- Multiple Groupings : add multiple Group By selections to split\nresults into more relevant and manageable chunks. Adding Salesperson or Sales Team breaks up the total count of\nleads in each Stage . Adding Medium or Source can reveal what marketing avenues generate\nmore sales.\nMultiple Groupings : add multiple Group By selections to split\nresults into more relevant and manageable chunks.\n- Adding Salesperson or Sales Team breaks up the total count of\nleads in each Stage .\nAdding Salesperson or Sales Team breaks up the total count of\nleads in each Stage .\n- Adding Medium or Source can reveal what marketing avenues generate\nmore sales.\nAdding Medium or Source can reveal what marketing avenues generate\nmore sales.\nBy default, pivot view groups win/loss reports by Stage and measures Expected Revenue .\nTo flesh out the table:\n- Click the â¬ï¸ (down arrow) next to the search bar.\nClick the â¬ï¸ (down arrow) next to the search bar.\n- In the pop-up menu, replace the Stage grouping with something like Salesperson or Medium .\nIn the pop-up menu, replace the Stage grouping with something like Salesperson or Medium .\n- Click the Measures button and click Count to add the number of\nleads back into the report. Other useful measures for pivot view include Days to Assign and Days to Close .\nClick the Measures button and click Count to add the number of\nleads back into the report.\n- Other useful measures for pivot view include Days to Assign and Days to Close .\nOther useful measures for pivot view include Days to Assign and Days to Close .\nIn pivot view, the Insert In Spreadsheet button may be greyed out due to the\nreport containing duplicate group bys . To fix this, replace the Stage grouping in the search bar with another option.\nIn list view, a win/loss report displays all leads on a single page.\nTo better organize the list, click the â¬ï¸ (down arrow) next to the search bar, and\nadd more relevant groupings or re-organize the existing ones. To re-order the nesting, remove\nall Group By options and re-add them in the desired order.\nTo add more columns to the list:\n- Click the Filters icon in the top-right of the page.\nClick the Filters icon in the top-right of the page.\n- Select options from the resulting drop-down menu. Some useful filters include: Campaign : Shows the marketing campaign that originated each lead. Medium : Shows the marketing medium (Banner, Direct, Email, Google Adwords, Phone,\nWebsite, etc.) that originated each lead. Source : Shows the source of each lead (Newsletter, Lead Recall, Search Engine, etc.).\nSelect options from the resulting drop-down menu. Some useful filters include:\n- Campaign : Shows the marketing campaign that originated each lead.\nCampaign : Shows the marketing campaign that originated each lead.\n- Medium : Shows the marketing medium (Banner, Direct, Email, Google Adwords, Phone,\nWebsite, etc.) that originated each lead.\nMedium : Shows the marketing medium (Banner, Direct, Email, Google Adwords, Phone,\nWebsite, etc.) that originated each lead.\n- Source : Shows the source of each lead (Newsletter, Lead Recall, Search Engine, etc.).\nSource : Shows the source of each lead (Newsletter, Lead Recall, Search Engine, etc.).\n\n## Save and share reports\n\nAfter creating a report , the search criteria can be saved, so the report\ndoes not need to be created again in the future. Saved searches automatically update their results\nevery time the report is opened.\nAdditionally, reports can be shared with others, or added to spreadsheets/dashboards for greater\ncustomization and easier access.\nTo save a report for later:\n- On the Pipeline Analysis page, click the â¬ï¸ (down arrow) icon, next\nto the search bar.\nOn the Pipeline Analysis page, click the â¬ï¸ (down arrow) icon, next\nto the search bar.\n- In the drop-down menu that appears, under the Favorites heading, click Save current search .\nIn the drop-down menu that appears, under the Favorites heading, click Save current search .\n- In the next drop-down menu that appears, enter a name for the report. Checking the Default filter box sets this report as the default analysis when\nthe Pipeline Analysis page is accessed. Checking the Shared box makes this report available to other users.\nIn the next drop-down menu that appears, enter a name for the report.\n- Checking the Default filter box sets this report as the default analysis when\nthe Pipeline Analysis page is accessed.\nChecking the Default filter box sets this report as the default analysis when\nthe Pipeline Analysis page is accessed.\n- Checking the Shared box makes this report available to other users.\nChecking the Shared box makes this report available to other users.\n- Finally, click Save . The report is now saved under the Favorites heading.\nFinally, click Save . The report is now saved under the Favorites heading.\nInserting a report into a spreadsheet not only saves a copy of the report, it allows users to\nadd charts and formulas like in an Excel file.\nTo save a report as a spreadsheet:\n- In Graph or Pivot View : Click the Insert in spreadsheet button. In the pop-up menu that appears, click Confirm .\nIn Graph or Pivot View :\n- Click the Insert in spreadsheet button.\nClick the Insert in spreadsheet button.\n- In the pop-up menu that appears, click Confirm .\nIn the pop-up menu that appears, click Confirm .\n- In Cohort or List View : Click the âï¸ (gear) icon. In the drop-down menu that appears, hover over Spreadsheet . In the next drop-down menu, click either Insert in spreadsheet or Link in spreadsheet .\nIn Cohort or List View :\n- Click the âï¸ (gear) icon.\nClick the âï¸ (gear) icon.\n- In the drop-down menu that appears, hover over Spreadsheet .\nIn the drop-down menu that appears, hover over Spreadsheet .\n- In the next drop-down menu, click either Insert in spreadsheet or Link in spreadsheet .\nIn the next drop-down menu, click either Insert in spreadsheet or Link in spreadsheet .\nSaved reports are viewable in the Documents app.\nAfter modifying a spreadsheet and adding additional formulas, consider then adding the\nentire spreadsheet to a dashboard. Using this method, the spreadsheet can be added to a\npublic dashboard instead of only My Dashboard .\n- Click File ⣠Add to dashboard .\nClick File ⣠Add to dashboard .\n- In the pop-up menu that appears, name the spreadsheet and select a Dashboard\nSection to house the report.\nIn the pop-up menu that appears, name the spreadsheet and select a Dashboard\nSection to house the report.\n- Click Create .\nAdding a report to a dashboard saves it for later and makes it easy to view alongside the rest\nof My Dashboard .\nTo add a report to My dashboard :\n- On the Pipeline Analysis page, click the âï¸ (gear) icon.\nOn the Pipeline Analysis page, click the âï¸ (gear) icon.\n- In the drop-down menu that appears, hover over Dashboard .\nIn the drop-down menu that appears, hover over Dashboard .\n- In the Add to my dashboard drop-down menu, enter a name for the report (by\ndefault, it is named Pipeline ).\nIn the Add to my dashboard drop-down menu, enter a name for the report (by\ndefault, it is named Pipeline ).\n- Click Add .\nTo view a saved report:\n- Return to the main apps page, and navigate to Dashboards app ⣠My\nDashboard .\nReturn to the main apps page, and navigate to Dashboards app ⣠My\nDashboard .\n- Convert leads into opportunities\nConvert leads into opportunities\n- Create and send quotations\nCreate and send quotations\n- Lost opportunities", "headings": ["Navigate the pipeline analysis page", "Search options", "Measurement options", "View options", "Create reports", "Win/Loss reports", "Save and share reports"], "doc_id": "2cdaa297daaedde2"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/pipeline/lost_opportunities.html", "title": "Lost opportunities", "module": "crm", "section": "Lost opportunities", "text": "# Lost opportunities\n\nNot every opportunity results in a successful sale. To keep the pipeline up-to-date, lost opportunities need to be identified. Specifying why an opportunity was lost helps identify recurring\nissues, reveal coaching opportunities, and can assist with improving overall sales strategy.\nMerging lost opportunities with active ones will pull them back into the\npipeline.\n\n## Mark an opportunity as lost\n\nTo mark an opportunity as lost, first open the CRM app , and then select an\nopportunity from the pipeline by clicking on its corresponding Kanban card. Doing so reveals that\nopportunityâs detail form.\nThen, click Lost , located at the top of the opportunityâs detail form.\nThis opens the Mark Lost pop-up window. From the Lost Reason drop-down menu,\nchoose an existing lost reason. If no applicable reason is available, then create a new one by\nentering it into the Lost Reason field, and then clicking Create .\nAdditional notes and comments can be added below the lost reason in the designated Closing Note field.\nNeither the Lost Reason field, nor the Closing Note field, on the Mark Lost pop-up window are required. However, it is recommended to include this\ninformation for the sake of traceability, accountability, and reporting purposes.\nWhen all the desired information has been entered in the Mark Lost pop-up window, click Mark as Lost .\nAfter clicking Mark as Lost , a red Lost banner is added to the upper-right\ncorner of the opportunity.\nTo mark an inactive (archived) opportunity as lost, set the Probability field to 0 percent.\n`0`\n\n## Create/edit lost reasons\n\nTo create a new lost reason, or edit an existing one, navigate to CRM app â£\nConfiguration ⣠Lost Reasons .\nTo edit an existing lost reason, click the reason to be edited to highlight it. From here, change\nthe selected lost reason by editing the Description field.\nTo create a new lost reason, click New in the upper-left corner of the Lost\nReasons page. Then, type the new lost reason in the Description field.\n\n## View lost opportunities\n\nTo retrieve lost opportunities, go CRM app ⣠Sales ⣠My Pipeline , then click on\nthe search bar at the top of the page, and then remove all of the default filters.\nOpen the Filters drop-down menu by clicking the (dropdown) icon to the right of the search bar to open the drop-down menu containing Filters , Group By , and Favorites options, designated into\nrespective columns.\nSelect the Lost option from the Filters section. Upon selecting Lost , only the opportunities marked as Lost appear on the Pipeline page.\n`Lost`\n\n### Sort opportunities by lost reason\n\nTo filter opportunities by a specific lost reason, click the (dropdown) icon to the right of the search bar again to open the drop-down menu. In\naddition to the Lost filter, under the Filters column, click Add\nCustom Filter , which opens an Add Custom Filter pop-up window.\nOn the Add Custom Filter pop-up window, click in the first field and type Lost Reason in the search bar, or scroll to search through the list to locate it. Then, click into the next\nfield, and select = from the drop-down menu. Click into the third field, and then select\na lost reason from the drop-down menu. Finally, click Add .\n`LostReason`\nTo view results for more than one lost reason, select the operator is in in the\nsecond field of the custom filter in the Add Custom Filter pop-up window. Choosing\nthis operator makes it possible to choose multiple lost reasons in the third field.\n\n## Restore lost opportunities\n\nTo restore a lost opportunity, open the CRM app to reveal the Pipeline dashboard. Or, navigate to CRM app ⣠Sales ⣠My Pipeline . From here, click the (dropdown) icon to the right of the search bar to open the\ndrop-down menu that contains Filters , Group By , and Favorites columns.\nUnder the Filters column, select Lost . Doing so reveals all the lost\nopportunities on the Pipeline page.\nTo see all opportunities in the database, remove the default My Pipeline filter from\nthe search bar.\nFrom the lost opportunityâs detail form, click Restore in the upper-left corner. Doing\nso removes the red Lost banner from the opportunity form, signifying the opportunity has\nbeen restored.\n\n### Restore multiple opportunities at once\n\nTo restore multiple opportunities at once, open the dashboard mega menu by clicking the (dropdown) icon (to the right of the search bar) and select the\ndefault Lost option located under the left-side Filters column.\nNext, select the list view option, represented by the (list) icon in the\nupper-right corner. Doing so places all the opportunities from the Pipeline page in a\nlist view. With the list view chosen, select the checkbox to the left of each opportunity to be\nrestored.\nOnce the desired opportunities have been selected, click the Actions drop-down menu at the top of the Pipeline page. From the (Actions) drop-down menu, select Unarchive .\nDoing so removes those selected opportunities from the Pipeline page because they no\nlonger fit the Lost filter criteria. Delete the Lost filter from the search\nbar to reveal these newly-restored opportunities.\n\n## Manage lost leads\n\nIf Leads are enabled on a database, then they can be marked as lost in the same manner as\nopportunities. Leads use the same lost reasons as opportunities.\nTo enable leads, navigate to CRM app ⣠Configuration ⣠Settings and check\nthe Leads checkbox. This adds a new Leads menu to the header menu bar at\nthe top of the page.\n\n### Mark a lead as lost\n\nTo mark a lead as lost, navigate to CRM app ⣠Leads , and select a lead from the\nlist. Doing so reveals that leadâs detail form. Then, click Lost , located at the top of\nthe leadâs detail form.\nThis opens the Mark Lost pop-up window. From the Lost Reason drop-down menu,\nchoose an existing lost reason. If no applicable reason is available, then create a new one by\nentering it into the Lost Reason field, and selecting Create .\nAdditional notes and comments can be added below the lost reason designated in the Closing Note field.\nWhen all the desired information has been entered in the Mark Lost pop-up window, click Mark as Lost .\n\n### Restore lost leads\n\nTo restore a lost lead, navigate to CRM app ⣠Leads , and then click the (dropdown) icon to the right of the search bar to open the\ndrop-down menu that contains the Filters , Group By , and Favorites columns.\nUnder the Filters column, select Lost . Doing so reveals all the lost leads\non the Leads page.\nThen, click on the desired lost lead to restore, which opens that leadâs detail form.\nFrom the lost leadâs detail form, click Restore in the upper-left corner. Doing so\nremoves the red Lost banner from the lead form, signifying the lead has been restored.\n\n### Restore multiple leads at once\n\nTo restore multiple leads at once, navigate to CRM app ⣠Leads , open the Filters drop-down menu, and select the Lost option. Select the checkbox to\nthe left of each lead to be restored.\nOnce the desired leads have been selected, click the (Actions) drop-down\nmenu at the top of the Leads page. From the (Actions) drop-down menu, select Unarchive .\nDoing so removes those selected leads from the Leads page because they no longer fit the Lost filter criteria. Delete the Lost filter from the search bar to reveal\nthese newly-restored leads.", "headings": ["Mark an opportunity as lost", "Create/edit lost reasons", "View lost opportunities", "Sort opportunities by lost reason", "Restore lost opportunities", "Restore multiple opportunities at once", "Manage lost leads", "Mark a lead as lost", "Restore lost leads", "Restore multiple leads at once"], "doc_id": "1d134e1e5faa1d6b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/pipeline/manage_sales_teams.html", "title": "Manage sales teams", "module": "crm", "section": "Manage sales teams", "text": "# Manage sales teams\n\nThe Sales Teams feature within Odooâs CRM app allows for the creation and management of multiple\nsales teams, each with their own assignment rules, invoicing targets, and roster of salespeople.\n\n## Create a sales team\n\nTo create a new sales team, go to CRM app ⣠Configuration ⣠Sales Teams , then\nclick New .\nOn the blank sales team form, enter a name in the Sales Team field.\nNext, select a Team Leader from the drop-down list.\nSet an Email Alias to automatically generate a lead/opportunity for this sales team\nwhenever a message is sent to that unique email address. Choose whether to accept emails from Everyone , Authenticated Partners , Followers Only , or Authenticated Employees .\nSelect a Company from the drop-down menu to assign this team to.\nThe Company field is only visible in multi-company databases, and is not required.\nIf the Sales app is installed on the database, an Invoicing Target field appears on\nthe sales team form. This is the revenue target for the current month. The amount entered in this\nfield is used to populate the invoicing progress bar on the sales team dashboard .\n\n### Add sales team members\n\nTo add team members, click Add under the Members tab when editing the sales\nteamâs configuration page. This opens a Create Sales Team Members pop-up window.\nIf the Rule-Based Assignment feature has not been enabled on the CRM appâs Settings page, clicking Add under the Members tab opens an Add: Salespersons pop-up window. Tick the checkbox to the far-left of the\nsalesperson to be added to the team, then click Select .\nSelect a user from the Salesperson drop-down list to add them to the team. To prevent\nthis salesperson from being automatically assigned leads, tick the Skip auto assignment checkbox. If this feature is activated, the salesperson can still be assigned leads manually.\nThe Leads (30 days) field tracks how many leads the salesperson has been assigned in the\npast thirty days for this team, and the maximum number of leads they should be assigned. To edit the\nmaximum number of leads this salesperson can be assigned, enter that amount in the Leads\n(30 days) field.\nAssignment rules can be configured for individual\nsalespeople using the Domain section.\nClick Save & Close when finished, or Save & New to add additional members.\n\n## Enable multi teams\n\nTo allow salespeople to be assigned to more than one sales team, the Multi Teams setting needs to\nbe enabled. First, navigate to CRM app ⣠Configuration ⣠Settings . Under the CRM section, tick the checkbox labeled Multi Teams . Then, click Save at the top-left of the page.\n\n## Sales team dashboard\n\nTo view the sales team dashboard, go to CRM app ⣠Sales ⣠Teams . Any team the\nuser is a member of appears in the dashboard.\nEach Kanban card gives an overview of the sales teamâs open opportunities, quotations, sales orders,\nand expected revenue, as well as a bar graph of new opportunities per week, and an invoicing\nprogress bar.\nClick the Pipeline button to go directly to that teamâs CRM pipeline.\nClick on the (vertical ellipsis) icon in the top-right corner of\nthe Kanban card to open a drop-down menu. Then, to view or edit the teamâs settings, click Configuration .\n- Utilize activities for sales teams\nUtilize activities for sales teams\n- Assign leads with predictive lead scoring\nAssign leads with predictive lead scoring", "headings": ["Create a sales team", "Add sales team members", "Enable multi teams", "Sales team dashboard"], "doc_id": "16c5cbbaf36ee6f8"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/pipeline/merge_similar.html", "title": "Merge similar leads and opportunities", "module": "crm", "section": "Merge similar leads and opportunities", "text": "# Merge similar leads and opportunities\n\nOdoo automatically detects similar leads and opportunities within the CRM app. Identifying\nthese duplicated records allows them to be merged without losing any information in the process.\nNot only does this help keep the pipeline organized, but it also prevents customers from being\ncontacted by more than one salesperson.\nWhen merging opportunities, no information is lost. Data from the other opportunity is logged in\nthe chatter, and the information fields, for reference.\n\n## Identify similar leads and opportunities\n\nSimilar leads and opportunities are identified by comparing the email address and phone number of the associated contact. If a similar lead/opportunity is found, a Similar Leads smart button\nappears at the top of the lead (or opportunity) record.\n\n### Comparing similar leads and opportunities\n\nTo compare the details of similar leads/opportunities, navigate to CRM app â£\nPipeline or CRM app ⣠Leads . Open a lead or opportunity, and click the Similar Leads smart button. Doing so opens a Kanban view that only displays similar\nleads/opportunities. Click on a card to view the details for the lead/opportunity, and confirm if\nthey should be merged.\n\n## Merging similar leads and opportunities\n\nWhen merging, Odoo gives priority to whichever lead/opportunity was created in the system first,\nmerging the information into the first created lead/opportunity. However, if a lead and an\nopportunity are being merged, the resulting record is referred to as an opportunity, regardless\nof which record was created first.\nAfter confirming that the leads/opportunities should be merged, return to the Kanban view using the\nbreadcrumb link, or by clicking the Similar Leads smart button. Click the (list) icon to change to list view.\nCheck the box on the left of the page for the leads/opportunities to be merged. Then, click the Actions icon at the top of the page, to reveal a drop-down menu. From\nthat drop-down menu, select the Merge option to merge the selected opportunities or\nleads.\nWhen Merge is selected from the Actions drop-down menu, a Merge pop-up modal appears. In that pop-up modal, under the Assign\nopportunities to heading, select a Salesperson and Sales Team from the\nappropriate drop-down menus.\nBelow those fields, the leads/opportunities to merge are listed, along with their related\ninformation. To merge those selected leads/opportunities, click Merge .\nMerging is an irreversible action. Do not merge leads/opportunities unless absolutely certain\nthey should be combined.\n\n## When leads/opportunities should not be merged\n\nThere may be instances where a similar lead or opportunity is identified, but should not be\nmerged. These circumstances vary, based on the processes of the sales team and organization. Some\npotential scenarios are listed below.\n\n### Lost leads\n\nIf a lead/opportunity has been marked as lost , it can still be merged\nwith an active lead or opportunity. The resulting lead/opportunity is marked active, and added to\nthe pipeline.\n\n### Different contact within an organization\n\nLeads/opportunities from the same organization, but with different points of contact, may not have\nthe same needs. In this case, it is beneficial to not merge these records, though assigning the\nsame salesperson, or sales team, can prevent duplicated work and miscommunication.\n\n### Existing duplicates with more than one salesperson\n\nIf more than one lead/opportunity exists in the database, there may be multiple salespeople assigned\nto them, who are actively working on them independently. While these leads/opportunities may need\nto be managed separately, it is recommended that any affected salespeople be tagged in an internal\nnote for visibility.\n\n### Contact information is similar but not exact\n\nSimilar leads and opportunities are identified by comparing the email addresses and phone numbers of\nthe associated contacts. However, if the email address is similar , but not exact , they may need\nto remain independent.\nThree different leads were added to the pipeline and assigned to different salespeople. They\nwere identified as Similar Leads due to the email addresses of the contacts.\nTwo of the leads appear to come from the same individual, Robin , and have identical email\naddresses. These leads should be merged.\n`Robin`\nThe third lead has the same email domain, but the address is different, as is the contact name.\nWhile this lead is most likely from the same organization, it is from a different contact, and\nshould not be merged.", "headings": ["Identify similar leads and opportunities", "Comparing similar leads and opportunities", "Merging similar leads and opportunities", "When leads/opportunities should not be merged", "Lost leads", "Different contact within an organization", "Existing duplicates with more than one salesperson", "Contact information is similar but not exact"], "doc_id": "0aa64c1caf63be20"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/track_leads/lead_distribution_report.html", "title": "Lead distribution report", "module": "crm", "section": "Lead distribution report", "text": "# Lead distribution report\n\nA lead distribution report can be used to see if active leads are being assigned equitably\nacross sales members. It can also be used to view the distribution of good or quality leads , and see how frequently each salesperson is receiving (and keeping) leads.\nLead distribution reports can be run each week to help keep salespeople on track, while\nproviding them with ample good leads. These reports can also be used to see whether sales members\nare staying productive, if good leads are being lost too often by one salesperson, and what\npercentage of good leads are being retained overall.\n\n## Create lead distribution reports\n\nTo create a lead distribution report, first navigate to CRM app ⣠Reporting â£\nPipeline , which reveals the Pipeline Analysis dashboard.\nRemove all the default filters in the search bar at the top of the page. Doing so\ndisplays data related to all leads.\nCustom filters can now be added by clicking the (down caret) icon, to the right of the search bar, to reveal a drop-down menu of search\nand filter options.\nThree columns are displayed: Filters , Group By , and Favorites . To begin, navigate to the bottom of the Filters column, and click Add Custom Filter . This opens an Add Custom Filter pop-up\nwindow, where the essential filters can be added one at a time.\n\n### Essential filters\n\nThe following filter conditions are used to create a basic lead distribution report. Together they\ngather all leads created within a certain timespan that have an associated contact method and have\nbeen assigned to a sales team.\n\n#### Lead creation date\n\nClick the first field, under Match any of the following rules: , that has the value Country in it. In the popover that appears, type Created on in the search bar, or\nscroll to search through the list to locate and select it.\n`Createdon`\nThen, in the second field of that row, select >= from the drop-down menu. This operator only includes values greater than (or equal to) the value in the third, rightmost field.\nThe third field on the Add Custom Filter pop-up window should contain the earliest date\nleads are selected from.\nFor example, setting 01/01/2024 00:00:00 only includes leads created from, and including, the\nfirst day of 2024.\n`01/01/202400:00:00`\n\n#### Sales team\n\nClick New rule to add another row to the form, and choose Sales Team for\nthis ruleâs parameter. Then, click the second field of the new rule, and select contains from the drop-down menu. Selecting this operator filters for any records that contain the words in\nthe third, rightmost field.\nFor certain pre-determined, limited choices like a sales team, the is in operator\nhelps make for an easier and more accurate selection, via a drop-down menu in the third field,\ninstead of risking a typo or incorrect value in the text box field that accompanies the contains operator.\nIn this third field, enter the name of the desired sales team(s) that are to be included in the\nreport. It is important for all contains argument values to be specific enough and\nspelled correctly as they exist in Odoo, otherwise this risks returning multiple (or zero) values.\nBy adding more than one rule to the form, a new option emerges at the top of the pop-up window\nabove all the filters, to specify whether any or all of the conditions should match. This distinction is\nimportant to set correctly, as it impacts the driving logic of how the filters return data.\nClick the default any menu item and be sure the all option is chosen instead. This setting will only show records that match all the rules contained inside the form.\n\n#### Contact method\n\nThe instruction below is not necessary, however, itâs highly recommended to add a set contact\nvalue to the reportâs search criteria. A lot of spam, duplicate, or low quality leads can easily\nbe screened out of the report simply by adding either a set Phone or Email rule.\nAdd another New rule to the form and set the first field to the first field to Phone . Then, select is set from the drop-down menu in the second field.\nSelecting this operator only filters for records that have a phone number associated with the\nlead.\nAlternatively (or in addition to the above rule), click New rule and set the first field\nto Email . Then, select is set from the drop-down menu in the second field.\nThese rules add only leads with an associated contact method to the report.\n\n#### Active status\n\nClick the (Add branch) icon to the right of the Phone is set line,\nto add a new rule that branches from the rules above.\n`Phoneisset`\nTwo horizontal sets of fields appear below a line showing any of: option. This setting filters for records that match any of the rules contained\ninside. This uses the same logic as an OR ( | ) logical operator.\n`|`\nSet the first field to Active . Then, select is set in the next field.\nNext, click the (Add New Rule) button next to Active is set to create a new line of fields beneath it.\nSet the first field to Active . Then, select is not set in the next field.\nThis rule adds the activity status of the lead to the report.\nActive status is an important filter to include when creating a lead distribution report because\nit includes all leads regardless of won/lost or active/inactive status in the report. This\nprovides a comprehensive view of all the leads assigned to each sales member.\n\n#### Group by\n\nOnce all filters are set, click the Add button to add these filters to the search bar.\nTo have the report grouped appropriately, click the (down caret) icon, to the right of the search bar, and click Salesperson in the Group\nBy section. All results are now grouped by the salesperson assigned to each lead.\nOnce the rules for the filter are set, click the purple Confirm button at the bottom of\nthe pop-up menu to save the custom filter and close the pop-up menu.\nThe Pipeline Analysis dashboard is now displayed again with each filter rule in the\nsearch bar.\nClick the (Graph) icon, to the right of the search bar, to view\nthe report as a bar chart. Alternatively, click the (List) icon to\nview leads in a grouped list.\nTo save the filter so it can easily be re-applied, click the Save current search button in the Favorites section of the search bar drop-down menu.\nNext, type a name for the filter in the text box below. Check the Shared checkbox to\nhave the filter shared with any user with access to the pipeline. Finally, click the purple Save button below to save the filter.\nThe filter will now appear with the name it was given under the Favorites section of\nthe drop-down menu and can be re-applied by clicking on it.\n\n### Filter for quality leads\n\nThe following additional conditions are provided as an example of a good , but not comprehensive ,\nset of rules for finding quality leads. These filters should be applied on top of the Essential filters in the order specified to achieve a heavily-detailed\nfilter.\n- Referred-by: Filter for referrals, such as by appointment or sales member.\nReferred-by: Filter for referrals, such as by appointment or sales member.\n- Source: Filter for specific source UTMs, such as Facebook or LinkedIn.\nSource: Filter for specific source UTMs, such as Facebook or LinkedIn.\n- Notes: Filter for internal notes.\nNotes: Filter for internal notes.\n- Tags: Filter for categorical tags.\nTags: Filter for categorical tags.\n- Email: Filter for specific email domains, such as gmail.com or yahoo.com.\nEmail: Filter for specific email domains, such as gmail.com or yahoo.com.\n- Salesperson: Filter for leads associated with certain sales members.\nSalesperson: Filter for leads associated with certain sales members.\nThese conditions can be added, removed, or modified to best fit the desired information in the\nreport.\n- Add rules for quality leads\nAdd rules for quality leads\n- Search, filter, and group records\nSearch, filter, and group records", "headings": ["Create lead distribution reports", "Essential filters", "Filter for quality leads"], "doc_id": "aab549558c205fbe"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/track_leads/lead_scoring.html", "title": "Assign leads with predictive lead scoring", "module": "crm", "section": "Assign leads with predictive lead scoring", "text": "# Assign leads with predictive lead scoring\n\nThe Odoo CRM app can automatically assign leads/opportunities to sales teams and salespeople. A\nstandard practice is to assign leads based on the probability of winning each lead. Companies can\nprioritize the leads that are more likely to result in successful deals by quickly assigning them to\nthe appropriate salespeople.\nOdoo automatically calculates the probability of winning each lead using a method called predictive\nlead scoring .\n\n## Predictive lead scoring\n\nPredictive lead scoring is a machine-learning model that uses historical data from Odoo CRM to\nscore open leads/opportunities.\nAs a company processes opportunities through the CRM pipeline, Odoo collects data on which\nopportunities are won and lost. Predictive lead scoring uses this data to predict the probability of\nwinning each new lead or opportunity.\nThe more opportunities that are sent through the CRM pipeline, the more data Odoo collects,\nresulting in more accurate probabilities.\nSpecifically, Odooâs predictive lead scoring uses the naive Bayes probability model:\nBreaking down the equation:\n- P(A|B) = The probability of a successful lead in this case\nP(A|B) = The probability of a successful lead in this case\n- P(A) = The overall probability of a lead being successful regardless of the conditions\nP(A) = The overall probability of a lead being successful regardless of the conditions\n- P(B|A) = The probability of this being the case given a lead is successful\nP(B|A) = The probability of this being the case given a lead is successful\n- P(B) = The probability of this being the case\nP(B) = The probability of this being the case\nThe term in this case refers to the variables that can affect a lead being successful in Odoo.\nThis can include variables such as the assigned Salesperson, the source of the lead, the language of\nthe lead, and other historical and demographic data.\nWhich variables are considered in this calculation can be configured to tailor the calculation to each businessâs needs.\nThe probability of success of each opportunity is displayed on the opportunity form, and it updates\nautomatically as the opportunity progresses through the CRM pipeline.\nWhen an opportunity moves to the next stage, its probability of success automatically increases\naccording to the predictive lead scoring algorithm.\n\n### Configuration\n\nPredictive lead scoring is always active in Odoo CRM . However, the variables used to calculate\nthe probability of success can be customized in the settings.\nTo customize the variables used by predictive lead scoring, go to CRM â£\nConfiguration ⣠Settings . Under Predictive Lead Scoring , click on the Update Probabilities button.\nThen, click on the drop-down menu to choose which variables the predictive lead scoring feature\ntakes into account.\nAny number of the following variables can be activated:\n- State : the geographical state from which the opportunity originates\nState : the geographical state from which the opportunity originates\n- Country : the geographical country from which the opportunity originates\nCountry : the geographical country from which the opportunity originates\n- Phone Quality : whether or not a phone number is listed for the opportunity\nPhone Quality : whether or not a phone number is listed for the opportunity\n- Email Quality : whether or not an email address is listed for the opportunity\nEmail Quality : whether or not an email address is listed for the opportunity\n- Source : the source of an opportunity (e.g. search engine, social media)\nSource : the source of an opportunity (e.g. search engine, social media)\n- Language : the spoken language specified on the opportunity\nLanguage : the spoken language specified on the opportunity\n- Tags : the tags placed on the opportunity\nTags : the tags placed on the opportunity\nThe variables Stage and Team are always in effect. Stage refers to the CRM pipeline stage\nthat an opportunity is in. Team refers to the sales team that is assigned to an opportunity.\nPredictive lead scoring always takes into account these two variables, regardless of which\noptional variables are selected.\n`Stage`\n`Team`\n`Stage`\n`Team`\nNext, click on the date field next to the option Consider leads created as of the: to\nselect the date from which predictive lead scoring begins its calculations.\nLastly, click Confirm to save changes.\n\n### Change the probability manually\n\nAn opportunityâs probability of success can be changed manually on the opportunity form. Click on\nthe probability number to edit it.\nManually changing the probability removes the automatic probability updates for that opportunity.\nThe probability no longer automatically updates as the opportunity moves through each stage of\nthe pipeline.\nTo reactivate automatic probability, click on the gear icon next to the probability percentage.\n\n## Assign leads based on probability\n\nOdoo CRM can assign leads/opportunities to sales teams and salespeople based on specified rules.\nCreate assignment rules based on the leadsâ probability of success to prioritize those that are more\nlikely to result in leads and opportunities.\n\n### Configure rule-based assignment\n\nTo activate rule-based assignment , navigate to CRM ⣠Configuration â£\nSettings , and activate Rule-Based Assignment .\nThe rule-based assignment feature can be set to run Manually , meaning an Odoo user must\nmanually trigger the assignment, or Repeatedly , meaning Odoo automatically triggers the\nassignment according to the chosen time period.\nTo configure automatic lead assignment, select Repeatedly for the Running section. The frequency of this automatic assignment is customized within the Repeat\nevery section. Enter a specific number and select a corresponding time period to establish the\ndesired interval. Time periods range from Minutes to Weeks .\nIf rule-based assignment is set to run Repeatedly , the assignment can still\nbe triggered manually using the circular arrow icon in the Rule-Based Assignment settings, or using the Assign Leads button on the sales team configuration page. Once a\nlead has been assigned to a salesperson via this rule, the leads are automatically converted into an\nopportunity by the system.\n\n### Configure assignment rules\n\nNext, configure the assignment rules for each sales team or salesperson. These rules determine\nwhich leads Odoo assigns to which people. To get started, navigate to CRM â£\nConfiguration ⣠Sales Teams , and select a sales team.\nOn the sales team configuration form, under Assignment Rules , click on Edit\nDomain to configure the rules that Odoo uses to determine lead assignment for this sales team. The\nrules can include anything that may be relevant for this company or team, and any number of rules\ncan be added.\nClick Add Filter to start creating assignment rules. Click on the sign on the right of the assignment rule to add another line. Click on the x symbol to\nremove the line.\nTo create an assignment rule based on an opportunityâs probability of success, click on the far left\ndrop-down menu of an assignment rule line, and select Probability .\nFrom the middle drop-down menu, select the desired equation symbolâmost likely the symbol for greater than , less than , greater than or equal to , or less than or equal to .\nIn the far right space, enter the desired number value of the probability. Finally, click Save to save changes.\nTo configure an assignment rule such that a sales team receives leads that have a probability of\nsuccess of 20% or greater, create a Domain line that reads: Probability >= 20 .\n`Probability>=20`\nSeparate assignment rules can also be configured for individual team members. From the sales team\nconfiguration page, click on a team member in the Members tab, then edit the Domain section. Click Save to save changes.\nIf automatic lead assignment is configured in the settings, both the sales team and individual team\nmembers have the option to Skip auto assignment . Check this box to omit a particular\nsales team or salesperson from being assigned leads automatically by Odooâs rule-based assignment\nfeature. If Skip auto assignment is activated, the sales team or salesperson can still\nbe assigned leads manually.\nTo manually assign leads to this sales team, click on the Assign Leads button at the top\nof the sales team configuration page. This assigns any leads that are currently unassigned and match\nthis teamâs specified domain.", "headings": ["Predictive lead scoring", "Configuration", "Change the probability manually", "Assign leads based on probability", "Configure rule-based assignment", "Configure assignment rules"], "doc_id": "ed09cc0fa8335d4c"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/track_leads/marketing_attribution.html", "title": "Marketing attribution reports", "module": "crm", "section": "Marketing attribution reports", "text": "# Marketing attribution reports\n\nUse the Odoo CRM app to compile a marketing attribution report , which analyzes the source of\nleads, and groups them in such a way as to calculate marketingâs overall impact on lead generation,\nattribution, won rate, and more.\n\n## Leads Analysis dashboard\n\nBegin by navigating to the Leads Analysis dashboard by going to CRM app\n⣠Reporting ⣠Leads .\nReports can also be run on the CRM app ⣠Leads dashboard, which is only accessible if the Leads feature has been activated on the Settings page.\nIf the Leads feature has not been activated, the CRM app ⣠Sales ⣠My\nPipeline dashboard can also be used to run reports.\nBoth dashboards contain the necessary Filters and Group By criteria to run an attribution\nreport.\n- Convert leads into opportunities\nConvert leads into opportunities\n- Create leads\nThe (graph) view is shown, by default, with Active or\nInactive and Created on: [current year] filters active in the Search⦠bar. The graph visualization displays the number of leads generated, by month and by sales team,\nwith each sales team attributed to its own color per month shown.\nSwitch the view to the (list) option, by clicking the respective\nicon located at the top-right of the dashboard. This allows leads to easily be displayed in the\ngrouping set by the Group By parameters.\n\n## Add UTM parameters\n\nUrchin Tracking Modules (UTMs) are snippets of text embedded in URLs that are used to track\nvisitor data. This includes parameters relating to how a visitor reached the link, such as the type\nof website visited, and/or marketing campaign the visit came from.\nOdoo can use these UTMs as parameters in the marketing attribution report to track the metrics and\nperformance of marketing campaigns.\n\n### Create UTMs\n\nThe link tracker in Odoo can be used to\ncreate and configure UTMs.\nUTMs can also be automatically generated by the Email Marketing and Marketing Automation apps.\nThe UTM parameters used in a marketing attribution report are Medium , Source , and Campaign , in\ndescending order of coverage.\n- Medium is the UTM with the widest coverage, and is used to identify the medium used to access\nthe link. This can include mediums such as social media, email, or cost per click (CPC).\nMedium is the UTM with the widest coverage, and is used to identify the medium used to access\nthe link. This can include mediums such as social media, email, or cost per click (CPC).\n- Source is more narrow, and is used to identify the source of traffic. For example, the name of\na website, search engine used, or a specific social media platform.\nSource is more narrow, and is used to identify the source of traffic. For example, the name of\na website, search engine used, or a specific social media platform.\n- Campaign is the most narrow, and can track specific marketing campaigns by name. This can\ninclude a contest or product name, type of sale, etc.\nCampaign is the most narrow, and can track specific marketing campaigns by name. This can\ninclude a contest or product name, type of sale, etc.\n\n## Create reports\n\nTo start creating a report, click the (down arrow) to the right of\nthe Search⦠bar to see the list of filtering and grouping parameters.\nFilters , located in the left column of the search options, can be used to keep only the\nresults that fit the filter. For example, selecting the Won filter only shows leads that\nhave been won in the attribution report.\nGroup By , found in the middle column, is used to organize the results into groups, and\ncan be used with or without filters.\nSetting multiple Group By options creates nested groups, according to which option\nis selected first. For example, selecting Medium , followed by Source ,\nand then Campaign , in Group By column, sorts all results first by\nmedium, then by the specific sources in each medium, followed by the campaigns in each source.\nThis can be verified by looking at the direction, and order, of the selections in the group tile\nthat appears in the Search⦠bar.\nFor a useful first report:\n#. From the Filters column, select the Active filter to view only leads\nthat are still marked as active.\n#. From the Group By column, select (in this specific order) Source ,\nfollowed by the City or Country , depending on which grouping is more\nrelevant.\nThis report contains all active leads, grouped first by the source of the lead, then by the\ncity or country each lead is from. This is useful to see the density of active opportunities\nsorted by location.\nWith this data, marketing campaigns, such as conferences or billboards, can be targeted to the\nlocations generating the largest amount of potential revenue. Similarly, more attention can be\nput toward increasing outreach in locations where existing marketing campaigns are less\neffective.\n\n## Export reports\n\nTo set the measures of the report, begin by navigating to the (pivot view) on the Leads Analysis dashboard.\nClick the Measures button to view the available measures of\nthe report. Select the desired measures from the drop-down menu (multiple measures can be selected),\nand verify the measures, filters, and groups are all displayed correctly in the pivot table. This\nensures the data is ready for export.\nTo quickly export the data in a list, as a .xlsx file, navigate to the (list view) . Click on the Actions (gear) icon,\nlocated to the right of Lead Analysis in the top-left of the page, and click Export All . The report downloads automatically as a .xlsx file.\nFor more export options, the report can be exported to the Odoo Documents app. From the (list view) of Leads Analysis page, begin by clicking\nthe Actions (gear) icon again. Now, navigate to Spreadsheet , and click Insert list in\nspreadsheet . A pop-up window titled, Select a spreadsheet to insert your list. appears.\nThe report can be renamed using the Name of the list field, if desired. The number of items on the\nreport can be set with the field labeled: Insert the first _ records of the list . Next, select\neither a new Blank spreadsheet , or export into an existing spreadsheet. Finally, click\nthe Confirm button.\n`Nameofthelist`\n`Insertthefirst_recordsofthelist`\nTo export the report as a .xlsx file, for use in an external spreadsheets program, click the Actions (gear) icon, and select the Export All option. If prompted, choose a file location, name the file, then click Save .", "headings": ["Leads Analysis dashboard", "Add UTM parameters", "Create UTMs", "Create reports", "Export reports"], "doc_id": "cddf28c9fdfb3aa7"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/track_leads/quality_leads_report.html", "title": "Quality leads report", "module": "crm", "section": "Quality leads report", "text": "# Quality leads report\n\nA quality lead is a lead that is likely to result in a sale. It should match the characteristics\nmost commonly believed to help salespeople close a deal, in addition to more precise criteria that\nis specific to each organization.\nThe specific criteria that defines a quality lead is different for every organization. For more\ninformation, see Define a quality lead .\nA quality leads report compares how many quality leads each salesperson has received over a\nspecific amount of time, such as within the past 30 days. Sales managers can use such a report to\nmake more informed decisions when assigning new leads to their team\nA sales manager pulls a quality leads report using their companyâs criteria:\n- Leads must include a phone number and an email address.\nLeads must include a phone number and an email address.\n- The email address must be from a professional domain.\nThe email address must be from a professional domain.\n- The source for the lead must be from a live chat conversation or an appointment with a\nsalesperson.\nThe source for the lead must be from a live chat conversation or an appointment with a\nsalesperson.\nAfter running the report, the manager can see that, although everyoneâs ability to close a deal\nhas varied, some members of the sales team have received a higher number of quality leads than\nothers.\nUsing this information, the sales manager may decide to assign more quality leads to the sales\npeople currently on the lower end, to balance out the distribution of quality leads.\n\n## Create a quality leads report\n\nTo create a quality leads report, first navigate to CRM app ⣠Reporting â£\nPipeline to open the Pipeline Analysis dashboard. Click into the Search⦠bar at the top of the page and remove any active filters.\nClick the ð»(triangle pointed down) icon to the right of the Search⦠bar\nto open the drop-down mega menu that contains Filters , Group By , and Favorites columns. Click Add Custom Filter . This opens a Add\nCustom Filter pop-up window.\nThe Add Custom Filter pop-up window allows for the creation of more specific filters.\n\n### Add custom filters\n\nIn order to generate a quality leads report, filters need to be created for the following\nconditions:\n- Starting date : limits results to those created within\na specific time frame.\nStarting date : limits results to those created within\na specific time frame.\n- Specific sales teams : limits results to only include\nleads for one or more sales teams. This filter is optional and should not be included if the is\nintended for the entire company.\nSpecific sales teams : limits results to only include\nleads for one or more sales teams. This filter is optional and should not be included if the is\nintended for the entire company.\n- Exclude unassigned leads : excludes leads without an\nassigned salesperson.\nExclude unassigned leads : excludes leads without an\nassigned salesperson.\n- Include archived leads : ensures that both active and\ninactive leads are included in the results.\nInclude archived leads : ensures that both active and\ninactive leads are included in the results.\n- Add rules for quality leads : includes or excludes\nresults based on criteria that is specific to a company or sales team.\nAdd rules for quality leads : includes or excludes\nresults based on criteria that is specific to a company or sales team.\nAn example of the Custom Filter pop-up window with all of the default rules configured.\n\n#### Add a starting date filter\n\nBegin by first defining the ruleâs parameter with a date range, by clicking into the first field, on\nthe left of the row, and typing Created On in the Search⦠bar, or by scrolling\nthrough the menuâs list to locate it.\n`CreatedOn`\nIn the ruleâs operator drop-down menu, define the parameter further by selecting either:\n- >= (greater than or equal to) to specify a start date and include all entries after that start date (as well as the initial value itself); or\n>= (greater than or equal to) to specify a start date and include all entries after that start date (as well as the initial value itself); or\n- is between to more sharply define a time frame with a clear start and end date. All\nmatching entries that fit within the defined start and end dates are included in the report.\nis between to more sharply define a time frame with a clear start and end date. All\nmatching entries that fit within the defined start and end dates are included in the report.\nWith either option, use the pop-up calendarâs day and time pickers, in the far right field, to\ndefine the respective date range. Setting these values concludes the creation of the first rule.\n\n#### Add a sales team filter\n\nThis filter is optional. To view results for the entire company, do not add this filter.\nTo limit the results of the report to one or more sales teams, click New Rule . Next,\nclick the first field for the new rule, and type Sales Team in the Search⦠bar, or\nscroll to search through the list to locate it.\n`SalesTeam`\nIn the ruleâs second field, select is in from the drop-down menu. Selecting this\noperator limits results to the sales teams selected in the next field.\nLastly, in the third field, select the desired sales team from the drop-down menu. Multiple teams\ncan be added in this field, where each parameter is treated with an âorâ (e.g. âanyâ) operator in\nthe search logic.\n\n#### Exclude unassigned leads\n\nNext, add a New Rule . Then, click into the first field for the new rule, and type Salesperson in the Search⦠bar, or scroll to search through the list to locate it.\n`Salesperson`\nIn the ruleâs second field, select is set from the drop-down menu. Selecting this\noperator excludes any leads not assigned to a specific salesperson.\n\n#### Include archived leads\n\nThis filter is also optional, as it adds archived (inactive) leads to the report, however it is\nrecommended to include this since it pulls all assigned leads, regardless of status, into the\nreport. This ensures a more accurate representation of assigned leads is captured. However, to\npull a report that only includes active leads, do not activate this feature.\nNext, in the upper-right corner of the Add Custom filter pop-up window, move the Include archived toggle to active.\nEnabling this feature adds archived (inactive) leads to the report.\n\n#### Add rules for quality leads\n\nThe filters added in this step vary, based on how an organization defines a quality lead .\nAs defined earlier, a quality lead is a lead that is likely to result in a won opportunity.\nAlthough the exact criteria for a quality lead varies from organization to organization, it is often\na combination of factors commonly attributed to positive sales outcomes, in addition to factors\nvalued by the specific organization.\nIn addition to the basic filters and grouping options outlined in the general Quality leads\nreport , consider the following filters when defining a\nquality lead:\n- Email or Phone : the information in these fields can help determine whether\nor not a lead is a professional contact.\nEmail or Phone : the information in these fields can help determine whether\nor not a lead is a professional contact.\n- Source : this field links to the marketing and lead generation efforts from other Odoo\napplications, including Live Chat , Social Marketing , and Email Marketing .\nSource : this field links to the marketing and lead generation efforts from other Odoo\napplications, including Live Chat , Social Marketing , and Email Marketing .\n- Stage : this filter can be used to eliminate or target leads that have reached specific\nstages.\nStage : this filter can be used to eliminate or target leads that have reached specific\nstages.\n- Medium : a leadâs source can indicate its quality level, as various channels have\ndifferent won rates and expected revenues.\nMedium : a leadâs source can indicate its quality level, as various channels have\ndifferent won rates and expected revenues.\n- Campaign : adding this filter helps track of the success of different marketing efforts\nto capture high quality leads.\nCampaign : adding this filter helps track of the success of different marketing efforts\nto capture high quality leads.\n- Lost Reason : exclude leads that may appear to be quality based on various criteria,\nbut have been marked as lost for specified reasons.\nLost Reason : exclude leads that may appear to be quality based on various criteria,\nbut have been marked as lost for specified reasons.\n- Tags : include or exclude results based on one or more customized tags.\nTags : include or exclude results based on one or more customized tags.\nWhen adding rules to a custom filter, keep the statements preceding each rule in mind. The\nstatement above a rule determines whether the search results must match all of the rules\nbelow the statement, or any of the rules below the statement.\n\n## View the report\n\nAt the top of the Add Custom Filter form, there is an option to match any or all of the rules. In order to properly run the report, only records that match all of the following filters should be included. Before adding the filters, make sure all is selected in this field.\nAfter the filters are configured, click Add . The default display for the report is a bar\ngraph, where the leads are grouped by stage .\nTo group the results by salesperson, click the ð»(triangle pointed down) icon to the\nright of the Search⦠bar to open the drop-down mega menu. Under the Group\nBy heading, select Salesperson . In the same column, under the Group By heading, click Add a Custom Group , then select Active on the resulting\ndrop-down menu to layer in lead status , under the parent Salesperson grouping.\nThe report now displays the total count of quality leads each salesperson has received in the\ndesignated time period. Because there are layered Group By filters, the grouped leads\nare also color-coded to identify whether they are active or marked as lost .\nTo save this search for later, click the ð»(triangle pointed down) icon next to the Search⦠bar to open the drop-down menu. Under the Favorites heading,\nclick Save current search .\nIn the drop-down menu, rename the report from the default Pipeline label to Quality Leads ,\nand click Save .\n`Pipeline`\n`QualityLeads`", "headings": ["Create a quality leads report", "Add custom filters", "View the report"], "doc_id": "b763dc9c80d7a1d1"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/track_leads/resellers.html", "title": "Resellers", "module": "crm", "section": "Resellers", "text": "# Resellers\n\nWithin Odooâs CRM app, leads can be forwarded to resellers (or partners). Leads can be manually\nassigned, or automatically assigned, based on the resellersâ designated level and location.\n\n## Configuration\n\nTo utilize the reseller features, the Resellers module first needs to be installed. Navigate to\nthe Apps application , and remove the Apps filter from the Search⦠bar. Then, search for Resellers .\n`Resellers`\nClick Activate on the Resellers module card that appears. Doing so installs\nthe module, and returns to the main Odoo dashboard.\nAfter the module is installed, navigate to the CRM app . Under the Configuration menu is a new section, titled Resellers , with three\noptions beneath it: Partner Levels , Partner Activations , and Commission Plans .\n\n## Partner levels\n\nPartner levels are used to differentiate between various resellers. To view the partner levels,\nnavigate to CRM app ⣠Configuration ⣠Resellers: Partner Levels .\nOn the Partner Levels page that appears, there are three default levels:\n- Silver\n- Bronze\nNew levels can be added, as needed, by clicking New , and filling out the resulting level\nform.\nExisting levels can also be edited and renamed, if desired, as well. To modify a level, select it\nfrom the list, and proceed to make any desired changes from the level form page that appears.\nLevel weight is used to decide the probability a partner to be assigned a lead or opportunity. On\nthe level form, assign a numerical value (greater than zero) to the Level Weight field.\nIf the weight is zero, no leads are assigned.\nLevel Weight can be assigned on an individual contact record. The weight assigned on the\nindividual record overwrites the default weight assigned on the level configuration form.\n\n## Partner activations\n\nPartner activations are used to identify the status of a partner. Activations are assigned on an\nindividual contact record, and can be used to group or filter the Partnership Analysis report\n( CRM app ⣠Reporting ⣠Partnerships ).\nTo view the partner levels, navigate to CRM app ⣠Configuration ⣠Partner\nActivations .\nThree activation types are created by default in the CRM app:\n- Fully Operational\n- Ramp-up\n- First Contact\nNew partner activations can be added, as needed, by clicking New , and entering a Name on the new line that appears. Then, select the desired status in the Active column.\nExisting partner activations can also be edited and renamed, if desired. To rename a status, click\nthe Name field of a desired level, and enter a new name.\nTo change the active status of an activation, slide the toggle in the Active column of\nthe desired activation to the inactive position.\nThe list of default Partner Activations in the CRM app. The toggle for First Contact is in the\ninactive position, while the rest are active.\n\n## Partner assignments\n\nAfter partner levels and partner activations configured.\nTo update an individual partner record, navigate to CRM app ⣠Sales â£\nCustomers , and click the Kanban card for the desired partner to open the customer record.\nOn the customer record, click the Partner Assignment tab.\nClick the Partner Level field, and select an option from the drop-down menu to assign a\nlevel. Click the Activation field, and select a partner activation type from the\ndrop-down list, if desired. Then, click the Level Weight field to assign a different\nlevel weight, if necessary.\n\n## Publish partners\n\nWith the Odoo Website and Resellers apps installed, a new webpage ( /partners ) is created to\ndisplay a list of all active partners from the CRM app.\n`/partners`\nNext, return to CRM app ⣠Sales ⣠Customers , and click the Kanban card for a\npartner. From that partnerâs contact form, click the Go to Website smart button at the\ntop of the page to open that partnerâs webpage.\nNext, click Edit at the top-right of the partnerâs webpage, and use the building\nblocks to add any additional design\nelements, or information about the partner.\nA company summary is a useful addition to this page.\nAfter making any necessary changes to the page, click Save . At the top of the page,\nslide the Unpublished toggle to the active, Published position, if needed.\nRepeat these steps for all partners.", "headings": ["Configuration", "Partner levels", "Partner activations", "Partner assignments", "Publish partners"], "doc_id": "5efbf1fd9182a658"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/crm/track_leads/unattended_leads_report.html", "title": "Unattended leads report", "module": "crm", "section": "Unattended leads report", "text": "# Unattended leads report\n\nUnattended leads are leads that have scheduled activities that are either due or past due.\nWhenever an activity is scheduled, Odoo tracks the due date, and sends email reminders to the users\nthe activity is assigned to.\nAn unattended leads report compiles all active leads in the pipeline with due or past due\nactivities, allowing a sales manager to identify which opportunities require immediate attention.\nBy pulling a daily unattended leads report, sales managers can remind their teams to address\noutstanding activities before they become past due, helping avoid neglected leads and reinforcing\nproactive behaviors in their salespeople.\nA sales manager starts their day by pulling an unattended leads report, and upon switching to\nlist view, they see the following:\nTheir team member, Mitchell, has two leads in the Proposition stage with activities that are\ndue.\nThe yellow ð (phone) icon indicates that the Modern Open Space lead has a phone\ncall activity scheduled for today. The red âï¸ (envelope) icon indicates that the 5 VP Chairs lead has an email activity scheduled that is past due.\n`ModernOpenSpace`\n`5VPChairs`\nClicking on the 5 VP Chairs lead, the sales manager opens the record of the lead and reviews the\nchatter. They see that the email was scheduled to be sent two days ago, but Mitchell never marked\nthis activity as done.\n`5VPChairs`\nIn order to pull a unattended leads report, sales teams must be regularly utilizing activity\nin the CRM pipeline, on individual lead and opportunity cards.\nIt is not possible to compile a complete report if the sales people are not using the Activities feature in the chatter\nFor more information, refer to Activities\n\n## Create an unattended leads report\n\nTo create an unattended leads report, first navigate to CRM app ⣠Reporting â£\nPipeline to open the Pipeline Analysis dashboard. Click into the Search⦠bar at the top of the page, and remove all of the default filters.\nThe Created on filter can remain active, as this variable may be useful to include in\nthe report.\nNext, add custom filters by clicking the ð»(triangle pointed down) icon to the right of\nthe Search⦠bar to open the drop-down menu that contains Filters , Group By , and Favorites columns. Under the Filters column,\nclick Add Custom Filter , which opens an Add Custom Filter pop-up window.\nThe Add Custom Filter pop-up window allows for the creation of more specific filters.\n\n### Add custom filters\n\nIn order to generate an unattended leads report, filters need to be created for the following\nconditions:\n- Past due activities : limits the results to only include\nleads with an assigned activity where the due date has past. This can be altered to include\nactivities due to occur on the date the report is generated as well.\nPast due activities : limits the results to only include\nleads with an assigned activity where the due date has past. This can be altered to include\nactivities due to occur on the date the report is generated as well.\n- Unassigned leads : excludes leads without an\nassigned salesperson.\nUnassigned leads : excludes leads without an\nassigned salesperson.\n- Specific sales teams : limits results to only include\nleads assigned to one or more sales teams. This filter is optional and should not be included if\nthe report is intended for the entire company.\nSpecific sales teams : limits results to only include\nleads assigned to one or more sales teams. This filter is optional and should not be included if\nthe report is intended for the entire company.\n\n#### Add filter for past due activities\n\nClick the first field for the new rule, and type Activities in the Search⦠bar, or\nscroll to search through the list to locate it. Then, next to Activities , click the > (greater than sign) to open a new drop-down menu with secondary conditions.\n`Activities`\nType Due Date in the Search⦠bar, or scroll to search through the list. Click Due Date to add it to the rule.\n`DueDate`\nThen, click into then next field and select <= from the drop-down menu. Selecting this\noperator includes all activities with a due date up to, and including, the date selected in the next\nfield.\nThe third field can be left as todayâs date, or adjusted as needed.\n\n#### Exclude unassigned leads\n\nAfter filtering for activities, add a New Rule . Then, click into the first field for the\nnew rule, and type Salesperson in the Search⦠bar, or scroll to search through the\nlist to locate it.\n`Salesperson`\nIn the ruleâs second field, select is set from the drop-down menu. Selecting this\noperator excludes any leads not assigned to a specific salesperson.\n\n#### Add a Sales team\n\nThis filter is optional. To view results for the entire company, do not add this filter, and\ncontinue to View results\nTo limit the results of the report to one or more sales teams, click New Rule . Next,\nclick the first field for the new rule, and type Sales Team in the Search⦠bar, or\nscroll to search through the list to locate it.\n`SalesTeam`\nIn the ruleâs second field, select is in from the drop-down menu. Selecting this\noperator limits results to the sales teams selected in the next field.\nLastly, in the third field, select the desired sales team from the drop-down menu. Multiple teams\ncan be added in this field, where each parameter is treated with an âorâ (e.g. âanyâ) operator in\nthe search logic.\nAn example of the Add Custom Filter pop-up window with all of the rules configured.\n\n## View results\n\nAt the top of the Add Custom Filter form, there is an option to match any or all of the rules. In order to properly run the report, only records that match all of the following filters should be included. Before adding the filters, make sure all is\nselected in this field.\nAfter the filters are configured, click Add . The resulting report displays all leads\nassigned to a salesperson where an activity is past due, or is due on the current date. The default\ndisplay is a bar graph, where the leads are grouped by stage .\nTo group the results by salesperson, click the ð»(triangle pointed down) icon to the\nright of the Search⦠bar to open the drop-down menu that contains Filters , Group By , and Favorites columns. Under the Group By heading,\nselect Salesperson .\nThe option to group by Sales Team is also available under the Group By heading.\nTo change to a list view, click the ⣠(list) icon in the top-right corner of the\nscreen.\nClicking the (toggle) icon opens a drop-down menu of additional columns that can be\nadded to the report.\nSome options that are beneficial for this report include:\n- Activities : the summary of the latest activity for this lead.\nActivities : the summary of the latest activity for this lead.\n- Expected Closing : the estimated date on which the lead will be won.\nExpected Closing : the estimated date on which the lead will be won.\n- Probability : estimated success rate based on the stage.\nProbability : estimated success rate based on the stage.", "headings": ["Create an unattended leads report", "Add custom filters", "View results"], "doc_id": "6060760d3b2993e1"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale.html", "title": "Point of Sale", "module": "pos", "section": "Point of Sale", "text": "# Point of Sale\n\nWith Odoo Point of Sale , run your shops and restaurants easily. The app works on any device with\na web browser, even if you are temporarily offline. Product moves are automatically registered in\nyour stock, you get real-time statistics, and your data is consolidated across all shops.\n- Odoo Tutorials: Point of Sale Tutorials\nOdoo Tutorials: Point of Sale Tutorials\n- IoT Boxes Documentations\nIoT Boxes Documentations\n\n## Start a session\n\nFrom the POS dashboard , click New Session , and at the Opening Cash\nControl screen, click Open Session to start a POS session, or click Continue\nSelling if the session is already opened.\nMultiple users can be logged into the same session at the\nsame time. However, the session can only be opened once on the same browser.\n\n## Sell products\n\nClick on products to add them to the cart. To change the quantity , click Qty and\nenter the number of products using the keypad. To add a discount or modify the product price , click respectively % Disc or Price and enter the amounts.\nOnce an order is completed, proceed to checkout by clicking Payment . Select the payment method , enter the received amount, and click Validate . Click New Order to move on to the next customer.\n- You can use both , and . on your keyboard as decimal separators.\nYou can use both , and . on your keyboard as decimal separators.\n`,`\n`.`\n- Cash is selected by default if you enter the amount without choosing a payment method.\nCash is selected by default if you enter the amount without choosing a payment method.\nThe system can only load a limited number of products for effective opening. Click Search more if the desired product is not loaded automatically.\n\n## Set customers\n\nRegistering your customer is necessary to collect their loyalty points and grant them rewards , automatically apply the attributed pricelist , or generate and print an invoice .\nYou can create customers from an open POS session by clicking Customer ⣠Create , and filling in the contact information. You can also create\ncustomers from the backend by going to Point of Sale ⣠Orders ⣠Customers and\nclicking New . Then, fill in the information and save.\nTo set a customer during an order, access the list of customers by clicking Customer on\nthe POS interface. You can also set a customer at the payment screen by clicking Customer .\n\n## Customer notes\n\nYou can add customer notes about specific products directly from an open POS session . For instance, to provide cleaning and maintenance tips. They can also be used\nto track a customerâs particular request, such as not wanting the product to be assembled for them.\nTo do so, select a product and click Customer Note on the pad. Doing so opens a pop-up\nwindow in which you can add or modify content for the note.\nProduct notes from an imported SO are displayed\nidentically in the cart.\nCustomer notes appear on customersâ receipts and invoices similarly to how they appear in the cart,\nunder the related product.\n\n## Return and refund products\n\nTo refund a returned product, follow these steps:\n- Start a session from the POS dashboard .\nStart a session from the POS dashboard .\n- Click Actions , then Refund , and select the corresponding\norder.\nClick Actions , then Refund , and select the corresponding\norder.\n- Select items, use the keypad to set the quantity to refund, then click Refund .\nSelect items, use the keypad to set the quantity to refund, then click Refund .\n- Click Payment and select the appropriate refund payment method.\nClick Payment and select the appropriate refund payment method.\n- Click Validate and print the receipt if needed.\nClick Validate and print the receipt if needed.\n- Click New Order to proceed to the next customer.\nClick New Order to proceed to the next customer.\n- To filter the orders list by Order number , Receipt Number , Date , or Customer , enter a value in the search bar and choose the\nrelevant filter from the dropdown menu.\nTo filter the orders list by Order number , Receipt Number , Date , or Customer , enter a value in the search bar and choose the\nrelevant filter from the dropdown menu.\n- When the total amount is negative, adding a gift card to the cart automatically adjusts the\ngift card balance to match that amount.\nWhen the total amount is negative, adding a gift card to the cart automatically adjusts the\ngift card balance to match that amount.\nAlternatively, a refund can be processed by selecting the returned product(s) from an open\nsession and setting a negative quantity equal to the number of returned items. To do so, click Qty and +/- , and update the quantity accordingly.\nOnce the return payment is validated, Odoo generates the required credit note, referencing the\noriginal receipt or invoice and partially or fully canceling the document.\n\n## Manage the cash register\n\nTo add or take out cash from the register, click the menu icon in the upper right corner of your\nscreen and Cash In/Out .\nDoing so opens a pop-up window on which you can select Cash In or Cash Out ,\nenter the amount and the reason, and click Confirm .\n\n## Close the POS session\n\nTo close your session, click the menu icon in the upper right corner of your screen and Close Session .\nDoing so opens the Closing Control pop-up screen. From this screen, you can retrieve\nvarious information:\n- the number of orders made and the total amount made during the session;\nthe number of orders made and the total amount made during the session;\n- the expected amounts grouped by payment method.\nthe expected amounts grouped by payment method.\nBefore closing this window, count your cash using the calculator icon. Doing so opens a pop-up\nwindow that computes the total amount in the cash drawer depending on the coins and bills counted\nand added manually. Then, click Confirm or Discard to close the window. The\ncomputed amount is set in the Counted column, and the Money Details are\nspecified in the Notes section.\nOnce you are done controlling the amounts, click Close Session to close and go back to\nthe POS dashboard .\n- To reach the backend without closing the session, click Backend on the dropdown\nmenu.\nTo reach the backend without closing the session, click Backend on the dropdown\nmenu.\n- To abort, click Discard on the pop-up window.\nTo abort, click Discard on the pop-up window.\n- Depending on your setup, you might only be allowed to close a session if the expected cash\nrevenue equals the counted cash. To close it anyway, click Ok on the Payments Difference screen.\nDepending on your setup, you might only be allowed to close a session if the expected cash\nrevenue equals the counted cash. To close it anyway, click Ok on the Payments Difference screen.\n- It is strongly advised to close your POS session at the end of each day.\nIt is strongly advised to close your POS session at the end of each day.\n- To look at all your previous sessions, go to Point of Sale ⣠Orders â£\nSessions .\nTo look at all your previous sessions, go to Point of Sale ⣠Orders â£\nSessions .\n\n## Analytics\n\nOnce you close and post the POS session , access the comprehensive report\nto review all session activities, including who initiated the session and who handled specific\norders. To access the sessionâs report:\n- Click ( vertical ellipsis ) on the POS card.\nClick ( vertical ellipsis ) on the POS card.\n- Click Sessions under the View section.\nClick Sessions under the View section.\n- From that list view, you can see all the sessions and who initiated them under the Opened By column.\nFrom that list view, you can see all the sessions and who initiated them under the Opened By column.\n- Select a POS session to open a detailed session report.\nSelect a POS session to open a detailed session report.\n- Click the Orders smart button to display a list of all orders placed during that\nsession.\nClick the Orders smart button to display a list of all orders placed during that\nsession.\n- From that view, you can retrieve the following information: The Order Ref The Date of the order. The Point of Sale where that order was made. The Receipt Number . The Customer . The Employee that placed this order. The Total paid amount. The order Status .\nFrom that view, you can retrieve the following information:\n- The Order Ref\n- The Date of the order.\nThe Date of the order.\n- The Point of Sale where that order was made.\nThe Point of Sale where that order was made.\n- The Receipt Number .\n- The Customer .\n- The Employee that placed this order.\nThe Employee that placed this order.\n- The Total paid amount.\nThe Total paid amount.\n- The order Status .\nTo get an overview of all orders, regardless of the session, click the vertical ellipsis button\n( â® ) on the POS card and select Orders from the View section.", "headings": ["Start a session", "Sell products", "Set customers", "Customer notes", "Return and refund products", "Manage the cash register", "Close the POS session", "Analytics"], "doc_id": "f63178a9c2c52ebd"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/combos.html", "title": "Product combos", "module": "pos", "section": "Product combos", "text": "# Product combos\n\nThe Product Combos feature allows users to define and manage combination options for a single\nproduct.\nIn the context of a restaurant, the feature enables users to create multiple-choice menus. For\nexample, a user can define a main dish and specify various options for sides, drinks, or desserts\nthat customers can combine with the main dish.\nIn retail, this feature allows you to create a product set with multiple products to choose from and\ncombine.\n\n## Configuration\n\nFirst, you need to create combination choices. To do so:\n- Go to Point of Sale ⣠Products ⣠Product Combos and click New .\nGo to Point of Sale ⣠Products ⣠Product Combos and click New .\n- Name your combo and add the products you want customers to choose from by clicking Add\na line . You can also include an extra price for each option in the Extra Price column.\nName your combo and add the products you want customers to choose from by clicking Add\na line . You can also include an extra price for each option in the Extra Price column.\nAs a reference, the selected productâs original price is displayed in the Original\nPrice column.\nSecond, you need to create a specific product to gather combo choices. To do this:\n- Go to Point of Sale ⣠Products ⣠Products and click New .\nGo to Point of Sale ⣠Products ⣠Products and click New .\n- Set the Product Type to Combo and fill in the General\nInformation tab. Note The sales price of the combo product is fixed and does not vary based on the individual prices\nof included items or the quantity of items in the combo. The combo product price is only\naffected by the extra price optionally defined at the combo choice creation or if a variant of\none of the items has a specified extra price.\nSet the Product Type to Combo and fill in the General\nInformation tab.\nThe sales price of the combo product is fixed and does not vary based on the individual prices\nof included items or the quantity of items in the combo. The combo product price is only\naffected by the extra price optionally defined at the combo choice creation or if a variant of\none of the items has a specified extra price.\n- Go to the Combo Choices tab, click Add a line , and select the\ncombinations to add. You can also create a new combination at this step by clicking New on the popup window.\nGo to the Combo Choices tab, click Add a line , and select the\ncombinations to add. You can also create a new combination at this step by clicking New on the popup window.\nOnce you have created and added the combo choices into a product, you can sell combos in your retail\nstore or restaurant.\n\n## Practical application\n\nOpen a POS session and select the combo product. Choose the options and\nclick Add to order . As a reminder, the extra price appears under the related choices.", "headings": ["Configuration", "Practical application"], "doc_id": "09dc928d76093536"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/configuration.html", "title": "Configuration", "module": "pos", "section": "Configuration", "text": "# Configuration\n\n## Access the POS settings\n\nTo access the general POS settings, go to Point of Sale ⣠Configuration â£\nSettings . Then, open the dropdown menu in the Point of Sale field and select the POS to\nconfigure.\nThese settings are available to users with the access rights Administration set as Settings .\nYou can also configure some settings from the dashboard by clicking the vertical ellipsis button\n( â® ) on a POS card. Doing so opens a popup window, from which you can:\n- Enable multiple employees to log in.\nEnable multiple employees to log in.\n- Connect and set up an IoT sytem.\nConnect and set up an IoT sytem.\n- Connect and set up an ePOS printer.\nConnect and set up an ePOS printer.\nThese settings are available to users with the access rights Point of Sale set as Administrator .\n\n## Make products available\n\nTo make products available for sale,\n- Go to Point of Sale ⣠Products ⣠Products .\nGo to Point of Sale ⣠Products ⣠Products .\n- Select a product to open the product form.\nSelect a product to open the product form.\n- Tick the Point of Sale checkbox at the top of the form.\nTick the Point of Sale checkbox at the top of the form.\n\n## PoS product categories\n\n### Configuration\n\nPOS product categories allow users to categorize products and get a more structured and clean\nPOS interface.\nTo manage PoS categories, go to Point of Sale ⣠Configuration ⣠PoS Product\nCategories . To add a new category, click Create . Then, name it in the Category Name field.\nTo associate a category with a parent category, fill in the Parent Category field. A\nparent category groups one or more child categories.\n\n### Assign PoS product categories\n\nGo to Point of Sale ⣠Products ⣠Products and open a product form. Then, go to\nthe Point of Sale tab and fill in the Category field under the Point of Sale section with one or multiple PoS categories.\n\n### Restrict categories\n\nYou can limit the categories displayed on your POS interface. To achieve this, go to your POS\nsettings and choose the specific categories to display in the Restrict Categories field within the Product & PoS categories section.", "headings": ["Access the POS settings", "Make products available", "PoS product categories", "Configuration", "Assign PoS product categories", "Restrict categories"], "doc_id": "2c84df6b859c95b6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/configuration/epos_printers.html", "title": "ePOS printers", "module": "pos", "section": "ePOS printers", "text": "# ePOS printers\n\nePOS printers are designed to work seamlessly with Point of Sale systems. Once connected, these\ndevices automatically share information, allowing for direct printing of tickets from the POS system\nto the ePOS printer.\n\n## Configuration\n\nTo use an ePos printer in Point of Sale:\n- Access the POS settings .\nAccess the POS settings .\n- Activate the ePos Printer feature.\nActivate the ePos Printer feature.\n- Fill in the field with your ePos IP address.\nFill in the field with your ePos IP address.\nWhen the printer connects to a network, it automatically prints a ticket with its IP address.\n\n## Directly supported ePOS printers\n\nThe following ePOS printers are directly compatible with Odoo without needing an IoT system .\n- Epson TM-m30 i/ii/iii (Wi-Fi/Ethernet models only; Recommended)\nEpson TM-m30 i/ii/iii (Wi-Fi/Ethernet models only; Recommended)\n- Epson TM-H6000IV-DT (Receipt printer only)\nEpson TM-H6000IV-DT (Receipt printer only)\n- Epson TM-T70II-DT\n- Epson TM-T88V-DT\n- Epson TM-L90-i\n- Epson TM-T70-i\n- Epson TM-T82II-i\n- Epson TM-T83II-i\n- Epson TM-U220-i\n- Epson TM-m10\n- Epson TM-P20 (Wi-Fi® model)\nEpson TM-P20 (Wi-Fi® model)\n- Epson TM-P60II (Receipt: Wi-Fi® model)\nEpson TM-P60II (Receipt: Wi-Fi® model)\n- Epson TM-P60II (Peeler: Wi-Fi® model)\nEpson TM-P60II (Peeler: Wi-Fi® model)\n- Epson TM-P80 (Wi-Fi® model)\nEpson TM-P80 (Wi-Fi® model)\n\n## ePOS printers with IoT system integration\n\nThe following printers require an IoT system to\nbe compatible with Odoo:\n- Epson TM-T20 family (incompatible ePOS software)\nEpson TM-T20 family (incompatible ePOS software)\n- Epson TM-T88 family (incompatible ePOS software)\nEpson TM-T88 family (incompatible ePOS software)\n- Epson TM-U220 family (incompatible ePOS software)\nEpson TM-U220 family (incompatible ePOS software)\n- Epson printers using Wi-Fi/Ethernet connections and following the EPOS SDK Javascript protocol are\ncompatible with Odoo without needing an IoT system .\nEpson printers using Wi-Fi/Ethernet connections and following the EPOS SDK Javascript protocol are\ncompatible with Odoo without needing an IoT system .\n- Thermal printers using ESC/POS are compatible with an IoT system .\nThermal printers using ESC/POS are compatible with an IoT system .\n- Epson printers using only USB connections are compatible with an IoT system .\nEpson printers using only USB connections are compatible with an IoT system .\n- Epson printers that connect via Bluetooth are not compatible .\nEpson printers that connect via Bluetooth are not compatible .\n- Secure connection (HTTPS)\nSecure connection (HTTPS)\n- Self-signed certificate for ePOS printers\nSelf-signed certificate for ePOS printers", "headings": ["Configuration", "Directly supported ePOS printers", "ePOS printers with IoT system integration"], "doc_id": "41b0158eada6d861"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/configuration/epos_ssc.html", "title": "Self-signed certificate for ePOS printers", "module": "pos", "section": "Self-signed certificate for ePOS printers", "text": "# Self-signed certificate for ePOS printers\n\nTo work with Odoo, some printer models that can be used without an IoT system may require the HTTPS protocol to\nestablish a secure connection between the browser and the printer. However, trying to reach the\nprinterâs IP address using HTTPS leads to a warning page on most web browsers. In that case, you can\ntemporarily force the connection , which allows you to reach the page\nin HTTPS and use the ePOS printer in Odoo as long as the browser window stays open.\nThe connection is lost after closing the browser window. Therefore, this method should only be\nused as a workaround or as a pre-requisite for the following instructions .\n\n## Generate, export, and import self-signed certificates\n\nFor a long-term solution, you must generate a self-signed certificate . Then, export and import\nit into your browser.\nGenerating an SSL certificate should only be done once . If you create another\ncertificate, devices using the previous one will lose HTTPS access.\nNavigate to the ePOSâ IP address (e.g., https://192.168.1.25 ) and force the\nconnection by clicking Advanced and Proceed to [IP address]\n(unsafe) .\n`https://192.168.1.25`\nWarning page on Google Chrome, Windows 10\nThen, sign in using your printer credentials to access the ePOS printer settings. To\nsign in, enter epson in the ID field and your printer serial number in the Password field.\n`epson`\nClick Certificate List in the Authentication section, and click create to generate a new Self-Signed Certificate . The Common\nName should be automatically filled out. If not, fill it in with the printer IP address\nnumber. Select the years the certificate will be valid in the Validity\nPeriod field, click Create , and Reset or manually restart the\nprinter.\nThe self-signed certificate is generated. Reload the page and click SSL/TLS in the Security section to ensure Selfsigned Certificate is correctly\nselected in the Server Certificate section.\nThe export process is heavily dependent on the OS and the\nbrowser. Start by accessing your ePOS printer settings on your web browser by navigating\nto its IP address (e.g., https://192.168.1.25 ). Then, force the connection as\nexplained in the Generate a self-signed certificate tab .\n`https://192.168.1.25`\nIf you are using Google Chrome ,\n- click Not secure next to the search bar, and Certificate is\nnot valid ;\nclick Not secure next to the search bar, and Certificate is\nnot valid ;\n- go to the Details tab and click Export ;\ngo to the Details tab and click Export ;\n- add .crt at the end of the file name to ensure it has the correct extension;\nadd .crt at the end of the file name to ensure it has the correct extension;\n`.crt`\n- select Base64-encoded ASCII, single certificate , at the bottom of the\npop-up window;\nselect Base64-encoded ASCII, single certificate , at the bottom of the\npop-up window;\n- save, and the certificate is exported.\nsave, and the certificate is exported.\nMake sure that the certificate ends with the extension .crt . Otherwise, some\nbrowsers might not see the file during the import process.\n`.crt`\nIf you are using Mozilla Firefox ,\n- click the lock-shaped icon on the left of the address bar;\nclick the lock-shaped icon on the left of the address bar;\n- go to Connection not secure ⣠More information ⣠Security tab\n⣠View certificate ;\ngo to Connection not secure ⣠More information ⣠Security tab\n⣠View certificate ;\n- scroll down to the Miscellaneous section;\nscroll down to the Miscellaneous section;\n- click PEM (cert) in the Download section;\nclick PEM (cert) in the Download section;\n- save, and the certificate is exported.\nsave, and the certificate is exported.\nThe import process is heavily dependent on the OS and the\nbrowser.\nWindows 10 manages certificates, which means that self-signed certificates must be\nimported from the certification file rather than the browser. To do so,\n- open the Windows File Explorer and locate the downloaded certification file;\nopen the Windows File Explorer and locate the downloaded certification file;\n- right-click on the certification file and click Install\nCertificate ;\nright-click on the certification file and click Install\nCertificate ;\n- select where to install the certificate and for whom - either for the Current User or all users ( Local Machine ). Then, click Next ;\nselect where to install the certificate and for whom - either for the Current User or all users ( Local Machine ). Then, click Next ;\n- on the Certificate Store screen, tick Place all certificates in\nthe following store , click Browse⦠, and select Trusted Root Certification Authorities ;\non the Certificate Store screen, tick Place all certificates in\nthe following store , click Browse⦠, and select Trusted Root Certification Authorities ;\n`CertificateStore`\n- click Finish , accept the pop-up security window;\nclick Finish , accept the pop-up security window;\n- restart the computer to make sure that the changes are applied.\nrestart the computer to make sure that the changes are applied.\nIf you are using Google Chrome ,\n- open Chrome;\n- go to Settings ⣠Privacy and security ⣠Security â£\nManage certificates ;\ngo to Settings ⣠Privacy and security ⣠Security â£\nManage certificates ;\n- on the Local certificates tab, click Installed by you under the Custom section;\non the Local certificates tab, click Installed by you under the Custom section;\n- click Import next to Trusted Certificates , and select\nthe exported certification file from your local drive;\nclick Import next to Trusted Certificates , and select\nthe exported certification file from your local drive;\n- accept all warnings;\n- click ok ;\n- restart your browser.\nrestart your browser.\nIf you are using Mozilla Firefox ,\n- open Firefox;\n- go to Settings ⣠Privacy & Security ⣠Security ⣠View\nCertificates⦠⣠Import ;\ngo to Settings ⣠Privacy & Security ⣠Security ⣠View\nCertificates⦠⣠Import ;\n- in the pop-up window, open the Servers tab;\nin the pop-up window, open the Servers tab;\n- click Add Exception⦠;\nclick Add Exception⦠;\n- enter the printerâs IP address in the Location field, then\nclick Get Certificate ;\nenter the printerâs IP address in the Location field, then\nclick Get Certificate ;\n- tick the Permanently store this exception checkbox and confirm;\ntick the Permanently store this exception checkbox and confirm;\n- restart your browser.\nrestart your browser.\nOn Mac OS, you can secure the connection for all browsers by following these steps:\n- open Safari and navigate to your printerâs IP address. Doing so leads to a warning page;\nopen Safari and navigate to your printerâs IP address. Doing so leads to a warning page;\n- on the warning page, go to Show Details ⣠visit this website ⣠Visit\nWebsite , validate;\non the warning page, go to Show Details ⣠visit this website ⣠Visit\nWebsite , validate;\n- reboot the printer so you can use it with any other browser.\nreboot the printer so you can use it with any other browser.\nTo generate and export an SSL certificate and send it to IOS devices, open Google Chrome or Mozilla Firefox . Then,\nNavigate to the ePOSâ IP address (e.g., https://192.168.1.25 ) and force the\nconnection by clicking Advanced and Proceed to [IP address]\n(unsafe) .\n`https://192.168.1.25`\nWarning page on Google Chrome, Windows 10\nThen, sign in using your printer credentials to access the ePOS printer settings. To\nsign in, enter epson in the ID field and your printer serial number in the Password field.\n`epson`\nClick Certificate List in the Authentication section, and click create to generate a new Self-Signed Certificate . The Common\nName should be automatically filled out. If not, fill it in with the printer IP address\nnumber. Select the years the certificate will be valid in the Validity\nPeriod field, click Create , and Reset or manually restart the\nprinter.\nThe self-signed certificate is generated. Reload the page and click SSL/TLS in the Security section to ensure Selfsigned Certificate is correctly\nselected in the Server Certificate section.\nThe export process is heavily dependent on the OS and the\nbrowser. Start by accessing your ePOS printer settings on your web browser by navigating\nto its IP address (e.g., https://192.168.1.25 ). Then, force the connection as\nexplained in the Generate a self-signed certificate tab .\n`https://192.168.1.25`\nIf you are using Google Chrome ,\n- click Not secure next to the search bar, and Certificate is\nnot valid ;\nclick Not secure next to the search bar, and Certificate is\nnot valid ;\n- go to the Details tab and click Export ;\ngo to the Details tab and click Export ;\n- add .crt at the end of the file name to ensure it has the correct extension;\nadd .crt at the end of the file name to ensure it has the correct extension;\n`.crt`\n- select Base64-encoded ASCII, single certificate , at the bottom of the\npop-up window;\nselect Base64-encoded ASCII, single certificate , at the bottom of the\npop-up window;\n- save, and the certificate is exported.\nsave, and the certificate is exported.\nMake sure that the certificate ends with the extension .crt . Otherwise, some\nbrowsers might not find the file during the import process.\n`.crt`\nIf you are using Mozilla Firefox ,\n- click the lock-shaped icon on the left of the address bar;\nclick the lock-shaped icon on the left of the address bar;\n- go to Connection not secure ⣠More information ⣠Security tab\n⣠View certificate ;\ngo to Connection not secure ⣠More information ⣠Security tab\n⣠View certificate ;\n- scroll down to the Miscellaneous section;\nscroll down to the Miscellaneous section;\n- click PEM (cert) in the Download section;\nclick PEM (cert) in the Download section;\n- save, and the certificate is exported.\nsave, and the certificate is exported.\nTo import an SSL certificate into an Android device, first create and export it from a\ncomputer. Next, transfer the .crt file to the device using email, Bluetooth, or USB. Once\nthe file is on the device,\n`.crt`\n- open the settings and search for certificate ;\nopen the settings and search for certificate ;\n`certificate`\n- click Certificate AC (Install from device storage);\nclick Certificate AC (Install from device storage);\n- select the certificate file to install it on the device.\nselect the certificate file to install it on the device.\nThe specific steps for installing a certificate may vary depending on the version of\nAndroid and the device manufacturer.\nTo import an SSL certificate into an iOS device, first create and export it from a computer.\nThen, transfer the .crt file to the device using email, Bluetooth, or any file-sharing\nservice.\n`.crt`\nDownloading this file triggers a warning pop-up window. Click Allow to download\nthe configuration profile, and close the second pop-up window. Then,\n- go to the Settings App on the iOS device;\ngo to the Settings App on the iOS device;\n- click Profile Downloaded under the userâs details box;\nclick Profile Downloaded under the userâs details box;\n- locate the downloaded .crt file and select it;\nlocate the downloaded .crt file and select it;\n`.crt`\n- click Install on the top right of the screen;\nclick Install on the top right of the screen;\n- if a passcode is set on the device, enter the passcode;\nif a passcode is set on the device, enter the passcode;\n- click Install on the top right of the certificate warning screen and the pop-up\nwindow;\nclick Install on the top right of the certificate warning screen and the pop-up\nwindow;\n- click Done .\nThe certificate is installed, but it still needs to be authenticated. To do so,\n- go to Settings ⣠General ⣠About > Certificate Trust Settings ;\ngo to Settings ⣠General ⣠About > Certificate Trust Settings ;\n- enable the installed certificate using the slide button ;\nenable the installed certificate using the slide button ;\n- click Continue on the pop-up window.\nclick Continue on the pop-up window.\n- If you need to export SSL certificates from an operating system or web browser that has not\nbeen mentioned, search for export SSL certificate + the name of your browser or operating system in your preferred search engine.\nIf you need to export SSL certificates from an operating system or web browser that has not\nbeen mentioned, search for export SSL certificate + the name of your browser or operating system in your preferred search engine.\n`exportSSLcertificate`\n`thenameofyourbrowseroroperatingsystem`\n- Similarly, to import SSL certificates from an unmentioned OS or browser, search for import SSL certificate root authority + the name of your browser or operating system in your preferred\nsearch engine.\nSimilarly, to import SSL certificates from an unmentioned OS or browser, search for import SSL certificate root authority + the name of your browser or operating system in your preferred\nsearch engine.\n`importSSLcertificaterootauthority`\n`thenameofyourbrowseroroperatingsystem`\n\n## Check if the certificate was imported correctly\n\nTo confirm your printerâs connection is secure, connect to its IP address using HTTPS. For example,\nnavigate to https://192.168.1.25 in your browser. If the SSL certificate has been applied\ncorrectly, you should no longer see a warning page, and the address bar should display a padlock\nicon, indicating that the connection is secure.\n`https://192.168.1.25`", "headings": ["Generate, export, and import self-signed certificates", "Check if the certificate was imported correctly"], "doc_id": "b1e72b21479de96d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/configuration/https.html", "title": "Secure connection (HTTPS)", "module": "pos", "section": "Secure connection (HTTPS)", "text": "# Secure connection (HTTPS)\n\nIf Direct Devices is enabled in a Point of Sale settings (for example, if you use an ePos\nprinter ), HTTP becomes the default protocol.\n\n## Force your Point of Sale to use a secure connection (HTTPS)\n\nAdd a new key in the System Parameters to force your Point of Sale to use a secure\nconnection with the HTTPS protocol.\nTo do so, activate the developer mode , go to Settings â£\nTechnical ⣠Parameters ⣠System Parameters , then create a new parameter, add the following\nvalues and click on Save .\n- Key : point_of_sale.enforce_https\nKey : point_of_sale.enforce_https\n`point_of_sale.enforce_https`\n- Value : True\n`True`\n- Self-signed certificate for ePOS printers\nSelf-signed certificate for ePOS printers", "headings": ["Force your Point of Sale to use a secure connection (HTTPS)"], "doc_id": "d17245daaf7a66cc"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/configuration/pos_iot.html", "title": "IoT system connection", "module": "pos", "section": "IoT system connection", "text": "# IoT system connection\n\nTo connect the POS with an IoT system :\n- Make sure both the Point of Sale and Internet of Things (IoT) apps are installed on your\ndatabase.\nMake sure both the Point of Sale and Internet of Things (IoT) apps are installed on your\ndatabase.\n- Set up the IoT box or Windows virtual IoT .\nSet up the IoT box or Windows virtual IoT .\n- Connect the peripheral devices to the IoT system: Device Instructions Printer Connect a supported receipt printer to a USB port or\nto the network, and power it on. Refer to Order printing . Cash drawer The cash drawer should be connected to the printer with an RJ25 cable. Barcode scanner The barcode scanner must end barcodes with an ENTER character (keycode 28) in order for\nthe barcode scanner to be compatible. This is most likely the barcode scannerâs default\nconfiguration. Scale Connect the scale and power it on. Refer to Connect a scale . Customer display Connect a screen to the IoT box to display the PoS order. Refer to Connect a screen . Payment terminal The connection process depends on the terminal. Refer to the payment terminals\ndocumentation .\nConnect the peripheral devices to the IoT system:\nConnect a supported receipt printer to a USB port or\nto the network, and power it on. Refer to Order printing .\nThe cash drawer should be connected to the printer with an RJ25 cable.\nThe barcode scanner must end barcodes with an ENTER character (keycode 28) in order for\nthe barcode scanner to be compatible. This is most likely the barcode scannerâs default\nconfiguration.\n`ENTER`\nConnect the scale and power it on. Refer to Connect a scale .\nConnect a screen to the IoT box to display the PoS order. Refer to Connect a screen .\nThe connection process depends on the terminal. Refer to the payment terminals\ndocumentation .\n- Connect the IoT system to your Odoo database .\nConnect the IoT system to your Odoo database .\n- Access the POS settings and select your POS, or click the\nvertical ellipsis button ( â® ) on a POS card and click Edit . Scroll down\nto the Connected Devices section, enable IoT Box , then select the devices\nto be used for the POS. Click Save .\nAccess the POS settings and select your POS, or click the\nvertical ellipsis button ( â® ) on a POS card and click Edit . Scroll down\nto the Connected Devices section, enable IoT Box , then select the devices\nto be used for the POS. Click Save .\nClick IoT Devices to access the list of Devices for\nyour POS and view their connection status. Click a card to access the deviceâs form.\n- List of supported hardware .\nList of supported hardware .\n- IoT documentation\n\n## Setup example", "headings": ["Setup example"], "doc_id": "ea9f26181a7ca0fc"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/employee_login.html", "title": "Multi-employee management", "module": "pos", "section": "Multi-employee management", "text": "# Multi-employee management\n\nOdoo Point of Sale (POS) offers a Log in with Employees feature, allowing multiple users to log into a POS session . Activating this feature enables the\nfollowing actions:\n- Select specific users who can log into the POS .\nSelect specific users who can log into the POS .\n- Assign basic or advanced permissions to these users.\nAssign basic or advanced permissions to these users.\n- Track the employees involved in each order for enhanced analytics .\nTrack the employees involved in each order for enhanced analytics .\n\n## Configuration\n\nAccess the multi-employee setting from the PoS Interface section of the POS\nsettings . Then,\n- Activate the Log in with Employees feature.\nActivate the Log in with Employees feature.\n- Add the employees with basic POS functionality access in the Basic rights field.\nAdd the employees with basic POS functionality access in the Basic rights field.\n- Add the employees with extended POS functionalities in the Advanced rights field.\nAdd the employees with extended POS functionalities in the Advanced rights field.\n- Leaving the Basic rights field empty allows all employees to log in.\nLeaving the Basic rights field empty allows all employees to log in.\n- Leaving the Advanced rights field empty grants extended rights to Odoo users only.\nLeaving the Advanced rights field empty grants extended rights to Odoo users only.\nClick the ( vertical ellipsis ) button on the top right corner of\na POS card and Edit to access the setting from the main POS dashboard.\nEmployees with basic rights can perform the following actions within the POS:\n- Open a POS session .\n- Perform cash-in and cash-out operations .\nPerform cash-in and cash-out operations .\n- Lock the current POS session.\nLock the current POS session.\n- Process standard sales transactions .\nProcess standard sales transactions .\n- Process refunds .\n- Access and handle sales orders .\nAccess and handle sales orders .\n- Set customers .\n- Access past and current order history.\nAccess past and current order history.\nPricing and discounts:\n- Manually select another pricelist .\nManually select another pricelist .\n- Enter promotional codes.\nEnter promotional codes.\n- Manually apply discounts .\nManually apply discounts .\n- Manually change a productâs price .\nManually change a productâs price .\n- Switch between fiscal positions .\nSwitch between fiscal positions .\nIn addition to the basic rights, employees with advanced rights can also:\n- Access the Odoo backend interface.\nAccess the Odoo backend interface.\n- Create products.\n- Close the current POS session .\nClose the current POS session .\nAn employee with advanced POS rights who is not a database user cannot access the backend.\n\n## Usage guidelines\n\n### Logging in\n\nOnce the Log in with Employees feature is enabled, employees must log in to open a POS\nsession and access the POS interface. They can scan their employee badge , click the icon ( users ) to select their\nname from the list of authorized users, or by entering their PIN code in the Enter your PIN field.\nTo switch between users during an active session , click on the currently\nlogged-in employeeâs name at the top right of the POS screen and select the user to switch to.\nIn the absence of a scanner, click the icon ( barcode ) to scan\nbarcodes using the webcam.\n\n### Logging in with badges\n\nEmployees can log in using their badge. To configure badge-based login, assign a unique badge ID to\nthe employeeâs profile in the Employees module:\n- Navigate to the Employees module.\nNavigate to the Employees module.\n- Open the form view of the specific employee.\nOpen the form view of the specific employee.\n- Go to the Settings tab.\nGo to the Settings tab.\n- The Attendance/Point of Sale/Manufacturing category offers two options: Manually enter any badge ID in the Badge ID field. Click Generate to create a unique badge ID automatically.\nThe Attendance/Point of Sale/Manufacturing category offers two options:\n- Manually enter any badge ID in the Badge ID field.\nManually enter any badge ID in the Badge ID field.\n- Click Generate to create a unique badge ID automatically.\nClick Generate to create a unique badge ID automatically.\n- Click Print Badge to generate a barcode representation of the assigned badge ID.\nClick Print Badge to generate a barcode representation of the assigned badge ID.\nTo switch users within an open POS session using a badge, you must first lock the session. To do so,\nclick the icon ( lock ) to return to the login screen. Then, the new\nemployee can scan their badge to log in.\n\n### Adding a PIN Code\n\nFor enhanced security, employees may be forced to enter a PIN code each time they log into a POS\nsession. To set up a PIN code for an employee:\n- Navigate to the Employees module.\nNavigate to the Employees module.\n- Open the form view of the relevant employee.\nOpen the form view of the relevant employee.\n- Go to the Settings tab.\nGo to the Settings tab.\n- Enter a desired numerical code in the PIN Code field of the Attendance/Point of Sale/Manufacturing category.\nEnter a desired numerical code in the PIN Code field of the Attendance/Point of Sale/Manufacturing category.\nThe PIN code must consist of a sequence of digits only.", "headings": ["Configuration", "Usage guidelines", "Logging in", "Logging in with badges", "Adding a PIN Code"], "doc_id": "94bf4b1ad6a94376"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/online_food_delivery.html", "title": "Online food delivery", "module": "pos", "section": "Online food delivery", "text": "# Online food delivery\n\nUrbanPiper is an order management system that integrates with multiple food delivery platforms.\nIt consolidates orders from all connected platforms into a single interface, simplifying the\ndelivery process.\n- Careem\n- ChowNow\n- Deliveroo\n- DoorDash\n- EatEasy\n- Grubhub\n- HungryPanda\n- HungerStation\n- Just Eat\n- Mrsool\n- NoonFood\n- Postmates\n- Rafeeq\n- SkipTheDishes\n- Swiggy\n- Talabat\n- UberEats\n- Zomato\n\n## Configuration\n\n### Prerequisites\n\nTo use the UrbanPiper integration in a live production environment, ensure the following\nrequirements are satisfied:\n- UrbanPiper subscription: A valid UrbanPiper subscription is mandatory. Note For any concerns or queries regarding your UrbanPiper subscription, please reach out to the\naccount manager linked to your Odoo database.\nUrbanPiper subscription: A valid UrbanPiper subscription is mandatory.\nFor any concerns or queries regarding your UrbanPiper subscription, please reach out to the\naccount manager linked to your Odoo database.\n- Odoo requirements: Odoo subscription: An active Odoo Enterprise subscription is required. Odoo Community does\nnot support this integration. Odoo version: Odoo Enterprise version 18.0 or above. Odoo platform: All Odoo platforms are supported, including Odoo Online, Odoo.sh, and\nOn-Premise installations.\n- Odoo subscription: An active Odoo Enterprise subscription is required. Odoo Community does\nnot support this integration.\nOdoo subscription: An active Odoo Enterprise subscription is required. Odoo Community does\nnot support this integration.\n- Odoo version: Odoo Enterprise version 18.0 or above.\nOdoo version: Odoo Enterprise version 18.0 or above.\n- Odoo platform: All Odoo platforms are supported, including Odoo Online, Odoo.sh, and\nOn-Premise installations.\nOdoo platform: All Odoo platforms are supported, including Odoo Online, Odoo.sh, and\nOn-Premise installations.\n- Delivery platform reseller account: A registered reseller account is required with each\ndelivery platform to be integrated (e.g., Uber Eats, DoorDash, Careem, Deliveroo, Zomato).\nDelivery platform reseller account: A registered reseller account is required with each\ndelivery platform to be integrated (e.g., Uber Eats, DoorDash, Careem, Deliveroo, Zomato).\n\n### UrbanPiper credentials\n\n- Get your Atlas credentials: Go to the POS settings . Scroll down to the Food Delivery Connector section. Click Fill this form to get Username & Api key and fill out the survey.\nGet your Atlas credentials:\n- Go to the POS settings .\nGo to the POS settings .\n- Scroll down to the Food Delivery Connector section.\nScroll down to the Food Delivery Connector section.\n- Click Fill this form to get Username & Api key and fill out the survey.\nClick Fill this form to get Username & Api key and fill out the survey.\n- Go to your Atlas account and retrieve your API key and username\nby navigating to Settings ⣠API Access .\nGo to your Atlas account and retrieve your API key and username\nby navigating to Settings ⣠API Access .\n\n### Point of Sale\n\n- Enable the Urban Piper setting: Go to the POS settings . Scroll down to the Food Delivery Connector section. Check the Urban Piper setting.\nEnable the Urban Piper setting:\n- Go to the POS settings .\nGo to the POS settings .\n- Scroll down to the Food Delivery Connector section.\nScroll down to the Food Delivery Connector section.\n- Check the Urban Piper setting.\nCheck the Urban Piper setting.\n- Set up UrbanPiper: Fill in the Username and Api Key fields with your UrbanPiper\ncredentials . Select the desired delivery providers in the Food Delivery Platforms field under\nthe Urban Piper Location section (i.e., Zomato, Uber Eats).\n- Fill in the Username and Api Key fields with your UrbanPiper\ncredentials .\nFill in the Username and Api Key fields with your UrbanPiper\ncredentials .\n- Select the desired delivery providers in the Food Delivery Platforms field under\nthe Urban Piper Location section (i.e., Zomato, Uber Eats).\nSelect the desired delivery providers in the Food Delivery Platforms field under\nthe Urban Piper Location section (i.e., Zomato, Uber Eats).\n- Save the settings.\n- Click the + Create Store button. Doing so creates a new location on the UrbanPiper\nAtlas platform.\nClick the + Create Store button. Doing so creates a new location on the UrbanPiper\nAtlas platform.\n- The Pricelist and Fiscal Position fields are automatically selected\nafter saving.\nThe Pricelist and Fiscal Position fields are automatically selected\nafter saving.\n- A successful store creation triggers a notification.\nA successful store creation triggers a notification.\n- The store creation process may take 2â3 minutes to reflect changes on the UrbanPiper Atlas\nplatform.\nThe store creation process may take 2â3 minutes to reflect changes on the UrbanPiper Atlas\nplatform.\n- The store is automatically named after your point of sale name.\nThe store is automatically named after your point of sale name.\n\n### Products\n\nTo make products available individually,\n- Go to Point of Sale ⣠Products ⣠Products .\nGo to Point of Sale ⣠Products ⣠Products .\n- Select any product to open its product form.\nSelect any product to open its product form.\n- Go to the Point of Sale tab.\nGo to the Point of Sale tab.\n- Complete the Urban Piper section: Fill in the Available on Food Delivery with the desired POS. Optionally, set up the Meal Type field and enable the Is Recommended and Is Alcoholic buttons.\nComplete the Urban Piper section:\n- Fill in the Available on Food Delivery with the desired POS.\nFill in the Available on Food Delivery with the desired POS.\n- Optionally, set up the Meal Type field and enable the Is Recommended and Is Alcoholic buttons.\nOptionally, set up the Meal Type field and enable the Is Recommended and Is Alcoholic buttons.\nTo make multiple products available for food delivery at once,\n- Go to Point of Sale ⣠Products ⣠Products .\nGo to Point of Sale ⣠Products ⣠Products .\n- Click the list icon ( ) to switch to the list view.\nClick the list icon ( ) to switch to the list view.\n- Select the products.\n- Enter the desired POS in the Available on Food Delivery column.\nEnter the desired POS in the Available on Food Delivery column.\n- Currently, UrbanPiper does not support combo products.\nCurrently, UrbanPiper does not support combo products.\n- As a workaround, create a product and define combo choices as Attributes & Variants .\nAs a workaround, create a product and define combo choices as Attributes & Variants .\n\n### Synchronization\n\nTo make products available on food delivery platforms, synchronize with your UrbanPiper account:\n- Go to the POS settings .\nGo to the POS settings .\n- Scroll down the Food Delivery Connector section.\nScroll down the Food Delivery Connector section.\n- Click the Sync Menu button. The Last Sync on timestamp below the Create Store and Sync\nMenu buttons updates.\nClick the Sync Menu button.\n- The Last Sync on timestamp below the Create Store and Sync\nMenu buttons updates.\nThe Last Sync on timestamp below the Create Store and Sync\nMenu buttons updates.\n- A successful synchronization triggers a notification.\nA successful synchronization triggers a notification.\n- The synchronization process may take 2â3 minutes to reflect changes on the UrbanPiper Atlas\nplatform.\nThe synchronization process may take 2â3 minutes to reflect changes on the UrbanPiper Atlas\nplatform.\n\n### Go live\n\n- Go to the Locations tab of your Atlas account.\nGo to the Locations tab of your Atlas account.\n- Select the location to activate, then click Request to go Live .\nSelect the location to activate, then click Request to go Live .\n- In the popup window: Select the platform(s) to activate and click Next . Enter the Platform ID and Platform URL in the corresponding fields to\nestablish the connection between the platform and UrbanPiper. Click the Request to Go Live button. Note To find the locationâs Platform ID and Platform URL , Click the location to open its setup form. The locationâs parameters are available in the HUB tab.\n- Select the platform(s) to activate and click Next .\nSelect the platform(s) to activate and click Next .\n- Enter the Platform ID and Platform URL in the corresponding fields to\nestablish the connection between the platform and UrbanPiper.\nEnter the Platform ID and Platform URL in the corresponding fields to\nestablish the connection between the platform and UrbanPiper.\n- Click the Request to Go Live button.\nClick the Request to Go Live button.\nTo find the locationâs Platform ID and Platform URL ,\n- Click the location to open its setup form.\nClick the location to open its setup form.\n- The locationâs parameters are available in the HUB tab.\nThe locationâs parameters are available in the HUB tab.\n- Verify that your location is live: Go to the Locations tab of your Atlas account. Select any provider in the Assoc. platform(s) column to review the status of that\nplatform for this location.\nVerify that your location is live:\n- Go to the Locations tab of your Atlas account.\nGo to the Locations tab of your Atlas account.\n- Select any provider in the Assoc. platform(s) column to review the status of that\nplatform for this location.\nSelect any provider in the Assoc. platform(s) column to review the status of that\nplatform for this location.\n\n## Order flow\n\nAn order placed via the configured delivery platform triggers a notification. To manage these\norders, open the ordersâ list view by:\n- Clicking Review Orders on the notification popup.\nClicking Review Orders on the notification popup.\n- Clicking the bag-shaped icon for online orders and New . Note Clicking this icon displays the number of orders at each stage: New , Ongoing , and Done . The New button indicates newly placed orders, Ongoing is for\naccepted orders, and Done is for orders ready to be delivered.\nClicking the bag-shaped icon for online orders and New .\n- Clicking this icon displays the number of orders at each stage: New , Ongoing , and Done .\nClicking this icon displays the number of orders at each stage: New , Ongoing , and Done .\n- The New button indicates newly placed orders, Ongoing is for\naccepted orders, and Done is for orders ready to be delivered.\nThe New button indicates newly placed orders, Ongoing is for\naccepted orders, and Done is for orders ready to be delivered.\n- Select the desired order.\nSelect the desired order.\n- Click the Accept button.\nClick the Accept button.\n- When an order is accepted, its Order Status switches from Placed to Acknowledged and is automatically displayed on the preparation display.\nWhen an order is accepted, its Order Status switches from Placed to Acknowledged and is automatically displayed on the preparation display.\nWhen the order is ready,\n- Open the ordersâ list view.\nOpen the ordersâ list view.\n- Select the order.\n- Click the Mark as ready button. Its Order Status switches from Acknowledged to Food Ready , and its Status switches from Ongoing to Paid .\nClick the Mark as ready button. Its Order Status switches from Acknowledged to Food Ready , and its Status switches from Ongoing to Paid .\n\n### Order rejection\n\nSometimes, the shop or restaurant may want to reject an order. In this case, open the ordersâ\nlist view,\n- Select the desired order.\nSelect the desired order.\n- Click the Reject button.\nClick the Reject button.\n- Select one of the reasons from the popup window.\nSelect one of the reasons from the popup window.\nSwiggy orders cannot be directly rejected. Attempting to reject one prompts Swiggy customer\nsupport to contact the restaurant. Similarly, Deliveroo , JustEat , and HungerStation do not allow order rejection. Always follow the respective providerâs guidelines for handling\nsuch cases.", "headings": ["Configuration", "Prerequisites", "UrbanPiper credentials", "Point of Sale", "Products", "Synchronization", "Go live", "Order flow", "Order rejection"], "doc_id": "d5012ca0c67f048e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/payment_methods.html", "title": "Payment methods", "module": "pos", "section": "Payment methods", "text": "# Payment methods\n\nTo add a payment method, you first need to create it. Go to Point of Sale â£\nConfiguration ⣠Payment Methods ⣠New , and set a name. Check Identify Customer to\nallow this payment method exclusively for registered customers.\nThen, select the Journal . Choose Cash to use this payment method for cash\npayments, or Bank to use it for card payments.\nSelecting a bank journal automatically adds the Use a Payment Terminal field in which you can add your payment terminalâs information .\nOnce the payment method is created, you can select it in your POS settings. To do so, go to the POSâ settings , click Edit , and add the payment method\nunder the Payments section.", "headings": [], "doc_id": "4b4af2600b8942f1"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/payment_methods/qr_code_payment.html", "title": "QR code payments", "module": "pos", "section": "QR code payments", "text": "# QR code payments\n\nQR code payments allow users to generate a code that customers can scan with their mobile banking\napp to initiate a bank transfer or pay instantly.\n\n## Configuration\n\n### Activate and set up QR code payments\n\nGo to Accounting ⣠Configuration ⣠Settings , and\n- Activate or upgrade your countryâs fiscal localization package under the Fiscal\nLocalization section to access all country-specific accounting features.\nActivate or upgrade your countryâs fiscal localization package under the Fiscal\nLocalization section to access all country-specific accounting features.\n- Activate QR codes under the Customer Payments section.\nActivate QR codes under the Customer Payments section.\nThen, as the QR code type differs depending on your country, follow the corresponding documentation\npage from the following table to set them up.\nBrazilian - Accounting\n`l10n_br`\nThe base module to manage the accounting chart and localization for Brazil.\nHong Kong - Accounting\n`l10n_hk`\nThe base module to manage the accounting chart and localization for Hong Kong.\nIndonesian - Accounting\n`l10n_id`\nThe base module to manage the accounting chart and localization for Indonesia.\nSingapore - Accounting\n`l10n_sg`\nThe base module to manage the accounting chart and localization for Singapore.\nSwitzerland - Accounting\n`l10n_ch`\nThe base module to manage the accounting chart and localization for Switzerland.\nThailand - Accounting\n`l10n_th`\nThe base module to manage the accounting chart and localization for Thailand.\n`l10n_vn`\nThe base module to manage the accounting chart and localization for Vietnam.\n`account_qr_code_sepa`\nThis module adds support for SEPA Credit Transfer QR-code generation.\n\n### Create the payment method\n\n- Open the Point of Sale application.\nOpen the Point of Sale application.\n- Go to Configuration ⣠Payment Methods and create a payment method.\nGo to Configuration ⣠Payment Methods and create a payment method.\n- Set a bank-type journal.\nSet a bank-type journal.\n- Select Bank App (QR Code) under the Integration section.\nSelect Bank App (QR Code) under the Integration section.\n- Select the QR Code Format from the dropdown menu. Select SEPA Credit Transfer QR if you are part of the Single Euro Payments Area\n(SEPA). Select EMV Merchant-Presented QR-code for other QR code types.\nSelect the QR Code Format from the dropdown menu.\n- Select SEPA Credit Transfer QR if you are part of the Single Euro Payments Area\n(SEPA).\nSelect SEPA Credit Transfer QR if you are part of the Single Euro Payments Area\n(SEPA).\n- Select EMV Merchant-Presented QR-code for other QR code types.\nSelect EMV Merchant-Presented QR-code for other QR code types.\nAt least one bank account must be defined in the journal to allow QR code payments to be\nregistered with bank apps.\nOnce the payment method is created, go to the POSâ settings and add\nthe payment method to your POS under the Payment section.\n\n## Register payments using QR codes\n\nWhen processing a payment, select the payment method for QR code payments. A QR code is generated\nand displayed on the screen for the customer to scan and pay with their mobile banking app.\nHit Confirm Payment to validate the transaction.\nOdoo does not check the bank payment. It is recommended that users verify payments for\nvalidity before confirming them on the POS register.", "headings": ["Configuration", "Activate and set up QR code payments", "Create the payment method", "Register payments using QR codes"], "doc_id": "75009598a2802d6f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/payment_methods/terminals.html", "title": "Payment terminals", "module": "pos", "section": "Payment terminals", "text": "# Payment terminals\n\nConnect and integrate a payment terminal to a POS system to accept\nmultiple payment options, including credit and debit cards.\n\n## Configuration\n\nTo activate a payment terminal and allow processing payments with it, follow these steps:\n- Go to Point of Sale ⣠Configuration ⣠Settings and scroll down to the Payment Terminals section.\nGo to Point of Sale ⣠Configuration ⣠Settings and scroll down to the Payment Terminals section.\n- Enable the relevant terminal.\nEnable the relevant terminal.\n- Click Save .\n- Go to Point of Sale ⣠Configuration ⣠Payment Methods and create the\ncorresponding payment method .\nGo to Point of Sale ⣠Configuration ⣠Payment Methods and create the\ncorresponding payment method .\n- Set the Integration field to Terminal , select the relevant terminal, and\ncomplete the terminal-specific configuration: Adyen Ingenico Mercado Pago Pine Labs Razorpay SIX Stripe Tyro Viva.com Worldline\nSet the Integration field to Terminal , select the relevant terminal, and\ncomplete the terminal-specific configuration:\n- Ingenico\n- Mercado Pago\n- Pine Labs\n- Razorpay\n- Stripe\n- Viva.com\n- Worldline\n- Go to Point of Sale ⣠Configuration ⣠Settings and add the payment method\nto the Payment Methods list to make it available in the POS interface.\nGo to Point of Sale ⣠Configuration ⣠Settings and add the payment method\nto the Payment Methods list to make it available in the POS interface.\n\n## Terminal use\n\nTo process a payment with a configured terminal for an order, select the terminalâs payment method on the Payment screen, then follow the instructions on the\nterminal device.\nOnce the transaction is successful, the payment is automatically validated in Point of Sale.\n- Connection issues between Odoo and the payment terminal result in transaction cancellation.\nConnection issues between Odoo and the payment terminal result in transaction cancellation.\n- To cancel the payment request, click Cancel .\nTo cancel the payment request, click Cancel .", "headings": ["Configuration", "Terminal use"], "doc_id": "eb19a7de74a88aea"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/payment_methods/terminals/adyen.html", "title": "Adyen", "module": "pos", "section": "Adyen", "text": "# Adyen\n\nConnecting an Adyen payment terminal allows you to offer a fluid payment flow to your customers\nand ease the work of your cashiers.\n- Adyen payment terminals do not require an IoT Box .\nAdyen payment terminals do not require an IoT Box .\n- Adyen terminals can be used in many countries, but not worldwide. Check the List of countries\nsupported by Adyen .\nAdyen terminals can be used in many countries, but not worldwide. Check the List of countries\nsupported by Adyen .\n- Adyen works only with businesses processing more than $10 million annually or invoicing a\nminimum of 1,000 transactions per month .\nAdyen works only with businesses processing more than $10 million annually or invoicing a\nminimum of 1,000 transactions per month .\n- List of payment methods supported by Adyen\nList of payment methods supported by Adyen\n- List of Adyen terminals\nList of Adyen terminals\n\n## Configuration\n\nStart by creating your Adyen account on Adyenâs website . Then, board\nyour terminal following the steps described on your terminalâs screen.\nAdyen Docs - Payment terminal quickstart guides\n\n### Generate an Adyen API key\n\nThe Adyen API key is used to authenticate requests from your Adyen terminal. To generate an API\nkey, go to your Adyen account ⣠Developers ⣠API credentials , and create new credentials or select existing ones. Click Generate an API key and save the key\nto paste it into the Odoo Adyen API key field at the payment method creation .\n- Adyen Docs - API credentials .\nAdyen Docs - API credentials .\n\n### Locate the Adyen terminal identifier\n\nThe Adyen Terminal Identifier is the terminalâs serial number, which is used to identify the\nhardware.\nTo find this number, go to your Adyen account ⣠Point of Sale ⣠Terminals ,\nselect the terminal to link with, and save its serial number to paste it into the Odoo Adyen Terminal Identifier field at the payment method creation .\n\n### Set the Event URLs\n\nFor Odoo to know when a payment is made, you must configure the terminal Event URLs . To do so,\n- Log in to Adyenâs website ;\nLog in to Adyenâs website ;\n- Go to Adyenâs dashboard ⣠Point of Sale ⣠Terminals and select the connected\nterminal;\nGo to Adyenâs dashboard ⣠Point of Sale ⣠Terminals and select the connected\nterminal;\n- From the terminal settings, click Integrations ;\nFrom the terminal settings, click Integrations ;\n- Set the Switch to decrypted mode to edit this setting field as Decrypted ;\nSet the Switch to decrypted mode to edit this setting field as Decrypted ;\n- Click the pencil icon button and enter your server address, followed by /pos_adyen/notification in the Event URLs field;\nClick the pencil icon button and enter your server address, followed by /pos_adyen/notification in the Event URLs field;\n`/pos_adyen/notification`\n- Click Save at the bottom of the screen to save changes.\nClick Save at the bottom of the screen to save changes.\n\n### Configure the payment method\n\nEnable the payment terminal in the application settings and create the related payment method . Set the journal type as Bank and select Adyen in the Use a Payment Terminal field.\nFinally, fill in the mandatory fields with your Adyen API key , Adyen\nTerminal Identifier , and Adyen Merchant Account .\nOnce the payment method is created, you can select it in your POS settings. To do so, go to the POSâ settings , click Edit , and add the payment method\nunder the Payments section.\n\n## Tips\n\nOdoo Point of Sale allows tipping with an Adyen terminal. To configure this option, go to the POS settings , enable the Tips and the Add tip through payment terminal (Adyen) settings, then click Save .\nTo process tips with an Adyen terminal, follow these steps:\n- Go to the relevant POS and process an order .\nGo to the relevant POS and process an order .\n- Click Payment and select the relevant payment\nmethod . The Adyen terminal displays the transaction and\nsuggests adding tips.\nClick Payment and select the relevant payment\nmethod . The Adyen terminal displays the transaction and\nsuggests adding tips.\n- Add a tip amount on the terminal and validate.\nAdd a tip amount on the terminal and validate.\n- In Odoo POS, click Tip , enter the tip amount, and click Ok .\nIn Odoo POS, click Tip , enter the tip amount, and click Ok .\n- Click Close Tab to validate the payment and the tip.\nClick Close Tab to validate the payment and the tip.", "headings": ["Configuration", "Generate an Adyen API key", "Locate the Adyen terminal identifier", "Set the Event URLs", "Configure the payment method", "Tips"], "doc_id": "d48085370ad20072"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/payment_methods/terminals/ingenico.html", "title": "Ingenico", "module": "pos", "section": "Ingenico", "text": "# Ingenico\n\nConnecting a payment terminal allows you to offer a fluid payment flow to your customers and ease\nthe work of your cashiers.\n- Ingenico payment terminals require an IoT system .\nIngenico payment terminals require an IoT system .\n- Ingenico is currently only available in Belgium, the Netherlands and Luxembourg.\nIngenico is currently only available in Belgium, the Netherlands and Luxembourg.\n- Odoo works with the Ingenico Lane/, Desk/, and Move/ payment terminals as they support the TLV\ncommunication protocol through TCP/IP.\nOdoo works with the Ingenico Lane/, Desk/, and Move/ payment terminals as they support the TLV\ncommunication protocol through TCP/IP.\n\n## Configuration\n\n### Connect an IoT system\n\nConnecting an Ingenico payment terminal to Odoo is a feature that requires an IoT system. For more\ninformation on how to connect an IoT system to your database, please refer to the IoT\ndocumentation .\n\n### Configure the Lane/Desk/Move 5000 terminals for Ingenico BENELUX\n\n- Press the function button ( F on Lane/5000, ⦿ on Desk/5000 and\nMove/5000).\nPress the function button ( F on Lane/5000, ⦿ on Desk/5000 and\nMove/5000).\n- Go to Kassa menu ⣠Settings Menu and enter the settings password (default: 2009 ).\nGo to Kassa menu ⣠Settings Menu and enter the settings password (default: 2009 ).\n`2009`\n- Select Change Connection and press OK on the next screen.\nSelect Change Connection and press OK on the next screen.\n- Select TCP/IP and IP-address .\nSelect TCP/IP and IP-address .\n- On the next screen, enter the IP address of your IoT system.\nOn the next screen, enter the IP address of your IoT system.\n- Enter 9000 as port number and press OK on the next screen.\nEnter 9000 as port number and press OK on the next screen.\n`9000`\nAt this point, the terminal restarts and should be displayed on the IoT systemâs form in Odoo.\n\n### Configure the payment method\n\nEnable the payment terminal in the application settings and create the related payment method . Set the journal type as Bank and select Ingenico in the Use a Payment Terminal field.\nThen, select your terminal device in the Payment Terminal Device field.\nOnce the payment method is created, you can select it in your POS settings. To do so, go to the POSâ settings , click Edit , and add the payment method\nunder the Payments section.", "headings": ["Configuration", "Connect an IoT system", "Configure the Lane/Desk/Move 5000 terminals for Ingenico BENELUX", "Configure the payment method"], "doc_id": "cb60b715e912eb67"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/payment_methods/terminals/mercado_pago.html", "title": "Mercado Pago", "module": "pos", "section": "Mercado Pago", "text": "# Mercado Pago\n\nConnecting a payment terminal allows you to offer a fluid payment flow to your customers and ease\nthe work of your cashiers.\n- Odoo is compatible with Point Smart 1 or Point Smart 2 payment terminals, which can be\npurchased on the Mercado Pago website in Argentina , Brazil , and Mexico .\nOdoo is compatible with Point Smart 1 or Point Smart 2 payment terminals, which can be\npurchased on the Mercado Pago website in Argentina , Brazil , and Mexico .\n- Mercado Pago payment terminals do not require an IoT Box to\noperate.\nMercado Pago payment terminals do not require an IoT Box to\noperate.\nMercado Pago online payments\n\n## Configuration\n\n- Create a Mercado Pago account .\nCreate a Mercado Pago account .\n- Associate your Point Smart terminal with a store and a cash drawer by\nfollowing Mercado Pagoâs documentation . Note All purchased terminals are automatically displayed on your Mercado dashboard.\nAssociate your Point Smart terminal with a store and a cash drawer by\nfollowing Mercado Pagoâs documentation .\nAll purchased terminals are automatically displayed on your Mercado dashboard.\n- Set your Point Smart terminal to the Point of Sale operation mode. Warning Odoo does not support the Standalone operation mode.\nSet your Point Smart terminal to the Point of Sale operation mode.\nOdoo does not support the Standalone operation mode.\n- Create a Point Smart application .\nCreate a Point Smart application .\n- Generate your credentials .\nGenerate your credentials .\n- Create and configure the related payment method .\nCreate and configure the related payment method .\n\n### Point Smart application\n\nCreate a new application from Mercado Pagoâs developer panel by following Mercado Pagoâs applications documentation , making sure you select In\nperson Payments .\n\n### Credentials\n\nOnce the Point Smart application is created, three credentials are required:\n- An access token that Odoo uses to call Mercado Pago.\nAn access token that Odoo uses to call Mercado Pago.\n- A webhook secret key that Odoo uses to authenticate notifications sent by Mercado Pago.\nA webhook secret key that Odoo uses to authenticate notifications sent by Mercado Pago.\n- The terminal serial number at the back of your Point Smart terminal.\nThe terminal serial number at the back of your Point Smart terminal.\nRetrieve the access token and webhook secret key by following Mercado Pagoâs credentials\ndocumentation .\nThen, copy and paste them into Odoo when creating the payment method.\nFor the webhooks configuration, add the URL of your Odoo database (e.g., https://mycompany.odoo.com ) followed by /pos_mercado_pago/notification (e.g., https://mycompany.odoo.com/pos_mercado_pago/notification ).\n`https://mycompany.odoo.com`\n`/pos_mercado_pago/notification`\n`https://mycompany.odoo.com/pos_mercado_pago/notification`\n\n### Payment method\n\n- Go to Point of Sale ⣠Configuration ⣠Settings and enable Mercado\nPago under the Payment Terminals section.\nGo to Point of Sale ⣠Configuration ⣠Settings and enable Mercado\nPago under the Payment Terminals section.\n- Create the related payment method by going to Point of Sale ⣠Configuration ⣠Payment Methods .\nCreate the related payment method by going to Point of Sale ⣠Configuration ⣠Payment Methods .\n- Set the journal type as Bank\nSet the journal type as Bank\n- Select Mercado Pago in the Use a Payment Terminal field.\nSelect Mercado Pago in the Use a Payment Terminal field.\n- Fill in the mandatory fields with the previously generated credentials : Fill in the Production user token field using the access token. Fill in the Production secret key field using the webhook secret key. Fill in the Terminal S/N field using the terminal serial number. You can find it at\nthe back of your terminal. Click the Force PDV button to activate the Point of Sale mode.\nFill in the mandatory fields with the previously generated credentials :\n- Fill in the Production user token field using the access token.\nFill in the Production user token field using the access token.\n- Fill in the Production secret key field using the webhook secret key.\nFill in the Production secret key field using the webhook secret key.\n- Fill in the Terminal S/N field using the terminal serial number. You can find it at\nthe back of your terminal.\nFill in the Terminal S/N field using the terminal serial number. You can find it at\nthe back of your terminal.\n- Click the Force PDV button to activate the Point of Sale mode.\nClick the Force PDV button to activate the Point of Sale mode.\nSelect the payment method by going to the POSâ settings and adding\nit to the payment method under the Payment Methods field of the Payment section.\nAny action made on the terminal should trigger a notification on the POS interface. Ensure the webhook secret key is correctly configured if you are not\nnotified.", "headings": ["Configuration", "Point Smart application", "Credentials", "Payment method"], "doc_id": "00882934ad5a01c3"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/payment_methods/terminals/pine_labs.html", "title": "Pine Labs", "module": "pos", "section": "Pine Labs", "text": "# Pine Labs\n\nPine Labs offers in-store payment solutions for\ncustomer transactions through several physical terminals .\n- The Odoo Pine Labs module is only available for Indian companies.\nThe Odoo Pine Labs module is only available for Indian companies.\n- Pine Labs terminals accept credit/debit cards (Visa, MasterCard, and RuPay) and UPI QR codes\nby swiping, scanning, or tapping.\nPine Labs terminals accept credit/debit cards (Visa, MasterCard, and RuPay) and UPI QR codes\nby swiping, scanning, or tapping.\n\n## Pine Labs credentials\n\nCreate a Pine Labs account and order at least one terminal . The system then sends an email with the\nfollowing credentials:\n- Merchant ID\n- Store ID\n- Client ID\n- Security Token\n\n## Odoo configuration\n\nTo enable Pine Labs in Odoo, first install the POS Pine Labs module to\nmake it visible in the list of payment terminals. Then, follow these steps to connect the Pine Labs\nterminal with Odoo Point of Sale:\n- Go to Point of Sale ⣠Configuration ⣠Settings , scroll down to the Payment Terminals section, enable the relevant payment terminal , and click Save .\nGo to Point of Sale ⣠Configuration ⣠Settings , scroll down to the Payment Terminals section, enable the relevant payment terminal , and click Save .\n- Go to Point of Sale ⣠Configuration ⣠Payment Methods and create a\npayment method .\nGo to Point of Sale ⣠Configuration ⣠Payment Methods and create a\npayment method .\n- Set the Journal field to Bank .\nSet the Journal field to Bank .\n- Set the Integration field to Terminal .\nSet the Integration field to Terminal .\n- Set the Integrate with field to Pine Labs .\nSet the Integrate with field to Pine Labs .\n- Paste the copied credentials in their corresponding fields.\nPaste the copied credentials in their corresponding fields.\n- Select the preferred payment mode in the Pine Labs Allowed Payment Modes field and\nsave.\nSelect the preferred payment mode in the Pine Labs Allowed Payment Modes field and\nsave.\n- Go to Point of Sale ⣠Configuration ⣠Settings and add the created payment\nmethod to the Payment Methods list to use it in a POS.\nGo to Point of Sale ⣠Configuration ⣠Settings and add the created payment\nmethod to the Payment Methods list to use it in a POS.\n- Click Save .\nEnable the Pine Labs Test Mode to test transaction processes with a device.", "headings": ["Pine Labs credentials", "Odoo configuration"], "doc_id": "e9f03e9aa777f9dc"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/payment_methods/terminals/razorpay.html", "title": "Razorpay", "module": "pos", "section": "Razorpay", "text": "# Razorpay\n\nConnecting a Razorpay payment terminal allows you to offer a fluid payment flow to your customers\nand ease the work of your cashiers.\nUse Razorpay as apayment provider.\n\n## Configuration\n\n### Locate your Razorpay credentials\n\nCreate a Razorpay account and set it up\non their website.\nYou need the following credentials to set up the payment method in Odoo:\n- API key\n- Razorpay username\n- Razorpay device serial number, which can be found underneath the device or on Razorpayâs\ndashboard .\nRazorpay device serial number, which can be found underneath the device or on Razorpayâs\ndashboard .\n\n### Configure the payment method\n\n- Activate the POS Razorpay module to enable the\npayment terminal.\nActivate the POS Razorpay module to enable the\npayment terminal.\n- Create the related payment method by going to Point of Sale ⣠Configuration ⣠Payment Methods . Set the Journal type as Bank . Select Razorpay in the Use a Payment Terminal field. Enter your username in the Razorpay Username field and your deviceâs serial number\nin the Razorpay Device Serial No field. Fill in the Razorpay API Key field with the Razorpay API key . Set the Razorpay Allowed Payment Modes according to your needs. Note You can enable the Razorpay Test Mode field while testing or keep it unchecked for\nproduction.\nCreate the related payment method by going to Point of Sale ⣠Configuration ⣠Payment Methods .\n- Set the Journal type as Bank .\nSet the Journal type as Bank .\n- Select Razorpay in the Use a Payment Terminal field.\nSelect Razorpay in the Use a Payment Terminal field.\n- Enter your username in the Razorpay Username field and your deviceâs serial number\nin the Razorpay Device Serial No field.\nEnter your username in the Razorpay Username field and your deviceâs serial number\nin the Razorpay Device Serial No field.\n- Fill in the Razorpay API Key field with the Razorpay API key .\nFill in the Razorpay API Key field with the Razorpay API key .\n- Set the Razorpay Allowed Payment Modes according to your needs.\nSet the Razorpay Allowed Payment Modes according to your needs.\nYou can enable the Razorpay Test Mode field while testing or keep it unchecked for\nproduction.\nOnce the payment method is created, you can enable it for your POS. To do so, go to the POSâ\nsettings and add the payment method under the Payment section.\nThe terminal must have at least a 10% battery level to use it.", "headings": ["Configuration", "Locate your Razorpay credentials", "Configure the payment method"], "doc_id": "44268c69c74da976"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/payment_methods/terminals/six.html", "title": "SIX", "module": "pos", "section": "SIX", "text": "# SIX\n\nConnecting a SIX payment terminal allows you to offer a fluid payment flow to your customers and\nease the work of your cashiers.\nAlthough Worldline has acquired SIX Payment Services and both entities utilize Yomani payment\nterminals, their firmware differs. Terminals supplied by Worldline are, therefore, incompatible\nwith this integration.\n\n## Configuration\n\n### Prerequisites\n\n- Install the POS IoT Six module: Activate the POS IoT Six module module to enable the payment terminal. Note This module replaces the POS Six module.\nInstall the POS IoT Six module: Activate the POS IoT Six module module to enable the payment terminal.\nThis module replaces the POS Six module.\n- Connect an IoT system: A Raspberry Pi or a virtual IoT system (for Windows OS only) is required to connect a SIX payment terminal to Odoo.\nConnect an IoT system: A Raspberry Pi or a virtual IoT system (for Windows OS only) is required to connect a SIX payment terminal to Odoo.\n\n### Configure the payment method\n\n- Enable the payment terminal in the application settings and create a payment method for SIX terminals .\nEnable the payment terminal in the application settings and create a payment method for SIX terminals .\n- Set the journal type as Bank .\nSet the journal type as Bank .\n- Fill in the Outstanding Account field.\nFill in the Outstanding Account field.\n- Select Terminal in the Integration field.\nSelect Terminal in the Integration field.\n- Select SIX IOT in the Integrate with field.\nSelect SIX IOT in the Integrate with field.\n- Click Setup Six Terminal .\nClick Setup Six Terminal .\n- Click the IoT Box field and select the IoT system from the dropdown menu.\nClick the IoT Box field and select the IoT system from the dropdown menu.\n- Enter the Six Terminal ID (TID) provided by SIX.\nEnter the Six Terminal ID (TID) provided by SIX.\n- Select the Terminal Device from dropdown menu.\nSelect the Terminal Device from dropdown menu.\n- Finally, click Add Terminal .\nFinally, click Add Terminal .\nEnsure the SIX terminal is online and connected to the same network as the IoT system.\n\n### Link the payment method to a POS\n\nOnce the payment method is created, it can be selected in the POS settings. To do so,\n- Go to the POSâ settings .\nGo to the POSâ settings .\n- Add the payment method under the Payment methods field within the Payment section.\nAdd the payment method under the Payment methods field within the Payment section.", "headings": ["Configuration", "Prerequisites", "Configure the payment method", "Link the payment method to a POS"], "doc_id": "f63d92c720836438"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/payment_methods/terminals/stripe.html", "title": "Stripe", "module": "pos", "section": "Stripe", "text": "# Stripe\n\nConnecting a payment terminal allows you to offer a fluid payment flow to your customers and ease\nthe work of your cashiers.\n- Stripe payment terminals do not require an IoT Box\nStripe payment terminals do not require an IoT Box\n- Stripe terminals can be used in many countries, but not worldwide. Check the global\navailability for Stripe Terminal .\nStripe terminals can be used in many countries, but not worldwide. Check the global\navailability for Stripe Terminal .\n- Stripeâs integration works with Stripe Terminal smart readers\nStripeâs integration works with Stripe Terminal smart readers\n- Stripe as payment provider\nStripe as payment provider\n- List of payment methods supported by Stripe\nList of payment methods supported by Stripe\n\n## Configuration\n\n### Configure the payment method\n\nActivate Stripe in the settings by going to Point of Sale ⣠Configuration â£\nSettings ⣠Payment Terminals and enabling Stripe .\nThen, create the payment method:\n- Go to Point of Sale ⣠Configuration ⣠Payment Methods , click Create , and complete the Method field with your payment methodâs name;\nGo to Point of Sale ⣠Configuration ⣠Payment Methods , click Create , and complete the Method field with your payment methodâs name;\n- Set the Journal field as Bank and the Use a Payment Terminal field as Stripe ;\nSet the Journal field as Bank and the Use a Payment Terminal field as Stripe ;\n- Enter your payment terminal serial number in the Stripe Serial Number field;\nEnter your payment terminal serial number in the Stripe Serial Number field;\n- Click Donât forget to complete Stripe connect before using this payment method.\nClick Donât forget to complete Stripe connect before using this payment method.\n- Click Identify Customer to allow this payment method exclusively for identified\ncustomers. For any unidentified customers to be able to pay with Stripe, leave the Identify Customer field unchecked.\nClick Identify Customer to allow this payment method exclusively for identified\ncustomers. For any unidentified customers to be able to pay with Stripe, leave the Identify Customer field unchecked.\n- The Outstanding Account and the Intermediary Account can stay empty to\nuse the default accounts.\nThe Outstanding Account and the Intermediary Account can stay empty to\nuse the default accounts.\n- Find your payment terminal serial number under the device or on Stripeâs dashboard .\nFind your payment terminal serial number under the device or on Stripeâs dashboard .\n\n### Connect Stripe to Odoo\n\nClick Connect Stripe . Doing so redirects you automatically to a configuration page.\nFill in all the information to create your Stripe account and link it with Odoo. Once the forms are\ncompleted, the API keys ( Publishable Key and Secret Key ) can be retrieved on Stripeâs website. To do so, click Get your Secret and Publishable keys ,\nclick the keys to copy them, and paste them into the corresponding fields in Odoo. Your terminal is\nready to be configured in a POS.\n- When you use Stripe exclusively in Point of Sale, you only need the Secret Key to use\nyour terminal.\nWhen you use Stripe exclusively in Point of Sale, you only need the Secret Key to use\nyour terminal.\n- When you use Stripe as payment provider , the State can stay set as Disabled .\nWhen you use Stripe as payment provider , the State can stay set as Disabled .\n- For databases hosted On-Premise , the Connect Stripe button does not work. To\nretrieve the API keys manually, log in to your Stripe dashboard , type API in the search bar, and click Developers > API .\nFor databases hosted On-Premise , the Connect Stripe button does not work. To\nretrieve the API keys manually, log in to your Stripe dashboard , type API in the search bar, and click Developers > API .\n`API`\n\n### Configure the payment terminal\n\nSwipe right on your payment terminal, click Settings , enter the admin PIN code, validate\nand select your network.\n- The userâs device and the terminal must share the same network.\nThe userâs device and the terminal must share the same network.\n- In case of a Wi-Fi connection, the network must be secured.\nIn case of a Wi-Fi connection, the network must be secured.\n- You must enter the admin PIN code to access your payment terminal settings. By default, this\ncode is 07139 .\nYou must enter the admin PIN code to access your payment terminal settings. By default, this\ncode is 07139 .\n`07139`\n\n### Link the payment method to a POS\n\nTo add a payment method to your point of sale, go to Point of Sale â£\nConfiguration ⣠Settings . Select the POS, scroll down to the Payments section, and\nadd your payment method for Stripe in the Payment Methods field.\n\n## Troubleshooting\n\n### Payment terminal unavailable in your Stripe account\n\nIf the payment terminal is unavailable in your Stripe account, you must add it manually:\n- Log into your Stripeâs dashboard and go to Stripe dashboard ⣠Payments ⣠Readers ⣠Locations ;\nLog into your Stripeâs dashboard and go to Stripe dashboard ⣠Payments ⣠Readers ⣠Locations ;\n- Add a location by clicking the + New button or selecting an already created location;\nAdd a location by clicking the + New button or selecting an already created location;\n- Click the + New button in the Readers box and fill in the required\ninformation.\nClick the + New button in the Readers box and fill in the required\ninformation.\nYou must provide a registration code . To retrieve that code, swipe right on your device,\nenter the admin PIN code (by default: 07139 ), validate, and click Generate a\nregistration code .\n`07139`", "headings": ["Configuration", "Configure the payment method", "Connect Stripe to Odoo", "Configure the payment terminal", "Link the payment method to a POS", "Troubleshooting", "Payment terminal unavailable in your Stripe account"], "doc_id": "6b38e89166e0fa0b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/payment_methods/terminals/tyro.html", "title": "Tyro", "module": "pos", "section": "Tyro", "text": "# Tyro\n\nConnecting a Tyro payment terminal allows you to offer a fluid payment\nflow to your customers and ease the work of your cashiers.\nTyro payment terminals are only supported in Australia .\n\n## Configuration\n\n### Pair the terminal with your POS system\n\n- Click the (hamburger menu) icon and Payment settings on your\nterminal.\nClick the (hamburger menu) icon and Payment settings on your\nterminal.\n- Enter your admin password.\nEnter your admin password.\n- Scroll down and click Pair with POS .\nScroll down and click Pair with POS .\n- Click the Pair with POS button.\nClick the Pair with POS button.\n- Save the MID (Merchant ID) and TID (Terminal ID), which are now\ndisplayed on the screen.\nSave the MID (Merchant ID) and TID (Terminal ID), which are now\ndisplayed on the screen.\n- The admin password is the password that you chose when you configured the terminal.\nThe admin password is the password that you chose when you configured the terminal.\n- The steps to reach the pairing screen may differ depending on your terminal model. Information\non configuring the various terminals can be found on Tyroâs website .\nThe steps to reach the pairing screen may differ depending on your terminal model. Information\non configuring the various terminals can be found on Tyroâs website .\n\n### Configure the payment method\n\n- Install the POS Tyro module .\nInstall the POS Tyro module .\n- Create a new payment method : Go to Point of Sale ⣠Configuration ⣠Payment Methods and click New . Set the Journal as Bank Select Terminal in the Integration field. Select Tyro in the Integrate with field. Fill in the Tyro Merchant ID and Tyro Terminal ID with the MID and TID displayed on the terminal.\nCreate a new payment method :\n- Go to Point of Sale ⣠Configuration ⣠Payment Methods and click New .\nGo to Point of Sale ⣠Configuration ⣠Payment Methods and click New .\n- Set the Journal as Bank\nSet the Journal as Bank\n- Select Terminal in the Integration field.\nSelect Terminal in the Integration field.\n- Select Tyro in the Integrate with field.\nSelect Tyro in the Integrate with field.\n- Fill in the Tyro Merchant ID and Tyro Terminal ID with the MID and TID displayed on the terminal.\nFill in the Tyro Merchant ID and Tyro Terminal ID with the MID and TID displayed on the terminal.\n- To pair the payment method with the terminal, click the Pair Terminal button. This\naction sends a pairing request to the terminal, which takes a few seconds to complete. Important The Tyro Mode field must be set to Production Mode .\nTo pair the payment method with the terminal, click the Pair Terminal button. This\naction sends a pairing request to the terminal, which takes a few seconds to complete.\nThe Tyro Mode field must be set to Production Mode .\n\n### Add the payment method to a POS\n\nTo add a payment method to your point of sale:\n- Go to the POS settings .\nGo to the POS settings .\n- Select the POS in the Point of Sale field.\nSelect the POS in the Point of Sale field.\n- Add the payment method under the Payment Methods field of the Payment section.\nAdd the payment method under the Payment Methods field of the Payment section.", "headings": ["Configuration", "Pair the terminal with your POS system", "Configure the payment method", "Add the payment method to a POS"], "doc_id": "cf94ab2e96bad679"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/payment_methods/terminals/viva_com.html", "title": "Viva.com", "module": "pos", "section": "Viva.com", "text": "# Viva.com\n\nViva.com is a payment service that offers payment solutions through the viva.com Terminal app for physical and virtual terminals.\n- Viva.com payment terminals do not require an IoT Box to\noperate.\nViva.com payment terminals do not require an IoT Box to\noperate.\n- Many European countries support the use of Viva.com\npayment terminals.\nMany European countries support the use of Viva.com\npayment terminals.\n- The viva.com Terminal app turns a smartphone with an NFC chip into a payment terminal .\nThe viva.com Terminal app turns a smartphone with an NFC chip into a payment terminal .\nOdoo only supports the Euro currency with viva.com.\n- List of supported terminals\nList of supported terminals\n- List of supported payment methods\nList of supported payment methods\n\n## Viva.com configuration\n\nTo configure a viva.com terminal, go to the Viva.com website , create an\naccount, and then follow these steps:\n- On the viva.com dashboard, go to Settings ⣠API Access ⣠General .\nOn the viva.com dashboard, go to Settings ⣠API Access ⣠General .\n- Copy the Merchant ID and API key .\nCopy the Merchant ID and API key .\n- Copy the Client ID and the generated Client secret (POS API credentials) .\nCopy the Client ID and the generated Client secret (POS API credentials) .\n- Download the viva.com Terminal app on a device, then generate and copy the activation code .\nDownload the viva.com Terminal app on a device, then generate and copy the activation code .\n- On the viva.com dashboard, go to Sales ⣠Sales Transactions ⣠Physical\nPayments ⣠Card Terminals .\nOn the viva.com dashboard, go to Sales ⣠Sales Transactions ⣠Physical\nPayments ⣠Card Terminals .\n- Create a new card terminal and paste the activation code .\nCreate a new card terminal and paste the activation code .\n- Copy the Terminal ID generated by the terminal activation.\nCopy the Terminal ID generated by the terminal activation.\nThe POS API credentials are only displayed once. Make sure to keep a copy to secure them.\n- The POS API credentials are for APIs that use Basic Authentication, including those for Android\nand iOS POS activation and the Cloud Terminal API .\nThe POS API credentials are for APIs that use Basic Authentication, including those for Android\nand iOS POS activation and the Cloud Terminal API .\n\n## Odoo POS configuration\n\nTo connect the viva.com terminal with Odoo Point of Sale, follow these steps:\n- Go to Point of Sale ⣠Configuration ⣠Settings , scroll down to the Payment Terminals section, enable the Viva Wallet terminal, and click Save .\nGo to Point of Sale ⣠Configuration ⣠Settings , scroll down to the Payment Terminals section, enable the Viva Wallet terminal, and click Save .\n- Go to Point of Sale ⣠Configuration ⣠Payment Methods and create a\npayment method .\nGo to Point of Sale ⣠Configuration ⣠Payment Methods and create a\npayment method .\n- Set the Journal field to Bank .\nSet the Journal field to Bank .\n- Set the Integration field to Terminal .\nSet the Integration field to Terminal .\n- Set the Integrate with field to Viva Wallet .\nSet the Integrate with field to Viva Wallet .\n- Paste the copied information from viva.com into the corresponding\nfields: Merchant ID API Key Client ID Client secret Terminal ID\nPaste the copied information from viva.com into the corresponding\nfields:\n- Merchant ID\n- API Key\n- Client ID\n- Client secret\n- Terminal ID\n- Save the form and copy the generated webhook URL from the Viva Wallet Webhook\nEndpoint field.\nSave the form and copy the generated webhook URL from the Viva Wallet Webhook\nEndpoint field.\n- Go to the viva.com account and paste the webhook URL into the corresponding field .\nGo to the viva.com account and paste the webhook URL into the corresponding field .\n- In Odoo, access the relevant point of sale settings , scroll down\nto the Payment section, and add the created payment method in the Payment\nMethods field.\nIn Odoo, access the relevant point of sale settings , scroll down\nto the Payment section, and add the created payment method in the Payment\nMethods field.\n- Click Save .", "headings": ["Viva.com configuration", "Odoo POS configuration"], "doc_id": "c5d1568b1c7cb172"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/payment_methods/terminals/worldline.html", "title": "Worldline", "module": "pos", "section": "Worldline", "text": "# Worldline\n\nWorldline offers payment solutions through payment terminals to handle customer transactions.\n- Connecting a Worldline payment terminal to Odoo requires an IoT system .\nConnecting a Worldline payment terminal to Odoo requires an IoT system .\n- Worldline is only available in Belgium , the Netherlands , and Luxembourg with Odoo.\nWorldline is only available in Belgium , the Netherlands , and Luxembourg with Odoo.\n- Odoo is compatible with Worldline terminals that use the CTEP protocol (e.g., the Yomani XR and Yoximo terminals). Contact the payment provider to confirm the terminalâs\ncompatibility if necessary.\nOdoo is compatible with Worldline terminals that use the CTEP protocol (e.g., the Yomani XR and Yoximo terminals). Contact the payment provider to confirm the terminalâs\ncompatibility if necessary.\n\n## Worldline configuration\n\nFirst, enable the Worldline payment terminal in the POS settings under Payment Terminals . Then connect the IoT system to Odoo and follow these steps on the terminal:\n- Configure the ECR protocol : Press â.â ⣠3 ⣠Stop ⣠3 ⣠0 ⣠9 . Enter the technician password 1235789 and press OK . Press 4 ⣠2 ⣠CTEP (ECR protocol) . Press OK to confirm each of the\nfollowing checks: CTEP ticket ECR , ECR ticket width , and Character set . Press Stop three times; the terminal restarts automatically.\nConfigure the ECR protocol :\n- Press â.â ⣠3 ⣠Stop ⣠3 ⣠0 ⣠9 .\nPress â.â ⣠3 ⣠Stop ⣠3 ⣠0 ⣠9 .\n- Enter the technician password 1235789 and press OK .\nEnter the technician password 1235789 and press OK .\n- Press 4 ⣠2 ⣠CTEP (ECR protocol) . Press OK to confirm each of the\nfollowing checks: CTEP ticket ECR , ECR ticket width , and Character set .\nPress 4 ⣠2 ⣠CTEP (ECR protocol) . Press OK to confirm each of the\nfollowing checks: CTEP ticket ECR , ECR ticket width , and Character set .\n- Press Stop three times; the terminal restarts automatically.\nPress Stop three times; the terminal restarts automatically.\n- Set the hostname : Press â.â ⣠3 ⣠Stop ⣠3 ⣠0 ⣠9 . Enter the technician password 1235789 and press OK . Press 4 ⣠9 ⣠TCP/IP (ECR physical conf.) and OK twice. Enter the IoTâs IP address on the Hostname screen by\nconfirming each number with OK until the colon symbol, then confirm the step with OK .\nFor example, if the IP address is 10.30.19.4:8069 , press 10 ⣠OK ⣠30\n⣠OK ⣠19 ⣠OK ⣠4 ⣠OK ⣠OK .\n- Press â.â ⣠3 ⣠Stop ⣠3 ⣠0 ⣠9 .\nPress â.â ⣠3 ⣠Stop ⣠3 ⣠0 ⣠9 .\n- Enter the technician password 1235789 and press OK .\nEnter the technician password 1235789 and press OK .\n- Press 4 ⣠9 ⣠TCP/IP (ECR physical conf.) and OK twice.\nPress 4 ⣠9 ⣠TCP/IP (ECR physical conf.) and OK twice.\n- Enter the IoTâs IP address on the Hostname screen by\nconfirming each number with OK until the colon symbol, then confirm the step with OK .\nFor example, if the IP address is 10.30.19.4:8069 , press 10 ⣠OK ⣠30\n⣠OK ⣠19 ⣠OK ⣠4 ⣠OK ⣠OK .\nEnter the IoTâs IP address on the Hostname screen by\nconfirming each number with OK until the colon symbol, then confirm the step with OK .\nFor example, if the IP address is 10.30.19.4:8069 , press 10 ⣠OK ⣠30\n⣠OK ⣠19 ⣠OK ⣠4 ⣠OK ⣠OK .\n`10.30.19.4:8069`\n- Set the port number : Enter 9001 (if using an IoT box ) or 9050 (if using a Windows virtual IoT ) on the Network domain name screen and press OK twice. Press Stop three times; the terminal restarts automatically.\nSet the port number :\n- Enter 9001 (if using an IoT box ) or 9050 (if using a Windows virtual IoT ) on the Network domain name screen and press OK twice.\nEnter 9001 (if using an IoT box ) or 9050 (if using a Windows virtual IoT ) on the Network domain name screen and press OK twice.\n- Press Stop three times; the terminal restarts automatically.\nPress Stop three times; the terminal restarts automatically.\nThe terminal is now active and displays the Read card screen.\nThe 9050 port must be added as a Windows Firewall exception for the Windows virtual IoT .\n`9050`\nTo check the terminalâs connection status, open the IoT app and click the IoT systemâs\ncard .\n\n## Odoo configuration\n\nTo connect the Worldline terminal with Odoo Point of Sale, follow these steps:\n- Go to Point of Sale ⣠Configuration ⣠Payment Methods and create a\npayment method .\nGo to Point of Sale ⣠Configuration ⣠Payment Methods and create a\npayment method .\n- Set the Journal field to Bank .\nSet the Journal field to Bank .\n- Set the Integration field to Terminal .\nSet the Integration field to Terminal .\n- Set the Integrate with field to Worldline .\nSet the Integrate with field to Worldline .\n- Select the configured device in the Payment Terminal Device field and save.\nSelect the configured device in the Payment Terminal Device field and save.\n- Go to Point of Sale ⣠Configuration ⣠Settings and add the created payment\nmethod to the Payment Methods list to make it available in the POS interface.\nGo to Point of Sale ⣠Configuration ⣠Settings and add the created payment\nmethod to the Payment Methods list to make it available in the POS interface.\n- Click Save .\n- If a setup uses separate cashier and customer payment terminals, configure the cashier terminal first.\nIf a setup uses separate cashier and customer payment terminals, configure the cashier terminal first.\n- To prevent connection loss, set a fixed IP address on the IoT Boxâs router or restart\nthe virtual IoT server .\nTo prevent connection loss, set a fixed IP address on the IoT Boxâs router or restart\nthe virtual IoT server .", "headings": ["Worldline configuration", "Odoo configuration"], "doc_id": "270a0dc72e5fc87b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/pos_based_marketing.html", "title": "Marketing features", "module": "pos", "section": "Marketing features", "text": "# Marketing features\n\nUse your POS system to engage with customers directly by sending them promotional offers via email\nor WhatsApp.\n\n## Storing contact details\n\nThis feature requires your customerâs contact details, either their email address or phone number.\n- Email addresses : automatically collected and saved in POS orders when sending a receipt by\nemail.\nEmail addresses : automatically collected and saved in POS orders when sending a receipt by\nemail.\n- Phone numbers : to store phone numbers when sending receipts on WhatsApp or by SMS, Go to Configuration ⣠Settings and scroll to the Bills &\nReceipts section; Activate the WhatsApp Enabled or SMS Enabled option(s).\nPhone numbers : to store phone numbers when sending receipts on WhatsApp or by SMS,\n- Go to Configuration ⣠Settings and scroll to the Bills &\nReceipts section;\nGo to Configuration ⣠Settings and scroll to the Bills &\nReceipts section;\n- Activate the WhatsApp Enabled or SMS Enabled option(s).\nActivate the WhatsApp Enabled or SMS Enabled option(s).\nIf a customerâs contact information is missing, it will be automatically saved in POS orders when\nthe receipt is sent via email, SMS, or WhatsApp.\nFrom a POS order form, navigate to the Contact Info category under the Extra Info tab, then click the email icon or whatsapp icon to send standalone\nmarketing messages.\n\n## Email marketing\n\nTo send marketing emails to your customers from POS orders,\n- Go to Point of Sale ⣠Orders ⣠Orders ;\nGo to Point of Sale ⣠Orders ⣠Orders ;\n- Select the orders;\n- Click Actions , then Send Email from the dropdown menu.\nClick Actions , then Send Email from the dropdown menu.\nDoing so opens an email composing form. Fill it in and hit Send .\n- Save some time by saving your content as a template. Click the vertical ellipsis button and\nselect your template under the Insert Template section.\nSave some time by saving your content as a template. Click the vertical ellipsis button and\nselect your template under the Insert Template section.\n- You can also save your content as template for later use. Click the vertical ellipsis button\nand select Save as Template .\nYou can also save your content as template for later use. Click the vertical ellipsis button\nand select Save as Template .\n- Fill in the Mass Mailing Name field to create a mass mailing and track its results\nin the Email Marketing app .\nFill in the Mass Mailing Name field to create a mass mailing and track its results\nin the Email Marketing app .\n- If an email address is not related to an existing customer, a new customer is automatically\ncreated when sending marketing emails.\nIf an email address is not related to an existing customer, a new customer is automatically\ncreated when sending marketing emails.\nUse the email marketing app for more advanced marketing features .\n\n## Whatsapp marketing\n\n### Configuration\n\nYou first need to enable the related server action to send WhatsApp marketing messages from your POS\nusing the phone numbers collected from POS orders. To do so,\n- Go to the WhatsApp application;\nGo to the WhatsApp application;\n- Create a new WhatsApp template ;\nCreate a new WhatsApp template ;\n- Configure the fields: Applies to field set to Point of Sale Orders ; Category field to Marketing ; Phone Field to either Mobile or Customer > Phone .\nConfigure the fields:\n- Applies to field set to Point of Sale Orders ;\nApplies to field set to Point of Sale Orders ;\n- Category field to Marketing ;\nCategory field to Marketing ;\n- Phone Field to either Mobile or Customer > Phone .\nPhone Field to either Mobile or Customer > Phone .\n- Click Submit for Approval ;\nClick Submit for Approval ;\n- Once approved, click the Allow Multi button to create a server action in the POS\norders list view.\nOnce approved, click the Allow Multi button to create a server action in the POS\norders list view.\nIf you modify the templateâs content, you must request for approval again, as its status returns\nto the Draft state.\nWhatsApp configuration\n\n### Send WhatsApp marketing messages\n\n- Go to Point of Sale ⣠Orders ⣠Orders ;\nGo to Point of Sale ⣠Orders ⣠Orders ;\n- Select the orders;\n- Click Actions , then WhatsApp Message from the dropdown menu.\nClick Actions , then WhatsApp Message from the dropdown menu.\nDoing so opens a WhatsApp message composing form. Select the desired marketing template in the Template field and hit Send Message .\n- To use WhatsApp marketing in the Point of Sale, approved marketing templates must have the Allow Multi option enabled and Point of Sale Orders selected in the Applies to field.\nTo use WhatsApp marketing in the Point of Sale, approved marketing templates must have the Allow Multi option enabled and Point of Sale Orders selected in the Applies to field.\n- If the server action is displayed without a properly configured template, an error message\nappears. Click Configure Templates and complete the WhatsApp setup steps.\nIf the server action is displayed without a properly configured template, an error message\nappears. Click Configure Templates and complete the WhatsApp setup steps.", "headings": ["Storing contact details", "Email marketing", "Whatsapp marketing", "Configuration", "Send WhatsApp marketing messages"], "doc_id": "fc14854a7845bc1e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/pos_hardware.html", "title": "Hardware", "module": "pos", "section": "Hardware", "text": "# Hardware\n\nOdoo Point of Sale supports integration with a variety of hardware, including payment\nterminals and cash drawers, as well as customer displays , scales , barcode scanners , ePOS printers , and in-store electronic shelf labels .\n\n## Customer display\n\nThe customer display feature provides real-time updates on a secondary screen for customers\nduring the checkout process. This screen shows the items in the cart , the subtotal\nas items are added, and details throughout the payment process. It also displays the total amount,\nthe selected payment method , and any change to be returned.\nBoth the customer and POS displays must have a minimum diagonal size of 6 inches. For optimal\nreadability, larger screens are recommended.\n\n### Configuration\n\nDepending on the POS setup, the feature can be displayed directly on a secondary screen connected\nvia USB-C or HDMI, on another device remotely, or on a screen connected through an IoT system.\nTo activate the feature, follow these steps:\n- Navigate to the POS settings and scroll down to the Connected Devices section.\nNavigate to the POS settings and scroll down to the Connected Devices section.\n- Open the dropdown menu under the Customer Display section and select one of the\nfollowing options: None : To disable the feature. The same device : To use a secondary screen connected\nwith an HDMI or USB-C cable. Another device : To use a remote device connected\nto the database. An IOT-connected screen : To use a screen connected via an IoT system .\nOpen the dropdown menu under the Customer Display section and select one of the\nfollowing options:\n- None : To disable the feature.\nNone : To disable the feature.\n- The same device : To use a secondary screen connected\nwith an HDMI or USB-C cable.\nThe same device : To use a secondary screen connected\nwith an HDMI or USB-C cable.\n- Another device : To use a remote device connected\nto the database.\nAnother device : To use a remote device connected\nto the database.\n- An IOT-connected screen : To use a screen connected via an IoT system .\nAn IOT-connected screen : To use a screen connected via an IoT system .\nFor displays connected using an IoT system :\n- Enable the IoT Box option to activate the IoT system in POS.\nEnable the IoT Box option to activate the IoT system in POS.\n- Click Save , which activates the IoT app in Odoo.\nClick Save , which activates the IoT app in Odoo.\n- Connect and configure an IoT system for a display .\nConnect and configure an IoT system for a display .\n- Return to the POS settings and select an IoT-connected screen\nusing the Customer Display field.\nReturn to the POS settings and select an IoT-connected screen\nusing the Customer Display field.\n\n### Opening the customer display\n\n#### Same device\n\nTo open the customer display on a second screen connected to a POS system using an HDMI or USB-C\ncable, follow these steps:\n- Open a POS session .\n- Click the ( hamburger menu ) icon.\nClick the ( hamburger menu ) icon.\n- Click the ( Customer Display ) icon, which opens a new window to\ndrag onto the second screen.\nClick the ( Customer Display ) icon, which opens a new window to\ndrag onto the second screen.\nFor POS terminals running the Odoo Android app with dual-screen\nsupport, follow these steps:\n- Activate the Point of Sale Mobile module to enable the\ncustomer display.\nActivate the Point of Sale Mobile module to enable the\ncustomer display.\n- Open a POS session .\n- Click the ( hamburger menu ) icon.\nClick the ( hamburger menu ) icon.\n- Click the ( Customer Display ) icon, which opens the customer\ndisplay on the terminalâs secondary screen.\nClick the ( Customer Display ) icon, which opens the customer\ndisplay on the terminalâs secondary screen.\n\n#### Another device\n\nTo open the customer display on a remote device (any computer, tablet, or smartphone), follow these\nsteps:\n- Access your database from the other device and navigate to Point of Sale â£\nDashboard .\nAccess your database from the other device and navigate to Point of Sale â£\nDashboard .\n- Click the ( Dropdown menu ) icon on a POS card.\nClick the ( Dropdown menu ) icon on a POS card.\n- Click Customer Display to open the display remotely.\nClick Customer Display to open the display remotely.\nThe two devices are not required to share the same network as long as they are connected to the\nsame database.\n\n#### IOT-connected screen\n\nTo open the customer display onto an IoT-connected screens:\n- Open a POS session .\n- Click the ( hamburger menu ) icon.\nClick the ( hamburger menu ) icon.\n- Click the ( Customer Display ) icon, which opens the customer\ndisplay onto the IoT-connected screen.\nClick the ( Customer Display ) icon, which opens the customer\ndisplay onto the IoT-connected screen.\nBoth devices need to be connected to the same local network.\n- IoT system connection\nIoT system connection\n- Internet of Things (IoT)\nInternet of Things (IoT)\n\n## Scale\n\nIn EU member states, certification is legally required to use a scale as an integrated device.\n\n### Prerequisite\n\nConnecting a scale requires the use of an IoT System .\n- IoT system connection to Odoo\nIoT system connection to Odoo\n- Connect a scale\n\n### Configuration\n\n#### Scale connection\n\n- Access the POS settings .\nAccess the POS settings .\n- Scroll down to the Connected Devices section and enable IoT Box .\nScroll down to the Connected Devices section and enable IoT Box .\n- Select the scale in the Electronic Scale field.\nSelect the scale in the Electronic Scale field.\n- Click Save .\nAlternatively, click the ( Dropdown menu ) icon on a POS card and\nclick Edit to access this setting.\n\n#### Product configuration\n\nIn order to weigh products using an integrated scale, go to Point of Sale â£\nProducts ⣠Products , create a product or open an existing product form, and configure it as\nfollows:\n- Ensure the Point of Sale checkbox is activated for the product to be available in\nPOS.\nEnsure the Point of Sale checkbox is activated for the product to be available in\nPOS.\n- On the General Information tab, define a Sales Price per kg . Note This step requires to enable the Units of Measure feature. To activate it: Go to Inventory ⣠Configuration ⣠Settings . Scroll down to the Products section and activate Units of Measure .\nOn the General Information tab, define a Sales Price per kg .\nThis step requires to enable the Units of Measure feature. To activate it:\n- Go to Inventory ⣠Configuration ⣠Settings .\nGo to Inventory ⣠Configuration ⣠Settings .\n- Scroll down to the Products section and activate Units of Measure .\nScroll down to the Products section and activate Units of Measure .\n- Go to the Point of Sale tab and activate To Weigh With Scale . This\nenables the product to be weighed directly on the connected scale at the POS.\nGo to the Point of Sale tab and activate To Weigh With Scale . This\nenables the product to be weighed directly on the connected scale at the POS.\nThe selected unit of measure for weighable products must be kg to ensure compliance\nwith European regulations .\n\n### European regulations\n\nWhen using scales in commercial transactions, the database integrated with a scale must be\nconfigured to meet specific European requirements. This includes supporting at least three decimal\nplaces for accuracy and using proper rounding for units of measure, such as kg instead of generic units .\n`kg`\n`units`\nIf the database is not compliant, a red ( scale ) icon displays\nas a warning. Click this icon to view the reasons for non-compliance and then select Apply changes to automatically apply the necessary changes to the settings. Once the\ndatabase meets all regulatory requirements, the ( scale ) icon\nturns green.\nAdditional guidelines\nBoth the customer and POS displays must have a minimum diagonal\nsize of 6 inches. For optimal readability, larger screens are recommended.\n\n### Using a scale in PoS\n\n- Open a POS session .\n- Select the product to weigh on the order screen or scan its barcode.\nSelect the product to weigh on the order screen or scan its barcode.\n- Place the product on the scale and wait for the weight to be displayed in the popup window.\nPlace the product on the scale and wait for the weight to be displayed in the popup window.\n- Once the weight is determined, the price is automatically computed.\nOnce the weight is determined, the price is automatically computed.\n- Click Order to add the product to the cart.\nClick Order to add the product to the cart.\n- Remove the previous product from the scale.\nRemove the previous product from the scale.\nMake sure the scale returns to zero before weighing a new product. If it does not, the Order button remains unclickable until it is reset.\n`zero`", "headings": ["Customer display", "Configuration", "Opening the customer display", "Scale", "Prerequisite", "Configuration", "European regulations", "Using a scale in PoS"], "doc_id": "84553b20c13a5874"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/preparation.html", "title": "Preparation display", "module": "pos", "section": "Preparation display", "text": "# Preparation display\n\nThe preparation display feature allows you to handle POS orders requiring preparation. Concretely,\n- For retail : The preparation team is notified after a payment is completed at the POS to\ngather the purchased items for customer pickup.\nFor retail : The preparation team is notified after a payment is completed at the POS to\ngather the purchased items for customer pickup.\n- For restaurants : POS orders inform the kitchen of the meals to be prepared.\nFor restaurants : POS orders inform the kitchen of the meals to be prepared.\n\n## Configuration\n\nTo enable the preparation display feature,\n- Go to the POS settings .\nGo to the POS settings .\n- Scroll down to the Preparation section.\nScroll down to the Preparation section.\n- Check the Preparation Display option.\nCheck the Preparation Display option.\nTo create and set up a preparation display,\n- Go to Point of Sale ⣠Orders ⣠Preparation Display\nGo to Point of Sale ⣠Orders ⣠Preparation Display\n- Click New .\n- Give the display a descriptive Name (e.g., Main Kitchen , Bar )\nGive the display a descriptive Name (e.g., Main Kitchen , Bar )\n`MainKitchen`\n`Bar`\n- Set it up: Point of Sale : Select the POS that sends orders to this display. Product categories : Specify the POS Product categories sent to this\ndisplay. Stages : Define the steps required for the orders to be ready. Click Add a line to add a stage. Assign specific colors to each stage for clarity (optional). Define an Alert timer (min) for each stage to indicate the expected processing\ntime.\n- Point of Sale : Select the POS that sends orders to this display.\nPoint of Sale : Select the POS that sends orders to this display.\n- Product categories : Specify the POS Product categories sent to this\ndisplay.\nProduct categories : Specify the POS Product categories sent to this\ndisplay.\n- Stages : Define the steps required for the orders to be ready. Click Add a line to add a stage. Assign specific colors to each stage for clarity (optional). Define an Alert timer (min) for each stage to indicate the expected processing\ntime.\nStages : Define the steps required for the orders to be ready.\n- Click Add a line to add a stage.\nClick Add a line to add a stage.\n- Assign specific colors to each stage for clarity (optional).\nAssign specific colors to each stage for clarity (optional).\n- Define an Alert timer (min) for each stage to indicate the expected processing\ntime.\nDefine an Alert timer (min) for each stage to indicate the expected processing\ntime.\nTo edit a pre-existing preparation display, click the vertical ellipsis button\n( ) on the displayâs card and select Configure .\n\n## Practical application\n\nGo to Point of Sale ⣠Orders ⣠Preparation Display to get an overview of all\nyour displays.\nThe display card shows:\n- The configured stages.\nThe configured stages.\n- The number of orders currently In progress .\nThe number of orders currently In progress .\n- The Average time employees usually take to complete an order.\nThe Average time employees usually take to complete an order.\nClick the Kitchen Display app icon on your Odoo Dashboard for quicker access.\n\n### Using the preparation display\n\nTo access the preparation display, click Preparation Screen . This interface, designed\nfor employees, shows:\n- Stages and order count : Displays the progress of orders across stages such as To prepare , Ready , and Completed , along with the number of orders in each stage.\nStages and order count : Displays the progress of orders across stages such as To prepare , Ready , and Completed , along with the number of orders in each stage.\n`Toprepare`\n`Ready`\n`Completed`\n- Ordered products by category : Lists all items in progress, grouped by POS categories (e.g., Drinks , Food ).\nOrdered products by category : Lists all items in progress, grouped by POS categories (e.g., Drinks , Food ).\n`Drinks`\n`Food`\n- Order cards : Summarizes individual orders, including: Associated tables and order numbers. Status, such as Ready , highlighted with the defined colors. Waiting time, with visual indicators.\nOrder cards : Summarizes individual orders, including:\n- Associated tables and order numbers.\nAssociated tables and order numbers.\n- Status, such as Ready , highlighted with the defined colors.\nStatus, such as Ready , highlighted with the defined colors.\n`Ready`\n- Waiting time, with visual indicators.\nWaiting time, with visual indicators.\nThe duration indicator turns red if the elapsed time exceeds the predefined alert time.\nTo update order progress:\n- Click items on the order card to cross them off individually.\nClick items on the order card to cross them off individually.\n- Click the order card itself to mark all items at once.\nClick the order card itself to mark all items at once.\n- The card automatically moves to the next stage once every item is crossed off.\nThe card automatically moves to the next stage once every item is crossed off.\n- Click Recall to move an order back to the previous stage if you\nmistakenly sent it to the next stage.\nClick Recall to move an order back to the previous stage if you\nmistakenly sent it to the next stage.\n\n### Customer display\n\nIn parallel, click Order Status Screen to open the customer interface. This interface,\ndesigned for customers, provides an overview of orders that are:\n- Ready for pickup.\n- Almost there , indicating they are taken care of.\nAlmost there , indicating they are taken care of.\nThe order number can be found at the top of the customerâs receipt.", "headings": ["Configuration", "Practical application", "Using the preparation display", "Customer display"], "doc_id": "7c533e895b63384c"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/pricing/cash_rounding.html", "title": "Cash rounding", "module": "pos", "section": "Cash rounding", "text": "# Cash rounding\n\nCash rounding is required when the lowest physical denomination\nof currency, or the smallest coin, is higher than the minimum unit\nof account.\nFor example, some countries require their companies to round up or\ndown the total amount of an invoice to the nearest five cents, when\nthe payment is made in cash.\nEach point of sale in Odoo can be configured to apply cash rounding\nto the totals of its bills or receipts.\n\n## Configuration\n\nGo to Point of Sale ⣠Configuration ⣠Settings and enable Cash Rounding , then click on Save .\nGo to Point of Sale ⣠Configuration ⣠Point of\nSale , open the point of sale you want to configure, and enable the Cash Rounding option.\nTo define the Rounding Method , open the drop-down list and click\non Create and Edit⦠.\nDefine here your Rounding Precision , Profit Account , and Loss Account , then save both the Rounding Method and your Point\nof Sale settings.\nAll total amounts of this point of sale now add a line to apply the\nrounding according to your settings.\nOdoo Point of Sale only supports the Add a rounding line rounding strategy.", "headings": ["Configuration"], "doc_id": "8f4e03aba5d8a7fa"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/pricing/discount_tags.html", "title": "Discount tags (barcode scanner)", "module": "pos", "section": "Discount tags (barcode scanner)", "text": "# Discount tags (barcode scanner)\n\nIf you want to sell your products with a discount, for a product getting\nclose to its expiration date for example, you can use discount tags.\nThey allow you to scan discount barcodes.\nTo use discount tags you will need to use a barcode scanner.\n\n## Barcode Nomenclature\n\nTo use discounts tags, we need to learn about barcode nomenclature.\nLetâs say you want to have a discount for the product with the following\nbarcode:\nYou can find the Default Nomenclature under the settings of your PoS\ninterface.\nLetâs say you want 50% discount on a product you have to start your\nbarcode with 22 (for the discount barcode nomenclature) and then 50 (for\nthe %) before adding the product barcode. In our example, the barcode would\nbe:\n\n## Scan the products & tags\n\nYou first have to scan the desired product (in our case, a lemon).\nAnd then scan the discount tag. The discount will be applied and you can\nfinish the transaction.", "headings": ["Barcode Nomenclature", "Scan the products & tags"], "doc_id": "f0e98f6c5fce11b7"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/pricing/discounts.html", "title": "Discounts", "module": "pos", "section": "Discounts", "text": "# Discounts\n\nBy offering discounts, you can entice your customers and drastically\nincrease your revenue. It is vital to offer discounts, whether they are\ntime-limited, seasonal or manually given.\nTo manage discounts, Odoo has powerful features that help set up a\npricing strategy tailored to every business.\n\n## Apply manual discounts\n\nIf you seldom use discounts, applying manual ones might be the easiest\nsolution for your point of sale.\nYou can either apply a discount on the whole order or on specific\nproducts inside an order.\n\n### Apply a discount on a product\n\nFrom your PoS session interface, use the Disc button.\nThen, you can input a discount over the product that is currently\nselected.\n\n### Apply a global discount\n\nTo apply a discount on the whole order, go to Point of\nSale ⣠Configuration ⣠Point of Sale and select your PoS.\nOnce on your PoS form, select Global Discounts , under the Pricing category.\nNow, you have a new Discount button appearing on your PoS interface.\nClick on it and enter the wanted discount.\nOn this example, there is a global discount of 50% as well as a specific\n50% discount on oranges.\n\n## Apply time-limited discounts\n\nTo activate time-limited discounts, you must activate the Pricelists feature. To do so, go to Point of Sale â£\nConfiguration ⣠Point of Sale and open your PoS. Then, enable the\npricelist feature.\nOnce activated, you must choose the pricelists you want to make\navailable in the PoS and define a default one.\n\n### Create a pricelist\n\nBy default, Odoo has a Public Pricelist configured. To create more,\ngo to Point of Sale ⣠Products ⣠Pricelists . Then\nclick on create.\nWhen creating a pricelist, you can set several criteria to use a\nspecific price: period, min. quantity, etc. You can also decide to apply\nthat pricelist on specific products or on the whole range.\n\n### Using a pricelist with the PoS interface\n\nOn the PoS interface, a new button appears. Use it to select a\npricelist.\nClick on it to instantly update the prices with the selected pricelist. Then, you can finalize the\norder.", "headings": ["Apply manual discounts", "Apply a discount on a product", "Apply a global discount", "Apply time-limited discounts", "Create a pricelist", "Using a pricelist with the PoS interface"], "doc_id": "1e4214f15f840666"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/pricing/electronic_labels.html", "title": "Electronic shelf labels", "module": "pos", "section": "Electronic shelf labels", "text": "# Electronic shelf labels\n\nElectronic shelf labels allow you to display product information like prices and barcodes on store\nshelves and to synchronize them remotely from the backend. This removes the need to print new labels\nwhen product information changes.\nOdoo uses electronic labels from Pricer .\n\n## Configuration\n\n### Pricer setup\n\n- Get in touch with Pricer to create and configure your Pricer\naccount.\nGet in touch with Pricer to create and configure your Pricer\naccount.\n- Create your stores: one pricer store equates to one physical store.\nCreate your stores: one pricer store equates to one physical store.\n- Link as many transceivers as needed to the Pricer store(s).\nLink as many transceivers as needed to the Pricer store(s).\n- Create the following variables to share product information between your Odoo database system and\nPricer. These variables act like placeholders on the label template. itemId : this holds the unique internal identifier assigned to each product itemName : the actual name of the product price : the selling price of the product, including any applicable taxes presentation : the template name used in Pricer for displaying the product information on the\nlabel currency : the currency of your company (e.g., USD, EUR) barcode : the barcode number associated with each product Important The names for these variables must be identical in your Pricer database.\nCreate the following variables to share product information between your Odoo database system and\nPricer. These variables act like placeholders on the label template.\n- itemId : this holds the unique internal identifier assigned to each product\nitemId : this holds the unique internal identifier assigned to each product\n`itemId`\n- itemName : the actual name of the product\nitemName : the actual name of the product\n`itemName`\n- price : the selling price of the product, including any applicable taxes\nprice : the selling price of the product, including any applicable taxes\n`price`\n- presentation : the template name used in Pricer for displaying the product information on the\nlabel\npresentation : the template name used in Pricer for displaying the product information on the\nlabel\n`presentation`\n- currency : the currency of your company (e.g., USD, EUR)\ncurrency : the currency of your company (e.g., USD, EUR)\n`currency`\n- barcode : the barcode number associated with each product\nbarcode : the barcode number associated with each product\n`barcode`\nThe names for these variables must be identical in your Pricer database.\n- Create a template named NORMAL . This template is used to display information on your digital\ntags.\nCreate a template named NORMAL . This template is used to display information on your digital\ntags.\n`NORMAL`\nOnce your account, stores, variables, and template are configured on Pricer, you can proceed with\nthe setup of your Odoo database.\nThe account associated with your Pricer store must have access to send API requests to Pricer.\n\n### Odoo setup\n\nAs a pre-requisite, activate the POS Pricer module (technical\nname: pos_pricer) to have all the required features to use Pricer electronic tags.\nOnce the module is activated, configure your pricer stores and associate Pricer tags with your products.\n\n#### Pricer stores\n\nSimilarly to the configuration in Pricer, you need to create one pricer store per physical location.\nTo do so, go to Point of Sale ⣠Configuration ⣠Pricer Stores , click New , and fill in the line with the required information:\n- Store Name : you can put any name of your liking.\nStore Name : you can put any name of your liking.\n- Pricer Tenant Name : the name of your company account in Pricer, usually followed by -country_code . This value is provided by Pricer.\nPricer Tenant Name : the name of your company account in Pricer, usually followed by -country_code . This value is provided by Pricer.\n`-country_code`\n- Pricer Login : the login of your Pricer account.\nPricer Login : the login of your Pricer account.\n- Pricer Password : the password of your Pricer account.\nPricer Password : the password of your Pricer account.\n- Pricer Store ID : the ID of the related Pricer store as defined on your Pricer\ndatabase.\nPricer Store ID : the ID of the related Pricer store as defined on your Pricer\ndatabase.\n- The Pricer Tags column is updated automatically when a label is linked to a\nproduct.\nThe Pricer Tags column is updated automatically when a label is linked to a\nproduct.\n- The Last Update and Last Update Status columns are updated\nautomatically when the tags are updated.\nThe Last Update and Last Update Status columns are updated\nautomatically when the tags are updated.\n\n#### Pricer tags\n\nFor a label to display specific product information, the label needs to be associated with the\nproduct. To do so:\n- Open the product form by going to Point of Sale ⣠Products ⣠Products and\nclicking New or selecting an existing product. Note If you are creating a new product, configure and save it before associating any Pricer tags.\nOpen the product form by going to Point of Sale ⣠Products ⣠Products and\nclicking New or selecting an existing product.\nIf you are creating a new product, configure and save it before associating any Pricer tags.\n- Go to the Sales tab, scroll to the Pricer section, and select the\ncorresponding Pricer Store .\nGo to the Sales tab, scroll to the Pricer section, and select the\ncorresponding Pricer Store .\n- Fill in the Pricer tags ids field by copying the labelâs ID from the label itself or\nscanning its barcode. Note Pricer tag IDs are composed of a letter followed by 16 digits.\nFill in the Pricer tags ids field by copying the labelâs ID from the label itself or\nscanning its barcode.\nPricer tag IDs are composed of a letter followed by 16 digits.\n- We recommended using a barcode scanner to speed up the encoding process.\nWe recommended using a barcode scanner to speed up the encoding process.\n- When setting up Pricer with Odoo for the first time, it is recommended that you configure only\none product first. Before configuring more products, ensure you can display their information\non a Pricer tag.\nWhen setting up Pricer with Odoo for the first time, it is recommended that you configure only\none product first. Before configuring more products, ensure you can display their information\non a Pricer tag.\nNow that you have a product associated with a Pricer tag, we can send its information to Pricer.\n\n### Practical application\n\nOdoo automatically sends requests to Pricer to synchronize the tags every 12 hours if you make any\nmodifications to:\n- Product name, price, barcode, or customer taxes\nProduct name, price, barcode, or customer taxes\n- Currency\n- Associated Pricer store or Pricer tags\nAssociated Pricer store or Pricer tags\nTo force the update, activate the developer mode . Then:\n- Go to Point of Sale ⣠Configuration ⣠Pricer Store .\nGo to Point of Sale ⣠Configuration ⣠Pricer Store .\n- Select the desired store(s).\nSelect the desired store(s).\n- Click Update tags to update all tags affected by changes to: Product name, price, barcode, or customer taxes Currency Associated Pricer store or Pricer tags\nClick Update tags to update all tags affected by changes to:\n- Product name, price, barcode, or customer taxes\nProduct name, price, barcode, or customer taxes\n- Currency\n- Associated Pricer store or Pricer tags\nAssociated Pricer store or Pricer tags\nAlternatively, click Update all tags to force the update of every tag, regardless of\nwhether changes were made.\nIf Pricer has processed and accepted the request, the status field shows Update\nsuccessfully sent to Pricer . If there is any issue, the system displays an error message.\nIf a request sent to Pricer fails, Odoo still considers that the product has been updated. In\nthat case, we recommend forcing the update of all tags.\n\n### Discount labels\n\nTo display a discount label on a Pricer Tag, you need to link a pricelist to the\nproduct variant associated with the tag.\nTo do so, open the product variant form:\n- Go to Point of Sale ⣠Products ⣠Product Variants .\nGo to Point of Sale ⣠Products ⣠Product Variants .\n- Select the product you want to apply a discount to.\nSelect the product you want to apply a discount to.\nThen, set the desired pricelist:\n- Go to the General Information tab.\nGo to the General Information tab.\n- Select a pricelist in the Pricer Sales Pricelist field.\nSelect a pricelist in the Pricer Sales Pricelist field.\nOnce a pricelist is set, the On Sale Price field appears, showing the Sales\nPrice with the discount applied.\nAfter updating your electronic labels, a PROMO tag should appear on the electronic label,\ndisplaying both the old, crossed-out price and the discounted price.\n`PROMO`\n- Currently, pricelists that offer discounts for purchasing multiple units or derive their prices\nfrom other pricelists are not supported.\nCurrently, pricelists that offer discounts for purchasing multiple units or derive their prices\nfrom other pricelists are not supported.\n- Assigning a pricelist to a product variant only affects the electronic label display. Scanning\nthe product at the point of sale does not automatically apply the discount.\nAssigning a pricelist to a product variant only affects the electronic label display. Scanning\nthe product at the point of sale does not automatically apply the discount.", "headings": ["Configuration", "Pricer setup", "Odoo setup", "Practical application", "Discount labels"], "doc_id": "4726f5fd9a4308bc"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/pricing/fiscal_position.html", "title": "Flexible taxes (fiscal positions)", "module": "pos", "section": "Flexible taxes (fiscal positions)", "text": "# Flexible taxes (fiscal positions)\n\nWhen running a business, you may need to apply different taxes and record transactions on various\naccounts based on the location and type of business of your customers and providers.\nThe fiscal positions feature enables you to establish rules that automatically select the right\ntaxes and accounts used for each transaction.\n- Fiscal positions (tax and account mapping)\nFiscal positions (tax and account mapping)\n\n## Configuration\n\nTo enable the feature, go to Point of Sale ⣠Configuration ⣠Settings , scroll\ndown to the Accounting section, and enable Flexible Taxes .\nThen, set a default fiscal position that should be applied to all sales in the selected POS in the Default field. You can also add more fiscal positions to choose from in the Allowed field.\nAccording to the fiscal localization package activated, several fiscal positions are preconfigured and can be set and used in POS. However, you\ncan also create new fiscal positions .\nIf you do not set a fiscal position, the tax remains as defined in the customer taxes field\non the product form.\n\n## Use fiscal positions\n\nOpen a POS session to use one of the allowed fiscal positions. Then,\nclick the Tax button next to the book-shaped icon and select a fiscal position from\nthe list. Doing so applies the defined rules automatically to all the products subject to the chosen\nfiscal positionâs regulations.\nIf a default fiscal position is set, the tax button displays the name of the fiscal position.\nFiscal positions (tax and account mapping)", "headings": ["Configuration", "Use fiscal positions"], "doc_id": "50ffc94039dcb828"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/pricing/loyalty.html", "title": "Loyalty programs", "module": "pos", "section": "Loyalty programs", "text": "# Loyalty programs\n\nEncourage your customers to continue to shop at your point of sale with\na Loyalty Program .\n\n## Configuration\n\nTo activate the Loyalty Program feature, go to Point of Sale ⣠Configuration ⣠Point of sale and\nselect your PoS interface. Under the Pricing features, select Loyalty\nProgram\nFrom there you can create and edit your loyalty programs.\nYou can decide what type of program you wish to use, if the reward is a\ndiscount or a gift, make it specific to some products or cover your\nwhole range. Apply rules so that it is only valid in specific situation\nand everything in between.\n\n## Use the loyalty program in your PoS interface\n\nWhen a customer is set, you will now see the points they will get for\nthe transaction and they will accumulate until they are spent. They are\nspent using the button Rewards when they have enough points\naccording to the rules defined in the loyalty program.\nYou can see the price is instantly updated to reflect the pricelist. You\ncan finalize the order in your usual way.\nIf you select a customer with a default pricelist, it will be\napplied. You can of course change it.", "headings": ["Configuration", "Use the loyalty program in your PoS interface"], "doc_id": "6f69244ee4cd1a3a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/pricing/pricelists.html", "title": "Pricelists", "module": "pos", "section": "Pricelists", "text": "# Pricelists\n\nPricelists allow you to adjust product prices depending on various criteria automatically. For\nexample, you can set POS-specific prices, create temporary discount periods, reward specific\ncustomers, or offer discounts when set quantities are ordered.\n\n## Configuration\n\nNavigate to the general POS app settings and ensure Flexible Pricelists are enabled under the Pricing section.\nMultiple prices per product is the default pricelist option for setting\nsimple fixed price rules per product. Select Advanced price rules (discounts, formulas) to apply price rules to multiple products at once and to compute prices\ndynamically using percentage discounts or more complex formulas in addition to setting fixed prices.\nThe selected pricelist type applies to the entire database, including the Sales and eCommerce apps.\n\n### Create pricelists\n\nGo to Point of Sale ⣠Products ⣠Pricelists and click New or\nselect an existing pricelist. The pricelist setup differs depending on the selected pricelist\noption .\n\n#### Multiple prices per product\n\nWhen pricelists are configured to use the Multiple prices per product option, it is\npossible to use multiple fixed prices for different products or their variants depending, if\nnecessary, on one or several conditions. To add a new price rule to a pricelist:\n- Click Add a line , and select a product and its variant if needed.\nClick Add a line , and select a product and its variant if needed.\n- Add the condition(s): a product quantity to be reached by using the Min. Quantity column; a determined period during which the pricelist is applied by using the Start Date and End Date columns.\nAdd the condition(s):\n- a product quantity to be reached by using the Min. Quantity column;\na product quantity to be reached by using the Min. Quantity column;\n- a determined period during which the pricelist is applied by using the Start Date and End Date columns.\na determined period during which the pricelist is applied by using the Start Date and End Date columns.\n- Add the Price to be applied when the conditions are met (if any).\nAdd the Price to be applied when the conditions are met (if any).\n\n#### Advanced price rules\n\nWhen pricelists are configured to use the Advanced price rules (discounts, formulas) option, it is possible to use percentage discounts/mark-ups and formulas in addition to using fixed\nprices. To add a new price rule to a pricelist, click Add a line . In the pop-up windows:\n- Select a Computation method: Fixed Price to set a new fixed price (similarly to the Multiple prices\nper product option). Discount to compute a percentage discount (e.g., 10.00 %) or mark-up (e.g., -10.00 %). Formula to compute the price according to a formula. It is required to define what\nthe calculation is based on ( Sales Price , Cost , or Other\nPricelist ). You can then: Apply a percentage Discount or mark-up. Add an Extra Fee (e.g., $ 5.00 ) or subtract a fixed amount (e.g., $ -5.00 ). Define a Rounding Method by forcing the price after Discount to be a multiple of the value set. The Extra Fee is applied\nafterward. Example To have the final price end with .99 , set the Rounding Method to 1.00 and\nthe Extra Fee to -0.01 . Specify the minimum (e.g., $ 20.00 ) and maximum (e.g., $ 50.00 ) profit Margins for computations based on Cost .\nSelect a Computation method:\n- Fixed Price to set a new fixed price (similarly to the Multiple prices\nper product option).\nFixed Price to set a new fixed price (similarly to the Multiple prices\nper product option).\n- Discount to compute a percentage discount (e.g., 10.00 %) or mark-up (e.g., -10.00 %).\nDiscount to compute a percentage discount (e.g., 10.00 %) or mark-up (e.g., -10.00 %).\n`10.00`\n`-10.00`\n- Formula to compute the price according to a formula. It is required to define what\nthe calculation is based on ( Sales Price , Cost , or Other\nPricelist ). You can then: Apply a percentage Discount or mark-up. Add an Extra Fee (e.g., $ 5.00 ) or subtract a fixed amount (e.g., $ -5.00 ). Define a Rounding Method by forcing the price after Discount to be a multiple of the value set. The Extra Fee is applied\nafterward. Example To have the final price end with .99 , set the Rounding Method to 1.00 and\nthe Extra Fee to -0.01 . Specify the minimum (e.g., $ 20.00 ) and maximum (e.g., $ 50.00 ) profit Margins for computations based on Cost .\nFormula to compute the price according to a formula. It is required to define what\nthe calculation is based on ( Sales Price , Cost , or Other\nPricelist ). You can then:\n- Apply a percentage Discount or mark-up.\nApply a percentage Discount or mark-up.\n- Add an Extra Fee (e.g., $ 5.00 ) or subtract a fixed amount (e.g., $ -5.00 ).\nAdd an Extra Fee (e.g., $ 5.00 ) or subtract a fixed amount (e.g., $ -5.00 ).\n`5.00`\n`-5.00`\n- Define a Rounding Method by forcing the price after Discount to be a multiple of the value set. The Extra Fee is applied\nafterward. Example To have the final price end with .99 , set the Rounding Method to 1.00 and\nthe Extra Fee to -0.01 .\nDefine a Rounding Method by forcing the price after Discount to be a multiple of the value set. The Extra Fee is applied\nafterward.\nTo have the final price end with .99 , set the Rounding Method to 1.00 and\nthe Extra Fee to -0.01 .\n`.99`\n`1.00`\n`-0.01`\n- Specify the minimum (e.g., $ 20.00 ) and maximum (e.g., $ 50.00 ) profit Margins for computations based on Cost .\nSpecify the minimum (e.g., $ 20.00 ) and maximum (e.g., $ 50.00 ) profit Margins for computations based on Cost .\n`20.00`\n`50.00`\n- Select on which product(s) the price rule should be applied : All Products a Product Category a Product a Product Variant\nSelect on which product(s) the price rule should be applied :\n- All Products\n- a Product Category\n- a Product\n- a Product Variant\n- Add conditions, such as a specific quantity to reach for the price to change by using the Min. Quantity field or a specific period during which the pricelist should be\napplied by using the Validity fields.\nAdd conditions, such as a specific quantity to reach for the price to change by using the Min. Quantity field or a specific period during which the pricelist should be\napplied by using the Validity fields.\n\n### Select pricelists\n\nGo to the specific POS settings and add all the available\npricelists in the Available field. Then, set its default pricelist in the Default field.\nWhen you open a POS session , click the pricelists button, and select\nthe desired pricelist from the list.\n- Multiple pricelists must be selected for the pricelist button to be displayed.\nMultiple pricelists must be selected for the pricelist button to be displayed.\n- If a pricelist is selected on a POS order while its conditions are not met, the price will not be adjusted.\nIf a pricelist is selected on a POS order while its conditions are not met, the price will not be adjusted.\nYou can also set a pricelist to be selected automatically once a specific customer is set . To do so, go to the customer form and switch to the preferred pricelist in the Pricelist field of the Sales & Purchase tab.\n- Pricelists\n- How to use pricelists in an ecommerce environment\nHow to use pricelists in an ecommerce environment", "headings": ["Configuration", "Create pricelists", "Select pricelists"], "doc_id": "e0ab0820ca486301"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/receipts_invoices.html", "title": "Receipts and invoices", "module": "pos", "section": "Receipts and invoices", "text": "# Receipts and invoices\n\n## Receipts\n\nSet up receipts by going to Point of Sale ⣠Configuration ⣠Point of Sale ,\nselecting a POS, and scrolling down to the Bills & Receipts section.\nTo customize the header and footer , activate Header & Footer and fill in\nboth fields with the information to be printed on the receipts.\nTo print receipts automatically once the payment is registered, enable the Automatic\nReceipt Printing setting.\n- Bills and payment\n- ePOS printers\n\n### Reprint a receipt\n\nFrom the POS interface, click Orders , open the dropdown selection menu next to the\nsearch bar, and change the default All active orders filter to Paid . Then,\nselect the corresponding order and click Print Receipt .\nYou can filter the list of orders using the search bar. Type in your reference and click Receipt Number , Date , or Customer .\n\n## Invoices\n\nPoint of Sale allows you to issue and print invoices for registered customers upon payment and retrieve all past invoiced orders.\nAn invoice created in a POS creates an entry into the corresponding accounting journal , previously set up .\n\n### Configuration\n\nTo define what journals will be used for a specific POS, go to the POSâ settings and scroll down to the accounting section. Then, you can determine the\naccounting journals used by default for orders and invoices in the Default Journals section.\n\n### Invoice a customer\n\nUpon processing a payment, click Invoice underneath the customerâs name to issue an\ninvoice for that order.\nSelect the payment method and click Validate . The invoice is automatically issued\nand ready to be downloaded and/or printed.\nTo be able to issue an invoice, a customer must be selected.\n\n### Retrieve invoices\n\nTo retrieve invoices from the POS dashboard ,\n- access all orders made through your POS by going to Point of Sale ⣠Orders â£\nOrders ;\naccess all orders made through your POS by going to Point of Sale ⣠Orders â£\nOrders ;\n- to access an orderâs invoice, open the order form by selecting the order, then click Invoice .\nto access an orderâs invoice, open the order form by selecting the order, then click Invoice .\n- Invoiced orders can be identified by the Invoiced status in the Status column.\nInvoiced orders can be identified by the Invoiced status in the Status column.\n- You can filter the list of orders to invoiced orders by clicking Filters and Invoiced .\nYou can filter the list of orders to invoiced orders by clicking Filters and Invoiced .\n\n### QR codes to generate invoices\n\nCustomers can also request an invoice by scanning the QR code printed on their receipt. Upon\nscanning, they must fill in a form with their billing information and click Get my\ninvoice . On the one hand, doing so generates an invoice available for download. On the other hand,\nthe order status goes from Paid or Posted to Invoiced in the\nOdoo backend.\nTo use this feature, you have to enable QR codes on receipts by going to Point of\nSale ⣠Configuration ⣠Settings . Then, select the POS in the Point of Sale field,\nscroll down to the Bills & Receipts section and enable Use QR code on\nticket .", "headings": ["Receipts", "Reprint a receipt", "Invoices", "Configuration", "Invoice a customer", "Retrieve invoices", "QR codes to generate invoices"], "doc_id": "36fffde4d12021af"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/reporting.html", "title": "Reporting", "module": "pos", "section": "Reporting", "text": "# Reporting\n\n## View statistics\n\nTo access your statistics, go to Point of Sale ⣠Reporting ⣠Orders . Or, from\nthe POS dashboard , click the vertical ellipsis ( ⮠) button, Reporting ,\nand Orders .\nThese statistics are available in a graph or pivot view that you can filter or group depending on\nyour needs.", "headings": ["View statistics"], "doc_id": "b1b8b412b84818e2"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/restaurant.html", "title": "Restaurant features", "module": "pos", "section": "Restaurant features", "text": "# Restaurant features\n\nOdoo Point of Sale provides various features to manage a restaurant or a bar:\n- Organizing the floors and tables ;\nOrganizing the floors and tables ;\n- Taking orders ;\n- Communicating with the kitchen or bar through the POS ;\nCommunicating with the kitchen or bar through the POS ;\n- Printing and splitting bills ;\nPrinting and splitting bills ;\n- Collecting tips ;\n- Setting different taxes for takeaway food .\nSetting different taxes for takeaway food .\nThree main buttons in the POS register allow for navigating between the Floor plan view, tables, and orders :\n- Plan : Access the Floor plan view.\nPlan : Access the Floor plan view.\n- Table : Enter a table or order number, then click Jump to access them. The\nbuttonâs label updates to display the selected number. When applicable, click Book\ntable to confirm the tableâs occupancy.\nTable : Enter a table or order number, then click Jump to access them. The\nbuttonâs label updates to display the selected number. When applicable, click Book\ntable to confirm the tableâs occupancy.\n- ( order ): Create a direct sales order that is not linked to any table. Each click generates the next order in the sequence. Click Release Order to cancel the order (if no products have been added) and return to the Floor plan view.\n( order ): Create a direct sales order that is not linked to any table. Each click generates the next order in the sequence. Click Release Order to cancel the order (if no products have been added) and return to the Floor plan view.\n- When Table Booking is enabled in the POS settings ,\na Booking button appears on the main interface for viewing and managing bookings.\nWhen Table Booking is enabled in the POS settings ,\na Booking button appears on the main interface for viewing and managing bookings.\n- Entering a number through the Table button that does not match an existing table\nnumber creates a direct sales order.\nEntering a number through the Table button that does not match an existing table\nnumber creates a direct sales order.\nTo configure restaurant-specific settings, the Is a Bar/Restaurant setting under the Restaurant Mode section must be enabled in the POS settings .\n\n## Floors and tables\n\nThe Floor plan view is the first screen displayed when accessing the POS register . It enables managing restaurant floors and tables, and monitoring\ntable status in real time (occupancy, reservations, and kitchen orders).\n- Table 101: The table is currently available but booked for 15:00.\nTable 101: The table is currently available but booked for 15:00.\n- Table 102: The table is booked, and an order is sent to the kitchen.\nTable 102: The table is booked, and an order is sent to the kitchen.\n- Table 103: The 12:00 table is running late.\nTable 103: The 12:00 table is running late.\n- Table 104: The table has a pending order.\nTable 104: The table has a pending order.\n- Table 105: The table is available.\nTable 105: The table is available.\n\n### Configuration\n\nCreating floors and tables allows managing table selection and orders .\n\n#### From the POS backend\n\nTo create floors and tables from the backend, go to Point of Sale ⣠Configuration\n⣠Floor Plans , and click New . Follow the next steps to configure the Floor\nplan :\n- Enter a Floor Name .\n- Select the related Point of Sales .\nSelect the related Point of Sales .\n- Optionally, hover the mouse over the placeholder image and click the ( Edit ) icon to add a background image to the restaurant layout.\nOptionally, hover the mouse over the placeholder image and click the ( Edit ) icon to add a background image to the restaurant layout.\n- Click Add a line to create and configure a table: Enter a Table Number . Fill in the number of Seats . Set the tableâs Shape .\nClick Add a line to create and configure a table:\n- Enter a Table Number .\nEnter a Table Number .\n- Fill in the number of Seats .\nFill in the number of Seats .\n- Set the tableâs Shape .\nSet the tableâs Shape .\n- Optionally, activate additional settings by clicking the ( settings ) icon: Adjust the Height , Width , and Color . Tick the Active checkbox to make a table available or not.\nOptionally, activate additional settings by clicking the ( settings ) icon:\n- Adjust the Height , Width , and Color .\nAdjust the Height , Width , and Color .\n- Tick the Active checkbox to make a table available or not.\nTick the Active checkbox to make a table available or not.\n- Enable the Table Booking setting to assign an Appointment resource and\nmake a table bookable.\nEnable the Table Booking setting to assign an Appointment resource and\nmake a table bookable.\n- Click the ( trash ) icon to delete a table.\nClick the ( trash ) icon to delete a table.\nTo create a Floor plan quickly, go to the Restaurant Mode section of the POS settings . Under Floors & Tables Map , type the\nfloor name in the Floors field, and press Enter .\n`Enter`\n\n#### From the POS frontend\n\nTo create floors and tables from the frontend, open the POS register ,\nclick the ( hamburger menu ) icon in the top right corner of the Floor plan view, then Edit Plan . To configure the Floor plan ,\nfollow the next steps:\n- Click the ( Add Floor ) icon to add a floor.\nClick the ( Add Floor ) icon to add a floor.\n- Enter a Floor name and click Apply .\nEnter a Floor name and click Apply .\n- Click the ( Change Floor Background ) icon to select a\nbackground color, or click File to upload an image.\nClick the ( Change Floor Background ) icon to select a\nbackground color, or click File to upload an image.\n- Optionally, click the ( Rename ) icon to rename the Floor plan , the ( Clone ) icon to create a copy, or\nthe ( Delete ) icon to delete it.\nOptionally, click the ( Rename ) icon to rename the Floor plan , the ( Clone ) icon to create a copy, or\nthe ( Delete ) icon to delete it.\n- Click Table to add a new table. To edit a table, select it\nand click one of the following icons: ( Seats ): Add or change the number of seats. ( Square ) or ( Round ): Change\nthe tableâs shape. ( Change Floor Background ): Change the tableâs color. ( Rename ): Change the table number. ( Clone ): Clone the tableâs attributes using the following table\nnumber. ( Delete ): Remove the table.\nClick Table to add a new table. To edit a table, select it\nand click one of the following icons:\n- ( Seats ): Add or change the number of seats.\n( Seats ): Add or change the number of seats.\n- ( Square ) or ( Round ): Change\nthe tableâs shape.\n( Square ) or ( Round ): Change\nthe tableâs shape.\n- ( Change Floor Background ): Change the tableâs color.\n( Change Floor Background ): Change the tableâs color.\n- ( Rename ): Change the table number.\n( Rename ): Change the table number.\n- ( Clone ): Clone the tableâs attributes using the following table\nnumber.\n( Clone ): Clone the tableâs attributes using the following table\nnumber.\n- ( Delete ): Remove the table.\n( Delete ): Remove the table.\n- Click Save .\nRemoving a table or a floor is permanent.\n\n## Order management\n\nTo take an order, open the POS register and follow these steps:\n- Select a floor plan and click a table or click the ( order ) button at the top to create a direct sales order.\nSelect a floor plan and click a table or click the ( order ) button at the top to create a direct sales order.\n- Add products to the order.\nAdd products to the order.\n- Click Order to validate the order.\nClick Order to validate the order.\nWhen ready, process the order payment .\n- To cancel a processed order, click Actions , then Cancel Order . If an order printer is configured , a cancellation ticket is\nautomatically printed.\nTo cancel a processed order, click Actions , then Cancel Order . If an order printer is configured , a cancellation ticket is\nautomatically printed.\n- To switch to another table order, click the button with the table number at the top of the POS\ninterface, enter a table number, and click Jump .\nTo switch to another table order, click the button with the table number at the top of the POS\ninterface, enter a table number, and click Jump .\n- Click Release table to cancel a tableâs occupancy.\nClick Release table to cancel a tableâs occupancy.\n- Configure a printer to send an order to the kitchen\nprinter when clicking Order .\nConfigure a printer to send an order to the kitchen\nprinter when clicking Order .\n\n### Order transfer\n\nTo transfer an order to another table from the POS interface , click Actions , then Transfer/Merge , and choose the target table in the Floor plan view:\n- Select an available table to transfer customers and their orders.\nSelect an available table to transfer customers and their orders.\n- Select an occupied table to merge customers and their orders.\nSelect an occupied table to merge customers and their orders.\n\n## Order printing\n\n### Configuration\n\nTo enable sending orders to a kitchen or a bar printer, connect a printer to Odoo, go to the POS settings , and\nfollow these steps:\n- Scroll down to the Preparation section and enable the Preparation\nPrinters setting.\nScroll down to the Preparation section and enable the Preparation\nPrinters setting.\n- Type the printerâs name in the Printers field and click Create and edit .\nType the printerâs name in the Printers field and click Create and edit .\n- On the printer setup form, select the Printer Type : If the printer is connected to an IoT system , select Use a printer connected to the IoT , and choose the relevant device . This process requires the IoT app and an IoT\nsystem. If using an Epson printer that does not require an IoT system connection , select Use an Epson printer and enter the Epson Printer IP Address .\nOn the printer setup form, select the Printer Type :\n- If the printer is connected to an IoT system , select Use a printer connected to the IoT , and choose the relevant device . This process requires the IoT app and an IoT\nsystem.\nIf the printer is connected to an IoT system , select Use a printer connected to the IoT , and choose the relevant device . This process requires the IoT app and an IoT\nsystem.\n- If using an Epson printer that does not require an IoT system connection , select Use an Epson printer and enter the Epson Printer IP Address .\nIf using an Epson printer that does not require an IoT system connection , select Use an Epson printer and enter the Epson Printer IP Address .\n- Define the product categories to be printed by clicking Add a line in the Printed Product Categories field and selecting the preferred category from the\npopover.\nDefine the product categories to be printed by clicking Add a line in the Printed Product Categories field and selecting the preferred category from the\npopover.\n- Click Save & Close .\n- In the POS settings , click Save .\nIn the POS settings , click Save .\nThe printer is then connected to the point of sale and can print kitchen orders and order receipts.\n- Printing kitchen orders requires assigning a PoS Product Category .\nPrinting kitchen orders requires assigning a PoS Product Category .\n- To create a Printed Product Category on the Add: Printed Product\nCategories popover, click New . Enter a name, select a Parent Category ,\nchoose a Color , click the ( Edit ) icon to add an\nimage, determine the product availability, then click Save & Close .\nTo create a Printed Product Category on the Add: Printed Product\nCategories popover, click New . Enter a name, select a Parent Category ,\nchoose a Color , click the ( Edit ) icon to add an\nimage, determine the product availability, then click Save & Close .\nTo access all preparation printers from the POS settings , scroll\ndown to the Preparation section, and click Printers . Alternatively, go to Point of Sale ⣠Orders â£\nPreparations Printers .\n- Connect an IoT system to a POS\nConnect an IoT system to a POS\n- Connect a printer\n- IoT system connection to Odoo\nIoT system connection to Odoo\n- Preparation display\n\n## Bills and payment\n\n### Bill splitting\n\nTo allow bill splitting, go to Point of Sale ⣠Configuration ⣠Settings , and\nenable Allow Bill Splitting under the Restaurant Mode section.\nTo split a bill from the POS interface , follow these steps:\n- Click Actions , then Split .\nClick Actions , then Split .\n- Select at least one product and click Split Order .\nSelect at least one product and click Split Order .\n- Proceed with the payment .\nProceed with the payment .\n- Click Continue and repeat the process for each guest.\nClick Continue and repeat the process for each guest.\n- Splitting a bill requires ordering at least two products and creates a sub-order, which must\nbe paid before returning to the main order.\nSplitting a bill requires ordering at least two products and creates a sub-order, which must\nbe paid before returning to the main order.\n- Clicking Split Order without selecting any product creates an empty sub-order.\nClicking Split Order without selecting any product creates an empty sub-order.\n\n### Order payment\n\nTo proceed with the order payment from the POS interface , follow\nthese steps:\n- Click Payment .\n- Select a payment method .\nSelect a payment method .\n- Optionally, select a customer and send an invoice to them: Click Customer to select or create a customer account. Enable Invoice to allow sending an invoice to the\ncustomer.\nOptionally, select a customer and send an invoice to them:\n- Click Customer to select or create a customer account.\nClick Customer to select or create a customer account.\n- Enable Invoice to allow sending an invoice to the\ncustomer.\nEnable Invoice to allow sending an invoice to the\ncustomer.\n- Click Validate .\n\n### Receipt printing\n\nTo allow receipt printing, go to Point of Sale ⣠Configuration ⣠Settings , and\nenable Early Receipt Printing under the Restaurant Mode section.\nAfter a successful order payment , click Print Full Receipt to generate and print a bill.\nIf a printer is configured and linked to a point of sale,\nthe receipt is automatically printed upon payment confirmation.\nReceipts and invoices\n\n## Tips\n\n### Configuration\n\nTo allow tipping in a POS, go to the POS settings , scroll down to\nthe Payment section, enable Tips , and click Save .\n- The Add tip after payment setting only works for a POS in the United States\nof America with an Adyen or a Stripe payment terminal .\nThe Add tip after payment setting only works for a POS in the United States\nof America with an Adyen or a Stripe payment terminal .\n- The Add tip through payment terminal (Adyen) setting only works with an Adyen terminal.\nThe Add tip through payment terminal (Adyen) setting only works with an Adyen terminal.\n- Saving the Tips setting automatically fills the Tip product field\nwith the preconfigured [TIPS] Tips product, which is only used for tips. When\nselecting another product in the Tip product field, the chosen product is no\nlonger available on the POS interface .\nSaving the Tips setting automatically fills the Tip product field\nwith the preconfigured [TIPS] Tips product, which is only used for tips. When\nselecting another product in the Tip product field, the chosen product is no\nlonger available on the POS interface .\n- Choose only one tip product per POS.\nChoose only one tip product per POS.\n\n### Tip and payment\n\nTo process a tip during payment , follow these steps:\n- Click Tip , add the amount, then click Ok .\nClick Tip , add the amount, then click Ok .\n- Select a payment method for the order and the tip.\nSelect a payment method for the order and the tip.\n- Click Validate .\nIf the order and the tip are paid using different payment methods, select a payment method for the order, click Tip , add the tip amount, and\nclick Ok . Then, select a payment method for the tip and Validate the\npayment.\n\n### Tip after payment (US only)\n\nTo allow tipping after payment for a POS in the United States of America, ensure the Add\ntip after payment setting is enabled in the POS settings . To\nprocess tips after payment, follow these steps:\n- On the Payment screen, select a Card payment method linked to a Stripe or Adyen terminal.\nOn the Payment screen, select a Card payment method linked to a Stripe or Adyen terminal.\n- Click Close Tab and select the relevant option in the Add a tip screen: 15% , 20% , or 25% : Tip rates based on order total. No Tip . Tip Amount : Enter the relevant amount in the field.\nClick Close Tab and select the relevant option in the Add a tip screen:\n- 15% , 20% , or 25% : Tip rates based on order total.\n15% , 20% , or 25% : Tip rates based on order total.\n- No Tip .\n- Tip Amount : Enter the relevant amount in the field.\nTip Amount : Enter the relevant amount in the field.\n- Click Settle to validate.\nClick Settle to validate.", "headings": ["Floors and tables", "Configuration", "Order management", "Order transfer", "Order printing", "Configuration", "Bills and payment", "Bill splitting", "Order payment", "Receipt printing", "Tips", "Configuration", "Tip and payment", "Tip after payment (US only)"], "doc_id": "4f9af82159d91a4e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/self_order.html", "title": "Self-ordering", "module": "pos", "section": "Self-ordering", "text": "# Self-ordering\n\nThe self-ordering feature allows customers to browse your menu or product catalog, place an order,\nand complete payment using their mobile device or a self-ordering kiosk.\n\n## Configuration\n\n### Feature activation\n\nTo enable this feature and select a self-ordering type, access the POS settings , scroll down to the Mobile self-order & Kiosk section, and\nselect a Self Ordering type under the QR menu & Kiosk activation section.\nSelect QR menu or QR menu + Ordering to give customers access to your\nmenu or product catalog by scanning a QR code on their personal device. The latter also\nallows them to place an order and make a payment.\n- Click Print QR Codes to download a .pdf document with the\ngenerated QR codes.\nClick Print QR Codes to download a .pdf document with the\ngenerated QR codes.\n- Click Download QR Codes to download a compressed file\nwith the generated QR codes.\nClick Download QR Codes to download a compressed file\nwith the generated QR codes.\nIn restaurants , printing or downloading QR codes generates as many QR codes as the\nnumber of available tables. In shops , it generates only one generic QR code.\nTo customize QR codes,\n- Scan the relevant QR code to acquire its URL.\nScan the relevant QR code to acquire its URL.\n- Use a QR code generator (e.g., QR code monkey or QR\ncode generator ) to create a custom QR code.\nUse a QR code generator (e.g., QR code monkey or QR\ncode generator ) to create a custom QR code.\nWhen Kiosk is selected, customers can access the menu or product catalog, place\norders, and pay from a self-ordering kiosk.\nOnce a self-ordering type is selected, the additional settings update to fit the selected typeâs needs.\n\n### Additional settings\n\nThe Home buttons are displayed on the kiosk or mobile device interfaces when\ncustomers are self-ordering. To set them up, click Home\nbuttons . Then,\n- Click New to add a new button.\nClick New to add a new button.\n- Set the Label .\n- Enter a URL preceded by https:// to redirect customers to a specific URL when\nclicking the button. For instance, you might want to redirect them to a campaign video for\na new product or to a contest page.\nEnter a URL preceded by https:// to redirect customers to a specific URL when\nclicking the button. For instance, you might want to redirect them to a campaign video for\na new product or to a contest page.\n`https://`\n- In the same URL column, enter /products to create a button that redirects\ncustomers to the product catalog.\nIn the same URL column, enter /products to create a button that redirects\ncustomers to the product catalog.\n`/products`\n- Select the Points of Sale to ensure this button only appears on the selected\nPOSâ self-ordering interface.\nSelect the Points of Sale to ensure this button only appears on the selected\nPOSâ self-ordering interface.\n- Select a predefined Style from the dropdown menu.\nSelect a predefined Style from the dropdown menu.\n- Leaving the Points of Sale field empty shares the button with all POS.\nLeaving the Points of Sale field empty shares the button with all POS.\n- The Preview column automatically updates, giving you a glimpse of the\nbuttonâs appearance based on its configuration.\nThe Preview column automatically updates, giving you a glimpse of the\nbuttonâs appearance based on its configuration.\n- Set where the service occurs by selecting Table or Pickup zone under the Service field.\nSet where the service occurs by selecting Table or Pickup zone under the Service field.\n- Define when and how customers pay in the Pay after field. Customers can pay\nafter Each meal or for Each order .\nDefine when and how customers pay in the Pay after field. Customers can pay\nafter Each meal or for Each order .\n- The service location and payment options available depend on the type of self-ordering\nservice and POS: QR menu + Ordering : Restaurants : Customers can be served at their table or the pickup zone. When served at their table, they can pay after each meal or each order. When served at the pickup zone, they can only pay after each order. Shops : Customers can only be served at the pickup zone and pay after each order. Regardless of the type of POS, customers can pay online or using any configured payment\nmethod . Kiosk : Regardless of the type of POS, customers can either be served at their table or in the\npickup zone, but they must pay after each order. The kiosk self-ordering only works with Adyen and Stripe terminals. The Online Payment feature is not supported.\nThe service location and payment options available depend on the type of self-ordering\nservice and POS:\n- QR menu + Ordering : Restaurants : Customers can be served at their table or the pickup zone. When served at their table, they can pay after each meal or each order. When served at the pickup zone, they can only pay after each order. Shops : Customers can only be served at the pickup zone and pay after each order. Regardless of the type of POS, customers can pay online or using any configured payment\nmethod .\n- Restaurants : Customers can be served at their table or the pickup zone. When served at their table, they can pay after each meal or each order. When served at the pickup zone, they can only pay after each order.\nRestaurants : Customers can be served at their table or the pickup zone.\n- When served at their table, they can pay after each meal or each order.\nWhen served at their table, they can pay after each meal or each order.\n- When served at the pickup zone, they can only pay after each order.\nWhen served at the pickup zone, they can only pay after each order.\n- Shops : Customers can only be served at the pickup zone and pay after each order.\nShops : Customers can only be served at the pickup zone and pay after each order.\n- Regardless of the type of POS, customers can pay online or using any configured payment\nmethod .\nRegardless of the type of POS, customers can pay online or using any configured payment\nmethod .\n- Kiosk : Regardless of the type of POS, customers can either be served at their table or in the\npickup zone, but they must pay after each order. The kiosk self-ordering only works with Adyen and Stripe terminals. The Online Payment feature is not supported.\n- Regardless of the type of POS, customers can either be served at their table or in the\npickup zone, but they must pay after each order.\nRegardless of the type of POS, customers can either be served at their table or in the\npickup zone, but they must pay after each order.\n- The kiosk self-ordering only works with Adyen and Stripe terminals.\nThe kiosk self-ordering only works with Adyen and Stripe terminals.\n- The Online Payment feature is not supported.\nThe Online Payment feature is not supported.\n- Online payments\n- Payment methods\nThis option allows you to enable multiple languages for the self-ordering interface. The\nsuggested languages are those already installed in Odoo. To expand the selection, add more\nlanguages:\n- Click Add Languages .\nClick Add Languages .\n- Add as many languages as needed to the Languages field.\nAdd as many languages as needed to the Languages field.\n- Click Add .\n- Add those languages to the Available field.\nAdd those languages to the Available field.\nSplash screens are introductory screens displayed when the self-ordering interface or kiosk is\nlaunched. They typically contain branding, welcome messages, or usage instructions.\n- To add a splash screen image, click Add images , select and\nopen an image.\nTo add a splash screen image, click Add images , select and\nopen an image.\n- To remove a splash screen image, hover over the image and click ( Delete ).\nTo remove a splash screen image, hover over the image and click ( Delete ).\nYou can add multiple splash screen images at once.\nActivate this setting to adjust the tax rate based on whether\ncustomers dine in or take their order to go. Then,\n- Fill in the field with an existing Alternative Fiscal Position ;\nFill in the field with an existing Alternative Fiscal Position ;\n- Create and set up a new fiscal position by filling in the field and clicking Create & Edit ; or\nCreate and set up a new fiscal position by filling in the field and clicking Create & Edit ; or\n- Create and set up a new fiscal position by clicking Fiscal\nPositions .\nCreate and set up a new fiscal position by clicking Fiscal\nPositions .\nFlexible taxes (fiscal positions)\n\n### Preview\n\nReview the interface before making the self-ordering feature available to customers to ensure all\nsettings are applied correctly. Click Preview Web interface under the Self Ordering field to ensure all additional settings are correctly applied.\n\n## Usage guidelines\n\nOn the POS userâs end, access the self-ordering interface by\n- Scanning a downloaded or printed QR code; or\nScanning a downloaded or printed QR code; or\n- Clicking the ( vertical ellipsis ) icon on the POS card,\nthen Mobile Menu .\nClicking the ( vertical ellipsis ) icon on the POS card,\nthen Mobile Menu .\nOn the customersâ end,\n- Access the self-ordering interface by scanning a downloaded or printed QR code.\nAccess the self-ordering interface by scanning a downloaded or printed QR code.\n- Click the home button to reach the menu or catalog.\nClick the home button to reach the menu or catalog.\n- Select the items and click Order to place an order.\nSelect the items and click Order to place an order.\n- Follow the instructions on-screen to assign a table and pay for the order.\nFollow the instructions on-screen to assign a table and pay for the order.\nOn the POS userâs end,\n- Click Start Kiosk .\n- Open the provided URL on the self-ordering kiosk(s). Click the provided URL to open the kiosk in a new tab; Click Install App to install the kiosk module on your self-ordering kiosk; or Click Open on IoT Box if your kiosk is connected to an IoT system\nOpen the provided URL on the self-ordering kiosk(s).\n- Click the provided URL to open the kiosk in a new tab;\nClick the provided URL to open the kiosk in a new tab;\n- Click Install App to install the kiosk module on your self-ordering kiosk; or\nClick Install App to install the kiosk module on your self-ordering kiosk; or\n- Click Open on IoT Box if your kiosk is connected to an IoT system\nClick Open on IoT Box if your kiosk is connected to an IoT system\n- Once a session is open, Start Kiosk switches to Open Kiosk on the\nPOS card.\nOnce a session is open, Start Kiosk switches to Open Kiosk on the\nPOS card.\n- Click Open Kiosk on the POS card to reopen the popup window and access the\nself-ordering interface.\nClick Open Kiosk on the POS card to reopen the popup window and access the\nself-ordering interface.\nOn the customersâ end,\n- Click the home button from a self-ordering kiosk to\nreach the menu or product catalog.\nClick the home button from a self-ordering kiosk to\nreach the menu or product catalog.\n- Select the items and click Order to place an order.\nSelect the items and click Order to place an order.\n- Follow the instructions on-screen to assign a table and pay for the order.\nFollow the instructions on-screen to assign a table and pay for the order.\n- A POS session must be open for customers to place an order.\nA POS session must be open for customers to place an order.\n- Once an order is placed, it is automatically sent to the preparation screen and added to the list of POS orders.\nOnce an order is placed, it is automatically sent to the preparation screen and added to the list of POS orders.", "headings": ["Configuration", "Feature activation", "Additional settings", "Preview", "Usage guidelines"], "doc_id": "e64a508df5086dac"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/shop/barcode.html", "title": "Barcodes", "module": "pos", "section": "Barcodes", "text": "# Barcodes\n\nUsing a barcode scanner to process point-of-sale orders improves your efficiency in providing\nquicker customer service. Barcode scanners can be used both to scan products or to log employees\ninto a POS session.\n\n## Configuration\n\nTo use a barcode scanner, you must enable the feature in the Inventory app. Go to Inventory ⣠Configuration ⣠Settings , in the Barcode section, tick Barcode Scanner and save.\n- Set up a barcode scanner\nSet up a barcode scanner\n- Activate barcode scanners\nActivate barcode scanners\nOnce enabled in Inventory , you can use the barcode feature in Point of Sale with products\nthat have a barcode number assigned.\n\n## Assign barcodes\n\n### To your products\n\nTo use this feature in POS, your products must have barcodes assigned. To do so, go to Point of Sale ⣠Products ⣠Products and open a product form . Add a barcode\nnumber in the Barcode field in the General Information tab.\n\n### To your employees\n\nTo add an identification number to an employee, go to the Employees app and open an employee\nform . Choose an identification number for your employee and fill in the PIN Code field in the HR Settings tab.\n\n## Use barcodes\n\n### Scan products\n\nScan a productâs barcode using a barcode scanner. Doing so adds it directly to the cart. To change\nthe quantity, scan a product as many times as needed, or click Qty and enter the number\nof products using the keypad.\nYou can also enter the barcode number manually in the search bar to look for the product. Then,\nclick it to add it to the cart.\n\n### Log employees\n\nYou can also use a barcode scanner to log your employees. To do so, restrict access to the POS and use barcodes to log your employees in your POS.", "headings": ["Configuration", "Assign barcodes", "To your products", "To your employees", "Use barcodes", "Scan products", "Log employees"], "doc_id": "382bfb939d4088dd"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/shop/sales_order.html", "title": "Sales orders", "module": "pos", "section": "Sales orders", "text": "# Sales orders\n\nWhen working in retail, you might need to order products directly from your Point of sale.\nFortunately, Odoo Point of Sale is fully integrated with Odoo Sales, meaning that you can create a\nsales order and pay for it directly from your point of sale.\n\n## Select a sales order\n\nFrom the Point of Sale application, open a new session. Then, click on Quotations/Orders to get the complete list of quotations and sales orders created on the\nsales application.\nTo ease finding the right sales order, you can filter that list on the customer or on the order reference . You can also set the customer before clicking on Quotations/Orders to reduce the list to one particular customer.\n\n## Apply a down payment or settle the order\n\nFrom the list of sales order, select one to make a payment.\n- Settle the order partially : after clicking on Apply a down payment , enter the\npercentage of down payment you want the customer to pay. Then, click on ok and proceed\nwith the order.\nSettle the order partially : after clicking on Apply a down payment , enter the\npercentage of down payment you want the customer to pay. Then, click on ok and proceed\nwith the order.\n- Settle the order completely : click on Settle the order to pay for the total of the\nsales order.\nSettle the order completely : click on Settle the order to pay for the total of the\nsales order.\nOnce you settle a sales order, the applied down payment is automatically deducted from the total\namount.\n- Down payments", "headings": ["Select a sales order", "Apply a down payment or settle the order"], "doc_id": "4df2eff4590794de"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/shop/serial_numbers.html", "title": "Serial numbers and lots", "module": "pos", "section": "Serial numbers and lots", "text": "# Serial numbers and lots\n\nWorking with serial numbers and lots allows tracking your productsâ movements. When products\nare tracked, the system identifies their location based on their last movement.\nTo enable traceability, go to Point of Sale ⣠Products ⣠Products . Then,\nselect a product and check the Tracking By Unique Serial Number or the Tracking By Lots box in the Inventory tab.\n\n## Serial numbers and lots importation\n\nYou can import serial numbers in Point of Sale. To do so, select a sales order or a quotation containing tracked products. Then, agree to load the Lots or Serial Numbers linked\nto the SO .\nThe imported tracking numbers appear below the tracked products. You can modify them by clicking on\nthe list-view button next to the products.\n- Sales orders\n\n## Serial numbers and lots creation\n\nIf a tracked product is available in your POS, adding the product to the cart opens a pop-up window\nwhere you can type or scan the productâs serial or lot numbers. To add more than one of the same\ntracked products, click on enter to validate and start a new line.\n- Changing a tracked productâs quantity using the numpad turns the list-view button red. Click on\nit to add the missing lot and serial numbers.\nChanging a tracked productâs quantity using the numpad turns the list-view button red. Click on\nit to add the missing lot and serial numbers.\n- Lot & Serial Number(s) are required on tracked products but not\nmandatory. Meaning that not attributing some or any does not prevent from completing the\nsale.\nLot & Serial Number(s) are required on tracked products but not\nmandatory. Meaning that not attributing some or any does not prevent from completing the\nsale.\n- Serial numbers\n- Lot numbers", "headings": ["Serial numbers and lots importation", "Serial numbers and lots creation"], "doc_id": "f6f7e6866d354366"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/point_of_sale/shop/ship_later.html", "title": "Ship later", "module": "pos", "section": "Ship later", "text": "# Ship later\n\nThe Ship Later feature allows you to sell products and schedule delivery at a later date. It is\nuseful, for example, when a product is out of stock or so voluminous that it requires to be shipped,\nor if, for any reason, the customer needs their order to be shipped later, etc.\n\n## Configuration\n\nGo to the POS settings , scroll down to the Inventory section, and enable Allow Ship Later .\nOnce activated, you can:\n- Choose the location from where the products are shipped by selecting a Warehouse .\nChoose the location from where the products are shipped by selecting a Warehouse .\n- Define a Specific route , or leave this field empty to use the default route.\nDefine a Specific route , or leave this field empty to use the default route.\n- Define the Shipping Policy ; select As soon as possible if the products\ncan be delivered separately or When all products are ready to ship all the products at\nonce.\nDefine the Shipping Policy ; select As soon as possible if the products\ncan be delivered separately or When all products are ready to ship all the products at\nonce.\n- Delivery methods\n- Warehouses\n\n## Practical application\n\n- Open a session and make a sale.\nOpen a session and make a sale.\n- On the payment screen, set a customer and select Ship Later .\nOn the payment screen, set a customer and select Ship Later .\n- On the popup window, set a shipping date and click Confirm to proceed to payment.\nOn the popup window, set a shipping date and click Confirm to proceed to payment.\nThe system instantly creates a delivery order from the warehouse to the shipping address.\nThe selected customer must have referenced an address in the system for products to be shipped.", "headings": ["Configuration", "Practical application"], "doc_id": "1589b5654b21f739"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales.html", "title": "Sales", "module": "sales", "section": "Sales", "text": "# Sales\n\nOdoo Sales is the application to run your sales process (from quotation to sales order) and\ndeliver and invoice what has been sold.\n- Odoo Tutorials: Sales Tutorials\nOdoo Tutorials: Sales Tutorials", "headings": [], "doc_id": "f55a086d4b163d9f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/amazon_connector/fba.html", "title": "Tracking lot or serial number products with FBA orders", "module": "sales", "section": "Tracking lot or serial number products with FBA orders", "text": "# Tracking lot or serial number products with FBA orders\n\nWhen selling products tracked by lots or unique serial numbers via the Fulfilled By Amazon FBA feature, Amazonâs API does not send the specific lot or unique\nserial number used for the sale. The lack of information triggers a synchronization failure in Odoo.\nTo successfully set up an Amazon FBA order, configure a product\nkit in Odoo based on the original Amazon product. When a new FBA order syncs, Odoo sells the product kit, which prevents the error that occurs with the tracked\nproduct.\nWhen resupplying the Amazon Fulfillment center ,\ntransfer the tracked product to the WH/Amazon location. This records the movement in traceability\nreports and accounts for inventory consumption at the point of transfer rather than the point of\nsale.\n`WH/Amazon`\nThe WH/Amazon location is automatically created as a default location when the first Amazon\naccount is linked.\n`WH/Amazon`\nUnder this system, the quantity of the product kits remains negative indefinitely. Treat this as a\nstandard byproduct of the bypass, as the actual stock levels are managed through the initial\nfulfillment center transfer.\nThis setup does not track the specific lot or unique serial number used for the sale. It only\nensures that the FBA order can be processed without synchronization failures.\n\n## Settings\n\nThe following apps are essential for the product kit workflow:\n- Sales app : Enables connecting an Amazon Seller account to Odoo .\nSales app : Enables connecting an Amazon Seller account to Odoo .\n- Inventory app : Allows for product replenishment by warehouse location .\nInventory app : Allows for product replenishment by warehouse location .\n- Manufacturing app : Enables BoM creation for\nproducts and product kits.\nManufacturing app : Enables BoM creation for\nproducts and product kits.\n\n## Create a product kit\n\nTo enable accurate tracking, create a product kit for the existing Amazon product. When a new FBA order syncs, Odoo sells the kit, which prevents the error that occurs with the tracked product.\nNavigate to Sales app ⣠Products ⣠Products and click New . Then, create a kit as a product that represents the\nAmazon item.\nNever enable Track Inventory for the product kit.\n\n### Link the Amazon item SKU to the product kit\n\nNext, go to the Sales app ⣠Configuration ⣠Offers and click New .\nEnter the desired Amazon market in the Marketplace column, and select the product kit in the Product column. In the Amazon SKU column, enter the SKU of the existing Amazon product.\nThis method removes the link between the Amazon SKU and the tracked product. Breaking this\nconnection is necessary because Odoo cannot automatically assign specific tracking numbers during\nthe sync process.\nKeeping this link active causes a synchronization failure for every FBA order. By\ndisconnecting them, the system bypasses the tracking requirement and allows the sync to complete.\n\n### Create the BoM for the product kit\n\nNavigate to the product kit by clicking the Sales app ⣠Products ⣠Products and\nselect the product kit. Click the Bill of Materials smart button and create a kit BoM .\nIn the Components tab, click Add a line and type in the name of the Amazon\nproduct that is tracked by lots or a unique serial number.\nThe Amazon product must be the sole component of the kit BoM.\nNow the Amazon product can be processed and tracked accurately in the Sales app by using the kit\nproduct and its associated BoM.", "headings": ["Settings", "Create a product kit", "Link the Amazon item SKU to the product kit", "Create the BoM for the product kit"], "doc_id": "dc6e1050c269c61f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/amazon_connector/features.html", "title": "Amazon Connector features", "module": "sales", "section": "Amazon Connector features", "text": "# Amazon Connector features\n\nThe Amazon Connector synchronizes orders between Amazon and Odoo, which considerably reduces the\namount of time spent manually entering Amazon orders (from the Amazon Seller account) into Odoo. It\nalso allows users to accurately keep track of Amazon sales in Odoo.\n\n## Supported features\n\nThe Amazon Connector is able to:\n- Synchronize (Amazon to Odoo) all confirmed orders (both FBA and FBM), and their order items, which\ninclude: product name, description, and quantity shipping costs for the product gift wrapping charges\nSynchronize (Amazon to Odoo) all confirmed orders (both FBA and FBM), and their order items, which\ninclude:\n- product name, description, and quantity\nproduct name, description, and quantity\n- shipping costs for the product\nshipping costs for the product\n- gift wrapping charges\ngift wrapping charges\n- Create any missing partner related to an order in Odoo (contact types supported: contact and\ndelivery address).\nCreate any missing partner related to an order in Odoo (contact types supported: contact and\ndelivery address).\n- Notify Amazon of confirmed shipment in Odoo (FBM) to get paid.\nNotify Amazon of confirmed shipment in Odoo (FBM) to get paid.\n- Synchronize (Odoo to Amazon) all available quantities of your products (FBM).\nSynchronize (Odoo to Amazon) all available quantities of your products (FBM).\n- Support multiple seller accounts.\nSupport multiple seller accounts.\n- Support multiple marketplaces per seller account.\nSupport multiple marketplaces per seller account.\nThe following table lists capabilities provided by Odoo when using the Amazon Connector:\nFulfilled By Amazon (FBA)\nFulfilled By Merchant (FBM)\nSynchronize shipped and\ncancelled orders.\nSynchronize unshipped and cancelled\norders.\nShipping cost is computed\nby Amazon, and included in\nthe synchronized order.\nShipping cost is computed by Amazon\nand included in the synchronized\norders.\nShipping done by Amazon.\nA delivery order is automatically\ncreated in Odoo for each new order.\nOnce it has been processed in Odoo,\nthe status is then synchronized in\nAmazon.\nCost is computed by Amazon, and\nincluded in the synchronized order.\nGift message is added on a line of\nthe order and on the delivery order.\nThen it is up to the user.\nManaged by Amazon, and\nsynchronized with a virtual\nlocation to follow it in\nOdoo.\nManaged in Odoo Inventory app, and\nsynchronized with Amazon.\nDelivery Notifications\nSend by Amazon, based on delivery\nstatus synchronized from Odoo.\nThe Amazon Connector is designed to synchronize the data of sales orders. Other actions, such as\ndownloading monthly fees reports, handling disputes, or issuing refunds, must be managed from\nthe Amazon Seller Central , as usual.\nAs of February 19, 2024, in North American marketplaces, FBA orders\ncreated with the Amazon Connector , do not get the customerâs name passed onto the\nsales/delivery order in Odoo. This is due to the fact that Amazon now calculates, and remits,\nsales tax on behalf of sellers. In other words, personally identifiable customer information is\nnot transmitted to the seller any longer, after a FBA order.\n\n## Supported marketplaces\n\nIf a marketplace is not listed in your Amazon marketplaces, itâs possible to add a new\nmarketplace .\n- Amazon Connector configuration\nAmazon Connector configuration\n- Amazon order management\nAmazon order management", "headings": ["Supported features", "Supported marketplaces"], "doc_id": "94d9615329cebb6e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/amazon_connector/manage.html", "title": "Amazon order management", "module": "sales", "section": "Amazon order management", "text": "# Amazon order management\n\n## Order synchronization\n\nOrders are automatically fetched from Amazon, and synchronized in Odoo, at regular intervals.\nThe synchronization is based on the Amazon status: only orders whose status has changed since the\nlast synchronization are fetched from Amazon. This includes changes on either end (Amazon or Odoo).\nFor FBA (Fulfilled by Amazon), only Shipped and Cancelled orders are fetched.\nFor FBM (Fulfilled by Merchant), the same is done for Unshipped and Cancelled orders. For each\nsynchronized order, a sales order and customer are created in Odoo (if the customer is not already\nregistered in the database).\nWhen an order is cancelled in Amazon, and was already synchronized in Odoo, the corresponding\nsales order is automatically cancelled in Odoo.\n\n## Force synchronization\n\nIn order to force the synchronization of an order, whose status has not changed since the\nprevious synchronization, start by activating the developer mode . This\nincludes changes on either end (Amazon or Odoo).\nThen, navigate to the Amazon account in Odoo ( Sales app ⣠Configuration â£\nSettings ⣠Connectors ⣠Amazon Sync ⣠Amazon Accounts ), and modify the date under Orders Follow-up ⣠Last Order Sync .\nBe sure to pick a date that occurs prior to the last status change of the desired order to\nsynchronize and save. This will ensure synchronization occurs correctly.\nTo immediately synchronize the orders of an Amazon account, switch to developer mode , head to the Amazon account in Odoo, and click Sync Orders . The\nsame can be done with pickings by clicking Sync Pickings .\n\n## Manage deliveries in FBM\n\nWhenever an FBM (Fulfilled by Merchant) order is synchronized in Odoo, a picking is instantly\ncreated in the Inventory app, along with a sales order and customer record. Then, decide to either\nship all the ordered products to the customer at once, or ship products partially using backorders.\nWhen a picking related to the order is confirmed, a notification is then sent to Amazon, who, in\nturn, notifies the customer that the order (or a part of it) is on its way.\nAmazon requires users to provide a tracking reference with each delivery. This is needed to\nassign a carrier.\nIf the carrier doesnât automatically provide a tracking reference, one must be set manually. This\nrule applies to all Amazon marketplaces.\nIf the chosen carrier isnât supported by Odoo, a carrier with the same name can still be created\n(e.g. create a carrier named easyship ). The name used is not case sensitive, but be mindful\nto avoid typos. If there are typos, Amazon will not recognize them. Next, create a delivery\ncarrier named Self Delivery to inform Amazon that the user will make the deliveries. Even with\nthis route, a tracking reference still must be entered. Remember, the customer is notified by\nemail about the delivery, and the carrier, along with the tracking reference, are displayed in\nthe email to the customer.\n`easyship`\n`SelfDelivery`\nThird-party shipping carriers\n\n### Manage errors when synchronizing deliveries\n\nSometimes, Amazon can fail to correctly process all the information sent by Odoo. In this case, Odoo\nsends an email listing all the shipments that failed and the errors Amazon sent with them. In\naddition, these shipments are flagged with a Synchronization with Amazon failed tag.\nUsually, the error can be corrected directly in the Amazon backend or in Odoo. If the problem is\ncorrected in Odoo, synchronize the shipment again using the Retry Amazon Sync button.\nIt might happen that Odoo receives a notification from Amazon saying that some delivery\ninformation was not processed, but without specifying which shipments were affected. In that\ncase, all the shipments in an unknown state will be treated as if they failed to synchronize.\nOnce Odoo receives a notification from Amazon saying that a shipment was processed, its tag will\nchange to Synchronized with Amazon . To speed up this process, on your Amazon account,\nclick on Sync Orders to manually synchronize these orders, or click on Recover Order and enter the relevant Amazon Order Reference.\n\n## Follow deliveries in FBA\n\nWhen an FBA (Fulfilled by Amazon) order is synchronized in Odoo, a stock move is recorded in the Inventory app for each sales order item. That way, itâs saved in the system.\nInventory managers can access these stock moves by navigating to Inventory app â£\nReporting ⣠Moves History .\nFor FBA orders, the stock move is automatically created in Odoo by the Amazon connector, thanks to\nthe shipping status of Amazon. When sending new products to Amazon, the user should manually create\na picking (delivery order) to transfer these products from their warehouse to the Amazon location.\nTo follow Amazon (FBA) stock in Odoo, make an inventory adjustment after replenishing stock. An\nautomated replenishment from reordering rules can also be triggered on the Amazon location.\nThe Amazon location is configurable by accessing the Amazon account managed in Odoo. To access\nAmazon accounts in Odoo navigate to Sales app ⣠Configuration ⣠Settings â£\nConnectors ⣠Amazon Sync ⣠Amazon Accounts .\nAll accounts of the same company use the same Amazon location, by default. However, it is possible\nto follow the stock filtered by marketplace.\nTo do that, first remove the marketplace, where the desired stock to follow separately can be found,\nfrom the list of synchronized marketplaces, which can be found by navigating to Sales app ⣠Configuration ⣠Settings ⣠Connectors ⣠Amazon Sync ⣠Amazon\nAccounts .\nNext, create another registration for this account, and remove all marketplacesâ except the\nmarketplace this is desired to be isolated from the others.\nLastly, assign another stock location to the second registration of the account.\n\n## Invoice and register payments\n\n### Issue invoices\n\nDue to Amazonâs policy of not sharing customer email addresses, it is not possible to send\ninvoices directly to Amazon customers from Odoo. However, it is possible to manually upload the\ngenerated invoices from Odoo to the Amazon back-end.\nAdditionally, for B2B clients, it is currently required to manually retrieve VAT numbers from the\nAmazon back-end before creating an invoice in Odoo.\n\n### Register payments\n\nSince customers pay Amazon as an intermediary, creating a dedicated Bank journal (e.g. named Amazon Payments ), with a dedicated Bank and Cash intermediary account is recommended.\n`AmazonPayments`\nAdditionally, as Amazon makes a single monthly payment, selecting all the invoices linked to a\nsingle payment is necessary when registering payments.\nTo do that, use the appropriate Journal dedicated to Amazon payments, and select Batch Deposit as the Payment Method .\nThen, select all the generated payments, and click Actions ⣠Create batch payment\n⣠Validate .\nThis same action can be performed with vendor bills from Amazon dedicated to commissions.\nWhen the balance is received in the bank account at the end of the month, and the bank statements\nare recorded, credit the Amazon intermediary account by the amount received.\n\n## Follow Amazon sales in sales reporting\n\nOn the Amazon account profile in Odoo, a sales team is set under the Order Follow-up tab.\nThis gives quick access to important metrics related to sales reporting. By default, the Amazon\naccountâs sales team is shared between all of the companyâs accounts.\nIf desired, the sales team on the account can be changed for another, in order to perform a separate\nreporting for the sales of this account.\nIt is also possible to perform reporting on a per-marketplace basis.\nFirst, remove the desired marketplace from the list of synchronized marketplaces.\nTo access the list of synchronized marketplaces in Odoo, navigate to Sales app\n⣠Configuration ⣠Settings ⣠Connectors ⣠Amazon Sync ⣠Amazon Accounts .\nThen, create another registration for this account, and remove all other marketplaces except the one to isolate.\nLastly, assign another sales team to one of the two registrations of the account.\n- Amazon Connector features\nAmazon Connector features\n- Amazon Connector configuration\nAmazon Connector configuration", "headings": ["Order synchronization", "Force synchronization", "Manage deliveries in FBM", "Manage errors when synchronizing deliveries", "Follow deliveries in FBA", "Invoice and register payments", "Issue invoices", "Register payments", "Follow Amazon sales in sales reporting"], "doc_id": "7ca6dc789c8b8e04"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/amazon_connector/setup.html", "title": "Amazon Connector configuration", "module": "sales", "section": "Amazon Connector configuration", "text": "# Amazon Connector configuration\n\nOdoo allows users to register an Amazon seller account in the database, but the user must have\na paid Amazon Seller account prior to completing the configuration.\nSet up a paid Seller account on Amazon by first logging into the Amazon platform, and navigating to Account & Lists ⣠Start a Selling Account from the drop-down menu located in\nthe header section.\nThen on the Sell with Amazon page, follow the sign-up process and finally proceed to\nfollow the instructions below to register and link that Amazon Seller account in Odoo.\n\n## Connect Amazon Seller account to Odoo\n\nTo connect an Amazon Seller account in Odoo, navigate to Sales app â£\nConfiguration ⣠Settings ⣠Connectors section , activate the Amazon Sync feature,\nand click Save .\nThen, return to Sales app ⣠Configuration ⣠Settings ⣠Connectors section ,\nand click on the Amazon Accounts link under the Amazon Sync setting.\nDoing so reveals a separate Amazon Accounts page. From here, click New to\ncreate and link a new Amazon account.\nOn the blank Amazon Account form page, start by choosing a name for the account (e.g. American Marketplace ). Then, in the Credentials tab, select the marketplace on which\nthe seller account was initially created from the Home Marketplace drop-down menu.\n`AmericanMarketplace`\nAfter saving, the field in the Credentials tab is replaced by a Link with\nAmazon button.\nClicking that button redirects to either the Amazon login page, or directly to the required consent\npage, if the user is already logged in to Amazon.\nOn the login page, log in to the desired Amazon seller account.\nOn the consent page, confirm that Amazon is allowed to give Odoo access to the account and related\ndata.\nUpon confirmation, Amazon returns the user to Odoo, and the account has been registered.\nWith the Amazon account successfully registered, the marketplaces available to this specific account\nare synchronized with Odoo and listed under the Marketplaces tab.\nIf desired, remove items from the list of synchronized marketplaces to disable synchronization.\n\n## Amazon orders in Odoo\n\nWhen an Amazon order is synchronized, up to three line items are created on the sales order in Odoo.\nEach one represents a product sold on Amazon: one for the product that was sold on Amazon\nMarketplace, one for the shipping charges (if any), and one for the gift wrapping charges (if any).\nThe selection of a database product for a sales order item is done by matching its Internal Reference (a customizable product reference idenifier in Odoo, like FURN001 )\nwith the Amazon SKU for marketplace items, the Amazon Shipping Code for delivery charges, and\nthe Amazon Gift Wrapping code for gift wrapping charges.\n`FURN001`\nFor marketplace products, pairings are saved as Amazon Offers , which are listed under the Offers smart button on the account form.\nOffers are automatically created when the pairing is established, and theyâre used for subsequent\norders to lookup SKUs. If no offer with a matching SKU is found, the internal reference is\nused instead .\nItâs possible to force the pairing of a marketplace item with a specific product, by changing\neither the product or the SKU of an offer to ensure they match. The offer can be manually created\nif it was not automatically done yet.\nThis is useful if the internal reference is not used as the SKU, or if the product sells under\ndifferent conditions.\nIf no database product with a matching internal reference is found for a given Amazon SKU or gift\nwrapping code, then a default database product, Amazon Sale , is used. The same is done with the\ndefault product Amazon Shipping if no database product is found for a given Amazon shipping code.\nTo modify default products, activate the developer mode , and navigate to Sales app ⣠Configuration ⣠Settings ⣠Connectors ⣠Amazon Sync â£\nDefault Products .\n\n## Product tax configuration\n\nTo allow for tax reporting of Amazon sales with Odoo, the taxes applied to the sales order items are\nthose set on the product, or determined by the fiscal position.\nMake sure to have the correct taxes set on your products in Odoo, or have it done by a fiscal\nposition, to avoid discrepancies in the subtotals between Amazon Seller Central and Odoo.\nAs Amazon does not necessarily apply the same taxes as those configured in Odoo, it may happen\nthat order totals differ by a few cents between Odoo and Amazon Seller Central . Those\ndifferences can be resolved with a write-off when reconciling the payments in Odoo.\n\n## Add a new marketplace\n\nAll marketplaces are supported by the Amazon Connector. To add a new marketplace, proceed as\nfollows:\n- Activate the developer mode .\nActivate the developer mode .\n- Go to Sales app ⣠Configuration ⣠Settings ⣠Connectors ⣠Amazon Sync â£\nAmazon Marketplaces .\nGo to Sales app ⣠Configuration ⣠Settings ⣠Connectors ⣠Amazon Sync â£\nAmazon Marketplaces .\n- Click New to create a new marketplace record.\nClick New to create a new marketplace record.\n- Enter the Marketplace ID in the API Idenifier field, and select the Amazon\nRegion for your marketplace as described in the Amazon Documentation for marketplace IDs and\nregions , and the Seller Central URL as described in the Amazon Documentation for seller central URLs .\nEnter the Marketplace ID in the API Idenifier field, and select the Amazon\nRegion for your marketplace as described in the Amazon Documentation for marketplace IDs and\nregions , and the Seller Central URL as described in the Amazon Documentation for seller central URLs .\n- Set the Name of the record to Amazon.<country code> to easily retrieve it (e.g. Amazon.se ). The API Identifier , the Region and the Seller\nCentral URL fields should respectively hold the Marketplace ID , the selected Amazon region,\nand the Seller Central URL values from the Amazon Documentation.\nSet the Name of the record to Amazon.<country code> to easily retrieve it (e.g. Amazon.se ). The API Identifier , the Region and the Seller\nCentral URL fields should respectively hold the Marketplace ID , the selected Amazon region,\nand the Seller Central URL values from the Amazon Documentation.\n`Amazon.<countrycode>`\n`Amazon.se`\n- Once the marketplace is saved, update the Amazon Account configuration by going to Sales app ⣠Configuration ⣠Settings ⣠Connectors ⣠Amazon Sync â£\nAmazon Accounts .\nOnce the marketplace is saved, update the Amazon Account configuration by going to Sales app ⣠Configuration ⣠Settings ⣠Connectors ⣠Amazon Sync â£\nAmazon Accounts .\n- Select the account on which to use the new marketplace, go to the Marketplaces tab,\nand click on Update available marketplaces . An animation should confirm the success\nof the operation. Newly added marketplaces are automatically added to the list of synchronized\nmarketplaces. If the new marketplace is not added to the list, it means that it is either\nincompatible or unavailable for the seller account.\nSelect the account on which to use the new marketplace, go to the Marketplaces tab,\nand click on Update available marketplaces . An animation should confirm the success\nof the operation. Newly added marketplaces are automatically added to the list of synchronized\nmarketplaces. If the new marketplace is not added to the list, it means that it is either\nincompatible or unavailable for the seller account.\n- Amazon Connector features\nAmazon Connector features\n- Amazon order management\nAmazon order management", "headings": ["Connect Amazon Seller account to Odoo", "Amazon orders in Odoo", "Product tax configuration", "Add a new marketplace"], "doc_id": "191216be361e41df"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/commissions.html", "title": "Commissions", "module": "sales", "section": "Commissions", "text": "# Commissions\n\nCommissions are a powerful tool to motivate sales team members. They incentivize performance, boost\nproductivity, and encourage healthy competition. The Commissions feature in Odooâs Sales application provides a way to reward salespeople or sales teams based on their performance. This\nfeature supports the creation of flexible, measurable commission structures that align with business\ngoals, whether that means driving revenue, volume, profit, or recurring contracts.\n\n## Configuration\n\nTo enable the Commissions feature, navigate to Sales app ⣠Configuration â£\nSettings . Scroll to the Invoicing section, and tick the Commissions checkbox. Then, click Save . Doing so causes a new Commissions menu to appear\nin the menu bar. To create a new commission plan, navigate to Commissions â£\nComission Plans and click New .\n\n## Commission plan structure\n\nEach commission plan is comprised of several components:\n- Based on : Determines whether commissions are awarded based on progress toward Targets or Achievements\nBased on : Determines whether commissions are awarded based on progress toward Targets or Achievements\n- per : Indicates whether the plan applies to individual salespeople or an entire sales\nteam\nper : Indicates whether the plan applies to individual salespeople or an entire sales\nteam\n- Target Frequency : Sets how often targets reset: Monthly , Quarterly , or Yearly .\nTarget Frequency : Sets how often targets reset: Monthly , Quarterly , or Yearly .\n- Achievements : Determines what is being measured toward commissions.\nAchievements : Determines what is being measured toward commissions.\n\n### Target-based commission plans\n\nIn a Target based commission plan, commissions are awarded based on the percentage of sales\ntargets reached. Target based plans are ideal for setting clear, measurable goals, such as invoicing\na specific amount in sales per quarter, then rewarding sales people progressively based on how close\nthey come to reaching or exceeding that goal.\nTarget based plans differ from Achievement based plans because they are based on reaching a\nfixed, predefined goal. They focus on goal-based incentives and performance milestones.\nTo configure a new target based commission plan, navigate to the Sales app â£\nCommissions ⣠Commission Plans , then click New . Click in the Based on drop-down menu and select Targets . Then, select an option in the per field.\nIn the On Target Commission field, set the payout amount for reaching 100% of the\ntarget. Update the Effective Period fields to confirm the dates for this plan. Then,\nupdate the Target Frequency field based on how often the targets should be set and\nevaluated.\n`100%`\n- Monthly : short term goals with frequent payouts.\nMonthly : short term goals with frequent payouts.\n- Quarterly : aligns with business cycles and provides mid-range objectives.\nQuarterly : aligns with business cycles and provides mid-range objectives.\n- Yearly : long term sales goals for strategic planning.\nYearly : long term sales goals for strategic planning.\nAfter the Target Frequency field is updated, the Targets tab updates with a\nlist of the appropriate time frame. For each Period , enter a Target goal.\nOn the Achievements tab, add one or more Achievement metric for this plan by clicking Add a new achievement .\nClick the Sales People tab to assign this plan to the appropriate staff. Click either Add a new Sales Person to add them individually, or Add Multiple\nSalespersons to bulk add several at once.\nThe Add Multiple Salespersons button is only available if Developer mode (debug mode) is active.\n\n### Levels\n\nTo provide additional incentive, commission levels can be added to Target based plans. These\ntiers allow salespeople to earn varying commission amounts based on their performance levels. Levels\ncan start at 0% and increase incrementally. This allows for salespeople to earn commission even if\nthey do not achieve 100% of the target, as well as the ability to achieve over 100% of the\ntarget. Commission levels can be set from the Commissions tab when creating a commission\nplan.\n`0%`\n`100%`\n`100%`\nIf no levels are added above 100%, salespeople are not able to earn above the stated commission.\nIn the plan below, the levels start at 0% , and continue until 300% . If a salesperson exceeds 100% of the expected target, their expected payout continues to increase up to 300% .\n`0%`\n`300%`\n`100%`\n`300%`\n\n### Achievement-based commission plans\n\nIn a Achievement based commission plan, salespeople earn a percentage of their invoice value as\ncommission. Target based plans are ideal for rewarding sales activity consistently, regardless of\nspecific goals. For example, offering a 5% commission on all invoiced amounts, regardless of how\nmuch is sold.\n`5%`\nAchievement based plans differ from Target based plans because they are calculated based on\nactual achievements using a flat, consistent rate. They are beneficial for ongoing, non-goal\nbased compensation plans.\nTo configure a new target based commission plan, navigate to the Sales app â£\nCommissions ⣠Commission Plans , then click New . Click in the Based on drop-down and select Achievements . Then, select an option in the per field.\nUpdate the Effective Period fields to confirm the dates for this plan. Then, update the Target Frequency field based on how often the targets should be set and evaluated.\nOn the Achievements tab, add one or more Achievement metric for this plan by clicking Add a new achievement .\nClick the Sales People tab to assign this plan to the appropriate staff. Click either Add a new Sales Person to add them individually, or Add Multiple\nSalespersons to bulk add several at once.\n\n### Achievements\n\nPerformance can be measured in several ways in performance plans. These are configured in the Achievements tab of each plan.\n- Amount Sold : the total value of sales orders (SOs).\nAmount Sold : the total value of sales orders (SOs).\n- Amount Invoiced : the total value of confirmed invoices.\nAmount Invoiced : the total value of confirmed invoices.\n- Quantity Sold : the total number of units sold via SOs .\nQuantity Sold : the total number of units sold via SOs .\n- Quantity Invoiced : the total number of units invoiced.\nQuantity Invoiced : the total number of units invoiced.\n- Margin : the profit margin (selling price minus cost price).\nMargin : the profit margin (selling price minus cost price).\n- MRR : the new Monthly Recurring Revenue from subscription sales. this option is only available if the Subscriptions app is installed.\nMRR : the new Monthly Recurring Revenue from subscription sales. this option is only available if the Subscriptions app is installed.\nRegardless of what the plan is Based on , each plan needs both Achievements and Targets configured.\n\n## Plan approval\n\nAfter confirming the details of the new plan, click Approve . This moves the plan from\nthe Draft stage into the Approved stage.\nCommissions plans in the Approved stage cannot be edited. To edit an approved\nplan, it must first be Reset to Draft .\nAfter a plan is approved, Odoo automatically tracks performance and calculates commissions based on\nthe established parameters.", "headings": ["Configuration", "Commission plan structure", "Target-based commission plans", "Levels", "Achievement-based commission plans", "Achievements", "Plan approval"], "doc_id": "f9042f778980df10"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/gelato.html", "title": "Gelato", "module": "sales", "section": "Gelato", "text": "# Gelato\n\nGelato is a global print-on-demand platform that integrates with Odoo to sync product catalogs and\nautomate order fulfillment.\nConnecting Gelatoâs services with Odooâs Sales and eCommerce apps enables the following:\n- Sync Odoo sales orders with Gelato for automated order fulfillment\nSync Odoo sales orders with Gelato for automated order fulfillment\n- Create and manage Gelato products within Odoo; supports product variant and image sync\nCreate and manage Gelato products within Odoo; supports product variant and image sync\n- Configure delivery options in Odoo and receive order updates via webhooks.\nConfigure delivery options in Odoo and receive order updates via webhooks.\n\n## Configuration\n\nThe company information ( Company name and Billing address ) in the Gelato account must match\nthe company information in the Odoo database in order for sales orders to be confirmed and sent\nto Gelato for fulfillment.\n\n### Configure API keys and webhooks in Gelato\n\nBefore configuring the Gelato connector in Odoo, first obtain API credentials and webhooks from the\nGelato account.\nAPI connectors enable Odoo Sales to send and receive data from Gelato for order processing,\nwhile webhooks provide real-time updates on order status and shipment tracking.\n\n#### API Key\n\nAn API Key is a unique authentication token that allows Odoo to securely communicate with Gelatoâs\nAPI, enabling order transmission, status updates, and data synchronization.\nAfter logging into Gelato, click Developer in the left menu bar. From\nhere, click on API keys . In the new page, click the Add API Key button to\nopen a new API key form. Type in a name, then click Create Key .\nCopy the generated API key using Copy to Clipboard .\nCopy the API key and store it somewhere safe and secure before leaving this page. Once the page\nis refreshed or exited, the key will not be available to copy.\nIf the key cannot be copied or is lost, return to the API key page and start over,\ncreating a new API key.\n\n#### Webhook\n\nA webhook is an automated notification system that instantly updates Odoo when Gelato processes,\nships, or delivers an order, ensuring real-time tracking and minimal manual intervention.\nTo create a webhook, go to Developer ⣠Webhooks under the Developer drop-down menu in the left menu bar. In the new page, click Add Webhook to open a Create Webhook form.\nThe webhook form requires several specific configurations:\n- URL : This tells Gelato where to send the order updates in Odoo. Copy and paste the\nOdoo database URL with the additional suffix /gelato/webhook . Example https://stealthywood.odoo.com/gelato/webhook\nURL : This tells Gelato where to send the order updates in Odoo. Copy and paste the\nOdoo database URL with the additional suffix /gelato/webhook .\n`/gelato/webhook`\nhttps://stealthywood.odoo.com/gelato/webhook\n`https://stealthywood.odoo.com/gelato/webhook`\n- Events : Click into the field and select order_status_updated . Selecting order_status_updated ensures Odoo receives order changes automatically.\nEvents : Click into the field and select order_status_updated . Selecting order_status_updated ensures Odoo receives order changes automatically.\n- Method : Click into the field and select the HTTP Post option, as this is\nthe request method used to send data from Gelato to Odoo.\nMethod : Click into the field and select the HTTP Post option, as this is\nthe request method used to send data from Gelato to Odoo.\n- Tick the checkbox next to I want to take Authorization to this webhook .\nTick the checkbox next to I want to take Authorization to this webhook .\n- Header Name : In this field, type in signature to match the field in Odoo.\nHeader Name : In this field, type in signature to match the field in Odoo.\n`signature`\n- Click Generate Key to generate a Header Value .\nClick Generate Key to generate a Header Value .\n- Click Create to complete this webhook configuration.\nClick Create to complete this webhook configuration.\nCopy and paste the API key and webhook on a notepad before tabbing out of the Gelato webpage as\nbackup.\n\n### Configure Gelato connector in Odoo\n\nIn Odoo, navigate to Sales app ⣠Configuration ⣠Settings , then scroll to the Connectors section. Enable the Gelato connector by ticking the checkbox.\nNext, paste the newly generated API keys and webhook secret key into their respective fields. Once\nsaved, Gelato is available in Odoo Sales and eCommerce products.\n\n## Synchronizing Gelato products with Odoo Sales\n\nIt is recommended to have products already configured in Gelato before configuring them in Odoo. To\nget the product ID in Gelato, navigate to the Templates page from the side bar menu.\nSelect which product to synchronize in Odoo, then hover over the product card to reveal the (vertical ellipsis) menu icon. Click the menu icon, then click Copy Template ID to copy the product template ID to the clipboard.\nStart selling products with Gelato: Quick & easy setup\n\n### Odoo Sales product\n\nTo create a product in Odoo that matches the Gelato product, navigate to Sales app\n⣠Products ⣠Products , select New to create a new product form. Type in the product Name , then navigate to the Sales tab. Find the Gelato section,\nthen click into the Template Reference field and paste the copied template ID from the\nGelato product. Finally, click Synchronize .\nSuccessful synchronization pulls the Gelato product variant options into the newly configured Odoo\nproduct.\nIn the new Print Images field, click the default marker to set a default\nproduct image. Click the (edit) icon and select the product image file\nto upload, then Save & Close .\nThe Print Images field must be configured on all Gelato products and their\nrespective product variations before they can be ordered.\n\n### Product variants\n\nTo view and edit the newly synchronized product variants, navigate to the Attributes &\nVariants tab, which will have the variants pulled from the Gelato product configuration. Click the Configure button to edit and configure the variant images, delivery methods, additional\npricing, etc.\n\n### Order a Gelato product from Odoo\n\nOnce synchronized, Gelato products are available to order in Odoo through sales quotations or on the eCommerce store. Gelato delivery options are automatically\nsynchronized upon API and webhook configuration.\nTo add Gelato delivery, click Add shipping on the sales order. Select Standard Delivery or Express Delivery in the Shipping Method field, then click Get rate .\nOnce the quotation is confirmed, it becomes an active sales order, and the order is sent to Gelato\nfor fulfillment. Once a sales order is sent from Odoo to Gelato, Gelato processes the order,\nproduces the product at the nearest fulfillment center, and ships it directly to the end-customer.\nWhen creating a sales order for Gelato products in the database, only Gelato products can be\nadded to the same sales order. Multivendor orders are not available with the Gelato connector at\nthis time.", "headings": ["Configuration", "Configure API keys and webhooks in Gelato", "Configure Gelato connector in Odoo", "Synchronizing Gelato products with Odoo Sales", "Odoo Sales product", "Product variants", "Order a Gelato product from Odoo"], "doc_id": "67e269a1574799c2"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/invoicing/down_payment.html", "title": "Down payments", "module": "sales", "section": "Down payments", "text": "# Down payments\n\nA down payment is an initial up-front payment made during the confirmation of a sales transaction.\nWith a down payment, the buyer pays a portion of the total amount owed while agreeing to pay the\nremaining amount at a later date. In turn, the seller provides goods or services to the buyer upon\nor after accepting the down payment, trusting that the remaining amount will be paid later on.\nIn the Odoo Sales app, down payments can be customized to fit the needs of each individual sales\ntransaction.\n\n## Create invoices\n\nWhen a sales order is confirmed, the option to create an invoice becomes available via the Create Invoice button. When clicked, a Create invoice(s) pop-up appears.\nInvoices are automatically created as drafts so they can be reviewed before validation.\nOn the Create invoice(s) pop-up, there are 3 options to choose from in the Create Invoice field:\n- Regular invoice\n- Down payment (percentage)\nDown payment (percentage)\n- Down payment (fixed amount)\nDown payment (fixed amount)\n\n## Initial down payment request\n\nOn the Create invoice(s) pop-up window, the down payment options are:\n- Down payment (percentage)\nDown payment (percentage)\n- Down payment (fixed amount)\nDown payment (fixed amount)\nSelect a down payment option and set the desired payment, either as a percentage or a fixed amount,\nin the Down Payment Amount field.\nOnce all fields are filled in, click the Create Draft button. Upon clicking this button,\nOdoo reveals the Customer Invoice Draft .\nIf an Invalid Operation error appears, double-check that the invoicing policy is configured correctly. In some cases, for example, the invoicing policy is\nconfigured to require delivery before sending an invoice.\nIn the Invoice Lines tab of the Customer Invoice Draft , the down payment\nthat was just configured in the Create invoice(s) pop-up form appears under a new Down Payments section.\n\n## Example: requesting a 50% down payment\n\nThe following example involves a 50% amount down payment on a ( Cabinet with Doors )\nwith Ordered quantities as the Invoicing Policy .\nNavigate to Sales app ⣠New , and add a Customer to the quotation.\nThen, click Add a product in the Order Lines tab, and select the Cabinet with Doors product. When the order is confirmed (via the Confirm button), the quotation turns into a sales order. Once this occurs, create and view the invoice by\nclicking Create Invoice .\nNext, on the Create invoice(s) pop-up window that appears, select Down\npayment (percentage) , and type 50 in the Down Payment field.\n`50`\nThe Income Account attached to the Down payment can be changed. For more\ninformation, check out the documentation on income account modification on down payments . A Down payment Account can also be\nset on a product category. If set, this account is prioritized for future down payments.\nLastly, click Create Draft Invoice to create and view the invoice draft, which includes\nthe down payment under the Down Payments section of the Invoice Lines tab.\nFrom there, the invoice can be confirmed and posted by clicking Confirm . Confirming the\ninvoice changes the status from Draft to Posted . It also reveals a new\nseries of buttons at the top of the page.\nFrom those buttons, the payment can be registered by clicking Pay . Doing so reveals a Pay pop-up form, which is auto-populated with the necessary information. Confirm the\ninformation provided is correct, and make any necessary adjustments. When ready, click the Create Payment button.\nAfter clicking Create Payment , Odoo reveals the customer invoice, now with a green In Payment or Paid banner in the upper-right corner, depending on how the\ndatabase has configured and if manual confirmation of payments is required.\nOn the sales order, a new Down Payments section is present in the Order\nLines tab, along with the down payment that was just invoiced and posted. When the customer wants\nto pay the remaining amount of the order, another invoice must be created.\nNext, click the Create Invoice button. On the Create invoice(s) pop-up\nwindow that appears, there is a new field: Already invoiced and Amount to\ninvoice .\nIf the remaining amount is ready to be paid, select the Regular Invoice option. Odoo\nwill create an invoice for the exact amount needed to complete the total payment, as indicated in\nthe Amount to invoice field.\nOnce ready, click Create Draft Invoice . Doing so reveals another Customer\nInvoice Draft page, listing all the invoices for that specific sales order in the Invoice Lines tab. Each invoice line item displays all the necessary information related\nto each invoice.\nTo complete the flow, click Confirm to change the status of the invoice from Draft to Posted . Then, click Pay . The Pay form\nappears, with all fields auto-populated with the necessary information, including the remaining\namount left to be paid on the order.\nAfter confirming that information, click Create Payment . Doing so reveals the final Customer Invoice with a green In Payment or Paid banner in the\nupper-right corner, depending on how the database has configured and if manual confirmation of\npayments is required. Upon returning to the sales order, both down payments are present in the Order Lines tab.\nAt this point, the flow is now complete. This flow is also possible with the Fixed\namount down payment option.\nIf a down payment is used with a product that has a Delivered quantities invoicing\npolicy, and the cost of the product exceeds the 50% down payment, a regular invoice is created.\nHowever, for products that cost less than the 50% down payment, the down payments will not be\nable to be deducted when it comes time to invoice the customer. This is because the product(s)\nwould have to be delivered before creating the final invoice due to Odoo not allowing negative\ntotals for invoices. If nothing has been delivered, a Credit Note is created, which\ncancels the draft invoice that was created after the down payment.\nTo utilize the Credit Note option, the Inventory application must be installed in\norder to confirm the delivery. Otherwise, the delivered quantity can be entered manually directly\non the sales order.\n\n## Example: requesting a 100% down payment\n\nRequesting a 100% down payment is similar to requesting a 50% down payment , but with fewer steps.\nA 100% down payment is not the same as a full payment of the sales order. A sales order paid\nthrough the regular invoice process will not allow any additional invoices to be generated and\nwill not display the Create Invoice button on the Sales Order. Instead, following\nthis example will cause the Create Invoice button to be displayed on the Sales Order.\nThis is because the system expects another invoice to be created after the down payment to\ncomplete payment of the sales order.\nThe Solar Panel Installation product is being used in this example.\nTo configure a 100% down payment, navigate to Sales app ⣠New and add a Customer to the quote. Next, click Add a product in the Order\nLines tab, and select the Solar Panel Installation product. Upon clicking the Confirm button, the quotation turns into a sales order. At that point, an invoice can now be created by\nclicking Create Invoice in the top-left corner. On the Create invoice(s) pop-up window that appears, select Down payment (percentage) , and type 100 in the Down Payment field.\n`SolarPanelInstallation`\n`100`\nNext, click Create Draft Invoice to create an invoice draft. This will also bring the\ndraft invoice into view, which includes the Down payment under the Down\nPayments section of the Invoice Lines tab. The invoice can now be confirmed and posted\nby clicking Confirm . Confirming the invoice changes the status from Draft to Posted . It also reveals a new series of buttons at the top of the page.\nThe payment can be registered by clicking the Pay button. This brings up the Pay pop-up form, which is auto-populated with the necessary information. When ready,\nclick the Create Payment button.\nAfter clicking Create Payment , Odoo reveals the customer invoice, now with a green In Payment or Paid banner in the upper-right corner, depending on how the\ndatabase has configured and if manual confirmation of payments is required. The process is now\ncomplete, and the 100% down payment has been successfully applied.\n\n## Income account modification on down payments\n\nTo change or adjust the income account attached to down payments, the Accounting app must be\ninstalled. With the Accounting app installed, the Accounting column becomes\navailable on the draft invoice.\nNavigate to the invoice to be modified by going to Sales app ⣠Orders ⣠Orders .\nOpen an order, then click the Invoices smart button. Open an invoice, click the\ndrop-down arrow on the entry in the Account column and click Search more⦠to bring up the Search: Account form. In this form, a different account can be chosen\nfrom the list of pre-existing accounts. A new account can also be created by clicking the New button.", "headings": ["Create invoices", "Initial down payment request", "Example: requesting a 50% down payment", "Example: requesting a 100% down payment", "Income account modification on down payments"], "doc_id": "49555e3fdabab776"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/invoicing/invoicing_policy.html", "title": "Invoicing policies", "module": "sales", "section": "Invoicing policies", "text": "# Invoicing policies\n\nDepending on business needs, it may be advantageous to choose whether to invoice customers based on\nthe goods and services that they order or when those goods and services are delivered to them. To\nallow businesses maximum flexibility to best meet their needs, Odoo offers two invoicing policies\nthat can be enabled in the Sales app: Invoice what is ordered and Invoice what is delivered .\n\n## Configuring an invoicing policy\n\nTo configure an invoicing policy, go to Sales app ⣠Configuration ⣠Settings ,\nand under the Invoicing heading, select an Invoicing Policy option: Invoice what is ordered or Invoice what is delivered .\nActivating an invoicing policy option automatically applies the chosen option to all newly created\nproducts. Existing products must have their invoicing policy manually updated on their product\nforms.\nIf the Invoice what is delivered option is chosen, it is not possible to activate\nthe Automatic Invoice feature, which automatically generates invoices when an online\npayment is confirmed.\n\n### Changing the invoicing policy for existing products\n\nAfter the invoicing policy has been configured in Settings , navigate to a productâs form through Sales app ⣠Products ⣠Products and choosing a product. Locate the Invoicing Policy option located under the General Information tab. Use the\ndrop-down menu to change the policy.\n\n## Invoicing what is ordered\n\nThe Invoice what is ordered option is used as the default mode in the Sales app, which means\ncustomers are invoiced once a quotation has been sent to the customer and confirmed. The creation of\na quotation in turn leads to the creation and confirmation of a sales order. An invoice can then be\ncreated as soon as the sales order is confirmed.\nThis invoicing policy has no impact on the basic Odoo sales flow.\n\n### Invoice ordered quantity workflow\n\nConfirm that the productâs invoicing policy is set to Ordered quantities in the product\nform. Create a quotation and sales order as normal. After the sales\norder has been confirmed, create an invoice by clicking the Create Invoice button on the\nsales order form. Choose the type of invoice to be sent, click Create Draft Invoice ,\nconfirm the invoice when ready, and proceed with the payment flow as normal.\nA independent artisan with a small business sells handmade jewelery nationwide online. Because\nthey have direct control over their inventory levels and ship with 3rd party carriers, they\ninvoice their customers after a sales order has been confirmed.\nThe artisan receives an order for a necklace. They send their customer a quotation, confirm it,\nand create a sales order. After the sales order has been confirmed, an invoice can be created and\nsent to the customer for payment without any additional steps be taken. The invoice gets paid,\nthe necklace is shipped and delivered, and the transaction is complete.\n\n## Invoicing what is delivered\n\nThe Invoice what is delivered option invoices customers as different amounts of the ordered goods\nare delivered. This option is often used for businesses that sell large quantities of physical goods\nin each sales order, but may not always be able to completely fulfill a given order all at once. In\nthese cases, the ordered quantity may differ slightly from the delivered quantity based on product\navailability. Once a quotation is confirmed, and the status changes from Quotation sent to Sales order , Odoo automatically adds both the delivered and invoiced quantities to\nthe invoice and sales order. Both partial and complete deliveries are tracked. Backorders can be created for partial orders that will be completed at a later\ntime.\nThis invoicing policy has a minor impact on the sales flow because the delivered quantity of a\nproduct needs to be manually entered on the sales order.\n\n### Invoice delivered quantity workflow\n\nConfirm that the productâs invoicing policy is set to Delivered quantities in the\nproduct form. Create a quotation and sales order as normal. After\nthe sales order has been confirmed, the product must be delivered before an invoice can be created.\nOnce the product has been shipped and delivery has been confirmed, click the Delivery smart button on the sales order screen and click Validate to validate the delivery\norder. Once at least a partial delivery has been confirmed, return to the sales order form. The Create Invoice button is now purple to indicate that an invoice can be created and\nconfirmed, and that it is possible to proceed with the payment flow as normal.\nIf a user attempts to create an invoice without validating the delivered quantity, the system\nreturns an error message alerting them to the issue.\nA produce distributor using the invoice what is delivered option sells 50 heads of lettuce to a\nlocal restaurant. At the time the delivery is made, only 40 heads are available. The distributor\ndelivers the available heads of lettuce and creates an invoice for what was delivered. Later,\nwhen more supply comes in, the distributor delivers the remaning 10 heads of lettuce and creates\na second invoice to complete the order.\n- Create quotations\n- Down payments\n- Inventory\n- Multi-package shipments\nMulti-package shipments", "headings": ["Configuring an invoicing policy", "Changing the invoicing policy for existing products", "Invoicing what is ordered", "Invoice ordered quantity workflow", "Invoicing what is delivered", "Invoice delivered quantity workflow"], "doc_id": "1d8dbc7dacd816d2"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/invoicing/milestone.html", "title": "Invoice project milestones", "module": "sales", "section": "Invoice project milestones", "text": "# Invoice project milestones\n\nInvoicing based on project milestones can be used for expensive or large-scale projects. The series\nof milestones in a project represent a clear sequence of work that will inevitably result in the\ncompletion of a project and/or contract.\nThis method of invoicing ensures the company gets a consistent flow of money throughout the lifetime\nof the project. Customers can closely monitor every phase of the projectâs development as it\nhappens, in addition to paying a large bill in several installments, instead of all at once.\n\n## Create milestone products\n\nIn Odoo, each milestone of a project is considered as an individual product.\nTo create and/or configure products to work like this, first navigate to Sales app\n⣠Products ⣠Products . Then, click on a product, or create a new one by clicking New .\nThe option to invoice based on milestones is only available for certain product types.\nOn the product form, under the General Information tab, the Product Type field must be set on any of the following options: Service , Event Ticket , Event Booth , or Course .\nWith any of those Product Type options selected, choose Based on Milestones from the Invoicing Policy drop-down menu.\nBeneath that is the Create on Order field.\nTo ensure workflows are as seamless as possible, it is recommended that an option in the Create on Order field is selected.\nLeaving it on the default Nothing option wonât negatively affect the desired\nworkflow. However, a project must then be created directly from a sales order form with that\nspecific product. Once a project is created then milestones and tasks can be created and\nconfigured.\nWhen the Create on Order default option of Nothing is clicked, a drop-down\nmenu is revealed with the following options:\n- Task : Odoo creates a task related to this milestone product in the Projects app when\nthis specific product is ordered.\nTask : Odoo creates a task related to this milestone product in the Projects app when\nthis specific product is ordered.\n- Project & Task : Odoo creates a project and task related to this milestone product in\nthe Projects app when this specific product is ordered.\nProject & Task : Odoo creates a project and task related to this milestone product in\nthe Projects app when this specific product is ordered.\n- Project : Odoo creates a project related to this milestone product in the Projects app when this specific product is ordered.\nProject : Odoo creates a project related to this milestone product in the Projects app when this specific product is ordered.\nWhen Task is selected, a Project field appears. In this field, select to\nwhich existing project in the Projects app this created task should be connected.\nWhen Project & Task or Project is selected, two new fields appear: Project Template and Workspace Template .\nThe Project Template field provides template options to use for the project that will be\ncreated when this specific product is ordered.\nThe Workspace Template field provides template options to use for the workspace (for the Documents app, not the Projects app) that will be automatically generated for the project when\nthis specific product is ordered.\nFor organizational purposes, click the Sales tab on the product form, and enter a\ncustom âMilestoneâ related descriptor in the Sales Description field. This\ninformation appears in the Description column on the Order Lines tab of\nthe sales order.\nOr, directly edit/modify the Description field on the Order Lines tab of\nthe sales order.\nThis is not a requirement.\n\n## Invoice milestones\n\nThe following flow features a trio of milestone products that have Service set as\ntheir Product Type , and Task set on their Create on Order field.\nThose tasks are then attached to a pre-existing Project , which, in this case, is\ntitled, Rebranding Projects .\nTo invoice milestones, create a sales order with the milestone product(s). To do that, go to Sales app ⣠New . Doing so reveals a blank quotation form.\nFrom this quotation form, add a Customer . Then, click Add a product in the Order Lines tab. Next, add the milestone product(s) to the Order Lines tab.\nOnce the corresponding milestone product(s) have been added, click Confirm to confirm\nthe order, which turns the quotation into a sales order.\nWhen the order is confirmed, new smart buttons appear at the top of the sales order based on what\nwas selected in the Create on Order field on the product form.\nFrom the sales order, click the Milestones smart button. Doing so reveals a blank Milestones page. Click New to add milestones.\nEnter a Name for the milestone. Next, apply it to the corresponding Sales\nOrder Item . Lastly, assign a Deadline to the milestone, if desired.\nRepeat that process for all milestone sales order items.\nThen, return to the sales order, via the breadcrumbs. From the sales order, click the Tasks smart button. Doing so reveals a Tasks page with a task for each sales\norder item with that option designated in the Create on Order field.\nTo manually assign a configured milestone to a task, click the desired task, which reveals the task\nform. On the task form, select the appropriate milestone to which this task should be connected, in\nthe Milestone field.\nRepeat this process for all milestone tasks.\nWith those tasks properly configured, employees log in their progress as they work on the task, in\naddition to adding any notes related to the task.\nThen, when that task is complete, that means that milestone has been reached. At that point, it is\ntime to invoice that milestone.\nTo invoice a milestone, first return to the sales order â either via the breadcrumb links, or by\nnavigating to Sales app ⣠Orders ⣠Orders and picking the appropriate sales\norder.\nBack on the sales order form, click the Milestones smart button, and check the box in\nthe Reached column for that particular task.\nNext, return to the sales order â either by clicking View Sales Order on the Milestones page, or via the breadcrumb links.\nBack on the sales order, the line item for the milestone thatâs been reached has its Delivered column filled. Thatâs because the milestone has been reached, and therefore\ndelivered.\nClick Create Invoice in the upper-left corner. Doing so reveals a Create\ninvoices pop-up window.\nOn the Create invoices pop-up window, leave the Create Invoice option on the\ndefault Regular Invoice selection, and click the Create Draft Invoice button.\nUpon clicking Create Draft Invoice , Odoo reveals the Customer Invoice Draft , only showing that reached milestone in the Invoice Lines tab.\nFrom this invoice page, click the Confirm button to confirm the invoice. Then, when the\ncustomer has paid for this milestone, click Register Payment .\nWhen Register Payment is clicked, a Register Payment pop-up window appears.\nOn this pop-up window, confirm the accuracy of the auto-populated fields, then click Create Payment .\nWhen clicked, the pop-up window disappears, and Odoo returns to the invoice for that milestone,\nwhich now has a green In Payment banner in the upper-right corner. This banner signifies\nthe invoice has been paid.\nThen, return to the sales order, via the breadcrumb links. Back on the sales order, in the Order Lines tab, the reached milestone thatâs been invoiced and paid for, now has its Invoiced column filled.\nThere is also a new Invoices smart button at the top of the sales order. Clicking that\nreveals all the invoices that are connected to this sales order.\nSimply repeat the above process for each milestone as it is worked on, and subsequently, completed.\nContinue that process until the entire project has been completed, each milestone has been invoiced,\nand the entire order has been paid for in full.\n- Invoicing based on time and materials\nInvoicing based on time and materials\n- Pro-forma invoices\n- Invoicing policies", "headings": ["Create milestone products", "Invoice milestones"], "doc_id": "ef168767d4939f95"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/invoicing/proforma.html", "title": "Pro-forma invoices", "module": "sales", "section": "Pro-forma invoices", "text": "# Pro-forma invoices\n\nA pro-forma invoice is an abridged or estimated invoice sent in advance of a delivery of goods. It\nnotes the kind and quantity of goods, their value, and other important information, such as weight\nand transportation charges.\nPro-forma invoices are commonly used as preliminary invoices with a quotation. They are also used\nduring importation for customs purposes. They differ from a normal invoice, in that they are not a\ndemand (or request) for payment.\n\n## Configuration\n\nIn order to utilize pro-forma invoices, the Pro-Forma Invoice feature must be activated.\nTo enable this feature, navigate to Sales app ⣠Configuration ⣠Settings , and\nin the Quotations & Orders section, click the checkbox next to Pro-Forma\nInvoice . Then, click Save to save all changes.\n\n## Send pro-forma invoice\n\nWith the Pro-Forma Invoice feature activated, the option to send a pro-forma invoice is\nnow available on any quotation or sales order, via the Send Pro-Forma Invoice button.\nPro-forma invoices can not be sent for a sales order or quotation if an invoice for a down\npayment has already been sent, or for a recurring subscription.\nIn either case, the Send Pro-Froma Invoice button does not appear.\nHowever, pro-forma invoices can be sent for services, event registrations, courses, and/or\nnew subscriptions. Pro-forma invoices are not limited to physical, consumable, or storable goods.\nWhen the Send Pro-Forma Invoice button is clicked, a pop-up window appears, from which\nan email can be sent.\nIn the pop-up window, the Recipients field is auto-populated with the customer from the\nsales order or quotation. The Subject field and the body of the email can be modified,\nif necessary.\nThe pro-forma invoice is automatically added as an attachment to the email.\nWhen ready, click Send , and Odoo instantly sends the email, with the attached pro-forma\ninvoice, to the customer.\nTo preview what the pro-forma invoice looks like, click on the PDF at the bottom of the email\npop-up window before clicking Send . When clicked, the pro-forma invoice is\ndownloaded instantly. Open that PDF to view (and review) the pro-forma invoice.", "headings": ["Configuration", "Send pro-forma invoice"], "doc_id": "aa16fe6e2a97b6b5"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/invoicing/time_materials.html", "title": "Invoicing based on time and materials", "module": "sales", "section": "Invoicing based on time and materials", "text": "# Invoicing based on time and materials\n\nInvoicing based on time and/or materials is typically used when accurately estimating the size of a\nproject isnât possible, or when the requirements of a project may change.\nThis is different from a fixed-price contract, when a customer agrees to pay a specified total for\nthe fulfillment of the contractâno matter what needs to be paid to the employees, sub-contractors,\nvendors, suppliers, and so on.\nThe Odoo Sales app can invoice for time and various other expenses (e.g. transport, lodging), as\nwell as purchases needed to fulfill an order.\n\n## App and settings configuration\n\nFirst, in order to accurately keep track of the progress of a project, the Odoo Project and Accounting apps must be installed.\nTo install the Project app, navigate to Odoo main dashboard ⣠Apps . Then, on\nthe Apps page, locate the Project app block, and click Activate .\nThe page automatically refreshes and returns to the main Odoo dashboard, where the Project app is\nnow available to access.\nRepeat the same process to install the Accounting application.\nAfter installation, click the Accounting app icon from the main Odoo dashboard, and\nnavigate to Configuration ⣠Settings . On the Settings page, scroll\ndown to the Analytics section, and ensure the box next to Analytic\nAccounting is checked.\nThen, click Save to save all changes.\nThen, navigate to Odoo main dashboard ⣠Project app ⣠Configuration â£\nSettings . On the Settings page, in the Time Management section, ensure the\nbox beside the Timesheets feature is checked.\nThen, click Save to save all changes.\n\n## Service product configuration\n\nWith the Timesheets feature activated in the Project app, it is now possible to invoice for time\nspent on a project, but only when the following product configurations have been made.\nInvoicing for time spent on a project is only possible with products that have Service set\nas the Product Type on their product form.\nTo configure a service product, first navigate to Sales app ⣠Products â£\nProducts . On the Products page, select the desired service product to be configured, or\nclick New to create a new product.\nFrom the product form, in the General Information tab, set the Product Type to Service . Then, open the drop-down menu in the Invoicing Policy field, and\nselect Based on Timesheets .\nNext, from the Create on Order drop-down menu, select Project & Task . That\nsetting indicates that, when a sales order is created with this specific service product, a new\nproject and task is created in the Project app.\nThe option Task can be chosen instead from the Create on Order drop-down\nmenu. If Task is chosen, select an existing project that the task will appear in from Project field, which only appears if Task is chosen in the Create on Order field.\n\n## Add time spent to sales order\n\nAfter properly configuring a service product with the correct Invoicing Policy and Create on\nOrder options, it is possible to add time spent to a sales order.\nTo see that in action, navigate to Sales app ⣠New to open a blank quotation\nform. Then, proceed to add a Customer , and in the Order Lines tab, click Add a product , and select the properly configured service product from the drop-down menu.\nNext, click Confirm to confirm the order.\nAfter confirming the sales order, two smart buttons appear at the top of the order form: Projects and Tasks .\nIf the Projects smart button is clicked, it reveals the specific project related to this\nsales order. If the Tasks smart button is clicked, it reveals the specific project task\nrelated to this sales order. Both are also accessible in the Project app.\nIn order to add time spent on a sales order, click the Tasks smart button.\nOn the task form, select the Timesheets tab. From the Timesheets tab,\nemployees can be assigned to work on the project, and the time they spend working on the task can be\nadded by the employees or by the person who created the sales order.\nTo add an employee, and the time spent working on the task, click Add a line in the Timesheets tab. Then, select the appropriate Date and Employee .\nThere is also the option to add a brief description of the work done during this time in the Description column, but itâs not required.\nLastly, enter the amount of time worked on the task in the Hours Spent column, and click\naway to complete that line in the Timesheets tab.\nThe time entered in the Hours Spent column is immediately reflected in the Allocated Time field (located near the top of the task form) as a percentage, which\nreflects how much of the total allocated work hours have been done so far.\nThat same information is found as numerical hours in the Hours Spent and Remaining Hours fields, located at the bottom of the Timesheets tab.\nRepeat this process for however many employees and hours have been worked on the project.\n\n## Invoice time spent\n\nOnce all the necessary employees and time spent have been added to the project task, return to the\nsales order to invoice the customer for those hours. To do that, either click the Sales\nOrder smart button at the top of the task form, or return to the sales order via the breadcrumb\nlinks, located in the upper-left of the screen.\nBack on the sales order form, the time that was added to the task is reflected in the Order Lines tab (in the Delivered column) and in the new Recorded\nHours smart button at the top of the sales order.\nTo invoice the customer for time spent on the project, click Create Invoice , and select Regular invoice from the Create invoices pop-up window. Then, click Create Draft Invoice .\nDoing so reveals a Customer Invoice Draft , clearly showing all the work thatâs been done\nin the Invoice Lines tab.\nPay attention to the Analytic Distribution column in the Customer\nInvoice , as that information is necessary to ensure other time/material invoicing tasks are\ncompleted properly and accurately.\nClick Confirm to confirm the invoice and continue with the invoicing process.\n\n## Expenses configuration\n\nIn order to track and invoice expenses related to a sales order, the Odoo Expenses app must be\ninstalled.\nTo install the Expenses app, navigate to Odoo main dashboard ⣠Apps . Then, on\nthe Apps page, locate the Expenses app block, and click Activate .\nThe page automatically refreshes and returns to the main Odoo dashboard, where the Expenses app is now available to access.\n\n## Add expenses to sales order\n\nTo add an expense to a sales order, first navigate to the Expenses app. Then, from\nthe main Expenses dashboard, click New , which reveals a blank expense form.\nOn the expense form, add a Description of the expense (e.g. Hotel Stay , Plane Ticket ). Next, in the Category field, select the appropriate option from the drop-down\nmenu (e.g. Meals , Miles , Travel & Accommodation ).\n`HotelStay`\n`PlaneTicket`\nExpense categories can be added and modified by navigating to Expenses app â£\nConfiguration ⣠Expense Categories .\nThen, enter the total amount of the expense in the Total field, as well as any Included Taxes that may apply. Next, ensure that the correct Employee is\nselected, and designate who paid for the expense in the Paid By field: the Employee (to reimburse) or the Company .\nNext, in the Customer to Reinvoice field, select the appropriate sales order from the\ndrop-down menu. Then, select that same sales order information from the Analytic\nDistribution field, as well.\nThe Analytic Distribution field will only have the corresponding sales order as\nan option if the sales order contains a service product that is billed based on Timesheets , Milestones , or Delivered Quantities .\nIf there are any receipts that should be uploaded and attached to the expense, click the Attach Receipt button, and upload the necessary documents to the expense. This is not required, but it may affect whether or not an expense is approved.\nWhen all the information has been entered, click Create Report to create an expense\nreport detailing all the expense information that was just entered.\nThen, thereâs the option to Submit to Manager for approval. Once approved, the Report in Next Payslip appears.\nTo showcase a complete flow in this example, select Submit to Manager . Then, the manager\nwould click Approve to approve this expense, and click Post Journal Entries to post this expense to the accounting journal.\n\n## Invoice expenses\n\nTo invoice a customer for an expense on a sales order , navigate to the related sales order, either from the Sales app or from the expense report in the Expenses app. From the\nexpense report, click the Sales Orders smart button at the top of the page.\nIf the expense report was linked to the sales order, the newly-configured expense now has its own\nline in the Order Lines tab, and can be invoiced to the customer.\nTo invoice the customer for the expense on the sales order, click Create Invoice , select Regular Invoice from the Create invoices pop-up window, then click Create Draft Invoice .\nDoing so reveals a Customer Invoice Draft for the expense. Then, the invoicing process\ncan be completed as usual.\n\n## Purchase configuration\n\nIn order to invoice a customer for purchases made on a sales order, the Purchase application must be installed.\nTo install the Purchase application, navigate to Odoo main dashboard ⣠Apps .\nThen, on the Apps page, locate the Purchase app block, and click Activate . The page automatically refreshes and returns to the main Odoo dashboard, where\nthe Purchase app is now available to access.\n\n## Add purchase to sales order\n\nTo add a purchase to a sales order, a purchase order must first be created. To create a purchase\norder, navigate to Purchase app ⣠New to reveal a blank purchase order form.\nFirst, add a Vendor to the purchase order. Then, under the Products tab,\nclick the extra column options drop-down menu, represented by two horizontal lines with\ndots on them, located to the far-right of the column headers. From that drop-down menu, select Analytic Distribution .\nAfter adding the Analytic Distribution column to the headers on the Products tab of the purchase order form, proceed to add the product(s) to the purchase order. To do that,\nclick Add a product , and select the desired product from the drop-down menu. Repeat for\nall the products to add.\nIn order for a purchase to be properly invoiced on a sales order, the product on the purchase\norder must be marked as Can be Expensed , have an Invoicing Policy set\nto Delivered quantities , and have the At cost option selected in the Re-Invoice Expenses field on its product form.\nThen, select the appropriate Analytic Distribution associated with the sales order to\nwhich this purchase order is related. To do that, click the empty Analytic Distribution field to reveal an Analytic pop-up window.\nThen, from the Departments drop-down menu, select the analytic distribution associated\nwith the desired sales order to be invoiced for the purchase.\nOnce all the information is entered in the Products tab of the purchase order, confirm\nthe order by clicking Confirm Order . Then, click Receive Products when the\nproducts have been received. This creates a receipt form.\nIf any serial/lot numbers must be entered before validating the receipt of products, then on the\nreceipt form, click the details icon represented by four horizontal lines located to\nthe far-right of the product line.\nThis reveals a Detailed Operations tab, in which the necessary Lot/Serial\nNumber(s) and Done quantity can be added. When ready, click Confirm to\nconfirm the data.\nThen, click Validate to validate the purchase order.\nNext, return to the purchase order, via the breadcrumb links at the top of the page, and click Create Bill to create a vendor bill that can be invoiced to the customer on the attached\nsales order.\nMake sure to enter a Bill Date on the Vendor Bill Draft before\nconfirming. If a Bill Date is not entered, an error window appears, requesting that\ninformation to be entered before confirmation can occur.\nThen, click Confirm to confirm the vendor bill, which is then automatically added to the\nsales order, where it can be invoiced directly to the customer attached to it.\n\n## Invoice purchase\n\nTo invoice a customer for a purchase on a sales order, first add the purchase to the sales\norder , then navigate to the desired sales order in\nthe Sales app.\nOn the sales order that was attached to the purchase order, the purchased product now has its own\nproduct line under the Order Lines tab, and it is ready to be invoiced.\nTo invoice the customer for the purchase, simply click Create Invoice , select Regular Invoice from the Create invoices pop-up window, then click Create Draft Invoice .\nDoing so reveals a Customer Invoice Draft with the newly-added purchase order product in\nthe Invoice Lines tab.\nTo complete the invoicing process, click Confirm to confirm the invoice, and then click Register Payment in the Register Payment pop-up form.", "headings": ["App and settings configuration", "Service product configuration", "Add time spent to sales order", "Invoice time spent", "Expenses configuration", "Add expenses to sales order", "Invoice expenses", "Purchase configuration", "Add purchase to sales order", "Invoice purchase"], "doc_id": "4e256b17f5726a8f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/products_prices/ewallets_giftcards.html", "title": "Use eWallets and gift cards", "module": "sales", "section": "Use eWallets and gift cards", "text": "# Use eWallets and gift cards\n\nWith Odoo, customers can use eWallets and gift cards for online and in-store shopping.\nTo enable eWallets and gift cards for eCommerce and Point of Sale (PoS), first enable Discounts, Loyalty & Gift Card under Sales app ⣠Configuration â£\nSettings ⣠Pricing section . Once enabled, go to Sales app ⣠Products ⣠Gift\ncards & eWallet and Create a new eWallet or gift card program.\n\n## eWallets\n\neWallets allow customers to save credits on their online account and use these credits as a payment\nmethod when buying items in an online store or a brick-and-mortar store. eWallets can also be used\nto centralize multiple gift cards .\nBefore creating an eWallet program, it is necessary to create an eWallet top-up product. Top-ups\nare pre-defined digital credit values added to an eWallet in exchange for its equivalent in real\ncurrency. These credits can then be used as a payment method in the eCommerce shop or PoS . Top-up values can be of different amounts.\nA $50 top-up can be bought for $50, and adds that same amount of credits to the eWallet.\nTo create a top-up product, go to Sales app ⣠Products ⣠Products and Create a new product. On the product template, configure the options as follows:\n- Product Name : enter a name for the top-up product (for example, $50 Top-Up )\nProduct Name : enter a name for the top-up product (for example, $50 Top-Up )\n`$50Top-Up`\n- Can be Sold : enabled\nCan be Sold : enabled\n- Product Type : select Service\nProduct Type : select Service\n- Invoicing Policy : select Prepaid/Fixed Price\nInvoicing Policy : select Prepaid/Fixed Price\n- Create on Order : select Nothing\nCreate on Order : select Nothing\n- Sales Price : enter the amount of the top-up\nSales Price : enter the amount of the top-up\nIn order to have eWallet top-ups of different amounts, create multiple top-up products and\nmodify the Sales Price accordingly.\nOnce the top-up is created, go to Sales app ⣠Products ⣠Gift cards & eWallet to Create an eWallet program. The following configuration options are available:\n- Program Name : enter a name for the eWallet program\nProgram Name : enter a name for the eWallet program\n- Program Type : select eWallet\nProgram Type : select eWallet\n- eWallet Products : select the eWallet top-up created earlier. Repeat the process if\nyou created top-ups of different amounts.\neWallet Products : select the eWallet top-up created earlier. Repeat the process if\nyou created top-ups of different amounts.\n- Email template : select the email template used for the email sent to the customer. To\ncreate a new template, click on the field, select Search More , and then click Create .\nEmail template : select the email template used for the email sent to the customer. To\ncreate a new template, click on the field, select Search More , and then click Create .\n- Currency : select the currency to use for the eWallet program\nCurrency : select the currency to use for the eWallet program\n- Company : select the company for which the program is valid and available\nCompany : select the company for which the program is valid and available\n- Available On : select the applications on which the program is valid and available\nAvailable On : select the applications on which the program is valid and available\n- Website : select the website on which the program is valid and available. Leave this\nfield empty to include all websites.\nWebsite : select the website on which the program is valid and available. Leave this\nfield empty to include all websites.\n- Point of Sale : select the PoS in which the program is valid\nand available. Leave this field empty to include all PoS .\nPoint of Sale : select the PoS in which the program is valid\nand available. Leave this field empty to include all PoS .\nOnce the program is configured, click the Generate eWallet button in the upper-left\ncorner to generate eWallets. eWallets can be generated based on Customers and/or Customer Tags . The quantity is automatically adapted according to the Customers and Customer Tags selected. Then, set the eWallet\nvalue . Finally, set the Valid Until period if applicable.\nGenerated eWallets can be accessed through the eWallets smart button in the upper-right\ncorner. From there, Send or Share the eWallets via email or a URL link.\nClick on an eWallet to change the Expiration Date , Partner , or Balance . The Code of an eWallet cannot be changed, deleted, or duplicated.\n\n## Gift cards\n\nGift cards can be purchased by customers, and in turn used as a payment method upon checkout at an\neCommerce shop or PoS .\nBefore creating a new gift card program, it is necessary to first create gift cards as products. To\ndo so, go to Sales app ⣠Products ⣠Products and Create a product.\nOn the product template, configure the options as follows:\n- Product Name : enter a name for the gift card product\nProduct Name : enter a name for the gift card product\n- Can be Sold : enabled\nCan be Sold : enabled\n- Product Type : select Service\nProduct Type : select Service\n- Invoicing Policy : select Prepaid/Fixed Price\nInvoicing Policy : select Prepaid/Fixed Price\n- Create on Order : select Nothing\nCreate on Order : select Nothing\n- Sales Price : enter the amount of the gift card\nSales Price : enter the amount of the gift card\nIn order to have gift cards of different amounts, create multiple gift card products and modify\nthe Sales Price accordingly.\nOnce the gift card product is created, go to Sales app ⣠Products ⣠Gift cards\n& eWallet to Create a gift card program. The following configuration options are\navailable:\n- Program Name : enter a name for the gift card program\nProgram Name : enter a name for the gift card program\n- Program Type : select Gift Card\nProgram Type : select Gift Card\n- Gift Card Products : select the gift card product created earlier. Repeat the process\nif you created gift card products of different amounts.\nGift Card Products : select the gift card product created earlier. Repeat the process\nif you created gift card products of different amounts.\n- Email template : select the default Gift Card: Gift Card Information template, or create a new template by clicking on the field, selecting Search More ,\nand then clicking Create .\nEmail template : select the default Gift Card: Gift Card Information template, or create a new template by clicking on the field, selecting Search More ,\nand then clicking Create .\n- Print Report : select Gift Card\nPrint Report : select Gift Card\n- Currency : select the currency to use for the gift card program\nCurrency : select the currency to use for the gift card program\n- Company : select the company for which the program is valid and available\nCompany : select the company for which the program is valid and available\n- Available On : select the applications on which the program is valid and available\nAvailable On : select the applications on which the program is valid and available\n- Website : select the website on which the program is valid and available. Leave this\nfield empty to include all websites.\nWebsite : select the website on which the program is valid and available. Leave this\nfield empty to include all websites.\n- Point of Sale : select the PoS in which the program is valid\nand available. Leave this field empty to include all PoS .\nPoint of Sale : select the PoS in which the program is valid\nand available. Leave this field empty to include all PoS .\nOnce the program is configured, click the Generate Gift Cards button in the upper-left\ncorner to generate gift cards. Gift cards can be generated either for Anonymous\nCustomers or Selected Customers . Set the Quantity to generate for Anonymous Customers , or select the Customers and/or Customer\nTags for Selected Customers . Then, set the Gift Card value . Finally, set\nthe Valid Until period if applicable.\nGenerated gift cards can be accessed through the Gift Cards smart button in the\nupper-right corner. From there, Send or Share the gift cards via email or a\nURL link.\nClick on a gift card to change the Expiration Date , Partner , or Balance . The Code of a gift card cannot be changed, deleted, or\nduplicated.", "headings": ["eWallets", "Gift cards"], "doc_id": "3ac819bca005035d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/products_prices/loyalty_discount.html", "title": "Discount and loyalty programs", "module": "sales", "section": "Discount and loyalty programs", "text": "# Discount and loyalty programs\n\nThe Odoo Sales , eCommerce , and Point of Sale applications allow users to create discount and\nloyalty programs that customers can use for online and in-store shopping. These programs offer more\nvaried, public, and time-sensitive pricing options than pricelists .\n\n## Configure the settings\n\nTo begin using discount and loyalty programs, navigate to Sales ⣠Configuration\n⣠Settings . Under the Pricing heading, activate the Discounts, Loyalty &\nGift Card setting by checking the box next to the feature. Finally, click Save to save\nthe changes.\n\n## Configure discount and loyalty programs\n\nTo create discount and loyalty programs, go to Sales ⣠Products ⣠Discount &\nLoyalty .\nIf no discount or loyalty programs have been created yet, Odoo provides a choice of templates to\nhelp create the first program. Choose one of the template cards, or click New to create\na new program from scratch.\nOr, if there are already existing programs, select an existing program to edit it.\nTemplates only appear when no programs have been created, and they disappear once the first\nprogram is created.\nCreating or editing a program opens the program form.\nThe program form contains the following fields:\n- Program Name : Enter the name of the program in this field. The program name is not visible to the customer.\nProgram Name : Enter the name of the program in this field. The program name is not visible to the customer.\n- Program Type : Select the desired program type from the drop-down menu.\nProgram Type : Select the desired program type from the drop-down menu.\n- Currency : Select the currency used for the program.\nCurrency : Select the currency used for the program.\n- Pricelist : If desired, select a pricelist from the drop-down menu to have this loyalty\nprogram applied to a specific pricelist (and customers attached to the pricelist). More than one\npricelist can be selected in this field. When a single loyalty program is linked to several\npricelists, it makes it viable for different customer segments to have different pricelists, but\nthe same loyalty programs. If this field is left blank, the program applies to everyone,\nregardless of pricelist.\nPricelist : If desired, select a pricelist from the drop-down menu to have this loyalty\nprogram applied to a specific pricelist (and customers attached to the pricelist). More than one\npricelist can be selected in this field. When a single loyalty program is linked to several\npricelists, it makes it viable for different customer segments to have different pricelists, but\nthe same loyalty programs. If this field is left blank, the program applies to everyone,\nregardless of pricelist.\n- Points Unit : Enter the name of the points used for the Loyalty Cards program (e.g. Loyalty Points ). The points unit name is visible to the customer. This field is only available when the Program Type is set to Loyalty Cards .\nPoints Unit : Enter the name of the points used for the Loyalty Cards program (e.g. Loyalty Points ). The points unit name is visible to the customer. This field is only available when the Program Type is set to Loyalty Cards .\n`LoyaltyPoints`\n- Start Date : Select the date on which the program becomes valid. Leave this field blank\nif the program should always be valid and not expire.\nStart Date : Select the date on which the program becomes valid. Leave this field blank\nif the program should always be valid and not expire.\n- End Date : Select the date on which the program stops being valid. Leave this field\nblank if the program should always be valid and not expire.\nEnd Date : Select the date on which the program stops being valid. Leave this field\nblank if the program should always be valid and not expire.\n- Limit Usage : If desired, tick this checkbox, and enter a number of usages to limit the number of times the program can be used during the validity period.\nLimit Usage : If desired, tick this checkbox, and enter a number of usages to limit the number of times the program can be used during the validity period.\n- Company : If working in a multi-company database, choose the one company for which the\nprogram is available. If left blank, the program is available to all companies in the database.\nCompany : If working in a multi-company database, choose the one company for which the\nprogram is available. If left blank, the program is available to all companies in the database.\n- Available On : Select the apps on which the program is available.\nAvailable On : Select the apps on which the program is available.\n- Website : Select a website on which the program is available. Leave this field blank to\nmake it available on all websites.\nWebsite : Select a website on which the program is available. Leave this field blank to\nmake it available on all websites.\n- Point of Sale : Select the point(s) of sale at which the program is available. Leave\nthis field blank to make it available at all PoS .\nPoint of Sale : Select the point(s) of sale at which the program is available. Leave\nthis field blank to make it available at all PoS .\nThe options available on the program form vary depending on the Program Type selected.\nAll of the existing cards, codes, coupons, etc. that have been generated for the program are\naccessible through the smart button located at the top of the form.\nIn Odoo 17 (and later), when a loyalty card or coupon is associated with a contact in the\ndatabase, a Loyalty Cards smart button conditionally appears on the contact form.\nThis smart button only appears if a loyalty card or coupon is associated with the contact.\n\n### Program types\n\nThe different Program Types available on the program form are:\n- Coupons : Generate and share single-use coupon codes that grant immediate access to\nrewards.\nCoupons : Generate and share single-use coupon codes that grant immediate access to\nrewards.\n- Loyalty Cards : When making purchases, the customer accumulates points to exchange for\nrewards on current and/or future orders.\nLoyalty Cards : When making purchases, the customer accumulates points to exchange for\nrewards on current and/or future orders.\n- Promotions : Set conditional rules for ordering products, which, when fulfilled, grant\naccess to rewards for the customer.\nPromotions : Set conditional rules for ordering products, which, when fulfilled, grant\naccess to rewards for the customer.\n- Discount Code : Set codes which, when entered upon checkout, grant discounts to the\ncustomer.\nDiscount Code : Set codes which, when entered upon checkout, grant discounts to the\ncustomer.\n- Buy X Get Y : for every (X) item bought, the customer is granted 1 credit. After\naccumulating a specified amount of credits, the customer can trade them in to receive (Y) item.\nBuy X Get Y : for every (X) item bought, the customer is granted 1 credit. After\naccumulating a specified amount of credits, the customer can trade them in to receive (Y) item.\n- Next Order Coupons : Generate and share single-use coupon codes that grant access to\nrewards on the customerâs next order.\nNext Order Coupons : Generate and share single-use coupon codes that grant access to\nrewards on the customerâs next order.\n\n### Conditional rules\n\nNext, configure the Conditional rules that determine when the program applies to a\ncustomerâs order.\nIn the Rules & Rewards tab, click Add next to Conditional rules to add conditions to the program. This reveals a Create Conditional rules pop-up\nwindow.\nThe options for Conditional rules vary depending on the selected Program Type .\nThe following options are available for configuring conditional rules:\n- Discount Code : Enter a custom code to be used for the Discount Code program, or use the default one generated by Odoo. This field is only available when the Program Type is set to Discount Code .\nDiscount Code : Enter a custom code to be used for the Discount Code program, or use the default one generated by Odoo. This field is only available when the Program Type is set to Discount Code .\n- Minimum Quantity : Enter the minimum number of products that must be purchased in order\nto access the reward. Set the minimum quantity to at least 1 to ensure that the customer must\nmake a purchase in order to access the reward.\nMinimum Quantity : Enter the minimum number of products that must be purchased in order\nto access the reward. Set the minimum quantity to at least 1 to ensure that the customer must\nmake a purchase in order to access the reward.\n`1`\n- Minimum Purchase : Enter the minimum amount (in currency), with tax\nIncluded or tax Excluded , that must be spent in order to access the reward. If both a\nminimum quantity and minimum purchase amount are entered, then the customerâs order must meet\nboth conditions.\nMinimum Purchase : Enter the minimum amount (in currency), with tax\nIncluded or tax Excluded , that must be spent in order to access the reward. If both a\nminimum quantity and minimum purchase amount are entered, then the customerâs order must meet\nboth conditions.\n- Products : Select the specific product(s) for which the program applies. Leave this\nfield blank to apply it to all products.\nProducts : Select the specific product(s) for which the program applies. Leave this\nfield blank to apply it to all products.\n- Categories : Select the category of products for which the program applies. Choose All to apply it to all product categories.\nCategories : Select the category of products for which the program applies. Choose All to apply it to all product categories.\n- Product Tag: Select a tag to apply the program to products with that specific tag.\nProduct Tag: Select a tag to apply the program to products with that specific tag.\n- Grant : Enter the number of points the customer earns per order , per currency spent , or per unit paid (for the Loyalty Cards and Buy X Get Y programs).\nGrant : Enter the number of points the customer earns per order , per currency spent , or per unit paid (for the Loyalty Cards and Buy X Get Y programs).\nClick Save & Close to save the rule and close the pop-up window, or click Save & New to save the rule and immediately create a new one.\n\n### Rewards\n\nIn the Rules & Rewards tab of the program form, click Add next to Rewards to add rewards to the program. This reveals a Create Rewards pop-up window.\nThe options for Rewards vary depending on the selected Program Type .\nThe following options are available for configuring rewards:\n- Reward Type : Select the reward type among Free Product , Discount , and Free Shipping . The other options for reward configuration\ndepend on the Reward Type selected. Free Product : Quantity Rewarded : Select the number of free products rewarded to the customer. Product : Select the product given for free as a reward. Only one product can be\nselected. Product Tag : Select a tag to further specify the free product eligible for the\nreward. Discount : Discount : Enter the discounted amount in either percentage , currency per point , or currency per order . Then, select whether the\ndiscount applies to the entire Order , only the Cheapest Product on the\norder, or only Specific Products . Max Discount : Enter the maximum amount (in currency) that this reward may grant as\na discount. Leave this field at 0 for no limit. Free Shipping : Max Discount : Enter the maximum amount (in currency) that this reward may grant as\na discount. Leave this field at 0 for no limit.\nReward Type : Select the reward type among Free Product , Discount , and Free Shipping . The other options for reward configuration\ndepend on the Reward Type selected.\n- Free Product : Quantity Rewarded : Select the number of free products rewarded to the customer. Product : Select the product given for free as a reward. Only one product can be\nselected. Product Tag : Select a tag to further specify the free product eligible for the\nreward.\n- Quantity Rewarded : Select the number of free products rewarded to the customer.\nQuantity Rewarded : Select the number of free products rewarded to the customer.\n- Product : Select the product given for free as a reward. Only one product can be\nselected.\nProduct : Select the product given for free as a reward. Only one product can be\nselected.\n- Product Tag : Select a tag to further specify the free product eligible for the\nreward.\nProduct Tag : Select a tag to further specify the free product eligible for the\nreward.\n- Discount : Discount : Enter the discounted amount in either percentage , currency per point , or currency per order . Then, select whether the\ndiscount applies to the entire Order , only the Cheapest Product on the\norder, or only Specific Products . Max Discount : Enter the maximum amount (in currency) that this reward may grant as\na discount. Leave this field at 0 for no limit.\n- Discount : Enter the discounted amount in either percentage , currency per point , or currency per order . Then, select whether the\ndiscount applies to the entire Order , only the Cheapest Product on the\norder, or only Specific Products .\nDiscount : Enter the discounted amount in either percentage , currency per point , or currency per order . Then, select whether the\ndiscount applies to the entire Order , only the Cheapest Product on the\norder, or only Specific Products .\n- Max Discount : Enter the maximum amount (in currency) that this reward may grant as\na discount. Leave this field at 0 for no limit.\nMax Discount : Enter the maximum amount (in currency) that this reward may grant as\na discount. Leave this field at 0 for no limit.\n`0`\n- Free Shipping : Max Discount : Enter the maximum amount (in currency) that this reward may grant as\na discount. Leave this field at 0 for no limit.\n- Max Discount : Enter the maximum amount (in currency) that this reward may grant as\na discount. Leave this field at 0 for no limit.\nMax Discount : Enter the maximum amount (in currency) that this reward may grant as\na discount. Leave this field at 0 for no limit.\n`0`\n- In exchange of : Enter the number of points required to exchange for the reward (for\nthe Loyalty Cards and Buy X Get Y programs).\nIn exchange of : Enter the number of points required to exchange for the reward (for\nthe Loyalty Cards and Buy X Get Y programs).\n- Description on order : Enter the description of the reward, which is displayed to the\ncustomer upon checkout.\nDescription on order : Enter the description of the reward, which is displayed to the\ncustomer upon checkout.", "headings": ["Configure the settings", "Configure discount and loyalty programs", "Program types", "Conditional rules", "Rewards"], "doc_id": "ef8df91df5e57cc2"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/products_prices/prices/currencies.html", "title": "Foreign currencies", "module": "sales", "section": "Foreign currencies", "text": "# Foreign currencies\n\nWith Odoo, pricelists can be used to manage prices in a number of foreign currencies. Specifically,\nOdoo has the ability to work with 167 total currencies.\nIn order to use multiple currencies in Odoo Sales , the Accounting application must be\ninstalled.\n\n## Settings\n\nOnce the Accounting app has been installed, foreign currencies can be added to the database.\nNavigate to Accounting app ⣠Configuration ⣠Settings , scroll to the Currencies section, and locate the Main Currency setting.\nOdoo automatically sets the main currency as the currency of the country the company is based in.\nTo change the main currency of the company, select the drop-down menu in the Currency field, select the desired currency, and be sure to Save the changes.\nTo ensure currency rates are updated automatically, enable the automatic currency rates feature\non the Accounting settings page ( Accounting app ⣠Configuration ⣠Settings\n⣠Currencies section ).\nClick the checkbox beside the Automatic Currency Rates feature, choose a designated\nbank to get the currency rates from in the Service field drop-down menu, and select\nan Interval of time for the updates to take place. Then determine when the date of\nthe Next Run should be.\nTo instantly update the currency rates, click the ð (circular arrows) icon, located\nto the right of the Next Run field.\nWhen all configurations are complete, be sure to Save all changes.\nAll payment methods must be in the same currency as the sales journal, or the company\ncurrency, if the company currency is not set. If it is not the same, a Validation\nError message appears.\n\n## View, edit, and add currencies\n\nTo view, edit, and add currencies to the database, making them available on pricelists and on the Main Currency drop-down menu, click the Currencies link, located beneath the Currency field on the Accounting app ⣠Settings page.\nWhen the Currencies link is clicked, a separate Currencies page is revealed.\nOn this page, Odoo provides a master list of 167 global currencies. Each row shows the corresponding Currency , Symbol , Name , date of the Last Update , and Current Rate (compared to the default currency of the country in which the company is\nbased).\nTo the far right, there are two columns, which can be toggled on or off:\n- Active : this currency is activated, which means it can be added to a pricelist, or\nused as the main currency of the company, if desired (via Accounting app â£\nConfiguration ⣠Settings ⣠Currencies section ).\nActive : this currency is activated, which means it can be added to a pricelist, or\nused as the main currency of the company, if desired (via Accounting app â£\nConfiguration ⣠Settings ⣠Currencies section ).\nBy default, all the Active currency options are at the top of the list.\nIt is recommended that at least one pricelist is created per Active currency. See Pricelists to learn more about pricelist configuration.\nTo toggle options on/off, click the toggle switch in the row for the corresponding column. When on the color of the switch is green. When off , the color of the switch is grey.\n\n### Currency detail form\n\nTo edit any currency on the Currencies page, click the desired currency to reveal the\ndetail form for that specific currency, and proceed to make any necessary changes.\nOn the currency detail form, the relevant currency code appears in the Currency field.\nBeneath that, the name for the currency is in the Name field.\nThen, toggle the currencyâs availability with the Active toggle: on is indicated with\na green switch, and off is indicated with a grey switch.\nOn the right of the currency detail form, the appropriate Currency Unit (e.g. Dollars )\nand Currency Subunit (e.g. Cents ) can be found.\n`Dollars`\n`Cents`\nNext, under the Rates tab, the various conversion rates can be viewed, added, or\ndeleted. Each row shows the Date of that specific rate, the Company to which\nit is connected, followed by the Unit per⦠and â¦per Unit .\nThe ⦠in each of the last two columns represents the main currency set for the company. For\nexample, if the main currency is set to USD , the columns are titled Unit per USD and USD per Unit .\n`USD`\nTo add a new rate, click Add a line in the Rates tab, and proceed to fill in\nthe necessary information in the aforementioned columns.\n\n### Main currency detail form\n\nIf the selected currency is the main currency of the company, a blue banner appears at the top of\nthe currency detail form with the message: This is your companyâs currency. .\nAll the fields are the same as a typical currency detail form, but there will not be a Rates tab because all other currency rates are based off the main currency of the\ncompany.\n\n## Create new currency\n\nIf a desired currency isnât on the Currencies page, click the New button to\nopen a blank currency template form.\nThe same New button is located in the upper-right corner of any currency detail form.\nOn the blank currency detail form, proceed to enter the desired currency code in the Currency field. Beneath that, enter the name for the currency in the Name field.\nThen, toggle the currencyâs availability with the Active toggle switch.\nOn the right of the currency detail form, enter the appropriate Currency Unit (e.g. Dollars ) and appropriate Currency Subunit (e.g. Cents ).\n`Dollars`\n`Cents`\nNext, under the Rates tab, add a new rate by clicking Add a line . Then,\nproceed to confirm and adjust the Date , Company , Unit per⦠,\nand â¦per Unit fields to ensure all the auto-populated information is accurate.\nThe ⦠in each of the last two columns represents the main currency set for the company. For\nexample, if the main currency is set to USD , the columns are titled Unit per USD and USD per Unit .\n`USD`\n\n## Currency-specific pricelists\n\nIt is recommended that at least one pricelist is created per active currency in the database. To\ncreate (or assign) a pricelist to a specific currency, start by navigating to Sales\napp ⣠Products ⣠Pricelists .\nFrom the Pricelists page, either select an existing pricelist to edit, or click New to create a new pricelist.\nOn the pricelist detail form, for either a new or existing pricelist, adjust the Currency field as desired.\nPricelists to learn more about pricelist configuration.\n\n## Auto-conversion from public price\n\nIt should be noted that the public price seen on products is directly related to the main currency\nthe company has set, which is configured by navigating to Accounting app â£\nConfiguration ⣠Settings ⣠Currencies section ⣠Main Currency ⣠Currency drop-down menu .\nThe sales price automatically updates if the pricelist is changed to a different pricelist that has\na different currency than the companyâs main currency. The change in price is directly related to\nthe updated conversion rate for that currency.\n\n## Set product prices\n\nIn order to have product prices set in place to avoid any changes in currency rates, start by\nnavigating to Sales app ⣠Products ⣠Products .\nFrom the Products page, select the desired product to modify. Or, create a new product\nby clicking the New button.\nThen, on the product detail form, click the Extra Prices smart button, located in the\nupper-left corner. Doing so reveals a separate Price Rules page, specific to that\nparticular product.\nClick New , and select the desired pricelist from the drop-down menu in the Pricelist column.\nThe Applied On field is auto-populated with the product, so proceed to enter in the\ndesired figures in the Min. Quantity and Price fields.\nThe figure in the Min. Quantity field means the Price being set will only trigger if at least that amount of product is purchased.\nIf necessary, configure a Start Date and End Date for the set prices.\nLeaving those columns blank ensures the set price will remain valid, regardless of the date of sale.\nIf working in a multi-company environment, designate to which company this price rule should be\napplied in the Company field. Leaving that field blank ensures the price rule applies to\nall companies in the database.\nWith those configurations complete, regardless of any changes/updates in conversion, whenever those\ndesignated pricelists are applied to a customer trying to purchase this specific product, these\npre-determined set prices appear.", "headings": ["Settings", "View, edit, and add currencies", "Currency detail form", "Main currency detail form", "Create new currency", "Currency-specific pricelists", "Auto-conversion from public price", "Set product prices"], "doc_id": "d647fa4b3ef4117c"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/products_prices/prices/discounts.html", "title": "Discounts", "module": "sales", "section": "Discounts", "text": "# Discounts\n\nThe Discounts feature allows users to decrease or increase the price on item lines in a sales\nquotation or order. This is calculated as a percentage of the productsâ sales price.\nTo access discounts in the Sales app, navigate to Sales app ⣠Configuration\n⣠Settings . In the Pricing section, tick the Discounts checkbox, then\nclick Save .\nAfter the setting has been activated, navigate to the desired quotation by going to Sales app ⣠Orders ⣠Quotations at the top of the page. Once there, click on\nthe desired quote from the list.\n\n## Discounts on product lines\n\nIn the Order Lines tab of the quotation form, a new column heading appears labeled Disc.% . This column is used to set discounts on individual line items. Enter the desired\ndiscount for each product line and the new price is automatically calculated in the Total at the bottom of the page.\nA discount can also be added directly to a sales order in the same way. Navigate to Sales app ⣠Orders ⣠Orders , click the desired sales order, and add the\ndiscount to Disc.% field as described above.\nPositive values for Disc.% will apply a discount , while negative values can be\nused to increase the price.\nPositive values, or price decreases, will be visible to the customer, while negative values, or\nprice increases, will not be visible to the customer. Instead of a discount column, the\nnegative discount will change the productâs unit price.\n\n## Discount button\n\nWith the Discounts settings enabled, a Discount button appears at the bottom of sales\norders.\nClicking the Discount button on a sales order opens a pop-up window, where the Discount percentage, and options are configured:\n- On All Order Lines : Add the specified discount percentage (configured in the Discount field of the pop-up window) on all existing order lines of the sales order.\nOn All Order Lines : Add the specified discount percentage (configured in the Discount field of the pop-up window) on all existing order lines of the sales order.\n- Global Discount : Add a discount product line to the order, which has the cumulative\nvalue equivalent to the specified discount percentage. Example A global discount of 10% is added in the last line of a sales order with a subtotal of $4,200\nby adding a discount line with a -$420 value (which is 10% of $4,200). Important Any product added (or removed) after the global discount line is added does not affect\nthe discount value on the discount line. To include new products or amend current products in\nthe global discount, delete the current global discount line and repeat the steps.\nGlobal Discount : Add a discount product line to the order, which has the cumulative\nvalue equivalent to the specified discount percentage.\nA global discount of 10% is added in the last line of a sales order with a subtotal of $4,200\nby adding a discount line with a -$420 value (which is 10% of $4,200).\nAny product added (or removed) after the global discount line is added does not affect\nthe discount value on the discount line. To include new products or amend current products in\nthe global discount, delete the current global discount line and repeat the steps.\n- Fixed Amount : Add a monetary amount to the Discount field. Once applied,\nthis amount is added to the order as a product line, with the monetary value subtracted from the\norder total. Example A fixed discount of $20 appears as a product line, with a negative Unit Price .\nFixed Amount : Add a monetary amount to the Discount field. Once applied,\nthis amount is added to the order as a product line, with the monetary value subtracted from the\norder total.\nA fixed discount of $20 appears as a product line, with a negative Unit Price .\nIt is more beneficial to add a Fixed Amount discount after all desired products\nhave been added to a sales order. If there are changes made to the sales order after the\ndiscount is added, adjust the value on the Discount line, or remove the line and add\nthe discount again, as needed.", "headings": ["Discounts on product lines", "Discount button"], "doc_id": "f2634886e2362b57"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/products_prices/prices/pricing.html", "title": "Pricelists", "module": "sales", "section": "Pricelists", "text": "# Pricelists\n\nA pricelist is a method of dynamic pricing that applies a list of prices (or price rules) to\nadjust sales prices. This adjustment can apply to specific customers, customer groups, sales orders,\ntime periods, etc., and is useful for creating pricing strategies and optimizing sales margins.\nOdoo Sales has a useful pricelist feature that can be tailored to fit any unique pricing\nstrategy. Pricelists suggest certain prices, but they can always be overridden on the sales order.\n\n## Configuration\n\nTo enable pricelists in the Odoo Sales app, first navigate to Sales app â£\nConfiguration ⣠Settings . In the Pricing section, tick the checkbox next to the Pricelists feature, and click Save to save all changes.\nAfter activating and saving the Pricelists feature, the Settings page\nreloads. From here, either select the Pricelists link (beneath\nthe Pricelists feature on the Settings page), or navigate to Sales app ⣠Products ⣠Pricelists .\nEither option reveals the Pricelists page, in which pricelists can be created and/or\nmodified at any time.\nIf there is no specific pricelist configured on a sales quotation, the Default pricelist is applied. The Default pricelist is the first pricelist found in Sales app ⣠Products ⣠Pricelists without an assigned Country\nGroup . Odoo will read the Pricelist Name column from top to bottom to determine the Default pricelist.\nThe Selectable column is only applicable to Odoo eCommerce . This option allows\nwebsite visitors to choose a pricelist when shopping in your eCommerce website.\n\n### Creating and editing pricelists\n\nFrom the Pricelists page, either select the pricelist to edit, or click New to create a new pricelist, which reveals a blank pricelist form that can be configured in a number\nof different ways.\nWhen creating a new pricelist, start by adding a name for the pricelist at the blank field at top of\nthe form. Next, select which Currency should be used.\nIf working in a multi-company environment, select which company this pricelist should apply to in\nthe Company field. If this field is left blank, the pricelist is automatically applied\nto all companies in the database.\nIf working in a multinational company, select the countries where this pricelist will apply under\nthe Country Groups column.\n\n### Price Rules tab\n\nIn the Price Rules tab, each line creates a new record that will implement customized\npricing to the sales order where the pricelist is applied. To create a new price rule, click on Add a line , which opens a new pricelist rules form.\nThen, select whether to apply this set of rules to a Product or Category .\nFrom here, there are several configuration options:\n- Product : If selected in the Apply To field, use this field to choose one\nor more products to which this pricelist will apply.\nProduct : If selected in the Apply To field, use this field to choose one\nor more products to which this pricelist will apply.\n- Category : Select one or more product categories to which this pricelist will apply.\nCategory : Select one or more product categories to which this pricelist will apply.\n- Price Type : Select whether the specialized pricing will fall under Discount , Formula , or Fixed Price . Depending on the price\ntype, there will be additional configurations on how to apply the pricelist. Discount : Enter the percentage to be discounted. A mark-up can be configured by\nusing a negative value in this field. Important If a pricelist is applied to a sales quotation with the discount Price Type set\nas Discount , the discount will visible to the customer. Formula : Calculate the pricelist rules based the following configuration: Discount : Percentage discount to be applied. Negative values can be entered to\nincrease prices. Important If a pricelist is applied to a sales quotation with the discount Price Type set\nas Formula , the discount will not be visible to the customer. Round off to : Numerical value to act as round-off multiple, to be applied after\ndiscount. The rounding method sets the price so that it is a multiple of the value in this\nfield. Note Rounding is applied after the discount and before the extra fee. Extra Fee : Fixed amount to be added or subtracted once Discount and Round off to have been applied. Fixed Price : Enter fixed price for this pricelist. When applied, all product\nlines in the quotation form will be updated to this price.\nPrice Type : Select whether the specialized pricing will fall under Discount , Formula , or Fixed Price . Depending on the price\ntype, there will be additional configurations on how to apply the pricelist.\n- Discount : Enter the percentage to be discounted. A mark-up can be configured by\nusing a negative value in this field. Important If a pricelist is applied to a sales quotation with the discount Price Type set\nas Discount , the discount will visible to the customer.\nDiscount : Enter the percentage to be discounted. A mark-up can be configured by\nusing a negative value in this field.\nIf a pricelist is applied to a sales quotation with the discount Price Type set\nas Discount , the discount will visible to the customer.\n- Formula : Calculate the pricelist rules based the following configuration: Discount : Percentage discount to be applied. Negative values can be entered to\nincrease prices. Important If a pricelist is applied to a sales quotation with the discount Price Type set\nas Formula , the discount will not be visible to the customer. Round off to : Numerical value to act as round-off multiple, to be applied after\ndiscount. The rounding method sets the price so that it is a multiple of the value in this\nfield. Note Rounding is applied after the discount and before the extra fee. Extra Fee : Fixed amount to be added or subtracted once Discount and Round off to have been applied. Fixed Price : Enter fixed price for this pricelist. When applied, all product\nlines in the quotation form will be updated to this price.\nFormula : Calculate the pricelist rules based the following configuration:\n- Discount : Percentage discount to be applied. Negative values can be entered to\nincrease prices.\nDiscount : Percentage discount to be applied. Negative values can be entered to\nincrease prices.\nIf a pricelist is applied to a sales quotation with the discount Price Type set\nas Formula , the discount will not be visible to the customer.\n- Round off to : Numerical value to act as round-off multiple, to be applied after\ndiscount. The rounding method sets the price so that it is a multiple of the value in this\nfield. Note Rounding is applied after the discount and before the extra fee. Extra Fee : Fixed amount to be added or subtracted once Discount and Round off to have been applied. Fixed Price : Enter fixed price for this pricelist. When applied, all product\nlines in the quotation form will be updated to this price.\nRound off to : Numerical value to act as round-off multiple, to be applied after\ndiscount. The rounding method sets the price so that it is a multiple of the value in this\nfield.\nRounding is applied after the discount and before the extra fee.\n- Extra Fee : Fixed amount to be added or subtracted once Discount and Round off to have been applied.\nExtra Fee : Fixed amount to be added or subtracted once Discount and Round off to have been applied.\n- Fixed Price : Enter fixed price for this pricelist. When applied, all product\nlines in the quotation form will be updated to this price.\nFixed Price : Enter fixed price for this pricelist. When applied, all product\nlines in the quotation form will be updated to this price.\n- Min Qty : Specify the minimum quantity of selected products for this pricelist to\napply.\nMin Qty : Specify the minimum quantity of selected products for this pricelist to\napply.\n- Validity Period : Specify the start and end date during which this pricelist can be\napplied to quotations.\nValidity Period : Specify the start and end date during which this pricelist can be\napplied to quotations.\nTo formulate a 100% markup (or two times the price of the product), with a $5 minimum margin, set\nthe Based price field to Sales Price and the Discount to -100 . This is often seen in retail situations.\n`-100`\nTo apply 20% discounts, with prices rounded up to 9.99, set the Based on field to Sales Price , the Discount field to 20 , the Extra Fee field\nto -0.01 , and the Rounding Method field to 10 .\n`20`\n`-0.01`\n`10`\nTo have prices that end in 9.99, set the Rounding Method to 10 and the Extra Fee to -0.01 .\n`10`\n`-0.01`\n\n### Recurring Prices tab\n\nTime-based rules are used specifically with subscription products. Be sure to check out the Odoo Subscriptions documentation for more information.\nIn the Recurring Prices tab, pricelists are configured with the same options as in the Price Rules tab, with additional columns for Product Variants and Recurring Plan .\nProduct Variants are configured under products that have one or more values, such as\ncolor, size, etc. Once a product has been selected under the Products Tab , if\napplicable, select the desired product variants to be included in the price rule.\nThen, select the blank field in the Recurring Plan column to reveal a drop-down menu of\npre-designated recurrence periods (e.g. Monthly , Quarterly , Weekly , etc.).\n`Monthly`\n`Quarterly`\n`Weekly`\nNew recurrence periods can also be created from this column. To do so, type in the name for the new Recurring Plan , then select Create from the resulting drop-down menu to\ncreate the time period, which can be edited later. Alternatively, select Create and\nedit⦠to reveal a Create Recurring Plan pop-up form. From this pop-up form, the new\nrecurrence period can be configured, with specific Details , Self-Service ,\nand Pricing options. When the configurations are complete, click the Save &\nClose button.\nLastly, add the desired price for this recurring price rule in the Recurring Price column.\n\n### Rental rules tab\n\nPrice rules can be configured for rental products under the Rental rules tab, using the same methodology as the Price Rules and Recurring Prices tabs.\nTo add a rental rule, click Add a line , and select a desired product in the Products column. Then, select any specific Variants , if necessary.\nNext, designate a Period of time for the rental rule (e.g. Daily , Hourly , etc.).\n`Daily`\n`Hourly`\nLastly, configure a Price for the rental rule in the respective column.\nEcommerce price configuration\n\n## Customer pricelist application\n\nWhile the default pricelist applied to any customer is the Public Pricelist , Odoo\nprovides the opportunity to directly apply a different pricelist to customers on their contact form.\nTo do that, open the desired customerâs contact form, either by navigating to Sales\napp ⣠Orders ⣠Customers and selecting the customer from the main Customers page,\nor by clicking on the customerâs name on a sales order.\nOn the desired customerâs contact form, under the Sales & Purchase tab, in the Sales section, designate what pricelist should be applied to this specific customer from\nthe drop-down menu in the Pricelist field.\nWhen a customer is added to the database, the default pricelist is automatically applied to them.\nThere is no way to have a blank Pricelist field on a contact form. Even if that field is\nleft blank, the default pricelist appears when that contact form is opened again.\nHowever, when that contact is added to a quotation, and the Pricelist field is auto-populated\n(based on the information from their contact form), that predetermined pricelist can be removed\nfrom the Pricelist field, and the quotation can still be confirmed, and subsequently, turned\ninto a sales order.\n\n### Conditions\n\nAt the bottom of the Create Pricelist Rules pop-up form is the Conditions section.\nHere, start by selecting one of the options in the Apply On field:\n- All Products : the advanced pricelist rule will be applied to all products.\nAll Products : the advanced pricelist rule will be applied to all products.\n- Product Category : the advanced pricelist rule will be applied to a specific category\nof products.\nProduct Category : the advanced pricelist rule will be applied to a specific category\nof products.\n- Product : the advanced pricelist rule will be applied to a specific product.\nProduct : the advanced pricelist rule will be applied to a specific product.\n- Product Variant : the advanced pricelist rule will be applied to a specific product\nvariant.\nProduct Variant : the advanced pricelist rule will be applied to a specific product\nvariant.\nIf any of those options, apart from All Products , are selected, a new option-specific\nfield appears, in which the specific Product Category , Product , or Product Variant must be chosen.\nThen, select a minimum quantity to be applied to the advanced pricelist rule in the Min.\nQuantity field. Lastly, select a range of dates for the pricelist item validation in the Validity field.\nOnce all configurations are complete, either click Save & Close to save the advanced\npricelist rule, or click Save & New to immediately create another advanced pricelist\nrule on a fresh form.\nIf a price rule is set for a particular product, and another one for its product category, Odoo\ntakes the rule of the product itself.\n- Foreign currencies\n- Prices", "headings": ["Configuration", "Creating and editing pricelists", "Price Rules tab", "Recurring Prices tab", "Rental rules tab", "Customer pricelist application", "Conditions"], "doc_id": "6b822824a792f855"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/products_prices/products/import.html", "title": "Import products", "module": "sales", "section": "Import products", "text": "# Import products\n\nOdoo Sales provides a template for importing products with categories and variants, which can be\nopened and edited with any spreadsheet software (Microsoft Excel, OpenOffice, Google Sheets, etc.).\nWhen this spreadsheet is filled out properly, it can be quickly uploaded to the Odoo database. When\nuploaded, those products are instantly added, accessible, and editable in the product catalog.\n\n## Import template\n\nIn order to import products with categories and variants, the Import Template for Products must be downloaded. Once downloaded, the template can be adjusted and customized, and then\nuploaded back into the Odoo database.\nTo download the necessary import template, navigate to Sales app ⣠Products â£\nProducts . On the Products page, click the âï¸ (gear) icon in the upper-left\ncorner. Doing so reveals a drop-down menu.\nFrom this drop-down menu, select the Import records option.\nSelecting Import records reveals a separate page with a link to download the Import Template for Products . Click that link to download the template.\nOnce the template download is complete, open the spreadsheet file to customize it.\n\n## Customize product import template\n\nWhen the import template has been downloaded and opened, itâs time to modify its contents. However,\nbefore any changes are made, there are a few elements to keep in mind during the process:\n- Feel free to remove any columns that arenât deemed necessary. But, it is strongly advised that\nthe Internal Reference column remains. While itâs not mandatory, having a unique identifier (e.g. FURN_001 ) in the Internal\nReference column for each product can be helpful in many cases. This can even be from previous\nsoftware spreadsheets to ease the transition into Odoo. For example, when updating imported products, the same file can be imported several times without\ncreating duplicates, thus enhancing the efficiency and simplicity of imported product management.\nFeel free to remove any columns that arenât deemed necessary. But, it is strongly advised that\nthe Internal Reference column remains.\nWhile itâs not mandatory, having a unique identifier (e.g. FURN_001 ) in the Internal\nReference column for each product can be helpful in many cases. This can even be from previous\nsoftware spreadsheets to ease the transition into Odoo.\n`FURN_001`\nFor example, when updating imported products, the same file can be imported several times without\ncreating duplicates, thus enhancing the efficiency and simplicity of imported product management.\n- Do not change the labels of columns that are meant to be imported. Otherwise, Odoo wonât\nrecognize them, forcing the user to map them on the import screen manually.\nDo not change the labels of columns that are meant to be imported. Otherwise, Odoo wonât\nrecognize them, forcing the user to map them on the import screen manually.\n- Feel free to add new columns to the template spreadsheet, if desired. However, to be added, those\nfields must exist in Odoo. If Odoo canât match the column name with a field, it can be matched\nmanually during the import process. During the import process of the completed template, Odoo reveals a page showcasing all the\nelements of the newly-configured product template spreadsheet, separated by File\nColumn , Odoo Field , and Comments . To manually match a column name with a field in Odoo, click the Odoo Field drop-down\nmenu next to the File Column that needs a manual adjustment, and select the\nappropriate field from that drop-down menu.\nFeel free to add new columns to the template spreadsheet, if desired. However, to be added, those\nfields must exist in Odoo. If Odoo canât match the column name with a field, it can be matched\nmanually during the import process.\nDuring the import process of the completed template, Odoo reveals a page showcasing all the\nelements of the newly-configured product template spreadsheet, separated by File\nColumn , Odoo Field , and Comments .\nTo manually match a column name with a field in Odoo, click the Odoo Field drop-down\nmenu next to the File Column that needs a manual adjustment, and select the\nappropriate field from that drop-down menu.\n\n## Import product template spreadsheet\n\nAfter customizing the product template spreadsheet, return to the Odoo product import page, where\nthe template download link is found, and click the Upload File button in the upper-left\ncorner.\nThen, a pop-up window appears, in which the completed product template spreadsheet file should be\nselected and uploaded to Odoo.\nAfter that, Odoo reveals a page showcasing all the elements of the newly-configured product template\nspreadsheet, separated by File Column , Odoo Field , and Comments .\nFrom here, the File Column can be manually assigned to an Odoo Field , if\nnecessary.\nTo make sure everything is appropriate, and all the columns and fields are lined up accurately,\nclick the Test button in the upper-left corner.\nIf everything is lined up and applied correctly, Odoo reveals a blue banner at the top of the page,\ninforming the user that Everything seems valid .\nIf there are any errors, Odoo reveals a red banner at the top of the page, with instructions of\nwhere to locate the specific issues, and how to fix them.\nOnce those errors are fixed, click Test again to ensure all necessary issues have been\nremedied appropriately.\nIf additional product template spreadsheets need to be uploaded, click the Load File button, select the desired product template spreadsheet, and repeat the process.\nWhen everything is ready, click the Import button.\nWhen clicked, Odoo instantly imports those products, and reveals the main Products page,\nwith a pop-up message in the upper-right corner. This pop-up message informs the user how many\nproducts were successfully imported.\nAt this point, all the newly-imported products are accessible and editable via the Products page.\n\n## Import relation fields, attributes, and variants\n\nItâs important to note that an Odoo object is always related to many other objects. For example, a\nproduct is linked to product categories, attributes, vendors, and things of this nature. These\nlinks/connections are known as relations.\nIn order to import product relations, the records of the related object must be imported first from their own list menu.\n\n### Relation fields\n\nOn product forms in Odoo, there are a number of fields that can be modified and customized at any\ntime. These fields are found under every tab on a product form. While these fields are easily\neditable directly on the product form, they can also be modified via a product import.\nAs mentioned, relation fields of this nature can only be imported for products if they already\nexist in the database. For example, if a user attempts to import a product with a Product Type , it\ncan only be one of the preconfigured product types existing in the database (e.g. Storable\nProduct , Consumable , etc.).\nTo import information for a relation field on a product import template spreadsheet, add the name of\nthe field as a column name/title on the spreadsheet. Then, on the appropriate product line, add the\ndesired relation field option.\nWhen all desired relation field information has been entered, save the spreadsheet, and import it\nto the database, per the process mentioned above ( Sales app ⣠Products â£\nProducts ⣠âï¸ (gear) icon ⣠Import records ⣠Upload File ).\nOnce the spreadsheet with the newly-configured relation field information has been uploaded, click Import , and Odoo returns to the Products page.\nWhen the newly-changed/modified products, complete with the new relation field information, has been\nimported and uploaded, that new information can be found on the Products page.\n\n### Attributes and values\n\nOdoo also allows users to import product attributes and values that can be used for products that\nalready exist in the database, and/or with imported products.\nTo import attributes and values, a separate spreadsheet or CSV file dedicated to attributes and\nvalues must be imported and uploaded before they can be used for other products.\nThe column names/titles of the attributes and values spreadsheet should be as follows: Attribute , Display Type , Variant Creation Mode , and Values / Value .\n- Attribute : name of the attribute (e.g. Size ).\nAttribute : name of the attribute (e.g. Size ).\n`Size`\n- Display Type : display type used in the product configurator. There are three display\ntype options: Radio : values displayed as radio buttons Selection : values displayed in a selection list Color : values denoted as a color selection\nDisplay Type : display type used in the product configurator. There are three display\ntype options:\n- Radio : values displayed as radio buttons\nRadio : values displayed as radio buttons\n- Selection : values displayed in a selection list\nSelection : values displayed in a selection list\n- Color : values denoted as a color selection\nColor : values denoted as a color selection\n- Variant Creation Mode : how the variants are created when applied to a product. There\nare three variant creation mode options: Instantly : all possible variants are created as soon as the attribute, and its\nvalues, are added to a product Dynamically : each variant is created only when its corresponding attributes and\nvalues are added to a sales order Never : variants are never created for the attribute Note The Variants Creation Mode cannot be changed once the attribute is used on at\nleast one product.\nVariant Creation Mode : how the variants are created when applied to a product. There\nare three variant creation mode options:\n- Instantly : all possible variants are created as soon as the attribute, and its\nvalues, are added to a product\nInstantly : all possible variants are created as soon as the attribute, and its\nvalues, are added to a product\n- Dynamically : each variant is created only when its corresponding attributes and\nvalues are added to a sales order\nDynamically : each variant is created only when its corresponding attributes and\nvalues are added to a sales order\n- Never : variants are never created for the attribute Note The Variants Creation Mode cannot be changed once the attribute is used on at\nleast one product.\nNever : variants are never created for the attribute\nThe Variants Creation Mode cannot be changed once the attribute is used on at\nleast one product.\n- Values/Value : values pertaining to the corresponding attribute. If there are multiple\nvalues for the same attribute, the values need to be in individual lines on the spreadsheet.\nValues/Value : values pertaining to the corresponding attribute. If there are multiple\nvalues for the same attribute, the values need to be in individual lines on the spreadsheet.\nOnce the desired attributes and values have been entered and saved in the spreadsheet, itâs time to\nimport and upload it into Odoo. To do that, navigate to Sales app ⣠Configuration\n⣠Attributes ⣠âï¸ (gear) icon ⣠Import records ⣠Upload File .\nOnce the spreadsheet with the newly-configured attributes and values has been uploaded, click Import , and Odoo returns to the Attributes page. Thatâs where those\nnewly-added attributes and values can be found and edited, if necessary.\nAs mentioned previously, when attributes and values have been added to the Odoo database, they can\nbe used for existing or imported products.\n\n### Product variants\n\nWhen product attributes and values are configured in the database, they can be used on product\nimport spreadsheets to add more information and detail to products being imported.\nTo import products with product attributes and values, the product import template spreadsheet must\nbe configured with specific Product Attributes / Attribute , Product\nAttributes / Values , and Name columns.\nThere can be other columns, as well, but these columns are required in order to properly import\nproducts with specific variants.\n- Name : product name\n- Product Attributes / Attribute : name of attribute\nProduct Attributes / Attribute : name of attribute\n- Product Attributes / Values : values pertaining to the corresponding attribute\nProduct Attributes / Values : values pertaining to the corresponding attribute\nTo import multiple values, separate them by just a comma, not a comma followed by a space,\nin the product import template spreadsheet (e.g. furniture,couch,home ).\n`furniture,couch,home`\nWhen the desired products and product variants have been entered and saved in the spreadsheet, itâs\ntime to import and upload them into Odoo. To do that, navigate to Sales app â£\nProducts ⣠Products ⣠âï¸ (gear) icon ⣠Import records ⣠Upload File .\nOnce the spreadsheet with the newly-configured products and product variants has been uploaded,\nclick Import , and Odoo returns to the Products page. Thatâs where the\nnewly-added products can be found.\nTo view and modify the attributes and variants on any products, select the desired product from the Products page, and click the Attributes & Variants tab.", "headings": ["Import template", "Customize product import template", "Import product template spreadsheet", "Import relation fields, attributes, and variants", "Relation fields", "Attributes and values", "Product variants"], "doc_id": "28872b8eb6638160"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/products_prices/products/product_images.html", "title": "Product images with Google Images", "module": "sales", "section": "Product images with Google Images", "text": "# Product images with Google Images\n\nHaving appropriate product images in Odoo is useful for a number of reasons. However, if a lot of\nproducts need images, assigning them can become incredibly time-consuming.\nFortunately, by configuring the Google Custom Search API within an Odoo database, finding product\nimages for products (based on their barcode) is extremely efficient.\n\n## Configuration\n\nIn order to utilize Google Custom Search within an Odoo database, both the database and the Google\nAPI must be properly configured.\nFree Google accounts allow users to select up to 100 free images per day. If a higher amount is\nneeded, a billing upgrade is required.\n\n### Google API dashboard\n\n- Go to the Google Cloud Platform API & Services page\nto generate Google Custom Search API credentials. Then, log in with a Google account. Next, agree\nto their Terms of Service by checking the box, and clicking Agree and\nContinue .\nGo to the Google Cloud Platform API & Services page\nto generate Google Custom Search API credentials. Then, log in with a Google account. Next, agree\nto their Terms of Service by checking the box, and clicking Agree and\nContinue .\n- From here, select (or create) an API project to store the credentials. Start by giving it a\nmemorable Project Name , select a Location (if any), then click Create .\nFrom here, select (or create) an API project to store the credentials. Start by giving it a\nmemorable Project Name , select a Location (if any), then click Create .\n- With the Credentials option selected in the left sidebar, click Create\nCredentials , and select API key from the drop-down menu.\nWith the Credentials option selected in the left sidebar, click Create\nCredentials , and select API key from the drop-down menu.\n- Doing so reveals an API key created pop-up window, containing a custom API\nkey . Copy and save Your API key in the pop-up window â it will be used later. Once\nthe key is copied (and saved for later use), click Close to remove the pop-up window.\nDoing so reveals an API key created pop-up window, containing a custom API\nkey . Copy and save Your API key in the pop-up window â it will be used later. Once\nthe key is copied (and saved for later use), click Close to remove the pop-up window.\n- On this page, search for Custom Search API , and select it.\nOn this page, search for Custom Search API , and select it.\n`CustomSearchAPI`\n- From the Custom Search API page, enable the API by clicking Enable .\nFrom the Custom Search API page, enable the API by clicking Enable .\n\n### Google Programmable Search dashboard\n\n- Next, go to Google Programmable Search Engine ,\nand click either of the Get started buttons. Log in with a Google account, if not\nalready logged in.\nNext, go to Google Programmable Search Engine ,\nand click either of the Get started buttons. Log in with a Google account, if not\nalready logged in.\n- On the Create a new search engine form, fill out the name of the search engine, along\nwith what the engine should search, and be sure to enable Image Search and SafeSearch .\nOn the Create a new search engine form, fill out the name of the search engine, along\nwith what the engine should search, and be sure to enable Image Search and SafeSearch .\n- Validate the form by clicking Create .\nValidate the form by clicking Create .\n- Doing so reveals a new page with the heading: Your new search engine has been\ncreated .\nDoing so reveals a new page with the heading: Your new search engine has been\ncreated .\n- From this page, click Customize to open the Overview ⣠Basic page.\nThen, copy the ID in the Search engine ID field. This ID is needed for the Odoo\nconfiguration.\nFrom this page, click Customize to open the Overview ⣠Basic page.\nThen, copy the ID in the Search engine ID field. This ID is needed for the Odoo\nconfiguration.\n\n### Odoo\n\n- In the Odoo database, go to the Settings app and scroll to the Integrations section. From here, check the box beside Google Images .\nThen, click Save .\nIn the Odoo database, go to the Settings app and scroll to the Integrations section. From here, check the box beside Google Images .\nThen, click Save .\n- Next, return to the Settings app , and scroll to the Integrations section. Then, enter the API Key and Search Engine ID in the fields\nbeneath the Google Images feature.\nNext, return to the Settings app , and scroll to the Integrations section. Then, enter the API Key and Search Engine ID in the fields\nbeneath the Google Images feature.\n- Click Save .\n\n## Product images in Odoo with Google Custom Search API\n\nAdding images to products in Odoo can be done on any product or product variant. This process can be\ncompleted in any Odoo application that provides access to product pages (e.g. Sales app, Inventory app, etc.).\nBelow is a step-by-step guide detailing how to utilize the Google Custom Search API to assign\nimages to products in Odoo using the Odoo Sales application:\n- Navigate to the Products page in the Sales app ( Sales app â£\nProducts ⣠Products ). Or, navigate to the Product Variants page in the Sales app\n( Sales app ⣠Products ⣠Product Variants ).\nNavigate to the Products page in the Sales app ( Sales app â£\nProducts ⣠Products ). Or, navigate to the Product Variants page in the Sales app\n( Sales app ⣠Products ⣠Product Variants ).\n- Select the desired product that needs an image. Note Only products (or product variants) that have a barcode, but not an image, are processed. If a product with one or more variants is selected, each variant that matches the\naforementioned criteria is processed.\nSelect the desired product that needs an image.\nOnly products (or product variants) that have a barcode, but not an image, are processed.\nIf a product with one or more variants is selected, each variant that matches the\naforementioned criteria is processed.\n- Click the Action âï¸ (gear) icon on the product page, and select Get\nPictures from Google Images from the menu that pops up.\nClick the Action âï¸ (gear) icon on the product page, and select Get\nPictures from Google Images from the menu that pops up.\n- On the pop-up window that appears, click Get Pictures .\nOn the pop-up window that appears, click Get Pictures .\n- Once clicked, the image(s) will appear incrementally. Note Only the first 10 images are fetched immediately. If you selected more than 10, the rest are\nfetched as a background job. The background job processes about 100 images in a minute. If the quota authorized by Google\n(either with a free or a paid plan) is reached, the background job puts itself on hold for 24\nhours. Then, it will continue where it stopped the day before.\nOnce clicked, the image(s) will appear incrementally.\nOnly the first 10 images are fetched immediately. If you selected more than 10, the rest are\nfetched as a background job.\nThe background job processes about 100 images in a minute. If the quota authorized by Google\n(either with a free or a paid plan) is reached, the background job puts itself on hold for 24\nhours. Then, it will continue where it stopped the day before.\nCreate, modify, or close your Google Cloud Billing account", "headings": ["Configuration", "Google API dashboard", "Google Programmable Search dashboard", "Odoo", "Product images in Odoo with Google Custom Search API"], "doc_id": "7451f31930eb3f61"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/products_prices/products/variants.html", "title": "Product variants", "module": "sales", "section": "Product variants", "text": "# Product variants\n\nProduct variants are used to give single products a variety of different characteristics and options\nfor customers to choose from, such as size, style, or color, just to name a few.\nProduct variants can be managed via their individual product template, or by navigating to either\nthe Product Variants or Attributes page. All of these options are located\nwithin the Odoo Sales application.\nAn apparel company has the following variant breakdown for one of its best-selling t-shirts:\n- Unisex Classic Tee Color: Blue, Red, White, Black Size: S, M, L, XL, XXL\n- Color: Blue, Red, White, Black\nColor: Blue, Red, White, Black\n- Size: S, M, L, XL, XXL\nSize: S, M, L, XL, XXL\nHere, the T-shirt is the product template, and T-shirt: Blue, S is a specific product\nvariant.\nColor and Size are attributes , and the corresponding options (like Blue and S )\nare values .\nIn this instance, there is a total of twenty different product variants: four Color options\nmultiplied by five Size options. Each variant has its own inventory count, sales totals, and\nother similar records in Odoo.\n\n## Configuration\n\nTo use product variants, the Variants setting must be activated in the Odoo Sales application.\nTo do that, go to Sales app ⣠Configuration ⣠Settings , and locate the Product Catalog section at the top of the page.\nIn that section, check the box to enable the Variants feature.\nThen, click Save at the top of the Settings page.\n\n## Attributes\n\nBefore product variants can be set up, attributes must be created. To create, manage, and modify\nattributes, navigate to Sales app ⣠Configuration ⣠Attributes .\nThe order of attributes on the Attributes page dictates how they appear on the Product Configurator , Point of Sale dashboard, and eCommerce pages.\nTo create a new attribute from the Attributes page, click New . Doing so\nreveals a blank attributes form that can be customized and configured in a number of ways.\nFirst, create an Attribute Name , such as Color or Size .\n`Color`\n`Size`\nNext, select one of the options from the Display Type field. The Display\nType determines how this product is shown on the online store, Point of Sale dashboard, and Product Configurator .\nThe Display Type options are:\n- Pills : options appear as selectable buttons on the product page of the online store.\nPills : options appear as selectable buttons on the product page of the online store.\n- Color : options appear as small, colored squares, which reflect any HTML color codes\nColor : options appear as small, colored squares, which reflect any HTML color codes\n- Radio : options appear in a bullet-style list on the product page of the online store.\nRadio : options appear in a bullet-style list on the product page of the online store.\n- Select : options appear in a drop-down menu on the product page of the online store.\nset, on the product page of the online store.\nSelect : options appear in a drop-down menu on the product page of the online store.\nset, on the product page of the online store.\n- Multi-checkbox : options appear as selectable checkboxes on the product page of the\nonline store.\nMulti-checkbox : options appear as selectable checkboxes on the product page of the\nonline store.\nThe Variant Creation Mode field informs Odoo when to automatically create a new variant\nonce an attribute is added to a product.\nThe Variant Creation Mode field must be set to Never in order for the Multi-checkbox to work properly as the Display Type .\n- Instantly : Creates all possible variants as soon as attributes and values are added to\na product template.\nInstantly : Creates all possible variants as soon as attributes and values are added to\na product template.\n- Dynamically : Creates variants only when corresponding attributes and values are\nadded to a sales order.\nDynamically : Creates variants only when corresponding attributes and values are\nadded to a sales order.\n- Never : Prevents the automatic creation of purchaseable variants with this tag.\nInstead, this tag is treated as being informational. If more than one value is assigned to an\nattribute with this tag, all values are loaded when the product displays, since the creation of\ndiscrete variants is prevented.\nNever : Prevents the automatic creation of purchaseable variants with this tag.\nInstead, this tag is treated as being informational. If more than one value is assigned to an\nattribute with this tag, all values are loaded when the product displays, since the creation of\ndiscrete variants is prevented.\nOnce added to a product, an attributeâs Variants Creation Mode cannot be edited.\nThe eCommerce Filter Visibility field determines whether or not these attribute options\nare visible to the customer on the front-end, as they shop on the online store.\n- Visible : the attribute values are visible to customers on the front-end.\nVisible : the attribute values are visible to customers on the front-end.\n- Hidden : the attribute values are hidden from customers on the front-end.\nHidden : the attribute values are hidden from customers on the front-end.\nLastly, in the optional eCommerce Category field, select a category from a drop-down\nmenu to group similar attributes under the same section for added specificity and organization.\nTo view the details related to the attribute category selected, click the internal link (right arrow) icon to the far-right of the eCommerce Category field, once an option has been selected. Doing so reveals that\nattribute categoryâs detail form.\nHere, the Category Name and Sequence are displayed at the top. Followed\nby Related Attributes associated with the category. These attributes can be dragged\nand dropped into a desired priority order.\nAttributes can be directly added to the category, as well, by clicking Add a line .\nTo create an attribute category directly from this field, start typing the name of the new\ncategory, then select either Create or Create and edit⦠from the\ndrop-down menu that appears.\nClicking Create creates the category, which can be modified later. Clicking Create and edit⦠creates the category and reveals a Create Category pop-up window, in which the new attribute category can be configured and customized.\n\n### Attribute values\n\nAttribute values should be added to the Attribute Values tab. Values can be added to an\nattribute at any time, if needed.\nTo add a value, click Add a line in the Attribute Values tab.\nThen, enter the name of the value in the Value column. Next, check the box in the Is custom value column if the value is custom (i.e., the customer gets to provide unique\nspecifications that are specific to this particular value).\n\n#### Colors\n\nNext to Display Type , select the Color option. Go to the Attribute Values tab to modify the value settings.\nTo choose a color, click the blank circle in the Color column, which reveals an HTML\ncolor selector pop-up window.\nIn this pop-up window, select a specific color by dragging the color slider to a particular hue and\nclicking on the color portion directly on the color gradient window.\nOr, choose a specific color by clicking the dropper icon and selecting a desired color thatâs\ncurrently clickable on the screen.\nIf you sell products with specific patterns, you can also add an image to display the pattern of the\nproduct. To do so, click the (camera) icon, then click the (pencil) icon and select an image from your local drive. This pattern\nwill appear as a color option on the eCommerce product page.\nAttributes can also be created directly from the product template by adding a new line and typing\nthe name into the Variants tab.\nOnce an attribute is added to a product, that product is listed and accessible via the attributeâs Related Products smart button. That button lists every product in the database currently\nusing that attribute.\n\n## Product variants\n\nOnce an attribute is created, use the attribute (and its values) to create a product variant. To do\nthat, go to Sales app ⣠Products ⣠Products , and select an existing product to\nview that desired productâs form. Or, click Create to create a new product, to which a\nproduct variant can be added.\nOn the product form, click the Attributes & Variants tab to view, manage, and modify\nattributes and values for the product.\nTo add an attribute to a product and subsequent attribute values, click Add a line in\nthe Attributes & Variants tab. Then, choose the desired attribute from the drop-down\nmenu that appears.\nAttributes can be created directly from the Attributes & Variants tab of a product\nform. To do that, start typing the name of the new attribute in the blank field, and select\neither Create or Create and edit⦠from the mini drop-down menu that\nappears.\nClicking Create creates the attribute, which can be customized later. Clicking Create and edit⦠creates the attribute, and a Create Attribute pop-up\nform appears. In the pop-up form, proceed to modify the attribute in a number of ways.\nOnce an attribute is selected in the Attribute column, proceed to select the specific\nattribute values to apply to the product, via the drop-down menu available in the Values column.\nThere is no limit to how many values can be added.\nSimilar product variant creation processes are accessible through the Purchase, Inventory, and\neCommerce applications.\n\n### Configure variants\n\nTo the far-right of the attribute line is a Configure button. When clicked, Odoo reveals\na separate page showcasing those specific Product Variant Values .\nHere, the specific Value name, HTML Color Index (if applicable), and Value Price Extra are viewable.\nThe Value Price Extra represents the increase in the sales price if the attribute is\nselected.\nWhen a value is clicked on the Product Variant Values page, Odoo reveals a separate\npage, detailing that valueâs related details.\nOn the specific product variant detail page, the Value and Value Price Extra fields can be found, along with an Exclude for field.\nIn the Exclude for field, different Product Templates and specific Attribute Values can be added. When added, this specific attribute value will be\nexcluded from those specific products.\n\n### Variants smart button\n\nWhen a product has attributes and variants configured in its Attributes & Variants tab,\na Variants smart button appears at the top of the product form. The Variants smart button indicates how many variants are currently configured for that specific product.\nWhen the Variants smart button is clicked, Odoo reveals a separate page showcasing all\nthe specific product variant combinations configured for that specific product.\n\n## Impact of variants\n\nIn addition to offering more detailed product options to customers, product variants have their own\nimpacts that can be taken advantage of throughout the Odoo database.\n- Barcode : barcodes are associated with each variant, instead of the product template.\nEach individual variant can have its own unique barcode/SKU.\nBarcode : barcodes are associated with each variant, instead of the product template.\nEach individual variant can have its own unique barcode/SKU.\n- Price : every product variant has its own public price, which is the sum of the product\ntemplate price and any extra charges for particular attributes. Example A red shirtâs sales price is $23 â because the shirtâs template price is $20, plus an additional\n$3 for the red color variant. Pricelist rules can be configured to apply to the product template\nor to the variant.\nPrice : every product variant has its own public price, which is the sum of the product\ntemplate price and any extra charges for particular attributes.\nA red shirtâs sales price is $23 â because the shirtâs template price is $20, plus an additional\n$3 for the red color variant. Pricelist rules can be configured to apply to the product template\nor to the variant.\n- Inventory : Inventory is counted for each individual product variant. On the product\ntemplate form, the inventory reflects the sum of all variants, but the actual inventory is\ncomputed by individual variants.\nInventory : Inventory is counted for each individual product variant. On the product\ntemplate form, the inventory reflects the sum of all variants, but the actual inventory is\ncomputed by individual variants.\n- Picture : each product variant can have its own specific picture.\nPicture : each product variant can have its own specific picture.\nChanges to the product template automatically apply to every variant of that product.", "headings": ["Configuration", "Attributes", "Attribute values", "Product variants", "Configure variants", "Variants smart button", "Impact of variants"], "doc_id": "9300408813090fef"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/products_prices/returns.html", "title": "Returns and refunds", "module": "sales", "section": "Returns and refunds", "text": "# Returns and refunds\n\nThe Odoo Sales app provides two different ways to process returns. The method used depends on\nwhether or not an invoice has been sent.\n\n## Before invoicing\n\nReturns are completed using Reverse Transfers when a customer decides to return a product before an invoice has been sent or validated.\nIn order to use Reverse Transfers , the Inventory app must be installed.\nTo start a return before invoicing, navigate to the Sales app, select the desired\nsales order, and click on the Delivery smart button to open the associated delivery\norder.\nOn the validated delivery order, click Return .\nThis opens a Reverse Transfer pop-up window.\nBy default, the Quantity matches the validated quantities from the delivery order.\nUpdate the quantities, if necessary. Click on the ðï¸ (trash) icon next to a line item\nto remove it from the return.\nNext, click Return to confirm the return. This generates a new warehouse operation for\nthe incoming returned product(s).\nUpon receiving the return, the warehouse team validates the warehouse operation by clicking Validate . Then, on the original sales order, the Delivered quantity updates\nto reflect the difference between the initial validated quantities and the returned quantities.\nWhen an invoice is created, the customer receives an invoice only for the products they are\nkeeping, if any.\n\n## After invoicing\n\nSometimes, customers return an item after they receive and/or pay for their invoice. In these\ncases, a return using only Reverse Transfers is insufficient since validated, or sent, invoices\ncannot be changed.\nHowever, Reverse Transfers can be used in conjunction with Credit Notes to complete the\ncustomerâs return.\nTo start a return after invoicing, navigate to the relevant sales order in the Sales app.\nIf there is a payment registered on the sales order, the payment details appear in the chatter, and\nthe invoice (accessible through the Invoices smart button) has a green In\nPayment banner.\nFrom the sales order, click on the Delivery smart button to view the validated delivery\norder. Then, click Return to open the Reverse Transfer pop-up window.\nNext, edit the Product and/or Quantity , as needed for the return. Then,\nclick Return . This generates a new warehouse operation for the incoming returned\nproduct(s), which is validated by the warehouse team once the return is received by clicking Validate .\nThen, on the sales order, the Delivered quantity updates to reflect the difference\nbetween the initial validated quantities and the returned quantities.\nTo process a refund, navigate to the relevant invoice (from the sales order, click on the Invoices smart button). Then, click the Credit Note button at the top of the\nvalidated invoice.\nDoing so reveals a Credit Note pop-up form.\nStart by entering a Reason displayed on Credit Note and a specific Journal to process the credit. Then, select a specific Reversal Date .\nAfter the information is filled in, click Reverse or Reverse and Create\nInvoice . Then, edit the draft, if needed.\nLastly, click Confirm to confirm the credit note.\nWhen complete, a blue banner reading: You have outstanding credits for this customer. You\ncan allocate them to mark this invoice as paid. appears at the top of the page.\nCredit notes and refunds", "headings": ["Before invoicing", "After invoicing"], "doc_id": "a507f5836659f16d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/sales_quotations.html", "title": "Sales quotations", "module": "sales", "section": "Sales quotations", "text": "# Sales quotations\n\nA sales quotation or quote is a document sent to a customer that outlines the estimated costs and\nterms for goods and services. Once accepted, a quotation can be converted into a sales order, which\nserves as the final agreement before delivery and invoicing.\n\n## Sales flow overview\n\nQuotations fit into a broader sales flow that connects different stages of customer interactions\nfrom initial interest to payment.\nThe typical flow follows these steps:\n- Quotation : A proposal sent to the customer with product details and pricing.\nQuotation : A proposal sent to the customer with product details and pricing.\n- Sales order : Created automatically when the customer accepts the quotation, confirming the\nsale.\nSales order : Created automatically when the customer accepts the quotation, confirming the\nsale.\n- Delivery (if applicable): Products are shipped or services are delivered.\nDelivery (if applicable): Products are shipped or services are delivered.\n- Invoice : The final bill is issued based on the sales order or delivered products/services.\nInvoice : The final bill is issued based on the sales order or delivered products/services.\n- Payment : The customer settles the invoice, completing the sales cycle.\nPayment : The customer settles the invoice, completing the sales cycle.\nThis flow helps businesses track the entire lifecycle of a sale while keeping information consistent\nacross apps.\nIn Odoo, quotations are configured in the Sales app. They can also be generated from other apps\nas part of the sales workflow:\n- CRM : Convert opportunities into quotes to follow up\non potential deals.\nCRM : Convert opportunities into quotes to follow up\non potential deals.\n- Helpdesk : Generate quotes from tickets when offering paid services or products.\nHelpdesk : Generate quotes from tickets when offering paid services or products.\n- Subscriptions : Offer recurring services before\nstarting an automatic billing cycle.\nSubscriptions : Offer recurring services before\nstarting an automatic billing cycle.\n\n#### Create quotations\n\nCreate, configure, and send quotations to customers.\n\n#### Quotation templates\n\nConfigure and use quotation templates to send tailor-fit quotations at a quicker pace.\n\n#### Optional products\n\nOffer useful and related products to customers to increase sales.\n\n#### Online signatures for order confirmations\n\nCustomers have the ability to confirm orders via online signatures, directly on sales orders.\n\n#### Online payment order confirmation\n\nCustomers have the ability to confirm orders via online payment, directly on sales orders.\n\n#### Quotation Deadlines\n\nSet deadlines on quotations to encourage customers to act in a timely manner when\nclosing business deals.\n\n#### Deliver orders and invoices to different addresses\n\nSpecify separate customer delivery and invoicing addresses on quotations.\n\n#### Product variants on quotations and sales orders\n\nAdd product variants to sales orders to provide additional options for single products.\n\n#### PDF quote builder\n\nAdd custom PDF files to quotations to elevate the documentâs headers and designs.\n\n## Sales quotations in business deals\n\nSales quotations serve as a key step in the sales process, bridging the gap between a customerâs\ninitial inquiry about goods and services and the final contractual agreement for payment and\ndelivery. The quotation also provides transparency in pricing, helping both parties negotiate and\nfinalize the terms before making a commitment.\nSales quotations play a crucial role in business transactions by defining the scope and cost of what\nis being sold to the end-customer; setting clear expectations on pricing, delivery, tax, and\npayment terms; and providing a documented stage where the business deal can be negotiated before\nagreed upon.\n\n## Key components of a sales quotation\n\nA well-structured sales quotation comprises the following:\n- Quotation number and date: A unique identifier for tracking and reference, as well as the dates of issue and expiration . In Odoo Sales app, the\nquotation number is assigned under a standard naming convention once it is confirmed.\nQuotation number and date: A unique identifier for tracking and reference, as well as the dates of issue and expiration . In Odoo Sales app, the\nquotation number is assigned under a standard naming convention once it is confirmed.\n- Customer information: Customer name and contact information, as well as invoicing and delivery address .\nCustomer information: Customer name and contact information, as well as invoicing and delivery address .\n- Products and services: Itemized listing of items to be purchased, including quantity,\nspecifications (as needed), and unit price.\nProducts and services: Itemized listing of items to be purchased, including quantity,\nspecifications (as needed), and unit price.\n- Payment terms and pricelists : Configured agreements and\nrules for the pricing and payment of this particular sales quotation.\nPayment terms and pricelists : Configured agreements and\nrules for the pricing and payment of this particular sales quotation.\n- Special pricing: Optional discounts and promotional pricing to update and/or modify individual product lines.\nSpecial pricing: Optional discounts and promotional pricing to update and/or modify individual product lines.\n- Total cost and currency: Summary totals of product or service and shipping prices, including\nrelevant taxes.\nTotal cost and currency: Summary totals of product or service and shipping prices, including\nrelevant taxes.\nIn Odooâs Sales app, quotations can include additional details and configurations that add\nmore detail and information, such as quotation templates , subscription plans , and sales team referrer name .", "headings": ["Sales flow overview", "Sales quotations in business deals", "Key components of a sales quotation"], "doc_id": "b75aad56b85e3f99"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/sales_quotations/create_quotations.html", "title": "Create quotations", "module": "sales", "section": "Create quotations", "text": "# Create quotations\n\nIn Odoo Sales , quotations can be created and sent to customers. Once a quotation has been\nconfirmed, it officially turns into a sales order , which can then be invoiced and paid for.\n\n## Quotation settings\n\nTo access these setting options, navigate to Sales app ⣠Configuration â£\nSettings , and scroll to the Quotations & Orders section.\n- Quotation Templates : Enable this option to create quotation templates featuring\nstandard product offers, which are then selectable on quotation forms. When this checkbox is\nticked, an additional field, Default Template , appears, along with a link to the Quotation Templates page.\nQuotation Templates : Enable this option to create quotation templates featuring\nstandard product offers, which are then selectable on quotation forms. When this checkbox is\nticked, an additional field, Default Template , appears, along with a link to the Quotation Templates page.\n- Online Signature : Request an online signature to confirm orders.\nOnline Signature : Request an online signature to confirm orders.\n- Online Payment : Request an online prepayment from customers to confirm orders. Request\na full or partial payment (via down payment). When this checkbox is ticked, an additional field, Prepayment amount (%) , appears. There is also a link to the Payment\nProviders page.\nOnline Payment : Request an online prepayment from customers to confirm orders. Request\na full or partial payment (via down payment). When this checkbox is ticked, an additional field, Prepayment amount (%) , appears. There is also a link to the Payment\nProviders page.\n- Default Quotation Validity : Determine a set amount (in days ) that\nquotations can remain valid for.\nDefault Quotation Validity : Determine a set amount (in days ) that\nquotations can remain valid for.\n- Default Recurrence : Select a default period from the drop-down menu to use as a\nrecurrence period for a new quotation.\nDefault Recurrence : Select a default period from the drop-down menu to use as a\nrecurrence period for a new quotation.\n- Sale Warnings : Get warning messages about orders that include specific products or\ncustomers.\nSale Warnings : Get warning messages about orders that include specific products or\ncustomers.\n- PDF Quote builder : Customize the look of quotations with header pages, product\ndescriptions, footer pages, and more.\nPDF Quote builder : Customize the look of quotations with header pages, product\ndescriptions, footer pages, and more.\n- Lock Confirmed Sales : Ensure no further edits can be made to confirmed orders.\nLock Confirmed Sales : Ensure no further edits can be made to confirmed orders.\n- Pro-Forma Invoice : Send pro-forma invoices to customers.\nPro-Forma Invoice : Send pro-forma invoices to customers.\nTo activate any of these settings, tick the checkbox beside the desired option(s). Then, click Save .\n\n## Quotations dashboard\n\nThe Quotations dashboard is the page that appears when the Sales app is opened.\nBy default, the Quotations dashboard displays all quotations in the database related to\nthe current user, as indicated by the default My Quotations filter present in the search\nbar.\nTo view all quotations in the database, remove the My Quotations filter from the\nsearch bar.\nQuotations on this page appear in a default list view, but can also be viewed in a Kanban view, Calendar , Pivot table, Graph , or Activity view.\nTo view and/or modify any listed quotation from the Quotations dashboard, click on the\ndesired quotation line from the list, and Odoo reveals the specific form for that selected\nquotation.\n\n## Create quotation\n\nTo create a quotation, open the Sales app , and click the New button,\nlocated in the upper-left corner of the main Quotations dashboard.\nThe New button is only present if the Quotations dashboard is in list\nor Kanban view.\nClicking the New button reveals a blank quotation form, with various fields and tabs to\nconfigure.\nBegin by entering the customerâs name in the Customer field at the top of the form. This\nis a required field.\nIf the customerâs information is already in the database, the Invoice Address and Delivery Address fields auto-populate with the saved information for those respective\nfields, based on the data from that customerâs contact record (found in the Contacts application).\nIf the customer was referred by another customer or contact, enter their name in the Referrer field.\nIf a Referrer is selected, a new field, Commission Plan appears, in which a\ncommission can be selected from the drop-down menu. This commission is rewarded to the contact\nselected in the Referrer field.\nNext, if they have not already been auto-populated with the customerâs information, enter the\nappropriate addresses in the Invoice Address and Delivery Address fields.\nBoth of these fields are required .\nThen, if desired, choose a Quotation Template from the drop-down field to apply to this\nquotation. It should be noted that some additional fields may appear, depending on the template\nselected.\nThe default date that appears in the Expiration field is based on the number configured\nin the Default Quotation Validity setting (in Sales app ⣠Configuration ⣠Settings ).\nWhen using a quotation template, the date in the Expiration field is based off the Quotation Validity figure on the template form.\nIf the quotation is for a recurring product or subscription, select the desired Recurring\nPlan from that specific drop-down menu.\nIf desired, select a specific Pricelist to be applied to this quotation.\nLastly, select any specific Payment Terms to be used for this quotation.\n\n### Order Lines tab\n\nThe first tab on the quotation form is the Order Lines tab.\nIn this tab, select products, and quantities of those products, to add them to the quotation.\nThere are two ways to add products to the quotation from this tab.\nClick Add a product , select the desired item from the Product drop-down\nfield, and proceed to adjust the quantity of that selected product, if necessary.\nOr, click Catalog to reveal a separate page, showcasing every item (and every potential\nproduct variant) in an organized catalog display, with items organizable by Product\nCategory and Attributes .\nFrom here, simply locate the desired items, click the Add button on the product card, and adjust the quantity, if needed. When complete, click the Back to Quotation button in the upper-left corner to return to the quotation, where the\nnewly-selected catalog items can be found in the Order Lines tab.\nIf multiple items should be presented in a more organized way on the quotation, click Add\na section , enter a name for the section, and drag-and-drop that section heading in the desired\nlocation amongst the items in the Order Lines tab. The section heading appears in bold.\nIf needed, click Add a note beneath a certain product line to add a custom note about\nthat specific product. The note appears in italics. Then, if needed, proceed to drag-and-drop the\nnote beneath the desired product line.\nBeneath the product lines, there are buttons that can be clicked to apply any of the following: Coupon Code , Promotions , Discount , and/or Add\nshipping .\n- Use eWallets and gift cards\nUse eWallets and gift cards\n- Discount and loyalty programs\nDiscount and loyalty programs\n- Pricelists\n\n### Optional Products tab\n\nOpen the Optional Products tab to select related products that can be presented to the\ncustomer, which may result in an increased sale.\nFor example, if the customer wants to buy a car, an optional product that could be offered is a Trailer Hitch .\n\n### Other Info tab\n\nIn the Other Info tab, there are various quotation-related configurations separated into\nfour different sections: Sales , Delivery , Invoicing , and Tracking .\nSome fields only appear if specific settings and options have been configured.\n\n#### Sales section\n\nIn the Sales section of the Other Info tab, there are sales specific fields\nthat can be configured.\n- Salesperson : Assign a salesperson from the drop-down menu to be associated with this\nquotation. The user who originally created the quotation is selected in this field, by default.\nSalesperson : Assign a salesperson from the drop-down menu to be associated with this\nquotation. The user who originally created the quotation is selected in this field, by default.\n- Sales Team : Assign a specific sales team to this quotation. If the selected Salesperson is a member of a sales team, that team is auto-populated in the field.\nSales Team : Assign a specific sales team to this quotation. If the selected Salesperson is a member of a sales team, that team is auto-populated in the field.\n- Company : Select a company from the drop-down menu this quotation should be associated\nwith. This field only appears when working in a multi-company environment.\nCompany : Select a company from the drop-down menu this quotation should be associated\nwith. This field only appears when working in a multi-company environment.\n- Online signature : Tick this checkbox to request an online signature from the customer\nto confirm the order. This field only appears if the Online Signature setting has been enabled.\nOnline signature : Tick this checkbox to request an online signature from the customer\nto confirm the order. This field only appears if the Online Signature setting has been enabled.\n- Online payment : Tick this checkbox, and enter a desired percentage in the adjacent\nfield, to request an online payment from the customer (for that designated percentage of the total\namount) to confirm the order. This field only appears if the Online Payment setting has been\nenabled.\nOnline payment : Tick this checkbox, and enter a desired percentage in the adjacent\nfield, to request an online payment from the customer (for that designated percentage of the total\namount) to confirm the order. This field only appears if the Online Payment setting has been\nenabled.\n- Customer Reference : Enter a custom reference ID for this customer. The entered\nreference ID can contain letters, numbers, or a mix of both.\nCustomer Reference : Enter a custom reference ID for this customer. The entered\nreference ID can contain letters, numbers, or a mix of both.\n- Tags : Add specific tags to the quotation for added organization and enhanced\nsearchability in the Odoo Sales application. Multiple tags can be added, if necessary.\nTags : Add specific tags to the quotation for added organization and enhanced\nsearchability in the Odoo Sales application. Multiple tags can be added, if necessary.\n\n#### Delivery section\n\nIn the Delivery section of the Other Info tab, there are delivery-specific\nfields that can be configured.\n- Shipping Weight : Displays the weight of the items being shipped. This field is not\nmodifiable. Product weight is configured on individual product forms.\nShipping Weight : Displays the weight of the items being shipped. This field is not\nmodifiable. Product weight is configured on individual product forms.\n- Incoterm : Select an Incoterm (International Commerical Term) to use as predefined\ncommerical terms for international transactions.\nIncoterm : Select an Incoterm (International Commerical Term) to use as predefined\ncommerical terms for international transactions.\n- Incoterm Location : If an Incoterm is being used, enter the international location in\nthis field.\nIncoterm Location : If an Incoterm is being used, enter the international location in\nthis field.\n- Shipping Policy : Select a desired shipping policy from the drop-down menu. If all\nproducts are delivered at once, the delivery order is scheduled, based on the greatest product\nlead time. Otherwise, it is based on the shortest lead time. The available options are: As soon as possible or When all products are ready .\nShipping Policy : Select a desired shipping policy from the drop-down menu. If all\nproducts are delivered at once, the delivery order is scheduled, based on the greatest product\nlead time. Otherwise, it is based on the shortest lead time. The available options are: As soon as possible or When all products are ready .\n- Delivery Date : Click into the empty field to reveal a calendar popover, from which a\ncustomer delivery date can be selected. If no custom date is required, refer to the Expected date listed to the right of that field.\nDelivery Date : Click into the empty field to reveal a calendar popover, from which a\ncustomer delivery date can be selected. If no custom date is required, refer to the Expected date listed to the right of that field.\n\n#### Invoicing section\n\nIn the Invoicing section of the Other Info tab, there are invoicing specific\nfields that can be configured.\n- Fiscal Position : Select a fiscal position to be used to adapt taxes and accounts for\nparticular customers or sales orders/invoices. The default value comes from the customer. If a\nselection is made in this field, an Update Taxes clickable link and\nicon appear. When clicked, the taxes for this partiuclar customer and quotation are updated. A\nconfirmation window appears, as well.\nFiscal Position : Select a fiscal position to be used to adapt taxes and accounts for\nparticular customers or sales orders/invoices. The default value comes from the customer. If a\nselection is made in this field, an Update Taxes clickable link and\nicon appear. When clicked, the taxes for this partiuclar customer and quotation are updated. A\nconfirmation window appears, as well.\n- Analytic Account : Select an analytic account to apply to this customer/quotation.\nAnalytic Account : Select an analytic account to apply to this customer/quotation.\n\n#### Tracking section\n\nIn the Tracking section of the Other Info tab, there are tracking specific\nfields that can be configured.\n- Source Document : Enter the reference of the document that generated the\nquotation/sales order, if applicable.\nSource Document : Enter the reference of the document that generated the\nquotation/sales order, if applicable.\n- Opportunity : Select the specific opportunity (from the CRM app) related to this\nquotation, if applicable.\nOpportunity : Select the specific opportunity (from the CRM app) related to this\nquotation, if applicable.\n- Campaign : Select the marketing campaign related to this quotation, if applicable.\nCampaign : Select the marketing campaign related to this quotation, if applicable.\n- Medium : Select the method by which this quotation originated (e.g. Email ), if\napplicable.\nMedium : Select the method by which this quotation originated (e.g. Email ), if\napplicable.\n- Source : Select the source of the link used to generate this quotation (e.g. Facebook ), if applicable.\nSource : Select the source of the link used to generate this quotation (e.g. Facebook ), if applicable.\n\n### Notes tab\n\nIn the Notes tab of the quotation form, enter any specific internal notes about the\nquotation and/or customer, if desired.\n\n## Sending and confirming quotations\n\nOnce all the necessary fields and tabs have been configured, it is time to send the quotation to the\ncustomer for confirmation. Upon confirmation, the quotation turns into an official sales order.\nAt the top of the form, there is a series of buttons:\n- Send by Email : When clicked, a pop-up window appears with the customerâs name and\nemail address in the Recipients field, the quotation (and reference ID) in the Subject field, and a brief default message in the body of the email, which can be\nmodified, if needed. Below that, a PDF copy of the quotation is attached. When ready, click Send to send\nthe quotation, via email, to the customer, so they can review and confirm it.\nSend by Email : When clicked, a pop-up window appears with the customerâs name and\nemail address in the Recipients field, the quotation (and reference ID) in the Subject field, and a brief default message in the body of the email, which can be\nmodified, if needed.\nBelow that, a PDF copy of the quotation is attached. When ready, click Send to send\nthe quotation, via email, to the customer, so they can review and confirm it.\n- Send PRO-FORMA Invoice : This button only appears if the Pro-Forma Invoice setting has been enabled. When clicked, a pop-up window appears with the customerâs name and email\naddress in the Recipients field, the Proforma invoice (and reference ID) in the Subject field, and a brief default message in the body of the email, which can be\nmodified, if needed. Below that, a PDF copy of the quotation is attached. When ready, click Send to send\nthe quotation, via email, to the customer, so they can review and confirm it.\nSend PRO-FORMA Invoice : This button only appears if the Pro-Forma Invoice setting has been enabled. When clicked, a pop-up window appears with the customerâs name and email\naddress in the Recipients field, the Proforma invoice (and reference ID) in the Subject field, and a brief default message in the body of the email, which can be\nmodified, if needed.\nBelow that, a PDF copy of the quotation is attached. When ready, click Send to send\nthe quotation, via email, to the customer, so they can review and confirm it.\n- Confirm : When clicked, the quotation is confirmed, and the status changes to Sales Order .\nConfirm : When clicked, the quotation is confirmed, and the status changes to Sales Order .\n- Preview : When clicked, Odoo reveals a preview of the quotation the customer sees when\nthey log into their customer portal. Click the Back to edit\nmode link at the top of the preview page, in the blue banner, to return to the quotation form.\nPreview : When clicked, Odoo reveals a preview of the quotation the customer sees when\nthey log into their customer portal. Click the Back to edit\nmode link at the top of the preview page, in the blue banner, to return to the quotation form.\n- Cancel : When clicked, the quotation is canceled.\nCancel : When clicked, the quotation is canceled.\nIf the Lock Confirmed Sales setting is enabled, the sales order becomes Locked , and\nis indicated as such on the sales order form.\nAt this point, the quotation has been confirmed, turned into a sales order, and is now ready to be\ninvoiced and paid for.\nFor more information about invoicing, refer to the Invoice based on delivered or ordered\nquantities\n- Quotation templates\n- Quotation deadlines\n- Online signatures for order confirmations\nOnline signatures for order confirmations\n- Online payment order confirmation\nOnline payment order confirmation\n- PDF quote builder\n- Pro-forma invoices", "headings": ["Quotation settings", "Quotations dashboard", "Create quotation", "Order Lines tab", "Optional Products tab", "Other Info tab", "Notes tab", "Sending and confirming quotations"], "doc_id": "43b16bbdfaff259e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/sales_quotations/deadline.html", "title": "Quotation deadlines", "module": "sales", "section": "Quotation deadlines", "text": "# Quotation deadlines\n\nIn the Odoo Sales application, it is possible to set deadlines on sales quotations. Doing so\nencourages customers to act quickly during sales negotiations, for they might fear for missing out\non a good deal. As well, deadlines also can also act as protection for a company in case an order\nhas to be fulfilled at a price that is no longer profitable for the business.\n\n## Quotation expiration\n\nIn Odoo Sales , thereâs the option to add an expiration date to a quotation.\nTo add an expiration date to a quotation, navigate to Sales app , and select a\ndesired quotation, or create a new one by clicking New .\nOn the quotation form, click the Expiration field to reveal a pop-up calendar. From this\npop-up calendar, select the desired month and date as the expiration date for the quotation.\nBy clicking the Preview button on a quotation, Odoo clearly displays when that\nspecific offer expires.\n\n## Quotation template expiration\n\nThe Odoo Sales application also makes it possible to add a deadline expiration date to quotation\ntemplates.\nTo add a deadline expiration date to a quotation template, navigate to Sales app â£\nConfiguration ⣠Quotation Templates , and either select the desired quotation template to which a\ndeadline should be added, or click New to build a new quotation template from scratch.\nOn the quotation template form, add a specific number of days to the Quotation expires\nafter field, located beneath the quotation template name. The number of days represents how long\nthe quotation will be valid for, before it expires.\nThen, whenever that specific quotation template is used in a quote, an expiration date is\nautomatically calculated, based on the number of days designated above. However, this date can be\noverwritten before sending the quotation to the customer.", "headings": ["Quotation expiration", "Quotation template expiration"], "doc_id": "2041c63db97005b3"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/sales_quotations/different_addresses.html", "title": "Deliveries and invoices to different addresses", "module": "sales", "section": "Deliveries and invoices to different addresses", "text": "# Deliveries and invoices to different addresses\n\nPeople and businesses often use separate addresses for billing (invoicing) and shipping (delivery)\npurposes. With the Odoo Sales app, contacts can have different specified addresses for delivery\nand invoicing.\n\n## Settings\n\nTo properly utilize multiple addresses in Odoo, go to the Accounting app â£\nConfiguration ⣠Settings , and scroll down to the Customer Invoices heading. Then,\ntick the Customer Addresses checkbox.\n\n## Contact form configuration\n\nTo add multiple addresses to a contact, go to the Sales app ⣠Orders â£\nCustomers , and clear any default filters from the search bar. Then, click on the desired customer\nto open their contact form.\nContact forms can be accessed in the Contacts application, as well.\nFrom the contact form, click the Add button, which is located under the Contacts & Addresses tab. This brings up the Create Contact pop-up form, in\nwhich additional addresses can be configured.\nOn the Create Contact pop-up form, select any of the following options:\n- Contact : Adds another contact, such as an employee at a company, to the contact form.\nContact : Adds another contact, such as an employee at a company, to the contact form.\n- Invoice Address : Adds a default invoice address to the contact form.\nInvoice Address : Adds a default invoice address to the contact form.\n- Delivery Address : Adds a default delivery address to the contact form.\nDelivery Address : Adds a default delivery address to the contact form.\n- Follow-up Address : Adds a default contact address that is used for follow-up\ncommunications about billing and other issues to the contact form.\nFollow-up Address : Adds a default contact address that is used for follow-up\ncommunications about billing and other issues to the contact form.\n- Other Address : Adds an alternate address to the contact form.\nOther Address : Adds an alternate address to the contact form.\nOnce the corresponding information has been entered, click Save & Close to save the\naddress and close the Create Contact window. To save the address and input additional\ncontact information, click Save & New instead.\n\n## Quotations and autopopulated addresses\n\nWhen a customer with invoice and delivery addresses in their contact form is added to a quotation,\nthe Invoice Address and Delivery Address fields autopopulate with the\ncorresponding addresses.\nThe Invoice Address and Delivery Address can also be edited directly from\nthe quotation by mousing over the address and clicking the (Internal Link) icon.", "headings": ["Settings", "Contact form configuration", "Quotations and autopopulated addresses"], "doc_id": "d09bf1bfbd75d21d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/sales_quotations/get_paid_to_validate.html", "title": "Online payment order confirmation", "module": "sales", "section": "Online payment order confirmation", "text": "# Online payment order confirmation\n\nThe Odoo Sales application provides customers with the ability to confirm orders, via an online\npayment, directly on a sales order. Once the sales order is electronically paid for by the customer,\nthe salesperson attached to the sales order is instantly notified that the order is confirmed.\n\n## Activate online payments\n\nIn order to have customers confirm orders with an online payment, the Online Payment setting must be activated.\nTo activate the Online Payment feature, go to Sales app ⣠Configuration â£\nSettings , scroll to the Quotations & Orders heading, check the box next to the Online Payment feature, and click Save .\nBeneath the Online Payment option on the Sales Settings page, thereâs a Default Quotation Validity field. In this field, thereâs the option to add a specific\nnumber of days for quotations to remain valid by default.\nTo enable this feature on a standard quotation, click the checkbox for the Payment feature option, located in the Online confirmation field, on the Other Info tab.\nTo enable this feature on a quotation template, click the checkbox for the Payment feature option, located in the Online confirmation field of the quotation template form.\n\n## Payment providers\n\nAfter activating the Online Payment feature, a link to configure Payment\nProviders appears beneath it.\nClicking that link reveals a separate Payment Providers page, in which a large variety\nof payment providers can be enabled, customized, and published.\n\n## Register a payment\n\nAfter opening quotations in their customer portal, customers can click Accept & Pay to\nconfirm their order with an online payment.\nAfter clicking Accept & Pay , customers are presented with Validate Order pop-up window containing different options for them to make online payments, in the Pay\nwith section.\nOdoo will only offer payment options on the Validate Order pop-up window that\nhave been published and configured on the Payment Providers page.\nOnce the customer selects their desired method of payment, they will click the Pay button on the pop-up window to confirm the order. Odoo instantly notifies the assigned salesperson\nupon order confirmation with an online payment.\n- Quotation templates\n- Online signatures for order confirmations\nOnline signatures for order confirmations\n- Online payments", "headings": ["Activate online payments", "Payment providers", "Register a payment"], "doc_id": "720e99924aaa2f13"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/sales_quotations/get_signature_to_validate.html", "title": "Online signatures for order confirmations", "module": "sales", "section": "Online signatures for order confirmations", "text": "# Online signatures for order confirmations\n\nThe Odoo Sales application provides customers with the ability to confirm orders, via an online\nsignature, directly on the sales order. Once the sales order is electronically signed by the\ncustomer, the salesperson attached to the sales order is instantly notified that the order is\nconfirmed.\n\n## Activate online signatures\n\nIn order to have customers confirm orders with an online signature, the Online Signature feature must be activated.\nTo activate the Online Signature feature, go to Sales app ⣠Configuration â£\nSettings , scroll to the Quotations & Orders heading, and activate the Online Signature feature by checking the box beside it.\nThen, click the Save button in the top-left corner.\nWhen making a quotation template, the online signature feature is the Signature option, located in the Online confirmation field of the quotation template form.\nOn standard quotations, the online signature feature is the Signature option, located\nunder the Other Info tab of the quotation form.\n\n## Order confirmations with online signatures\n\nWhen clients access quotations online through their customer portal, thereâs a Sign &\nPay button directly on the quotation.\nWhen clicked, a Validate Order pop-up window appears. In this pop-up window, the Full Name field is auto-populated, based on the contact information in the database.\nThen, customers have the option to enter an online signature with any of the following options: Auto , Draw , or Load .\nAuto lets Odoo automatically generate an online signature based on the information in\nthe Full Name field. Draw lets the customer use the cursor to create a\ncustom signature directly on the pop-up window. And Load lets the customer upload a\npreviously-created signature file from their computer.\nAfter the customer has chosen any of the three previously mentioned signature options\n( Auto , Draw , or Load ), they will click the Accept &\nSign button.\nWhen Accept & Sign is clicked, the various payment method options become available for\nthem to choose from (if the online payment option applies to this quotation).\nThen, when the quotation is paid and confirmed, a delivery order is automatically created (if the\nOdoo Inventory app is installed).\n\n### View online signatures in Developer Mode\n\nClients can view the online signature in developer mode .\nTo view a online signature from a paid invoice, go to Sales app ⣠Orders â£\nOrders and select the desired sales order. A new tab, Customer Signature , is available.\nClick the tab to view the electronic signature as well as the Signed By and Signed On information.\n- Quotation templates\n- Online payment order confirmation\nOnline payment order confirmation", "headings": ["Activate online signatures", "Order confirmations with online signatures", "View online signatures in Developer Mode"], "doc_id": "b71865ba61e61799"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/sales_quotations/margin.html", "title": "Margins", "module": "sales", "section": "Margins", "text": "# Margins\n\nThe sales margin is the profit gained from the sale of a product or service after all the costs\nrelated to it have been accounted for.\nIn the Odoo Sales application, it is possible to show sales margins on quotations and sales\norders. Salespeople can use the feature for better management and monitoring of profitability.\n\n## Configuration\n\nTo activate the Margins feature, go to the Sales app ⣠Configuration â£\nSettings . In the Pricing section, tick the Margins checkbox. Then click Save .\n\n### Configure price and cost\n\nTo automatically calculate the sales margin for each quotation or sales order line item, go to Sales app ⣠Products ⣠Products . Fill out the Sales Price and Cost fields in the General Information tab for every product.\nOdoo calculates the margin by:\nThe margin percentage is calculated by:\n\n## Compute margins on sales orders\n\nGo to Sales app ⣠Orders ⣠Quotations and click the New button to\nbegin a new quotation. Fill out the quotation with the necessary information. While adding products\nto the quotation, a new field, Margin , automatically appears at the bottom of the\ndocument. This field displays the orderâs total margin in the configured currency as well as the\npercentage.\nTo display a productâs margin and the margin percentage per line item, click the (settings adjust) icon in the Order Lines tab.\nThen, tick the checkboxes for Margin and Margin(%) . The Margin column shows the profit to earn from the sale after accounting for all associated costs. It displays\nin the configured currency value. The Margin(%) shows the margin value as a percentage.\nThe margin for one unit is multiplied by the quantity to determine the margin for the entire line.\nThe Margin and Margin(%) columns are not displayed by default, but once\nenabled, the columns appear on all new and existing quotations and SOs .\nThe Margin and Margin (%) columns are not editable since they are\nautomatic calculations. To change the calculation, refer to Configure price and cost section for more information.\n\n## Margin calculation with a pricelist\n\nTo calculate the margin with an applied pricelist, begin with configuring a pricelist for the\nproduct. Follow these steps:\n- Go to Sales app ⣠Products ⣠Pricelists and click the New button.\nGo to Sales app ⣠Products ⣠Pricelists and click the New button.\n- Enter the name of the pricelist and click Add a line to create a new pricelist\nrule.\nEnter the name of the pricelist and click Add a line to create a new pricelist\nrule.\n- Configure the pricelist and click Save & Close button.\nConfigure the pricelist and click Save & Close button.\n- Go to Sales app ⣠Orders ⣠Quotations and create a quotation.\nGo to Sales app ⣠Orders ⣠Quotations and create a quotation.\n- In the Pricelist field, select the newly made pricelist.\nIn the Pricelist field, select the newly made pricelist.\n- Click on Update Prices to refresh the product price and margin.\nClick on Update Prices to refresh the product price and margin.\nTo apply a seasonal 5% discount on blue denim jeans that requires a minumim of two pairs of jeans\nin an order and is valid only from October to the end of December, the pricelist rule should look\nlike this:\nAfter saving the pricelist, go to the desired SO and select the newly\ncreated pricelist, and adjust the quantity according to the pricelistâs rule.\nAfter the changes are made, click Update Prices to update the Margin , Margin (%) , and Amount . The margin is recalculated\nbased on the pricelist-adjusted productâs sales price and cost.\nAnother way to visualize the impact of margins on sales orders is to go to Sales\napp ⣠Orders ⣠Quotations , select the (area chart) icon or (pivot) icon, click Measures button and change it\nto Margin to see margin contributions across the customer base.", "headings": ["Configuration", "Configure price and cost", "Compute margins on sales orders", "Margin calculation with a pricelist"], "doc_id": "a2e76a61d64afc7b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/sales_quotations/optional_products.html", "title": "Optional products", "module": "sales", "section": "Optional products", "text": "# Optional products\n\nThe use of optional products is a marketing strategy that involves the cross-selling of useful and\nrelated products alongside a desired core product. For instance, when a business configures optional\nproducts in their Odoo database, an eCommerce or Website customer could be suggested a mouse and\nkeyboard or an extended warranty when they add a laptop to their shopping cart.\nOptional products are automatically suggested during the quotation process whenever an associated\ncore product is added to a quote. They are also suggested in e-commerce interactions when a customer\nadds an associated core product to their shopping cart.\nOptional products differ from accessory and alternative products in terms of where they are displayed\nduring customersâ online shopping journeys.\n\n## Configuring optional products\n\nWith the Odoo Sales app, it is possible to add optional products directly to product forms. To\nadd an optional product to a product form, navigate to Sales ⣠Products â£\nProducts and choose a product.\nEnsure that the productâs Sales checkbox is checked and click the Sales tab.\nUnder Upsell & Cross-sell heading, the Optional Products drop-down menu\nallows for optional products to be set. Products will be displayed in alphabetical order. If the\ndesired product isnât readily visible, type its name in the field to bring it up, then select it to\nadd it as an optional product.\nTo delete an optional product from the product form, simply click the (Delete) icon.\nAdditional products can also be added to a core product by clicking Search more⦠. This\nopens the Search: Optional Products form, which displays all products in the catalog and\nincludes the New button to create a new product. Multiple products may be selected as\noptional products at once when using this form by clicking their checkboxes and then clicking Select .\n\n## Optional products on quotation templates and quotations\n\nOptional products can be added to quotation templates, allowing sales staff to offer related\nproducts without needing to manually add them to each quote. Additional optional products can also\nbe added to individual quotations when needed.\n\n### Quotations\n\nTo add additional products on an individual quote, navigate to Sales ⣠Orders â£\nQuotations and select an existing quote or create a new quote . Then open\nthe Optional Products tab. Doing so reveals a blank field in the Product column. Click Add a product . When clicked, a drop-down menu with products from the\ndatabase appear. Select the desired product from the drop-down menu to add it as an optional\nproduct. Type the name of the desired product or click Search More⦠to find additional\nproducts.\nTo delete any line item from the Optional Products tab, click the (delete) icon.\nWhen a product is added, the default Quantity is 1 , but can be updated.\n`1`\n\n### Quotation templates\n\nQuotation templates also have an Optional Products tab, where related products or services can be\nadded. To add optional products to a quotation template, navigate to Sales app â£\nConfiguration ⣠Quotation Templates . Then, either select an existing quotation template to edit\nor create a new one .\nOn the quotation template form, click the Optional Products tab. Then, click Add a line and select the desired product to add as an optional product to the quotation\ntemplate.\nWhen the configured quotation template is used, the products added in the Optional\nProducts tab will appear in the corresponding tab in the quotation. These products can be removed\nand additional products can be added before the quotation is sent to a customer.\nThere is no limit to how many optional products can be added to a quotation template.\n\n## Previewing optional products\n\nClick the Preview button, located in the upper-left corner of the quotation, to reveal a\npreview of the quotation email customers would receive. Optional products are located in the Options section of the preview.\nCustomers are able to add different optional products to an order by clicking the (Add to cart) icon, located to the right of the optional\nproduct line.\nIf a customer selects optional products, they are automatically added to the quotation managed by\nthe salesperson.\nWhen a customer adds optional products to an order, the salesperson is instantly notified about the\nchange, along with any other change the customer makes to an order. This allows salespeople to stay\nup-to-date with everything related to an order in the backend of the Sales application. Added\nproducts appear in green in the Optional Products tab when the quote is viewed.", "headings": ["Configuring optional products", "Optional products on quotation templates and quotations", "Quotations", "Quotation templates", "Previewing optional products"], "doc_id": "739bad62c4099ab9"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/sales_quotations/orders_and_variants.html", "title": "Product variants on quotations and sales orders", "module": "sales", "section": "Product variants on quotations and sales orders", "text": "# Product variants on quotations and sales orders\n\nBefore getting into detail about how to use product variants on quotations and sales orders, itâs\nrecommended to learn about Product variants in Odoo.\nOnce familiarized with the basics surrounding product variants, the following covers how product\nvariants can be added to quotations and sales orders using the product configurator or order grid\nentry .\nIt should be noted that the setting is titled, Variant Grid Entry on the Sales app settings\npage, and titled, Order Grid Entry on product forms. So, be sure to keep that in mind.\n\n## Settings\n\nWhen working with product variants, Odoo uses the product configurator, by default. To add the\nvariant grid entry option, that feature must be enabled in the Odoo Sales application. The\nvariant grid entry option provides a pop-up window on the quotation/sales order to simplify the\nvariant selection process.\nTo enable that setting, go to Sales app ⣠Configuration ⣠Settings , and scroll\nto the Product Catalog section. Then, check the box next to the Variant Grid\nEntry option, and click Save .\nOf course, the Variants feature must also be activated, in order to use product\nvariants on quotations and sales orders.\n\n## Product configuration\n\nOnce the Variant Grid Entry setting is enabled, both options ( Product Configurator and Order Grid Entry ) become available on every product form.\nTo configure a product form to use either a product configurator or variant grid entry, start by\nnavigating to Sales app ⣠Products ⣠Products to view all the products in the\ndatabase.\nThen, select the desired product to configure, or click New , to create a new product\nfrom scratch. Once on the product form, click into the Attributes & Variants tab, where\nproduct variants can be viewed, modified, and added.\nAt the bottom of the Attributes & Variants tab, there is a Sales Variant\nSelection section with two options: Product Configurator and Order Grid\nEntry .\nIt should be noted that these options only appear if at least two values of an attribute have\nbeen added to the record.\nThese options determine which method is used when adding product variants to quotations or sales\norders.\nThe Product Configurator provides a pop-up window that neatly displays all the available\nproduct variants for that particular product when itâs added to a quotation. However, only one\nvariant can be selected/added at a time.\nThe Order Grid Entry provides the same information as the Product\nConfigurator in a table layout, allowing the user to select larger numbers of unique product\nvariants, and add them to a quotation/sales order, in a single view.\n\n## Product configurator\n\nThe product configurator feature appears as a Configure pop-up window, as soon as a\nproduct with (at least two) variants is added to a quotation or sales order, but only if the Product Configurator option is selected on its product form.\nThis Configure pop-up window also appears if the Order Grid Entry setting\nis not activated, as it is the default option Odoo uses when dealing with product variants on\nquotations and/or sales orders.\nThe Product Configurator option lets salespeople choose exactly which product variant to\nadd to the quotation or sales order using a format similar to online shopping.\n\n## Order grid entry\n\nThe order grid entry feature appears as a Choose Product Variants pop-up window, as soon\nas a product with (at least two) variants is added to a quotation or sales order, but only if\nthe Order Grid Entry option is selected on its product form.\nThe Choose Product Variants pop-up window features all the variant options for that\nparticular product. From this pop-up window, the salesperson can designate how many of each variant\ntheyâd like to add to the quotation/sales order at once.\nWhen all the desired quantities and variants have been selected, the salesperson simply clicks Confirm , and those orders are instantly added to the quotation/sales order in the Order Lines tab.", "headings": ["Settings", "Product configuration", "Product configurator", "Order grid entry"], "doc_id": "a8cf0bd5be3f87b4"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/sales_quotations/pdf_quote_builder.html", "title": "PDF quote builder", "module": "sales", "section": "PDF quote builder", "text": "# PDF quote builder\n\nThe PDF Quote Builder in the Odoo Sales app transforms a standard, text-heavy quote into a\npolished, branded proposal. Instead of sending a table of products and prices, it enables users to\nsandwich a quotation between professionally designed PDF pages.\nThe PDF Quote Builder seamlessly combines user-provided marketing documents, technical sheets,\nbranded cover pages, and Odoo-generated quotes in one document. Quotation templates can be\nconfigured to include specific PDFs in the quote, ensuring documents reach the intended customers.\nDynamic text in PDF templates allows users to extract Sales app data and customize files for\neach project or customer.\nEmpty text fields on the PDF can be completed directly from the quotation form in the Sales app.\nThis approach lets users personalize quotes without editing the PDF itself.\nUsers can also configure PDFs on the product form. These files are then automatically added to the\nquote when a product is included. Beyond assembling quotes, the PDF Quote Builder also enables PDFs\nto be featured on the online store product page. This ensures customers can access detailed product\ninformation directly on the website.\nOdoo Quick Tips - Create a PDF quote [video]\nIt is recommended to edit PDF forms with Adobe software. The form fields in the header and footer\nPDF templates are required to retrieve dynamic values in Odoo.\n\n#### Add dynamic text to PDFs\n\nAdd dynamic text fields to PDFs.\n\n#### Add PDFs to quotes\n\nAdd a PDF header or footer to a quote.\n\n#### Add PDFs to products\n\nSet up the PDF headers and footers for products. These appear on sales quotes and online store\npages.\n\n## Configuration\n\nTo add custom PDF files to quotes, the PDF Quote builder feature must be configured.\nNavigate to Sales app ⣠Configuration ⣠Settings . Scroll to the Quotations &\nOrders section, enable the PDF Quote builder feature, then click Save .\n\n## Add PDF as Header/Footer\n\nOdoo does not permit spaces in PDF field names. Only use letters, numbers, hyphens, or\nunderscores.\nThe Odoo Sales app can add a custom PDF as a header or footer. The Quote Builder tab\nin a quote allows the selection of multiple headers and footers for insertion into the final PDF\nquote.\nTo add a custom PDF as a header or footer, navigate to Sales app ⣠Configuration\n⣠Headers/Footers . On this page, click New to create a new header or footer, or click Upload to add a PDF file.\nClicking Upload lets the user select a PDF file from their computer. Select the Document Type to set the order in which the PDF appears in the quote. Header places the PDF before the quote, and Footer places it after. Further configuration can\nbe done by clicking the (vertical ellipsis) icon in the top-right\ncorner of the document card and selecting Edit .\nClick New to open a blank document form. In the File Content field, click\nthe Upload your file button and select the PDF to upload. Once uploaded, Odoo\nautomatically names the document after the file name. The Name field then becomes\neditable.\nTo modify the uploaded file, click the (Edit) , (Download) , or (Clear) icon next to the file name. If the\nPDF includes form fields, they are automatically recognized as dynamic text fields. View and edit\nthese fields by clicking Configure dynamic fields . For more details, refer to Configure dynamic form fields in PDFs .\nThe Quotation templates field assigns the PDF to the selected template, restricting the PDFâs use\nto that template.\nHeaders and footers can also be added to a quotation template by navigating to Sales app ⣠Configuration ⣠Quotation Templates . Select a template and then\nin the Quote Builder tab, Add or Upload a PDF directly.\nThe HVAC PDF file is configured as a Header and the Sales app recognizes the form fields as\ndynamic text fields.", "headings": ["Configuration", "Add PDF as Header/Footer"], "doc_id": "bc64076c1e981f1f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/sales_quotations/pdf_quote_builder/add_pdf_products.html", "title": "Add a PDF or a URL to a product", "module": "sales", "section": "Add a PDF or a URL to a product", "text": "# Add a PDF or a URL to a product\n\nThe Odoo Sales app lets users add a custom PDF or URL to a product template or variant using\nthe PDF Quote builder. By attaching a PDF or a URL, users can include extra information or resources\nin their quotes, online product pages, or for manufacturing.\n\n## Add a PDF or URL to a product template\n\nTo add a custom PDF to a product template, go to the Sales app ⣠Products â£\nProducts , and select the desired product. Next, click the Documents smart button at the\ntop of the product template page.\nClick Upload to open the userâs local file directory then select and upload a PDF to\nOdoo. Odoo automatically creates a PDF document form from the uploaded PDF, with the Sales Visibility set to Hidden and the Publish on website toggle\ndisabled by default. Click the (vertical ellipsis) icon in the\ncorner of the document card and select Edit to further configure the PDF form .\nClick New to open a blank PDF form and manually configure the document form .\n\n### Add a PDF or URL to a product variant\n\nA PDF document or URL can also be added to a product variant, rather than the product template. The\ndocument form for the product variant is the same as the product templateâs document form, except it doesnât include the E-Commerce section and thus cannot be published on the website.\nTo add a PDF to a product variant, navigate to the Sales app ⣠Products â£\nProduct Variants , select the product variant, click the Documents smart button, and upload the PDF .\nIf the variant is added to a quotation, and there are documents on a product and on its\nvariant, only the documents in the variant are shown in the Quote Builder tab of the\nquotation.\n\n## Document form configuration\n\nTo save a document form entry, the user must add a URL or PDF to the document form. Odoo\nwonât save the entry without one, even if the rest of the form is configured.\n\n### General Information\n\nFill out the following information in the top section of the document form:\n- Type : Select either File or a URL from the drop-down menu. If\na PDF is uploaded, the Type field is automatically set to File and cannot\nbe changed.\nType : Select either File or a URL from the drop-down menu. If\na PDF is uploaded, the Type field is automatically set to File and cannot\nbe changed.\n- URL : This field is only clickable if the Type field is set to URL . Enter a URL link to an online PDF document.\nURL : This field is only clickable if the Type field is set to URL . Enter a URL link to an online PDF document.\n- Name : This field is grayed out (not clickable) until a URL is entered or a PDF is\nuploaded. If the URL is entered, the Name field is left blank, and it can then be\nedited. If a PDF document has been uploaded, the Name field is auto-populated with the\nfile name, and it can then be edited.\nName : This field is grayed out (not clickable) until a URL is entered or a PDF is\nuploaded. If the URL is entered, the Name field is left blank, and it can then be\nedited. If a PDF document has been uploaded, the Name field is auto-populated with the\nfile name, and it can then be edited.\n- File Content (base64) : This field displays the uploaded file. Click it to open the\nfile directory and select a different PDF.\nFile Content (base64) : This field displays the uploaded file. Click it to open the\nfile directory and select a different PDF.\n- (Edit) icon: Click to open the file directory and select a different\nPDF.\n(Edit) icon: Click to open the file directory and select a different\nPDF.\n- (Download) icon: Click to download the PDF document. This icon\nonly appears after a PDF is uploaded and the document form is saved.\n(Download) icon: Click to download the PDF document. This icon\nonly appears after a PDF is uploaded and the document form is saved.\n- (Delete) icon: Click to remove the uploaded PDF. This action allows\nthe user to change the Type field from File to URL and enter a\nURL link instead.\n(Delete) icon: Click to remove the uploaded PDF. This action allows\nthe user to change the Type field from File to URL and enter a\nURL link instead.\n- Configure dynamic fields : Click the link if the PDF document or URL has dynamic form\nfields that need to be configured to Odoo fields . If the PDF document or URL has custom\ndynamic form fields, refer to the Configure custom dynamic form fields for more information.\nConfigure dynamic fields : Click the link if the PDF document or URL has dynamic form\nfields that need to be configured to Odoo fields . If the PDF document or URL has custom\ndynamic form fields, refer to the Configure custom dynamic form fields for more information.\n\n### Sales section\n\nClick the Sale: Visible at field and select one of the following options:\n- Hidden : The PDF or URL isnât visible in the Sales app. This option is best for\ndigital product documents intended for publication on the website, but not shown in the quotation\nor customer portal.\nHidden : The PDF or URL isnât visible in the Sales app. This option is best for\ndigital product documents intended for publication on the website, but not shown in the quotation\nor customer portal.\n- On quote : The PDF document or URL can be sent to customers at any time. It is also\navailable for download on the customer portal. This options is best for product description files.\nOn quote : The PDF document or URL can be sent to customers at any time. It is also\navailable for download on the customer portal. This options is best for product description files.\n- On confirmed order : The PDF document or URL is sent to customers upon order\nconfirmation. It is available on the customer port after a quotation is confirmed. This is best\nfor user manuals and digital content sold on eCommerce websites.\nOn confirmed order : The PDF document or URL is sent to customers upon order\nconfirmation. It is available on the customer port after a quotation is confirmed. This is best\nfor user manuals and digital content sold on eCommerce websites.\n- Inside quote : The PDF document or URL is included in the PDF quotation, between the\nheader pages and the Pricing section.\nInside quote : The PDF document or URL is included in the PDF quotation, between the\nheader pages and the Pricing section.\nWhen the On quote option for the Visible at field is selected and the\ncustom PDF document, AC product info and warranty.pdf , is uploaded, the PDF appears in the customer portal quotation in the Documents section.\n`ACproductinfoandwarranty.pdf`\n\n### E-Commerce section\n\n- Publish on Website : A checkbox that, if enabled, displays a link to download the PDF\ndocument on the product page in the online store.\nPublish on Website : A checkbox that, if enabled, displays a link to download the PDF\ndocument on the product page in the online store.\n\n### Manufacturing section\n\nThis section only appears if the Manufacturing app is installed.\nClick the Sale: Visible at field and select one of the following options:\n- Hidden : The PDF or URL is accessible only on the product form.\nHidden : The PDF or URL is accessible only on the product form.\n- Bill of Materials : The PDF or URL is attached to the bill of materials when the\nproduct is manufactured. This option is best for assembly instructions and manufacturing\nspecifications.\nBill of Materials : The PDF or URL is attached to the bill of materials when the\nproduct is manufactured. This option is best for assembly instructions and manufacturing\nspecifications.\n\n## View all configured PDFs or links for a product\n\nNavigate to the Sales app ⣠Products ⣠Products and select a product. Click the Documents smart button to open the Documents page and display all the\ndocuments for the product template and its variants. File and URL cards can be visually\ndistinguished by the images in the left corner. A PDF thumbnail is for PDF documents, and a link icon is for URL links. For product variants documents, a Variant badge is to be displayed in the corner as well.\nConfigure dynamic form fields in PDFs", "headings": ["Add a PDF or URL to a product template", "Add a PDF or URL to a product variant", "Document form configuration", "General Information", "Sales section", "E-Commerce section", "Manufacturing section", "View all configured PDFs or links for a product"], "doc_id": "70dc7a098eeb5b8b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/sales_quotations/pdf_quote_builder/add_pdf_quotes.html", "title": "Add PDFs to a quote", "module": "sales", "section": "Add PDFs to a quote", "text": "# Add PDFs to a quote\n\nPDFs can be manually added to a quote as a header or footer, or as an additional PDF to be merged\nwith the quote details. They can be accessed from the Quote Builder tab on a quotation. A quote\ncan have multiple headers or footers selected. If a quote has multiple headers or footers, they are\nmerged together in the order they were selected, with the quote details in between.\n\n## Add headers and footers to a quote\n\nNavigate to Sales app ⣠Quotations and select the desired quotation. Click the Quote Builder tab, and all available headers and footers are displayed in their own\nself-titled sections. If any products have PDFs attached on their form, then a Product section displays.\nSelect the additional PDFs to be merged into the final PDF. If a selected PDF contains custom\nnote form fields , they appear as editable text\nboxes to be filled in.\nOdoo provides the option to print a PDF of the quote for record keeping. To print the PDF quote,\nnavigate to the confirmed quote, and click the Actions ⣠Print â£\nPDF Quote .\nOpen the PDF quote file to confirm the configured header, footer, and additional PDFs before\nprinting.\nDownload these PDF quote builder examples or this sample quotation for additional reference.\n`PDFquotebuilderexamples`\n`samplequotation`\nA car dealership wants to include its vehicle purchase order form with each quotation. They\ncreate a PDF template of the form and upload it to the Sales app as a header.\nWhen they create a quote for a customer, they select the header in the Quote Builder tab and\nmanually fill in the customized note form fields.\nAfter the quote has been signed and confirmed, the car seller downloads and prints a copy of the\nPDF quote for the customer. The PDF quote contains the vehicle purchase order form as the header,\nthe quote details in the body, and the dealershipâs standard footer.\n\n## Add headers and footers to a quote template\n\nHeaders and footers added to a quote template are only available when that template is\napplied â they wonât appear as standalone header/footer options for quotes.\nTo add PDFs to a quote template, navigate to Sales app ⣠Configuration ⣠Quote\nTemplates , and select the desired template. Click the Quote Builder tab and click Add Headers and footers . In the Add: Headers and footers pop-up, select the PDF to be\nadded to the quote template. Selected PDFs are displayed in the Quote Builder tab as\ncards.\nTo remove a header or footer, click the vertical ellipsis icon on\nthe card and select Delete . Deleting a header or footer from a quote template only\nremoves it from the template. It remains available in the Quote Builder tab and the Headers/Footers page.", "headings": ["Add headers and footers to a quote", "Add headers and footers to a quote template"], "doc_id": "45e6dc4b260a2172"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/sales_quotations/pdf_quote_builder/dynamic_text.html", "title": "Configure dynamic form fields in PDFs", "module": "sales", "section": "Configure dynamic form fields in PDFs", "text": "# Configure dynamic form fields in PDFs\n\nWhen creating custom PDFs to import into the Sales app, use dynamic form fields to auto-fill\nthe PDF content with relevant information from the Odoo database, including names and prices.\nDynamic form fields are configurable text fields that can be added to a PDF form, and Odoo\nautomatically fills them with values from the sales order/product associated with the quote.\n\n## Formatting tips\n\nWhen designing the base PDF template for a quoteâs header or footer, keep the placements of dynamic\nform field in mind. Use the following tips to avoid overlapping text and other formatting issues:\n- Leave whitespace : Ensure there is enough room for dynamic data to expand without overlapping\nlogos or borders.\nLeave whitespace : Ensure there is enough room for dynamic data to expand without overlapping\nlogos or borders.\n- Add line breaks : Place dynamic form fields, like Customer Name , on their own lines.\nAlternatively, put them at the end of phrases to avoid text breaking. Long names can push static\ntext out of alignment.\nAdd line breaks : Place dynamic form fields, like Customer Name , on their own lines.\nAlternatively, put them at the end of phrases to avoid text breaking. Long names can push static\ntext out of alignment.\n- Leave whitespace : Ensure there is enough room for dynamic data to expand without overlapping\nlogos or borders.\nLeave whitespace : Ensure there is enough room for dynamic data to expand without overlapping\nlogos or borders.\n- Add line breaks : Place dynamic form fields, like Customer Name , on their own lines.\nAlternatively, put them at the end of phrases to avoid text breaking. Long names can push static\ntext out of alignment. text appearance when adding or editing content.\nAdd line breaks : Place dynamic form fields, like Customer Name , on their own lines.\nAlternatively, put them at the end of phrases to avoid text breaking. Long names can push static\ntext out of alignment. text appearance when adding or editing content.\nOdoo recommends editing PDF forms with Adobe software. Form fields in header and footer templates\nare required to retrieve dynamic values in Odoo.\nIf the PDF is too large to send as an email attachment, try using âsystem fontsâ (e.g., Arial,\nHelvetica, Times New Roman) instead of custom fonts to reduce the file size.\n\n## Create dynamic form fields in PDF\n\nOdoo does not permit spaces in PDF field names. Only use letters, numbers, hyphens, or\nunderscores.\nThe following software are examples. They are not endorsements of any specific software.\nTo add dynamic form fields, use the preferred PDF editor. Adobe Acrobat Pro is the\neasiest and most commonly used software. Some examples for free open source PDF editors are:\n- Scribus\n- BentoPDF\n- EmbedPDF\nRefer to the following instructions to:\n- Find Common dynamic form fields .\nFind Common dynamic form fields .\n- Find Odoo field names or paths .\nFind Odoo field names or paths .\n- Configure custom dynamic form fields in Odoo after uploading\nthe PDF.\nConfigure custom dynamic form fields in Odoo after uploading\nthe PDF.\n\n### Adobe Acrobat Pro\n\nConvert the PDF into a PDF form , then add a dynamic form field at the location where\nthe Odoo information should be inserted. Link the Odoo fields to the dynamic form fields by\ndouble-clicking on the field to open Properties .\nIn the General tab , enter the name of the Odoo field for the Name . Set the Common Properties to Visible unless the field needs to be hidden until data\nis populated.\nNext, click the Appearance tab and select the Font Size , Font\nChoice , and Text Color to match the templateâs existing text or branding. Click the Options tab and set the text alignment to match the templateâs design.\n\n### Generic PDF editor\n\nOpen the PDF with the PDF editor, add a dynamic form field where the Odoo information is needed.\nLink the Odoo fields to the dynamic form fields by opening the fieldâs Properties window. Then, in the Name for that field, enter the name of the Odoo field.\nIf possible, configure the Font Size , Font Choice , and Text\nColor to match the templateâs existing text or branding. Click the Options tab and set\nthe text alignment to match the templateâs design.\n\n## Map PDF form fields to Odoo\n\nThis step connects any dynamic form field in the PDF to the corresponding Odoo field by specifying\nthe exact location of that information. Once the PDF file is ready, save the changes and upload it\nto Odoo via Sales app ⣠Configuration ⣠Headers/Footers and clicking Upload .\nOdoo automatically detects dynamic form fields in the uploaded PDF and displays the Configure dynamic fields link. Click the Configure dynamic fields link to go\nto the Form Fields page.\nThe Form Field Name column is populated with the dynamic form fields from the PDF. The Path column specifies the path to the Odoo field corresponding to each dynamic form\nfield .\nTo edit, click the Path cell of the desired form field row and enter the Odoo field\nname. Refer to the Common dynamic form fields section\nfor typical field names. Refer to the Find Odoo field names or paths section for instructions on how to find Odoo field names and paths.\n\n### Find Odoo field names or paths\n\nUsers can enable Developer mode (debug mode) in Odoo and hover over the desired field to see its technical\nname, which is the Field value in the pop-up window. Or, while in Developer Mode,\nnavigate to the Settings ⣠Technical ⣠Email Templates menu. In the search bar,\nsearch for âSalesâ, then open a Sales template to see the available dynamic form fields and\ntheir paths .\n\n### Configure custom dynamic form fields\n\nTo pull specific information from a sales order or a product that is not in the Common dynamic form fields section, add a dynamic form\nfield to the PDF with a unique name, then configure the Path to point to the desired\ninformation in Odoo.\nWhen configuring the Path , use the dot ( . ) notation to specify relationships between\nmodels. Headers and footers start from the current sale_order model. Product documents\nfollow their path from sale_order_line .\n`.`\nA company wants to display the customerâs country in its quotations. To display the customerâs\ncountry in the quotation PDF, they used the dynamic form field name invoice_partner_country in the PDF template. After uploading the PDF to the Sales app, they set the Path of the Form Field Name to:\n- For a header or footer document: partner_invoice_id.country_id.name Example of Odooâs Form Field Path for the customerâs country from a quotation.\nFor a header or footer document: partner_invoice_id.country_id.name\nExample of Odooâs Form Field Path for the customerâs country from a quotation.\n- For a product document: order_id.partner_invoice_id.country_id.name Example of Odooâs Form Field Path for the customerâs country from a product document.\nFor a product document: order_id.partner_invoice_id.country_id.name\nExample of Odooâs Form Field Path for the customerâs country from a product document.\n\n### Create a custom note form field\n\nWhen uploading any PDF containing the form field custom_note , leaving the Path empty allows the seller to add any note to that form field in the document, which\nshown when the PDF is built.\nLeave the Path column cell empty for the custom_note row.\nThe note field in the Header section in the Quote Builder tab on a quotation.\n\n## Common dynamic form fields\n\nBelow are common dynamic form fields to use in custom PDFs that automatically map to the correct\nOdoo fields when uploaded to the Sales app, and what they represent.\nFor headers and footers PDF:\n- name : Sales Order Reference\nname : Sales Order Reference\n- partner_id__name : Customer Name\npartner_id__name : Customer Name\n- user_id__name : Salesperson Name\nuser_id__name : Salesperson Name\n- amount_untaxed : Untaxed Amount\namount_untaxed : Untaxed Amount\n- amount_total : Total Amount\namount_total : Total Amount\n- delivery_date : Delivery Date\ndelivery_date : Delivery Date\n- validity_date : Expiration Date\nvalidity_date : Expiration Date\n- client_order_ref : Customer Reference\nclient_order_ref : Customer Reference\n- description : Product Description\ndescription : Product Description\n- quantity : Quantity\n- uom : Unit of Measure (UoM)\nuom : Unit of Measure (UoM)\n- price_unit : Price Unit\nprice_unit : Price Unit\n- discount : Discount\n- product_sale_price : Product List Price\nproduct_sale_price : Product List Price\n- taxes : Taxes name joined by a comma ( , )\ntaxes : Taxes name joined by a comma ( , )\n`,`\n- tax_excl_price : Tax Excluded Price\ntax_excl_price : Tax Excluded Price\n- tax_incl_price : Tax Included Price\ntax_incl_price : Tax Included Price\nWhen creating a PDF, itâs best practice to use common dynamic form fields\n( user_id_name , partner_id_name , and name ). When uploaded into\nthe database, Odoo auto-populates those fields with the information from their respective fields.\nIn this case, Odoo would auto-populate the Salespersonâs name in the user_id_name dynamic text field, the Sales Order Reference in the name field, and the Customer\nName in the partner_id_name field.", "headings": ["Formatting tips", "Create dynamic form fields in PDF", "Adobe Acrobat Pro", "Generic PDF editor", "Map PDF form fields to Odoo", "Find Odoo field names or paths", "Configure custom dynamic form fields", "Create a custom note form field", "Common dynamic form fields"], "doc_id": "d200ea15725a67f2"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/sales_quotations/quote_template.html", "title": "Quotation templates", "module": "sales", "section": "Quotation templates", "text": "# Quotation templates\n\nReusable quotation templates can be made in Odooâs Sales app for common products or services.\nBy using these templates, quotations can be tailored and sent to customers at a quicker pace,\nwithout having to create new quotations from scratch every time a sales negotiation occurs.\n\n## Configuration\n\nTo use quotation templates, begin by activating the setting in Sales app â£\nConfiguration ⣠Settings , and scroll to the Quotations _ Orders heading.\nUnder the heading, tick the Quotation Templates checkbox. Doing so reveals a new Default Template field, in which a default quotation template can be chosen from the\ndrop-down menu.\nUpon activating the Quotation Template feature, an internal Quotation Templates link appears beneath the Default Template field.\nClicking this link reveals the Quotation Templates page, from which templates can be\ncreated, viewed, and edited.\nBefore leaving the Settings page, do not forget to click the Save button to\nsave all changes made during the session.\n\n## Create quotation templates\n\nTo create a quotation template, click the Quotation Templates link on the Settings page once Quotation templates are enabled, or navigate to Sales app ⣠Configuration ⣠Quotation Templates . Both options reveal the Quotation Templates page, where quotation templates can be created, viewed, and edited.\nTo create a new quotation template, click the New button, located in the upper-left\ncorner. Doing so reveals a blank quotation template form that can be customized.\nStart by entering a name for the template in the Quotation Template field.\nThen, in the Quotation Validity field, designate how many days the quotation template\nwill remain valid for, or leave the field on the default 0 to keep the template valid\nindefinitely.\n`0`\nNext, in the Confirmation Mail field, click the blank drop-down menu to select a\npreconfigured email template to be sent to customers upon confirmation of an order.\nTo create a new email template directly from the Confirmation Mail field, start\ntyping the name of the new email template in the field, and select either: Create or Create and edit⦠from the drop-down menu that appears.\nSelecting Create creates the email template, which can be edited later.\nSelecting Create and edit⦠creates the email template, and a Create\nConfirmation Mail pop-up window appears, in which the email template can be customized and\nconfigured immediately.\nWhen all modifications are complete, click Save & Close to save the email template\nand return to the quotation form.\nIf working in a multi-company environment, use the Company field to designate to which\ncompany this quotation template applies.\nIf a journal is set in the Invoicing Journal field, all sales orders with this template\nwill invoice in that specified journal. If no journal is set in this field, the sales journal with\nthe lowest sequence is used.\nIf the Online Signature and/or Online Payment features are activated in the Settings ( Sales app ⣠Configuration ⣠Settings ), those options are\navailable on quotation template forms.\nCheck the box beside Online Signature to request an online signature from the customer\nto confirm an order.\nCheck the box beside Online Payment to request an online payment from the customer to\nconfirm an order. When Online Payment is checked, a new percentage field appears, in\nwhich a specific percentage of payment can be entered.\nBoth options, Online Signature and Online Payment can be enabled\nsimultaneously, in which case the customer must provide both a signature and a payment to\nconfirm an order.\n\n### Lines tab\n\nIn the Lines tab, products can be added to the quotation template by clicking Add a product , organized by clicking Add a section (and dragging/dropping\nsection headers), and further explained with discretionary information (such as warranty details,\nterms, etc.) by clicking Add a note .\nTo add a product to a quotation template, click Add a product in the Lines tab of a quotation template form. Doing so reveals a blank field in the Product column.\nWhen clicked, a drop-down menu with existing products in the database appears. Select the desired\nproduct from the drop-down menu to add it to the quotation template.\nIf the desired product is not readily visible, type the name of the desired product in the Product field, and the option appears in the drop-down menu. Products can also be found\nby clicking Search More⦠from the drop-down menu.\nIt is possible to add event-related products (booths and registrations) to quotation templates.\nTo do so, click the Product field, type in Event , and select the desired\nevent-related product from the resulting drop-down menu.\n`Event`\nWhen a product is added to a quotation template, the default Quantity is 1 , but\nthat can be edited at any time.\n`1`\nThen, drag and drop the product to the desired position, via the six squares icon,\nlocated to the left of each line item.\nTo add a section , which serves as a header to organize the lines of a sales order, click Add a section in the Lines tab. When clicked, a blank field appears, in\nwhich the desired name of the section can be typed. When the name has been entered, click away to\nsecure the section name.\nThen, drag and drop the section name to the desired position, via the (six squares) icon, located to the left of each line item.\nTo add a note, which appears as a piece of text for the customer on the quotation, click Add a note in the Lines tab. When clicked, a blank field appears, in which\nthe desired note can be typed. When the note has been entered, click away to secure the note.\nThen, drag and drop the note to the desired position, via the (six squares) icon.\nTo delete any line item from the Lines tab (product, section, and/or note), click the (remove record) icon on the far-right side of the line.\n\n### Optional Products tab\n\nUsing optional products is a marketing strategy that involves the cross-selling of products along\nwith a core product. The aim is to offer useful and related products to customers, which may result\nin an increased sale.\nIf a customer wants to buy a car, they have the choice to order massaging seats as\nan additional product that compliments the car, or ignore the offer and buy the car alone.\nOptional products appear as a section on the bottom of sales orders and eCommerce pages. Customers\ncan immediately add them to their online sales orders themselves, if desired.\nIn the Optional Products tab, Add a line for each cross-selling product\nrelated to the original items in the Lines tab, if applicable.\nClicking Add a line reveals a blank field in the Product column.\nWhen clicked, a drop-down menu with products from the database appear. Select the desired product\nfrom the drop-down menu to add it as an optional product to the quotation template.\nTo delete any line item from the Optional Products tab, click the (remove record) icon.\nOptional products are not required to create a quotation template.\n\n### Terms & Conditions tab\n\nThe Terms & Conditions tab provides the opportunity to add terms and conditions to the\nquotation template. To add terms and conditions, type the desired terms and conditions in this tab.\nDefault terms and conditions (T&C)\nTerms and conditions are not required to create a quotation template.\n\n## Use quotation templates\n\nWhen creating a quotation ( Sales app ⣠New ), choose a preconfigured template in\nthe Quotation Template field.\nThe order of the templates in the Quotation Template field is determined by the order\nof the templates in the Quotation Templates form. The order of the quotations in the Quotation\nTemplates form does not affect anything else.\nTo view what the customer will see, click the Preview button at the top of the page to\nsee how the quotation template appears on the front-end of the website through Odooâs customer\nportal.\nWhen all blocks and customizations are complete, click the Save button to save the\nconfiguration.\nThe blue banner located at the top of the quotation template preview can be used to quickly return Back to edit mode . When clicked, Odoo returns to the quotation\nform in the back-end of the Sales application.\n\n## Mass cancel quotations/sales orders\n\nCancel multiple quotations (or sales orders) by navigating to the Sales app â£\nOrders ⣠Quotations dashboard, landing, by default, in the list view. Then, on the left side of\nthe table, tick the checkboxes for the quotations to be canceled.\nSelect all records in the table by selecting the checkbox column header at the top-left of the\ntable; the total number of selected items are displayed at the top of the page.\nThen, with the desired quotations (or sales orders) selected from the list view on the Quotations page, click the Actions button to reveal a\ndrop-down menu.\nFrom this drop-down menu, select Cancel quotations .\nThis action can be performed for quotations in any stage, even if it is confirmed as a sales\norder.\nUpon selecting the Cancel quotations option, a Cancel quotations confirmation pop-up window appears. To complete the cancellation, click the Cancel\nquotations button.\nAn error pop-up message appears when attempting to cancel an order for an ongoing subscription\nthat has an invoice.\n- Online signatures for order confirmations\nOnline signatures for order confirmations\n- Online payment order confirmation\nOnline payment order confirmation", "headings": ["Configuration", "Create quotation templates", "Lines tab", "Optional Products tab", "Terms & Conditions tab", "Use quotation templates", "Mass cancel quotations/sales orders"], "doc_id": "54276c466cb454af"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/shopee_connector.html", "title": "Shopee Connector", "module": "sales", "section": "Shopee Connector", "text": "# Shopee Connector\n\nThe Shopee Connector synchronizes orders between Shopee and Odoo, which considerably reduces the\namount of time spent manually entering Shopee orders (from the Shopee Seller account) into Odoo. It\nalso allows users to accurately keep track of Shopee sales in Odoo.\n\n## Supported features\n\nThe Shopee Connector is able to:\n- Synchronize (Shopee to Odoo) all confirmed orders, and their order items, which include: Product name SKU reference Quantity\nSynchronize (Shopee to Odoo) all confirmed orders, and their order items, which include:\n- Product name\n- SKU reference\n- Quantity\n- Synchronize (Odoo to Shopee) all available quantities of your products ( FBM ).\nSynchronize (Odoo to Shopee) all available quantities of your products ( FBM ).\n- Support multiple seller accounts.\nSupport multiple seller accounts.\n- Support multiple Shopee marketplaces (shops) per seller account.\nSupport multiple Shopee marketplaces (shops) per seller account.\nThe Shopee Connector is designed to synchronize sales orders data. Other actions, such as\ndownloading weekly/monthly income/fees reports, handling disputes, or issuing refunds, must be managed from the Shopee Seller Central , as usual.\n\n## Shopee supported marketplaces\n\n- Shopee Connector configuration\nShopee Connector configuration\n- Shopee order management\nShopee order management", "headings": ["Supported features", "Shopee supported marketplaces"], "doc_id": "6e77c6a41ebcb537"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/shopee_connector/manage.html", "title": "Shopee order management", "module": "sales", "section": "Shopee order management", "text": "# Shopee order management\n\n## Product catalog mapping\n\n### New Odoo customers with no existing products\n\nIf you are starting a new Odoo database and your products are only on Shopee, you can import your\nShopee product catalog into Odoo.\n- Export Shopee catalog: Use the Mass Function drop-down to export the product catalog from\nShopee, ensuring it includes the Shopee SKUs.\nExport Shopee catalog: Use the Mass Function drop-down to export the product catalog from\nShopee, ensuring it includes the Shopee SKUs.\n- Import into Odoo: Import the exported catalog\ninto Odoo. During the import process, it is crucial to map the Shopee SKU to the Internal Reference field in Odoo. This field will serve as the link between your Shopee and\nOdoo products.\nImport into Odoo: Import the exported catalog\ninto Odoo. During the import process, it is crucial to map the Shopee SKU to the Internal Reference field in Odoo. This field will serve as the link between your Shopee and\nOdoo products.\n\n### Existing Odoo customers with products already in Odoo\n\nIf you already have products in your Odoo database, youâll need to map your Shopee listings to your\nexisting Odoo products.\n- Export Shopee catalogs: Use the Mass Function drop-down to export the product catalog from Shopee\n(including Shopee SKUs) and export your product\ncatalog from Odoo (including Internal References ).\nExport Shopee catalogs: Use the Mass Function drop-down to export the product catalog from Shopee\n(including Shopee SKUs) and export your product\ncatalog from Odoo (including Internal References ).\n- Map in a spreadsheet: Use a spreadsheet to map the products. Match the Shopee SKU from the\nShopee export with the corresponding Internal Reference from the Odoo export. Create a column\nthat links the Shopee SKU with the Odoo Internal Reference .\nMap in a spreadsheet: Use a spreadsheet to map the products. Match the Shopee SKU from the\nShopee export with the corresponding Internal Reference from the Odoo export. Create a column\nthat links the Shopee SKU with the Odoo Internal Reference .\n- Update Odoo products: Import the updated spreadsheet back into Odoo. Use the mapping you\ncreated in the spreadsheet to update the Internal Reference field of your existing Odoo\nproducts with the corresponding Shopee SKU. This establishes the link between your Odoo and\nShopee products.\nUpdate Odoo products: Import the updated spreadsheet back into Odoo. Use the mapping you\ncreated in the spreadsheet to update the Internal Reference field of your existing Odoo\nproducts with the corresponding Shopee SKU. This establishes the link between your Odoo and\nShopee products.\nProduct catalog synchronization between Odoo and Shopee is not automatic . It is a manual operation that you must initiate. The process differs depending on whether your\nproducts already exist in Odoo.\n\n## Order synchronization\n\nOrders are automatically fetched from Shopee, and synchronized in Odoo, at regular intervals .\nThe synchronization is based on the Shopee orders status: only orders whose status has changed\nsince the last synchronization are fetched from Shopee. This includes changes on Shopee only.\nWhen an order is canceled on Shopee, it will update the orderâs status in Odoo. On the other hand,\nif an order is canceled on Odoo, the change wonât be reflected on Shopee.\nFor every synchronized order, Odoo creates a sales order and a customer (contact), as long as the\ncustomer hasnât been previously imported from Shopee or doesnât already exist in the database.\nThe principal of the synchronization is to only fetch orders that needs to be shipped (i.e., SHIPPED , CANCEL , UNPAID , COMPLETED ).\n`SHIPPED`\n`CANCEL`\n`UNPAID`\n`COMPLETED`\n\n## Force synchronization\n\nIn order to force the synchronization of an order, whose status has not changed since the\nprevious synchronization:\nThen, navigate to the Shopee account in Odoo Sales app ⣠Configuration ⣠Shopee\n⣠Account ⣠Shop . Modify the date for Last Order Sync under Orders\nFollow-up .\nBe sure to pick a date that occurs prior to the last status change of the desired order to\nsynchronize and save. This will ensure synchronization occurs correctly.\n\n## Manage deliveries inFBM\n\nWhenever an FBM (Fulfilled by Merchant) order is synchronized in Odoo, a picking is instantly\ncreated in the Inventory app, along with a sales order and customer record.\nWhen a picking related to the order is confirmed, you also have to click on Arrange\nShipment in your Shopee Seller Account in order to be able to generate and fetch the Shipping Label and Tracking Number .\n\n### Shopee delivery statuses\n\nUnderstanding the different Shopee delivery statuses is crucial for managing your orders\neffectively. Hereâs a breakdown:\n- Ready to ship: The seller can now arrange shipment for this order.\nReady to ship: The seller can now arrange shipment for this order.\n- Shipment arranged: The seller has arranged shipment online and received a tracking number\nfrom the third-party logistics (3PL) provider.\nShipment arranged: The seller has arranged shipment online and received a tracking number\nfrom the third-party logistics (3PL) provider.\n- Shipped: The parcel has been dropped off at the 3PL location or picked up by the 3PL\nprovider.\nShipped: The parcel has been dropped off at the 3PL location or picked up by the 3PL\nprovider.\n- Cancelled: The order has been canceled.\nCancelled: The order has been canceled.\n- Pickup failed: The 3PL parcel pickup attempt failed. The seller needs to rearrange shipment,\nand the rest of the order fulfillment content.\nPickup failed: The 3PL parcel pickup attempt failed. The seller needs to rearrange shipment,\nand the rest of the order fulfillment content.\nUnsupported for Non-Shopee Supported Logistics (NSSL)\nThis feature is not available for NSSL , you have to\nmanually create shipping label and tracking number via the logistics providerâs website/app.\nCheck your region for list of supported logistics (e.g. Malaysia ).\nShopee requires users to provide a tracking reference with each delivery. This is needed to\nassign a carrier.\nIf the carrier doesnât automatically provide a tracking reference, one must be set manually.\nThis rule applies to all Shopee marketplaces.\n\n## Follow deliveries in Odoo\n\nFor FBM orders, the stock move is automatically created in Odoo by\nthe Shopee connector, thanks to the shipping status of Shopee.\n\n### Order fulfillment process\n\nThis section describes the process of fulfilling Shopee orders within Odoo, from order creation to\ninventory updates.\n- New order creation: When a new order is placed on Shopee, it is automatically created in\nOdoo.\nNew order creation: When a new order is placed on Shopee, it is automatically created in\nOdoo.\n- Arrange shipment on Shopee: Before the order can be shipped, you must arrange the\nshipment through the Shopee platform itself. This usually involves selecting a shipping\nprovider, generating a shipping label, and scheduling pickup or drop-off. Odoo does not handle the physical shipping arrangements; this is managed entirely within Shopee.\nArrange shipment on Shopee: Before the order can be shipped, you must arrange the\nshipment through the Shopee platform itself. This usually involves selecting a shipping\nprovider, generating a shipping label, and scheduling pickup or drop-off. Odoo does not handle the physical shipping arrangements; this is managed entirely within Shopee.\n- Fetch Shopee shipping label (delivery note): Once the shipment is arranged on Shopee,\nOdoo fetches the generated shipping label (which serves as the delivery note). This label\ncontains crucial information like the tracking number and is essential for printing and\nattaching to the package. The shipping label is imported into Odoo and associated with the\ncorresponding sales order.\nFetch Shopee shipping label (delivery note): Once the shipment is arranged on Shopee,\nOdoo fetches the generated shipping label (which serves as the delivery note). This label\ncontains crucial information like the tracking number and is essential for printing and\nattaching to the package. The shipping label is imported into Odoo and associated with the\ncorresponding sales order.\n- Validate stock out in Odoo: After the shipping label is retrieved, you need to validate the\nstock movement in Odoo. This confirms that the ordered items have left your warehouse or\ninventory. Validating the stock out will decrease the stock levels in Odoo.\nValidate stock out in Odoo: After the shipping label is retrieved, you need to validate the\nstock movement in Odoo. This confirms that the ordered items have left your warehouse or\ninventory. Validating the stock out will decrease the stock levels in Odoo.\n- Inventory update on Shopee: Finally, Odoo pushes the updated stock levels back to Shopee.\nThis ensures that your Shopee listings reflect the current inventory, preventing overselling and\nkeeping your product availability accurate. This synchronization keeps your Shopee storefront\nup-to-date with your Odoo inventory.\nInventory update on Shopee: Finally, Odoo pushes the updated stock levels back to Shopee.\nThis ensures that your Shopee listings reflect the current inventory, preventing overselling and\nkeeping your product availability accurate. This synchronization keeps your Shopee storefront\nup-to-date with your Odoo inventory.\n\n## Register payments\n\nSince customers pay Shopee as an intermediary, creating a dedicated Bank journal (e.g. named Shopee Payments ), with a dedicated Bank and Cash intermediary account is recommended.\n`ShopeePayments`\nAdditionally, as Shopee makes a single weekly or monthly payment, selecting all the invoices linked\nto a single payment is necessary when registering payments.\nTo do that, use the appropriate Journal dedicated to Shopee payments, and select Batch Deposit as the Payment Method .\nThen, select all the generated payments, and click Actions ⣠Create batch payment\n⣠Validate .\nThis same action can be performed with vendor bills from Shopee dedicated to fees/commissions.\nWhen the balance is received in the bank account at the end of the week/month, and the bank\nstatements are recorded, credit the Shopee intermediary account by the amount received.\n\n## Analyzing Shopee sales with Odooâs reporting\n\nOdooâs dashboard consolidates sales data from all your connected sales channels, providing a\ncomprehensive overview of your business performance. To specifically analyze your Shopee sales, you\nwill need to configure sales teams for your Shopee shops. This setup enables you to filter and\nisolate Shopee sales data within the Odoo dashboard.\n\n### Setting up sales teams for Shopee reporting\n\nBy default, the Shopee accountâs sales team is shared across all of your companyâs accounts. To\ngenerate separate reports for specific Shopee shops or marketplaces, youâll need to assign dedicated\nsales teams.\n- Assign a sales team to your Shopee shop: Navigate to the Shopee account configuration\n(typically found under Sales ⣠Configuration ⣠Accounts ). Within the\naccount details, assign a specific sales team to your Shopee shop.\nAssign a sales team to your Shopee shop: Navigate to the Shopee account configuration\n(typically found under Sales ⣠Configuration ⣠Accounts ). Within the\naccount details, assign a specific sales team to your Shopee shop.\n- Filtering Shopee sales on the dashboard: Once sales teams are assigned, you can use the\ndashboard filters to view sales data specifically for your Shopee shops. Select the appropriate\nsales team to isolate and analyze your Shopee performance.\nFiltering Shopee sales on the dashboard: Once sales teams are assigned, you can use the\ndashboard filters to view sales data specifically for your Shopee shops. Select the appropriate\nsales team to isolate and analyze your Shopee performance.\n- Shopee supported features and marketplaces\nShopee supported features and marketplaces\n- Shopee Connector configuration\nShopee Connector configuration", "headings": ["Product catalog mapping", "New Odoo customers with no existing products", "Existing Odoo customers with products already in Odoo", "Order synchronization", "Force synchronization", "Manage deliveries inFBM", "Shopee delivery statuses", "Follow deliveries in Odoo", "Order fulfillment process", "Register payments", "Analyzing Shopee sales with Odooâs reporting", "Setting up sales teams for Shopee reporting"], "doc_id": "088cb4d52959cef0"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/sales/sales/shopee_connector/setup.html", "title": "Shopee Connector configuration", "module": "sales", "section": "Shopee Connector configuration", "text": "# Shopee Connector configuration\n\nOdoo allows users to synchronize with Shopee Seller account in the database, but users must have a registered Shopee Seller account and a Shopee Open account prior to completing the\nconfiguration.\nSet up an Open Shopee account by first going to the Shopee Open Platform , and click the Get Access (Now) button located in the\nmiddle of the page.\nUse the Open Shopee Developer Guide , and follow the\nregistration process. Once all done, proceed to follow the instructions below to register and link\nthe Open Shopee account in Odoo.\nShopee Open Platform access and seller account requirements are regionally specific . This\nmeans the rules, qualifications, and processes differ from country to country. Before proceeding\nwith Odooâs Shopee Connector setup, verify the requirements for your specific Shopee region.\n- Shopee Seller Status & Business Type: You must have an active Shopee seller account\n(Individual or Registered Business). Your eligibility depends on your region and business\nregistration.\nShopee Seller Status & Business Type: You must have an active Shopee seller account\n(Individual or Registered Business). Your eligibility depends on your region and business\nregistration.\n- Order Volume/Seller Tier (If Applicable): Many regions require a minimum number of orders\nwithin a specific time frame or a certain seller tier (e.g., Mall, Preferred, Managed) to\naccess the Open Platform.\nOrder Volume/Seller Tier (If Applicable): Many regions require a minimum number of orders\nwithin a specific time frame or a certain seller tier (e.g., Mall, Preferred, Managed) to\naccess the Open Platform.\n- Identify your Shopee region.\nIdentify your Shopee region.\n- Locate the official Shopee documentation for your region. Open Shopee Developer Guide\nLocate the official Shopee documentation for your region. Open Shopee Developer Guide\n- Carefully review the requirements for seller accounts and Open Platform access in your\nregion.\nCarefully review the requirements for seller accounts and Open Platform access in your\nregion.\n- Ensure your Shopee account meets all the necessary criteria before proceeding with the\nOdoo Shopee Connector configuration.\nEnsure your Shopee account meets all the necessary criteria before proceeding with the\nOdoo Shopee Connector configuration.\n\n## Connect Shopee seller account to Odoo\n\nInstall the Shopee Connector ( sale_shoppe ) by going to Apps .\n`sale_shoppe`\nThen connect your Shopee Open account by navigating to Sales app ⣠Configuration\n⣠Shopee ⣠Accounts .\nFrom here, click New to create to link a new Shopee account.\nThen, in the Credentials tab, select the appropriate API Endpoint from the\ndrop-down menu.\nShopee offers several API endpoints for production and testing. Selecting the correct endpoint\nis crucial for successful integration. Choose the endpoint that corresponds to your marketplace\nlocation.\n- Shopee Production Endpoint (Singapore) : This is the primary endpoint for sellers in\nmost APAC countries. Select this option unless you are specifically operating within mainland\nChina or Brazil.\nShopee Production Endpoint (Singapore) : This is the primary endpoint for sellers in\nmost APAC countries. Select this option unless you are specifically operating within mainland\nChina or Brazil.\n- Shopee Production Endpoint (China) : This endpoint is exclusively for sellers\noperating within mainland China. It is designed to comply with local regulations and business\npractices.\nShopee Production Endpoint (China) : This endpoint is exclusively for sellers\noperating within mainland China. It is designed to comply with local regulations and business\npractices.\n- Shopee Production Endpoint (Brazil) : This endpoint is dedicated to sellers\noperating within Brazil. Select this option if your Shopee store is based in Brazil.\nShopee Production Endpoint (Brazil) : This endpoint is dedicated to sellers\noperating within Brazil. Select this option if your Shopee store is based in Brazil.\n- Shopee Testing Endpoint : This endpoint is for development and testing purposes\nonly. Use it to simulate interactions with the Shopee API without affecting your live data. Do not use this endpoint for production.\nShopee Testing Endpoint : This endpoint is for development and testing purposes\nonly. Use it to simulate interactions with the Shopee API without affecting your live data. Do not use this endpoint for production.\n- Shopee Testing Endpoint (China) : Similar to the general testing endpoint, this one\nis specifically for testing integrations related to the China-specific production endpoint. Do not use this endpoint for production.\nShopee Testing Endpoint (China) : Similar to the general testing endpoint, this one\nis specifically for testing integrations related to the China-specific production endpoint. Do not use this endpoint for production.\nAfter selecting the correct API Endpoint in the Credentials form, input your Open\nShopee Partner ID and Partner Key in the corresponding fields. Then click Save And Authorize .\nYouâll need your Open Shopee Partner ID and Partner Key to complete this\nstep. Hereâs how to find them in the Shopee Open Platform:\n- Log in to the Shopee Open Platform: Log in with the\ncredentials you used to register your Open Shopee account.\nLog in to the Shopee Open Platform: Log in with the\ncredentials you used to register your Open Shopee account.\n- Navigate to App Management: Go to the App Management section, then select App List .\nNavigate to App Management: Go to the App Management section, then select App List .\n- Select your app: Choose the specific app you want to synchronize with Odoo (either your\ntest app or your production app).\nSelect your app: Choose the specific app you want to synchronize with Odoo (either your\ntest app or your production app).\n- Find your credentials: Within the app details, youâll find your Partner ID and Partner\nKey. These are the values youâll need to copy and paste into the corresponding fields in\nOdoo.\nFind your credentials: Within the app details, youâll find your Partner ID and Partner\nKey. These are the values youâll need to copy and paste into the corresponding fields in\nOdoo.\n- Copy carefully: Copy the Partner ID and Partner Key accurately, without any extra spaces\nor characters. These are case-sensitive.\nCopy carefully: Copy the Partner ID and Partner Key accurately, without any extra spaces\nor characters. These are case-sensitive.\n- Keep your key secure: Your Partner Key is sensitive information. Do not share it with\nanyone. Treat it like a password.\nKeep your key secure: Your Partner Key is sensitive information. Do not share it with\nanyone. Treat it like a password.\n\n## Authorization and account registration\n\nAfter entering connecting the Shoppe Seller account to Odoo , the authorization\nprocess begins.\n\n### Shopee seller account selection/login\n\nUpon clicking Save and Authorize , Odoo redirects to the Shopee seller account selection\npage.\n- Already logged in: If you are already logged in to a Shopee account, your email address or\nusername will be displayed. Click on your account to proceed.\nAlready logged in: If you are already logged in to a Shopee account, your email address or\nusername will be displayed. Click on your account to proceed.\n- Not logged in: If you are not logged in, you will be prompted to enter the credentials\n(email/username and password) of the Shopee seller account you wish to connect to Odoo.\nNot logged in: If you are not logged in, you will be prompted to enter the credentials\n(email/username and password) of the Shopee seller account you wish to connect to Odoo.\n\n### Granting access to Odoo\n\nAfter selecting or logging into your Shopee seller account, you will be directed to the\nauthorization (or consent) page. Here, confirm that you allow Shopee to grant Odoo access to your\naccount and related data. This step is essential for the integration to function correctly.\n\n## Account registration and Shopee shop creation\n\nUpon confirming access, Shopee redirects you back to Odoo. An indicator appears, confirming that\nyour Shopee account has been successfully registered.\n\n### Post-synchronization configuration\n\nAfter the redirection, you should perform the following steps within Odoo:\n- Rename the Shopee Account (Optional): The newly created Shopee account in Odoo will likely\nhave a default name. You can rename it to something more descriptive (e.g., the name of your\nShopee shop) for easier management.\nRename the Shopee Account (Optional): The newly created Shopee account in Odoo will likely\nhave a default name. You can rename it to something more descriptive (e.g., the name of your\nShopee shop) for easier management.\n- Set the Last Order Synchronization Date: This setting determines the starting point for\nfetching orders from Shopee. Choose a date from which you want Odoo to retrieve past orders.\nSet the Last Order Synchronization Date: This setting determines the starting point for\nfetching orders from Shopee. Choose a date from which you want Odoo to retrieve past orders.\n- Configure Inventory Synchronization: Decide whether you want to synchronize your product\ninventory between Odoo and Shopee. Enable the Synchronize Inventory option to\nautomatically push stock updates from Odoo to Shopee. Disabling this option prevents automatic\ninventory updates.\nConfigure Inventory Synchronization: Decide whether you want to synchronize your product\ninventory between Odoo and Shopee. Enable the Synchronize Inventory option to\nautomatically push stock updates from Odoo to Shopee. Disabling this option prevents automatic\ninventory updates.\n- Assign a Default Sales Team: Assign a default sales team to your Shopee account in Odoo.\nThis helps with reporting and order management.\nAssign a Default Sales Team: Assign a default sales team to your Shopee account in Odoo.\nThis helps with reporting and order management.\nWith the Shopee account successfully registered, the marketplaces available with this specific\naccount can later be synchronized the exact same way, and listed under the Shops button.\n\n## Shopee orders in Odoo\n\nWhen a Shopee order is synchronized, only lines for items are created on the sales order in Odoo.\nEach one represents one for the product that was sold on Shopee.\nAny necessary price reconciliation related to shipping or income versus fees can be managed later\nusing Shopeeâs weekly / monthly financial reports, which can then be imported into the Odoo Accounting app.\nThe selection of a database product for a sales order item is done by matching its Internal Reference (a customizable product reference identifier in Odoo, like FURN001 )\nwith the Shopee SKU .\n`FURN001`\nIf no database product with a matching internal reference is found for a given Shopee SKU , then a default database product, Shopee Item .\nTo modify default products, activate the developer mode , and navigate to Sales app ⣠Configuration ⣠Settings . In the Connectors section,\nunder Shopee Sync , find the Default Products .\n\n## Product tax configuration\n\nTo allow for tax reporting of Shopee sales with Odoo, the taxes applied to the sales order items are\nthose set on the product, or determined by the fiscal position .\nMake sure to have the correct taxes set on your products in Odoo, or have it done by a fiscal\nposition, to avoid discrepancies in the subtotals between Shopee Seller Central and Odoo.\nAs shopee does not necessarily apply the same taxes as those configured in Odoo, it may happen\nthat order totals differ by a few cents between Odoo and Shopee Seller Central . Those\ndifferences can be resolved with a write-off when reconciling the payments in Odoo.\n\n## Add a new marketplace\n\nTo add a new marketplace, follow these steps:\n- Navigate to Shopee Accounts: Go to Sales ⣠Configuration ⣠Accounts .\nNavigate to Shopee Accounts: Go to Sales ⣠Configuration ⣠Accounts .\n- Create a New Shopee Account: Click New to create a new Shopee marketplace\naccount.\nCreate a New Shopee Account: Click New to create a new Shopee marketplace\naccount.\n- Select the API Endpoint: Choose the appropriate API endpoint for your local market.\n(Typically, this will be Shopee Production Endpoint (Singapore) unless you are\noperating in mainland China or Brazil. Refer to the documentation for details on endpoint\nselection).\nSelect the API Endpoint: Choose the appropriate API endpoint for your local market.\n(Typically, this will be Shopee Production Endpoint (Singapore) unless you are\noperating in mainland China or Brazil. Refer to the documentation for details on endpoint\nselection).\n- Enter Credentials: Your Partner ID and Partner Key are the same as\nthose linked to your unique Open Shopee account. Enter these values in the corresponding fields.\nEnter Credentials: Your Partner ID and Partner Key are the same as\nthose linked to your unique Open Shopee account. Enter these values in the corresponding fields.\n- Name Your Shop: Give the new shop a descriptive name (e.g., Shopee Philippines ) to identify\nit later.\nName Your Shop: Give the new shop a descriptive name (e.g., Shopee Philippines ) to identify\nit later.\n`ShopeePhilippines`\n- Assign a Sales Team: Assign a relevant sales team (e.g., Shopee Sales Philippines ) to\nenable advanced reporting capabilities.\nAssign a Sales Team: Assign a relevant sales team (e.g., Shopee Sales Philippines ) to\nenable advanced reporting capabilities.\n`ShopeeSalesPhilippines`\n- Synchronize Your Account: If none of your existing marketplaces are listed, click Log in with another account to synchronize a new one. This will initiate the Shopee\nauthorization process.\nSynchronize Your Account: If none of your existing marketplaces are listed, click Log in with another account to synchronize a new one. This will initiate the Shopee\nauthorization process.\n\n### Automatic synchronization\n\nNewly added marketplaces are automatically added to the list of synchronized marketplaces. If a new\nmarketplace does not appear in the list after synchronization, it indicates that the marketplace\nis either incompatible with the Shopee Open Platform or unavailable for your specific seller\naccount. Consult the Shopee Open Platform documentation or contact their support for further\nassistance.\nWhile Odoo allows creating the same Shopee shop multiple times, only one instance will function\ndue to token limitations. To avoid order management issues, synchronize each shop only once. For\nconnection updates, manually fetch orders first before re-establishing the connection.\n- Shopee supported features and marketplaces\nShopee supported features and marketplaces\n- Shopee order management\nShopee order management", "headings": ["Connect Shopee seller account to Odoo", "Authorization and account registration", "Shopee seller account selection/login", "Granting access to Odoo", "Account registration and Shopee shop creation", "Post-synchronization configuration", "Shopee orders in Odoo", "Product tax configuration", "Add a new marketplace", "Automatic synchronization"], "doc_id": "fcd5933637e5b833"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/helpdesk.html", "title": "Helpdesk", "module": "helpdesk", "section": "Helpdesk", "text": "# Helpdesk\n\nOdoo Helpdesk is a ticket-based customer support application. Multiple teams can be configured\nand managed in one dashboard, each with their own pipeline for tickets submitted by customers.\nPipelines are organized in customizable stages that enable teams to track, prioritize, and solve\ncustomer issues quickly and efficiently.\n\n## Create a Helpdesk team\n\nTo view or modify Helpdesk teams, go to Helpdesk app ⣠Configuration â£\nHelpdesk Teams . To create a new team, click the New button on the top-left of the\ndashboard.\nOn the blank Helpdesk team form, enter a Name for the new team. Then, enter a\ndescription of the team in the field below the team name, if desired. To change the company this\nteam is assigned to, select it from the Company drop-down menu.\nThe team description is published on the public facing website form , where customers and portal users submit tickets. The\ndescription included in this field should not include any information that is for internal\nuse only.\n\n### Visibility & Assignment\n\nThe Visibility settings alter which internal users and portal users have access to this team and\nits tickets. The Assignment settings alter how users are assigned to handle each ticket.\n\n#### Determine team visibility\n\nUnder the Visibility section, select one of the following options to determine who can\nview this team and its tickets:\n- Invited internal users (private) : Internal users can access the team and the tickets\nthey are following. This access can be modified on each ticket individually by adding or removing\nthe user as a follower. Internal users are considered invited once they are added as followers\nto an individual ticket, or to the team itself .\nInvited internal users (private) : Internal users can access the team and the tickets\nthey are following. This access can be modified on each ticket individually by adding or removing\nthe user as a follower. Internal users are considered invited once they are added as followers\nto an individual ticket, or to the team itself .\n- All internal users (company) : All internal users can access the team and all of its\ntickets.\nAll internal users (company) : All internal users can access the team and all of its\ntickets.\n- Invited portal users and all internal users (public) : All internal users can access\nthe team and all of its tickets. Portal users can only access the tickets they are following.\nInvited portal users and all internal users (public) : All internal users can access\nthe team and all of its tickets. Portal users can only access the tickets they are following.\nA Customer Support team, meant to handle general shipping and product issues, would have the\nvisibility set on Invited portal users and all internal users .\n`CustomerSupport`\nAt the same time, a Financial Services team handling tickets related to accounting or tax\ninformation would only need to be visible to Invited internal users .\n`FinancialServices`\nA teamâs visibility can be altered after the initial configuration. However, if the team changes\nfrom Invited portal users and all internal users (public) access to either Invited internal\nusers (private) or All internal users (company) -only access, portal users are removed as\nfollowers from both the team, and from individual tickets.\n\n#### Follow all teamâs tickets\n\nIf a user should be notified about any updates regarding tickets for this team, select their name\nfrom the Followers drop-down menu, located in the Follow All Teamâs Tickets field. Multiple users can be selected to follow a single team.\nExternal contacts can be selected in the Followers field. If the teamâs visibility is\nset to Invited internal users (private) , followers are notified about updates to the\nteamâs tickets, but are not able to view them in the portal.\n\n#### Automatically assign new tickets\n\nWhen tickets are received, they need to be assigned to a member of the team. This is done either\nmanually on each individual ticket, or through Automatic Assignment . Check the Automatic Assignment checkbox to enable this feature for the team.\nSelect one of the following assignment methods, based on how the workload should be allocated across\nthe team:\n- Each user is assigned an equal number of tickets : Tickets are assigned to team members\nbased on total ticket count, regardless of the number of open or closed tickets they are\ncurrently assigned.\nEach user is assigned an equal number of tickets : Tickets are assigned to team members\nbased on total ticket count, regardless of the number of open or closed tickets they are\ncurrently assigned.\n- Each user has an equal number of open tickets : Tickets are assigned to team members\nbased on how many open tickets they are currently assigned.\nEach user has an equal number of open tickets : Tickets are assigned to team members\nbased on how many open tickets they are currently assigned.\nWhen Each user is assigned an equal number of tickets is selected, the overall number\nof tickets assigned to team members is the same, but it does not consider the current\nworkload.\nWhen Each user has an equal number of open tickets is selected, it ensures a balanced\nworkload among team members, as it takes the current number of active tickets into account.\nFinally, add the Team Members who are to be assigned tickets for this team. Leave the\nfield empty to include all employees who have the proper assignments and access rights configured in\ntheir user account settings.\nIf an employee has time off scheduled in the Time Off application, they are not assigned\ntickets during that time. If no employees are available, the system looks ahead until there is a\nmatch.\n- Manage users\n- Access rights\n\n## Merge tickets\n\nIf duplicate tickets are found in Helpdesk , they can be combined into a single ticket using the merge feature.\nThe merge feature is only accessible if the Data Cleaning application is installed on the database.\nTo merge two or more tickets, navigate to Helpdesk app ⣠Tickets ⣠All Tickets .\nIdentify the tickets to be merged, and tick the checkbox at the far-left of each ticket to select\nthem. Then, click the Actions icon, and select Merge from the\ndrop-down menu. Doing so opens a new page where the selected tickets are listed with their Similarity rating. From here, click either Merge to\ncombine the tickets, or DISCARD .\n\n## Convert tickets to opportunities\n\nSome tickets may be better handled by the sales team, rather than the support team. In this case,\ntickets can be converted to opportunities and assigned to a sales team for follow-up.\nThis feature is only available if the CRM app is installed.\nTo convert a ticket to an opportunity, first navigate to a ticket, either from a teamâs pipeline,\nor by navigating to Helpdesk app ⣠Tickets and clicking a ticket to open it.\nAt the top of the ticket, click the Convert to Opportunity button.\nIf leads are enabled on the CRM app, tickets are\nconverted to leads , and the button reads Convert to Lead .\nThis opens the Convert to Opportunity pop-up. Fill in or select the following\ninformation on the pop-up:\n- Customer : Select whether to Create a new customer , Link to an\nexisting customer , or Do not link to a customer . If Link to a customer is\nchosen, select the appropriate customer name from the Customer drop-down.\nCustomer : Select whether to Create a new customer , Link to an\nexisting customer , or Do not link to a customer . If Link to a customer is\nchosen, select the appropriate customer name from the Customer drop-down.\n- Sales Team : Specify which Sales Team and Salesperson this\ncreated opportunity is assigned to.\nSales Team : Specify which Sales Team and Salesperson this\ncreated opportunity is assigned to.\nAfter completing the form, click Convert to Opportunity . Doing so creates a new\nopportunity in the CRM app. The original ticket is linked in the chatter of the new opportunity\nfor traceability.\nAfter the ticket is converted to an opportunity, the ticket is archived.\n- Odoo Tutorials: Helpdesk\nOdoo Tutorials: Helpdesk", "headings": ["Create a Helpdesk team", "Visibility & Assignment", "Merge tickets", "Convert tickets to opportunities"], "doc_id": "19de63024ffddee7"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/helpdesk/advanced/after_sales.html", "title": "After-Sales services", "module": "helpdesk", "section": "After-Sales services", "text": "# After-Sales services\n\nAfter-Sales services can be configured in the Helpdesk application for individual teams. Once\nenabled, users can issue refunds , generate coupons , process returns , and schedule repairs or field service interventions directly from a ticket.\n\n## Set up after-sales services\n\nStart by enabling the after-sales services on a specific Helpdesk team, by going to Helpdesk app ⣠Configuration ⣠Helpdesk Teams and click on the team the\nservices should be applied to. Then, scroll to the After-Sales section on the teamâs\nsettings page, and choose which of the following options to enable:\n- Refunds : issues credit notes to refund a customer, or adjust the remaining amount due.\nRefunds : issues credit notes to refund a customer, or adjust the remaining amount due.\n- Coupons : offers discounts and free products through an existing coupon program.\nCoupons : offers discounts and free products through an existing coupon program.\n- Returns : initiates a product return from a customer through a reverse transfer.\nReturns : initiates a product return from a customer through a reverse transfer.\n- Repairs : creates repair orders for broken or faulty products.\nRepairs : creates repair orders for broken or faulty products.\n- Field Service : plans onsite intervention through the Field Service application.\nField Service : plans onsite intervention through the Field Service application.\nThe services that are enabled can vary based on the type of support a team provides.\nSince all the after-sales services in Odoo require integration with other applications, enabling\nany of them may result in the installation of additional modules or applications. Installing a\nnew application on a One-App-Free database triggers a 15-day trial. At the end of the trial, if a\npaid subscription has not been added to the database, it will no longer be accessible.\n\n## Issue refund with credit note\n\nA credit note is a document issued to a customer informing them that they have been credited a\ncertain amount of money. They can be used to provide a full refund to a customer, or to adjust any\nremaining amount due. While they are usually created through the Accounting or Invoicing applications, they can be created through a Helpdesk ticket, as well.\nInvoices must be posted before a credit note can be generated.\nTo create a credit note, navigate to a ticket on the Helpdesk app , and click the Refund button in the top-left corner of the ticket form. This opens a Refund pop-up window.\nFill out the fields with the necessary information:\n- Sales Order : if a sales order was referenced on the original ticket, it automatically\npopulates in this field.\nSales Order : if a sales order was referenced on the original ticket, it automatically\npopulates in this field.\n- Product : the product the ticket is about. If an item is selected in this field, only\nthe sales orders, deliveries, and invoices including this product can be selected.\nProduct : the product the ticket is about. If an item is selected in this field, only\nthe sales orders, deliveries, and invoices including this product can be selected.\n- Lot/Serial Number : this field is only visible if the Product selected\nhas associated lot or serial numbers.\nLot/Serial Number : this field is only visible if the Product selected\nhas associated lot or serial numbers.\n- Invoices to Refund : this field is required . If no invoices are available in the\ndrop-down, it indicates this customer currently has no posted invoices, or the Product has no related invoices.\nInvoices to Refund : this field is required . If no invoices are available in the\ndrop-down, it indicates this customer currently has no posted invoices, or the Product has no related invoices.\n- Reason displayed on Credit Note : this field automatically populates with the ticket\nnumber, though it can be edited with additional information.\nReason displayed on Credit Note : this field automatically populates with the ticket\nnumber, though it can be edited with additional information.\n- Journal : the accounting journal where the credit note should be posted. After an\ninvoice is selected, this field defaults to the journal listed on the original invoice, though it\ncan be changed, if necessary.\nJournal : the accounting journal where the credit note should be posted. After an\ninvoice is selected, this field defaults to the journal listed on the original invoice, though it\ncan be changed, if necessary.\n- Reversal date : when this field is clicked, use the pop-up calendar that appears to\nselect a date for the credit note invoice. This field is required .\nReversal date : when this field is clicked, use the pop-up calendar that appears to\nselect a date for the credit note invoice. This field is required .\nAfter the necessary fields are filled in, click Reverse or Reverse and Create\nInvoice .\nReverse creates a credit note in a draft state that can be edited before it is posted.\nThis option can be used to provide a partial refund.\nReverse and Create Invoice creates a credit note that is automatically posted as well as\nan invoice in a draft state. The invoice contains the same information as the original invoice,\nthough this information can be altered.\nOnce the credit note has been posted, a Credit Notes smart button is added to the Helpdesk ticket.\nCredit notes and refunds\n\n## Generate coupons from a ticket\n\nCoupons can be used to alter the price of products or orders. Conditional rules define the usage\nconstraints of a coupon. Coupon Programs are configured in the Sales , Point of Sale , or Website applications.\nThe eCommerce module must be installed to create coupon codes from the Website .\nTo generate a coupon, open a Helpdesk ticket and click on the Coupon button in the\ntop-left corner. Select an option from the Coupon Program drop-down menu in the Generate a Coupon pop-up window that appears.\nTo create a new Coupon Program , navigate to Sales app ⣠Products\n⣠Discount & Loyalty and click New . To make the program available to share with Helpdesk customers, the Program Type must be set to Coupons . This\ngenerates single-use coupon codes that grant immediate access to rewards and discounts.\nCoupon programs can also be created in the Point of Sale or Website applications. Refer to discount and loyalty programs for\nmore information.\nClick on the Valid Until field, and use the pop-up calendar to select an expiration date\nfor this coupon code. If this field is left blank, the code does not expire.\nClick Send by Email to compose an email to send to the customer with the coupon code.\nClick Get Share Link to generate a link to send directly to the customer. Doing so opens\na Share Coupons pop-up window. Click the Copy button next to the Share Link field and paste the results to any communication with the customer. When the\ncustomer uses the link, the code is automatically applied to their cart.\nAfter a Coupon Code has been generated, a Coupons smart button is added to\nthe top of the ticket; click the smart button to view the coupon code, expiration date, and\nadditional information.\n- Coupons\n- Discount and loyalty programs\nDiscount and loyalty programs\n\n## Return products\n\nReturns are completed through reverse transfers , which generate new warehouse operations for the\nreturning products. Click the Return button at the top of a ticket to open the Return pop-up window.\nThe Return button only appears on a ticket if the customer has a recorded\ndelivery in the database.\nSelect a Sales Order or Delivery to Return to identify the products that\nneed to be returned.\nBy default, the quantity matches the validated quantity from the delivery order. Update the Quantity field, if necessary. To remove a line, click the (trash) icon.\nSelect a Return Location where the items should be directed after the return is\ncompleted.\nTo confirm the return, click Return . This generates a new warehouse operation for the\nincoming returned products.\nTo exchange the received item with a new one, click Return for Exchange . Doing so\ngenerates a warehouse operation in Odoo to deliver the replacement product.\nUse the breadcrumbs to return to the helpdesk ticket. A new Return smart button can now\nbe accessed at the top of the ticket.\n\n## Send products for repair from a ticket\n\nIf the ticket is related to an issue with a faulty or broken product, a repair order can be\ncreated from the Helpdesk ticket, and managed through the Repairs application.\nTo create a new repair order, open a Helpdesk ticket and click on the Repair button in the top-left corner. This opens a Repair Reference form.\nFill out the fields with the necessary information:\n- Customer : this field carries over from the ticket, though a new contact can been\nselected from the drop-down menu.\nCustomer : this field carries over from the ticket, though a new contact can been\nselected from the drop-down menu.\n- Product to Repair : if a product was specified in the Product field on the\nticket, it is added to this field automatically. If not, click into the field to select a product\nfrom the drop-down menu.\nProduct to Repair : if a product was specified in the Product field on the\nticket, it is added to this field automatically. If not, click into the field to select a product\nfrom the drop-down menu.\n- Lot/Serial : this field is only visible if the products being repaired are\ntracked, via lot or serial numbers.\nLot/Serial : this field is only visible if the products being repaired are\ntracked, via lot or serial numbers.\n- Return : return order from which the product to be repaired comes from.\nReturn : return order from which the product to be repaired comes from.\n- Under Warranty : if this box is checked, the sale price for all products from the\nrepair order are set to zero.\nUnder Warranty : if this box is checked, the sale price for all products from the\nrepair order are set to zero.\n- Scheduled Date : this field defaults to the current date. To select a new date, click\ninto the field and select a date using the drop-down calendar.\nScheduled Date : this field defaults to the current date. To select a new date, click\ninto the field and select a date using the drop-down calendar.\n- Responsible : assign a user from the drop-down menu to manage the repair.\nResponsible : assign a user from the drop-down menu to manage the repair.\n- Tags : click into this field to assign an existing tag or create a new one. Multiple\ntags can be assigned.\nTags : click into this field to assign an existing tag or create a new one. Multiple\ntags can be assigned.\nIf parts are required for the repair, they can be added in the Parts tab. Additional\ninformation for the internal repair team can be added to the Repair Notes tab.\nOnce the form is complete, click Confirm Repair . To create, edit, and send a quote for\nthis repair, click Create Quotation .\nA Repairs smart button is then added to the ticket, linking to the repair order.\nOnce a user creates a repair order from a Helpdesk ticket, they can access it through the\nticketâs Repair smart button, or from a link in the chatter, even if they do not have\naccess rights to the Repair application.\n\n## Create field service task from a ticket\n\nOn-site interventions can be planned from a ticket and managed through the Field Service application. Customers with portal access are able to track\nthe progress of a Field Service task the same as they would a Helpdesk ticket.\nTo change the default Field Service project for the team, go to Helpdesk app\n⣠Configuration ⣠Helpdesk Teams to select a Team . Scroll to the After-Sales section, and choose a project under Field Service .\nTo create a new Field Service task, navigate to a Helpdesk ticket. Click Plan Intervention to open the Create a Field Service task pop-up window.\nConfirm or update the task Title .\nThe Project field on the Create a Field Service task pop-up window defaults\nto the same Field Service project that was identified on the teamâs settings page. To change the\nproject for this specific task, select one from the Project field.\nIf applicable, select a Worksheet Template from the drop-down menu.\nField Service Worksheets are reports that detail the work completed during an on-site task.\nWhen work is completed, worksheets are signed by the customer to confirm the job is done and the\ncustomer is satisfied.\nIf the Field Service project assigned to the Helpdesk team has worksheets enabled, and\nhas a default template assigned, that template automatically appears in the Worksheet\nTemplate drop-down field. Even so, the field can be edited, and another template can be\nselected.\nIf the Field Service project does not have worksheets enabled, the Worksheet\nTemplate field does not appear on the Create a Field Service task pop-up window.\nClick Create Task or Create & View Task .\nAfter the task is created, a Tasks smart button is added to the ticket, linking the Field Service task to the ticket.", "headings": ["Set up after-sales services", "Issue refund with credit note", "Generate coupons from a ticket", "Return products", "Send products for repair from a ticket", "Create field service task from a ticket"], "doc_id": "0b03d4b59530241e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/helpdesk/advanced/close_tickets.html", "title": "Close tickets", "module": "helpdesk", "section": "Close tickets", "text": "# Close tickets\n\nAfter work has been completed on a ticket in the Helpdesk app, there are several ways it can be\nclosed. Manually closing solved tickets keeps the pipeline up to date, while automatically closing\ninactive tickets prevents unnecessary blocking issues. Allowing customers to close their own tickets\nminimizes confusion around whether an issue is considered solved or not. This results in increased\noperational capacity for support teams, and higher customer satisfaction.\n\n## Manually close solved tickets\n\nAs work on a ticket progresses, it is moved along to the next stage in the pipeline. When the issue\nis solved, the ticket is moved to a folded stage. This marks the ticket as closed .\nTo fold a stage, navigate to the Helpdesk dashboard and click on a team to open the\npipeline. Hover over a stageâs heading, and then click the (gear) icon\nthat appears in the top-right corner of that stageâs Kanban column.\nClicking the gear icon also displays the option to Fold the stage. This setting folds\nthe stage temporarily to simplify the Kanban view. This does not close the tickets in this\nstage. It also does not permanently fold the stage. If a stage needs to be folded so the tickets\ncan be marked as closed, continue following the steps below.\nFrom the menu that appears, select Edit . This opens the stageâs settings. Tick the\ncheckbox labeled Folded in Kanban , and then Save & Close to confirm the\nchanges. Now, tickets are closed once they reach this folded stage.\n\n## Automatically close inactive tickets\n\nTickets that are inactive for a set period of time can be automatically closed. At that point, they\nare moved to a folded stage.\nGo to the teamâs settings page by going to Helpdesk ⣠Configuration ⣠Helpdesk\nTeams . Under the Self-Service section, enable Automatic Closing .\nIf only one of the teamâs stages is folded in the Kanban view, it is the default selection in the Move to Stage field. If the team has more than one folded stage, the stage that occurs\nfirst in the pipeline is the default for this field. If no stage is folded, the default selection is\nthe last stage in the pipeline.\nThe After days of inactivity field defaults to 7 , but can be adjusted if necessary.\n`7`\nThe After days of inactivity field does not take the working calendar into\naccount when tracking the amount of time a ticket has been inactive.\nIf only certain stages should be used to track days of inactivity, they can be added to the In Stages field.\nA teamâs pipeline is created with the following stages:\n`New`\n- In Progress\n`InProgress`\n- Customer Feedback\n`CustomerFeedback`\n- Closed\n`Closed`\nTickets can linger in the Customer Feedback stage , because once an issue is solved,\ncustomers may not respond immediately. At that point, the tickets can be closed automatically.\nHowever, tickets in the New and In Progress stages may remain inactive\ndue to assignment or workload issues. Closing these tickets automatically would result in issues\ngoing unsolved.\nTherefore, the Automatic Closing settings would be configured as below:\n- Automatic Closing : checked\nAutomatic Closing : checked\n- Move to Stage : Solved\nMove to Stage : Solved\n`Solved`\n- After 7 days of inactivity\nAfter 7 days of inactivity\n`7`\n- In Stages : Customer Feedback\nIn Stages : Customer Feedback\n`CustomerFeedback`\n\n## Allow customers to close their own tickets\n\nEnabling the Closure by Customers setting allows customers to close their own tickets\nwhen they determine that their issue has been resolved.\nStart by navigating to Helpdesk ⣠Configuration ⣠Helpdesk Teams and select a\nteam. On the teamâs settings page, scroll to the Self-Service section and tick the\ncheckbox for Closure by Customers .\nAfter the ticket closing settings are enabled, a Close Ticket button is available for\ncustomers when they view their ticket through the customer portal.\nCustomers are able to view their tickets by clicking the View the ticket link they\nreceive by email. The link is included in the Request Acknowledgment template, which\nis added to the first stage of a team by default. This link does not require a customer to have\naccess to the portal to view or respond to their ticket.\nCustomers with access to the portal are able to view their\ntickets under My Account ⣠Tickets .", "headings": ["Manually close solved tickets", "Automatically close inactive tickets", "Allow customers to close their own tickets"], "doc_id": "23b80cbdd6d219c8"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/helpdesk/advanced/track_and_bill.html", "title": "Track and bill time", "module": "helpdesk", "section": "Track and bill time", "text": "# Track and bill time\n\nOdoo Helpdesk provides teams with the ability to track the amount of hours spent working on a\nticket, and to bill a customer for that time. Through integrations with the Sales , Timesheets , Project and Accounting applications, customers can be charged once the work\nis completed, or before it has even begun.\nSince the Track & Bill Time features require integration with other applications, enabling them\nmay result in the installation of additional modules or applications.\nInstalling a new application on a One-App-Free database triggers a 15-day trial. At the end of\nthe trial, if a paid subscription has not been added to the database, it will no longer be active\nor accessible.\n\n## Configure track and bill time features\n\nBefore a customer can be invoiced for support services, the Track & Bill Time features must be\nenabled on each Helpdesk team individually.\n\n### Enable track and bill time on a helpdesk team\n\nTo view and enable the Track & Bill Time features on a Helpdesk team, first navigate to Helpdesk app ⣠Configuration ⣠Helpdesk Teams . Then, select a team from the\nlist, or create a new one . This reveals a teamâs settings page.\nOn the teamâs settings page, scroll to the Track & Bill Time section. Check the boxes\nlabeled Timesheets and Time Billing .\nAfter the Timesheets box is checked, a new field appears, labeled Project .\nIf this is the first time this feature has been enabled on this database, the page may need to be\nmanually saved and refreshed before the Project field appears.\nThe project selected in this field represents where all the timesheets for this teamâs tickets are\nrecorded. Click into the Project drop-down menu to select a project.\nTo create a new project where the timesheets are recorded, click into the Project drop-down menu, type a name for the project, and then click Create from the drop-down\nmenu beneath.\n\n#### Configure service products\n\nWhen the Time Billing feature is enabled, a new product is created in the Sales app\ncalled Service on Timesheets . This product can be found under Sales appâ£\nProducts ⣠Products . Then, search for Service on Timesheets in the search bar. This is the\nproduct that is used when invoicing for post-paid support services after they have been\ncompleted.\n`ServiceonTimesheets`\nSelect Service on Timesheets from the product page. This reveals the product detail\nform. The product is configured with the Product Type set to Service and the Invoicing Policy set to Based on Timesheets . Make any necessary changes to\nthe product record, such as the Cost or Sales Price .\nIn order to invoice for support services before the work has been completed (also known as prepaid support services ), a separate product with a different invoicing policy must be created.\nTo create a new service product, go to Sales app ⣠Products ⣠Products , and\nclick New . This reveals a blank product detail form.\nOn the new product form, add a Product Name , and set the Product Type to Service . Then, set the Invoicing Policy to Prepaid/Fixed Price .\nThis means an invoice can be generated and payment can be received for this product before any\ntimesheets entries have been recorded for these services.\nFinally, set the Sales Price , and confirm that the unit of measure is set to Hours .\n\n## Invoice prepaid support services\n\nWhen support services are billed on a fixed price, an invoice can be created before any work is\ncompleted on the issue. In this case, a service product with the Invoicing Policy set to Prepaid/Fixed Price is used, like the section above .\n\n### Create a sales order with prepaid product\n\nTo invoice a customer for prepaid support services, first create a sales order (SO) with the support\nservices product. To do this, go to Sales app ⣠Orders ⣠Quotations . Then,\nclick New to reveal a blank quotation form.\nThen, fill out the quotation form with the customer information.\nGo to the Order Lines tab of the quotation and click Add a product . Then,\nselect the prepaid services product when configuring the service product . Update the Quantity field with the number of\nhours.\nAfter updating any other necessary information, Confirm the quotation. This converts the\nquotation into an SO .\n\n### Create and send an invoice for prepaid services\n\nAfter the SO has been confirmed, click the Create Invoice button. This opens a Create invoice(s) pop-up window.\nIf no down payment is collected, the Create Invoice type can remain as Regular Invoice . If a down payment is collected, choose between either Down payment (percentage) or Down payment\n(fixed amount) .\nWhen the necessary information has been entered, click Create Draft .\nThe invoice can then be sent to the customer for payment.\n\n### Create helpdesk ticket for prepaid services\n\nTo create a Helpdesk ticket for prepaid services, navigate to Helpdesk and\nclick the Tickets button to reveal a specific teamâs pipeline. Click New to\ncreate a new ticket.\nOn the blank ticket form, create a ticket Title , and enter the Customer information.\nWhen the customer name is added, the Sales Order Item field automatically populates with\nthe most recent prepaid sales order item that has time remaining.\n\n### Track hours on helpdesk ticket\n\nTime spent working on a Helpdesk ticket is tracked on the Timesheets tab on the specific\nticket.\nOn the ticket detail form, click on the Timesheets tab and click Add a line .\nChoose an Employee , add a Description of the task, and enter the number of Hours Spent .\nAs new lines are added to Timesheets tab, the Remaining Hours on SO field,\nat the bottom-right of the tab, is automatically updated.\nIf the number of hours on the Timesheets tab exceeds the number of hours sold, the Remaining Hours of SO turns red.\nAs hours are added to the Timesheets tab, they are automatically updated in the Delivered field on the SO , as well.\n\n## Invoice post-paid support services\n\nWhen support services are billed based on the amount of time spent on an issue, an invoice cannot be\ncreated before the total number of hours required to solve the problem have been entered on a\ntimesheet. In this case, a service product with the Invoicing Policy set to Based on Timesheets is used, like the one that is automatically created after the\nTime Billing feature is enabled.\n\n### Create a sales order with a time-tracked product\n\nTo invoice a customer for post-paid support services, first create a SO with the Service on\nTimesheets product. To do this, go to Sales app ⣠Orders ⣠Quotations . Then,\nclick New to reveal a blank quotation form.\nFill out the quotation with the customer information.\nOn the Order Lines tab, click Add a product . Select the Service\non Timesheets product. After updating any other necessary information, Confirm the\nquotation.\nUnlike with the prepaid services quotation, Odoo does not allow an invoice to be created at\nthis time. Since services were not performed, nothing was delivered, so there is nothing to\ninvoice.\n\n### Create a helpdesk ticket for time-tracked services\n\nTo record a timesheet entry for time-tracked services, go to the Helpdesk app, and\nselect the appropriate team for which these services apply.\nIf there is already an existing ticket for this issue, select it from the Kanban view. This opens\nthe ticket details form. If there is no existing ticket for this customer issue, click New to create a new ticket and enter the necessary customer information on the blank\nticket details form.\nAfter selecting or creating a ticket, go to the Sales Order Item drop-down menu. Select\nthe SO created in the previous step.\n\n### Track support hours on a ticket\n\nIn order to create an invoice for a product based on timesheets, hours need to be tracked and\nrecorded. At this point, the service is considered delivered . To record hours for this support\nservice, click on the Timesheets tab of the ticket.\nClick Add a Line to record a new entry. Select an Employee from the\ndrop-down menu, and record the time spent in the Hours Spent column.\nRepeat these steps until all timesheet entries have been recorded.\n\n### Create an invoice for hours tracked on a ticket\n\nIf no new timesheets are needed, then create an invoice and send it to the customer.\nTo do this, return to the SO by clicking on the Sales Order smart button at the top of\nthe ticket.\nBefore creating the invoice, confirm that the number in the Delivered column matches the\ntotal number of Hours Spent listed in the Timesheets tab on the ticket.\nThen, click Create Invoice . This opens a Create invoice(s) pop-up window.\nIf no down payment is collected, the Create Invoice type can remain as Regular Invoice . If a down payment is collected, choose between either Down\npayment (percentage) or Down payment (fixed amount) .\nUse the Timesheets Period field if this invoice should only include timesheets\nfrom a certain time period. If this field is left blank, all applicable timesheets that have\nnot yet been invoiced are included.\nWhen the necessary information has been entered, click Create Draft . The invoice can\nthen be reviewed, edited, and sent to the customer for payment.\n- Units of measure\n- Down payments", "headings": ["Configure track and bill time features", "Enable track and bill time on a helpdesk team", "Invoice prepaid support services", "Create a sales order with prepaid product", "Create and send an invoice for prepaid services", "Create helpdesk ticket for prepaid services", "Track hours on helpdesk ticket", "Invoice post-paid support services", "Create a sales order with a time-tracked product", "Create a helpdesk ticket for time-tracked services", "Track support hours on a ticket", "Create an invoice for hours tracked on a ticket"], "doc_id": "152307e1350b579f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/helpdesk/overview/help_center.html", "title": "Help Center", "module": "helpdesk", "section": "Help Center", "text": "# Help Center\n\nOdoo Helpdesk integrates with the Forums , eLearning , and Knowledge apps to create\nthe Help Center . The Help Center is a centralized location where teams and customers can search\nfor and share detailed information about products and services.\n\n## Configuration\n\nTo activate any of the Help Center features on a Helpdesk team, go to Helpdesk\napp ⣠Configuration ⣠Helpdesk Teams and select a team, or create a new one . Verify the Visibility of the team is set to Invited portal\nusers and all internal users (public) in the Visibility & Assignment section.\nAdditionally, the Website Form option on the Helpdesk team form must be enabled\nto activate any of the Help Center features. When one or more of the Help Center features is\nenabled, the Website Form is automatically enabled, as well.\nSince all of the Help Center features require integration with other applications, enabling any\nof them may result in the installation of additional modules or applications.\nInstalling a new application on a One-App-Free database will trigger a 15-day trial. At the end\nof the trial, if a paid subscription has not been added to\nthe database, it will no longer be active or accessible.\n\n## Knowledge\n\nOdooâs Knowledge application is a collaborative library, where users can store, edit, and share\ninformation. The Knowledge app can be used to publish user guides and FAQs with customers externally, while also collaborating internally on shared\ndocuments.\nThe Knowledge app is accessible throughout the database by clicking on the Knowledge\n(bookmark) icon.\nThe Knowledge app is represented by the bookmark icon.\n\n### Enable Knowledge on a Helpdesk team\n\nTo enable the Knowledge feature on a Helpdesk team, go to Helpdesk app â£\nConfiguration ⣠Helpdesk Teams and select a team, or create a new one .\nWhen a team has been selected or created, Odoo displays that teamâs detail form.\nOn the teamâs detail form, scroll down to the Help Center section. Then, click the box\nnext to Knowledge to activate the Knowledge feature. When clicked, a new field\nlabeled, Article appears.\nClicking the Article field reveals a drop-down menu. At first, there is only one option\nin the drop-down menu titled Help , which Odoo provides by default. Select Help from the drop-down menu to choose this article.\nTo create a new article, go to the Knowledge app , then hover the cursor next to\nthe Workspace section heading, located in the left sidebar. Moving the cursor there\nreveals a hidden (plus) icon.\nClick the (plus) icon to create a new article in the Workspace . Click the Share icon, and slide the Share to Web toggle switch\nuntil it reads Article Published . It can then be added to a Helpdesk team.\nOnce an article has been created and assigned to a Helpdesk team, content can be added and\norganized through the Knowledge app.\nEditing Knowledge articles\n\n### Search articles from a Helpdesk ticket\n\nWhen members of a Helpdesk team are trying to solve a ticket, they can search through the\ncontent in the Knowledge app for more information on the issue.\nTo search Knowledge articles, open a ticket â either from the Helpdesk app dashboard, or by\ngoing to Helpdesk app ⣠Tickets ⣠All Tickets , then select a ticket from the\nlist.\nWhen a ticket is selected, Odoo reveals that ticketâs detail form.\nClick the Knowledge (bookmark) icon, located at the top-right of the page, to open a\npop-up search window.\nKnowledge articles can also be searched by pressing Ctrl + K to open the command\npalette, then typing ? , followed by the name of the desired article.\nWhen Odoo reveals the desired article, click it, or highlight the Article title, and\npress Enter . This will open the article in the Knowledge application.\nTo open the article in a new tab, press Ctrl + Enter .\nIf a more in-depth search is required, press Alt + B . That reveals a separate page, in\nwhich a more detailed search can occur.\n\n#### Share an article to the Help Center\n\nTo make a Knowledge article available to customers and website visitors, it must be\npublished.\nEven though the Help article has been enabled on a team, Odoo does not share all the nested\narticles to the web. Individual articles intended for customers must be published for them to\nbe viewable on the website.\nTo publish an article, navigate to the desired article, by following the above steps, and click the Share icon. This reveals a menu. Slide the toggle button labeled Share to Web to read Article Published .\n\n### Solve tickets with a clipboard box\n\nClipboard boxes can be added to Knowledge articles to allow content to be reused, copied, sent\nas messages, or added to the description on a ticket. This allows teams to maintain consistency when\nanswering customer tickets, and minimize the amount of time spent on responding to repeat questions.\n\n#### Add clipboard boxes to articles\n\nTo create a clipboard box, go to Knowledge app ⣠Help . Click on an existing\nnested article or create a new one by clicking the (plus) icon next to Help .\nType / to open the powerbox , and view a drop-down list of commands . Select or type clipboard . A gray block\nis then added to the page. Add any necessary content to this block.\nClipboard boxes only display the Use as description or Send as Message options if they are accessed directly from the Helpdesk .\n\n#### Use clipboard boxes in tickets\n\nClipboard boxes can be used to respond directly to a Helpdesk ticket as a message, or to add\ninformation to the ticketâs description.\nTo use clipboard boxes in a Helpdesk ticket, first, open a ticket, either from the Helpdesk dashboard or by going to Helpdesk app ⣠Tickets ⣠All\nTickets and selecting a ticket from the list.\nClick on the Knowledge (bookmark) icon in the top-right corner. This opens a search\nwindow. In this search window, select, or search, for the desired article. Doing so reveals that\narticle page in the Odoo Knowledge application.\nTo use a clipboard box to respond to a ticket, click Send as message in the upper-right\ncorner of the clipboard box, located in the body of the article.\nDoing so opens a Compose Email pop-up window. In this window, select the recipients,\nmake any necessary additions or edits to the clipboard content, then click Send .\nTo use a clipboard box to add information to a ticketâs description, click Use as\ndescription in the upper-right corner of the clipboard box, located in the body of the article.\nDoing so does not replace the existing text in a ticketâs description. The content from the\nclipboard box is added as additional text.\n\n## Community Forum\n\nA Community Forum provides a space for customers to answer each otherâs questions and share\ninformation. By integrating a forum with a Helpdesk team, tickets submitted by customers can be\nconverted to posts and shared.\n\n### Enable forums on a Helpdesk team\n\nTo enable Community Forums on a Helpdesk team, start by navigating to Helpdesk app ⣠Configuration ⣠Helpdesk Teams and select a team, or create a new one .\nSelecting or creating a team reveals that teamâs detail form. Scroll down to the Help\nCenter section of features, and enable Community Forum , by checking the box beside it.\nWhen activated, a new field labeled Forums appears beneath.\nClick the empty Forums field to reveal a drop-down menu. By default, there is only one\noption to begin with, labeled Help . That is the option Odoo automatically created when\nthe Community Forums feature was enabled. Select Help from the drop-down\nmenu to enable that forum.\nTo create a new forum, type a name into the blank Forums field, then click the Create and Edit option. Multiple forums can be selected in this field.\n\n### Create a forum post from a Helpdesk ticket\n\nWhen a Helpdesk team has a Forum enabled, tickets submitted to that team can be converted to\nforum posts.\nTo do that, select a ticket, either from a teamâs pipeline or from Tickets ⣠All\nTickets in the Helpdesk application.\nAt the top of the ticket detail form, click the Share on Forum button.\nWhen clicked, a pop-up window appears. Here, the Forum post and Title can be\nedited to correct any typos, or modified to remove any proprietary or client information.\nTags can also be added to help organize the post in the forum, making it easier for\nusers to locate during a search. When all adjustments have been made, click Create and\nView Post .\n\n### Create a Helpdesk ticket from a forum post\n\nForum posts submitted by portal users can be converted to Helpdesk tickets.\nTo create a ticket, navigate to a forum post, and click the (ellipsis) icon. Then, click Create Ticket .\nThis opens a Create Ticket pop-up. Make any necessary edits to the Create\nTicket field. Then, confirm the Helpdesk Team the ticket should be assigned to.\nClick Create & View Ticket or Create Ticket .\nThe original forum post is linked in the chatter on the new ticket.\n\n## eLearning\n\nOdoo eLearning courses offer customers additional training and content in the form of videos,\npresentations, and certifications/quizzes. Providing additional training enables customers to work\nthrough issues and find solutions on their own. They can also develop a deeper understanding of the\nservices and products they are using.\n\n### Enable eLearning courses on a Helpdesk team\n\nTo enable eLearning courses on a Helpdesk team, go to Helpdesk app â£\nConfiguration ⣠Helpdesk Teams and select a team, or create a new one .\nOn the teamâs settings page, scroll to the Help Center section, and check the box next\nto eLearning . A new field appears below, labeled Courses .\nClick the empty field next to Courses beneath the eLearning feature to\nreveal a drop-down menu. Select an available course from the drop-down menu, or type a title into\nthe field, and click Create and edit to create a new course from this page. Multiple\ncourses can be assigned to a single team.\n\n### Create an eLearning course\n\nA new eLearning course can be created from the Helpdesk teamâs settings page, as in\nthe step above, or from the eLearning app.\nTo create a course directly through the eLearning application, navigate to eLearning ⣠New . This reveals a blank course template that can be customized and\nmodified as needed.\nOn the course template page, add a Course Title , and below that, Tags .\nClick on the Options tab.\nUnder Access Rights , select which users are able to view and enroll in the course.\nThe Show Course To field defines who can access the courses. The Enroll\nPolicy field specifies how they can register for the course.\nUnder Display , choose the preferred course Type .\n\n#### Add content to an eLearning course\n\nTo add content to a course, click the Content tab and select Add Content .\nChoose the Content Type from the drop-down menu and upload the file, or paste the link,\nwhere instructed. Click Save when finished. Click Add Section to organize\nthe course in sections.\nIn order to add a certification to a course, go to eLearning ⣠Configuration\n⣠Settings , check the box labeled Certifications , and Save to activate\nthe setting.\nOdoo Tutorials: eLearning\n\n### Publish an eLearning course\n\nTo allow customers to enroll in a course, both the course and the contents must be published.\nIf the course is published, but the contents of the course are not published, customers can\nenroll in the course on the website, but they are not able to view any of the course content.\nKnowing this, it may be beneficial to publish the course first, if the course contents are\nintended to be released over time, such as classes with a weekly schedule.\nTo make the entire course available at once, each piece of course content must be published first,\nthen the course can be published.\nTo publish a course, choose a course from the eLearning dashboard. On the course template page,\nclick the Go to Website smart button.\nThis will reveal the front end of the courseâs web page. At the top of the course web page, move\nthe Unpublished toggle switch to Published .\n\n#### Publish eLearning course contents from the back-end\n\nTo publish eLearning course content from the back-end, choose a course from the eLearning dashboard. On the course template page, click the Published Contents smart button.\nDoing so reveals a separate page displaying all the published content related to that course. Remove\nthe default Published filter from the search bar in the upper-right corner, to reveal\nall the content related to the course - even the non-published content.\nClick the (list) icon to switch to list view.\nWhile in list view, there is a checkbox on the far-left of the screen, above the listed courses, to\nthe left of the Title column title. When that checkbox is clicked, all the course\ncontents are selected at once.\nWith all the course content selected, click any of the boxes in the Is Published column.\nThis reveals a pop-up window, asking for confirmation that all selected records are intended to be\npublished. Click Confirm to automatically publish all course content.", "headings": ["Configuration", "Knowledge", "Enable Knowledge on a Helpdesk team", "Search articles from a Helpdesk ticket", "Solve tickets with a clipboard box", "Community Forum", "Enable forums on a Helpdesk team", "Create a forum post from a Helpdesk ticket", "Create a Helpdesk ticket from a forum post", "eLearning", "Enable eLearning courses on a Helpdesk team", "Create an eLearning course", "Publish an eLearning course"], "doc_id": "522846c9f84e3cf2"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/helpdesk/overview/ratings.html", "title": "Customer ratings", "module": "helpdesk", "section": "Customer ratings", "text": "# Customer ratings\n\nAsking customers to rate the support they received from a Helpdesk team provides an opportunity\nto gauge team performance and track customer satisfaction.\n\n## Enable customer ratings on Helpdesk teams\n\nTo enable customer ratings on a helpdesk team, navigate to Helpdesk app â£\nConfiguration ⣠Helpdesk Teams . Click on a team from the list to open the settings page. Scroll\nto the Performance section, and tick the Customer Ratings checkbox.\n\n## Set a ratings request email template on a stage\n\nTo automatically request ratings from customers once their tickets have closed, an email template\nneeds to be added to the appropriate stage.\nAfter the Customer Ratings setting has been enabled on\nthe teamâs settings page, click the Set an Email Template on Stages link. Select a stage\nfrom the list, or click New to create a new stage.\nCustomers should only be asked to rate tickets once an issue has been resolved and their ticket\nis closed . Therefore, a ratings request email should only be added to a stage that is\nfolded in the Kanban, as tickets in a folded stage are considered closed.\nOn the stageâs settings page, select the template, Helpdesk: Ticket Rating Request in the Email Template field. This template has been preconfigured with ratings customers can\nuse to provide feedback. To view the template, click the arrow button to the right of the field.\n`Helpdesk:TicketRatingRequest`\nAfter the template is added to the stage, it automatically sends a message when a ticket is moved to\nthat stage. Customers are then asked to rate the support they received with colored icons.\n- Satisfied - green (smile) icon\nSatisfied - green (smile) icon\n- Okay - yellow (neutral) icon\nOkay - yellow (neutral) icon\n- Dissatisfied - red (frown) icon\nDissatisfied - red (frown) icon\nAfter selecting a rating, customers are taken to a webpage where they can provide specific written\nfeedback to support their rating. The rating is then submitted, and the rating, as well as any\nadditional comments, are added to the chatter on the ticket.\nCustomer ratings can also be viewed through the Customer Ratings report. To view this\nreport, go to Helpdesk app ⣠Reporting ⣠Customer Ratings .\n- Email templates\n- Close tickets\n- Reporting", "headings": ["Enable customer ratings on Helpdesk teams", "Set a ratings request email template on a stage"], "doc_id": "8379be2f0eb21506"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/helpdesk/overview/receiving_tickets.html", "title": "Receiving tickets", "module": "helpdesk", "section": "Receiving tickets", "text": "# Receiving tickets\n\nOdooâs Helpdesk app offers multiple channels where customers can reach out for assistance, such\nas email, live chat, and through a websiteâs submission form. The variety of these contact options\nprovides customers with multiple opportunities to receive support quickly while also allowing the\nsupport team to manage multi-channel support tickets from one central location.\n\n## Enable channel options to submit tickets\n\nGo to Helpdesk app ⣠Configuration ⣠Helpdesk Teams , and choose an existing\nteam, or click New to create a new team .\nOn the teamâs settings page, scroll down to the Channels and Help Center sections. Enable one or more channels by checking the respective boxes.\n- Email Alias\n- Live Chat\n- Website Form\n\n### Email Alias\n\nThe Email Alias setting creates tickets from messages sent to that teamâs specified email alias.\nThe following steps are for Odoo Online and Odoo.sh databases. For On-premise databases, external servers are required for email aliases.\nWhen a new Helpdesk team is created, an email alias is created for it. This alias can be changed\non the teamâs settings page.\nTo change a Helpdesk teamâs email alias, navigate to Helpdesk app â£\nConfiguration ⣠Helpdesk Teams , and click on a team name to open its settings page.\nThen, scroll to Channels ⣠Email Alias . In the Alias field, type the\ndesired name for the teamâs email alias.\nCustom email domains are not required in order to use an email alias, however, they can be\nconfigured through the Settings app.\nIf the database does not have a custom domain already configured, click Set an Alias\nDomain to be redirected to the Settings page. From there, enable Custom\nEmail Servers .\nWhen an email is received, the subject line becomes the title of a new Helpdesk ticket. The body\nof the email is also added to the ticket, under the Description tab, and in the ticketâs\nchatter.\n\n### Live Chat\n\nThe Live Chat feature lets website visitors connect directly with a support agent or chatbot. Helpdesk tickets can be instantly created during these conversations using the response\ncommand /ticket .\n`/ticket`\nTo enable Live Chat , navigate to the Helpdesk app ⣠Configuration ⣠Helpdesk\nTeams list view, select a team, and on the teamâs settings page, click the checkbox next to Live Chat , under the Channels section.\nIf this is the first time Live Chat has been enabled on\nthe database, the page may need to be saved manually and refreshed before any further steps can\nbe taken.\nAfter the Live Chat setting is enabled on a Helpdesk team, a new Live Chat channel is created. Click on Configure Live Chat Channel to update the channelâs\nsettings.\n\n#### Live Chat channel configuration\n\nOn the channelâs settings page, Channel Name can be edited, though, Odoo names the\nchannel to match the Helpdesk team name, by default.\nIf a Helpdesk team is named Customer Care , a Live Chat channel is created called Customer Care .\n`CustomerCare`\n`CustomerCare`\nOn the channel form, navigate through the tabs to complete the setup.\nOperators are the users who act as agents and respond to live chat requests from customers. The\nuser who created the live chat channel is added by default.\nTo add additional users, click on the Operators tab, then click Add .\nClick the checkbox next to the users to be added on the Add: Operators pop-up window\nthat appears, then click Select .\nClick New to create new operators, if needed.\nWhen the desired addition is complete, click Save & Close , or Save & New to\nadd multiple new operators.\nCreating a new user can impact the status of an Odoo subscription, as the total number of users\nin a database counts towards the billing rate. Proceed with caution before creating a new user.\nIf a user already exists, adding them as an operator will not alter the subscription or\nbilling rate for a database.\nAdditionally, current operators can be edited or removed by clicking on their respective boxes in\nthe Operators tab, and then adjusting their form values on the pop-up form that appears,\nor by using one of the buttons located at the bottom of the form, such as Remove .\nUsers can add themselves as an operator by clicking the Join Channel button on a Live Chat channel.\nThe Options tab contains the visual and text settings for the live chat window.\n- Notification Text : This field updates the greeting displayed in the text bubble when\nthe live chat button appears on the website.\nNotification Text : This field updates the greeting displayed in the text bubble when\nthe live chat button appears on the website.\n- Livechat Button Color : This field alters the color of the live chat button as it\nappears on the website. To change the color, click on a color bubble to open the color selection\nwindow, then click and drag the circle along the color gradient. Click out of the selection window\nonce complete. Click the refresh icon to the right of the color bubbles to reset the colors to the\ndefault selection.\nLivechat Button Color : This field alters the color of the live chat button as it\nappears on the website. To change the color, click on a color bubble to open the color selection\nwindow, then click and drag the circle along the color gradient. Click out of the selection window\nonce complete. Click the refresh icon to the right of the color bubbles to reset the colors to the\ndefault selection.\n- Show : The chat button displays on the selected page.\nShow : The chat button displays on the selected page.\n- Show with notification : The chat button is displayed, with the addition of the Notification text from the Options tab.\nShow with notification : The chat button is displayed, with the addition of the Notification text from the Options tab.\n- Open automatically : The chat button is displayed, and automatically opens the chat\nwindow after a designated amount of time. The amount of time is designated in the Open\nautomatically timer field, which appears only when this display option is selected.\nOpen automatically : The chat button is displayed, and automatically opens the chat\nwindow after a designated amount of time. The amount of time is designated in the Open\nautomatically timer field, which appears only when this display option is selected.\n- Hide : The chat button is hidden from display on the webpage.\nHide : The chat button is hidden from display on the webpage.\nColor selection, for the button or header, can be made manually, or through RGB, HSL, or HEX code\nselection. Different options are available, depending on the operating system or browser.\nThe Channel Rules tab determines when the live chat window opens on the website by logic\nof when a URL Regex action is triggered (e.g., a page visit).\nA regex, or regular expression, is sometimes referred to as a rational expression. It is a\nsequence of characters that specifies a match pattern in text. A match is made within the given\nrange of numbers or for the set of characters.\nEdit existing rules by selecting them from the Channel Rules tab, or create a new rule\nby clicking Add a line .\nThen, proceed to configure the details for how the rule should apply on the pop-up form that\nappears.\nChoose how the Live Chat Button displays on the webpage.\n- Show : The chat button displays on the selected page.\nShow : The chat button displays on the selected page.\n- Show with notification : The chat button is displayed, with the addition of the Notification text from the Options tab.\nShow with notification : The chat button is displayed, with the addition of the Notification text from the Options tab.\n- Open automatically : The chat button is displayed, and automatically opens the chat\nwindow after a designated amount of time. The amount of time is designated in the Open\nautomatically timer field, which appears only when this display option is selected.\nOpen automatically : The chat button is displayed, and automatically opens the chat\nwindow after a designated amount of time. The amount of time is designated in the Open\nautomatically timer field, which appears only when this display option is selected.\n- Hide : The chat button is hidden from display on the webpage.\nHide : The chat button is hidden from display on the webpage.\nTo include a Chatbot on this channel, select it from the drop-down menu. If the chatbot\nshould only be active when no operators are available, check the box labeled Enabled only\nif no operator .\nIf a chatbot is added to a live chat channel, a\nnew Chatbots smart button appears on the channel settings form. Click here to create\nand update the chatbot script .\nEach line in the script contains a Message , Step Type , Answers , and conditional Only If logic that applies when certain pre-filled answers\nare chosen.\nTo create more steps in the script, click Add a line , and fill out the script steps\nform, according to the desired logic.\nAdd the URLs for the pages where the channel should appear in the URL Regex field. Only\nthe path from the root domain is needed, not the full URL.\nIf this channel should only be available to users in specific countries, add those countries to the Country field. If this field is left blank, the channel is available to all site\nvisitors.\nThe Widget tab on the live chat channel form offers a website widget that can be added\nto third-party websites. Additionally, a URL is available, that can provide instant access to a live\nchat window.\nThe live chat Widget can be applied to websites created through Odoo by navigating to\nthe Website app ⣠Configuration ⣠Settings ⣠Email & Marketing . Then, scroll\nto the Live Chat field, and select the channel to add to the site. Click Save to apply.\nTo add the widget to a website created on a third-party website, click the Copy button\nnext to the first listed code, and paste the code into the <head> tag on the site.\n`<head>`\nTo send a live chat session to a customer or supplier, click the Copy button next to the\nsecond listed code, and send the URL via email.\n\n#### Create a support ticket from a live chat session\n\nOperators who have joined a live chat channel are able to communicate with site visitors in\nreal-time.\nDuring the conversation, an operator can use the shortcut command /ticket to create a ticket without leaving the chat\nwindow. The transcript from the conversation is added to the new ticket, under the Description tab.\n`/ticket`\nHelpdesk tickets can also be created through the WhatsApp app using the same /ticket command.\n`/ticket`\n\n### Website Form\n\nEnabling the Website Form setting adds a new page to the website with a customizable form. A new\nticket is created once the required form fields are filled out and submitted.\nTo activate the website form, navigate to a teamâs settings page under Helpdesk app\n⣠Configuration ⣠Helpdesk Teams , and selecting the desired team from the list.\nThen, locate the Website Form feature, under the Help Center section, and\ncheck the box.\nIf more than one website is active on the database, confirm the correct website is listed in the Website field. If not, select the correct one from the drop-down list.\nAfter the feature is activated, click the Go to Website smart button at the top of the Teams settings page to view and edit the new website form, which is created\nautomatically by Odoo.\nAfter enabling the Website Form setting, the teamâs settings page may need to be\nrefreshed before the Go to Website smart button appears.\nAdditionally, if a Help Center is published, the smart button navigates there first. Simply\nclick the Contact Us button, at the bottom of the forum, to navigate to the ticket\nsubmission form.\n\n#### Website ticket form customization\n\nTo customize the default ticket submission form, while on the website, click the Edit button in the upper-right corner of the page. This opens the editing sidebar on the right side.\nThen, click on one of the fields in the form, on the body of the website, to edit it.\nTo add a new field, go to the Field section of the sidebar, and click +\nField .\nClick the ðï¸ (trash can) icon to delete the field, if necessary.\nEdit the other options for the new field in the sidebar, as desired:\n- Type : matches an Odoo model value to the field (e.g. Customer Name ).\nType : matches an Odoo model value to the field (e.g. Customer Name ).\n`CustomerName`\n- Input Type : determine what type of input the field should be, like Text , Email , Telephone , or URL .\nInput Type : determine what type of input the field should be, like Text , Email , Telephone , or URL .\n`Text`\n`Email`\n`Telephone`\n`URL`\n- Label : give the form field a label (e.g. Full Name , Email Address , etc.). Also\ncontrol the label position on the form by using the nested Position options.\nLabel : give the form field a label (e.g. Full Name , Email Address , etc.). Also\ncontrol the label position on the form by using the nested Position options.\n`FullName`\n`EmailAddress`\n- Description : determine whether or not to add an editable line under the input box to\nprovide additional contextual information related to the field.\nDescription : determine whether or not to add an editable line under the input box to\nprovide additional contextual information related to the field.\n- Placeholder : add a sample input value.\nPlaceholder : add a sample input value.\n- Default Value : add common use case values that most customers would find valuable.\nFor example, this can include prompts of information customers should include to make it easier to\nsolve their issue, such as an account number, or product number.\nDefault Value : add common use case values that most customers would find valuable.\nFor example, this can include prompts of information customers should include to make it easier to\nsolve their issue, such as an account number, or product number.\n- Required : determine whether or not to mark a field as required, in order for the form\nto be submitted. Toggle the switch from gray to blue.\nRequired : determine whether or not to mark a field as required, in order for the form\nto be submitted. Toggle the switch from gray to blue.\n- Visibility : allow for absolute or conditional visibility of the field. Nested options,\nsuch as, device visibility, appear when certain options are selected.\nVisibility : allow for absolute or conditional visibility of the field. Nested options,\nsuch as, device visibility, appear when certain options are selected.\n- Animation : choose whether or not the field should include animation.\nAnimation : choose whether or not the field should include animation.\nOnce the form has been optimized, and is ready for public use, click Save to apply the\nchanges. Then, publish the form by toggling the Unpublished switch to Published at the top of the page, if necessary.\n\n## Prioritizing tickets\n\nAll tickets include a Priority field. The highest priority tickets appear at the top of\nthe Kanban and list views.\nThe priority levels are represented by stars:\n- 0 stars = Low Priority\n0 stars = Low Priority\n- 1 star = Medium Priority\n1 star = Medium Priority\n- 2 stars = High Priority\n2 stars = High Priority\n- 3 stars = Urgent\nTickets are set to low priority (0 stars) by default. To change the priority level, select the\nappropriate number of stars on the Kanban card, or on the ticket.\nAs priority levels can be used as criteria for assigning SLAs , changing the priority\nlevel of a ticket can alter the SLA deadline.\n- Close tickets\n- Communication in Odoo by email\nCommunication in Odoo by email\n- Live Chat", "headings": ["Enable channel options to submit tickets", "Email Alias", "Live Chat", "Website Form", "Prioritizing tickets"], "doc_id": "f99bbf76ab6223f0"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/helpdesk/overview/reports.html", "title": "Reporting", "module": "helpdesk", "section": "Reporting", "text": "# Reporting\n\nReports in Odoo Helpdesk provide the opportunity to manage employee workloads, identify areas\nfor improvement, and confirm if customer expectations are being met.\n\n## Available reports\n\nDetails about the reports available in Odoo Helpdesk can be found below. To view the different\nreports, go to Helpdesk app ⣠Reporting , and select one of the following: Tickets Analysis , SLA Status Analysis , or Customer Ratings .\n\n### Tickets Analysis\n\nThe Tickets Analysis report ( Helpdesk app ⣠Reporting ⣠Tickets Analysis )\nprovides an overview of every customer support ticket in the database.\nThis report is useful for identifying where teams are spending the most time, and helps determine if\nthere is an uneven workload distribution among the support staff. The default report counts the\nnumber of tickets per team and groups them by stage.\nAlternative measures can be selected to track where the most time is spent at different points in\nthe workflow. To change the measures used for the report that is currently displayed, or to add\nmore, click the Measures button, and select one or more options from the drop-down menu:\n- Average Hours to Respond : average number of working hours between a message sent from\nthe customer and the response from the support team. This does not include messages sent when the\nticket was in a folded stage.\nAverage Hours to Respond : average number of working hours between a message sent from\nthe customer and the response from the support team. This does not include messages sent when the\nticket was in a folded stage.\n- Hours Open : number of hours between the date the ticket was created and the closed\ndate. If there is no closed date on the ticket, the current date is used. This measure is not\nspecific to working hours.\nHours Open : number of hours between the date the ticket was created and the closed\ndate. If there is no closed date on the ticket, the current date is used. This measure is not\nspecific to working hours.\n- Hours Spent (Timesheets) : number of Timesheet hours logged on a ticket. This\nmeasure is only available if Timesheets are enabled on a team, and the current user has the access\nrights to view them.\nHours Spent (Timesheets) : number of Timesheet hours logged on a ticket. This\nmeasure is only available if Timesheets are enabled on a team, and the current user has the access\nrights to view them.\n- Hours to First Response : number of working hours between the date the ticket was\nreceived and the date on which the first message was sent. This does not include email sent\nautomatically when a ticket reaches a stage.\nHours to First Response : number of working hours between the date the ticket was\nreceived and the date on which the first message was sent. This does not include email sent\nautomatically when a ticket reaches a stage.\n- Rating (1-5) : number out of five to represent customer feedback (Dissatisfied = 1,\nOkay/Neutral = 3, Satisfied = 5).\nRating (1-5) : number out of five to represent customer feedback (Dissatisfied = 1,\nOkay/Neutral = 3, Satisfied = 5).\n- Remaining Hours on SO : hours remaining on a linked sales order.\nRemaining Hours on SO : hours remaining on a linked sales order.\n- Working Hours to Assign : number of working hours between the date the ticket was\ncreated and when it was assigned to a team member.\nWorking Hours to Assign : number of working hours between the date the ticket was\ncreated and when it was assigned to a team member.\n- Working Hours to Close : number of working hours between the date the ticket was\ncreated and the date it was closed.\nWorking Hours to Close : number of working hours between the date the ticket was\ncreated and the date it was closed.\n- Working Hours until SLA Deadline : number of working hours remaining to reach the last SLA deadline on a ticket.\nWorking Hours until SLA Deadline : number of working hours remaining to reach the last SLA deadline on a ticket.\n- Count : number of tickets in total.\nCount : number of tickets in total.\nWorking hours are calculated based on the default working calendar. To view or change the\nworking calendar, go to the Settings application and select Employees ⣠Company Working Hours .\n\n### SLA Status Analysis\n\nThe SLA Status Analysis report ( Helpdesk app ⣠Reporting ⣠SLA Status\nAnalysis ) analyzes the performance of individual SLA\n(Service Level Agreement) policies.\nBy default, this report is filtered to show the number of SLAs failed, in progress, and the number\nthat have been successful. The results are grouped by teams.\nTo change the measures used for the report that is currently displayed, or to add more, click the Measures button, and select one or more options from the drop-down menu:\n- Average Hours to Respond : average number of working hours between a message sent from\nthe customer and the response from the support team. This does not include messages sent when the\nticket was in a folded stage.\nAverage Hours to Respond : average number of working hours between a message sent from\nthe customer and the response from the support team. This does not include messages sent when the\nticket was in a folded stage.\n- Hours Open : number of hours between the date the ticket was created and the closed\ndate. If there is no closed date on the ticket, the current date is used. This measure is not\nspecific to working hours.\nHours Open : number of hours between the date the ticket was created and the closed\ndate. If there is no closed date on the ticket, the current date is used. This measure is not\nspecific to working hours.\n- Hours Spent (Timesheets) : number of Timesheet hours logged on a ticket. This\nmeasure is only available if Timesheets are enabled on a team, and the current user has the access\nrights to view them.\nHours Spent (Timesheets) : number of Timesheet hours logged on a ticket. This\nmeasure is only available if Timesheets are enabled on a team, and the current user has the access\nrights to view them.\n- Hours to First Response : number of working hours between the date the ticket was\nreceived and the date on which the first message was sent. This does not include email sent\nautomatically when a ticket reaches a stage.\nHours to First Response : number of working hours between the date the ticket was\nreceived and the date on which the first message was sent. This does not include email sent\nautomatically when a ticket reaches a stage.\n- Number of SLA Failed : number of tickets that have failed at least one SLA .\nNumber of SLA Failed : number of tickets that have failed at least one SLA .\n- Rating (1-5) : number value representing customer feedback (Dissatisfied = 1,\nOkay/Neutral = 3, Satisfied = 5).\nRating (1-5) : number value representing customer feedback (Dissatisfied = 1,\nOkay/Neutral = 3, Satisfied = 5).\n- Remaining Hours on SO : hours remaining on a linked sales order.\nRemaining Hours on SO : hours remaining on a linked sales order.\n- Working Hours to Assign : number of working hours between the date the ticket was\ncreated and when it was assigned to a team member.\nWorking Hours to Assign : number of working hours between the date the ticket was\ncreated and when it was assigned to a team member.\n- Working Hours to Close : number of working hours between the date the ticket was\ncreated and the date it was closed.\nWorking Hours to Close : number of working hours between the date the ticket was\ncreated and the date it was closed.\n- Working Hours to Reach SLA : number of working hours between the date the ticket was\ncreated and the date the SLA was satisfied.\nWorking Hours to Reach SLA : number of working hours between the date the ticket was\ncreated and the date the SLA was satisfied.\n- Count : number of tickets in total.\nCount : number of tickets in total.\nService Level Agreements (SLA)\n\n### Customer Ratings\n\nThe Customer Ratings report ( Helpdesk app⣠Reporting ⣠Customer Ratings )\ndisplays an overview of the ratings received on individual support tickets, as well as any\nadditional comments submitted with the rating.\nClick on an individual rating to see additional details about the rating submitted by the customer,\nincluding a link to the original ticket.\nOn the ratingâs details page, tick the Visible Internally Only checkbox to hide the\nrating from public and portal users.\nThe Customer Ratings report is displayed in a Kanban view by default, but can also be displayed in\ngraph, list, or pivot view.\n\n## Use cases\n\n### Assessing performance based on customer priority\n\nThe Tickets Analysis report can be used to evaluate the time it takes to address\nhigh-priority tickets compared to standard ones. This helps ensure that high-priority tickets are\nresolved promptly, and identifies any discrepancies in response times based on priority.\nFirst, navigate to Helpdesk app ⣠Reporting ⣠Tickets Analysis . Click Measures , then select Working Hours to Close . Click into the search bar,\nthen under Group By , select Priority . Finally, under Filters ,\nselect Closed .\nThe pivot view is also useful for this version of the report.\n\n### Monitoring SLA compliance over time\n\nThe SLA Status Analysis report can be used to track SLA compliance trends to identify\nperiods with higher SLA breaches. SLA breaches happen when support teams fail to meet the\nresponse or resolution times promised in SLAs , leading to dissatisfied customers, potential\nfinancial penalties, and decreased team morale. Identifying these breaches is crucial for tracking\nreal-time performance, uncovering patterns, and addressing root causesâlike staffing issues or\nprocess inefficiencies.\nFirst, navigate to Helpdesk app ⣠Reporting ⣠SLA Status Analysis . Click the (Graph) icon, then the (Line\nChart) icon.\nWhile the SLA Status Analysis report defaults to the pivot view, the line chart view\nprovides a better visual representation for this specific use case.\nClick Measures , then select Number of SLAs Failed . Doing so ensures the data\non the report shows only information for tickets that failed at least one SLA . Click into the\nsearch bar, then under Group By , select SLA Deadline , and select a time\nframe, either Month , Week , or Day . This option shows when the\nhighest number of tickets with SLAs are failing, allowing the team to identify patterns, and\nprepare for potential issues.\nThe time frame selected for this report may vary depending on a few factors, including the amount\nof tickets received on a regular basis, the number of SLAs enabled in the database, and the\nworkload of the team. It is worth experimenting to see what option delivers the most insights.\nOdoo essentials reporting", "headings": ["Available reports", "Tickets Analysis", "SLA Status Analysis", "Customer Ratings", "Use cases", "Assessing performance based on customer priority", "Monitoring SLA compliance over time"], "doc_id": "d15beb03276446ec"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/helpdesk/overview/sla.html", "title": "Service level agreements (SLA)", "module": "helpdesk", "section": "Service level agreements (SLA)", "text": "# Service level agreements (SLA)\n\nA service level agreement (SLA) defines the level of support a customer can expect from a service\nprovider. SLAs provide a timeline that tells customers when they can expect results and keeps the\nsupport team on target.\nThe SLA Policies feature is enabled by default on newly created Helpdesk teams.\nTo turn off the feature, or edit the working hours, navigate to Helpdesk app â£\nConfiguration ⣠Helpdesk Teams . Click on a team to open that teamâs configuration page.\nFrom here, scroll to the Performance section. To turn off the SLAs feature for the\nteam, clear the SLA Policies checkbox.\n\n## Create a new SLA policy\n\nTo create a new policy, go to Helpdesk app ⣠Configuration ⣠SLA Policies , and\nclick New .\nAlternatively, go to Helpdesk app ⣠Configuration ⣠Helpdesk Teams , and click\non a team. Then, click the SLA Policies smart button at the top of the teamâs settings\npage, and click New .\nOn the blank SLA policy form, enter a Title and a Description for the new\npolicy, and proceed to fill out the form using the steps below.\n\n### Define the criteria for an SLA policy\n\nThe Criteria section is used to identify which tickets this policy is applied to.\nFill out the following fields to adjust the selection criteria:\nUnless otherwise indicated, multiple selections can be made for each field.\n- Helpdesk Team : A policy can only be applied to one team. This field is required.\nHelpdesk Team : A policy can only be applied to one team. This field is required.\n- Priority : The priority level for a ticket is identified by selecting one, two, or\nthree of the (star) icons, representing the priority level on the\nKanban card or on the ticket itself. The SLA is only applied after the priority level has\nbeen updated on the ticket to match the SLA criteria. If no selection is made in this field,\nthis policy only applies to tickets marked as Low Priority , meaning those with zero (star) icons.\nPriority : The priority level for a ticket is identified by selecting one, two, or\nthree of the (star) icons, representing the priority level on the\nKanban card or on the ticket itself. The SLA is only applied after the priority level has\nbeen updated on the ticket to match the SLA criteria. If no selection is made in this field,\nthis policy only applies to tickets marked as Low Priority , meaning those with zero (star) icons.\n`LowPriority`\n- Tags : Tags are used to indicate what the ticket is about. Multiple tags can be applied\nto a single ticket.\nTags : Tags are used to indicate what the ticket is about. Multiple tags can be applied\nto a single ticket.\n- Customers : Individual contacts or companies may be selected in this field.\nCustomers : Individual contacts or companies may be selected in this field.\n- Services : This field is available only if a team has the Timesheets app enabled.\nThis allows the ticket to link directly to a specific line on a sales order, which must be\nindicated on the ticket in the Sales Order Items field.\nServices : This field is available only if a team has the Timesheets app enabled.\nThis allows the ticket to link directly to a specific line on a sales order, which must be\nindicated on the ticket in the Sales Order Items field.\nA support team needs to address urgent issues for VIP customers within one business day.\nThe new policy, titled 8 Hours to close , is assigned to the VIP Support team. It only applies to tickets that are assigned three (star) icons, which\nequates to an Urgent priority level.\n`8Hourstoclose`\n`VIPSupport`\n`Urgent`\nAt the same time, the tickets can be related to multiple issues, so the policy applies to tickets\nwith Repair , Service , or Emergency tags.\n`Repair`\n`Service`\n`Emergency`\n\n### Establish a target for an SLA policy\n\nA target is the stage a ticket needs to reach, and the time allotted to reach that stage, in order\nto satisfy the SLA policy. Any stage assigned to a team may be selected for the Reach\nStage field.\nTime spent in stages selected in the Excluding Stages field are not included in the\ncalculation of the SLA deadline.\nAn SLA titled 8 Hours to Close tracks the working time before\na ticket is completed, and would have Solved as the Reach Stage . Simultaneously, an SLA titled 2 Days to Start tracks the working time before\nwork on a ticket has begun, and would have In Progress as the Reach Stage .\n`8HourstoClose`\n`Solved`\n`2DaystoStart`\n`InProgress`\n\n## Meet SLA deadlines\n\nAs soon as it is determined that a ticket fits the criteria of an SLA policy, a deadline is\ncalculated. The deadline is based on the creation date of the ticket, as well as the targeted\nworking hours.\nThe value indicated next to the Working Hours field of an SLA policy is used to\ndetermine the deadline. By default, this is determined by the value set in the Company\nWorking Hours field under Settings app ⣠Employees ⣠Work Organization .\nThe deadline is then added to the ticket, as well as a tag indicating the name of the SLAs applied.\nWhen a ticket satisfies an SLA policy, the SLA tag turns green, and the deadline disappears\nfrom view on the ticket.\nIf a ticket fits the criteria for more than one SLA , the earliest occurring deadline is\ndisplayed on the ticket. After that deadline has passed, the next deadline is displayed.\nIf the SLA deadline passes and the ticket has not moved to the Reach Stage , the SLA tag turns red. After the SLA has failed, the red tag stays on the ticket, even after the ticket is\nmoved to the Reach Stage .\n\n## Analyze SLA performance\n\nThe SLA Status Analysis report tracks how quickly an SLA is fulfilled, as well as the\nperformance of individual team members. Navigate to the report, and corresponding pivot table, by\ngoing to Helpdesk app ⣠Reporting ⣠SLA Status Analysis .\n\n### Pivot view\n\nBy default, the report displays in a Pivot view. Any SLA policies in the database with\ntickets that failed to fulfill a policy, are in progress, or have satisfied a policy are listed. By\ndefault, they are grouped by team and ticket count.\nThe pivot view aggregates data, which can be manipulated by adding measures and filters.\nTo change the display, or add additional measurements, click the Measures button to\nreveal a drop-down menu of reporting criteria, and choose from the options available.\nWhenever a measurement is picked, a (check) icon appears in the\ndrop-down menu to indicate that the measurement is included, and a corresponding new column emerges\nin the pivot table to show the relevant calculations.\nTo add a group to a row or column, click the (plus) icon next to\nthe policy name and then select one of the groups. To remove one, click the (minus) icon next to the policy name.\n\n### Graph view\n\nSwitch to the graph view by selecting the (graph view) icon at the\ntop of the screen. To switch between the different charts, select the related icon at the top of\nthe chart, while in graph view.\nA bar chart can deal with larger data sets and compare data across several categories.\nA line chart can visualize data trends or changes over time.\nA pie chart compares data among a small number of categories.\nBoth the bar chart and line chart can utilize the stacked view option. This presents two\nor more groups of data on top of each other, instead of next to each other, making it easier to\ncompare data. While viewing either a bar chart or line chart, click the (stacked) icon to toggle the stacked view option on or off.\n\n### Cohort view\n\nThe cohort view is used to track the changes in data over a period of time. To display the SLA Status Analysis report in a cohort view, click the (cohort) icon, next to the other view options.\nThe cohort view examines the life cycle of data over time.\n- Reporting views\n- Allow customers to close their tickets\nAllow customers to close their tickets", "headings": ["Create a new SLA policy", "Define the criteria for an SLA policy", "Establish a target for an SLA policy", "Meet SLA deadlines", "Analyze SLA performance", "Pivot view", "Graph view", "Cohort view"], "doc_id": "e7695fbf178c0ad6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/project.html", "title": "Project", "module": "project", "section": "Project", "text": "# Project\n\nOdoo Project is a tool to manage your ongoing projects. Schedule tasks, assign activities to\ncoworkers, and keep track of each projectâs profitability.\nOdoo Tutorials: Project and Timesheets", "headings": [], "doc_id": "911992306ab73e48"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/project/project_management.html", "title": "Project management", "module": "project", "section": "Project management", "text": "# Project management\n\nOdoo Project uses the Kanban project management system. This means all projects are broken down\ninto tasks, which are categorized on a whiteboard according to what production phase they are in.\nThe word Kanban comes from Japanese and refers to the âvisual boardâ management method.\n\n## Configuration\n\nOpen the Project app and click Create to start a new project. Enter a Name for your project and click Create Project .\nYou can customize your existing projects from the dashboard by clicking the drop-down toggle\nbutton ( â® ) on your projectâs card .\nThis enables a new menu divided into four parts:\n- View : see an overview of your projectâs components, such as its Tasks , Milestones and Project Updates . Depending on which apps you have\nactivated, more options may be available, such as Documents . All uploaded files can be\nfound under this menu, as well as in the Documents app, under Projects ;\nView : see an overview of your projectâs components, such as its Tasks , Milestones and Project Updates . Depending on which apps you have\nactivated, more options may be available, such as Documents . All uploaded files can be\nfound under this menu, as well as in the Documents app, under Projects ;\n- Reporting : analyze your projectâs progress and profitability through graphics and\nstatistics;\nReporting : analyze your projectâs progress and profitability through graphics and\nstatistics;\n- Color : make a line of color appear on the left side of the card so that your project is more\nrecognizable;\nColor : make a line of color appear on the left side of the card so that your project is more\nrecognizable;\n- Settings : you can change the following: the Name of the project; the Name of the tasks found under that project; the Customer for whom the project is intended; the Tags used for filtering; the Company responsible for the project; the employee designated as Project Manager ; the Planned Date of the project; the total Allocated Hours for that project.\nSettings : you can change the following:\n- the Name of the project;\nthe Name of the project;\n- the Name of the tasks found under that project;\nthe Name of the tasks found under that project;\n- the Customer for whom the project is intended;\nthe Customer for whom the project is intended;\n- the Tags used for filtering;\nthe Tags used for filtering;\n- the Company responsible for the project;\nthe Company responsible for the project;\n- the employee designated as Project Manager ;\nthe employee designated as Project Manager ;\n- the Planned Date of the project;\nthe Planned Date of the project;\n- the total Allocated Hours for that project.\nthe total Allocated Hours for that project.\nAdditionally, you can mark the project as Favorite , allowing you to find it using the My Favorites filter on the Kanban view;\nOdoo Tutorials: Customize projects\nFurther settings are available under the Settings tab. Most of them are only available\ndepending on the activated apps.\n\n### Visibility and collaboration\n\nOdoo allows you to set visibility settings for each project, enabling you to make your project\navailable to everyone in your organization or restrict access to certain internal or external users.\nTo do so, go to the projectâs Settings tab and choose the desired Visibility option:\n- Invited internal users (private) : Only users following the project and users with the\nProject Administrator access right can\naccess the project and its tasks.\nInvited internal users (private) : Only users following the project and users with the\nProject Administrator access right can\naccess the project and its tasks.\n- All internal users : All internal users can access the project and all of its tasks.\nAll internal users : All internal users can access the project and all of its tasks.\n- Invited portal users and all internal users (public) : All internal users can access\nthe project and all of its tasks. When following a project, portal users only have access to the specific tasks they are following.\nThis option is selected by default.\nInvited portal users and all internal users (public) : All internal users can access\nthe project and all of its tasks. When following a project, portal users only have access to the specific tasks they are following.\nThis option is selected by default.\n\n### Inviting external users\n\nTo invite external users, make sure that Invited portal users and all internal users\n(public) is selected, then click Share Project at the top of the projectâs settings.\nThe following options are available:\n- Copy and share the Public Link displayed at the top of the pop-up window. Anyone with\nthis link can access the project in read mode.\nCopy and share the Public Link displayed at the top of the pop-up window. Anyone with\nthis link can access the project in read mode.\n- Or click Add a line , select a Collaborator , choose the Access Mode , and check the box to send an invitation to their email address. There are three types of Access Mode for collaborators: Read : Collaborators can view tasks but cannot edit them. Edit with limited access : Collaborators can view and edit the tasks they follow. Edit : Collaborators can view and edit all tasks.\nOr click Add a line , select a Collaborator , choose the Access Mode , and check the box to send an invitation to their email address.\nThere are three types of Access Mode for collaborators:\n- Read : Collaborators can view tasks but cannot edit them.\nRead : Collaborators can view tasks but cannot edit them.\n- Edit with limited access : Collaborators can view and edit the tasks they follow.\nEdit with limited access : Collaborators can view and edit the tasks they follow.\n- Edit : Collaborators can view and edit all tasks.\nEdit : Collaborators can view and edit all tasks.\nTo revoke an invited collaboratorâs access, click Share Project at the top of the\nprojectâs settings, then click the (trash) icon.\nInternal users without access to the project can still access a task if the URL has been shared\nwith them. For projects set as Invited internal users (private) , they must also\nbe a follower of the task.\n\n## Scheduling activities\n\nYou can schedule activities (ex. Call , Meeting , etc.) per project by\nclicking on the clock icon on a project. Doing so opens a list with already scheduled activities\nand allows planning new activities by clicking + Schedule an activity . On the pop-up\nwindow, select the Activity Type , enter a Summary for that activity, a Due Date , and assign it to an employee. According to the Activity Type , you\nmay have additional options available.\nIf an activity is already scheduled, the icon may change to a phone , group of people ,\nor other.\n\n## Top bar\n\nIn project management, reviewing the various records and documents related to a project is often\nnecessary. Odoo Projectâs top bar provides quick access to these essential resources. You can\ncustomize each projectâs top bar to match its specific needs.\nTo set up the top bar for a project, go to the Project app, click the projectâs card,\nthen click the top bar (sliders) button. In the bar that appears\nabove the search bar, click the (sliders) button to select the records\nyou want to display, such as timesheets, sales orders, invoices, documents, dashboards, etc.\nYou can then click the buttons to access the related records without leaving the Project app. To\nreturn to your project tasksâ Kanban view, click the Tasks button in the top bar.\n\n### Custom top bar buttons\n\nYou can also create your own buttons to access more specific views:\n- Click an existing top bar button to access the view.\nClick an existing top bar button to access the view.\n- Customize the view with keywords, filters, and grouping options using the search bar.\nCustomize the view with keywords, filters, and grouping options using the search bar.\n- Click the (sliders) button in the top bar and select Save View .\nClick the (sliders) button in the top bar and select Save View .\n- Edit the default button name if necessary, then enable Shared if you want to share\nthe button with other users.\nEdit the default button name if necessary, then enable Shared if you want to share\nthe button with other users.", "headings": ["Configuration", "Visibility and collaboration", "Inviting external users", "Scheduling activities", "Top bar", "Custom top bar buttons"], "doc_id": "e4fbb096ae4ff267"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/project/project_management/project_dashboard.html", "title": "Project dashboard", "module": "project", "section": "Project dashboard", "text": "# Project dashboard\n\nThe project dashboard allows you to get a comprehensive overview of your projectâs status. It\ndisplays information such as the total number of tasks, timesheets, and planned hours linked to the\nproject, as well as detailed information about project milestones and its costs and revenues. Within\nthe project dashboard, you can create Project updates , which allow you to take a\nsnapshot of the projectâs status at a certain point in time. As such, it is a crucial tool for\neffective project management and ensuring that your project stays on track.\n\n## Using the project dashboard\n\nTo access the project dashboard, open the Project app and navigate to the applicable project.\nClick the ( sliders ) icon to add Dashboard to the\nprojectâs top bar .\nYou can also access the project dashboard by hovering over the desired projectâs card, clicking\nthe ( vertical ellipsis ), and selecting Dashboard .\nThe left side of the dashboard displays a list of existing project updates ,\nand the right side provides detailed information about records linked to the project , as well as milestones , profitability , and budgets .\nThe information displayed on the project dashboard varies depending on the applications installed\non your database. For example, you will not see information about Timesheets , Planning ,\nor Purchase Orders if the corresponding applications are not installed.\n\n### Totals smart buttons\n\nThe following smart buttons are displayed on the top right of the project dashboard:\n- Tasks : the number of completed (i.e., Done or Canceled tasks ) and all tasks, in format\ncompleted/all, as well as the entire projectâs completion percentage estimation.\nTasks : the number of completed (i.e., Done or Canceled tasks ) and all tasks, in format\ncompleted/all, as well as the entire projectâs completion percentage estimation.\n- Timesheets : the number of hours or days (depending on the Timesheets app\nconfiguration) allocated in the projectâs settings . This includes all timesheets , whether or not they have been validated.\nTimesheets : the number of hours or days (depending on the Timesheets app\nconfiguration) allocated in the projectâs settings . This includes all timesheets , whether or not they have been validated.\n- Planned : the number of hours that have been planned for shifts in the Planning app. This includes all planned shifts , including past\nshifts and shifts that have not yet been published.\nPlanned : the number of hours that have been planned for shifts in the Planning app. This includes all planned shifts , including past\nshifts and shifts that have not yet been published.\n- Documents : number of documents in the\nprojectâs workspace.\nDocuments : number of documents in the\nprojectâs workspace.\n- Burndown Chart : click the smart button to access a report on the status of the projectâs tasks over time.\nBurndown Chart : click the smart button to access a report on the status of the projectâs tasks over time.\n- Timesheets and Planning : click the smart button to access a report on the projectâs timesheets and shifts. This allows you to easily compare planned and effective\nhours of work on the project.\nTimesheets and Planning : click the smart button to access a report on the projectâs timesheets and shifts. This allows you to easily compare planned and effective\nhours of work on the project.\n- Additional fields , such as Sales Orders , Sales Order Items , Purchase Orders , and more, represent the number of records linked to the project.\nAdditional fields , such as Sales Orders , Sales Order Items , Purchase Orders , and more, represent the number of records linked to the project.\nUse the project dashboard smart buttons to update the project records easily. Click Timesheets to validate timesheets, Planned to create project planning, Documents to view and validate documents, etc.\n\n### Milestones\n\nThis section is only visible if milestones have been enabled in the Projectâs app settings. Click Add Milestone to create a new\nmilestone. Click a milestone in the checklist to edit it, enable its checkbox to mark it as\ncompleted, or click the ( trash ) icon to remove it.\nThe milestones are displayed in red if theyâre past their deadline, or in green if they are ready to\nbe marked as reached (i.e. tasks linked to the milestone that have been marked with done or canceled status ).\n\n### Profitability\n\nThe profitability dashboard provides a breakdown of project costs and revenues, which are impacted by all records linked to the\nproject and its Analytic account .\nThe profitability report is only displayed for billable projects.\n\n### Budgets\n\nIf a budget has been set for the project, its status and related details are displayed in this\nsection. Click Add Budget to create a new budget for the project.\nBudgets must be enabled in your\ndatabaseâs Accounting application in order for this section to be displayed.\n\n## Project updates\n\nProject updates allow you to take a snapshot of the projectâs overall status at a given point in\ntime, for example, during a periodic (weekly, bi-weekly, or monthly) review. This allows you to\ncompare specific data points, note any aspects of the project that need improvement, and estimate\nif the project is on or off track.\nTo create a new project update, go to the project dashboard, click New , and fill in the\nfollowing fields:\n- Status : Choose between On Track , At Risk , Off\nTrack , On Hold , and Done . Once the status is set, a color-coded dot is\ndisplayed on the projectâs Kanban card, allowing the project manager to easily identify which\nprojects need attention.\nStatus : Choose between On Track , At Risk , Off\nTrack , On Hold , and Done . Once the status is set, a color-coded dot is\ndisplayed on the projectâs Kanban card, allowing the project manager to easily identify which\nprojects need attention.\n- Progress : Manually input the completion percentage based on the projectâs progress.\nProgress : Manually input the completion percentage based on the projectâs progress.\n- Date and Author : These fields are automatically filled in with\nappropriate information based on the user who created the update and the current date.\nDate and Author : These fields are automatically filled in with\nappropriate information based on the user who created the update and the current date.\n- Description : Use this rich-text field to gather notes. Depending on the project\nconfiguration (e.g., if the project is billable), this field may be pre-filled with current\ninformation on aspects such as profitability, budget, milestones, etc.\nDescription : Use this rich-text field to gather notes. Depending on the project\nconfiguration (e.g., if the project is billable), this field may be pre-filled with current\ninformation on aspects such as profitability, budget, milestones, etc.", "headings": ["Using the project dashboard", "Totals smart buttons", "Milestones", "Profitability", "Budgets", "Project updates"], "doc_id": "74fb2f7047670ebe"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/project/project_management/project_profitability.html", "title": "Project profitability", "module": "project", "section": "Project profitability", "text": "# Project profitability\n\nWhen handling billable projects, it is essential to determine whether your projects are turning a\nprofit. Measuring project profitability involves keeping track of the costs of resources used to\ncarry out the project, such as employee costs, materials used, purchases, expenses, or after-sales\nservices, and comparing them with the project revenues.\nProject profitability is tracked in the project dashboard on all billable\nprojects.\nTo access the project dashboard , open the Project app and navigate to\nthe applicable project. Click the ( sliders ) icon to add Dashboard to the projectâs top bar .\nYou can also access the project dashboard by hovering over the desired\nprojectâs card, clicking the ( vertical ellipsis ), and selecting Dashboard .\nThe profitability dashboard is on the right side of the project dashboard and displays data for\nall records linked to the project and its analytic account . Itâs\ndivided into two major sections: revenues , which\ndisplays a breakdown of income generated by the project, and costs accrued by your company. The same record can be\ndisplayed in both sections, e.g., the same timesheet is listed under Revenues with the\namount the customer paid for the work and under Costs with the amount of wages paid to\nthe employees.\nThe amounts displayed in the profitability report are divided into three columns:\n- Expected : the amounts expected based on existing sales or purchase orders.\nExpected : the amounts expected based on existing sales or purchase orders.\n- To invoice (revenues) or To bill (costs): the amounts are moved to this\ncolumn when the work or goods have been delivered, e.g., a timesheet has been created and/or validated, a\ndelivery order has been marked as done, or the delivered quantity has been manually updated on\nthe sales order.\nTo invoice (revenues) or To bill (costs): the amounts are moved to this\ncolumn when the work or goods have been delivered, e.g., a timesheet has been created and/or validated, a\ndelivery order has been marked as done, or the delivered quantity has been manually updated on\nthe sales order.\n- Invoiced or Billed : the amounts are moved to this column once an invoice\nor bill has been confirmed.\nInvoiced or Billed : the amounts are moved to this column once an invoice\nor bill has been confirmed.\nBased on the same principle, the revenues section is further divided into Sold , Delivered , and Invoiced columns. Use the ( arrow ) icon to see a detailed breakdown for each line.\nUse the projectâs top bar to easily access and edit\nrecords linked to the projectâs profitability from the projectâs Kanban view.\nIn order for a record to be displayed on the profitability dashboard, it must be linked to the\nproject and its analytic account .\nThe following records can be displayed in the profitability dashboard.\n\n## Revenues\n\n- Timesheets : revenues from timesheets ,\nbroken down according to the Invoicing Policy selected on the product form (e.g., Prepaid/Fixed Price , Based on Timesheets , Based on Milestones ).\nTimesheets : revenues from timesheets ,\nbroken down according to the Invoicing Policy selected on the product form (e.g., Prepaid/Fixed Price , Based on Timesheets , Based on Milestones ).\n- Materials : total of sales prices of products sold via sales orders linked to the\nproject.\nMaterials : total of sales prices of products sold via sales orders linked to the\nproject.\n- Customer invoices : a total of invoices linked to the project.\nCustomer invoices : a total of invoices linked to the project.\n- Subscriptions : a total of sales prices of subscriptions linked to the project.\nSubscriptions : a total of sales prices of subscriptions linked to the project.\n- Down payments : a total of down payments linked to the project.\nDown payments : a total of down payments linked to the project.\n- Expenses : any expenses that have been\nreinvoiced to the customer.\nExpenses : any expenses that have been\nreinvoiced to the customer.\n\n## Costs\n\n- Timesheets : total cost of time tracked by employees via timesheets , based on the employeeâs HR settings .\nTimesheets : total cost of time tracked by employees via timesheets , based on the employeeâs HR settings .\n- Purchase Orders : total cost of purchase orders linked to the\nproject. Those could cover goods, materials, or even subcontracted services. This entry only\nappears once the vendor bill is posted.\nPurchase Orders : total cost of purchase orders linked to the\nproject. Those could cover goods, materials, or even subcontracted services. This entry only\nappears once the vendor bill is posted.\n- Materials : total cost of products included in stock moves (deliveries and\nreceipts) that have been validated for the project. This section is only displayed if Analytic Costs have been enabled in Inventory ⣠Configuration ⣠Operations Types for applicable operations. This\nensures that the productâs cost is tracked during the stock move.\nMaterials : total cost of products included in stock moves (deliveries and\nreceipts) that have been validated for the project. This section is only displayed if Analytic Costs have been enabled in Inventory ⣠Configuration ⣠Operations Types for applicable operations. This\nensures that the productâs cost is tracked during the stock move.\n- Expenses : total costs of expenses linked to\nthe project that have been submitted and approved.\nExpenses : total costs of expenses linked to\nthe project that have been submitted and approved.\n- Vendor bills : total costs of vendor bills linked to the\nprojectâs analytic account.\nVendor bills : total costs of vendor bills linked to the\nprojectâs analytic account.\n- Manufacturing orders : total costs of manufacturing orders linked to the projectâs\nanalytic account.\nManufacturing orders : total costs of manufacturing orders linked to the projectâs\nanalytic account.\n- Other costs : any other costs linked to the projectâs analytic account.\nOther costs : any other costs linked to the projectâs analytic account.", "headings": ["Revenues", "Costs"], "doc_id": "96085d2b1661f410"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/project/tasks/recurring_tasks.html", "title": "Recurring tasks", "module": "project", "section": "Recurring tasks", "text": "# Recurring tasks\n\nWhen handling a project, the same task often needs to be performed several times: for example,\nweekly meetings or status reports. The recurring tasks feature allows you to automate the\ncreation of those tasks.\nOdoo Tutorials: Recurring tasks\n\n## Configuration\n\nTo enable recurring tasks, go to Project ⣠Configuration ⣠Settings , then\nactivate Recurring Tasks , and press Save .\n\n### Set up task recurrence\n\nIn an existing task, click the ( Recurrent ) button next to the Deadline field. Then, configure the Repeat Every field according to your\nneeds.\nA new task in recurrence will be created once the status of the previous task is set to Done or Canceled .\nThe new task is created on the project dashboard with the following configuration:\n- Stage : is set to the first stage of the project dashboard ( New or\nequivalent);\nStage : is set to the first stage of the project dashboard ( New or\nequivalent);\n- Name , Description , Project , Assignees , Customer , Tags : are copied from the original task;\nName , Description , Project , Assignees , Customer , Tags : are copied from the original task;\n- Deadline : is updated based on the Repeat Every field (e.g., if the task is\nset to repeat once a week, 7 days will be added to the deadline);\nDeadline : is updated based on the Repeat Every field (e.g., if the task is\nset to repeat once a week, 7 days will be added to the deadline);\n- Milestones , Timesheets , Chatter , Activities , Subtasks : are not copied from the original task.\nMilestones , Timesheets , Chatter , Activities , Subtasks : are not copied from the original task.\nOnce a recurrence is configured, a smart button on the task displays the total number of\nexisting recurrences.\n\n### Edit or stop task recurrence\n\nTo edit the recurrence, open the last task in recurrence. Any changes made on the task will be\napplied to the tasks that will be created in the future.\nTo stop the recurrence, open the last task in recurrence and press the Recurrent button next to the Planned date .", "headings": ["Configuration", "Set up task recurrence", "Edit or stop task recurrence"], "doc_id": "c536558713a1e52a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/project/tasks/sub-tasks.html", "title": "Sub-tasks", "module": "project", "section": "Sub-tasks", "text": "# Sub-tasks\n\nWhen handling project tasks, you can often benefit from splitting the workload into smaller sub-tasks , making it easier to track progress and manage the work.\nOdooâs sub-task feature is particularly useful in some of the following cases:\n- The task workload is too big to handle in one record.\nThe task workload is too big to handle in one record.\n- Thereâs a clear sequence of steps to follow.\nThereâs a clear sequence of steps to follow.\n- Some parts of the workload fall under the scope of different projects and/or assignees.\nSome parts of the workload fall under the scope of different projects and/or assignees.\nThe original task to which sub-tasks are linked is referred to as the parent task . The sub-tasks\nof the parent task are known as child tasks .\n\n## Creating sub-tasks\n\nTo create a sub-task:\n- Open the Project app, then go into your desired project.\nOpen the Project app, then go into your desired project.\n- Click the task where you want to add the sub-task, then click the Sub-tasks tab.\nClick the task where you want to add the sub-task, then click the Sub-tasks tab.\n- Click Add a line , then fill in the Title .\nClick Add a line , then fill in the Title .\n- Click the ( save ) icon to save the task manually.\nClick the ( save ) icon to save the task manually.\nYou can edit several fields of a sub-task directly from the parent taskâs sub-task tab without\nopening the individual sub-task. By default, those are: Title , Priority , Status , and Assignees . Use the ( sliders )\nicon to add or remove fields.\nOnce the new sub-task is created, the following changes occur in the parent task:\n- A smart button displays the total number of sub-tasks, as well as the number of closed\n( done or canceled ) sub-tasks. Click the smart button to access the list of the sub-tasks.\nA smart button displays the total number of sub-tasks, as well as the number of closed\n( done or canceled ) sub-tasks. Click the smart button to access the list of the sub-tasks.\n- The Allocated time displays the amount of time allocated to the parent task, as well\nas time allocated to the sub-tasks. This can be used to ensure that the time allocated to\nsub-tasks does not exceed time allocated to the parent task.\nThe Allocated time displays the amount of time allocated to the parent task, as well\nas time allocated to the sub-tasks. This can be used to ensure that the time allocated to\nsub-tasks does not exceed time allocated to the parent task.\n- The Timesheets tab includes a breakdown of time spent on the parent task as well as\nsub-tasks.\nThe Timesheets tab includes a breakdown of time spent on the parent task as well as\nsub-tasks.\nClick View to open the sub-task you created. The sub-task form is identical to the task form .\n- A smart button allows to navigate back to the Parent task .\nA smart button allows to navigate back to the Parent task .\n- The Sub-tasks tab allows for further creation of sub-tasks.\nThe Sub-tasks tab allows for further creation of sub-tasks.\n- Selecting a Project will trigger this sub-task to be displayed in the Kanban view of\nthe selected project.\nSelecting a Project will trigger this sub-task to be displayed in the Kanban view of\nthe selected project.", "headings": ["Creating sub-tasks"], "doc_id": "261d46cc5aa62231"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/project/tasks/task_creation.html", "title": "Task creation", "module": "project", "section": "Task creation", "text": "# Task creation\n\nTasks in Odoo Project can be created manually or automatically, including from emails or website\nforms.\n\n## Manual task creation\n\nOpen the Project app and choose the desired project. Create a new task by doing one of the\nfollowing:\n- Clicking the ( plus ) button in the upper left corner. This creates\na new task in the first stage of your Kanban view.\nClicking the ( plus ) button in the upper left corner. This creates\na new task in the first stage of your Kanban view.\n- Pressing the ( plus ) button next to the Kanban stage name. This\ncreates a new task in this Kanban stage.\nPressing the ( plus ) button next to the Kanban stage name. This\ncreates a new task in this Kanban stage.\nFill in the Task Title and add one or more Assignees , then click Add .\n\n### Task configuration\n\nClick the task to open it. The task form includes the following fields that you can fill in:\n- Task Title : title of the task.\nTask Title : title of the task.\n- ( Star ): click the ( star ) icon to mark\nthe task as high priority. The icon will turn yellow. Click it again to remove the high priority.\n( Star ): click the ( star ) icon to mark\nthe task as high priority. The icon will turn yellow. Click it again to remove the high priority.\n- Project : the project that this task belongs to.\nProject : the project that this task belongs to.\n- Assignees : the person(s) in charge of handling the work on this task.\nAssignees : the person(s) in charge of handling the work on this task.\n- Tags : custom labels allowing to categorize and filter your tasks.\nTags : custom labels allowing to categorize and filter your tasks.\n- Customer : the person or company that will be billed for this task. This field only\nappears in tasks that belong to billable projects.\nCustomer : the person or company that will be billed for this task. This field only\nappears in tasks that belong to billable projects.\n- Sales Order Item : this can be either the sales order that was used to create this\ntask, or a sales order that was linked to this task manually. This field only appears in tasks\nlinked to billable projects.\nSales Order Item : this can be either the sales order that was used to create this\ntask, or a sales order that was linked to this task manually. This field only appears in tasks\nlinked to billable projects.\n- Allocated Time : the amount of time that the work on this task is expected to last,\ntracked by timesheets.\nAllocated Time : the amount of time that the work on this task is expected to last,\ntracked by timesheets.\n- Deadline : the expected end date of the task. Once this field is filled in, you can\nalso add a start date to designate the entire time frame of the tasksâ duration.\nDeadline : the expected end date of the task. Once this field is filled in, you can\nalso add a start date to designate the entire time frame of the tasksâ duration.\n- You can also create new tasks by switching to the list or Gantt view and clicking New .\nYou can also create new tasks by switching to the list or Gantt view and clicking New .\n- The following fields can also be edited directly from the Kanban view without opening the\nindividual task: ( priority ), Allocated hours , Assignees , and task status . You can also color code or Set a\nCover image to your task by clicking the ( vertical ellipsis ).\nThe following fields can also be edited directly from the Kanban view without opening the\nindividual task: ( priority ), Allocated hours , Assignees , and task status . You can also color code or Set a\nCover image to your task by clicking the ( vertical ellipsis ).\n- You can use the following keyboard shortcuts in the task title to configure new tasks (modify\nthe values in the examples below according to your needs): 30h : to allocate 30 hours to the task. #tags : to add tags to the task. @user : to assign the task to a user. ! : to star the task as high priority. Along with using the correct format, follow this order: the taskâs name, followed by the\nallocated time, the tags, the assignee, and then the priority. For example, if you want to create a task named âPrepare workshopâ, allocate 5h hours to it,\nadd the âSchoolâ tag, assign it to Audrey and set its priority to High , enter the\nfollowing task title: Prepare workshop 5h #school @Audrey !\nYou can use the following keyboard shortcuts in the task title to configure new tasks (modify\nthe values in the examples below according to your needs):\n- 30h : to allocate 30 hours to the task.\n30h : to allocate 30 hours to the task.\n- #tags : to add tags to the task.\n#tags : to add tags to the task.\n- @user : to assign the task to a user.\n@user : to assign the task to a user.\n- ! : to star the task as high priority.\n! : to star the task as high priority.\nAlong with using the correct format, follow this order: the taskâs name, followed by the\nallocated time, the tags, the assignee, and then the priority.\nFor example, if you want to create a task named âPrepare workshopâ, allocate 5h hours to it,\nadd the âSchoolâ tag, assign it to Audrey and set its priority to High , enter the\nfollowing task title: Prepare workshop 5h #school @Audrey !\n\n## Creating tasks from an email alias\n\nThis feature allows for project tasks to be automatically created once an email is delivered to a\ndesignated email address.\nTo configure it, open the Project app, then click the ( vertical\nellipsis ) icon next to the desired projectâs name. Select Settings , then open the Settings tab.\nFill in the Create tasks by sending an email to field as follows:\n- Section of the alias before the @ symbol : type the name of the email alias, e.g. contact , help , jobs .\nSection of the alias before the @ symbol : type the name of the email alias, e.g. contact , help , jobs .\n`contact`\n`help`\n`jobs`\n- Domain : in most cases, this is filled in by default with your domain .\nDomain : in most cases, this is filled in by default with your domain .\n- Accept Emails From : refine the senders whose emails will create tasks in the project.\nAccept Emails From : refine the senders whose emails will create tasks in the project.\nOnce configured, the email alias can be seen under the name of your project on the Kanban dashboard.\nWhen an email is sent to the alias, the email is automatically converted into a project task. The\nfollowing rules apply:\n- The email sender is displayed in the Customer field.\nThe email sender is displayed in the Customer field.\n- The email subject is displayed in the Task Title field.\nThe email subject is displayed in the Task Title field.\n- The email body is displayed in the Description field.\nThe email body is displayed in the Description field.\n- The whole content of the email is additionally displayed in the chatter .\nThe whole content of the email is additionally displayed in the chatter .\n- All the recipients of the email (To/Cc/Bcc) that are Odoo users are automatically added as followers of the task.\nAll the recipients of the email (To/Cc/Bcc) that are Odoo users are automatically added as followers of the task.\n\n## Creating tasks from a website form\n\nIf you have the Website app installed in your database, you can configure any form on your\nwebsite to trigger the creation of tasks in a project.\n- Go to the website page where you wish to add the form and add the Form building block .\nGo to the website page where you wish to add the form and add the Form building block .\n- In the website editor, edit the following fields: Action : select Create a Task . Project : choose the project that you want the new tasks to be created in.\nIn the website editor, edit the following fields:\n- Action : select Create a Task .\nAction : select Create a Task .\n- Project : choose the project that you want the new tasks to be created in.\nProject : choose the project that you want the new tasks to be created in.\n- Customize the form .\nWhen the form is submitted, it automatically creates a project task. The taskâs content is defined\nby the formâs corresponding fields.", "headings": ["Manual task creation", "Task configuration", "Creating tasks from an email alias", "Creating tasks from a website form"], "doc_id": "f2ba135f64deabd6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/project/tasks/task_dependencies.html", "title": "Task dependencies", "module": "project", "section": "Task dependencies", "text": "# Task dependencies\n\nOdoo Project allows you to break down projects into tasks and establish relationships between those\ntasks to determine the order in which they are executed. Task dependencies ensure that certain tasks\nbegin only after the preceding tasks are completed.\nTo enable task dependencies in projects, go to Project ⣠Configuration â£\nSettings , enable Task Dependencies , and click Save .\n\n## Set task dependencies\n\nTask dependencies can be created from the task form or the projectâs Gantt view by linking the\nsuccessor task (i.e., the task blocked by other tasks) to its predecessor task(s) (i.e., the tasks\nblocking the successor task).\nTo create task dependencies from the task form, access the desired task and, in the Blocked by tab, click Add a line . Click View to access the\npredecessor task. To access the successor tasks from the predecessor task, click the Blocked Tasks smart button.\nTo create a task dependency from the Gantt view, hover your mouse over the predecessor task, then\nclick one of the dots that appear around it. Drag and drop the dot onto the successor task. An arrow\nappears, indicating the dependency from the predecessor task to the successor.\nOdoo automatically manages task progress based on their dependency. Successor tasks are assigned the Waiting status and cannot be moved to In Progress until their predecessor\ntask(s) are marked as Approved , Cancelled , or Done .\n\n## Remove dependencies\n\nTo remove a task dependency, proceed as follows:\n- From the task form, go to the Blocked by tab and click the ( times ) button.\nFrom the task form, go to the Blocked by tab and click the ( times ) button.\n- From the Gantt view, click the red ( times ) button that appears at the\ncenter of the arrow when you hover your mouse over it.\nFrom the Gantt view, click the red ( times ) button that appears at the\ncenter of the arrow when you hover your mouse over it.", "headings": ["Set task dependencies", "Remove dependencies"], "doc_id": "d2cfb03bf524bc15"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/project/tasks/task_stages_statuses.html", "title": "Task stages and statuses", "module": "project", "section": "Task stages and statuses", "text": "# Task stages and statuses\n\n## Task stages\n\nTask stages are displayed as columns in the projectâs Kanban view, and allow you to update the\nprogress of its tasks with a drag-and-drop. In most projects, the stages will be akin to New , In progress , Backlog , etc.\nBy default, task stages are project-specific but can be shared across multiple projects that follow\nthe same workflow.\n\n### Creating task stages\n\nOdoo Project doesnât provide default stages but instead allows you to create custom stages tailored\nto your specific business needs. You are prompted to do so immediately after creating a new\nproject .\nTo create a stage, type its name into the Stage⦠field, then click Add .\nClick See examples to find ideas for stage names applicable to your line of business.\n\n### Editing task stages\n\nTo edit the task stage, click the ( cog ) icon next to its name. From\nthere, click one of the following:\n- Fold : to hide the task stage and all of the tasks in this stage from the Kanban view.\nFold : to hide the task stage and all of the tasks in this stage from the Kanban view.\n- Edit : Name : to change the name of the stage. SMS/Email Template : to automatically send an email or SMS notification to the\ncustomer when a task reaches this stage. Folded in Kanban : to hide the task stage and all of the tasks in this stage from\nthe Kanban view. Projects : to share this task stage between several projects. Automations : to create custom rules that trigger automatic actions (e.g., creating activities, adding followers, or sending\nwebhook notifications). Note that this will activate Studio in your database, which may impact\nyour pricing plan.\n- Name : to change the name of the stage.\nName : to change the name of the stage.\n- SMS/Email Template : to automatically send an email or SMS notification to the\ncustomer when a task reaches this stage.\nSMS/Email Template : to automatically send an email or SMS notification to the\ncustomer when a task reaches this stage.\n- Folded in Kanban : to hide the task stage and all of the tasks in this stage from\nthe Kanban view.\nFolded in Kanban : to hide the task stage and all of the tasks in this stage from\nthe Kanban view.\n- Projects : to share this task stage between several projects.\nProjects : to share this task stage between several projects.\n- Automations : to create custom rules that trigger automatic actions (e.g., creating activities, adding followers, or sending\nwebhook notifications). Note that this will activate Studio in your database, which may impact\nyour pricing plan.\nAutomations : to create custom rules that trigger automatic actions (e.g., creating activities, adding followers, or sending\nwebhook notifications). Note that this will activate Studio in your database, which may impact\nyour pricing plan.\n- Delete : to delete this stage.\nDelete : to delete this stage.\n- Archive/Unarchive all : to archive or unarchive all of the tasks in this stage.\nArchive/Unarchive all : to archive or unarchive all of the tasks in this stage.\n\n## Task statuses\n\nTask statuses are used to track the status of tasks within the Kanban stage, as well as to close the\ntask when itâs done or canceled. Unlike Kanban stages, they cannot be customized; five task statuses\nexist in Odoo and are used as follows:\n- In Progress : this is the default state of all tasks, meaning that work required for\nthe task to move to the next Kanban stage is ongoing.\nIn Progress : this is the default state of all tasks, meaning that work required for\nthe task to move to the next Kanban stage is ongoing.\n- Changes Requested : to highlight that changes, either requested by the customer or\ninternally, are needed before the task is moved to the next Kanban stage.\nChanges Requested : to highlight that changes, either requested by the customer or\ninternally, are needed before the task is moved to the next Kanban stage.\n- Approved : to highlight that the task is ready to be moved to the next stage.\nApproved : to highlight that the task is ready to be moved to the next stage.\n- Canceled : to cancel the task.\nCanceled : to cancel the task.\n- Done : to close the task once itâs been completed.\nDone : to close the task once itâs been completed.\n- The Changes Requested and Approved task statuses are cleared as soon as\nthe task is moved to another Kanban stage. The task status reverts to the default In\nProgress status so that Changes Requested or Approved status can be\napplied again once the necessary work has been completed in this Kanban stage.\nThe Changes Requested and Approved task statuses are cleared as soon as\nthe task is moved to another Kanban stage. The task status reverts to the default In\nProgress status so that Changes Requested or Approved status can be\napplied again once the necessary work has been completed in this Kanban stage.\n- The Done and Canceled statuses are independent from the Kanban stage.\nOnce a task is marked as Done or Canceled , it is closed. If needed, it\ncan be reopened by changing its status.\nThe Done and Canceled statuses are independent from the Kanban stage.\nOnce a task is marked as Done or Canceled , it is closed. If needed, it\ncan be reopened by changing its status.", "headings": ["Task stages", "Creating task stages", "Editing task stages", "Task statuses"], "doc_id": "b9c240e1a1c20c4f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/timesheets/billing_rates.html", "title": "Timesheet billing rates and leaderboard", "module": "timesheets", "section": "Timesheet billing rates and leaderboard", "text": "# Timesheet billing rates and leaderboard\n\nOdooâs Timesheets app allows you to set personalized billing rate targets for employees. In addition to billing rate targets, a leaderboard can be enabled to motivate employees and gamify their experience. The leaderboard displays the\nbillable and total time logged by employees, and can be enhanced with motivational tips .\n\n## Billing rate indicators\n\n### Configuration\n\nTo enable billing rate indicators, navigate to Timesheets ⣠Configuration â£\nSettings , then enable Billing Rate Indicators , and click Save .\nTo set up the targets, click Set employee billable time targets , access the employee\nform that you wish to edit, navigate to the Settings tab, then encode the monthly Billing Time Target in hours or days, depending on the Encoding Method selected in the Timesheets Settings .\nOnce the Billing Rate Indicators have been enabled, you can also set the employeesâ Monthly Billing Time Target directly from the Employees app.\n\n### Using the billing rate indicators\n\nOnce enabled, the billing rate indicators are displayed in the upper right corner of the My Timesheets menu in Kanban, grid, and list views for all users. The monthly amount of\ntime logged by the user is displayed in the following format: logged billable time / billable time\ntarget . The percentage of completion of the billing rate target is also displayed, highlighted in\nred if the user falls below the target and in green once the target is reached.\nBelow the billing rate indicators, the total monthly amount of time logged by the user is also\ndisplayed.\n\n## Billing rate leaderboard\n\n### Configuration\n\nAfter the monthly billing time targets have been enabled,\nOdoo offers the possibility of activating a billing rate leaderboard in order to motivate\nemployees and enhance workplace transparency.\nTo enable the billing rate leaderboard, navigate to Timesheets ⣠Configuration â£\nSettings , activate Billing Rate Leaderboard , then click Save .\n\n### Using the billing rate leaderboard\n\nThe billing rate leaderboard is then displayed in the upper right corner of the My Timesheets view, next to the billing rate indicators. It displays the current top\nthree performers who have logged the highest percentage of their allocated billing hours.\nIt also shows the amount of time logged by the signed-in user in the format: logged billable\ntime / billable time target, as well as the total time logged.\nClicking on the area of the top three performers opens the leaderboard for all team members. Use the\ndrop-down menu in the upper left corner to switch between the Billing Rate Leaderboard and the Total Time Leaderboard , which displays the total time logged by team members\nacross billable and internal projects.\n\n## Leaderboard tips\n\nDaily motivational tips , displayed on the right side of the leaderboard, enhance the billing\nrate and total time leaderboard. The tips are randomly selected and change daily.\nTo create or edit existing tips, navigate to Timesheets ⣠Configuration ⣠Tips ,\nthen click New or double-click a tipâs text.", "headings": ["Billing rate indicators", "Configuration", "Using the billing rate indicators", "Billing rate leaderboard", "Configuration", "Using the billing rate leaderboard", "Leaderboard tips"], "doc_id": "35da3edaad9f230d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/services/timesheets/time_off.html", "title": "Time off entries", "module": "timesheets", "section": "Time off entries", "text": "# Time off entries\n\nOdoo automatically generates timesheet entries on projects and tasks once a time off request is\napproved. This streamlines timesheet validation by ensuring approved time off is accurately\nreflected in timesheets.\n\n## Configuration\n\nFirst, activate the developer mode , then open the Timesheets app, and\nnavigate to Configuration ⣠Settings . Scroll to the Time Off section\nand enable the Time Off checkbox. Enabling this option creates timesheet entries for\nvalidated time off requests and public holidays.\nOnce enabled, two fields appear: Project and Task . The default selection\nfor Project is Internal , and the default selection for Task is Time Off . These inform Odoo where to log the time off requests, which project, and task.\nThese can be modified, if desired, using the drop-down menu.\nThe available options presented vary based on the installed applications.\nTime off categories without validation requirements create timesheet records instantly. Requests\nrequiring validation creates timesheet entries after the time off request is approved.\nTo check if a time off type requires approval, check the Approvals section of the time off type form .\n\n## Workflow\n\nOnce the employee has requested time off , and the\nrequest has been validated, if necessary, the time is automatically logged on the Timesheets app, under the respective project and task.\nTo view the logged entry, open the Timesheets app and navigate to the relevant time period. The\ntime off appears in the corresponding field, according to the configuration .\nTo view the timesheet entry details, click the (magnifying glass) icon\nthat appears when hovering over the entry, and the detailed timesheet information appears.\nAn employee is attending internal training the week of December 15-19, 2025, and logs their time\nin the Timesheets app under the Internal project, with a task of Training . On December\n19, 2025, the employee is home sick, and requests the day off in the Time Off app.\n`Internal`\n`Training`\nThe time off type they request is Sick Time off , which is configured to not require\nvalidation. The employeeâs time off request is automatically approved, and is logged in the Timesheets app, under the Internal project, and the Time Off task.\n`Internal`\n`TimeOff`", "headings": ["Configuration", "Workflow"], "doc_id": "320e9414ccd006b4"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/studio.html", "title": "Studio", "module": "studio", "section": "Studio", "text": "# Studio\n\nOdoo Studio is a toolbox used to customize Odoo without coding knowledge. For example, in any\napp, add or modify:\n- Fields\n- Models\n- Automation rules\n- Webhooks\n- PDF reports\n- Approval rules\n- Security rules\nLearn how to build an app from scratch .\nTo access Studio , navigate to the app and model you want to modify, then click the ( Toggle Studio ) icon. Alternatively, with any app open, click the ( Toggle Studio ) icon and navigate to the relevant app and model.\nTo close Studio , click Close in the upper-right corner.\nInstalling Studio in an Odoo database on the Standard pricing plan automatically triggers\nan upsell to the Custom pricing plan.\n- For yearly or multi-year contracts : An upsell order is created with a 30-day limit.\nFor yearly or multi-year contracts : An upsell order is created with a 30-day limit.\n- For monthly contracts : The subscription automatically switches to the Custom plan and\nthe new rate is applied when the next bill is generated.\nFor monthly contracts : The subscription automatically switches to the Custom plan and\nthe new rate is applied when the next bill is generated.\nFor more information, refer to Odooâs pricing page or\ncontact your account manager.\nOdoo Tutorials: Studio", "headings": [], "doc_id": "b717b2b3447f3e32"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/studio/approval_rules.html", "title": "Approval rules", "module": "studio", "section": "Approval rules", "text": "# Approval rules\n\nApproval rules are used to automate approval processes for actions. They allow you to define\nthe criteria for when an approval is required before an action can be performed using a button.\n\n## Configuration\n\nTo add approval rules with Studio, proceed as follows:\n- Open Studio and switch to the required view .\nOpen Studio and switch to the required view .\n- Select the button to which the rule should be applied.\nSelect the button to which the rule should be applied.\n- Click Add an approval step in the Properties tab.\nClick Add an approval step in the Properties tab.\n- Specify which users are responsible for approving the action by using one of the following fields\nor both: Approvers to specify one or several users; Approver Group to specify one user group. Note An activity is created for all users set as Approvers when their approval is\nrequested.\nSpecify which users are responsible for approving the action by using one of the following fields\nor both:\n- Approvers to specify one or several users;\nApprovers to specify one or several users;\n- Approver Group to specify one user group. Note An activity is created for all users set as Approvers when their approval is\nrequested.\nApprover Group to specify one user group.\nAn activity is created for all users set as Approvers when their approval is\nrequested.\n- ( optional ) Select the Users to Notify via an internal note when the action is\napproved or rejected.\n( optional ) Select the Users to Notify via an internal note when the action is\napproved or rejected.\n- ( optional ) Add a Description to be displayed on the button.\n( optional ) Add a Description to be displayed on the button.\nYou can specify under which condition(s) an approval step should be applied by clicking the ( filter ) icon next to the Approvers field.\nTo add another approval step, click Add an approval step . When there are\nmultiple steps, you can:\n- Enable Exclusive Approval on any step so that a user who approves a step cannot\napprove another step for the same record.\nEnable Exclusive Approval on any step so that a user who approves a step cannot\napprove another step for the same record.\n- Change the Approval Order of the steps by selecting a number, 1 being the first\nstep, 2 the second step, and so on. A user responsible for a higher step can approve/reject\nprevious step(s) unless Exclusive Approval is selected.\nChange the Approval Order of the steps by selecting a number, 1 being the first\nstep, 2 the second step, and so on. A user responsible for a higher step can approve/reject\nprevious step(s) unless Exclusive Approval is selected.\n`1`\n`2`\nClick the ( trash ) icon next to the Approvers field to\nremove an approval step.\nYou can create user groups specifically for approvals.\n\n## Use\n\nOnce an approval rule has been defined for a button, a user avatar icon is displayed next to the\nbuttonâs label for each approval step. Clicking an icon reveals the step(s).\nIf an unauthorized user clicks the button, an error message is displayed and an activity is\ncreated for the users specified in the Approvers field, if any.\nAuthorized users can:\n- Perform the action directly by clicking the button if it is the last/only approval step.\nPerform the action directly by clicking the button if it is the last/only approval step.\n- Approve the action and let another user perform it - or move it to the next approval step - by\nclicking the user avatar icon next to the buttonâs label, then clicking the ( approve ).\nApprove the action and let another user perform it - or move it to the next approval step - by\nclicking the user avatar icon next to the buttonâs label, then clicking the ( approve ).\n- Reject the action by clicking the user avatar icon next to the buttonâs label and then the ( reject ) button.\nReject the action by clicking the user avatar icon next to the buttonâs label and then the ( reject ) button.\n- (only for users selected under the Approvers field) Delegate their approval rights to\none or several users for all records by: Clicking the ( kanban view ) icon and then Delegate . Selecting one or several Approvers , Until when they will have approval\nrights (forever if left empty), and, optionally, the user(s) who should be notified via an\ninternal note using the Notify to field.\n(only for users selected under the Approvers field) Delegate their approval rights to\none or several users for all records by:\n- Clicking the ( kanban view ) icon and then Delegate .\nClicking the ( kanban view ) icon and then Delegate .\n- Selecting one or several Approvers , Until when they will have approval\nrights (forever if left empty), and, optionally, the user(s) who should be notified via an\ninternal note using the Notify to field.\nSelecting one or several Approvers , Until when they will have approval\nrights (forever if left empty), and, optionally, the user(s) who should be notified via an\ninternal note using the Notify to field.\n- A user who approves/rejects an action can revoke their decision by clicking the user avatar icon next to the buttonâs label and then the ( revoke ) button. They\ncan also revoke the decision of other users for steps with a lower Approval Order unless Exclusive Approval is enabled.\nA user who approves/rejects an action can revoke their decision by clicking the user avatar icon next to the buttonâs label and then the ( revoke ) button. They\ncan also revoke the decision of other users for steps with a lower Approval Order unless Exclusive Approval is enabled.\n- Approvals are tracked in the recordâs chatter. An approval entry is also created every time\na Studio approval-related action is performed. To access approval entries, activate the\ndeveloper mode and go to Settings â£\nTechnical ⣠Studio Approval Entries .\nApprovals are tracked in the recordâs chatter. An approval entry is also created every time\na Studio approval-related action is performed. To access approval entries, activate the\ndeveloper mode and go to Settings â£\nTechnical ⣠Studio Approval Entries .", "headings": ["Configuration", "Use"], "doc_id": "3fc2a2ce9a6de70d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/studio/automated_actions.html", "title": "Automation rules", "module": "studio", "section": "Automation rules", "text": "# Automation rules\n\nAutomation rules allow the execution of one or more predefined actions in response to a specific\ntrigger, e.g., create an activity when a field is set to a specific value, or archive a record 7\ndays after its last update.\nWhen creating an automation rule, domain filters allow you to add conditions that must be met for the automation rule to run, e.g., the opportunity\nmust be assigned to a specific salesperson, or the state of the record must not be Draft .\nTo create an automation rule with Odoo Studio , proceed as follows:\n- Open Studio and click Automations , then New .\nOpen Studio and click Automations , then New .\n- Give the automation rule a clear, meaningful name that identifies its purpose.\nGive the automation rule a clear, meaningful name that identifies its purpose.\n- Select the trigger and, if necessary, fill in the\nfields that appear on the screen based on the chosen trigger.\nSelect the trigger and, if necessary, fill in the\nfields that appear on the screen based on the chosen trigger.\n- Click Add an action , then select the Type of action and fill in the fields that appear on the screen\nbased on your selected action.\nClick Add an action , then select the Type of action and fill in the fields that appear on the screen\nbased on your selected action.\n- Click Save & Close or Save & New .\nClick Save & Close or Save & New .\nTo ensure follow-up on less satisfied clients, this automation rule creates an activity 3 months\nafter a sales order is created for clients with a satisfaction percentage lower than 30%.\n- Use the Notes tab to document the purpose and functioning of automation rules. This\nmakes rules easier to maintain and facilitates collaboration between users.\nUse the Notes tab to document the purpose and functioning of automation rules. This\nmakes rules easier to maintain and facilitates collaboration between users.\n- To modify the model targeted by the automation rule, switch models\nbefore clicking Automations in Studio, or activate developer mode , create or edit an automation rule, and select the Model in the Automation Rules form.\nTo modify the model targeted by the automation rule, switch models\nbefore clicking Automations in Studio, or activate developer mode , create or edit an automation rule, and select the Model in the Automation Rules form.\n- Automation rules can be created from any kanban stage by clicking the (Settings) icon that appears when hovering over the kanban stage name, then\nselecting Automations . In this case, the Trigger is set to Stage is set to by default, but it can be changed if necessary.\nAutomation rules can be created from any kanban stage by clicking the (Settings) icon that appears when hovering over the kanban stage name, then\nselecting Automations . In this case, the Trigger is set to Stage is set to by default, but it can be changed if necessary.\n\n## Trigger\n\nThe Trigger is used to define what kind of event needs to occur for the automation rule\nto run. The available triggers depend on the model . Five trigger\ncategories are available overall:\n- Values Updated\n- Email Events\n- Timing Conditions\n- Custom\n- External\n\n### Adding conditions\n\nDomain filters allow you to determine the records an automation rule should target or exclude.\nEfficient filtering enhances overall performance as it avoids unnecessary processing on records that\nare not impacted by the rule.\nActivate developer mode before creating an automation rule to have the\nmost flexibility in adding domain filters.\nDepending on the trigger chosen, it is possible to define one or more conditions a record must meet before and/or after a trigger occurs.\n- The Before Update Domain defines the conditions a record must meet before the\ntrigger event occurs, e.g., the record must have Type = Customer Invoice and Status = Posted . With developer mode activated , click Edit Domain , if\navailable, then New Rule .\nThe Before Update Domain defines the conditions a record must meet before the\ntrigger event occurs, e.g., the record must have Type = Customer Invoice and Status = Posted .\n`Type=CustomerInvoice`\n`Status=Posted`\nWith developer mode activated , click Edit Domain , if\navailable, then New Rule .\n- Extra Conditions , or in some cases Apply on filters, define the conditions\na record must meet after the trigger event occurs, e.g., the customer invoice must have Payment Status = Partially Paid . With developer mode activated if needed, click Add conditions or Edit Domain , as relevant, then New Rule .\nExtra Conditions , or in some cases Apply on filters, define the conditions\na record must meet after the trigger event occurs, e.g., the customer invoice must have Payment Status = Partially Paid .\n`PaymentStatus=PartiallyPaid`\nWith developer mode activated if needed, click Add conditions or Edit Domain , as relevant, then New Rule .\nWhen a trigger occurs, e.g., the payment status of a\nposted customer invoice is updated, the automation rule checks the defined conditions and only\nexecutes the action if the record matches those conditions.\nIf the automated action should be executed when an email address is set for the first time (in\ncontrast to modifying an email address) on an existing contact that is an individual rather than\na company, use Email is not set and Is a Company is not set as the Before Update\nDomain and Email is set as the Apply on domain.\n`Emailisnotset`\n`IsaCompanyisnotset`\n`Emailisset`\nThe Before Update Domain is not checked upon the creation of a record.\n\n### Values Updated\n\nTrigger automated actions when specific changes happen in the database. The triggers available in\nthis category depend on the model and are based on common changes, such as adding a specific tag\n(e.g., to a task) or setting a fieldâs value (e.g., setting the User field).\nSelect the trigger, then select a value if required.\n\n### Email Events\n\nTrigger automated actions upon receiving or sending emails.\n\n### Timing Conditions\n\nTrigger automated actions at a point in time relative to a date field or to the creation or update\nof a record. The following triggers are available:\n- Based on date field : The action is triggered a defined period of time before or after\nthe date of the selected date field.\nBased on date field : The action is triggered a defined period of time before or after\nthe date of the selected date field.\n- After creation : The action is triggered a defined period of time after a record is\ncreated and saved.\nAfter creation : The action is triggered a defined period of time after a record is\ncreated and saved.\n- After last update : The action is triggered a defined period of time after an existing\nrecord is edited and saved.\nAfter last update : The action is triggered a defined period of time after an existing\nrecord is edited and saved.\n- a Delay : Specify the number of minutes, hours, days, or months. To have an action\nexecuted before the trigger date, specify a negative number. If you selected the Based\non date field trigger, you must also select the date field to be used to determine the delay. Note By default, the scheduler checks for time-triggered automation rules every 240 minutes, or 4\nhours. This frequency is generally sufficient for delays such as 3 months after the order date\nor 7 days after the last update. For delays of less than the equivalent of 2400 minutes, or 40 hours, the system recalculates\nthe frequency of this check to ensure that more granular delays, e.g., 1 hour before the event\nstart date and time, or 30 minutes after creation, can be respected as closely as possible. An on-screen message indicates the possible delay after the scheduled triggering of the rule. To view or manually edit the frequency of the scheduler, with developer mode activated , go to Settings ⣠Technical ⣠Scheduled Actions to see\nall scheduled actions for your database. Enter Automation in the search bar, then, in the list of results, click Automation\nRules: check and execute . If desired, update the value of the Execute Every field.\nClick Run Manually at any time to manually trigger this scheduled action.\na Delay : Specify the number of minutes, hours, days, or months. To have an action\nexecuted before the trigger date, specify a negative number. If you selected the Based\non date field trigger, you must also select the date field to be used to determine the delay.\nBy default, the scheduler checks for time-triggered automation rules every 240 minutes, or 4\nhours. This frequency is generally sufficient for delays such as 3 months after the order date\nor 7 days after the last update.\nFor delays of less than the equivalent of 2400 minutes, or 40 hours, the system recalculates\nthe frequency of this check to ensure that more granular delays, e.g., 1 hour before the event\nstart date and time, or 30 minutes after creation, can be respected as closely as possible.\nAn on-screen message indicates the possible delay after the scheduled triggering of the rule.\nTo view or manually edit the frequency of the scheduler, with developer mode activated , go to Settings ⣠Technical ⣠Scheduled Actions to see\nall scheduled actions for your database.\nEnter Automation in the search bar, then, in the list of results, click Automation\nRules: check and execute . If desired, update the value of the Execute Every field.\nClick Run Manually at any time to manually trigger this scheduled action.\n`Automation`\n- Extra Conditions : Click Add condition , then specify the conditions to be\nmet for the automation rule to run. Click New Rule to add another condition.\nExtra Conditions : Click Add condition , then specify the conditions to be\nmet for the automation rule to run. Click New Rule to add another condition.\nThe action is executed when the delay is reached and the conditions are met.\nTo send a reminder email 30 minutes before the start of a calendar event, select Start (Calendar Event) as the date field for the Trigger and set the Delay to -30 Minutes .\n`-30`\n\n### Custom\n\nTrigger automated actions:\n- On save : when a record is saved.\nOn save : when a record is saved.\n- On deletion : when a record is deleted.\nOn deletion : when a record is deleted.\n- On UI change : when a fieldâs value is changed on the Form view , even before the record is saved.\nOn UI change : when a fieldâs value is changed on the Form view , even before the record is saved.\nFor the On save and On UI change triggers, you must then select the\nfield(s) to be used to trigger the automation rule in the When updating field.\nIf no field is selected in the When updating field, the automated action may be\nexecuted multiple times per record.\nOptionally, you can also define additional conditions to be met to trigger the automation rule in\nthe Apply on field.\nTo trigger an automated action upon the creation of a record, e.g., when a new contact is\ncreated, select the On save trigger and use ID is not set as the Before Update Domain and ID is set as the Apply on domain. Make sure the correct field is selected in the When\nupdating field.\n`IDisnotset`\n`IDisset`\nWhen a new contact is saved, it is automatically assigned a database ID, thereby triggering the\nautomation rule.\nThe On UI change trigger can only be used with the Execute Code action and only works when a modification is made\nmanually. The action is not executed if the field is changed through another automation rule.\n\n### External\n\nTrigger automated actions based on a specific event in an external system or application using a webhook .\nAfter the webhook is configured in Odoo, where the webhookâs URL is generated and the target record\ndefined, it needs to be implemented in the external system.\nIt is highly recommended to consult with a developer, solution architect, or another technical\nrole when deciding to use webhooks and throughout the implementation process. If not properly\nconfigured, webhooks may disrupt the Odoo database and can take time to revert.\nIt is also possible to set up an automated action that sends data to a external systemâs\nwebhook when an event occurs in your Odoo database.\nWebhook documentation\n\n## Actions\n\nOnce you have defined the automation ruleâs trigger , click Add an action in the Actions To Do tab to define the action to be executed.\nYou can define multiple actions for the same automation rule. By default, actions are executed in\nthe order in which they were defined.\nThis means, for example, that if you define an Update record action and then a Send email action where the email references the field that was updated, the email\nuses the updated values. However, if the Send email action is defined before the Update record action, the email uses the values set before the record is updated.\nTo change the order of defined actions, click the (drag handle) icon beside an action and drag it to the desired position.\n\n### Update Record\n\nThis action updates one of the recordâs (related) fields. Click the Update field and, in\nthe list that opens, select or search for the field to be updated. If needed, click the (right arrow) next to the field name to access the list of\nrelated fields.\nIf you selected a many2many field , choose whether\nthe field must be updated by Adding , Removing , or Setting it to the selected value or by Clearing it .\nIf you want the automated action to remove a tag from the customer record, set the Update field to Customer > Tags , select by Removing , then\nselect the tag.\nAlternatively, you can also set a recordâs field dynamically using Python code. To do so, select Compute instead of Update , then enter the code to be used for computing\nthe fieldâs value. For example, if you want the automation rule to compute a custom datetime field when a taskâs priority is set to High (by starring the task), you can define the trigger Priority is set to to High and define the Update Record action as follows:\n`High`\n`High`\n\n### Create Activity\n\nThis action is used to schedule a new activity linked to the record. Select an Activity\nType , enter a Title and description, then specify when you want the activity to be\nscheduled in the Due Date In field, and select a User type :\n- To always assign the activity to the same user, select Specific User , then add the\nuser in the Responsible field;\nTo always assign the activity to the same user, select Specific User , then add the\nuser in the Responsible field;\n- To target a user linked to the record dynamically, select Dynamic User (based on\nrecord) and change the User Field if necessary.\nTo target a user linked to the record dynamically, select Dynamic User (based on\nrecord) and change the User Field if necessary.\nAfter a lead is turned into an opportunity, you want the automated action to set up a call for\nthe user responsible for the lead. To do so, set the Activity Type to Call and the User Type to Dynamic User (based on record) .\n\n### Send Email and Send SMS\n\nThese actions are used to send an email or a text message to a contact linked to a specific record.\nTo do so, select or create an Email Template or an SMS Template , then, in\nthe Send Email As or Send SMS As field, choose how you want to send the\nemail or text message:\n- Email : to send the message as an email to the recipients of the Email\nTemplate .\nEmail : to send the message as an email to the recipients of the Email\nTemplate .\n- Message : to post the message on the record and notify the recordâs followers.\nMessage : to post the message on the record and notify the recordâs followers.\n- Note : to send the message as an internal note visible to internal users in the\nchatter.\nNote : to send the message as an internal note visible to internal users in the\nchatter.\n- SMS (without note) : to send the message as a text message to the recipients of the SMS template .\nSMS (without note) : to send the message as a text message to the recipients of the SMS template .\n- SMS (with note) : to send the message as a text message to the recipients of the SMS template and post it as an internal note in the chatter.\nSMS (with note) : to send the message as a text message to the recipients of the SMS template and post it as an internal note in the chatter.\n- Note only : to only post the message as an internal note in the chatter.\nNote only : to only post the message as an internal note in the chatter.\n\n### Send WhatsApp\n\nTo automate the sending of WhatsApp messages, one or more WhatsApp templates must be created.\nThis action is used to send a WhatsApp message to a contact linked to a specific record.\nTo do so, select the appropriate WhatsApp Template from the dropdown menu.\n\n### Add Followers and Remove Followers\n\nThis action is used to subscribe/unsubscribe existing contacts to/from the record.\n\n### Create Record\n\nThis action is used to create a new record on any model.\nSelect the required model in the Record to Create field; it contains the current model\nby default. Specify a Name for the record, and then, if you want to create the record on\nanother model, select a field in the Link Field field to link the record that\ntriggered the creation of the new record.\nThe dropdown list related to the Link Field field only contains one2many fields existing on the current model that are linked to a many2one field on the target model.\nYou can create another automation rule with Update Record actions to update the fields of the new record if necessary. For example, you can use a Create Record action to create a new project task and then assign it to a specific\nuser using an Update Record action.\n\n### Execute Code\n\nFor automation rules that require the execution of custom code , note that maintenance of custom code is not\nincluded in the Standard or Custom pricing plans and incurs additional fees .\nThis action is used to execute Python code. You can write your code into the Code tab\nusing the following variables:\n- env : environment on which the action is triggered\nenv : environment on which the action is triggered\n`env`\n- model : model of the record on which the action is triggered; is a void recordset\nmodel : model of the record on which the action is triggered; is a void recordset\n`model`\n- record : record on which the action is triggered; may be void\nrecord : record on which the action is triggered; may be void\n`record`\n- records : recordset of all records on which the action is triggered in multi-mode; this may be\nleft empty\nrecords : recordset of all records on which the action is triggered in multi-mode; this may be\nleft empty\n`records`\n- time , datetime , dateutil , timezone : useful Python libraries\ntime , datetime , dateutil , timezone : useful Python libraries\n`time`\n`datetime`\n`dateutil`\n`timezone`\n- float_compare : utility function to compare floats based on specific precision\nfloat_compare : utility function to compare floats based on specific precision\n`float_compare`\n- log(message, level='info') : logging function to record debug information in ir.logging\ntable\nlog(message, level='info') : logging function to record debug information in ir.logging\ntable\n`log(message,level='info')`\n- _logger.info(message) : logger to emit messages in server logs\n_logger.info(message) : logger to emit messages in server logs\n`_logger.info(message)`\n- UserError : exception class for raising user-facing warning messages\nUserError : exception class for raising user-facing warning messages\n`UserError`\n- Command : x2many commands namespace\nCommand : x2many commands namespace\n`Command`\n- action = {...} : to return an action\naction = {...} : to return an action\n`action={...}`\nThe available variables are described both in the Code and Help tabs.\nOdooâs ORM capabilities\n\n### Send Webhook Notification\n\nThis action is used to send a POST API request with the values of the selected Fields to the webhook URL specified in the URL field.\n`POST`\nThe Sample Payload provides a preview of the data included in the request using a random\nrecordâs data or dummy data if no record is available.\nIt is also possible to set up an automated action that uses a webhook to receive data from\nan external system when a predefined event occurs in that system.\n\n### Execute Existing Actions\n\nThe action is used to trigger multiple actions (linked to the current model) at the same time. To do\nso, click on Add a line , then, in the Add: Child Actions pop-up, select an\nexisting action or click New to create a new one.", "headings": ["Trigger", "Adding conditions", "Values Updated", "Email Events", "Timing Conditions", "Custom", "External", "Actions", "Update Record", "Create Activity", "Send Email and Send SMS", "Send WhatsApp", "Add Followers and Remove Followers", "Create Record", "Execute Code", "Send Webhook Notification", "Execute Existing Actions"], "doc_id": "83a950ddd21ba5b4"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/studio/automated_actions/webhooks.html", "title": "Webhooks", "module": "studio", "section": "Webhooks", "text": "# Webhooks\n\nIt is highly recommended to consult with a developer, solution architect, or another technical\nrole when deciding to use webhooks and throughout the implementation process. If not properly\nconfigured, webhooks may disrupt the Odoo database and can take time to revert.\nWebhooks, which can be created in Odoo Studio , allow you to automate an action in your Odoo\ndatabase when a specific event occurs in another, external system.\nIn practice, this works as follows: when the event occurs in the external system, a data file (the\nâpayloadâ) is sent to the Odoo webhookâs URL via a POST API request, and a predefined action is\nperformed in your Odoo database.\n`POST`\nUnlike scheduled actions, which run at predefined intervals, or manual API requests, which need to\nbe explicitly invoked, webhooks enable real-time, event-driven communication and automation. For\nexample, you can set up a webhook to have your Odoo inventory data updated automatically when a\nsales order is confirmed in an external point-of-sale system.\nSetting up a webhook in Odoo requires no coding when connecting two Odoo databases, but testing a webhook requires an external tool. Custom target records or actions may require programming\nskills.\nThis article covers creating a webhook that receives data from an external source. However,\nit is also possible to create an automated action that sends data to an external webhook when a change occurs in your Odoo database.\n\n## Create a webhook in Odoo\n\nBefore implementing a webhook in a live database, configure and test it using a duplicate\ndatabase to ensure the webhook performs as intended.\nActivating developer mode before creating up a webhook gives greater\nflexibility in selecting the model the automation rule\ntargets. It also allows you to find the technical name of the model and fields, which may be\nneeded to configure the payload.\nTo find a modelâs technical name, with developer mode activated, hover over the model name and\nthen click (Internal link) . The technical name can be found in\nthe Model field. For example, a sales order webhook uses the Sales\nOrder model, but the technical name sale.order is used in the payload.\n`sale.order`\nTo create a webhook in Studio , proceed as follows:\n- Open Studio and click Webhooks , then New .\nOpen Studio and click Webhooks , then New .\n- Give the webhook a clear, meaningful name that identifies its purpose.\nGive the webhook a clear, meaningful name that identifies its purpose.\n- If needed, and provided developer mode is activated, select the appropriate Model from the dropdown. If developer mode is not activated, the automation rule targets the current\nmodel by default.\nIf needed, and provided developer mode is activated, select the appropriate Model from the dropdown. If developer mode is not activated, the automation rule targets the current\nmodel by default.\n- The webhookâs URL is automatically generated, but can be changed if needed by clicking Rotate Secret . This is the URL that should be used when implementing the webhook in\nthe external system that will send updates to the database. Warning The URL is confidential and should be treated with care. Sharing it online or without\ncaution can provide unintended access to the Odoo database. If the URL is updated after the\ninitial implementation, make sure to update it in the external system.\nThe webhookâs URL is automatically generated, but can be changed if needed by clicking Rotate Secret . This is the URL that should be used when implementing the webhook in\nthe external system that will send updates to the database.\nThe URL is confidential and should be treated with care. Sharing it online or without\ncaution can provide unintended access to the Odoo database. If the URL is updated after the\ninitial implementation, make sure to update it in the external system.\n- If desired, enable Log Calls to track the history of API requests made to the\nwebhookâs URL, e.g., for troubleshooting purposes.\nIf desired, enable Log Calls to track the history of API requests made to the\nwebhookâs URL, e.g., for troubleshooting purposes.\n- If the system sending the webhook is not Odoo, adjust the Target Record code to look\nfor the JSON record included in the payload when the API request is made to the webhookâs URL. If\nthe system sending the webhook is an Odoo database, ensure that the id and model appear in\nthe payload. If the webhook is used to create records in the Odoo database, use model.browse(i) or model.search(i) instead of the default Target Record format.\nIf the system sending the webhook is not Odoo, adjust the Target Record code to look\nfor the JSON record included in the payload when the API request is made to the webhookâs URL. If\nthe system sending the webhook is an Odoo database, ensure that the id and model appear in\nthe payload.\n`id`\n`model`\nIf the webhook is used to create records in the Odoo database, use model.browse(i) or model.search(i) instead of the default Target Record format.\n`model.browse(i)`\n`model.search(i)`\n- Click Add an action in the Actions To Do tab to define the actions to be executed.\nClick Add an action in the Actions To Do tab to define the actions to be executed.\n- Before implementing the webhook in the external system, test it to ensure it works as intended.\nBefore implementing the webhook in the external system, test it to ensure it works as intended.\n- Webhooks can also be created via the Automations menu in Studio by selecting\nthe trigger On webhook .\nWebhooks can also be created via the Automations menu in Studio by selecting\nthe trigger On webhook .\n- To access the history of API requests if Log Calls has been enabled, click the Logs smart button at the top of the Automation rules form.\nTo access the history of API requests if Log Calls has been enabled, click the Logs smart button at the top of the Automation rules form.\n- If the purpose of the webhook is anything other than to update an existing record, e.g., to\ncreate a new record, the Execute Code action must be chosen.\nIf the purpose of the webhook is anything other than to update an existing record, e.g., to\ncreate a new record, the Execute Code action must be chosen.\n\n## Test a webhook\n\nTesting a webhook requires a test payload and an external tool or system, like Postman , to send the payload via a POST API request. This section\npresents the steps to test a webhook in Postman.\n`POST`\n- See the webhook use cases section for step-by-step\nexplanations of how to test webhooks using test payloads.\nSee the webhook use cases section for step-by-step\nexplanations of how to test webhooks using test payloads.\n- To get specific help with testing a webhook with Postman, contact their support team.\nTo get specific help with testing a webhook with Postman, contact their support team.\n- In Postman, create a new HTTP request and set its method to POST .\nIn Postman, create a new HTTP request and set its method to POST .\n- Copy the webhookâs URL from your Odoo database using the (link) icon\nand paste it into the URL field in Postman.\nCopy the webhookâs URL from your Odoo database using the (link) icon\nand paste it into the URL field in Postman.\n- Click the Body tab and select raw .\nClick the Body tab and select raw .\n- Set the file type to JSON , then copy the code from the test payload and paste it into\nthe code editor.\nSet the file type to JSON , then copy the code from the test payload and paste it into\nthe code editor.\n- Click Send .\nIn the Response viewer at the bottom of the screen in Postman, details, including a HTTP\nresponse code, indicate whether or not the webhook is functioning correctly.\n- A 200 OK or status: ok message indicates that the webhook is functioning properly on Odooâs\nside. From here, implementation can begin with the other system to automatically send the API\nrequests to the Odoo webhookâs URL.\nA 200 OK or status: ok message indicates that the webhook is functioning properly on Odooâs\nside. From here, implementation can begin with the other system to automatically send the API\nrequests to the Odoo webhookâs URL.\n`200OK`\n`status:ok`\n- If any other response is returned, the number associated with it helps to identify the problem.\nFor example, a 500 Internal Server Error message means that Odoo could not interpret the call\nproperly. In this case, ensure the fields found in the JSON file are properly mapped in the\nwebhookâs configuration and in the system sending the test call.\nIf any other response is returned, the number associated with it helps to identify the problem.\nFor example, a 500 Internal Server Error message means that Odoo could not interpret the call\nproperly. In this case, ensure the fields found in the JSON file are properly mapped in the\nwebhookâs configuration and in the system sending the test call.\n`500InternalServerError`\nTurning on call logging in the webhookâs configuration in Odoo provides error logs if the webhook\nis not functioning as intended.\n\n## Implement a webhook in an external system\n\nWhen the webhook has been successfully created in Odoo and tested, implement it in the system that\nsends data to the Odoo database, making sure the POST API requests are sent to the webhookâs URL.\n`POST`\n\n## Webhook use cases\n\nBelow are two examples of how to use webhooks in Odoo. A test payload is provided for each example,\nand can be found in the section on testing the webhook. Postman is\nused to send the test payload.\n\n### Update a sales orderâs currency\n\nThis webhook updates a sales order in the Sales app to USD when the external system sends a POST API request to the webhookâs URL that includes that sales order number (which is identified\nby the payloadâs id record).\n`USD`\n`POST`\n`id`\nThis could be useful for subsidiaries outside the United States with a mother company located inside\nthe United States or during mergers when consolidating data into one Odoo database.\n\n#### Create the webhook\n\nTo create this webhook, proceed as follows:\n- Open the Sales app, then open Studio and click Webhooks .\nThe Sales Order model is selected by default.\nOpen the Sales app, then open Studio and click Webhooks .\nThe Sales Order model is selected by default.\n- Click New . The Trigger is set to On webhook by default.\nClick New . The Trigger is set to On webhook by default.\n- Set the Target Record to model.env[payload.get('model')].browse(int(payload.get('id'))) , where: payload.get('model') retrieves the value associated with the model key in the payload,\ni.e., sale.order , which is the technical name of the Sales Order model. payload.get('id') retrieves the value associated with the id key in the payload, i.e.,\nthe number of the target sales order in your Odoo database with the S and leading\nzeros removed. int converts the retrieved id to an integer (i.e., a whole number) because the method browse() can only be used with an integer.\nSet the Target Record to model.env[payload.get('model')].browse(int(payload.get('id'))) , where:\n`model.env[payload.get('model')].browse(int(payload.get('id')))`\n- payload.get('model') retrieves the value associated with the model key in the payload,\ni.e., sale.order , which is the technical name of the Sales Order model.\npayload.get('model') retrieves the value associated with the model key in the payload,\ni.e., sale.order , which is the technical name of the Sales Order model.\n`payload.get('model')`\n`model`\n`sale.order`\n- payload.get('id') retrieves the value associated with the id key in the payload, i.e.,\nthe number of the target sales order in your Odoo database with the S and leading\nzeros removed.\npayload.get('id') retrieves the value associated with the id key in the payload, i.e.,\nthe number of the target sales order in your Odoo database with the S and leading\nzeros removed.\n`payload.get('id')`\n`id`\n`S`\n- int converts the retrieved id to an integer (i.e., a whole number) because the method browse() can only be used with an integer.\nint converts the retrieved id to an integer (i.e., a whole number) because the method browse() can only be used with an integer.\n`int`\n`browse()`\n- Click Add an action .\nClick Add an action .\n- In the Type section, click Update Record .\nIn the Type section, click Update Record .\n- In the Action details section, select Update , choose the field Currency , and select USD .\nIn the Action details section, select Update , choose the field Currency , and select USD .\n- Click Save & Close .\n\n#### Test the webhook\n\nTo test this webhook, proceed as follows:\n- With Postman open, create a new HTTP request and set its method to POST .\nWith Postman open, create a new HTTP request and set its method to POST .\n- Copy the URL of the Odoo webhook using the (link) icon and paste it\ninto the URL field in Postman.\nCopy the URL of the Odoo webhook using the (link) icon and paste it\ninto the URL field in Postman.\n- Click the Body tab and select raw .\nClick the Body tab and select raw .\n- Set the file type to JSON , then copy this code, i.e., the payload, and paste it into\nthe code editor: { \"model\" : \"sale.order\" , \"id\" : \"SALES ORDER NUMBER\" }\nSet the file type to JSON , then copy this code, i.e., the payload, and paste it into\nthe code editor:\n- In your Odoo database, choose a sales order to test the webhook on. In the pasted code, replace SALES ORDER NUMBER with the sales orderâs number without the S or any zeros before the\nnumber. For example, a sales order with the number S00007 should be entered as 7 in Postman.\nIn your Odoo database, choose a sales order to test the webhook on. In the pasted code, replace SALES ORDER NUMBER with the sales orderâs number without the S or any zeros before the\nnumber. For example, a sales order with the number S00007 should be entered as 7 in Postman.\n`SALESORDERNUMBER`\n`S`\n`S00007`\n`7`\n- Click Send .\n- Consult the Response viewer in Postman to\ndetermine whether or not the webhook is functioning properly. If a message other than 200 OK or status: ok is returned, the number associated with the message helps to identify the problem.\nConsult the Response viewer in Postman to\ndetermine whether or not the webhook is functioning properly. If a message other than 200 OK or status: ok is returned, the number associated with the message helps to identify the problem.\n`200OK`\n`status:ok`\n\n### Create a new contact\n\nThis webhook uses custom code to create a new contact in an Odoo database when the external system\nsends a POST API request to the webhookâs URL that includes the contactâs information. This could\nbe helpful for automatically creating new vendors or customers.\n`POST`\n\n#### Create the webhook\n\nTo create this webhook, proceed as follows:\n- Open the Contacts app, then open Studio and click Webhooks .\nThe Contact model is selected by default.\nOpen the Contacts app, then open Studio and click Webhooks .\nThe Contact model is selected by default.\n- Click New . The Trigger is set to On webhook by default.\nClick New . The Trigger is set to On webhook by default.\n- Set the Target Record to model.browse([2]) . This is essentially a placeholder as\nthe code in the automated action tells the webhook what needs to be retrieved from the payload\nand in which model the record needs to be created.\nSet the Target Record to model.browse([2]) . This is essentially a placeholder as\nthe code in the automated action tells the webhook what needs to be retrieved from the payload\nand in which model the record needs to be created.\n`model.browse([2])`\n- Click Add an action .\nClick Add an action .\n- In the Type section, click Execute Code .\nIn the Type section, click Execute Code .\n- Copy this code and paste it into the code editor in the Code tab of the Action details section: # variables to retrieve and hold data from the payload contact_name = payload . get ( 'name' ) contact_email = payload . get ( 'email' ) contact_phone = payload . get ( 'phone' ) # a Python function to turn the variables into a contact in Odoo if contact_name and contact_email : new_partner = env [ 'res.partner' ] . create ({ 'name' : contact_name , 'email' : contact_email , 'phone' : contact_phone , 'company_type' : 'person' , 'customer_rank' : 1 , }) # an error message for missing required data in the payload else : raise ValueError ( \"Missing required fields: 'name' and 'email'\" )\nCopy this code and paste it into the code editor in the Code tab of the Action details section:\n- Click Save & Close .\n\n#### Test the webhook\n\nTo test this webhook, proceed as follows:\n- In Postman , create a new HTTP request and set its method to POST .\nIn Postman , create a new HTTP request and set its method to POST .\n- Copy the URL of the Odoo webhook using the (link) icon and paste it\ninto the URL field in Postman.\nCopy the URL of the Odoo webhook using the (link) icon and paste it\ninto the URL field in Postman.\n- Click the Body tab and select raw .\nClick the Body tab and select raw .\n- Set the file type to JSON , then copy this code, i.e., the payload, and paste it into\nthe code editor: { \"name\" : \"CONTACT NAME\" , \"email\" : \"CONTACTEMAIL@EMAIL.COM\" , \"phone\" : \"CONTACT PHONE NUMBER\" }\nSet the file type to JSON , then copy this code, i.e., the payload, and paste it into\nthe code editor:\n- In the pasted code, replace the CONTACT NAME , CONTACTEMAIL@EMAIL.COM , and CONTACT PHONE NUMBER with a new contactâs information.\nIn the pasted code, replace the CONTACT NAME , CONTACTEMAIL@EMAIL.COM , and CONTACT PHONE NUMBER with a new contactâs information.\n`CONTACTNAME`\n`CONTACTEMAIL@EMAIL.COM`\n`CONTACTPHONENUMBER`\n- Click Send .\n- Consult the Response viewer in Postman to\ndetermine whether or not the webhook is functioning properly. If a message other than 200 OK or status: ok is returned, the number associated with the message helps to identify the problem.\nConsult the Response viewer in Postman to\ndetermine whether or not the webhook is functioning properly. If a message other than 200 OK or status: ok is returned, the number associated with the message helps to identify the problem.\n`200OK`\n`status:ok`", "headings": ["Create a webhook in Odoo", "Test a webhook", "Implement a webhook in an external system", "Webhook use cases", "Update a sales orderâs currency", "Create a new contact"], "doc_id": "2c221a10a31e4260"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/studio/fields.html", "title": "Fields and widgets", "module": "studio", "section": "Fields and widgets", "text": "# Fields and widgets\n\nFields structure the models of a database. If you think of a model as a\ntable or spreadsheet, fields are the columns and records are the individual rows. Fields also define\nthe type of data that is stored within them. The way in which a fieldâs data is presented and\nformatted on the UI is controlled by its widget.\nWith Studio, it is possible to:\n- add new fields to your database. From a technical point of view, there\nare 15 field types in Odoo. However, you can choose from 20\nfield types in Studio, as some field types are available more than once with a different default\nwidget;\nadd new fields to your database. From a technical point of view, there\nare 15 field types in Odoo. However, you can choose from 20\nfield types in Studio, as some field types are available more than once with a different default\nwidget;\n- add existing fields, i.e., fields that already exists on a\nmodel, to any view of that model;\nadd existing fields, i.e., fields that already exists on a\nmodel, to any view of that model;\n- modify a fieldâs properties ; or\nmodify a fieldâs properties ; or\n- remove a field from a view .\nremove a field from a view .\nStudio fields vs. property fields\nFields created using Studio are saved as columns in your Odoo database. Property fields , on the other hand, act as pseudo-fields; they are shared by all\nrecords that are linked to the same parent record (e.g., for tasks, the project, or for a\nproduct, the product category), but they are not saved as columns in your database.\nAdding a Deadline field to the form view of a task using Studio makes that field\nvisible in every task in your database. Adding a Special instructions property\nfield to a task makes the field visible in all tasks within the same project (i.e., its\nparent) while other projectsâ tasks remain unaffected.\n\n## Field types\n\nFields can be broadly divided into two categories:\n- Simple fields , which contain basic values, such as text,\nnumbers, files, etc.\nSimple fields , which contain basic values, such as text,\nnumbers, files, etc.\n- Relational fields , which are used to link and\ndisplay the data from records on another model.\nRelational fields , which are used to link and\ndisplay the data from records on another model.\n\n### Simple fields\n\nNon-default widgets, when available, are presented as bullet points or sub-headings.\n\n#### Text (char)\n\n`char`\nThe Text field is used for short text containing any character. One text line is\ndisplayed when filling out the field.\n- Badge : displays the value inside a rounded shape, similar to a tag. The value cannot\nbe edited on the UI, but a default value can be set.\nBadge : displays the value inside a rounded shape, similar to a tag. The value cannot\nbe edited on the UI, but a default value can be set.\n- Copy to Clipboard : users can copy the value by clicking a button.\nCopy to Clipboard : users can copy the value by clicking a button.\n- E-mail : the value becomes a clickable mailto link.\nE-mail : the value becomes a clickable mailto link.\n- Image : displays an image using a URL. The value cannot be edited manually, but a\ndefault value can be set. Note This works differently from selecting the Image field directly, as the image is not stored in Odoo when using a Text field with the Image widget. For example, it can be useful if you\nwant to save disk space.\nImage : displays an image using a URL. The value cannot be edited manually, but a\ndefault value can be set.\nThis works differently from selecting the Image field directly, as the image is not stored in Odoo when using a Text field with the Image widget. For example, it can be useful if you\nwant to save disk space.\n- Phone : the value becomes a clickable tel link. Tip Tick Enable SMS to add an option to send an SMS directly from Odoo next to the\nfield.\nPhone : the value becomes a clickable tel link.\nTick Enable SMS to add an option to send an SMS directly from Odoo next to the\nfield.\n- URL : the value becomes a clickable URL.\nURL : the value becomes a clickable URL.\n\n#### Multiline Text (text)\n\n`text`\nThe Multiline Text field is used for longer text containing any type of character. Two\ntext lines are displayed on the UI when filling out the field.\n- Copy to Clipboard : users can copy the value by clicking a button.\nCopy to Clipboard : users can copy the value by clicking a button.\n\n#### Integer (integer)\n\n`integer`\nThe Integer field is used for all integer numbers ( positive, negative, or zero,\nwithout a decimal ).\n- Percentage Pie : displays the value inside a percentage circle, usually for a computed\nvalue. The value cannot be edited on the UI, but a default value can be set.\nPercentage Pie : displays the value inside a percentage circle, usually for a computed\nvalue. The value cannot be edited on the UI, but a default value can be set.\n- Progress Bar : displays the value next to a percentage bar, usually for a computed\nvalue. The field cannot be edited manually, but a default value can be set.\nProgress Bar : displays the value next to a percentage bar, usually for a computed\nvalue. The field cannot be edited manually, but a default value can be set.\n- Handle : displays a drag handle icon to order records manually in List view .\nHandle : displays a drag handle icon to order records manually in List view .\n\n#### Decimal (float)\n\n`float`\nThe Decimal field is used for all decimal numbers ( positive, negative, or zero,\nwith a decimal ).\nDecimal numbers are displayed with two decimals after the decimal point on the UI, but they are\nstored in the database with more precision.\n- Monetary : it is similar to using the Monetary field . It is recommended to use the latter as it offers more\nfunctionalities.\nMonetary : it is similar to using the Monetary field . It is recommended to use the latter as it offers more\nfunctionalities.\n- Percentage : displays a percent character % after the value.\nPercentage : displays a percent character % after the value.\n`%`\n- Percentage Pie : displays the value inside a percentage circle, usually for a computed\nvalue. The field cannot be edited manually, but a default value can be set.\nPercentage Pie : displays the value inside a percentage circle, usually for a computed\nvalue. The field cannot be edited manually, but a default value can be set.\n- Progress Bar : displays the value next to a percentage bar, usually for a computed\nvalue. The field cannot be edited manually, but a default value can be set.\nProgress Bar : displays the value next to a percentage bar, usually for a computed\nvalue. The field cannot be edited manually, but a default value can be set.\n- Time : the value must follow the hh:mm format, with a maximum of 59 minutes.\nTime : the value must follow the hh:mm format, with a maximum of 59 minutes.\n\n#### Monetary (monetary)\n\n`monetary`\nThe Monetary field is used for all monetary values.\nWhen you first add a Monetary field, you are prompted to add a Currency field if none exists already on the model. Odoo offers to add the Currency field for\nyou. Once it is added, add the Monetary field again.\n\n#### Html (html)\n\n`html`\nThe Html field is used to add text that can be edited using the Odoo HTML editor.\n- Multiline Text : disables the Odoo HTML editor to allow editing raw HTML.\nMultiline Text : disables the Odoo HTML editor to allow editing raw HTML.\n\n#### Date (date)\n\n`date`\nThe Date field is used to select a date on a calendar.\n- Remaining Days : the remaining number of days before the selected date is displayed\n(e.g., In 5 days ), based on the current date. This field should be set to Read only .\nRemaining Days : the remaining number of days before the selected date is displayed\n(e.g., In 5 days ), based on the current date. This field should be set to Read only .\n\n#### Date & Time (datetime)\n\n`datetime`\nThe Date & Time field is used to select a date on a calendar and a time on a clock. The\nuserâs current time is automatically used if no time is set.\nAs well as general properties , some specific properties are available for Date & Time fields that have the Date & Time or Date Range widget set.\n`daterange`\nThe Date Range widget is used to display a period of time defined by a start date and an\nend date in a single line. A date range can have a mandatory start and end date, e.g., for a\nmulti-day event, or allow an optional start or end date, e.g., for a field service intervention or a\nproject task.\nAdding a date range requires two fields: a Date & Time field with the Date Range widget set and another field that is selected as the start date or end\ndate. This underlying field can be an existing Date or Date & Time field, or one created specifically for this purpose.\n- Identify an existing Date or Date & Time field that can be used as the\nunderlying start/end date field, or add a new one. If the date range: has a mandatory start date and end date, this field can be either the start date or end date;\nthe outcome is the same. allows an optional start or end date, this field is the start date or end date, respectively. Tip To avoid displaying the same information twice, the underlying start/end date field can be\nmade invisible by enabling Invisible or removed from the view by clicking Remove from view .\nIdentify an existing Date or Date & Time field that can be used as the\nunderlying start/end date field, or add a new one. If the date range:\n- has a mandatory start date and end date, this field can be either the start date or end date;\nthe outcome is the same.\nhas a mandatory start date and end date, this field can be either the start date or end date;\nthe outcome is the same.\n- allows an optional start or end date, this field is the start date or end date, respectively.\nallows an optional start or end date, this field is the start date or end date, respectively.\nTo avoid displaying the same information twice, the underlying start/end date field can be\nmade invisible by enabling Invisible or removed from the view by clicking Remove from view .\n- Add a Date & Time field and set the Widget field to Date Range .\nAdd a Date & Time field and set the Widget field to Date Range .\n- Enter an appropriate Label .\nEnter an appropriate Label .\n- Select the underlying start/end date field from the Start date field or End date field dropdown, as relevant.\nSelect the underlying start/end date field from the Start date field or End date field dropdown, as relevant.\n- If the date range should have a mandatory start and end date, enable Always range .\nIf the date range should have a mandatory start and end date, enable Always range .\n- Update any other general properties or specific properties for Date & Time fields as needed, then\nclick Close in the upper right corner of the screen.\nUpdate any other general properties or specific properties for Date & Time fields as needed, then\nclick Close in the upper right corner of the screen.\n`remaining_days`\nThe Remaining Days widget displays the remaining number of days before the selected date\n(e.g., In 5 days ), based on the current date and time. This field should be set to Read\nonly .\n\n#### Checkbox (boolean)\n\n`boolean`\nThe Checkbox field is used when a value should only be true or false, indicated by\nchecking or unchecking a checkbox.\n- Button : displays a radio button. The widget works without switching to the edit mode.\nButton : displays a radio button. The widget works without switching to the edit mode.\n- Toggle : displays a toggle button. The widget works without switching to the edit mode.\nToggle : displays a toggle button. The widget works without switching to the edit mode.\n\n#### Selection (selection)\n\n`selection`\nThe Selection field is used when users should select a single value from a group of\npredefined values.\n- Badge : displays the value inside a rounded shape, similar to a tag. The value cannot\nbe edited on the UI, but a default value can be set.\nBadge : displays the value inside a rounded shape, similar to a tag. The value cannot\nbe edited on the UI, but a default value can be set.\n- Badges : displays all selectable values simultaneously inside rectangular shapes,\norganized horizontally.\nBadges : displays all selectable values simultaneously inside rectangular shapes,\norganized horizontally.\n- Priority : displays star symbols instead of values, which can be used to indicate an\nimportance or satisfaction level, for example. This has the same effect as selecting the Priority field , although, for the latter, four\npriority values are already predefined.\nPriority : displays star symbols instead of values, which can be used to indicate an\nimportance or satisfaction level, for example. This has the same effect as selecting the Priority field , although, for the latter, four\npriority values are already predefined.\n- Radio : displays all selectable values at the same time as radio buttons. Tip By default, radio buttons are organized vertically. Enable Display horizontally to\nswitch the way they are displayed.\nRadio : displays all selectable values at the same time as radio buttons.\nBy default, radio buttons are organized vertically. Enable Display horizontally to\nswitch the way they are displayed.\n- Status Bar : displays all selectable values at the same time as an arrow progress bar. Tip By default, values on the status bar are selectable. Disable Clickable to prevent\nthe value being edited on the UI.\nStatus Bar : displays all selectable values at the same time as an arrow progress bar.\nBy default, values on the status bar are selectable. Disable Clickable to prevent\nthe value being edited on the UI.\n\n#### Priority (selection)\n\n`selection`\nThe Priority field is used to display a three-star rating system, which can be used to\nindicate importance or satisfaction level. This field type is a Selection field with the Priority widget selected by default\nand four priority values predefined. Consequently, the Badge , Badges , Radio , and Selection widgets have the same effects as described under Selection .\nTo change the number of available stars by adding or removing values, click Edit\nValues . Note that the first value is equal to 0 stars (i.e., when no selection is made), so\nhaving four values results in a three-star rating system, for example.\n\n#### File (binary)\n\n`binary`\nThe File field is used to upload any type of file, or sign a form ( Sign widget).\n- Image : users can upload an image file, which is then displayed in Form view . This has the same effect as using the Image field .\nImage : users can upload an image file, which is then displayed in Form view . This has the same effect as using the Image field .\n- PDF Viewer : users can upload a PDF file, which can be then browsed from the Form view .\nPDF Viewer : users can upload a PDF file, which can be then browsed from the Form view .\n- Sign : users can electronically sign the form. This has the same effect as selecting\nthe Sign field .\nSign : users can electronically sign the form. This has the same effect as selecting\nthe Sign field .\n\n#### Image (binary)\n\n`binary`\nThe Image field is used to upload an image and display it in Form view . This field type is a File field with the Image widget selected by default.\nConsequently, the File , PDF Viewer , and Sign widgets have the\nsame effects as described under File .\nTo change the display size of uploaded images, select Small , Medium , or Large under the Size option.\n\n#### Sign (binary)\n\n`binary`\nThe Sign field is used to sign the form electronically. This field type is a File\nfield with the Sign widget selected by default.\nConsequently, the File , Image , and PDF Viewer widgets have the\nsame effects as described under File .\nTo give users the Auto option when having to draw their signature, select one of the\navailable Auto-complete with fields ( Text , Many2One , and Related Field on the model only). The signature is\nautomatically generated using the data from the selected field.\n\n### Relational fields\n\nNon-default widgets, when available, are presented as bullet points or sub-headings.\n\n#### Many2One (many2one)\n\n`many2one`\nThe Many2One field is used to link another record (from another model) to the record\nbeing edited. The recordâs name from the other model is then displayed on the record being edited.\nOn the Sales Order model, the Customer field is a Many2One field\npointing at the Contact model. This allows many sales orders to be linked to one contact (customer).\n- To prevent users from creating a new record in the linked model, tick Disable\ncreation .\nTo prevent users from creating a new record in the linked model, tick Disable\ncreation .\n- To prevent users from opening records in a pop-up window, tick Disable opening .\nTo prevent users from opening records in a pop-up window, tick Disable opening .\n- To help users only select the right record, click on Domain to create a filter.\nTo help users only select the right record, click on Domain to create a filter.\n- Badge : displays the value inside a rounded shape, similar to a tag. The value cannot\nbe edited on the UI.\nBadge : displays the value inside a rounded shape, similar to a tag. The value cannot\nbe edited on the UI.\n- Radio : displays all selectable values at the same time as radio buttons.\nRadio : displays all selectable values at the same time as radio buttons.\n\n#### One2Many (one2many)\n\n`one2many`\nThe One2Many field is used to display the existing relations between a record on the\ncurrent model and multiple records from another model.\nYou could add a One2Many field on the Contact model to look at one customerâs many sales orders.\nTo use a One2Many field, the two models must have been linked already using a Many2One field . One2Many relations do not exist\nindependently: a reverse-search of existing Many2One relations is performed.\n\n#### Lines (one2many)\n\n`one2many`\nThe Lines field is used to create a table with rows and columns (e.g., the lines of\nproducts on a sales order).\nTo modify the columns, click on the Lines field and then Edit List View .\nTo edit the form that pops up when a user clicks on Add a line , click on Edit Form View instead.\n\n#### Many2Many (many2many)\n\n`many2many`\nThe Many2Many field is used to link multiple records from another model to multiple\nrecords on the current model. Many2Many fields can use Disable creation , Disable opening , Domain , just like Many2One fields .\nOn the Task model, the Assignees field is a Many2Many field pointing at\nthe Contact model. This allows a single user to be assigned to many tasks and many users to be assigned to a single task.\n- Checkboxes : users can select several values using checkboxes.\nCheckboxes : users can select several values using checkboxes.\n- Tags : users can select several values appearing in rounded shapes, also known as tags . This has the same effect as selecting the Tags field .\nTags : users can select several values appearing in rounded shapes, also known as tags . This has the same effect as selecting the Tags field .\n\n#### Tags (many2many)\n\n`many2many`\nThe Tags field is used to display several values from another model appearing in rounded\nshapes, also known as tags . This field type is a Many2Many field with the Tags widget selected by default.\nConsequently, the Checkboxes and Many2Many widgets have the same effects as\ndescribed under Many2Many .\nTo display tags with different background colors, tick Use colors .\n\n#### Related Field (related)\n\n`related`\nA Related Field is not a relational field per se; no relationship is created between\nmodels. It uses an existing relationship to fetch and display information from another record.\nTo display the email address of a customer on the Sales Order model, use the Related\nField partner_id.email by selecting Customer and then Email .\n`partner_id.email`\n\n## Add a field to a view\n\nWith Studio, it is possible to add:\n- a new field to a form or list view of a model\na new field to a form or list view of a model\n- an existing field , i.e., a field that already exists on the model in question, to any view of that model\nan existing field , i.e., a field that already exists on the model in question, to any view of that model\nAdd a new field to a form or list view to save it to the model and make it available as an\nexisting field in other views of the same model.\n\n### Add a new field\n\nActivate developer mode before adding a new field to see, and be able\nto edit, the fieldâs technical name during configuration.\nTo add a new field, follow these steps:\n- Navigate to the relevant form or list view, then click the ( Toggle Studio ) icon in the upper-right corner. Alternatively, with any app open,\nclick the ( Toggle Studio ) icon, then navigate to the relevant form\nor list view.\nNavigate to the relevant form or list view, then click the ( Toggle Studio ) icon in the upper-right corner. Alternatively, with any app open,\nclick the ( Toggle Studio ) icon, then navigate to the relevant form\nor list view.\n- In the Add tab, drag the relevant field type from the New Fields section and drop it in the desired\nposition. If the new field is a relational field , select\nthe relevant reciprocal field, model, or related field in the pop-up.\nIn the Add tab, drag the relevant field type from the New Fields section and drop it in the desired\nposition. If the new field is a relational field , select\nthe relevant reciprocal field, model, or related field in the pop-up.\n- In the Properties tab, configure the fieldâs properties : Enter the Label to be displayed as the field name on the UI; this is also used to\ngenerate the default technical name of the field. Click anywhere outside the Label field to see the Technical Name updated with the default technical name. Note The Technical Name of a new field can be edited in Studio during the\nconfiguration process. At any other time, a fieldâs technical name can only be modified via the technical settings of the database . The technical name of a new field added using Studio is by default prefixed by x_studio_ . Optionally, select a different Widget via the dropdown; the default widget for the field type is selected by default. Optionally, configure any other field properties .\nIn the Properties tab, configure the fieldâs properties :\n- Enter the Label to be displayed as the field name on the UI; this is also used to\ngenerate the default technical name of the field.\nEnter the Label to be displayed as the field name on the UI; this is also used to\ngenerate the default technical name of the field.\n- Click anywhere outside the Label field to see the Technical Name updated with the default technical name. Note The Technical Name of a new field can be edited in Studio during the\nconfiguration process. At any other time, a fieldâs technical name can only be modified via the technical settings of the database . The technical name of a new field added using Studio is by default prefixed by x_studio_ .\nClick anywhere outside the Label field to see the Technical Name updated with the default technical name.\n- The Technical Name of a new field can be edited in Studio during the\nconfiguration process. At any other time, a fieldâs technical name can only be modified via the technical settings of the database .\nThe Technical Name of a new field can be edited in Studio during the\nconfiguration process. At any other time, a fieldâs technical name can only be modified via the technical settings of the database .\n- The technical name of a new field added using Studio is by default prefixed by x_studio_ .\nThe technical name of a new field added using Studio is by default prefixed by x_studio_ .\n`x_studio_`\n- Optionally, select a different Widget via the dropdown; the default widget for the field type is selected by default.\nOptionally, select a different Widget via the dropdown; the default widget for the field type is selected by default.\n- Optionally, configure any other field properties .\nOptionally, configure any other field properties .\n- Click Close in the top-right corner to close Studio.\nClick Close in the top-right corner to close Studio.\n\n### Add an existing field\n\nTo add a field that exists on the model but that is not present on the current view, follow these\nsteps:\n- Navigate to the relevant view, then click the ( Toggle\nStudio ) icon in the upper-right corner. Alternatively, with any app open, click the ( Toggle Studio ) icon, then navigate to the relevant view.\nNavigate to the relevant view, then click the ( Toggle\nStudio ) icon in the upper-right corner. Alternatively, with any app open, click the ( Toggle Studio ) icon, then navigate to the relevant view.\n- In the Add tab, in the left panel, click Existing\nFields to reveal a list of all the modelâs fields that are not currently\npresent in the view.\nIn the Add tab, in the left panel, click Existing\nFields to reveal a list of all the modelâs fields that are not currently\npresent in the view.\n- Drag the relevant field and drop it in the desired position.\nDrag the relevant field and drop it in the desired position.\n- In the Properties tab, configure the relevant properties for the field in the current view. Note Various properties can be configured independently for different views, if needed, such as the Label , the Widget , the visibility of the field for certain user\ngroups, as well as whether or not the field is Invisible , Required ,\nor Readonly .\nIn the Properties tab, configure the relevant properties for the field in the current view.\nVarious properties can be configured independently for different views, if needed, such as the Label , the Widget , the visibility of the field for certain user\ngroups, as well as whether or not the field is Invisible , Required ,\nor Readonly .\n- Click Close in the top-right corner to close Studio.\nClick Close in the top-right corner to close Studio.\n\n### Field properties\n\nA series of general properties can be configured for most\ncombinations of field type and widget . Additional properties are\navailable depending on the specific field type and widget selected. For example, Date &\nTime fields using the Date & Time or Date Range widget have various specific properties that can be configured.\n\n#### General properties\n\n- Class : Use Bootstrap or\nother custom classes defined in Odoo to customize how the field is styled and displayed on the UI.\nClass : Use Bootstrap or\nother custom classes defined in Odoo to customize how the field is styled and displayed on the UI.\n- Invisible : Enable this property when it is not necessary for users to view a field on\nthe UI. This helps declutter the UI by only showing the essential fields depending on a specific\nsituation.\nInvisible : Enable this property when it is not necessary for users to view a field on\nthe UI. This helps declutter the UI by only showing the essential fields depending on a specific\nsituation.\n- Required : Enable this property if a field should always be completed by the user\nbefore being able to proceed.\nRequired : Enable this property if a field should always be completed by the user\nbefore being able to proceed.\n- Readonly : Enable this property if users should not be able to modify a field.\nReadonly : Enable this property if users should not be able to modify a field.\n- The Invisible property also applies inside Studio. To view hidden fields in\nStudio, click on a viewâs View tab and enable Show Invisible Elements .\nThe Invisible property also applies inside Studio. To view hidden fields in\nStudio, click on a viewâs View tab and enable Show Invisible Elements .\n- The Invisible , Required , and Readonly properties can be\nenabled for specific records only by clicking on Conditional and creating a filter. Example On the form view of the Contact model, the Title field only appears when Individual is selected, as that field would not be helpful for a Company contact.\nThe Invisible , Required , and Readonly properties can be\nenabled for specific records only by clicking on Conditional and creating a filter.\nOn the form view of the Contact model, the Title field only appears when Individual is selected, as that field would not be helpful for a Company contact.\n- Label : This is the field name on the UI; the label is used to generate the technical\nname of the field.\nLabel : This is the field name on the UI; the label is used to generate the technical\nname of the field.\n- Help Tooltip : To explain the purpose of a field, add a description. The text is\ndisplayed inside a tooltip box when hovering with your mouse over the question mark beside the\nfieldâs label.\nHelp Tooltip : To explain the purpose of a field, add a description. The text is\ndisplayed inside a tooltip box when hovering with your mouse over the question mark beside the\nfieldâs label.\n- Technical Name : To view a fieldâs technical name in Studio (and, during the\nconfiguration of a new field, edit it if desired), activate developer mode . Tip If this field needs to be updated but is no longer editable via Studio, the technical name can\nbe modified via the technical settings of the database .\nTechnical Name : To view a fieldâs technical name in Studio (and, during the\nconfiguration of a new field, edit it if desired), activate developer mode .\nIf this field needs to be updated but is no longer editable via Studio, the technical name can\nbe modified via the technical settings of the database .\n- Widget : To change the default appearance or functionality of a field, select one of\nthe available widgets.\nWidget : To change the default appearance or functionality of a field, select one of\nthe available widgets.\n- Placeholder : To provide an example of how a field should be completed, add a fixed\nplaceholder text. The text appears in light gray until a value is entered.\nPlaceholder : To provide an example of how a field should be completed, add a fixed\nplaceholder text. The text appears in light gray until a value is entered.\n- Dynamic Placeholder : To provide the value of the selected field as an example of how a\nfield should be completed. The text appears in light gray until a value is entered.\nDynamic Placeholder : To provide the value of the selected field as an example of how a\nfield should be completed. The text appears in light gray until a value is entered.\n- Default value : To display a default value in a field when a record is created, add a\nvalue.\nDefault value : To display a default value in a field when a record is created, add a\nvalue.\n- Allow visibility to groups : To limit which users can view the field, select one or\nmore user access groups .\nAllow visibility to groups : To limit which users can view the field, select one or\nmore user access groups .\n- Forbid visibility to groups : To prevent certain users from seeing the field, select\none or more user access groups .\nForbid visibility to groups : To prevent certain users from seeing the field, select\none or more user access groups .\n\n#### Properties for Date & Time fields\n\nFor Date & Time fields using the Date & Time or Date Range widget, some specific properties are available:\n- Minimal precision : Determine the smallest date unit that must be selected in the date\nselector. The possible values are Day , Month , Year or Decade . If no value is selected, the\nuser must select a day in the date selector.\nMinimal precision : Determine the smallest date unit that must be selected in the date\nselector. The possible values are Day , Month , Year or Decade . If no value is selected, the\nuser must select a day in the date selector.\n`Day`\n`Month`\n`Year`\n`Decade`\n- Maximal precision : Determine the largest date unit that can be used to navigate the\ndate selector. The possible values are Day , Month , Year or Decade . If no value is\nselected, the user can navigate the date selector by decade.\nMaximal precision : Determine the largest date unit that can be used to navigate the\ndate selector. The possible values are Day , Month , Year or Decade . If no value is\nselected, the user can navigate the date selector by decade.\n`Day`\n`Month`\n`Year`\n`Decade`\n- Warning for future dates : Enable this property to display a warning icon if a future\ndate is selected.\nWarning for future dates : Enable this property to display a warning icon if a future\ndate is selected.\n- Condensed display : Enable this property to show days, months and hours with no leading\nzeros, e.g., 4/2/2025 8:05:00 instead of 04/02/2025 08:05:00 .\nCondensed display : Enable this property to show days, months and hours with no leading\nzeros, e.g., 4/2/2025 8:05:00 instead of 04/02/2025 08:05:00 .\n`4/2/20258:05:00`\n`04/02/202508:05:00`\n- Show time : This property is enabled by default for Date & Time fields. On\na read-only field, disable the property to show only the date. This can keep a list view less\ncluttered, for example.\nShow time : This property is enabled by default for Date & Time fields. On\na read-only field, disable the property to show only the date. This can keep a list view less\ncluttered, for example.\n- Show seconds : This property is enabled by default for Date & Time fields.\nDisable the property to show only hours and minutes.\nShow seconds : This property is enabled by default for Date & Time fields.\nDisable the property to show only hours and minutes.\n- Time interval : Enter a value to determine the minute intervals shown in the time\nselector. For example, enter 15 to allow quarter-hour intervals. The default value is set to 5\nminutes.\nTime interval : Enter a value to determine the minute intervals shown in the time\nselector. For example, enter 15 to allow quarter-hour intervals. The default value is set to 5\nminutes.\n- Earliest accepted date : Enter the earliest date that can be selected in the date\nselector in ISO-format, i.e., YYYY-MM-DD . If the current date is always the earliest accepted\ndate, enter today . On the date selector, dates prior to the earliest accepted date are grayed\nout.\nEarliest accepted date : Enter the earliest date that can be selected in the date\nselector in ISO-format, i.e., YYYY-MM-DD . If the current date is always the earliest accepted\ndate, enter today . On the date selector, dates prior to the earliest accepted date are grayed\nout.\n`YYYY-MM-DD`\n`today`\n- Latest accepted date : Enter the latest date that can be selected in the date\nselector in ISO-format, i.e., YYYY-MM-DD . If the current date is always the latest accepted\ndate, enter today . On the date selector, dates later than the latest accepted date are grayed\nout.\nLatest accepted date : Enter the latest date that can be selected in the date\nselector in ISO-format, i.e., YYYY-MM-DD . If the current date is always the latest accepted\ndate, enter today . On the date selector, dates later than the latest accepted date are grayed\nout.\n`YYYY-MM-DD`\n`today`\n\n## Modify a fieldâs properties\n\nTo modify the properties of a field, follow these steps:\n- Navigate to the relevant view, then click the ( Toggle\nStudio ) icon in the upper-right corner. Alternatively, with any app open, click the ( Toggle Studio ) icon, then navigate to the relevant view.\nNavigate to the relevant view, then click the ( Toggle\nStudio ) icon in the upper-right corner. Alternatively, with any app open, click the ( Toggle Studio ) icon, then navigate to the relevant view.\n- Click on the relevant field.\nClick on the relevant field.\n- In the Properties tab, make any desired changes to the field\nproperties . Tip Various properties can be configured independently for different views, such as the Label , the Widget , the visibility of the field for certain user\ngroups, as well as whether or not the field is Invisible , Required , or Readonly .\nIn the Properties tab, make any desired changes to the field\nproperties .\nVarious properties can be configured independently for different views, such as the Label , the Widget , the visibility of the field for certain user\ngroups, as well as whether or not the field is Invisible , Required , or Readonly .\n- Click Close in the top-right corner to close Studio.\nClick Close in the top-right corner to close Studio.\nThe Technical Name of a field (visible in Studio with developer mode activated) cannot be modified in Studio; this can be done via the\ntechnical settings of the database .\n\n### Modify a fieldâs technical name\n\nTo modify the technical name of a field, activate developer mode , then\nfollow these steps:\n- With the field open in Studio, copy the technical name of the field.\nWith the field open in Studio, copy the technical name of the field.\n- Remove the field from all views in Studio, then click Close to close Studio.\nRemove the field from all views in Studio, then click Close to close Studio.\n- Navigate to Settings app ⣠Technical ⣠Fields .\nNavigate to Settings app ⣠Technical ⣠Fields .\n- Paste the copied technical name into the search bar, then open the relevant field.\nPaste the copied technical name into the search bar, then open the relevant field.\n- Modify the Field Name as needed.\nModify the Field Name as needed.\nOnce the fieldâs technical name has been updated, the field can then be added (back) to the\nrelevant view(s) from the list of existing fields.\nWhen updating the technical name of a field, make sure to keep at least the x_ prefix, which is\nrequired for any custom field; for fields created using Studio, keep the x_studio_ prefix to\nallow such fields to be more easily identified.\n`x_`\n`x_studio_`\n\n## Remove a field from a view\n\nTo remove a field from a view, follow these steps:\n- Navigate to the relevant view, then click the ( Toggle\nStudio ) icon in the upper-right corner. Alternatively, with any app open, click the ( Toggle Studio ) icon, then navigate to the relevant view.\nNavigate to the relevant view, then click the ( Toggle\nStudio ) icon in the upper-right corner. Alternatively, with any app open, click the ( Toggle Studio ) icon, then navigate to the relevant view.\n- Click on the relevant field.\nClick on the relevant field.\n- Scroll to the bottom of the Properties tab, then click Remove from view .\nScroll to the bottom of the Properties tab, then click Remove from view .\n- Click Ok to confirm the action.\nClick Ok to confirm the action.\n- A removed field can be easily added back to the view at a\nlater stage, if needed.\nA removed field can be easily added back to the view at a\nlater stage, if needed.\n- If the intention is to declutter the view, it is also possible to modify a field and make it Invisible on the view in question.\nIf the intention is to declutter the view, it is also possible to modify a field and make it Invisible on the view in question.", "headings": ["Field types", "Simple fields", "Relational fields", "Add a field to a view", "Add a new field", "Add an existing field", "Field properties", "Modify a fieldâs properties", "Modify a fieldâs technical name", "Remove a field from a view"], "doc_id": "2295938158eca31e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/studio/models_modules_apps.html", "title": "Models, modules, and apps", "module": "studio", "section": "Models, modules, and apps", "text": "# Models, modules, and apps\n\nModels determine the logical structure of a database and how data is stored, organized, and\nmanipulated. In other words, a model is a table of information that can be linked with other tables.\nA model usually represents a business concept, such as a sales order , contact , or product .\nModules and apps contain various elements, such as models, views, data files, web controllers, and\nstatic web data.\nAll apps are modules. Larger, standalone modules are typically referred to as apps, whereas other\nmodules usually serve as add-ons to said apps.\n\n## Suggested features\n\nWhen you create a new model or app with Studio, you can choose to add up to 14 features to speed\nup the creation process. These features bundle fields, default settings, and views that are usually\nused together to provide some standard functionality. Most of these features can be added later on,\nbut adding them from the start makes the model creation process much easier. Furthermore, these\nfeatures interact together in some cases to increase their usefulness.\nCreating a model with the Picture and Pipeline stages features enabled adds the\nimage in the card layout of the Kanban view .\n\n### Contact details\n\nSelecting Contact details adds to the Form view a Many2One field linked to the Contact model and\ntwo of its Related Fields : Phone and Email . The Contact field is also added to the List view , and the Map view is activated.\n\n### User assignment\n\nSelecting User assignment adds to the Form view a Many2One field linked to the Contact model, with\nthe following Domain : Share User is not set to only allow the selection of Internal\nUsers . In addition, the many2one_avatar_user widget is used to display the userâs\navatar. The Responsible field is also added to the List view .\n`ShareUserisnotset`\n\n### Date & Calendar\n\nSelecting Date & Calendar adds to the Form view a Date field and activates the Calendar view .\n\n### Date range & Gantt\n\nSelecting Date range & Gantt adds to the Form view two Date fields next to each other: one to set a start\ndate, the other to set an end date, using the daterange widget, and activates the Gantt view .\n\n### Pipeline stages\n\nSelecting Pipeline stages activates the Kanban view , adds several fields such as Priority and Kanban State , and three stages: New , In Progress , and Done . The Pipeline status bar and the Kanban State field are added to the Form view . The Color field is added to the List view .\nThe Pipeline stages feature can be added at a later stage.\n\n### Tags\n\nSelecting Tags adds to the Form and List views a Tags field , creating a Tag model with preconfigured access rights in\nthe process.\n\n### Picture\n\nSelecting Picture adds to the top-right of the Form view an Image field .\nThe Picture feature can be added at a later stage.\n\n### Lines\n\nSelecting Lines : adds to the Form view a Lines\nfield inside a Tab component.\n\n### Notes\n\nSelecting Notes adds to the Form view an Html\nfield using the full width of the form.\n\n### Monetary value\n\nSelecting Monetary value adds to the Form and List views a Monetary field . The Graph and Pivot views are also activated.\nA Currency field is added and hidden from the view.\n\n### Company\n\nSelecting Company adds to the Form and List views a Many2One field linked to the Company model.\nThis is only useful if you work in a multi-company environment.\n\n### Custom Sorting\n\nSelecting Custom Sorting adds to the List view a drag handle icon to manually reorder records.\n\n### Chatter\n\nSelecting Chatter adds to the Form view Chatter\nfunctionalities (sending messages, logging notes, and scheduling activities).\nThe Chatter feature can be added at a later stage.\n\n### Archiving\n\nSelecting Archiving adds to the Form and List views the Archive action and hides archived\nrecords from searches and views by default.\n\n## Export and import customizations\n\nWhen you do any customization with Studio, a new module named studio_customization is\nadded to your database. You can export this module as a ZIP file using the Studio Export function. The module can then be imported into another Odoo database. This may be useful, for\nexample, when setting up a new module or for training purposes.\n`studio_customization`\nExporting and importing customizations in this way, rather than using the standard Odoo\nexport and import functions, means data is imported in a\nlogical way. For example, if the module contains customers and sales orders, the customers are\ncreated first, since these are required for the sales orders to be created.\n\n### Export customizations\n\nTo export customizations, click the (Toggle Studio) button on the main\nOdoo dashboard, then Export , then either:\n- download all Studio customizations by clicking the Export button; or\ndownload all Studio customizations by clicking the Export button; or\n- choose what data to export by clicking Configure data and demo data to export .\nchoose what data to export by clicking Configure data and demo data to export .\n\n#### Configure data to export\n\nTo select specific models to export, click New on the Studio Export screen,\nthen start typing the name of the relevant model or select it from the list.\nClick Preset to see a list of all models in your database with records that have\nbeen modified using Studio and all custom models created using Studio. To configure one of these\nmodels for export, click on the model to open it and make the required changes.\nTick the following options as relevant:\n- Demo : if the exported records should be considered as demo data when imported.\nDemo : if the exported records should be considered as demo data when imported.\n- Attachments : if attachments related to exported records should be included in the\nexport.\nAttachments : if attachments related to exported records should be included in the\nexport.\n- Updatable : if the exported records should be able to be updated during a module update.\nUpdatable : if the exported records should be able to be updated during a module update.\nIf necessary, edit the Domain to determine which of the modelâs records should be\nexported. To do so, click the Edit Domain button or (Modify filter) then Edit Domain , as appropriate. Proceed to make any\nrequired changes.\nAfter configuring a model for export, click Studio Export to return to the main screen.\nTo download a ZIP file with the customizations for all the listed models, click Export .\nIt is not necessary to select one or more models as all listed models will be included in the\nexport. To remove a model from the export, select it and click the Actions button then Delete .\nIn the Studio Export window:\n- leave the checkboxes unticked to export only the customizations done with Studio.\nleave the checkboxes unticked to export only the customizations done with Studio.\n- tick Include Data to include data from the selected models in the export.\ntick Include Data to include data from the selected models in the export.\n- tick Include Demo Data to include data from the selected models that is flagged\nas demo data. Ticking this option also ticks Include Data .\ntick Include Demo Data to include data from the selected models that is flagged\nas demo data. Ticking this option also ticks Include Data .\nClick the Export button to download the ZIP file.\n\n### Import customizations\n\nBefore importing, make sure the destination database is on the same Odoo version and contains the\nsame apps and modules as the source database. Studio does not add the underlying modules as\ndependencies of the exported module.\nTo import and install Studio customizations in another Odoo database:\n- Connect to the destination database.\nConnect to the destination database.\n- Click the (Toggle Studio) button on the main Odoo dashboard, then Import .\nClick the (Toggle Studio) button on the main Odoo dashboard, then Import .\n- Upload the exported ZIP file. If demo data should be imported, tick Load demo data .\nUpload the exported ZIP file. If demo data should be imported, tick Load demo data .\n- Click Install .", "headings": ["Suggested features", "Contact details", "User assignment", "Date & Calendar", "Date range & Gantt", "Pipeline stages", "Tags", "Picture", "Lines", "Notes", "Monetary value", "Company", "Custom Sorting", "Chatter", "Archiving", "Export and import customizations", "Export customizations", "Import customizations"], "doc_id": "81267695d51e5b62"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/studio/pdf_reports.html", "title": "PDF reports", "module": "studio", "section": "PDF reports", "text": "# PDF reports\n\nWith Studio, you can edit existing PDF reports (e.g., invoices,\nquotations, etc.) or create new ones .\n\n## Default layout\n\nThe default layout of reports is managed outside Studio. Go to Settings , then, in\nthe Companies section of the main page, click Configure Document Layout .\nLayout settings are company-specific but apply to all reports.\nYou can see how the different settings affect the report layout in the report preview on the\nright side of the Configure your document layout window. When creating or editing a\nreport, you can see a preview of the report by clicking Print preview on the left\nside of the screen.\nUse the following settings:\n- Layout : Seven layouts are available: Light Boxed Bold Striped Bubble Wave Folder\nLayout : Seven layouts are available:\n- Background : The following backgrounds are available: Blank : Nothing is displayed. Demo logo : A demo logo is displayed in the background. Custom : Upload a custom background image.\nBackground : The following backgrounds are available:\n- Blank : Nothing is displayed.\nBlank : Nothing is displayed.\n- Demo logo : A demo logo is displayed in the background.\nDemo logo : A demo logo is displayed in the background.\n- Custom : Upload a custom background image.\nCustom : Upload a custom background image.\n- Text : Eight fonts are available: Lato, Roboto, Open Sans, Montserrat, Oswald,\nRaleway, Tajawal (which supports Arabic and Latin scripts), and Fira Mono. Go to the Google Fonts\nwebsite to preview them.\nText : Eight fonts are available: Lato, Roboto, Open Sans, Montserrat, Oswald,\nRaleway, Tajawal (which supports Arabic and Latin scripts), and Fira Mono. Go to the Google Fonts\nwebsite to preview them.\n- Company logo : Click the Edit button to upload or change the logo. This\nadds the logo to the companyâs record on the Company model, which you can access by going to Settings and then clicking Update Info in the Companies section.\nCompany logo : Click the Edit button to upload or change the logo. This\nadds the logo to the companyâs record on the Company model, which you can access by going to Settings and then clicking Update Info in the Companies section.\n- Colors : Change the primary and secondary colors used to structure reports. The default\ncolors are automatically generated based on the colors of the logo.\nColors : Change the primary and secondary colors used to structure reports. The default\ncolors are automatically generated based on the colors of the logo.\n- Address : The company name and address are displayed in the header of external\nreports . You can add multiple lines of text.\nAddress : The company name and address are displayed in the header of external\nreports . You can add multiple lines of text.\n- Tagline : This is displayed in the header of external reports using the Light, Striped, Bubble, Wave and Folder\nlayouts and in the footer of external reports using the Boxed and Bold layouts. You\ncan add multiple lines of text.\nTagline : This is displayed in the header of external reports using the Light, Striped, Bubble, Wave and Folder\nlayouts and in the footer of external reports using the Boxed and Bold layouts. You\ncan add multiple lines of text.\n- Footer : This text is used in the footer of external reports . You can add multiple lines of text. You can also\nedit the footer using the report editor .\nFooter : This text is used in the footer of external reports . You can add multiple lines of text. You can also\nedit the footer using the report editor .\n- Paper format : This defines the default paper size of reports. You can select A4 (21 cm x 29.7 cm) and US Letter (21.59 cm x 27.54 cm). This can also be\ndefined for individual reports in the Paper format field in Studio . Note Other paper formats may be available depending on which apps or modules you have installed, for\nexample, label sheets for the Inventory app or event badges for the Events app.\nPaper format : This defines the default paper size of reports. You can select A4 (21 cm x 29.7 cm) and US Letter (21.59 cm x 27.54 cm). This can also be\ndefined for individual reports in the Paper format field in Studio .\nOther paper formats may be available depending on which apps or modules you have installed, for\nexample, label sheets for the Inventory app or event badges for the Events app.\n\n## Creating new PDF reports\n\nTo create a new report for a model ,\n(e.g., sales orders) access the model, click the ( Toggle Studio )\nbutton, then click Reports . Click New and, in the popup window that opens,\nselect the type of report. This is solely used to determine what is displayed in the header and\nfooter:\n- External : The header displays the companyâs logo and its name and address . For reports using the\nLight, Striped, Bubble, Wave and Folder layouts, the tagline also appears in the header. The footer displays the values set in the Footer field and the page number. For\nreports using the Boxed and Bold layouts, the tagline also appears in the footer.\n- The header displays the companyâs logo and its name and address . For reports using the\nLight, Striped, Bubble, Wave and Folder layouts, the tagline also appears in the header.\nThe header displays the companyâs logo and its name and address . For reports using the\nLight, Striped, Bubble, Wave and Folder layouts, the tagline also appears in the header.\n- The footer displays the values set in the Footer field and the page number. For\nreports using the Boxed and Bold layouts, the tagline also appears in the footer.\nThe footer displays the values set in the Footer field and the page number. For\nreports using the Boxed and Bold layouts, the tagline also appears in the footer.\n- Internal : The header displays the userâs current date and time, the companyâs name and address and the page number. There is\nno footer.\nInternal : The header displays the userâs current date and time, the companyâs name and address and the page number. There is\nno footer.\n- Blank : There is neither a header nor a footer. Click in the upper left corner of the\npage to edit the report.\nBlank : There is neither a header nor a footer. Click in the upper left corner of the\npage to edit the report.\nOnce you have created the report, you can start editing it .\n\n## Editing PDF reports\n\nTo access the reports available for a model, access the model, click the ( Toggle Studio ) button, then click Reports . Select an\nexisting report to open it.\nAlternatively, you can also open Studio, click Reports , and search for a specific\nreport or model.\nIt is strongly recommended to duplicate the standard report and make changes in the\nduplicated version. To duplicate a report, hover the mouse pointer on the top right corner\nof the report, click the ( vertical ellipsis ) icon, and\nthen select Duplicate .\n\n### Options\n\nOnce you have selected or created a report, you can use the options in the left part of the screen\nto:\n- Change the Report name : The new name is applied everywhere (in Studio, in the Print menu under the ( gear ) icon in the form view, and in\nthe PDF file name).\nChange the Report name : The new name is applied everywhere (in Studio, in the Print menu under the ( gear ) icon in the form view, and in\nthe PDF file name).\n- Modify the Paper format : If no value is selected, the format defined in the default layout is used.\nModify the Paper format : If no value is selected, the format defined in the default layout is used.\n- Show in print menu : to add the report to the Print menu in the form view.\nShow in print menu : to add the report to the Print menu in the form view.\n- Reload from attachment : to save the report as an attachment on the record the first\ntime it is generated and reload the original version of the report any subsequent time. This is\nlegally required for invoices and is mainly used in this case.\nReload from attachment : to save the report as an attachment on the record the first\ntime it is generated and reload the original version of the report any subsequent time. This is\nlegally required for invoices and is mainly used in this case.\n- Limit visibility to groups : to limit the availability of the PDF report to specific user groups .\nLimit visibility to groups : to limit the availability of the PDF report to specific user groups .\n- Edit sources : to modify the report directly in the XML file .\nEdit sources : to modify the report directly in the XML file .\n- Reset report : to discard all changes made to the report and reset it to its standard\nversion.\nReset report : to discard all changes made to the report and reset it to its standard\nversion.\n- Print preview : to generate and download a report preview.\nPrint preview : to generate and download a report preview.\n\n### Report editor\n\nThe report editor allows you to modify the content and formatting of the report.\n- You can Undo or Redo changes using the related buttons or the shortcuts CTRL + Z and CTRL + Y .\nYou can Undo or Redo changes using the related buttons or the shortcuts CTRL + Z and CTRL + Y .\n`CTRL`\n`Z`\n`CTRL`\n`Y`\n- Changes are saved automatically when you leave the report or manually using the Save button.\nChanges are saved automatically when you leave the report or manually using the Save button.\n- You can reset the report to its standard version by clicking the Reset report button\nin the left part of the screen.\nYou can reset the report to its standard version by clicking the Reset report button\nin the left part of the screen.\nEditing the header and footer of a report impacts all standard and custom reports.\n\n#### Conditional blocks\n\nThe dashed rectangles represent conditional blocks ( if/else statements). These are used to\nshow/hide content based on specific conditions. Click on the block to view the conditions.\nSelect a value to preview its corresponding output and edit it if necessary.\nConditions can only be edited in the XML .\n\n#### Other content\n\nThere are two types of text content in reports:\n- Static text, i.e., the text that is not highlighted in blue, which can be modified directly in the\neditor.\nStatic text, i.e., the text that is not highlighted in blue, which can be modified directly in the\neditor.\n- Dynamic text, i.e., the text that is highlighted in blue, which is replaced by field values when the report is generated, e.g., the sales order number or\nthe quotation date.\nDynamic text, i.e., the text that is highlighted in blue, which is replaced by field values when the report is generated, e.g., the sales order number or\nthe quotation date.\nYou can add content (e.g., fields, lists, tables, images, banners, etc.) to the report using\ncommands. Type / to open the powerbox , then type the\ncommandâs name or select it from the list.\n`/`\nTo add static text to the report, type the text where you want it.\nFor more advanced changes, you can edit the report in the XML directly .\nTo add a field, type / and select the Field command. In the list that opens, select\nor search for the field; click the right arrow next to the field name to access the list of related\nfields if needed. Then, specify the default value that will be shown if the field is not completed\nin the record and press Enter .\n`/`\n`Enter`\nThere are two types of tables in reports:\n- Static tables , which are used to display static text or fields. For this type of table, you define\nthe number of columns and rows when adding the table.\nStatic tables , which are used to display static text or fields. For this type of table, you define\nthe number of columns and rows when adding the table.\n- Dynamic tables , which are used to display data from relational fields .\nFor this type of table, you only define the number of columns when adding the table. The number\nof rows in the generated report will be determined by the number of records in the related model\nthat are linked with the current model. Example In a sales order report, a dynamic table is used to show the order lines related to the sales\norder. If the sales order contains 10 order lines, the table in the generated report has 10 rows;\nif it contains two order lines, the table has two rows.\nDynamic tables , which are used to display data from relational fields .\nFor this type of table, you only define the number of columns when adding the table. The number\nof rows in the generated report will be determined by the number of records in the related model\nthat are linked with the current model.\nIn a sales order report, a dynamic table is used to show the order lines related to the sales\norder. If the sales order contains 10 order lines, the table in the generated report has 10 rows;\nif it contains two order lines, the table has two rows.\nTo add a static table, type / and select the Table command. Determine the number of\ncolumns and rows for the table. Once the table has been added, you can start editing it.\n`/`\nYou can insert, move and delete columns and rows using the table tools. Position the cursor on top\nof the column or to the left of the row then click the purple rectangle and select an option.\nTo resize a column, drag the column border to the desired position; reset all columns\nto their standard size by selecting Reset Size from the table tools.\nAdd the field of your choice in a cell or add static text\nby typing.\nTo add text in a structured way without using a table, you can use columns. Add columns by\ntyping / and selecting the appropriate command: 2 columns , 3 columns or 4 columns .\n`/`\n- Only relations of type one2many or many2many can be displayed as dynamic tables.\nOnly relations of type one2many or many2many can be displayed as dynamic tables.\n`one2many`\n`many2many`\n- An existing dynamic table in a standard report has a more complex structure than a dynamic table\nyou add yourself. For such tables, it is possible to insert or delete columns; it is not possible\nto move columns or to insert, move or delete rows.\nAn existing dynamic table in a standard report has a more complex structure than a dynamic table\nyou add yourself. For such tables, it is possible to insert or delete columns; it is not possible\nto move columns or to insert, move or delete rows.\nTo add a dynamic table, type / and select the Dynamic Table command. In the list that\nopens, select or search for the relation the table will be based on and press Enter . Once the\ntable has been added, you can start editing it.\n`/`\n`Enter`\nYou can insert, move and delete columns using the table tools, as for a static table . It is also possible to insert static rows\nthat will appear above or below the generated rows.\nTo add a field to a cell, delete any placeholder text then add the field of your choice . The dialog box that opens shows the source object for the\nfield (e.g., the Order Lines model) and the list of available fields.\nReplace the Column name label by the label of your choice.\nThe default row automatically iterates over the fieldâs content, generating a row on the report\nfor each field value (e.g., one row per order line).\nTo format text in the report, select it, then format it using the options in the text editor .\n\n### Editing the reportâs XML\n\nModifying the XML directly may result in report issues during upgrades . If this happens, simply copy your changes from the old\ndatabase into your upgraded database.\nTo edit the reportâs XML, click Edit sources in the left pane.\n\n#### Examples\n\nTo change how data is presented in your report, you can modify a fieldâs default widget manually. In the example below, the order date shows\nthe date and time by default, while the unit price defaults to a precision of two decimal\nplaces.\nBy using t-options , in this case the widget option, these fields can be modified to show\nonly the date and a precision of four decimal places, respectively:\n`t-options`\n`widget`\nIf you want to show/hide content based on specific conditions, you can manually add if/else control statements in the report XML.\n`if/else`\nFor example, if you want to hide a custom data table if there are no tags, you can use the t-if attribute to define the condition, which is then evaluated as True or False . The table will\nnot be displayed if there are no tags in the quotation.\n`t-if`\n`True`\n`False`\nIf you want to display another block in case the t-if statement is evaluated as False , you\ncan specify it using the t-else statement. The t-else block must directly follow the t-if block in the document structure. There is no need to specify any condition in the t-else attribute. As an example, letâs show a quick message explaining that there are no tags on the\nquotation:\n`t-if`\n`False`\n`t-else`\n`t-else`\n`t-if`\n`t-else`\nBy using the t-if/t-else notation, the report editor recognizes that these sections are\nmutually exclusive and should be displayed as conditional blocks:\n`t-if/t-else`\nYou can switch conditions using the editor to preview their output:\nIf you wish to have multiple options, you can also use t-elif directives to add intermediary\nconditions. For example, this is how the title of sales order reports changes based on the\ncondition of the underlying document.\n`t-elif`\nThe title Pro-Forma Invoice is used depending on some contextual conditions. If these\nconditions are not met and the state of the document is either draft or sent , then Quotation is used. If none of those conditions are met, the reportâs title is Order .\n`draft`\n`sent`\nWorking with images in a report can be challenging, as precise control over image size and\nbehavior is not always obvious. You can insert image fields using the report editor\n(by using the Field command ), but inserting them in XML\nusing the t-field directive and accompanying t-options attributes provides better sizing and\npositioning control.\n`t-field`\n`t-options`\nFor example, the following code outputs the field image_128 of the lineâs product as a\n64px-wide image (with an automatic height based on the imageâs aspect ratio).\n`image_128`\nThe following options are available for image widgets:\n- width : width of the image, usually in pixels or CSS length units (e.g., rem ) (leave empty\nfor auto-width).\nwidth : width of the image, usually in pixels or CSS length units (e.g., rem ) (leave empty\nfor auto-width).\n`width`\n`rem`\n- height : height of the image, usually in pixels or CSS length units (e.g., rem ) (leave empty\nfor auto-height).\nheight : height of the image, usually in pixels or CSS length units (e.g., rem ) (leave empty\nfor auto-height).\n`height`\n`rem`\n- class : CSS classes applied on the img tag; Bootstrap classes are available.\nclass : CSS classes applied on the img tag; Bootstrap classes are available.\n`class`\n`img`\n- alt : alternative text of the image\nalt : alternative text of the image\n`alt`\n- style : style attribute; it allows you to override styles more freely than with Bootstrap classes .\nstyle : style attribute; it allows you to override styles more freely than with Bootstrap classes .\n`style`\nThese attributes must contain strings, i.e., text enclosed within quotes within quotes, e.g., t-options-width=\"'64px'\" (or, alternatively, a valid Python expression).\n`t-options-width=\"'64px'\"`\nThe image widget cannot be used on an img tag. Instead, set the t-field directive on a span (for inline content) or div (for block content) node.\n`img`\n`t-field`\n`span`\n`div`\nFor example, letâs add a column with the product image in the quotation table:\nThe t-options-width attribute restricts the image width to 64 pixels, and the Bootstrap classes\nused in t-options-class create a thumbnail-like border with rounded corners and a shadow.\n`t-options-width`\n`t-options-class`", "headings": ["Default layout", "Creating new PDF reports", "Editing PDF reports", "Options", "Report editor", "Editing the reportâs XML"], "doc_id": "d8268a0772f60eb3"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/studio/views.html", "title": "Views", "module": "studio", "section": "Views", "text": "# Views\n\nViews are the interface that allows displaying the data contained in a model . One model can have several views, which are simply different ways to show\nthe same data. In Studio, views are organized into four categories: general , multiple records , timeline , and reporting .\n- To change the default view of a model, access Studio , go to Views , click the ( ellipsis ) icon next to the\ndesired view, and click Set as Default .\nTo change the default view of a model, access Studio , go to Views , click the ( ellipsis ) icon next to the\ndesired view, and click Set as Default .\n- You can modify views using the built-in XML editor: Activate the Developer mode , go to the view you want to edit, select the View tab, and\nclick </> XML . Important If you are editing a view using the XML editor, avoid making changes directly to standard\nand inherited views, as these would be reset and lost during updates or module upgrades.\nAlways make sure you select the right Studio inherited views: When you modify a\nview in Studio by dragging and dropping a new field, for example, a specific Studio\ninherited view and its corresponding XPath, which defines the modified part of the view, are\nautomatically generated.\nYou can modify views using the built-in XML editor: Activate the Developer mode , go to the view you want to edit, select the View tab, and\nclick </> XML .\nIf you are editing a view using the XML editor, avoid making changes directly to standard\nand inherited views, as these would be reset and lost during updates or module upgrades.\nAlways make sure you select the right Studio inherited views: When you modify a\nview in Studio by dragging and dropping a new field, for example, a specific Studio\ninherited view and its corresponding XPath, which defines the modified part of the view, are\nautomatically generated.\n\n## General views\n\nThe settings described below are found under the viewâs View tab unless specified\notherwise.\n\n### Form\n\nThe Form view is used when creating and editing records, such as\ncontacts, sales orders, products, etc.\n- To structure a form, drag and drop the Tabs and Columns element found under the + Add tab.\nTo structure a form, drag and drop the Tabs and Columns element found under the + Add tab.\n- To prevent users from creating, editing, or deleting records, untick Can Create , Can Edit , or Can Delete .\nTo prevent users from creating, editing, or deleting records, untick Can Create , Can Edit , or Can Delete .\n- To add a button, click Add a button at the top of the form, enter a Label ,\nand select the buttonâs action: Run a Server Action : select the server action to\nbe executed from the dropdown list; Call a method : specify an existing Python method already defined in Odoo.\nTo add a button, click Add a button at the top of the form, enter a Label ,\nand select the buttonâs action:\n- Run a Server Action : select the server action to\nbe executed from the dropdown list;\nRun a Server Action : select the server action to\nbe executed from the dropdown list;\n- Call a method : specify an existing Python method already defined in Odoo.\nCall a method : specify an existing Python method already defined in Odoo.\n- To change a buttonâs label or style, click the button and edit its Label or Class (either btn-primary or btn-secondary ) in the Properties tab.\nTo change a buttonâs label or style, click the button and edit its Label or Class (either btn-primary or btn-secondary ) in the Properties tab.\n`btn-primary`\n`btn-secondary`\n- To add a smart button, click the ( plus ) icon in the top-right\ncorner of the form. Enter a Label , choose an Icon , and select a related field .\nTo add a smart button, click the ( plus ) icon in the top-right\ncorner of the form. Enter a Label , choose an Icon , and select a related field .\n\n### Activity\n\nThe Activity view is used to schedule and have an overview of\nactivities (emails, calls, etc.) linked to records.\nThis view can only be modified within Studio by editing the XML code.\n\n### Search\n\nThe Search view is added on top of other views to filter, group, and\nsearch records.\n- To add custom Filters and structure them using Separators , go to the + Add tab and drag and drop them under Filters .\nTo add custom Filters and structure them using Separators , go to the + Add tab and drag and drop them under Filters .\n- To add an existing field under the search dropdown menu, go to the + Add tab and\ndrag and drop it under Autocompletion Fields .\nTo add an existing field under the search dropdown menu, go to the + Add tab and\ndrag and drop it under Autocompletion Fields .\n\n## Multiple records views\n\nThe settings described below are found under the viewâs View tab unless specified\notherwise.\n\n### Kanban\n\nThe Kanban view is often used to support business flows by moving\nrecords across stages or as an alternative way to display records inside cards .\nIf the Kanban view exists, it is used by default to display data on mobile devices\ninstead of the List view .\n- To prevent users from creating new records, untick Can Create .\nTo prevent users from creating new records, untick Can Create .\n- To create records directly within the view, in a minimalistic form, enable Quick\nCreate .\nTo create records directly within the view, in a minimalistic form, enable Quick\nCreate .\n- To set a default grouping for records, select a field under Default Group By .\nTo set a default grouping for records, select a field under Default Group By .\n\n### List\n\nThe List view is used to overview many records at once, look for\nrecords, and edit simple records.\n- To prevent users from creating, editing, or deleting records, untick Can Create , Can Edit , or Can Delete .\nTo prevent users from creating, editing, or deleting records, untick Can Create , Can Edit , or Can Delete .\n- To create and edit records directly within the view, select either Add record at the\nbottom , Add record on top or Open form view under When Creating Record . Note This prevents users from opening records in Form view from the List view.\nTo create and edit records directly within the view, select either Add record at the\nbottom , Add record on top or Open form view under When Creating Record .\nThis prevents users from opening records in Form view from the List view.\n- To edit several records at once, tick Enable Mass Editing .\nTo edit several records at once, tick Enable Mass Editing .\n- To change the way records are sorted by default, select a field under Sort By .\nTo change the way records are sorted by default, select a field under Sort By .\n- To set a default grouping for records, select a field under Default Group By .\nTo set a default grouping for records, select a field under Default Group By .\n- To add a button, click Add a button at the top of the list, enter a Label ,\nand select the buttonâs action: Run a Server Action : select the server action to\nbe executed from the dropdown list; Call a method : specify an existing Python method already defined in Odoo.\nTo add a button, click Add a button at the top of the list, enter a Label ,\nand select the buttonâs action:\n- Run a Server Action : select the server action to\nbe executed from the dropdown list;\nRun a Server Action : select the server action to\nbe executed from the dropdown list;\n- Call a method : specify an existing Python method already defined in Odoo.\nCall a method : specify an existing Python method already defined in Odoo.\nTo add a ( drag handle ) icon to reorder records manually, add an Integer field with the Handle widget.\n\n### Map\n\nThe Map view is used to display records on a map. For example, it\nis used in the Field Service app to plan an itinerary between different tasks.\nA Many2One field linked to the Contact model\nis required to activate the view, as the contact address is used to position records on the map.\n- To select which kind of contact should be used on the map, select it under Contact\nField .\nTo select which kind of contact should be used on the map, select it under Contact\nField .\n- To hide the name or the address of the record, tick Hide Name or Hide\nAddress .\nTo hide the name or the address of the record, tick Hide Name or Hide\nAddress .\n- To add information from other fields, select them under Additional Fields .\nTo add information from other fields, select them under Additional Fields .\n- To have a route suggested between the different records, tick Enable Routing and\nselect which field should be used to sort records for the routing.\nTo have a route suggested between the different records, tick Enable Routing and\nselect which field should be used to sort records for the routing.\n\n## Timeline views\n\n- When you first activate one of the timeline views, you need to select which Date or Date & Time fields on your model should be used to define when the\nrecords start and stop in order to display them on the view. You can modify the Start Date Field and Stop Date Field after activating the view.\nWhen you first activate one of the timeline views, you need to select which Date or Date & Time fields on your model should be used to define when the\nrecords start and stop in order to display them on the view. You can modify the Start Date Field and Stop Date Field after activating the view.\n- The settings described below are found under the viewâs View tab unless specified\notherwise.\nThe settings described below are found under the viewâs View tab unless specified\notherwise.\n\n### Calendar\n\nThe Calendar view is used to overview and manage records inside a\ncalendar.\n- To create records directly within the view instead of opening the Form view , enable Quick Create . Note This only works on specific models that can be quick-created using only a name . However,\nmost models do not support quick creation and open the Form view to fill in the\nrequired fields.\nTo create records directly within the view instead of opening the Form view , enable Quick Create .\nThis only works on specific models that can be quick-created using only a name . However,\nmost models do not support quick creation and open the Form view to fill in the\nrequired fields.\n- To color records on the calendar, select a field under Color . All the records sharing\nthe same value for that field are displayed using the same color. Note As the number of colors is limited, the same color can end up being assigned to different\nvalues.\nTo color records on the calendar, select a field under Color . All the records sharing\nthe same value for that field are displayed using the same color.\nAs the number of colors is limited, the same color can end up being assigned to different\nvalues.\n- To display events lasting the whole day at the top of the calendar, select a Checkbox field that specifies if the event lasts the whole day.\nTo display events lasting the whole day at the top of the calendar, select a Checkbox field that specifies if the event lasts the whole day.\n- To choose the default time scale used to display events, select Day , Week , Month , or Year under Default Display Mode .\nTo choose the default time scale used to display events, select Day , Week , Month , or Year under Default Display Mode .\nYou can also use a Delay Field to display the duration of the event in hours by\nselecting a Decimal or Integer field on the model which specifies the duration of the\nevent. However, if you set an End Date Field , the Delay Field will not be\ntaken into account.\n\n### Cohort\n\nThe Cohort view is used to examine the life cycle of records over\na time period. For example, it is used in the Subscriptions app to view the subscriptionsâ retention\nrate.\n- To display a measure (i.e., the aggregated value of a given field) by default on the view, select\na Measure Field .\nTo display a measure (i.e., the aggregated value of a given field) by default on the view, select\na Measure Field .\n- To choose which time interval is used by default to group results, select Day , Week , Month , or Year under Interval .\nTo choose which time interval is used by default to group results, select Day , Week , Month , or Year under Interval .\n- To change the cohort Mode , select either Retention the percentage\nof records staying over a period of time, it starts at 100% and decreases with time or Churn the percentage of records moving out over a period of time - it starts at\n0% and increases with time .\nTo change the cohort Mode , select either Retention the percentage\nof records staying over a period of time, it starts at 100% and decreases with time or Churn the percentage of records moving out over a period of time - it starts at\n0% and increases with time .\n- To change the way the Timeline (i.e., the columns) progresses, select either Forward (from 0 to +15) or Backward (from -15 to 0). For most purposes,\nthe Forward timeline is used.\nTo change the way the Timeline (i.e., the columns) progresses, select either Forward (from 0 to +15) or Backward (from -15 to 0). For most purposes,\nthe Forward timeline is used.\n\n### Gantt\n\nThe Gantt view is used to forecast and examine the overall progress of\nrecords. Records are represented by a bar under a time scale.\n- To prevent users from creating or editing records, untick Can Create or Can\nEdit .\nTo prevent users from creating or editing records, untick Can Create or Can\nEdit .\n- To fill cells in gray whenever a record should not be created there (e.g., on weekends for\nemployees), tick Display Unavailability . Note The underlying model must support this feature, and support for it cannot be added using\nStudio. It is supported for the Project, Time Off, Planning, and Manufacturing apps.\nTo fill cells in gray whenever a record should not be created there (e.g., on weekends for\nemployees), tick Display Unavailability .\nThe underlying model must support this feature, and support for it cannot be added using\nStudio. It is supported for the Project, Time Off, Planning, and Manufacturing apps.\n- To show a total row at the bottom, tick Display Total row .\nTo show a total row at the bottom, tick Display Total row .\n- To collapse multiple records in a single row, tick Collapse First Level .\nTo collapse multiple records in a single row, tick Collapse First Level .\n- To choose which way records are grouped by default on rows (e.g., per employee or project), select\na field under Default Group by .\nTo choose which way records are grouped by default on rows (e.g., per employee or project), select\na field under Default Group by .\n- To define a default time scale to view records, select Day , Week , Month , or Year under Default Scale .\nTo define a default time scale to view records, select Day , Week , Month , or Year under Default Scale .\n- To color records on the view, select a field under Color . All the records sharing the\nsame value for that field are displayed using the same color. Note As the number of colors is limited, the same color can be assigned to different values.\nTo color records on the view, select a field under Color . All the records sharing the\nsame value for that field are displayed using the same color.\nAs the number of colors is limited, the same color can be assigned to different values.\n- To specify with which degree of precision each time scale should be divided by, select Quarter Hour , Half Hour , or Hour under Day\nPrecision , Half Day or Day under Week Precision , and Month Precision .\nTo specify with which degree of precision each time scale should be divided by, select Quarter Hour , Half Hour , or Hour under Day\nPrecision , Half Day or Day under Week Precision , and Month Precision .\n\n## Reporting views\n\nThe settings described below are found under the viewâs View tab unless specified\notherwise.\n\n### Pivot\n\nThe Pivot view is used to explore and analyze the data contained\nin records in an interactive manner. It is especially useful to aggregate numeric data, create\ncategories, and drill down the data by expanding and collapsing different levels of data.\n- To access all records whose data is aggregated under a cell, tick Access records from\ncell .\nTo access all records whose data is aggregated under a cell, tick Access records from\ncell .\n- To divide the data into different categories, select field(s) under Column grouping , Row grouping - First level , or Row grouping - Second level .\nTo divide the data into different categories, select field(s) under Column grouping , Row grouping - First level , or Row grouping - Second level .\n- To add different types of data to be measured using the view, select a field under Measures .\nTo add different types of data to be measured using the view, select a field under Measures .\n- To display a count of records that made up the aggregated data in a cell, tick Display\ncount .\nTo display a count of records that made up the aggregated data in a cell, tick Display\ncount .\n\n### Graph\n\nThe Graph view is used to showcase data from records in a bar,\nline, or pie chart.\n- To change the default chart, select Bar , Line , or Pie under Type .\nTo change the default chart, select Bar , Line , or Pie under Type .\n- To choose a default data dimension (category), select a field under First dimension and, if needed, another under Second dimension .\nTo choose a default data dimension (category), select a field under First dimension and, if needed, another under Second dimension .\n- To select a default type of data to be measured using the view, select a field under Measure .\nTo select a default type of data to be measured using the view, select a field under Measure .\n- For Bar and Line charts only : To sort the different data categories by their value, select Ascending (from lowest to highest value) or Descending (from highest to\nlowest) under Sorting .\nFor Bar and Line charts only : To sort the different data categories by their value, select Ascending (from lowest to highest value) or Descending (from highest to\nlowest) under Sorting .\n- For Bar and Pie charts only : To access all records whose data is aggregated under a data\ncategory on the chart, tick Access records from graph .\nFor Bar and Pie charts only : To access all records whose data is aggregated under a data\ncategory on the chart, tick Access records from graph .\n- For Bar charts only : When using two data dimensions (categories), display the two columns on top\nof each other by default by ticking Stacked graph .\nFor Bar charts only : When using two data dimensions (categories), display the two columns on top\nof each other by default by ticking Stacked graph .", "headings": ["General views", "Form", "Activity", "Search", "Multiple records views", "Kanban", "List", "Map", "Timeline views", "Calendar", "Cohort", "Gantt", "Reporting views", "Pivot", "Graph"], "doc_id": "5dde678c9842388a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/ecommerce.html", "title": "eCommerce", "module": "ecommerce", "section": "eCommerce", "text": "# eCommerce\n\nRun a modern open-source online store with Odoo eCommerce. Learn how to sell online, promote\nproducts and increase your average cart sizes.\nOdoo offers a free custom domain name to all Odoo Online databases\nfor one year. Visitors can then access your website with an address such as www.example.com rather than the default example.odoo.com .\n`www.example.com`\n`example.odoo.com`\n- Website Documentation\nWebsite Documentation\n- Odoo Tutorials: Website\nOdoo Tutorials: Website\n- Odoo Tutorials: eCommerce\nOdoo Tutorials: eCommerce", "headings": [], "doc_id": "141e412583e2c6cc"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/ecommerce/b2b_b2c.html", "title": "B2B and B2C", "module": "ecommerce", "section": "B2B and B2C", "text": "# B2B and B2C\n\nOdoo eCommerce is designed to fulfill the needs of both B2B and B2C companies. It allows you to\nconfigure prices , manage access for specific\ncustomers, and customize the website to support B2B,\nB2C, or both business models.\n\n## Prices\n\nWhile B2C businesses sell directly to the end consumer with a tax-included price, B2B businesses usually exclude taxes and may even prefer to hide prices altogether, showcasing\nonly their products instead.\nTo configure a B2B-specific ecommerce shop, make sure the Tax-Excluded option is enabled, and complete the configuration to hide the\npricing .\nTo make sure that only customers with an account and granted access can see the prices, go to Website ⣠eCommerce ⣠Customers , click the (dropdown) icon from the search bar, and select the Archived filter.\nThen click the Public user card, go to the Sales & Purchase tab, and\nadd the zero-priced pricelist configured to cover all countries . Keep the Public User contact Archived at all times. Website visitors now see the products without prices, while only customers with an account invitation and an assigned pricelist can view the pricing in the customer portal.\n- B2B (tax excluded) and B2C (tax included) pricing\nB2B (tax excluded) and B2C (tax included) pricing\n- Discounts\n\n## Access request\n\nWhen running a B2B business, you usually hide the pricing on the\nweb shop and make it available for logged-in users only. To prevent anyone from signing up freely, set the Customer Account setting option to On invitation .\nTo create a page where customers request access, open the website editor , create a form , customize it, and in\nthe Action field, select Create a customer .\nYou can assign tags created on a contact form under Website ⣠Configuration\n⣠Customers to identify what kind of customers have submitted the form. To do so, select\na field in the form while in Edit mode, click the + Field button under\nthe Customize tab, and set the fieldâs Type to Tags .\nToggle the tags that should be automatically assigned when a customer fills in the form and set\nthe fieldâs Visibility to Hidden .\nWhen a customer submits the form, a new contact is automatically created in the database. The\ncontact is assigned the first pricelist from the list of available pricelists, and, if applicable,\nthe specified tags.\nSubmitted requests can be found under the Website ⣠eCommerce ⣠Customers .\nSelect the customer you want to grant portal access to. Once done, the selected customer is able to\nview the B2B prices and products. Make sure the correct pricelist is assigned to their\ncontact form.\n- It is also possible to hide the entire shop from the public using the Ecommerce Access setting and only make it available for logged-in\ncustomers.\nIt is also possible to hide the entire shop from the public using the Ecommerce Access setting and only make it available for logged-in\ncustomers.\n- Configure the checkout policy to\nallow/disallow guest checkout for B2C businesses.\nConfigure the checkout policy to\nallow/disallow guest checkout for B2C businesses.\n- Enable the Shared Customer Accounts feature to allow customers to use the same account on all your websites.\nEnable the Shared Customer Accounts feature to allow customers to use the same account on all your websites.\n\n## Multiple websites\n\nSettings are website-specific, which means it is possible to configure different behaviors for\neach website. For example, you can set up a B2C website that allows guest checkout and displays tax-included prices , and a B2B website that requires sign-in and shows tax-excluded prices . However, each pricelist can only be assigned to one website at a time. If you want to use\nthe same pricelist on several websites, duplicate the pricelist and assign each copy to its\ncorresponding website.\nIf you are running a B2B and B2C business, we strongly recommend to create two separate\nwebsites and assign a zero-priced pricelist to the B2B website and a regular pricelist to the B2C website.\nIn case, you prefer using a single website, configure it using country groups and assigning pricelists to customers, and deactivate the Selectable option.\n\n## Additional features\n\n### Invoice\n\nDepending on the type of business (B2B or B2C), you might want to issue an invoice. An invoice can\neither be generated automatically (for B2B) or on demand of the customer (for B2C). This process\ncan be automated if (and when) the online payment is confirmed .\nTo automate invoicing, enable the Automatic Invoice setting. If this\nfeature has not been enabled, the customer only receives an order confirmation.\n\n### B2B fields at checkout\n\nUse the Show B2B fields toggle in the website editor to display B2B-specific additional fields like VAT or Company Name during the delivery step.", "headings": ["Prices", "Access request", "Multiple websites", "Additional features", "Invoice", "B2B fields at checkout"], "doc_id": "73016e880d494ee5"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/ecommerce/checkout.html", "title": "Ordering and checkout", "module": "ecommerce", "section": "Ordering and checkout", "text": "# Ordering and checkout\n\nOdoo eCommerce provides several options to organize the ordering and checkout process. It offers\ndifferent order button options and sequential checkout steps , some of which support additional features. The\nrelated buttons and checkout pages can be customized using the website editor.\n\n## Order buttons\n\nTo customize the ordering process in Odoo eCommerce, you can:\n- change the Add to Cart buttonâs behavior,\nchange the Add to Cart buttonâs behavior,\n- replace it with a customized button,\nreplace it with a customized button,\n- add a Buy now button, and\nadd a Buy now button, and\n- add an Order again button to the customer portal.\nadd an Order again button to the customer portal.\n\n### Add to cart options\n\n#### Default add to cart behavior\n\nWhen clicking the Add to cart button, different actions can be triggered. To configure\nthem, go to Website ⣠Configuration ⣠Settings , scroll down to the Shop - Checkout Process section, and select one of the following options:\n- Stay on Product Page : The customer remains on the productâs page.\nStay on Product Page : The customer remains on the productâs page.\n- Go to cart : The customer is immediately redirected to the cart.\nGo to cart : The customer is immediately redirected to the cart.\n- Let the user decide (dialog) : The customer can choose if they want to go to the cart\n( Proceed to Checkout ) or if they prefer to stay on the product page\n( Continue Shopping ).\nLet the user decide (dialog) : The customer can choose if they want to go to the cart\n( Proceed to Checkout ) or if they prefer to stay on the product page\n( Continue Shopping ).\nThis dialog box always appears regardless of the configuration to suggest optional products , if any.\n\n#### Button customization\n\nYou can replace the Add to Cart button with a Contact Us button, which\nredirects users to the default contact form.\nRemoving the ability to add products to the cart is often used by businesses that want to display\nan online catalog but cannot share prices publicly (e.g., to offer custom or variable pricing).\nTo display the Contact Us button and a note saying Not Available For Sale , you need\nto hide your prices on your product page.\n`NotAvailableForSale`\nThe Contact Us button label, URL, and the Not Available For Sale text beneath the\nproduct title and description can be modified on the productâs page while in Edit mode.\n\n#### Additional add to cart buttons\n\nYou can add additional Add to Cart buttons and link them to specific products on any\nwebsite page.\nTo add them, open the website editor and place the Add to Cart Button inner content\nbuilding block. Once placed, click the button, scroll to the Add to Cart Button section, and configure the following:\n- Product : Select the product to link the button with.\nProduct : Select the product to link the button with.\n- Action : Choose if it should be an Add to Cart or Buy Now button.\nAction : Choose if it should be an Add to Cart or Buy Now button.\n- If the product has variants, either choose one or leave the option on Visitorâs\nChoice , which prompts the customer to select a variant and then to Proceed to\nCheckout or Continue Shopping .\nIf the product has variants, either choose one or leave the option on Visitorâs\nChoice , which prompts the customer to select a variant and then to Proceed to\nCheckout or Continue Shopping .\n- The default Add to Cart button does not offer those options, but its label can be\nchanged.\nThe default Add to Cart button does not offer those options, but its label can be\nchanged.\nWhile in Edit mode, it is also possible to show or hide the ( cart ) icon in the pageâs header. Click the header and then the ( cart ) button next to the Show Empty option\nunder the Customize tab.\n\n### Buy now\n\nTo let customers choose to go to the review order step\ndirectly, you can add an additional Buy now button. To do so, go to Website ⣠Configuration ⣠Settings . Under the Shop - Checkout\nProcess section, tick the Buy Now feature.\nAlternatively, enable the feature by going to any productâs page while in Edit mode\nand, in the Customize tab, clicking the Buy Now button\nnext to the Cart options.\n\n### Re-order from portal\n\nYou can let customers re-order items from previous sales orders from their customer portal using the Order Again button. To add it, go to Website ⣠Configuration â£\nSettings . Under the Shop - Checkout Process section, tick the Re-order From\nPortal feature.\n\n## Checkout steps\n\nDuring the checkout process, customers are taken through the following steps:\n- Review order\n- Delivery\n- Extra info (if enabled)\nExtra info (if enabled)\n- Payment\n- Order confirmation\nEach step can be customized using the website editor by adding building blocks or opening the Customize tab to enable various\ncheckout options.\nContent added through building blocks is specific to each step.\nRestrict access to the shop and checkout for specific customers, e.g., in a B2B business setup.\n\n### Review order\n\nThe Review Order step allows customers to see the items they added to their cart, adjust\nquantities, or Remove products. Information related to the product prices and taxes\napplied are also displayed. Customers can then click the Checkout button to continue to\nthe Delivery step.\nOpen the website editor to enable checkout options such\nas:\n- Suggested Accessories : to showcase accessory products ;\nSuggested Accessories : to showcase accessory products ;\n- Promo Code : to allow customers to redeem gift cards or apply discount codes ;\nPromo Code : to allow customers to redeem gift cards or apply discount codes ;\n- Add to Wishlist : Enable wishlists to allow\nsigned-in users to remove a product from their cart and add it to their wishlist using the Save for later option.\nAdd to Wishlist : Enable wishlists to allow\nsigned-in users to remove a product from their cart and add it to their wishlist using the Save for later option.\n- If a fiscal position is detected\nautomatically, the product tax is determined based on the customerâs IP address.\nIf a fiscal position is detected\nautomatically, the product tax is determined based on the customerâs IP address.\n- If the installed payment provider supports express checkout , a dedicated button is displayed,\nallowing customers to go straight from the cart to the confirmation page without filling out\nthe contact form.\nIf the installed payment provider supports express checkout , a dedicated button is displayed,\nallowing customers to go straight from the cart to the confirmation page without filling out\nthe contact form.\n\n### Delivery\n\nOnce they have reviewed their order:\n- Unsigned-in customers are prompted to Sign in or enter their Email\naddress , along with their delivery address and phone details;\nUnsigned-in customers are prompted to Sign in or enter their Email\naddress , along with their delivery address and phone details;\n- Signed-in customers can select the appropriate Delivery address .\nSigned-in customers can select the appropriate Delivery address .\nThey can then choose a delivery method , select or enter their Billing\nAddress (or toggle the Same as delivery address switch if the billing and delivery\naddresses are identical), and click Confirm to proceed to the next step.\n- For B2B customers, you can also enable optional B2B fields in the website editor.\nFor B2B customers, you can also enable optional B2B fields in the website editor.\n- You can add a checkbox for users without an account to sign up for a newsletter. To do so, go\nto Website ⣠Configuration ⣠Settings . Under the Shop -\nCheckout Process section, enable the Newsletter feature and select a Newsletter List .\nYou can add a checkbox for users without an account to sign up for a newsletter. To do so, go\nto Website ⣠Configuration ⣠Settings . Under the Shop -\nCheckout Process section, enable the Newsletter feature and select a Newsletter List .\n\n### Extra info\n\nYou can add an Extra Info step in the checkout process to collect additional customer\ninformation through an online form, which is then included in the sales order . To do so, enable the Extra\nStep option in the website editor. The form can be customized as needed.\nAlternatively, go to Website ⣠Configuration ⣠Settings , scroll to the Shop - Checkout Process section, enable Extra Step During Checkout , and\nclick Save . Click Configure Form to customize it.\n\n### Payment\n\nAt the Payment step, customers Choose a payment method , enter their payment\ndetails, and click Pay now .\nYou can require customers to agree to your terms and conditions before payment. To enable this option, go to the website editor and toggle the Accept Terms & Conditions feature.\nEnable the developer mode and click the ( bug )\nicon to display an availability report for payment\nproviders and payment methods, which helps diagnose potential availability issues on the payment\nform.\n\n### Order confirmation\n\nThe final step of the checkout process is the Order confirmation , which provides a\nsummary of the customerâs purchase details.\nOrder handling documentation", "headings": ["Order buttons", "Add to cart options", "Buy now", "Re-order from portal", "Checkout steps", "Review order", "Delivery", "Extra info", "Payment", "Order confirmation"], "doc_id": "1b6bb804f071998a"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/ecommerce/customer_accounts.html", "title": "Customer accounts", "module": "ecommerce", "section": "Customer accounts", "text": "# Customer accounts\n\nUsing customer accounts for an ecommerce shop enables you to manage customers , control access to the shop , the checkout , or the customer portal ,\nand support both B2B and B2C operations .\nAfter logging in, customers can access their customer portal by clicking their username in the top-right corner of the screen and selecting My\nAccount . From there, they can view all their documents in one place, such as quotations, orders,\ninvoices, and more.\nThe customer account page can be customized with building blocks and other features through\nthe website builder .\n\n## Customer account creation\n\nYou can choose whether customer accounts and document access are available to everyone or restricted\nto invited users only. To do so, go to Website ⣠Configuration ⣠Settings ,\nthen scroll down to the Privacy section. Under Customer Account , select one\nof the following options:\n- On invitation : Customers can only create an account if the website owner sends them\nan invitation.\nOn invitation : Customers can only create an account if the website owner sends them\nan invitation.\n- Free sign up : Every website visitor can create an account and sign in. They will\nget access to the portal by default.\nFree sign up : Every website visitor can create an account and sign in. They will\nget access to the portal by default.\nTo send an email invitation to a customer:\n- Go to Website ⣠eCommerce ⣠Customers .\nGo to Website ⣠eCommerce ⣠Customers .\n- Select a customer or click New to create one, ensuring an Email address\nis set.\nSelect a customer or click New to create one, ensuring an Email address\nis set.\n- Click the (Actions) icon next to the recordâs name at the top-left and\nselect Grant portal access .\nClick the (Actions) icon next to the recordâs name at the top-left and\nselect Grant portal access .\n- In the Portal Access Management pop-up, click Grant Access to send the\ninvitation.\nIn the Portal Access Management pop-up, click Grant Access to send the\ninvitation.\nTo invite multiple customers at once, switch to the customers List view, select several customers, click the Actions button, and select Grant portal access .\nOnce done, the customer(s) receive an email confirming their account creation, including\ninstructions on setting a password and activating their account.\n- When selecting the Free sign up , a clickable Donât have an account? link appears under the login form on the website.\nWhen selecting the Free sign up , a clickable Donât have an account? link appears under the login form on the website.\n- The On invitation option is especially useful for B2B businesses that prefer to keep prices hidden on the website and grant access only to invited customers.\nThe On invitation option is especially useful for B2B businesses that prefer to keep prices hidden on the website and grant access only to invited customers.\nIt is possible to configure a website form with a Create a Customer action to automatically create a customer record in the backend when\nfilled in.\n\n## Access restriction\n\nOnce a customer account is created, it is still possible to adjust the access rights\neither globally or for individual users:\n- Revoke access or re-invite a customer using the related buttons in the Portal Access Management pop-up.\nRevoke access or re-invite a customer using the related buttons in the Portal Access Management pop-up.\n- Restrict access to the shop ;\nRestrict access to the shop ;\n- Decide whether customers need to create an account to complete the checkout .\nDecide whether customers need to create an account to complete the checkout .\nIt is also possible to define the types of documents customers have access to. To do so, click\nyour username in the upper-right corner of the website, select My Account and open\nthe website builder . On the Customize tab, enable or\ndisable access to specific documents as needed.\n\n### Shop access\n\nTo restrict access to the entire online shop for users who are not logged-in, go to Website ⣠Configuration ⣠Settings , scroll to Privacy and under Ecommerce Access , select Logged in users . Select All users if\nthe shop should be visible to every website visitor.\nTo restrict access to the shopâs pricing, use pricelists with country groups .\n\n### Checkout access\n\nTo allow customers to checkout as guests or force them to sign in/create an account, go to Website ⣠Configuration ⣠Settings , scroll down to the Shop -\nCheckout Process section, and configure the Sign in/up at checkout setting. The\nfollowing options are available:\n- Optional : Customers can check out as guests and register later via the order\nconfirmation email to track their order.\nOptional : Customers can check out as guests and register later via the order\nconfirmation email to track their order.\n- Disabled (buy as guest) : Customers can checkout as guests without creating an account.\nDisabled (buy as guest) : Customers can checkout as guests without creating an account.\n- Mandatory (no guest checkout) : Customers must sign in or create an account at the Review Order step to complete their purchase.\nMandatory (no guest checkout) : Customers must sign in or create an account at the Review Order step to complete their purchase.\n- Settings are specific to each website, allowing you to configure a B2C website with guest\ncheckout and a B2B website that requires customers to sign in.\nSettings are specific to each website, allowing you to configure a B2C website with guest\ncheckout and a B2B website that requires customers to sign in.\n- To use the wishlist feature, customers must\ncreate an account to save their favorite items for later.\nTo use the wishlist feature, customers must\ncreate an account to save their favorite items for later.\n\n## Multi-website account\n\nWhen managing multiple websites, it is possible to make customer accounts available across all websites, allowing each customer to use a single account. To do so, go to Website\n⣠Configuration ⣠Settings , in the Privacy section, enable the Shared\nCustomer Accounts option.\nWhen operating both B2B and B2C online shops , it is\nrecommended to use separate websites for each business model.", "headings": ["Customer account creation", "Access restriction", "Shop access", "Checkout access", "Multi-website account"], "doc_id": "dedecc122662219e"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/ecommerce/order_handling.html", "title": "Order handling", "module": "ecommerce", "section": "Order handling", "text": "# Order handling\n\nWhen a customer orders on your eCommerce, there are three record types required to be handle in\nOdoo:\n- Sales orders ;\n- Delivery orders ;\n- Invoices & legal requirements .\nInvoices & legal requirements .\n\n## Sales orders\n\n### Order and payment status\n\nThe first step when a customer adds a product to his cart is the creation of a quotation. Orders can\nbe managed either from the Website or Sales app. eCommerce\norders can automatically be assigned to a specific sales team by going to Website\n⣠Configuration ⣠Settings . In the Shop - Checkout Process section, select a Sales Team or Salesperson to handle eCommerce orders.\nOrders can be found under Website ⣠eCommerce ⣠Orders/Unpaid Orders . Each\norder goes through a different status:\n- Quotation : a new product is added to the cart, but the customer has not gone through the\ncheckout process yet;\nQuotation : a new product is added to the cart, but the customer has not gone through the\ncheckout process yet;\n- Quotation sent : the customer has gone through the checkout process and confirmed the order,\nbut the payment is not yet confirmed;\nQuotation sent : the customer has gone through the checkout process and confirmed the order,\nbut the payment is not yet confirmed;\n- Order : the customer has gone through the checkout process, confirmed the order, and the\npayment is received.\nOrder : the customer has gone through the checkout process, confirmed the order, and the\npayment is received.\n\n### Abandoned cart\n\nAn abandoned cart represents an order for which the customer did not finish the checkout\nconfirmation process. For these orders, it is possible to send an email reminder to the\ncustomer automatically. To enable that feature, go to Website ⣠Configuration â£\nSettings and in the Email & Marketing section, enable Automatically send\nabandoned checkout emails . Once enabled, you can set the time-lapse after which the email is\nsent and customize the email template used.\nFor abandoned cart emails, the customer must either have entered their contact details during the\ncheckout process; or be logged-in when they added the product to their cart.\n\n## Delivery orders\n\n### Delivery flow\n\nOnce a quotation has been confirmed, a delivery order is automatically created. The next step is to\nprocess this delivery.\nPacking eCommerce orders usually requires picking the product, preparing the packaging, printing the\nshipping label(s) and shipping to the customer. Depending on the number of orders, strategy, or\nresources, those steps can be considered as one or multiple actions in Odoo.\nAn automatic email can be sent to the customer when the transfer status in Odoo is âdoneâ. To do so,\nenable the feature in the settings of the Inventory app.\nIf customers are allowed to pay when picking up their order in stores or by wire transfer, the\nquotation is not be confirmed and the stock is not be reserved. Orders must be confirmed\nmanually to reserve products in stock.\n- Shipping cost invoicing\nShipping cost invoicing\n- Print shipping labels\nPrint shipping labels\n- Multi-package shipments\nMulti-package shipments\n\n### Returns and refunds\n\nCustomers can only return an order through an online form. It may not be possible to return products\ndepending on the return strategy or type of product.\nFull refunds can be directly sent to customers from within the order interface. A refund-compatible\npayment provider needs to be enabled first.\n- Returns and refunds\n- After-Sales services\n- Online payments\n\n## Invoice and legal requirements\n\nThe final step of an ecommerce order is to generate the invoice and send it to the customer.\nDepending on your needs, an invoice can either be generated automatically or on demand of the\ncustomer. This process can be automated if (and when) the online payment is confirmed .\nTo automate invoicing, go to Website ⣠Configuration ⣠Settings and in the Invoicing section, enable Automatic Invoice .", "headings": ["Sales orders", "Order and payment status", "Abandoned cart", "Delivery orders", "Delivery flow", "Returns and refunds", "Invoice and legal requirements"], "doc_id": "38265181ace85ff6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/ecommerce/payments.html", "title": "Payment providers", "module": "ecommerce", "section": "Payment providers", "text": "# Payment providers\n\nOdoo supports a multitude of online payment providers for your website, allowing your\ncustomers to pay with their preferred payment methods.\n- Use eWallets and gift cards\nUse eWallets and gift cards\n- Ordering and checkout\nOrdering and checkout\n\n## Configuration\n\nTo set up payment providers on the eCommerce app, go to Website ⣠Configuration\n⣠Payment Providers . From here, Activate the payment providers you wish to have\navailable on your shop, and configure them according to your needs.\nAlternatively, you can access payment providers via Website ⣠Configuration\n⣠Settings . In the Shop - Payment section, you can Configure SEPA Direct\nDebit if you wish to use it, as well as View other providers . If you use the Authorize.net payment provider, the Payment Capture Method can be configured in that same menu.\nIf you are using PayPal , you can also enable and\nconfigure it here.\n\n### Checkout payment options\n\nOnce activated, customers can choose the payment provider of their choice during the checkout\nprocess , at the Confirm Order step.\n\n## eWallets and gift cards\n\nWhen checking out, customers can pay with an eWallet or gift cards. To enable these, go to Website ⣠Configuration ⣠Settings , and in the Shop-Products section, enable Discounts, Loyalty & Gift Card .\nOnce enabled, customers can enter their gift card code or pay with their eWallet at the checkout\nstep.\nUse eWallets and gift cards", "headings": ["Configuration", "Checkout payment options", "eWallets and gift cards"], "doc_id": "1661d613d8f70597"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/ecommerce/performance.html", "title": "Performance management", "module": "ecommerce", "section": "Performance management", "text": "# Performance management\n\nOdoo integrates a variety of tools to analyze and improve the performance of your eCommerce\nwebsite.\n\n## Data monitoring\n\nWebsite allows monitoring and analysis of the sales performance of your eCommerce. To access the reporting view , go to Website ⣠Reporting ⣠eCommerce . This dashboard helps\nyou monitor everything related to sales, such as sales performance per product, category, day, etc.\nBy clicking Measures , you can select the type of measurement used, such as:\n- Margin ;\n- Qty Invoiced ;\n- Untaxed Total ;\n- Volume ;\nOther options include multiple views (Pivot, etc.), comparison by periods or years, and directly insert in spreadsheet , etc.\n\n## Analytics\n\nIt is possible to link your Odoo website with Plausible.io and Google Analytics .\n\n## Email queue optimization\n\nFor websites handling flash sales (e.g., event ticket sales) or experiencing high traffic spikes,\norder confirmation emails can become a performance bottleneck, potentially slowing down the checkout\nprocess for other customers.\nTo improve performance, these emails can be queued and processed separately from the order\nconfirmation flow. This is managed by the Sales: Send pending emails scheduled action,\nwhich sends queued emails as soon as possible.\nTo enable asynchronous email sending:\n- Enable the developer mode .\nEnable the developer mode .\n- Go to Apps , remove the Apps filter, and install the Sales\n- Async Emails module.\nGo to Apps , remove the Apps filter, and install the Sales\n- Async Emails module.\n- Go to Settings ⣠Technical ⣠System Parameters and set the sale.async_emails system parameter to True .\nGo to Settings ⣠Technical ⣠System Parameters and set the sale.async_emails system parameter to True .\n`True`\n- Go to Settings ⣠Technical ⣠Scheduled Actions and ensure that the Sales: Send pending emails scheduled action is enabled.\nGo to Settings ⣠Technical ⣠Scheduled Actions and ensure that the Sales: Send pending emails scheduled action is enabled.\nEnabling this feature may delay order confirmation and invoice emails by a few minutes. It is\nrecommended only for high-traffic websites, as it can introduce unnecessary delays for e-commerce\nwebsites with moderate traffic.", "headings": ["Data monitoring", "Analytics", "Email queue optimization"], "doc_id": "4242f922f6b22b98"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/ecommerce/products.html", "title": "Products", "module": "ecommerce", "section": "Products", "text": "# Products\n\nOdoo eCommerce allows you to add products and manage\nyour product pages directly from the Website app. It also\nallows you to add product variants and digital files , translating the product page content, managing stock , and enabling product comparisons .\n\n## Add products\n\n### Create products\n\nTo create a product from the frontend, click + New in the top-right corner, then Product . Enter the Product Name , Sales Price , the default Customer Taxes for local transactions, and Save . You can then update the\nproductâs details, add an image, and customize the product\npage. When you Save , the product page is automatically published.\n- You can also create a product from the backend by going to Website ⣠eCommerce ⣠Products and clicking New .\nYou can also create a product from the backend by going to Website ⣠eCommerce ⣠Products and clicking New .\n- Products created from the frontend are automatically published ,\nwhile products created from the backend are not. To publish a product, click the Go to Website smart button to access the product page, then toggle the switch from Unpublished to Published .\nProducts created from the frontend are automatically published ,\nwhile products created from the backend are not. To publish a product, click the Go to Website smart button to access the product page, then toggle the switch from Unpublished to Published .\nCreate new products using the Barcode Lookup database .\n\n### Import products\n\nTo import product data using XLSX or CSV files,\ngo to Website ⣠eCommerce ⣠Products , click the ( gear ) icon, then Import records .\nTo publish large batches of products, follow these steps:\n- Go to Website ⣠eCommerce ⣠Products .\nGo to Website ⣠eCommerce ⣠Products .\n- Remove the Published filter and switch to the List view.\nRemove the Published filter and switch to the List view.\n- Click the ( dropdown toggle ) icon and enable Is published .\nClick the ( dropdown toggle ) icon and enable Is published .\n- Click the Is Published column to re-order it by published or unpublished products.\nClick the Is Published column to re-order it by published or unpublished products.\n- Select the products to publish by ticking their box.\nSelect the products to publish by ticking their box.\n- In the Is Published column, tick the box for any of the selected products, then Confirm to publish them.\nIn the Is Published column, tick the box for any of the selected products, then Confirm to publish them.\n\n## Product page customization\n\n### Product information\n\nTo add general information about a product, navigate to Website â£\neCommerce ⣠Products and select the product. You can configure the product page from the form\nby adding variants , digital documents , or translating content.\nYou can also add an ecommerce-specific product description to be displayed below\nthe product name on the productâs page. To do so, go to the Sales tab, scroll down to the Ecommerce description section, and add a description. Use Odooâs rich-text editor features to personalize the content.\nClick the Go to Website smart button to return to the frontend productâs page.\n\n### Product presentation\n\nTo customize the product presentation on the website, go to the Shop and click on the\nproduct. Click Edit to customize the page, edit its images or add building blocks .\n- When dragging and dropping a building block on the product page, placing it above or below\nthe top or bottom blue lines makes it visible on all product pages.\nWhen dragging and dropping a building block on the product page, placing it above or below\nthe top or bottom blue lines makes it visible on all product pages.\n- You can edit any text on your website by clicking on it while in Edit mode.\nYou can edit any text on your website by clicking on it while in Edit mode.\nUse the Customize tab to modify the page layout or add features:\n- Terms and Conditions : Toggle the switch to display a link to your terms and conditions on the\nproduct page.\nTerms and Conditions : Toggle the switch to display a link to your terms and conditions on the\nproduct page.\n- Customers : Rating : Allow logged-in portal users to submit product reviews by clicking the\nstars below the productâs name and sharing their experience in the Customer Reviews section at the bottom. Reviews are visible from the product page using the ( plus ) icon next to the Customer Reviews heading or from the product\nformâs chatter. To restrict visibility to internal employees, toggle the Public switch next to the review comment. Share : Add social media and email icon buttons allowing customers to share the\nproduct through those channels.\n- Rating : Allow logged-in portal users to submit product reviews by clicking the\nstars below the productâs name and sharing their experience in the Customer Reviews section at the bottom. Reviews are visible from the product page using the ( plus ) icon next to the Customer Reviews heading or from the product\nformâs chatter. To restrict visibility to internal employees, toggle the Public switch next to the review comment.\nRating : Allow logged-in portal users to submit product reviews by clicking the\nstars below the productâs name and sharing their experience in the Customer Reviews section at the bottom. Reviews are visible from the product page using the ( plus ) icon next to the Customer Reviews heading or from the product\nformâs chatter. To restrict visibility to internal employees, toggle the Public switch next to the review comment.\n- Share : Add social media and email icon buttons allowing customers to share the\nproduct through those channels.\nShare : Add social media and email icon buttons allowing customers to share the\nproduct through those channels.\n- Select Quantity : Toggle the switch to allow customers to select the product quantity\nthey want to purchase.\nSelect Quantity : Toggle the switch to allow customers to select the product quantity\nthey want to purchase.\n- Tax Indication : Toggle the switch to indicate if the price is VAT included or excluded .\nTax Indication : Toggle the switch to indicate if the price is VAT included or excluded .\n- Variants : Show all possible product variants vertically as a Products List or horizontally as selectable Options to compose the variant yourself.\nVariants : Show all possible product variants vertically as a Products List or horizontally as selectable Options to compose the variant yourself.\n- Product Tags : Toggle the switch to display the Product Template Tags on\nthe product page and allow customers to filter products using those tags.\nProduct Tags : Toggle the switch to display the Product Template Tags on\nthe product page and allow customers to filter products using those tags.\n- Cart : Buy Now : Add a Buy Now option to take the customer to\nthe checkout page. Wishlist : Add an Add to wishlist option allowing\nlogged-in customers to save products in a wishlist. Compare : Add a Compare option, allowing customers\nto compare products based on their attributes.\n- Buy Now : Add a Buy Now option to take the customer to\nthe checkout page.\nBuy Now : Add a Buy Now option to take the customer to\nthe checkout page.\n- Wishlist : Add an Add to wishlist option allowing\nlogged-in customers to save products in a wishlist.\nWishlist : Add an Add to wishlist option allowing\nlogged-in customers to save products in a wishlist.\n- Compare : Add a Compare option, allowing customers\nto compare products based on their attributes.\nCompare : Add a Compare option, allowing customers\nto compare products based on their attributes.\n- Specification : Select Bottom of Page to display a detailed list of the\nattributes and their values available for the product. This option only works for products with variants if the Product comparison tool is enabled in the Website Settings .\nSpecification : Select Bottom of Page to display a detailed list of the\nattributes and their values available for the product. This option only works for products with variants if the Product comparison tool is enabled in the Website Settings .\n- Variants , Wishlist , and Compare options must be enabled by going to Website ⣠Configuration ⣠Settings , in the Shop - Products section.\nVariants , Wishlist , and Compare options must be enabled by going to Website ⣠Configuration ⣠Settings , in the Shop - Products section.\n- Enabled functions apply to all product pages.\nEnabled functions apply to all product pages.\n- Products with single values for their attributes do not generate variants but are still\ndisplayed in the Product Specifications .\nProducts with single values for their attributes do not generate variants but are still\ndisplayed in the Product Specifications .\n\n### Product images and videos\n\nTo add more media items, such as images and videos, navigate to the product form , then go to the Sales tab\nand click Add Media under the Ecommerce Media section. In the Select a media pop-up window, go to the Images tab, select an image,\nclick Upload an image or Add URL . Or navigate to the Videos tab,\npaste a video URL or embed code. Once done, click Add .\nTo customize the images or videos, go to the ecommerce product page, click Edit and select the relevant media. In the Customize tab, use the following features:\n- Images Width : Changes the width of the product images displayed on the page.\nImages Width : Changes the width of the product images displayed on the page.\n- Layout : The Carousel layout allows customers to navigate from one image to\nthe next using the ( left arrow ) or ( right arrow ); whereas the Grid displays four images in a square layout.\nLayout : The Carousel layout allows customers to navigate from one image to\nthe next using the ( left arrow ) or ( right arrow ); whereas the Grid displays four images in a square layout.\n- Image Zoom : Select the zoom effect for product images: Magnifier on hover Pop-up on Click , Both , or None .\nImage Zoom : Select the zoom effect for product images: Magnifier on hover Pop-up on Click , Both , or None .\n- Thumbnails : Align thumbnails on the ( Left )\nor at\nthe ( Bottom ).\nThumbnails : Align thumbnails on the ( Left )\nor at\nthe ( Bottom ).\n- Main Image : Click Replace to change the productâs main image.\nMain Image : Click Replace to change the productâs main image.\n- Extra Images : Add more extra images or videos (including via URL) or Remove all .\nExtra Images : Add more extra images or videos (including via URL) or Remove all .\nImages must be in PNG or JPG format, with at least one dimension (height or width) greater than\n1024 pixels to trigger the zoom.\n\n## Products block\n\nThe Products building block is used to\ndisplay a selection of products sold on your website.\nBy default, the block displays the Newest Products . To change which products are shown,\ngo to the Customize tabâs Products section and set the Filter field to Recently Sold Products or Recently Viewed Products .\nIn addition, it is possible to display products from a specific category only using the Category field.\nYou can also filter products by Tags , include Variants , and adjust the\ndisplay by selecting a different Template .\n\n## Product variants\n\nProduct variants are different versions\nof the same product, such as various colors or materials, with potential differences in price and\navailability.\nTo configure product variants for a product:\n- Go to Website ⣠Configuration ⣠Settings .\nGo to Website ⣠Configuration ⣠Settings .\n- Scroll down to the Shop - Products section and enable the Product Variants feature.\nScroll down to the Shop - Products section and enable the Product Variants feature.\n- Access the product forms and go to the Attributes & Variants tab, where you can add attributes and values, allowing\ncustomers to configure and select product variants on the product page. For multiple attributes,\nyou can combine them to create specific variants.\nAccess the product forms and go to the Attributes & Variants tab, where you can add attributes and values, allowing\ncustomers to configure and select product variants on the product page. For multiple attributes,\nyou can combine them to create specific variants.\nTo display or hide an attribute on the Shop page and allow visitors to filter them,\ngo to Website ⣠eCommerce ⣠Attributes , click on the attribute, and select Visible or Hidden in the eCommerce Filter Visibility field.\n- To display the product attributes in the product catalog ,\nset the Attributes feature to Left using the website editor.\nTo display the product attributes in the product catalog ,\nset the Attributes feature to Left using the website editor.\n- To group attributes under the same section when comparing products , go to the eCommerce Category field and either select an existing category or create a\nnew one .\nTo group attributes under the same section when comparing products , go to the eCommerce Category field and either select an existing category or create a\nnew one .\nTwo attribute values are needed to make the filter visible.\n\n## Digital files\n\nYou can link digital files like certificates, eBooks, or user manuals to the products. These\ndocuments are available before payment on\nthe product page or in the customer portal after checkout .\nTo link a digital file to a product, go to the product form and click the Documents smart button. Then, click Upload to upload a file\ndirectly, or for additional options, click New , then Upload your file .\n- You can link a URL instead of a digital file. To do so, click New , go to the Type field, and select URL .\nYou can link a URL instead of a digital file. To do so, click New , go to the Type field, and select URL .\n- To edit an existing file, click the ( dropdown menu ) in the\ntop-right corner of the document card and click Edit .\nTo edit an existing file, click the ( dropdown menu ) in the\ntop-right corner of the document card and click Edit .\n\n### Digital files available before payment\n\nTo make the file available on the product page (before payment), leave the Visibility field blank and toggle the Show on product page switch.\n\n### Digital files available after payment\n\nTo make the file available (after payment), set the Visibility field to Confirmed order and turn off the Show on product page switch.\n\n## Translation\n\nIf multiple languages are available on your website, you can translate a productâs information\ndirectly on the product form . Fields that support multiple\nlanguages are identifiable by their abbreviation language (e.g., EN) next to their field.\nThe eCommerce-related fields to translate are:\n- Product name .\n- Out-of-Stock Message (under the Sales tab).\nOut-of-Stock Message (under the Sales tab).\n- Sales Description (under the Sales tab).\nSales Description (under the Sales tab).\n- Having untranslated content on a web page may be detrimental to the user experience and SEO . You can use the Translate feature to translate the pageâs content.\nHaving untranslated content on a web page may be detrimental to the user experience and SEO . You can use the Translate feature to translate the pageâs content.\n- To check the language(s) of your website, go to Website ⣠Configuration â£\nSettings and go to the Website Info section.\nTo check the language(s) of your website, go to Website ⣠Configuration â£\nSettings and go to the Website Info section.\n\n### Website availability\n\nTo set the productâs website availability, navigate to the product form , go to the Sales tab, and in the eCommerce shop section, select the Website you wish the product to be\navailable on. Leave the field blank to make the product available on all websites.\nYou can make a product available on either one website or all websites, but selecting only some websites is not possible.\n\n## Stock management\n\nTo enable and configure inventory management options, go to Website â£\nConfiguration ⣠Settings , scroll down to the Shop - Products section and the Inventory Defaults sub-section.\n- The Inventory app must be installed to see the inventory management options.\nThe Inventory app must be installed to see the inventory management options.\n- To display the stock level on the product page, the Product Type field must be set\nto Storable in the product form .\nTo display the stock level on the product page, the Product Type field must be set\nto Storable in the product form .\n\n### Inventory\n\nIn the Inventory Defaults sub-section, fill in those fields:\n- Warehouse .\n- Out-of-Stock : Enable Continue Selling to allow customers to place orders\neven when the product is out of stock . Leave the box unchecked to prevent orders .\nOut-of-Stock : Enable Continue Selling to allow customers to place orders\neven when the product is out of stock . Leave the box unchecked to prevent orders .\n- Show Available Qty : Displays the available quantity left under a specified threshold\non the product page. The available quantity is calculated based on the On hand quantity minus the quantity already reserved for outgoing transfers.\nShow Available Qty : Displays the available quantity left under a specified threshold\non the product page. The available quantity is calculated based on the On hand quantity minus the quantity already reserved for outgoing transfers.\n\n## Product comparison\n\nTo allow website visitors to compare products based on their attributes, go to Website ⣠Configuration ⣠Settings , scroll down to the Shop - Products section, and enable Product Comparison Tool .\nThe ( Compare ) icon is now available on each product card on the main\nshop page when customers hover their mouse over it. To compare products, customers can click the ( Compare ) option on the products they want to compare, then click Compare in the pop-up window at the bottom of the page to reach the\ncomparison summary.\n- The Product Comparison Tool is only available for products with attributes .\nThe Product Comparison Tool is only available for products with attributes .\n- Selecting the ( Compare ) option from a product page is also\npossible.\nSelecting the ( Compare ) option from a product page is also\npossible.\n\n## Wishlists\n\nThe Add to wishlist button allows customers to add products\nto their wishlist, i.e., save them for later. To enable it, go to Website â£\nConfiguration ⣠Settings , scroll down to the Shop - Products section, and enable Wishlists . The button is available on each product page and can be disabled in the website editor if needed.\n- You can also display a ( Wishlist ) button when hovering the mouse\nover the product on the shop page .\nYou can also display a ( Wishlist ) button when hovering the mouse\nover the product on the shop page .\n- Customers can move products from their cart to their wishlist by clicking the Save\nfor later button in the Order overview checkout step .\nCustomers can move products from their cart to their wishlist by clicking the Save\nfor later button in the Order overview checkout step .", "headings": ["Add products", "Create products", "Import products", "Product page customization", "Product information", "Product presentation", "Product images and videos", "Products block", "Product variants", "Digital files", "Digital files available before payment", "Digital files available after payment", "Translation", "Website availability", "Stock management", "Inventory", "Product comparison", "Wishlists"], "doc_id": "77fca8666683136c"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/ecommerce/products/catalog.html", "title": "Catalog", "module": "ecommerce", "section": "Catalog", "text": "# Catalog\n\nThe eCommerce catalog displays products for customers to browse. It is organized using product\ncategories, available options, sorting, and navigation paths. Essentially, the eCommerce catalog\nis the shop page of your website.\nThe product catalog includes a top bar , a side panel , and a product listing area . With Odoo, you can customize the layout , filter by categories and attributes , and use additional features according to your needs.\nYou can customize the shop page using the website editor. To access it, go to the shop page,\nclick Edit in the upper-right corner, and navigate to the Customize tab.\n\n## Top bar\n\nThe top bar can include a search bar, a currency selector, sort-by and display options , and category quick access .\n\n### Sort-by search and display options\n\nYou can toggle the Search Bar , display categories and/or attributes , and enable or disable the Sort-By as well as the Layout buttons in\nthe Top Bar .\nThe Sort-by button is toggled by default, and customers can choose between the\nfollowing Default Sort options:\n- Featured\n- Newest Arrivals\n- Name (A-Z)\n- Price - Low to High\n- Price - High to Low\nThe default sort applies to all categories .\nIf you donât want to display a top bar or side panel ,\nyou can disable all related options in the website editor.\n\n## Side panel\n\nThe side panel provides advanced filtering tools to organize your product categories.\nTo further categorize the shop page, you can activate\nvarious filters, such as the attribute filter.\nYou can also add a Datepicker option to display a date range calendar to check\nthe availability of rental products over a specific period. The Rental app must be installed to use this feature.\nIt is also possible to toggle the Collapsible sidebar switch to make the side panel\nmanually collapsible.\nTo use a price range or tags filter, you have to enable attributes first.\n\n## Product categorization in catalog\n\neCommerce categories are used to organize products into groups, making it easier for customers\nto browse the online store.\nTo create eCommerce categories, go to Website ⣠eCommerce â£\neCommerce Categories , and click New . On the category form, add a Name , optionally enter a Parent Category , and write a Category\nDescription , if needed.\nTo use eCommerce categories, go to Website ⣠eCommerce ⣠Products , select\nthe product you wish to modify, go to the Sales tab, navigate to the Ecommerce shop section, and select the Categories it belongs to.\nA single product can belong to multiple eCommerce categories.\nOnce the categories are configured and assigned to the relevant products, go to the main shop page\nand open the website editor. In the Categories option, you can either enable\na menu on the Left , i.e., in the side panel ,\nor on the Top , i.e., in the top bar , or both.\nIf you select the Left category, the option Collapsible Category Recursive appears, allowing you to collapse the category in the side panel.\n\n### Attributes\n\nAttributes refer to characteristics of a product, such as the color or material, whereas\nvariants are the different combinations of attributes. To configure attributes and variants, go to Website ⣠eCommerce ⣠Products , select a product, and click the Attributes & Variants tab. Add as many attributes as desired.\nTo enable attribute filtering, go to your main shop page, then open the website editor, and set\nthe Attributes field to Left ( side panel ) and/or Top ( top bar ).\nWhen attribute filtering is enabled in the top bar, customers must click the ( dropdown toggle ) button to access it.\nWhen enabling Attributes , more options become available:\n- Price Filter : Toggle the switch to display a Price Range bar, which\nallows customers to filter products according to a specific price range by dragging adjustable\nhandles.\nPrice Filter : Toggle the switch to display a Price Range bar, which\nallows customers to filter products according to a specific price range by dragging adjustable\nhandles.\n- Product Tags Filter : Toggle the switch to display the Product Tags on\nthe shop page, and allow customers to filter products using those tags by going to the Tags section in the side panel .\nProduct Tags Filter : Toggle the switch to display the Product Tags on\nthe shop page, and allow customers to filter products using those tags by going to the Tags section in the side panel .\n- If you want to use tags on your e-commerce, go to eCommerce ⣠Product Tags and click New . In the Product Templates tab of the product tags form,\nadd the products to link to the given tag. You can also add product variants in the Product Variants tab and view a summary of all selected products in\nthe All Products tab.\nIf you want to use tags on your e-commerce, go to eCommerce ⣠Product Tags and click New . In the Product Templates tab of the product tags form,\nadd the products to link to the given tag. You can also add product variants in the Product Variants tab and view a summary of all selected products in\nthe All Products tab.\n- Price filtering works independently from attributes and, therefore, can be enabled on its own,\nif desired.\nPrice filtering works independently from attributes and, therefore, can be enabled on its own,\nif desired.\n\n## Product listing area\n\nYou can customize the layout of the entire shop page, as well as that of individual category\npages .\nIt is also possible to customize individual product pages .\nIn the website editor, choose the layout , and\nset the default layout to either Grid or List view.\nUse the following options to further adjust the layout:\n- Size : Set the number of products displayed per page and line.\nSize : Set the number of products displayed per page and line.\n- Gap : Define the gap between the products.\nGap : Define the gap between the products.\n- Style : Select Default , Cards , Thumbnails , or Grid .\nStyle : Select Default , Cards , Thumbnails , or Grid .\n- Image Size : Choose the aspect ratio for the product images: Landscape (4/3) , Default (1/1) , Portrait (4/5) , or Vertical (2/3) . You can also adjust the display by changing the Fill options to fit your design preferences best.\nImage Size : Choose the aspect ratio for the product images: Landscape (4/3) , Default (1/1) , Portrait (4/5) , or Vertical (2/3) . You can also adjust the display by changing the Fill options to fit your design preferences best.\nToggle the Prod. Desc. switch to display the product description below the productâs\nname.\nYou can choose the size of the grid, but be aware that displaying too many products may affect\nperformance and page loading speed.\nIn addition, you can manually change a productâs position on the shop page. To do so, go to the\nmain shop page, click the product, and open the website editor. In the Product section,\nyou can reorder the products by using the arrows. The << >> buttons allow to move the product to\nthe extreme left or right, and < > allow to move it one row to the left or right.\n`<<`\n`>>`\n`<`\n`>`\nIt is also possible to change the productsâ positions on the shop page by going to Website ⣠eCommerce ⣠Products , switching to the list view, and\ndragging and dropping the products within the list.\n\n### Product highlight\n\nYou can highlight products to make them more visible on the shop page. To do so, go\nto the website editor and click the product to highlight. In the Product section, you\ncan choose the size of the product image by clicking the grid, and you can also add a Ribbon . This displays a banner across the productâs image, such as Sale , Sold out , Out of stock or New! .\nTo create a new ribbon, click the green ( Create ) icon next to the Ribbon field. Then add a Ribbon name , define its Position ,\nand choose a Background and a Text label. To edit the ribbon, click the ( Edit ) icon next to the Ribbon label.\nThe ribbon is now available for all the eCommerce products.\n- There are other ways to create a new ribbon: Go to Website ⣠eCommerce ⣠Product Ribbons and click New . Activate the developer mode , access the product\nform, and under the Sales tab, change or create the ribbon in the Ribbon field.\nThere are other ways to create a new ribbon:\n- Go to Website ⣠eCommerce ⣠Product Ribbons and click New .\nGo to Website ⣠eCommerce ⣠Product Ribbons and click New .\n- Activate the developer mode , access the product\nform, and under the Sales tab, change or create the ribbon in the Ribbon field.\nActivate the developer mode , access the product\nform, and under the Sales tab, change or create the ribbon in the Ribbon field.\n- It is also possible to add ribbons for specific product variants . To do so, go to Website â£\neCommerce ⣠Products and select a product. Click the Variants smart button,\nchoose a variant, and add a ribbon in the Variant Ribbon field of the Sales section.\nIt is also possible to add ribbons for specific product variants . To do so, go to Website â£\neCommerce ⣠Products and select a product. Click the Variants smart button,\nchoose a variant, and add a ribbon in the Variant Ribbon field of the Sales section.\n\n### Shop and category page design\n\nUse building blocks to add content on the shop\nand/or category page.\nYou can customize the top and/or bottom section of the catalog, either for the entire shop page or\nfor a specific category. In the latter case, the block appears only when filtering by that\ncategory. To do so, move the block to the far top or bottom section to display it on the general\nshop page or to the area below the categoryâs name at the top or beneath the product list to\ndisplay it only when filtering by that specific category.\n- Adding content to an eCommerce category page helps improve the SEO strategy. Using keywords linked to the products or the\neCommerce categories can also increase organic traffic. Additionally, each category has its\nown specific URL that can be pointed to and is indexed by search engines.\nAdding content to an eCommerce category page helps improve the SEO strategy. Using keywords linked to the products or the\neCommerce categories can also increase organic traffic. Additionally, each category has its\nown specific URL that can be pointed to and is indexed by search engines.\n- eCommerce categories can also be added as mega menu items for quick access.\neCommerce categories can also be added as mega menu items for quick access.\n\n## Additional features\n\nYou can access and enable additional feature buttons such as a Add to cart or Wishlist button or a Comparison list . To do so, open the website editor,\nclick the desired feature buttons. All three buttons appear when hovering the mouse over\na productâs image.\n- ( Add to cart ): adds a button to add the product to the cart ;\n( Add to cart ): adds a button to add the product to the cart ;\n- ( Compare ): adds a button to compare products based on\ntheir price, variant, etc.;\n( Compare ): adds a button to compare products based on\ntheir price, variant, etc.;\n- ( Wishlist ): adds a button to wishlist the product.\n( Wishlist ): adds a button to wishlist the product.", "headings": ["Top bar", "Sort-by search and display options", "Side panel", "Product categorization in catalog", "Attributes", "Product listing area", "Product highlight", "Shop and category page design", "Additional features"], "doc_id": "e10fafa87598d1d7"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/ecommerce/products/cross_upselling.html", "title": "Cross-selling and upselling", "module": "ecommerce", "section": "Cross-selling and upselling", "text": "# Cross-selling and upselling\n\nCross-selling and upselling are sales techniques designed to encourage\ncustomers to purchase additional or higher-priced products and services from your Catalog .\n\n## Cross-selling\n\nCross-selling can be achieved by suggesting optional products when items are added to the cart or by\nrecommending accessory products on the checkout page.\n\n### Optional products\n\nOptional products are suggested when the customer selects a product and clicks Add to cart .\nTo enable optional products , go to Website ⣠eCommerce ⣠Products , select a\nproduct, go to the Sales tab, and enter the products you wish to feature in the Optional Products field.\n\n### Accessory products\n\nAccessory products are showcased in the Suggested Accessories section during the Review Order step, just before proceeding to checkout.\nTo enable accessory products , go to Website ⣠eCommerce ⣠Products , select\na product, go to the Sales tab, and enter the products you wish to feature in the Accessory Products field.\n\n## Upselling\n\nYou can display alternative products at the bottom of the product page as an upselling\ntechnique, encouraging customers to consider a more expensive variant or product than their\ninitial choice by presenting appealing alternatives.\nTo enable alternative products, navigate to Website ⣠eCommerce ⣠Products ,\nselect the desired product, and go to the Sales tab. In the Alternative Products field, add the products you want to feature.\nClick Go to Website to view the alternative products displayed at the bottom of the\nproduct page.\nTo adjust the settings, click Edit and select the related building block . In the Customize tab, scroll to the Alternative Products section and modify the settings as needed to\ntailor the display to your preferences.", "headings": ["Cross-selling", "Optional products", "Accessory products", "Upselling"], "doc_id": "3b640239926fc131"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/ecommerce/products/prices.html", "title": "Prices", "module": "ecommerce", "section": "Prices", "text": "# Prices\n\nOdoo offers multiple options to configure prices on the ecommerce. For example, you can apply prices per unit , offer discounts , and set up pricelists .\n\n## Taxes\n\nTo add a tax on a product, you can either set a tax in the Customer Taxes field of the product template or use fiscal positions .\n- AvaTax integration\nChoosing the displayed price tax usually depends on a countryâs regulations or the type of customers\n( B2B vs. B2C ). To select the type of price displayed, go to Website ⣠Configuration ⣠Settings , select the website, scroll down to the Shop - Products section, and under Display Product Prices select between:\n- Tax Excluded : the price displayed on the website is tax-excluded, and the tax is\ncomputed at the order review step;\nTax Excluded : the price displayed on the website is tax-excluded, and the tax is\ncomputed at the order review step;\n- Tax Included : the price displayed on the website is tax-included.\nTax Included : the price displayed on the website is tax-included.\nThis setting is website-specific and can therefore be configured independently for every\nwebsite in the database.\n- Switch the Tax indication toggle on in the\nwebsite editor to explicitly indicate if the price is Tax excluded or Tax included on the\nproduct page.\nSwitch the Tax indication toggle on in the\nwebsite editor to explicitly indicate if the price is Tax excluded or Tax included on the\nproduct page.\n`Taxexcluded`\n`Taxincluded`\n- Enable specific B2B fields in the delivery step during the checkout using the website editor .\nEnable specific B2B fields in the delivery step during the checkout using the website editor .\n\n## Price per unit\n\nTo display a price per unit alongside the sales\nprice on the product page, follow these steps:\n- Go to Website ⣠Configuration ⣠Settings , scroll to the Shop - Products section, and enable Product Reference Price .\nGo to Website ⣠Configuration ⣠Settings , scroll to the Shop - Products section, and enable Product Reference Price .\n- Navigate to the product form .\nNavigate to the product form .\n- Set the productâs Sales price and select the unit (e.g., Units ).\nSet the productâs Sales price and select the unit (e.g., Units ).\n- In the Base Unit Count field, enter the number of units in the product, then\nselect the relevant unit from the dropdown list.\nIn the Base Unit Count field, enter the number of units in the product, then\nselect the relevant unit from the dropdown list.\nImagine you want to sell a 2-liter bucket of paint for $60, i.e., $30 per liter.\nThe price per units, in this case per liter, is shown next to the sales price on the\nproduct page.\nThe price per unit may be mandatory in some countries.\n\n## Pricelists\n\nPricelists in Odoo allow to manage flexible pricing rules and to offer different prices and\ndiscounts based on currencies, time periods, purchase volumes, customersâ location , and/or customer type.\nTo enable pricelists for eCommerce, go to Website ⣠Configuration ⣠Settings ,\nscroll down to the Shop - Products section, enable Pricelists , and Save . Then, click Pricelists or go to Website ⣠eCommerce\n⣠Pricelists and configure the relevant\npricelists.\nIn the Ecommerce tab, configure options specific to online sales, such as assigning a Website to a pricelist, allowing customers to select it , and/or adding an E-commerce Promotional Code .\n- If you are using several websites and you want to use the same pricelist on several of them,\nyou need to duplicate the pricelist for each website. If you do not assign any\nwebsite, the pricelist will not be used, unless it is selectable .\nIf you are using several websites and you want to use the same pricelist on several of them,\nyou need to duplicate the pricelist for each website. If you do not assign any\nwebsite, the pricelist will not be used, unless it is selectable .\n- Pricelists can also be assigned to a specific customer .\nPricelists can also be assigned to a specific customer .\n- When pricelists are enabled in the Sales app, they are automatically enabled in the eCommerce\napp, and vice versa.\nWhen pricelists are enabled in the Sales app, they are automatically enabled in the eCommerce\napp, and vice versa.\n- In the list of pricelists, order the pricelists by priority: the first takes\nprecedence over the second, the second over the third, and so on.\nIn the list of pricelists, order the pricelists by priority: the first takes\nprecedence over the second, the second over the third, and so on.\n- It is also possible to create specific pricelists for variants .\nIt is also possible to create specific pricelists for variants .\n\n### Selectable pricelists\n\nSelectable pricelists are useful, for example, when selling products in multiple currencies and allow customers to\nchoose a pricelist using the catalogâs pricelist selector located next to the search bar .\nTo make a pricelist selectable, enable Selectable .\n- If a pricelist is designated as Selectable , and is not assigned to a specific\nwebsite, then the pricelist is selectable on all websites.\nIf a pricelist is designated as Selectable , and is not assigned to a specific\nwebsite, then the pricelist is selectable on all websites.\n- If a pricelist does not appear in the selector, it may be due to the following situations: Only one pricelist is defined as Selectable and the contact has a\npricelist assigned . Multiple selectable pricelists exist, but only those matching the customerâs country\ngroup are shown. It is strongly recommended to disable\nthe Selectable option when using pricelists with country groups on the\necommerce.\nIf a pricelist does not appear in the selector, it may be due to the following situations:\n- Only one pricelist is defined as Selectable and the contact has a\npricelist assigned .\nOnly one pricelist is defined as Selectable and the contact has a\npricelist assigned .\n- Multiple selectable pricelists exist, but only those matching the customerâs country\ngroup are shown. It is strongly recommended to disable\nthe Selectable option when using pricelists with country groups on the\necommerce.\nMultiple selectable pricelists exist, but only those matching the customerâs country\ngroup are shown. It is strongly recommended to disable\nthe Selectable option when using pricelists with country groups on the\necommerce.\nCurrency-specific pricelists\n\n### GeoIP & country groups\n\nIt is possible to display a specific pricelist based on the visitorâs location and IP address by\nassigning country groups to pricelists.\nTo do so, navigate to the relevant pricelist form and select\nthe appropriate Country Groups . Create or edit as many pricelists for specific regions\nas needed. For instance, select European Union to apply the pricelist to all EU member\nstates.\nTo create a new country group, click Search more in the dropdown list, then New . Add a Group Name and select the relevant Countries .\nUse Custom filters if needed.\nEach country group must contain at least one country.\nUse the following filter if you want to add all non-EU countries to the country group.\nCountry Group + is not in + European Union\n`CountryGroup`\n`isnotin`\n`EuropeanUnion`\n- When using GeoIP to determine the appropriate pricelist, all pricelists used on the\necommerce must have a country group assigned.\nWhen using GeoIP to determine the appropriate pricelist, all pricelists used on the\necommerce must have a country group assigned.\n- It is strongly recommended to disable the Selectable option when using pricelists\nwith country groups. Indeed, all pricelists with the relevant country group are automatically\napplied to the catalog but if one of them is marked as Selectable , the others will disappear as soon as customers\nselect the selectable pricelist. Example Imagine you create three pricelists: EU regular prices with the EU country group assigned EU prices with discounts with the EU country group assigned US prices with the US country group assigned If the Selectable option is enabled for EU regular prices and US prices , and the customer is from the European Union, only the pricelists EU regular prices and EU prices with discounts will be available. However, since the EU prices with discount list is not selectable, it will disappear once the customer selects\nthe EU regular prices list and prices will be displayed based on the EU regular prices pricelist on the catalog.\nIt is strongly recommended to disable the Selectable option when using pricelists\nwith country groups. Indeed, all pricelists with the relevant country group are automatically\napplied to the catalog but if one of them is marked as Selectable , the others will disappear as soon as customers\nselect the selectable pricelist.\nImagine you create three pricelists:\n- EU regular prices with the EU country group assigned\nEU regular prices with the EU country group assigned\n`EUregularprices`\n`EU`\n- EU prices with discounts with the EU country group assigned\nEU prices with discounts with the EU country group assigned\n`EUpriceswithdiscounts`\n`EU`\n- US prices with the US country group assigned\nUS prices with the US country group assigned\n`USprices`\n`US`\nIf the Selectable option is enabled for EU regular prices and US prices , and the customer is from the European Union, only the pricelists EU regular prices and EU prices with discounts will be available. However, since the EU prices with discount list is not selectable, it will disappear once the customer selects\nthe EU regular prices list and prices will be displayed based on the EU regular prices pricelist on the catalog.\n`EUregularprices`\n`USprices`\n`EUregularprices`\n`EUpriceswithdiscounts`\n`EUpriceswithdiscount`\n`EUregularprices`\n`EUregularprices`\n\n### Pricelist application\n\nOn the ecommerce, the default pricelist is automatically selected for public, non-logged in users\nwhen no country group is assigned. If GeoIP and country groups are\nused, public users see the pricelist of their country group by default. Logged-in users with assigned pricelists see the assigned\npricelist by default if it is assigned to the website they are visiting. If not, the websiteâs\ndefault pricelist is applied (i.e., the first available pricelist assigned to the website and\nwithout a country group, following the sequence order).\nAssigned pricelists take precedence over country-based pricelists, when applicable, unless the\nassigned pricelist is linked to a different country group.\nA customer from the United States visits the website. They do not have a portal account. The United States pricelist is applied.\nA different visitor, also from the United States, has the Loyal Customer Discount pricelist assigned in their contact form. This assignment takes precedence over the country\ngroup assignation, so the Loyal Customer Discount is applied.\n\n## Discounts\n\n### Discounts programs\n\nTo enable discount programs for your ecommerce, go to Website ⣠Configuration ⣠Settings , scroll\ndown to the Shop - Products section, and enable the Discounts, Loyalty & Gift\nCard feature.\nConfigure the discount program, make sure the Website option is enabled, and add the relevant Pricelist and Website on the program form, if needed.\n\n### Permanent product discount\n\nIf the price of a specific product has been permanently reduced, the strikethrough strategy is\ncommonly used. This involves showing the new discounted price, with the original price crossed out\nalongside it.\nTo display a permanently discounted price, navigate to Website ⣠Configuration\n⣠Settings , scroll down to the Shop - Products , enable the Comparison\nPrice option, and Save . Then, go to the product form , enter the new (discounted) price in the Sales Price field and the original one (strikethrough) in the Compare to Price field.\nThe Compare to Price field must contain a price that is higher than the Sales Price for the original price to appear with a strikethrough.\nThe Compare to Price is not displayed if discounted pricelists apply. If you want to\nuse the Compare to price with another discount, configure a pricelist with a promotional code .\n\n### Discounted pricelists\n\nIt is also possible to create pricelists with discounts .\nTo do so, create a pricelist and configure the discount .\nIf a pricelist contains a Discount price type, the price is striked through for applicable customers,\neven if the Comparison Price feature has not been\nenabled.\nIf using pricelists with country groups , the discounted pricelist\nmust be assigned the same country group as the one used for the non-discounted pricelist.\n\n### E-commerce promotional code\n\nTo offer a discounted pricelist for customers with a specific discount code, access the relevant pricelist form , go to the Ecommerce tab, and add\nan E-commerce Promotional Code , e.g., SUMMERSALE10% . Then, go to the Price\nRules tab, click Add a line , and configure the discount . When a customer inserts the code during the checkout process , this discount is granted according to the Price\nRules configuration.\n`SUMMERSALE10%`\nMake sure that the Promo Code option\nin the website editor is enabled and, if using country groups , that the discounted pricelist has the same country group\nassigned as the non-discounted pricelist.\n\n## Hide prices\n\nSome businesses, such as B2B shops or companies that sell luxury\nor custom items, often prefer to showcase their products online without displaying their prices.\nTo hide product prices on the ecommerce, go to Website ⣠Configuration â£\nSettings , enable Prevent Sale of Zero Priced Product in the Shop -\nProducts section, and enter a redirect URL in the Button URL field. The Add to Cart button on the product page is then replaced by a Contact us button, which can be customized if needed.\nAfter enabling this feature, either set the price to 0 for all desired products or create a pricelist with all product prices set to 0 . Ensure the\npricelist is assigned to the correct website and is listed first among the websiteâs pricelists.\n`0`\n`0`\n- Ensure no pricelist used on the ecommerce has been marked as Selectable to prevent\naccidentally displaying the zero-priced pricelist.\nEnsure no pricelist used on the ecommerce has been marked as Selectable to prevent\naccidentally displaying the zero-priced pricelist.\n- To hide prices from public visitors while keeping them visible to logged-in customers, create a\nzero-priced pricelist to be used for non-logged-in customers and assign a regular pricelist (with actual prices) to\ncustomers with portal access .\nTo hide prices from public visitors while keeping them visible to logged-in customers, create a\nzero-priced pricelist to be used for non-logged-in customers and assign a regular pricelist (with actual prices) to\ncustomers with portal access .", "headings": ["Taxes", "Price per unit", "Pricelists", "Selectable pricelists", "GeoIP & country groups", "Pricelist application", "Discounts", "Discounts programs", "Permanent product discount", "Discounted pricelists", "E-commerce promotional code", "Hide prices"], "doc_id": "21e1272c722be5a6"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/ecommerce/shipping.html", "title": "Delivery", "module": "ecommerce", "section": "Delivery", "text": "# Delivery\n\nOdoo eCommerce allows you to configure various delivery methods, enabling customers to choose\ntheir preferred option at checkout . These methods include external providers , custom options such as flat-rate or free shipping, local carriers via Sendcloud or Based on Rules , and in-store pickup .\n\n## External provider integration\n\nTo handle product delivery, you can connect your database to third-party shipping carriers like FedEx , UPS ,\nor DHL .\nA shipping connector links to these providers, automating tracking labels and shipping\nprocesses.\nTo enable a third-party delivery provider, go to Website ⣠Configuration â£\nSettings , scroll to the Delivery section, select the desired delivery provider(s),\nand Save .\nGo to Website ⣠Configuration ⣠Delivery Methods and select the delivery method\nin the list to configure it .\n- Third-party shipping carriers\nThird-party shipping carriers\n- Gelato\nThe field used to define additional fees must be filled in your third-party delivery\nprovider account , even if you do not plan to charge customers any additional fee. If you do not\nwant to apply a fee, enter 0 . If the field is left empty, the delivery price cannot be\ncalculated, and an error message prompts the customer to select an alternative delivery method.\n`0`\n\n### Margin on delivery rate\n\nTo add an additional fee to the base shipping rate (e.g., to cover extra costs), log into your\ncarrier account and set the desired fee in the related field. The shipping connector retrieves this\nfee and includes it in the final price at checkout. Contact your carrier for further assistance\nwith this configuration.\nAlternatively, enter 0 in your third-party shipping provider account, then set the fee in Odoo.\nTo do so, access the desired shipping methodâs form and enter the fee in the Margin\non Rate field to add a percentage to the shipping costs and/or the Additional margin field to add a fixed amount.\n`0`\nThe field used to define additional fees cannot be left empty in your third-party shipping\nprovider account.\n\n## Custom delivery method\n\nCustom delivery methods must be created, for example:\n- to integrate delivery carriers through Sendcloud ;\nto integrate delivery carriers through Sendcloud ;\n- to configure specific rules (e.g., to offer free shipping for orders above a specific amount) for\na specific provider;\nto configure specific rules (e.g., to offer free shipping for orders above a specific amount) for\na specific provider;\n- to configure Fixed Price shipping, or shipping Based on\nRules .\nto configure Fixed Price shipping, or shipping Based on\nRules .\nTo create a custom delivery method, go to Website ⣠Configuration ⣠Delivery\nMethods , click New , and fill in the fields .\nIn the Provider field, select Based on Rules or Fixed Price .\nUpon configuring a delivery\nmethod, you can:\n- Restrict it to a specific website by\nselecting it in the Website field.\nRestrict it to a specific website by\nselecting it in the Website field.\n- Click the Test Environment smart button to switch to the Production Environment . Then, click Unpublished to Publish the delivery method and make it available to website visitors.\nClick the Test Environment smart button to switch to the Production Environment . Then, click Unpublished to Publish the delivery method and make it available to website visitors.\n- Use the Availability tab to define conditions for the delivery method based on the orderâs\ncontent or destination.\nUse the Availability tab to define conditions for the delivery method based on the orderâs\ncontent or destination.\n\n## Click & Collect\n\nTo allow customers to reserve products online and pay for/collect them in-store, follow these steps:\n- Go to Website ⣠Configuration ⣠Settings .\nGo to Website ⣠Configuration ⣠Settings .\n- Scroll to the Delivery section, enable Click & Collect , and Save .\nScroll to the Delivery section, enable Click & Collect , and Save .\n- Click Configure Pickup Locations to configure the delivery method and ensure the Provider field is set to Pick up in store .\nClick Configure Pickup Locations to configure the delivery method and ensure the Provider field is set to Pick up in store .\n- In the Stores tab, click Add a line and select the warehouse(s) where\ncustomers can collect their orders.\nIn the Stores tab, click Add a line and select the warehouse(s) where\ncustomers can collect their orders.\n- Once your setup is complete, click the Unpublish button to change the status to Publish and make the delivery method available to customers.\nOnce your setup is complete, click the Unpublish button to change the status to Publish and make the delivery method available to customers.\n- When the product is in stock, a location selector is displayed on the product and checkout pages. Customers cannot select a pickup location\nif the product is out of stock at that location. The Continue selling option for out-of-stock products is not supported.\nWhen the product is in stock, a location selector is displayed on the product and checkout pages. Customers cannot select a pickup location\nif the product is out of stock at that location. The Continue selling option for out-of-stock products is not supported.\n- If the Show Available Qty option is enabled for a\nproduct, customers can view the stock quantity available for each warehouse in the location\nselector on the product page.\nIf the Show Available Qty option is enabled for a\nproduct, customers can view the stock quantity available for each warehouse in the location\nselector on the product page.\n- Each warehouse must have a complete address to ensure its location is accurately displayed\nto customers. Incomplete addresses prevent the warehouse from being shown.\nEach warehouse must have a complete address to ensure its location is accurately displayed\nto customers. Incomplete addresses prevent the warehouse from being shown.\n- In a multi-company environment, the company assigned to the warehouse must match the company\nassigned to the website on which the delivery method is used. If the companies differ, the\npickup location cannot be selected.\nIn a multi-company environment, the company assigned to the warehouse must match the company\nassigned to the website on which the delivery method is used. If the companies differ, the\npickup location cannot be selected.\n- The Click & Collect option is not available for services.\nThe Click & Collect option is not available for services.", "headings": ["External provider integration", "Margin on delivery rate", "Custom delivery method", "Click & Collect"], "doc_id": "183197a0436d787b"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website.html", "title": "Website", "module": "website", "section": "Website", "text": "# Website\n\nOdoo Website offers a user-friendly platform for creating and managing your website. It includes\nvarious tools and features to help you design, publish, and maintain web pages without needing\nadvanced technical skills. You can easily customize layouts, add multimedia content, and integrate\nwith other Odoo apps to expand your websiteâs functionality.\n\n#### Web design\n\nDesign your website using building blocks and website themes.\n\n#### Structure\n\nManage website pages, menus, and search engine optimization.\n\n#### Configuration\n\nConfigure domain names, address autocompletion, Google Search Console, cookies bar,\ntranslations, multiple websites, form spam protection, content delivery network (CDN).\n\n#### Reporting\n\nMonitor your websiteâs traffic with website analytics and set up link trackers.\n\n#### Mail groups\n\nConfigure mail groups to allow website visitors to participate in public discussions via\nemail.\nOdoo offers a free custom domain name to all Odoo Online databases\nfor one year. Visitors can then access your website with an address such as www.example.com rather than the default example.odoo.com .\n`www.example.com`\n`example.odoo.com`\n- Odoo Tutorials: Website\nOdoo Tutorials: Website\n- Odoo Tutorials: eCommerce\nOdoo Tutorials: eCommerce\n- Unsplash", "headings": [], "doc_id": "66d275b0da01ee64"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/configuration/address_autocomplete.html", "title": "Address autocomplete", "module": "website", "section": "Address autocomplete", "text": "# Address autocomplete\n\nYou can use the Google Places API on your website to ensure that your usersâ delivery addresses\nexist and are understood by the carrier. The Google Places API allows developers to access detailed\ninformation about places using HTTP requests. The autocompletion predicts a list of places when the\nuser starts typing the address.\n- Google Maps Platform\n- Google Developers Documentation: Google Places API\nGoogle Developers Documentation: Google Places API\nTo do so, go to Website ⣠Configuration ⣠Settings and enable Address Autocomplete in the SEO section.\nInsert your Google Places API key in the API Key field. If you donât have\none, create yours on the Google Cloud Console and follow these steps.\n\n## Step 1: Enable the Google Places API\n\nCreate a New Project: To enable the Google Places API , you first need to create a project. To do so, click Select a project in the top left corner, New Project , and follow the prompts\nto set up your project.\nEnable the Google Places API: Go to the Enabled APIs & Services and click + ENABLE APIS AND SERVICES. Search for âPlaces APIâ and select it. Click on the âEnableâ button.\nGoogleâs pricing depends on the number of requests and their complexity.\n\n## Step 2: Create API Credentials\n\nGo to APIs & Services â> Credentials .\nCreate credentials: To create your credentials, go to Credentials , click Create Credentials , and\nselect API key .\nRestrict the API Key (Optional)\nFor security purposes, you can restrict the usage of your API key. You can go to the API restrictions section to specify which APIs your key can access. For the Google\nPlaces API, you can restrict it to only allow requests from specific websites or apps.\n- Save Your API Key: copy your API key and securely store it.\nSave Your API Key: copy your API key and securely store it.\n- Do not share it publicly or expose it in client-side code.\nDo not share it publicly or expose it in client-side code.", "headings": ["Step 1: Enable the Google Places API", "Step 2: Create API Credentials"], "doc_id": "e3708e8c960f3cba"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/configuration/cdn.html", "title": "Set up a content delivery network (CDN)", "module": "website", "section": "Set up a content delivery network (CDN)", "text": "# Set up a content delivery network (CDN)\n\n## Deploying with KeyCDN\n\nA CDN or content distribution network , is a geographically\ndistributed network of servers that provides high speed internet content. The CDN provides quick, high-quality content delivery for content-heavy websites.\nThis document will guide you through the setup of a KeyCDN account with an Odoo powered website.\n\n### Create a pull zone in the KeyCDN dashboard\n\nOn the KeyCDN dashboard, start by navigating to the Zones menu item on the left. On\nthe form, give a value to the Zone Name , which will appear as part of the CDN âs URL . Then, set the Zone\nStatus to active to engage the zone. For the Zone Type set the value to Pull , and then, finally, under the Pull Settings , enter the Origin URL â this address should be the full Odoo database URL .\nUse https://yourdatabase.odoo.com and replace the yourdatabase subdomain prefix with the\nactual name of the database. A custom URL can be used, as\nwell, in place of the Odoo subdomain that was provided to the database.\n`https://yourdatabase.odoo.com`\nUnder the General Settings heading below the zone form, click the Show all\nsettings button to expand the zone options. This should be the last option on the page. After\nexpanding the General Settings ensure that the CORS option is enabled .\nNext, scroll to the bottom of the zone configuration page and Save the changes. KeyCDN\nwill indicate that the new zone will be deployed. This can take about 10 minutes.\nA new Zone URL has been generated for your Zone, in this example it is pulltest-xxxxx.kxcdn.com . This value will differ for each database.\n`pulltest-xxxxx.kxcdn.com`\nCopy this Zone URL to a text editor for later, as it will be used in the next steps.\n\n### Configure the Odoo instance with the new zone\n\nIn the Odoo Website app, go to the Settings and then activate the Content Delivery Network (CDN) setting and copy/paste the Zone URL value\nfrom the earlier step into the CDN Base URL field. This field is only visible and\nconfigurable when the developer mode is activated.\nEnsure that there are two forward slashes ( // ) before the CDN Base URL and one\nforward slash ( / ) after the CDN Base URL .\n`//`\n`/`\nSave the settings when complete.\nNow the website is using the CDN for the resources matching the CDN filters regular\nexpressions.\nIn the HTML of the Odoo website, the CDN integration is evidenced\nas working properly by checking the URL of images. The CDN Base\nURL value can be seen by using your web browserâs Inspect feature on the Odoo website.\nLook for itâs record by searching within the Network tab inside of devtools.\n\n### Prevent security issues by activating cross-origin resource sharing (CORS)\n\nA security restriction in some browsers (such as Mozilla Firefox and Google Chrome) prevents a\nremotely linked CSS file to fetch relative resources on this same external server.\nIf the CORS option isnât enabled in the CDN\nZone , the more obvious resulting problem on a standard Odoo website will be the lack of Font\nAwesome icons because the font file declared in the Font Awesome CSS wonât be loaded from the\nremote server.\nWhen these cross-origin resource issues occur, a security error message similar to the output\nbelow will appear in the web browserâs developer console:\nFont from origin 'http://pulltest-xxxxx.kxcdn.com' has been blocked from loading /shop:1 by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://yourdatabase.odoo.com' is therefore not allowed access.\n`Fontfromorigin'http://pulltest-xxxxx.kxcdn.com'hasbeenblockedfromloading/shop:1byCross-OriginResourceSharingpolicy:No'Access-Control-Allow-Origin'headerispresentontherequestedresource.Origin'http://yourdatabase.odoo.com'isthereforenotallowedaccess.`\nEnabling the CORS option in the CDN settings fixes this issue.", "headings": ["Deploying with KeyCDN", "Create a pull zone in the KeyCDN dashboard", "Configure the Odoo instance with the new zone", "Prevent security issues by activating cross-origin resource sharing (CORS)"], "doc_id": "f1225524e1cdb5ed"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/configuration/cookies_bar.html", "title": "Cookies bar", "module": "website", "section": "Cookies bar", "text": "# Cookies bar\n\nCookies are small text files sent to your device when you visit a website. They are processed\nand stored by your browser and record visitor information like login details, preferences, and\nbrowsing history. Essential cookies are necessary for the website to function, while optional cookies are used to analyze behavior or display ads.\nData protection laws require notifying visitors about data collection methods and purposes. Cookies bar fulfill this obligation by informing visitors on their first visit and allowing them\nto decide whether to store all or only essential cookies on their device.\n- Cookies bars are required to obtain visitorsâ consent for optional cookies only. Consent is not\nrequired for essential cookies.\nCookies bars are required to obtain visitorsâ consent for optional cookies only. Consent is not\nrequired for essential cookies.\n- Odoo is compliant with Google consent mode v2 .\nOdoo is compliant with Google consent mode v2 .\n\n## Configuration\n\nTo add a cookies bar on your website, go to Website ⣠Configuration â£\nSettings and enable Cookies Bar in the Privacy section. This activates Block tracking 3rd-party services by default, including social media, video hosting\nplatforms, and Google services. Click Add domains to the block list to include other\nexternal websites. These services remain blocked on your website until visitors accept optional\ncookies.\nUsing third-party cookies without a cookies bar does not prevent them from being triggered. Only\nthe presence of a cookie bar and the visitorâs refusal ensure that these cookies are blocked.\n\n## Cookies policy\n\nWhen you enable the cookies bar for your website, Odoo creates the Cookie Policy page\n( /cookie-policy ) containing a list of cookies set by default, with their purpose and examples.\n`/cookie-policy`\nEssential - Session & Security\nAuthenticate visitors, protect visitor data and allow the website to deliver the services\nvisitors expects, such as maintaining the content of their cart, or allowing file uploads.\nThe website will not work properly without these cookies.\nEssential - Preferences\nRemember information about the preferred look or behavior of the website, such as the\npreferred language or region. The website will continue to function without these cookies,\nbut the visitorâs experience may be affected.\nOptional - Interaction History\nCollect information about your interactions with the website, the pages youâve seen, and\nany specific marketing campaign that brought you to the website. The website will work\nwithout these cookies, but some features or services may not perform optimally.\nim_livechat_previous_operator (Odoo),\nutm_campaign (Odoo),\nutm_source (Odoo),\nutm_medium (Odoo)\nOptional - Advertising & Marketing\nMake advertising more engaging to visitors and more valuable to publishers and advertisers,\nsuch as providing more relevant ads when you visit other websites that display ads or to\nimprove reporting on ad campaign performance. Note that some third-party services may\ninstall additional cookies on your browser in order to identify you.\n__gads (Google),\n__gac (Google)\nUnderstand how visitors engage with the website, via Google Analytics. The website will\nstill work without these cookies.\n_ga (Google),\n_gat (Google),\n_gid (Google),\n_gac_* (Google)\nIt is not possible to let visitors customize or select which optional cookies they want to allow.\nYou could add a link to this page in your websiteâs footer, for example.\n\n### Edit the Cookies policy page\n\nTo access it, click the Cookie Policy hyperlink in the cookies bar or open the page from Website ⣠Site ⣠Pages .\nTo adapt the content of the page according to your needs, click the Edit button.\nYou have to list every cookie you added yourself on the /cookie-policy page including their\nname, role, category and duration.\n`/cookie-policy`\nTo check the duration of cookies, use your browserâs developer tools.\n\n## Customization\n\nTo adapt the display of the cookies bar on your website, click Edit on the website\neditor, go to the Invisible Elements section at the bottom of the panel, and click Cookies Bar . You can modify the Layout and Size of the\ncookies bar, and enable Backdrop to gray out the page in the background when the cookies\nbar is displayed on the screen.\nClick anywhere in the building block to further customize the appearance of the cookies bar using Block , Column and/or Inline Text customization options.\nTo edit the contents of the cookies bar (i.e., the consent message), click directly in the building\nblock.", "headings": ["Configuration", "Cookies policy", "Edit the Cookies policy page", "Customization"], "doc_id": "1b01aaaaea5c5e48"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/configuration/domain_names.html", "title": "Domain names", "module": "website", "section": "Domain names", "text": "# Domain names\n\nDomain names are text-based addresses identifying online locations, such as websites. They provide a\nmore memorable and recognizable way for people to navigate the internet than numerical IP addresses.\nOdoo Online and Odoo.sh databases use a subdomain of the odoo.com domain by\ndefault (e.g., mycompany.odoo.com ).\n`odoo.com`\n`mycompany.odoo.com`\nHowever, you can use a custom domain name instead by registering a free domain name (only available for Odoo Online databases) or by configuring a\ndomain name you already own .\n- Odoo Tutorials: Register a free domain name [video]\nOdoo Tutorials: Register a free domain name [video]\n- Magic Sheet - Website domain configuration [PDF]\nMagic Sheet - Website domain configuration [PDF]\n\n## Register a free domain name with Odoo\n\nTo register a one-year free domain name for your Odoo Online database, sign in to your account and\ngo to the database manager . Click the ( gear ) button next to the database name and select Domain\nNames .\nSearch for the desired domain name and check its availability.\nEnsure the Website app is installed if the domain name registration option does not appear.\nSelect the desired domain name, fill in the Domain Owner form, and click Register . The chosen domain name is directly linked to the database.\nNext, you should map your domain name to your Odoo website .\nA verification email from noreply@domainnameverification.net will be sent to the email address\nprovided in the Domain Owner form. It is essential to verify your email address to\nkeep the domain active and receive the renewal quote before expiration.\n`noreply@domainnameverification.net`\nThe domain name registration is free for the first year. After this period, Odoo will continue to\nmanage the domain in partnership with Gandi.net , the domain name registrar, and you will be\ncharged Gandi.netâs renewal rate . Odoo sends a renewal\nquotation every year to the email address mentioned in the Domain Owner form several\nweeks before the expiration date of the domain. The domain is renewed automatically when the\nquotation is confirmed.\n- The offer is only available for Odoo Online databases.\nThe offer is only available for Odoo Online databases.\n- The offer is limited to one domain name per client.\nThe offer is limited to one domain name per client.\n- The offer is limited to the registration of a new domain name.\nThe offer is limited to the registration of a new domain name.\n- The offer is available to One App Free plans. Ensure that your website contains enough\noriginal content for Odoo to verify that your request is legitimate and respects Odooâs\nAcceptable Use Policy . Given the high number of\nrequests, it can take Odoo several days to review them.\nThe offer is available to One App Free plans. Ensure that your website contains enough\noriginal content for Odoo to verify that your request is legitimate and respects Odooâs\nAcceptable Use Policy . Given the high number of\nrequests, it can take Odoo several days to review them.\n\n### DNS records\n\nTo manage your free domain name DNS records, open the database manager , click the ( gear ) button next to\nthe database name, select Domain Names , and click DNS .\n- A : the A record holds the IP address of the domain. It is automatically created and cannot be edited or deleted.\nA : the A record holds the IP address of the domain. It is automatically created and cannot be edited or deleted.\n- CNAME : CNAME records forward one domain or subdomain to another domain. One is\nautomatically created to map the www. subdomain to the database. If the database is renamed, the\nCNAME record must also be renamed.\nCNAME : CNAME records forward one domain or subdomain to another domain. One is\nautomatically created to map the www. subdomain to the database. If the database is renamed, the\nCNAME record must also be renamed.\n`www.`\n- MX : MX records instruct servers on where to deliver emails.\nMX : MX records instruct servers on where to deliver emails.\n- TXT : TXT records can be used for different purposes (e.g., to verify domain name\nownership).\nTXT : TXT records can be used for different purposes (e.g., to verify domain name\nownership).\nAny modification to the DNS records can take up to 72 hours to propagate worldwide on all\nservers.\nContact Odoo support if you need assistance to manage your domain\nname.\n\n### Mailbox\n\nThe one-year free domain name offer does not include a mailbox. There are two options to link\nyour domain name with a mailbox.\n\n#### Use a subdomain\n\nYou can create a subdomain (e.g., subdomain.yourdomain.com ) to use as an alias domain for the\ndatabase. It allows users to create records in the database from emails received on their email@subdomain.yourdomain.com alias.\n`subdomain.yourdomain.com`\n`email@subdomain.yourdomain.com`\nTo do so, open the database manager , click the ( gear ) button next to the database name and select Domain Names . Click DNS , then Add DNS record and select CNAME . Next, enter the desired subdomain in the Name field (e.g., subdomain ), the original database domain with a period at the end (e.g., mycompany.odoo.com. ) in\nthe Content field, and click Add record .\n`subdomain`\n`mycompany.odoo.com.`\nThen, add the alias domain as your own domain by clicking Use my own domain , entering\nthe alias domain (e.g., subdomain.yourdomain.com ), clicking Verify , and then I confirm, itâs done .\n`subdomain.yourdomain.com`\nFinally, go to your database and open the Settings . Under the Alias Domain field, enter the alias domain (e.g., subdomain.yourdomain.com ), click Create , and then Save .\n`subdomain.yourdomain.com`\n\n#### Use an external email provider\n\nTo use an external email provider, you should configure an MX record. To do so, open the database\nmanager , click the ( gear ) button\nnext to the database name and select Domain Names . Click DNS , then Add DNS record and select MX . The values you should\nenter for the Name , Content , and Priority fields depend on the\nexternal email provider.\n- Google Workspace: MX record values\nGoogle Workspace: MX record values\n- Outlook and Exchange Online: Add an MX record for email\nOutlook and Exchange Online: Add an MX record for email\nTo use your free domain name on Gmail, register to Google Workspace .\nDuring the registration process, select Set up using your existing domain when asked to Choose a way to set up your account , and enter your domain (e.g., yourdomain.com ) when\nasked Whatâs your businessâs domain name? .\n`yourdomain.com`\n- Sign in to Google Workspace. When asked to verify you own your domain, click Switch to\nmanual verification .\nSign in to Google Workspace. When asked to verify you own your domain, click Switch to\nmanual verification .\n- Select gandi.net as the Domain host and click Continue .\nSelect gandi.net as the Domain host and click Continue .\n`gandi.net`\n- Copy the content of the Value field under TXT record . Leave the window\nopen.\nCopy the content of the Value field under TXT record . Leave the window\nopen.\n- Open the database manager , click the ( gear ) button next to the database name and select Domain\nNames . Click DNS , then Add DNS record and select TXT .\nOpen the database manager , click the ( gear ) button next to the database name and select Domain\nNames . Click DNS , then Add DNS record and select TXT .\n- Enter @ in the Name field, paste the Value provided by Google in the Content field, and click Add record .\nEnter @ in the Name field, paste the Value provided by Google in the Content field, and click Add record .\n`@`\n- Go back to Google Workspace, tick the box at the bottom, and click Confirm .\nGo back to Google Workspace, tick the box at the bottom, and click Confirm .\nGoogle Workspace Admin Help: Verify your domain with a TXT record\n- Open the database manager , click the ( gear ) button next to the database name and select Domain\nNames . Click DNS , then Add DNS record , and select MX .\nOpen the database manager , click the ( gear ) button next to the database name and select Domain\nNames . Click DNS , then Add DNS record , and select MX .\n- Enter @ in the Name field, 1 in the Priority field, smtp.google.com. in the Content field, and click Add record .\nEnter @ in the Name field, 1 in the Priority field, smtp.google.com. in the Content field, and click Add record .\n`@`\n`1`\n`smtp.google.com.`\n- Open the Google Workspace Admin console , click Activate Gmail for your domain, and follow the steps.\nOpen the Google Workspace Admin console , click Activate Gmail for your domain, and follow the steps.\nGoogle Workspace Admin Help: Set up MX records for Google Workspace\n\n## Configure an existing domain name\n\nIf you already have a domain name, you can use it for your Odoo website.\nTo avoid potential SSL certificate validation issues, it is strongly\nrecommended to follow these five steps, in the specified order:\n- Set up URL redirections before transferring the domain\nname to preserve the websiteâs SEO.\nSet up URL redirections before transferring the domain\nname to preserve the websiteâs SEO.\n- Add a CNAME record.\n- Redirect your naked domain name. (This step is optional, but\nrecommended.)\nRedirect your naked domain name. (This step is optional, but\nrecommended.)\n- Map your domain name to your Odoo database.\nMap your domain name to your Odoo database.\n- Map your domain name to your Odoo website.\nMap your domain name to your Odoo website.\n\n### Add a CNAME record\n\nAdding a CNAME record to forward your domain name to the address of your Odoo database is required.\nThe CNAME recordâs target address should be your databaseâs address as defined at its creation\n(e.g., mycompany.odoo.com ).\n`mycompany.odoo.com`\nThe CNAME recordâs target address should be the projectâs main address, which can be found on\nOdoo.sh by going to Settings ⣠Project Name , or a specific branch\n(production, staging or development) by going to Branches ⣠select the\nbranch ⣠Settings ⣠Custom domains , and clicking How to set up my domain? . A\nmessage indicates which address your CNAME record should target.\nThe specific instructions depend on your DNS hosting service.\n- GoDaddy: Add a CNAME record\nGoDaddy: Add a CNAME record\n- Namecheap: How to create a CNAME record for your domain\nNamecheap: How to create a CNAME record for your domain\n- OVHcloud: Add a new DNS record\nOVHcloud: Add a new DNS record\n- Cloudflare: Manage DNS records\nCloudflare: Manage DNS records\n\n### Redirect a naked domain\n\nAlthough optional, completing this step is advised.\nTo let visitors use your naked domain name (a domain name without any subdomains or prefixes) ( yourdomain.com ), creating a 301 redirect (a permanent redirect from one URL to another) to www.yourdomain.com is required:\n`yourdomain.com`\n`www.yourdomain.com`\n- from http://yourdomain.com to https://www.yourdomain.com , and\nfrom http://yourdomain.com to https://www.yourdomain.com , and\n`http://yourdomain.com`\n`https://www.yourdomain.com`\n- from https://yourdomain.com to https://www.yourdomain.com .\nfrom https://yourdomain.com to https://www.yourdomain.com .\n`https://yourdomain.com`\n`https://www.yourdomain.com`\nThe specific instructions depend on your DNS hosting service. However, not all of them offer to\nredirect a naked domain with a secure HTTPS connection. If you encounter any issue, we recommend using Cloudflare .\n\n#### Using Cloudflare to secure and redirect a naked domain\n\n- Sign up and log in to Cloudflare .\nSign up and log in to Cloudflare .\n- Enter your domain name on Cloudflareâs dashboard and\nselect Quick scan for DNS records .\nEnter your domain name on Cloudflareâs dashboard and\nselect Quick scan for DNS records .\n- Choose a plan (the free plan is sufficient).\nChoose a plan (the free plan is sufficient).\n- Follow Cloudflareâs instructions and recommendations to complete the activation.\nFollow Cloudflareâs instructions and recommendations to complete the activation.\n- Add a CNAME record to redirect your naked domain ( yourdomain.com ) to the www subdomain\n(e.g., www.yourdomain.com ) by clicking DNS in the navigation menu, then clicking\nthe Add record button, and using the following configuration: Type : CNAME Name : @ (or yourdomain.com ) Target : e.g., www.yourdomain.com Proxy status : Proxied\nAdd a CNAME record to redirect your naked domain ( yourdomain.com ) to the www subdomain\n(e.g., www.yourdomain.com ) by clicking DNS in the navigation menu, then clicking\nthe Add record button, and using the following configuration:\n`yourdomain.com`\n`www`\n`www.yourdomain.com`\n- Type : CNAME\n- Name : @ (or yourdomain.com )\nName : @ (or yourdomain.com )\n`@`\n`yourdomain.com`\n- Target : e.g., www.yourdomain.com\nTarget : e.g., www.yourdomain.com\n`www.yourdomain.com`\n- Proxy status : Proxied\nProxy status : Proxied\n- Add another second CNAME record to redirect the www subdomain (e.g., www.yourdomain.com ) to\nyour database address (e.g., mycompany.odoo.com ) using the following configuration: Type : CNAME Name : e.g., www.yourdomain.com Target : e.g., mycompany.odoo.com Proxy status : DNS only\nAdd another second CNAME record to redirect the www subdomain (e.g., www.yourdomain.com ) to\nyour database address (e.g., mycompany.odoo.com ) using the following configuration:\n`www`\n`www.yourdomain.com`\n`mycompany.odoo.com`\n- Type : CNAME\n- Name : e.g., www.yourdomain.com\nName : e.g., www.yourdomain.com\n`www.yourdomain.com`\n- Target : e.g., mycompany.odoo.com\nTarget : e.g., mycompany.odoo.com\n`mycompany.odoo.com`\n- Proxy status : DNS only\nProxy status : DNS only\n- Define a redirect rule to permanently redirect (301) your naked domain (e.g., yourdomain.com )\nto both http:// and https:// by going to Rules ⣠Create rule ⣠Products ,\nand clicking Create a Rule under Redirect Rules : Enter any Rule name . Under the If incoming requests match⦠section, select Custom filter\nexpression and use the following configuration: Field : Hostname Operator : equals Value : e.g., yourdomain.com Under the Then⦠section, use the following configuration: Type : Dynamic Expression : e.g., concat(\"https://www.yourdomain.com\", http.request.uri.path) Status code : 301 Preserve query string : enabled\nDefine a redirect rule to permanently redirect (301) your naked domain (e.g., yourdomain.com )\nto both http:// and https:// by going to Rules ⣠Create rule ⣠Products ,\nand clicking Create a Rule under Redirect Rules :\n`yourdomain.com`\n`http://`\n`https://`\n- Enter any Rule name .\nEnter any Rule name .\n- Under the If incoming requests match⦠section, select Custom filter\nexpression and use the following configuration: Field : Hostname Operator : equals Value : e.g., yourdomain.com\nUnder the If incoming requests match⦠section, select Custom filter\nexpression and use the following configuration:\n- Field : Hostname\n- Operator : equals\n- Value : e.g., yourdomain.com\nValue : e.g., yourdomain.com\n`yourdomain.com`\n- Under the Then⦠section, use the following configuration: Type : Dynamic Expression : e.g., concat(\"https://www.yourdomain.com\", http.request.uri.path) Status code : 301 Preserve query string : enabled\nUnder the Then⦠section, use the following configuration:\n- Type : Dynamic\n- Expression : e.g., concat(\"https://www.yourdomain.com\", http.request.uri.path)\nExpression : e.g., concat(\"https://www.yourdomain.com\", http.request.uri.path)\n`concat(\"https://www.yourdomain.com\",http.request.uri.path)`\n- Status code : 301\n- Preserve query string : enabled\nPreserve query string : enabled\n- Go to SSL/TLS and set the encryption mode to Full .\nGo to SSL/TLS and set the encryption mode to Full .\n\n### Map a domain name to an Odoo database\n\nEnsure you have added a CNAME record to your domain nameâs DNS before mapping your domain name to your Odoo database.\nFailing to do so may prevent the validation of the SSL certificate and\ncould result in a certificate name mismatch error. Web browsers often display this as a\nwarning, such as âYour connection is not privateâ .\nIf you encounter this error after mapping the domain name to your database, wait up to five\ndays, as the validation may still happen. If not, you can submit a support ticket , including screenshots of your CNAME records.\nOpen the database manager , click the ( gear ) button next to the database name, select Domain\nNames , and click Use my own domain . Then, enter the domain name (e.g., www.yourdomain.com ), click Verify and I confirm, itâs done .\n`www.yourdomain.com`\nOn Odoo.sh, go to Branches ⣠select your branch ⣠Settings ⣠Custom\ndomains , type the domain name to add, then click Add domain .\nOdoo.sh branches: settings tab\n\n#### SSL encryption (HTTPS protocol)\n\nSSL encryption allows visitors to navigate a website through a secure connection, which appears\nas the https:// protocol at the beginning of a web address rather than the non-secure http:// protocol.\nOdoo generates a separate SSL certificate for each domain mapped to a database using Letâs Encryptâs certificate authority and ACME protocol .\n- Certificate generation may take up to 24 hours.\nCertificate generation may take up to 24 hours.\n- Several attempts to validate your certificate are made for five days after you map your domain\nname to your database.\nSeveral attempts to validate your certificate are made for five days after you map your domain\nname to your database.\n- If you use another service, you can keep using it or change to Odooâs.\nIf you use another service, you can keep using it or change to Odooâs.\nNo SSL certificate is generated for naked domains (domain names without any subdomains\nor prefixes) .\n\n#### Web base URL of a database\n\nIf the Website app is installed on your database, skip this section and continue from the Map a domain name to a website section.\nThe web base URL or root URL of a database affects your main website address and all the\nlinks sent to your customers (e.g., quotations, portal links, etc.).\nTo make your custom domain name the web base URL of your database, access your database using your\ncustom domain name and log in as an administrator (a user part of the Settings access right\ngroup under Administration) .\nIf you access your database with the original Odoo address (e.g., mycompany.odoo.com ), the web\nbase URL of your database will be updated accordingly. To prevent the automatic update of the web base URL when an administrator logs in to the database, activate the developer mode , go to Settings ⣠Technical ⣠System Parameters ⣠New ,\nand enter web.base.url.freeze as the Key and True as the Value .\n`mycompany.odoo.com`\n`web.base.url.freeze`\n`True`\nYou can also set the web base URL manually. To do so, activate the developer mode , go to Settings ⣠Technical ⣠System Parameters , and\nsearch for the web.base.url key (create it if necessary) and enter the full address of your\nwebsite as the value (e.g., https://www.yourdomain.com ). The URL must include the protocol https:// (or http:// ) and not end with a slash ( / ).\n`web.base.url`\n`https://www.yourdomain.com`\n`https://`\n`http://`\n`/`\n\n### Map a domain name to an Odoo website\n\nMapping your domain name to your website is different than mapping it to your database:\n- It defines your domain name as the main one for your website, helping search engines to index your\nwebsite correctly.\nIt defines your domain name as the main one for your website, helping search engines to index your\nwebsite correctly.\n- It defines your domain name as the base URL for your database, including portal links sent by\nemail to your customers.\nIt defines your domain name as the base URL for your database, including portal links sent by\nemail to your customers.\n- If you have multiple websites, it maps your domain name to the appropriate website.\nIf you have multiple websites, it maps your domain name to the appropriate website.\nGo to Website ⣠Configuration ⣠Settings . If you have multiple websites, select\nthe one you want to configure. In the Domain field, enter the address of your website\n(e.g., https://www.yourdomain.com ) and Save .\n`https://www.yourdomain.com`\nMapping your domain name to your Odoo website prevents Google Search from indexing your original\ndatabase address (e.g., mycompany.odoo.com ).\n`mycompany.odoo.com`\nIf both addresses are already indexed, it may take some time before the indexation of the second\naddress is removed from Google Search. You can use the Google Search Console to fix the issue.\nIf you have multiple websites and companies on your database, make sure to select the right Company under Website ⣠Configuration ⣠Settings . Doing so\nindicates Odoo which URL to use as the base URL according to\nthe company in use.", "headings": ["Register a free domain name with Odoo", "DNS records", "Mailbox", "Configure an existing domain name", "Add a CNAME record", "Redirect a naked domain", "Map a domain name to an Odoo database", "Map a domain name to an Odoo website"], "doc_id": "8dc26dac3eb70fec"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/configuration/google_search_console.html", "title": "Google Search Console", "module": "website", "section": "Google Search Console", "text": "# Google Search Console\n\nGoogle Search Console is a free web service provided by Google that allows website owners to\nmonitor, maintain, and troubleshoot their siteâs presence in Google Search results. It offers\nvaluable insights into how Google views and interacts with your site, helping you optimize its\nperformance.\nTo enable Google Search Console for your website, go to Google Search Console . Then, select the property type Domain property or URL prefix property .\n\n## Domain property\n\nA domain property in Search Console tracks all versions of your website, including subdomains and\nprotocols (http/https). This comprehensive view allows you to analyze your overall websiteâs search\nperformance and make informed decisions to optimize its visibility. Enter the domain, e.g., example.com and click Continue .\n`example.com`\n- The domain property type can only be verified via DNS record .\nThe domain property type can only be verified via DNS record .\n- Google suggests creating at least one domain property to represent your site, as it is the most\ncomplete view of your website information.\nGoogle suggests creating at least one domain property to represent your site, as it is the most\ncomplete view of your website information.\n\n## URL prefix property\n\nThis type of verification is usually simpler as you have multiple verification methods, such as\nusing your existing Google Analytics or Tag Manager account. It also makes sense to view a section\nof your website separately. For example, if you work with a consultant on a specific part of your\nwebsite, you might want to verify this part separately to limit access to your data. Enter the URL,\ne.g., https://example.odoo.com/ and click Continue .\n`https://example.odoo.com/`\n\n## Site ownership verification\n\nBefore using Google Search Console for your website, you must verify your site ownership. This\nverification process is a security measure that protects both you and Google. It ensures that only\nauthorized users have access to sensitive data and that you have control over how your website is\ntreated in Google Search.\nFive methods are available to do this:\n- HTML file upload\n- DNS record\n- HTML tag\n- Google Analytics tracking code\nGoogle Analytics tracking code\n- Google Tag Manager container snippet\nGoogle Tag Manager container snippet\nThe best method for you depends on your comfort level and technical expertise. For beginners,\nusing a file upload or HTML tag might be easiest. Those options are convenient if you already use Google Analytics or Google Tag Manager . You need to access your domain registrarâs settings for domain\nverification.\n\n### HTML file upload\n\nThis method involves uploading an HTML file provided by Google containing the verification code you\nhave to put in your Odooâs Website Settings. Google verifies ownership by checking for this code.\n- Once you added your website URL under the URL prefix option and clicked continue ,\nexpand the HTML file section where you find a download button.\nOnce you added your website URL under the URL prefix option and clicked continue ,\nexpand the HTML file section where you find a download button.\n- Download your HTML verification file and copy the verification code (e.g., google123abc.html ).\nDownload your HTML verification file and copy the verification code (e.g., google123abc.html ).\n`google123abc.html`\n- In your Odoo database, go to Website ⣠Configuration ⣠Settings ,\nand enable Google Search Console in the SEO section. Paste the\nverification code (e.g., google123abc.html ) in the dedicated field.\nIn your Odoo database, go to Website ⣠Configuration ⣠Settings ,\nand enable Google Search Console in the SEO section. Paste the\nverification code (e.g., google123abc.html ) in the dedicated field.\n`google123abc.html`\n- In Google Search Console, click Verify . If you perform the steps above correctly,\nverification should be done immediately.\nIn Google Search Console, click Verify . If you perform the steps above correctly,\nverification should be done immediately.\n\n### HTML tag\n\nThis method involves copying a meta tag provided by Google and pasting it into your Odoo website.\nTo verify your site ownership using an HTML tag, follow these instructions:\n- Expand the HTML tag section.\nExpand the HTML tag section.\n- Copy the HTML tag to clipboard.\nCopy the HTML tag to clipboard.\n- On your Odoo website, click Edit in the upper-right corner, go to\nthe Theme tab, scroll down to the Advanced section, then\nclick <head> and </body> next to Code Injection .\nPaste the copied tag into the first field ( <head> ), and click Save .\nOn your Odoo website, click Edit in the upper-right corner, go to\nthe Theme tab, scroll down to the Advanced section, then\nclick <head> and </body> next to Code Injection .\nPaste the copied tag into the first field ( <head> ), and click Save .\n- Return to GSC and click Verify .\nReturn to GSC and click Verify .", "headings": ["Domain property", "URL prefix property", "Site ownership verification", "HTML file upload", "HTML tag"], "doc_id": "1e6f489f90163faf"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/configuration/multi_website.html", "title": "Multiple websites", "module": "website", "section": "Multiple websites", "text": "# Multiple websites\n\nOdoo allows you to create multiple websites from the same database. This can be useful, for example,\nif you have multiple brands operating under your organization, or to create separate websites for\ndifferent products/services, or different audiences. In these cases, having different websites can\nhelp avoid confusion and make it easier to tailor your digital outreach strategies and reach your\ntarget audience.\nEach website can be designed and configured independently with its own domain name , theme , pages , menus , languages , products , assigned sales team, etc. They can also share content and pages .\nDuplicate content (i.e., pages and content shared between multiple websites) can have a negative\nimpact on Search Engine Optimization (SEO) .\n\n## Website creation\n\nTo create a new website, proceed as follows:\n- Go to Website ⣠Configuration ⣠Settings .\nGo to Website ⣠Configuration ⣠Settings .\n- Click + New Website .\nClick + New Website .\n- Specify the Website Name and Website domain . Each website must be\npublished under its own domain .\nSpecify the Website Name and Website domain . Each website must be\npublished under its own domain .\n- Adapt the Company name , Languages and Default language if needed.\nAdapt the Company name , Languages and Default language if needed.\n- Click the Create button.\nClick the Create button.\nYou can then start building your new website.\nBy default, all website-related apps that you have installed (e.g. eCommerce , Forum , Blog , etc.) and their related website pages are also available on the\nnew website. You can remove them by amending the websiteâs menu.\n\n## Switching websites\n\nTo switch from one website to another, click the menu next to the +New button in the\ntop right corner and select the website you want to switch to.\nWhen you switch websites, you are redirected to the homepage of the other website.\n\n## Website-specific configuration\n\nMost website settings are website-specific, which means they can be enabled/disabled per website. To\nadapt the settings for a website, go to Website ⣠Configuration ⣠Settings .\nSelect the desired website in the field Settings of Website at the top of the Settings page, in the yellow banner. Then, adapt the options for that specific\nwebsite.\n- Websites are created with the default settings; the settings are not copied from one website to\nthe other.\nWebsites are created with the default settings; the settings are not copied from one website to\nthe other.\n- In a multi-company environment , each website can be\nlinked to a specific company in your database so that only company-related data (e.g.,\nproducts, jobs, events, etc.) is displayed on the website. To display company-specific data,\nset the desired company in the Company field.\nIn a multi-company environment , each website can be\nlinked to a specific company in your database so that only company-related data (e.g.,\nproducts, jobs, events, etc.) is displayed on the website. To display company-specific data,\nset the desired company in the Company field.\n\n### Content availability\n\nBy default, pages, products, events, etc. created from the frontend (using the +New button) are only available on the website from which it was created. Records\ncreated from the backend, however, are made available on all websites by default. The contentâs\navailability can be changed in the backend, in the Website field. For example, for\nproducts, go to eCommerce ⣠Products , then select the product and go to the Sales tab. For forums, go to Configuration ⣠Forums , then select the\nforum.\nRecords and features can be made available:\n- On all websites: leave the Website field empty;\nOn all websites: leave the Website field empty;\n- Only on one website: set the Website field accordingly;\nOnly on one website: set the Website field accordingly;\n- On some websites: in this case, you should duplicate the item and set the Website field.\nOn some websites: in this case, you should duplicate the item and set the Website field.\n\n#### Website pages\n\nTo modify the website on which a page is to be published, proceed as follows:\n- Go to Website ⣠Site ⣠Pages .\nGo to Website ⣠Site ⣠Pages .\n- Open the search panel and select the website on which the page is currently published.\nOpen the search panel and select the website on which the page is currently published.\n- Tick the check box next to the page(s) you want to change.\nTick the check box next to the page(s) you want to change.\n- Click the Website field and select the website, or empty it to publish the page on\nall websites.\nClick the Website field and select the website, or empty it to publish the page on\nall websites.\nEach website must have its own homepage; you may not use the same homepage for several websites.\n\n## eCommerce features\n\neCommerce features such as products, eCommerce categories, pricelists, discounts, payment providers,\netc. can be restricted to a specific website .\n\n### Customer accounts\n\nYou can allow your customers to use the same account on all of your websites by enabling the Shared\nCustomer Accounts check box in the website settings.\n\n### Pricing\n\nProducts can be priced differently based on the website using pricelists . The following configuration is required:\n- Go to Website ⣠Configuration ⣠Settings .\nGo to Website ⣠Configuration ⣠Settings .\n- Scroll down to the Shop - Products section and select the Pricelists option Multiple prices per product .\nScroll down to the Shop - Products section and select the Pricelists option Multiple prices per product .\n- Click Pricelists to define new pricelists or edit existing ones.\nClick Pricelists to define new pricelists or edit existing ones.\n- Select the pricelist or click New to create a new one, then select the Configuration tab and set the Website field.\nSelect the pricelist or click New to create a new one, then select the Configuration tab and set the Website field.\n\n## Reporting\n\n### Analytics\n\nEach website has its own analytics . To switch between websites, click\nthe buttons in the upper right corner.\n\n### Other reporting data\n\nOther reporting data such as eCommerce dashboard data, online sales analyses and visitors can be\ngrouped by website if necessary. Open the search panel and select Group by â> Website .", "headings": ["Website creation", "Switching websites", "Website-specific configuration", "Content availability", "eCommerce features", "Customer accounts", "Pricing", "Reporting", "Analytics", "Other reporting data"], "doc_id": "4c982f35164f1607"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/configuration/spam_protection.html", "title": "Forms spam protection", "module": "website", "section": "Forms spam protection", "text": "# Forms spam protection\n\nCloudflare Turnstile and Google\nreCAPTCHA v3 protect website forms against spam and\nabuse. They attempt to distinguish between human and bot submissions using non-interactive\nchallenges based on telemetry and visitor behavior.\nWe recommend using Cloudflare Turnstile , as reCAPTCHA v3 may not be compliant with local data\nprotection regulations.\nAll pages using the Form , Newsletter Block , or Newsletter\nPopup snippets are protected by both tools.\n- Cloudflare Turnstileâs documentation\nCloudflare Turnstileâs documentation\n- Googleâs reCAPTCHA v3 guide\nGoogleâs reCAPTCHA v3 guide\n\n## Cloudflare Turnstile configuration\n\n### On Cloudflare\n\n- Create or log in to a Cloudflare account.\nCreate or log in to a Cloudflare account.\n- In the dashboardâs navigation sidebar, go to Application security ⣠Turnstile .\nIn the dashboardâs navigation sidebar, go to Application security ⣠Turnstile .\n- On the Overview page, click Add widget .\nOn the Overview page, click Add widget .\n- Add a Widget name to easily identify it.\nAdd a Widget name to easily identify it.\n- Click Add Hostnames , enter a custom hostname (e.g., example.com or subdomain.example.com ), then click Add twice.\nClick Add Hostnames , enter a custom hostname (e.g., example.com or subdomain.example.com ), then click Add twice.\n- Select a Widget Mode : The Managed mode is recommended , as it allows Turnstile to prompt visitors to\nconfirm they are human when necessary. For the Non-interactive and Invisible modes, visitors are never\nprompted to interact. In Non-interactive mode, a loading widget can be displayed to\nwarn visitors that Turnstile protects the form; however, the widget is not supported by Odoo. Note If the Turnstile check fails, visitors are not able to submit the form, and the following\nerror message is displayed:\nSelect a Widget Mode :\n- The Managed mode is recommended , as it allows Turnstile to prompt visitors to\nconfirm they are human when necessary.\nThe Managed mode is recommended , as it allows Turnstile to prompt visitors to\nconfirm they are human when necessary.\n- For the Non-interactive and Invisible modes, visitors are never\nprompted to interact. In Non-interactive mode, a loading widget can be displayed to\nwarn visitors that Turnstile protects the form; however, the widget is not supported by Odoo. Note If the Turnstile check fails, visitors are not able to submit the form, and the following\nerror message is displayed:\nFor the Non-interactive and Invisible modes, visitors are never\nprompted to interact. In Non-interactive mode, a loading widget can be displayed to\nwarn visitors that Turnstile protects the form; however, the widget is not supported by Odoo.\nIf the Turnstile check fails, visitors are not able to submit the form, and the following\nerror message is displayed:\n- Click Create .\nThe generated keys are then displayed. Leave the page open for convenience, as copying the keys in\nOdoo is required next.\n\n### On Odoo\n\n- From the database dashboard, open the Settings app. Under Integrations , enable Cloudflare Turnstile , then click Save .\nFrom the database dashboard, open the Settings app. Under Integrations , enable Cloudflare Turnstile , then click Save .\n- Open the Cloudflare Turnstile page, copy the Site Key , and paste it into the CF Site Key field in Odoo.\nOpen the Cloudflare Turnstile page, copy the Site Key , and paste it into the CF Site Key field in Odoo.\n- Open the Cloudflare Turnstile page, copy the Secret Key , and paste it into the CF Secret Key field in Odoo.\nOpen the Cloudflare Turnstile page, copy the Secret Key , and paste it into the CF Secret Key field in Odoo.\n- Click Save .\nNavigate to Application security ⣠Turnstile in your Cloudflare account to View analytics and access additional settings.\n\n## reCAPTCHA v3 configuration\n\nreCAPTCHA v3 may not be compliant with local data protection regulations.\n\n### On Google\n\n- Sign up or sign in to a Google account.\nSign up or sign in to a Google account.\n- Open the reCAPTCHA website registration page .\nOpen the reCAPTCHA website registration page .\n- Enter a Label for the website, e.g., example.com .\nEnter a Label for the website, e.g., example.com .\n- Leave the reCAPTCHA type set to Score based (v3) .\nLeave the reCAPTCHA type set to Score based (v3) .\n- Enter one or more Domains (e.g., example.com or subdomain.example.com ).\nEnter one or more Domains (e.g., example.com or subdomain.example.com ).\n- Under Google Cloud Platform , a project is automatically created or selected if one\nalready exists for the logged-in Google account. Click the field to select a project manually\nor rename the automatically created project.\nUnder Google Cloud Platform , a project is automatically created or selected if one\nalready exists for the logged-in Google account. Click the field to select a project manually\nor rename the automatically created project.\n- Agree to the terms of service.\nAgree to the terms of service.\n- Click Submit .\nThe generated keys are then displayed. Leave the page open for convenience, as copying the keys in\nOdoo is required next.\n\n### On Odoo\n\n- From the database dashboard, open the Settings app. Under Integrations , navigate\nto the reCAPTCHA section. Warning Do not uninstall the Google reCAPTCHA integration module, as it would also remove\nmany other modules.\nFrom the database dashboard, open the Settings app. Under Integrations , navigate\nto the reCAPTCHA section.\nDo not uninstall the Google reCAPTCHA integration module, as it would also remove\nmany other modules.\n- Open the Google reCAPTCHA page, click COPY SITE KEY , and paste it into the Site Key field in Odoo.\nOpen the Google reCAPTCHA page, click COPY SITE KEY , and paste it into the Site Key field in Odoo.\n- Open the Google reCAPTCHA page, click COPY SECRET KEY , and paste it into the Secret Key field in Odoo.\nOpen the Google reCAPTCHA page, click COPY SECRET KEY , and paste it into the Secret Key field in Odoo.\n- Change the default Minimum score ( 0.70 ) if necessary, using a value between 0.00 and 1.00 . The higher the threshold is, the harder it is to pass the reCAPTCHA, and vice\nversa.\nChange the default Minimum score ( 0.70 ) if necessary, using a value between 0.00 and 1.00 . The higher the threshold is, the harder it is to pass the reCAPTCHA, and vice\nversa.\n`0.70`\n`0.00`\n`1.00`\n- Click Save .\nInterpret reCAPTCHA scores - Google documentation\nYou can notify visitors that reCAPTCHA protects a form . To do\nso, navigate to the form and open the website editor. Then, click somewhere on the form, go to the Customize tab, and, in the Form section, enable Show ReCAPTCHA\nPolicy .\nIf the reCAPTCHA check fails, the following error message is displayed:\nAnalytics and additional settings are available on Googleâs reCAPTCHA administration page . For example, you can receive email alerts if Google\ndetects suspicious traffic on your website or view the percentage of suspicious requests, which\ncould help you determine the right minimum score.", "headings": ["Cloudflare Turnstile configuration", "On Cloudflare", "On Odoo", "reCAPTCHA v3 configuration", "On Google", "On Odoo"], "doc_id": "518fc33866fb755f"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/configuration/translate.html", "title": "Translations", "module": "website", "section": "Translations", "text": "# Translations\n\nYour website is displayed in the language that matches your visitorâs browser. If the browserâs\nlanguage has not been installed and added to your website, the content is shown in the default language . When additional languages are installed, users\ncan choose their preferred language using the language selector .\nThe Translate feature on your website allows automatic translation of\nstandard terms and provides a tool for manual content translation.\n\n## Install languages\n\nTo allow translation of your website, you must first install the required languages and add them to your website. To do so, go to Website â£\nConfiguration ⣠Settings and click Install languages in the Website Info section. In the dialog box that opens, select the Languages you\nwant from the dropdown menu, tick the required Websites to translate , and\nclick Add .\nTo edit your websiteâs languages, go to Website -â> Configuration -â> Settings and\nadd/remove the required languages in/from the Languages field in the Website info section.\nAlternatively, once the languages have been installed, you can add them from the language\nselector . You might then need to refresh your page to see the new\nlanguage.\n\n### Default language\n\nWhen multiple languages are available on your website, you can set a default language to be used if\nthe visitorâs browser language is not available. To do so, go to Website â->\nConfiguration -â> Settings , and select a language in the Default field.\nThis field is only visible if multiple languages have been installed and added to your website.\n\n## Language selector\n\nYour websiteâs visitors can switch languages using the language selector, available by default in\nthe Copyright section at the bottom of the page. To edit the language selector menu:\n- Go to your website and click Edit ;\nGo to your website and click Edit ;\n- Click the language selector available in the Copyright block and go to the Copyright section of the website builder;\nClick the language selector available in the Copyright block and go to the Copyright section of the website builder;\n- Set the Language Selector field to either Dropdown or Inline .\nClick None if you do not want to display the Language selector ;\nSet the Language Selector field to either Dropdown or Inline .\nClick None if you do not want to display the Language selector ;\n- Click Save .\nYou can also add the Language Selector to the Header of your page. To do\nso, click the Header block and go to the Navbar section to edit the Language Selector .\n\n## Translate your website\n\nSelect your desired language from the language selector to see your content in another language.\nThen, click the Translate button in the top-right corner to manually activate the\ntranslation mode so that you can translate what has not been translated automatically by Odoo.\nTranslated text strings are highlighted in green; text strings that were not translated\nautomatically are highlighted in yellow.\nIn this mode, you can only translate text. To change the pageâs structure, you must edit the master\npage, i.e., the page in the original language of the database. Any changes made to the master page\nare automatically applied to all translated versions.\nTo replace the original text with the translation, click the block, edit its contents, and Save .\nWhen a website supports multiple languages, the core URL structure remains consistent across\nlanguages, while specific elements like product names or categories are translated. For example, https://www.mywebsite.com/shop/product/my-product-1 is the English version of a product page,\nwhile https://www.mywebsite.com/fr/shop/product/mon-produit-1 is the French version of the same\npage. The structure (/shop/product/) stays unchanged, but the translated elements (e.g., product\nname) adapt to the selected language.\n`https://www.mywebsite.com/shop/product/my-product-1`\n`https://www.mywebsite.com/fr/shop/product/mon-produit-1`\nOnce the desired language is installed, you can translate some items from the backend (e.g., the\nproductâs name in the product form). To do so, click the language code (e.g., EN ) next\nto the text you want to translate and add the translation.\n\n### Content visibility by language\n\nYou can hide content (such as images or videos, for example) depending on the language. To do so:\n- Click Edit and select an element of your website;\nClick Edit and select an element of your website;\n- Go to the Text - Image section and Visibility ;\nGo to the Text - Image section and Visibility ;\n- Click No condition and select Conditionally instead;\nClick No condition and select Conditionally instead;\n- Go to Languages to configure the condition(s) to apply by selecting Visible for or Hidden for , and click Choose a record to\ndecide which languages are impacted.\nGo to Languages to configure the condition(s) to apply by selecting Visible for or Hidden for , and click Choose a record to\ndecide which languages are impacted.", "headings": ["Install languages", "Default language", "Language selector", "Translate your website", "Content visibility by language"], "doc_id": "dc248f0dc8323761"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/mail_groups.html", "title": "Mail groups", "module": "website", "section": "Mail groups", "text": "# Mail groups\n\nThe mail groups feature allows website visitors to have a public discussion by email. They can\njoin a group to receive emails from other group members (i.e., website users who have subscribed to\nthe group) and send new ones to all group members.\nTo activate the feature, install the Website Mail Group ( website_mail_group ) module.\n`website_mail_group`\nThe mail groups feature is not to be confused with the Mailing lists in the Email Marketing app.\n\n## Configuring mail groups\n\nTo configure mail groups, proceed as follows:\n- Configure a custom email alias domain by accessing the General settings , scrolling down to\nthe Discuss section, enabling the Custom Email Server feature, and\nentering the Alias domain (e.g., @mycompany.com ).\nConfigure a custom email alias domain by accessing the General settings , scrolling down to\nthe Discuss section, enabling the Custom Email Server feature, and\nentering the Alias domain (e.g., @mycompany.com ).\n`@mycompany.com`\n- Go to Website ⣠Configuration ⣠Mailing Lists , then click New .\nGo to Website ⣠Configuration ⣠Mailing Lists , then click New .\n- Specify a Group Name , the Email Alias , and a Description .\nSpecify a Group Name , the Email Alias , and a Description .\n- Enable Moderate this group and specify the Moderators if you wish to moderate messages from this group. Alternatively, if the\ngroup is not moderated, you can define Responsible Users who can manage the messages\nin the group.\nEnable Moderate this group and specify the Moderators if you wish to moderate messages from this group. Alternatively, if the\ngroup is not moderated, you can define Responsible Users who can manage the messages\nin the group.\n- In the Privacy tab, define who can subscribe to the mail group: Everyone : to make the mail group public so anyone can subscribe to it; Members only : to only allow users defined as members to subscribe to the mail group; Selected group of users : to only allow users from the Authorized group to subscribe to the mail group.\nIn the Privacy tab, define who can subscribe to the mail group:\n- Everyone : to make the mail group public so anyone can subscribe to it;\nEveryone : to make the mail group public so anyone can subscribe to it;\n- Members only : to only allow users defined as members to subscribe to the mail group;\nMembers only : to only allow users defined as members to subscribe to the mail group;\n- Selected group of users : to only allow users from the Authorized group to subscribe to the mail group.\nSelected group of users : to only allow users from the Authorized group to subscribe to the mail group.\n- If the mail group is moderated, you can automatically notify authors when their message is\npending moderation by enabling Automatic notification in the Notify\nMembers tab and writing the Notification message .\nIf the mail group is moderated, you can automatically notify authors when their message is\npending moderation by enabling Automatic notification in the Notify\nMembers tab and writing the Notification message .\n- If you wish to send out guidelines to new subscribers, enable Send guidelines to new\nsubscribers and write them in the Guidelines tab. This is particularly useful when\nthe mail group is moderated.\nIf you wish to send out guidelines to new subscribers, enable Send guidelines to new\nsubscribers and write them in the Guidelines tab. This is particularly useful when\nthe mail group is moderated.\n\n## Using mail groups\n\n### Subscribing/unsubscribing\n\nBased on the configuration of the mail group ,\nusers can subscribe to and unsubscribe from mail groups from the website page ( /groups by default).\n`/groups`\nInternal users can also do this from Website ⣠Configuration ⣠Mailing Lists ,\nusing the Join and Leave buttons.\n\n### Sending messages\n\nTo send messages to a mail group, website users can email the mail groupâs email address . Internal users can also create messages directly from\nOdoo. To do so, go to Website ⣠Configuration ⣠Mailing Lists , select the mail\ngroup, click the Emails smart button, and click New . Then, fill in the\nfields and click Send .\n- The list of messages can also be accessed by selecting the group from the /groups website\npage.\nThe list of messages can also be accessed by selecting the group from the /groups website\npage.\n`/groups`\n- Group members can also unsubscribe from the group, access the mail group page, and send emails\nto the group using the URLs in the footer of any group email they have received.\nGroup members can also unsubscribe from the group, access the mail group page, and send emails\nto the group using the URLs in the footer of any group email they have received.\n\n## Moderating mail group messages\n\nIf the Moderate this group feature has been enabled for the mail group , one of the Moderators must\napprove the groupâs messages before they are dispatched to the other members.\nTo moderate messages, go to Website ⣠Configuration ⣠Mailing Lists , select the\nmail group, and click the To review smart button. You can moderate messages using the\nbuttons at the end of the message line or select a message to view its content and moderate it\naccordingly.\nThe following actions are available:\n- Accept : to accept the email and send it to the mail group members.\nAccept : to accept the email and send it to the mail group members.\n- Reject : to reject the email. In the pop-up window that opens, click Reject Silently to reject the email without notifying the author, or specify an\nexplanation for rejecting the message, then click Send & Reject to reject the message\nand send the explanation to the author.\nReject : to reject the email. In the pop-up window that opens, click Reject Silently to reject the email without notifying the author, or specify an\nexplanation for rejecting the message, then click Send & Reject to reject the message\nand send the explanation to the author.\n- Whitelist : to whitelist the author, i.e. automatically accept all of their emails. As\na result, a moderation rule is created for the authorâs\nemail address with the status Always allow .\nWhitelist : to whitelist the author, i.e. automatically accept all of their emails. As\na result, a moderation rule is created for the authorâs\nemail address with the status Always allow .\n- Ban : to blacklist the author, i.e. automatically discard all their emails. In the\npop-up window that opens, click Ban to ban the author without notifying them, or\nspecify an explanation, then click Send & Ban to ban the author and send them the\nexplanation. As a result, a moderation rule is created for\nthe authorâs email address with the status Permanent ban .\nBan : to blacklist the author, i.e. automatically discard all their emails. In the\npop-up window that opens, click Ban to ban the author without notifying them, or\nspecify an explanation, then click Send & Ban to ban the author and send them the\nexplanation. As a result, a moderation rule is created for\nthe authorâs email address with the status Permanent ban .\nMessages can also be moderated from the groupâs list of messages. Go to Website\n⣠Groups ⣠Mailing List Groups , select the mail group and click the Emails smart\nbutton.\n\n## Whitelisting/Blacklisting authors\n\nYou can whitelist or blacklist an author either directly from a mail group message , or by creating a moderation rule. To do so, go to Website ⣠Configuration ⣠Moderation Rules and click New . Then,\nselect the Group , specify the authorâs Email and set the Status field.\nYou can also access the mail groupâs moderation rules by going to Website â£\nConfiguration ⣠Mailing Lists , selecting the group, then clicking the Moderations smart button.", "headings": ["Configuring mail groups", "Using mail groups", "Subscribing/unsubscribing", "Sending messages", "Moderating mail group messages", "Whitelisting/Blacklisting authors"], "doc_id": "ee359e8eff0c5083"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/reporting/analytics.html", "title": "Website analytics", "module": "website", "section": "Website analytics", "text": "# Website analytics\n\nWebsite analytics helps website owners monitor how people use their site. It provides data on\nvisitor demographics, behavior, and interactions, helping improve websites and marketing strategies.\nYou can track your Odoo websiteâs traffic using Plausible.io or Google Analytics . We recommend using Plausible.io as it is privacy-friendly,\nlightweight, and easy to use.\nThe Plausible Analytics dashboard is also integrated into Odoo and can be accessed\nvia Website ⣠Reporting ⣠Analytics .\n\n## Plausible.io\n\nOdoo hosts its own Plausible.io server and provides a free and ready-to-use Plausible.io\nsolution for Odoo Online databases that use the odoo.com domain. Odoo automatically creates and\nsets up your account. Start using it by going to Website ⣠Reporting â£\nAnalytics .\n- If you use a custom domain name (e.g., example.com ),\nyou need to create your own Plausible.io account and subscription.\nIf you use a custom domain name (e.g., example.com ),\nyou need to create your own Plausible.io account and subscription.\n`example.com`\n- If you already have a Plausible.io account and you want to connect it to your Odoo Online\ndatabase, you must create two ir.config.parameters to use Plausible.ioâs servers. To do so,\nenable the developer mode and go to General Settings â£\nTechnical ⣠System Parameters . Click New and fill in the following Key and Value fields: Key Value website.plausible_script https://plausible.io/js/plausible.js website.plausible_server https://plausible.io\nIf you already have a Plausible.io account and you want to connect it to your Odoo Online\ndatabase, you must create two ir.config.parameters to use Plausible.ioâs servers. To do so,\nenable the developer mode and go to General Settings â£\nTechnical ⣠System Parameters . Click New and fill in the following Key and Value fields:\n`ir.config.parameters`\nwebsite.plausible_script\n`website.plausible_script`\nhttps://plausible.io/js/plausible.js\n`https://plausible.io/js/plausible.js`\nwebsite.plausible_server\n`website.plausible_server`\n`https://plausible.io`\nThen, follow the steps below to connect your existing account with Plausible.io servers.\nDeactivating the free Plausible.io account linked to your Odoo Online database\nwill also remove the existing keys. As a result, new keys will be generated, while all\nhistorical data will remain associated with the old keys. If you plan to deactivate the\naccount, it is recommended to save the existing keys to preserve access to that data.\nIf your database is hosted on Odoo.sh or On-premise , or if you wish to use your own\nPlausible.io account, proceed as follows:\n- Create or sign in to a Plausible.io account using the following link: https://plausible.io/register .\nCreate or sign in to a Plausible.io account using the following link: https://plausible.io/register .\n- If you are creating a new account, go through the registration and activation steps.\nOn the Add website info page, add the Domain of your website without\nincluding www (e.g., example.odoo.com ) and change the Reporting Timezone ,\nif necessary. Click Install Plausible to proceed to the next step. Ignore the Manual installation instructions and click Start collecting data .\nIf you are creating a new account, go through the registration and activation steps.\nOn the Add website info page, add the Domain of your website without\nincluding www (e.g., example.odoo.com ) and change the Reporting Timezone ,\nif necessary. Click Install Plausible to proceed to the next step. Ignore the Manual installation instructions and click Start collecting data .\n`www`\n`example.odoo.com`\n- Once done, click the Plausible.io logo in the upper-left part of the page to access your list of\nwebsites , then click the ( ellipsis ) icon next to the website and select Settings from the drop-down menu.\nOnce done, click the Plausible.io logo in the upper-left part of the page to access your list of\nwebsites , then click the ( ellipsis ) icon next to the website and select Settings from the drop-down menu.\n- In the sidebar, select Visibility , then click Add Shared link .\nIn the sidebar, select Visibility , then click Add Shared link .\n- Enter a Name , leave the Password (optional) field empty, as the Plausible\nanalytics dashboard integration in Odoo does not support it, then click Create\nshared link .\nEnter a Name , leave the Password (optional) field empty, as the Plausible\nanalytics dashboard integration in Odoo does not support it, then click Create\nshared link .\n- Copy the shared link.\nCopy the shared link.\n- In Odoo, go to Website ⣠Configuration ⣠Settings .\nIn Odoo, go to Website ⣠Configuration ⣠Settings .\n- In the SEO section, enable Plausible Analytics , then paste the Shared Link Auth and click Save .\nIn the SEO section, enable Plausible Analytics , then paste the Shared Link Auth and click Save .\nIf you have multiple websites , add your websites to your\nPlausible.io account by going to https://plausible.io/sites and clicking + Add\nWebsite . In Odoo, in the Website settings , make sure to select the website in the Settings of Website field at the top of the page before pasting the Shared link .\nOdoo automatically pushes two custom goals: Lead Generation and Shop .\n`LeadGeneration`\n`Shop`\nPlausible Analytics documentation\n\n## Google Analytics\n\nTo follow your Odoo websiteâs traffic with Google Analytics:\n- Create or sign in to a Google account using the following link: https://analytics.google.com .\nCreate or sign in to a Google account using the following link: https://analytics.google.com .\n- If you are setting up Google Analytics for the first time, click Start measuring and go through the account creation step. If you already have a Google Analytics account, sign in and click the icon\nin the bottom-left corner of the page to access the Admin page. Then, click + Create and select Property from the drop-down menu.\n- If you are setting up Google Analytics for the first time, click Start measuring and go through the account creation step.\nIf you are setting up Google Analytics for the first time, click Start measuring and go through the account creation step.\n- If you already have a Google Analytics account, sign in and click the icon\nin the bottom-left corner of the page to access the Admin page. Then, click + Create and select Property from the drop-down menu.\nIf you already have a Google Analytics account, sign in and click the icon\nin the bottom-left corner of the page to access the Admin page. Then, click + Create and select Property from the drop-down menu.\n- Complete the next steps: property creation ,\nbusiness details and business objectives.\nComplete the next steps: property creation ,\nbusiness details and business objectives.\n- When you reach the Data collection step, choose the Web platform.\nWhen you reach the Data collection step, choose the Web platform.\n- Set up your data stream: Specify your Website URL and a Stream name , then\nclick Create & continue .\nSet up your data stream: Specify your Website URL and a Stream name , then\nclick Create & continue .\n- Copy the Measurement ID .\nCopy the Measurement ID .\n- In Odoo, go to Website ⣠Configuration ⣠Settings .\nIn Odoo, go to Website ⣠Configuration ⣠Settings .\n- In the SEO section, enable Google Analytics , then paste the Measurement ID and click Save .\nIn the SEO section, enable Google Analytics , then paste the Measurement ID and click Save .\nIf you have multiple websites with separate domains, it\nis recommended to create one property per domain. In Odoo, in the Website settings , make sure to select the website in the Settings of Website field at the top of the page before pasting the Measurement ID .\nGoogle documentation on setting up Analytics for a website\n\n## Google Tag Manager\n\nGoogle Tag Manager is a tag management system that allows you to easily update\nmeasurement codes and related code fragments, collectively known as tags on your website or mobile\napp, directly through the code injector.\nGTM is not an analytics tool and does not offer reporting features;\nit is used to collect data and works alongside Google Analytics to provide more detailed\ninsights. In order to use GTM properly, it is recommended to configure Google Analytics as well.\nFor more information refer to the documentation on linking Google Analytics and\nGoogle Tag Manager .\n- Some GTM tags use data layers (e.g., advanced eCommerce tracking data layers) to retrieve\nvariables and send them to Google Analytics. Data layers are currently not managed in Odoo.\nSome GTM tags use data layers (e.g., advanced eCommerce tracking data layers) to retrieve\nvariables and send them to Google Analytics. Data layers are currently not managed in Odoo.\n- Google Tag Manager may not be compliant with local data protection regulations.\nGoogle Tag Manager may not be compliant with local data protection regulations.\nTo configure GTM, proceed as follows:\n- Create or sign in to a Google account by going to https://tagmanager.google.com/ .\nCreate or sign in to a Google account by going to https://tagmanager.google.com/ .\n- In the Accounts tab, click Create Account .\nIn the Accounts tab, click Create Account .\n- Enter an Account Name and select the accountâs Country .\nEnter an Account Name and select the accountâs Country .\n- Enter your websiteâs URL in the Container name field and select the Target\nplatform .\nEnter your websiteâs URL in the Container name field and select the Target\nplatform .\n- Click Create and agree to the Terms of Service.\nClick Create and agree to the Terms of Service.\n- Copy the <head> and <body> codes from the popup window. Then, go to your website, click Edit , go to the Theme tab, scroll down to the Advanced section, then click <head> and </body> next to Code Injection to paste the codes.\nCopy the <head> and <body> codes from the popup window. Then, go to your website, click Edit , go to the Theme tab, scroll down to the Advanced section, then click <head> and </body> next to Code Injection to paste the codes.\n`<head>`\n`<body>`\nThe data is collected in the marketing tools used to monitor the website (e.g., Google Analytics,\nPlausible, Facebook Pixel), not in Odoo.\nSetting up click triggers on Google", "headings": ["Plausible.io", "Google Analytics", "Google Tag Manager"], "doc_id": "bb2cc916c33a47f2"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/reporting/link_tracker.html", "title": "Link tracker", "module": "website", "section": "Link tracker", "text": "# Link tracker\n\nThe link tracker allow you to create tracked links to measure your marketing campaignsâ\neffectiveness. They let you determine which channels bring you the most visitors and make informed\ndecisions.\n\n## Configuration\n\nThe Link Tracker module is not installed by default. You need to enable the Email Marketing option by going to Website ⣠Configuration â£\nSettings. Alternatively, you can install the Link\nTracker module itself or one of the marketing apps.\n\n## Create a traceable URL\n\nTo create and manage tracked links, navigate to Website ⣠Site ⣠Link Tracker .\nFill in the following information and click Get tracked link to generate a tracking URL.\n- URL : The URL which is the target of the campaign. It is automatically populated with\nthe URL from where you access the menu.\nURL : The URL which is the target of the campaign. It is automatically populated with\nthe URL from where you access the menu.\n- Campaign : The specific campaign the link should be associated with. This parameter is\nused to distinguish the different campaigns.\nCampaign : The specific campaign the link should be associated with. This parameter is\nused to distinguish the different campaigns.\n- Medium : The medium describes the category or method through which the visitor arrives\nat your site, such as organic search, paid search, social media ad, email, etc.\nMedium : The medium describes the category or method through which the visitor arrives\nat your site, such as organic search, paid search, social media ad, email, etc.\n- Source : The source identifies the precise platform or website that referred the\nvisitor, such as a search engine, a newsletter, or a website.\nSource : The source identifies the precise platform or website that referred the\nvisitor, such as a search engine, a newsletter, or a website.\nThe Campaign , Medium , and Source are called UTM parameters. They are incorporated in the tracked URL.\nYou can customize the visibility of building blocks\nusing the UTM parameters, amongst other conditions.\n\n## Tracked links overview\n\nTo get an overview of your tracked links, go to Website ⣠Site ⣠Link Tracker and scroll down to Your tracked links section.\n\n### Statistics\n\nTo measure the performance of tracked links, click the Stats button.\nScroll down to the Statistics section to get an overview of the number of clicks of your\ntracked links. You can display information for a specific period by clicking the All Time , Last Month , or Last Week options.", "headings": ["Configuration", "Create a traceable URL", "Tracked links overview", "Statistics"], "doc_id": "f090543b474fc566"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/structure.html", "title": "Structure", "module": "website", "section": "Structure", "text": "# Structure\n\nStructure your website using pages , provide consistent visual\nand navigational framework with headers and footers and\noptimize your online presence with Search Engine Optimization (SEO) .\n\n#### Pages\n\nCreate pages for your website and customize their content and appearance to your needs.\n\n#### Headers and footers\n\nCreate a consistent look and feel for your website by customizing the header and footer, and\nhelp users navigate through web pages effectively by providing clear menus, links, and calls\nto action.\n\n#### Search Engine Optimization (SEO)\n\nImprove your websiteâs visibility and ranking in search engine results.\nOdoo Tutorials: Website", "headings": [], "doc_id": "0299c12d0456049c"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/structure/header_footer.html", "title": "Headers and footers", "module": "website", "section": "Headers and footers", "text": "# Headers and footers\n\nThe website header is the top section of a web page and usually contains elements such as the logo,\nthe menu , the search bar, the sign-in/customer account\nbutton, etc. The footer is displayed at the bottom of a web page and usually contains information\nsuch as contact details, links, legal notices, and other options.\n\n## Header design\n\nTo modify the headerâs design, click on Edit , then click on the header. The following\noptions are available in the Header section of the Customize tab in the\nwebsite editor:\n- Choose a Template from the drop-down menu.\nChoose a Template from the drop-down menu.\n- Select Background settings to change the color palette through different Theme styles , Custom color options, and Gradient ones.\nSelect Background settings to change the color palette through different Theme styles , Custom color options, and Gradient ones.\n- When adding a Border to the header, its size, style, and color can be defined.\nWhen adding a Border to the header, its size, style, and color can be defined.\n- Adapt Round corners to fit the design.\nAdapt Round corners to fit the design.\n- Add a Shadow and define its Color , Offset , Blur ,\nand Spread .\nAdd a Shadow and define its Color , Offset , Blur ,\nand Spread .\n- Add a Scroll Effect . Hover on an effect to preview it.\nAdd a Scroll Effect . Hover on an effect to preview it.\n- Choose the Header Position between Regular , Hidden , and Over The Content . When Over The Content is selected, you can customize\nthe Background and Text Color .\nChoose the Header Position between Regular , Hidden , and Over The Content . When Over The Content is selected, you can customize\nthe Background and Text Color .\n- Show or hide Elements such as text, the search bar, Sign in button, social\nmedia links, Contact us button, and logo.\nShow or hide Elements such as text, the search bar, Sign in button, social\nmedia links, Contact us button, and logo.\nTo finalize changes, click on Save .\nTo hide the header, click on Edit , click on the header, and go to the Theme tab of the website editor. Scroll down to the Advanced section and\ntoggle the Show Header switch to hide/show the header.\n\n## Header content\n\nMenus organize the headerâs content and help users navigate through web pages effectively.\nUser-friendly and well-structured menus also play a crucial role in improving search engine rankings .\n\n### Menu editor\n\nThe menu editor allows to edit the websiteâs header and add menu items and mega menus .\nTo edit the headerâs content, go to Website ⣠Site ⣠Menu Editor . From there,\nyou can:\n- rename a menu item or change its URL using the Edit Menu Item icon;\nrename a menu item or change its URL using the Edit Menu Item icon;\n- delete a menu item using the Delete Menu Item icon;\ndelete a menu item using the Delete Menu Item icon;\n- move a menu item by dragging and dropping it to the desired place in the menu;\nmove a menu item by dragging and dropping it to the desired place in the menu;\n- create a regular drop-down menu by dragging and dropping the sub-menu items to the right,\nunderneath their parent menu.\ncreate a regular drop-down menu by dragging and dropping the sub-menu items to the right,\nunderneath their parent menu.\nYou can also access the menu editor by clicking Edit , selecting any menu item, and\nclicking the Edit Menu icon.\n\n### Add menu items\n\nBy default, pages are added to the menu as drop-down menu items when they are created . To add a new menu item, follow these steps:\n- Go to Website ⣠Site ⣠Menu Editor .\nGo to Website ⣠Site ⣠Menu Editor .\n- In the menu editor, click Add Menu Item .\nIn the menu editor, click Add Menu Item .\n- In the pop-up window, enter the Name to be displayed in the menu.\nIn the pop-up window, enter the Name to be displayed in the menu.\n- Type / in the URL or Email field to search for a page on your website or # to\nsearch for an existing custom anchor.\nType / in the URL or Email field to search for a page on your website or # to\nsearch for an existing custom anchor.\n`/`\n`#`\n- Click OK .\n- Edit the menu structure if needed, then Save .\nEdit the menu structure if needed, then Save .\n\n#### Menu item design\n\nTo modify the menu items, click on Edit , click on a menu item, then go to the Navbar section of the website editor. The following options are available:\n- Adapt the Mobile Alignment .\nAdapt the Mobile Alignment .\n- Choose the Font for the menu items.\nChoose the Font for the menu items.\n- Change the font size, color, and alignment in the Format field.\nChange the font size, color, and alignment in the Format field.\n- Select a Links Style to highlight the current page in the menu.\nSelect a Links Style to highlight the current page in the menu.\n- Change the style of the header buttons .\nChange the style of the header buttons .\n- Choose to display the Sub Menus On Hover or On Click .\nChoose to display the Sub Menus On Hover or On Click .\nThe fields available in the Navbar section can vary depending on the chosen template.\nTo finalize changes, click on Save .\n\n### Mega menus\n\nMega menus are similar to drop-down menus, but instead of a simple list of sub-menus, they display a\npanel divided into groups of navigation options. This makes them suitable for websites with large\namounts of content or e-commerce websites , as they can help include all of\nyour web pages or e-commerce categories in the menu while\nstill making all menu items visible at once.\nTo create a mega menu, go to Website ⣠Site ⣠Menu Editor and click Add Mega Menu Item . Enter the Name of the mega menu in the pop-up, click OK , then Save .\nTo adapt the options and content of the mega menu, click on a mega menu item in the header, then\nclick Edit . Mega menus are composed of building blocks, which means you can customize\neach component individually. For example:\n- Edit the text directly in the building block.\nEdit the text directly in the building block.\n- Edit a menu itemâs URL by selecting the menu item and clicking the Edit link button\nin the small preview pop-up. Type / to search for a page on your website, or # to search for\nan existing custom anchor.\nEdit a menu itemâs URL by selecting the menu item and clicking the Edit link button\nin the small preview pop-up. Type / to search for a page on your website, or # to search for\nan existing custom anchor.\n`/`\n`#`\n- Move a menu item by dragging and dropping the related block to the desired position in the mega\nmenu.\nMove a menu item by dragging and dropping the related block to the desired position in the mega\nmenu.\n- Delete a menu item by deleting the related block.\nDelete a menu item by deleting the related block.\nTo adapt the general layout of the mega menu, go to the Customize tab of the website\neditor, then, in the Mega Menu section:\n- Choose a Template .\n- Pick the Size : either Full-Width or Narrow .\nPick the Size : either Full-Width or Narrow .\nTo finalize changes, click on Save .\n\n### Hide a dynamic menu item for non-logged in users\n\nTo hide a dynamic menu item (i.e., a menu item generated automatically by Odoo, for example, when\nyou install an app or module, such as Events , Courses , etc.) for non-logged in users, follow\nthese steps:\n`Events`\n`Courses`\n- Enable developer mode .\nEnable developer mode .\n- Go to Website ⣠Configuration ⣠Menus .\nGo to Website ⣠Configuration ⣠Menus .\n- Expand the list of menus for the relevant website if needed, then click the menu item you wish to\nhide.\nExpand the list of menus for the relevant website if needed, then click the menu item you wish to\nhide.\n- In the Visible Groups section, click Add a line under Group Name .\nIn the Visible Groups section, click Add a line under Group Name .\n- Search for the group User types / Portal , select it, then click Select .\nSearch for the group User types / Portal , select it, then click Select .\nTo hide the Shop menu item, restrict ecommerce access to logged-in users .\n`Shop`\n\n## Footer design\n\nTo modify the footer, click on Edit , click on the footer, and in the Footer section of the Customize tab in the website editor:\n- Select a Template .\n- Choose its Colors .\n- Choose a Slideout Effect : Regular (i.e., no effect), Slide Hover , or Shadow .\nChoose a Slideout Effect : Regular (i.e., no effect), Slide Hover , or Shadow .\n- Toggle the Copyright switch to hide or show the copyright.\nToggle the Copyright switch to hide or show the copyright.\n- Choose the Border size.\nChoose the Border size.\n- Add a Shadow .\n- Add a Scroll Top Button and choose its position.\nAdd a Scroll Top Button and choose its position.\n- Hide or show the footer by toggling the Page visibility switch.\nHide or show the footer by toggling the Page visibility switch.\nTo finalize changes, click on Save .", "headings": ["Header design", "Header content", "Menu editor", "Add menu items", "Mega menus", "Hide a dynamic menu item for non-logged in users", "Footer design"], "doc_id": "f77057a79f3d1099"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/structure/pages.html", "title": "Pages", "module": "website", "section": "Pages", "text": "# Pages\n\nOdoo allows you to create pages for your website and customize their content and appearance to your\nneeds.\nStatic pages, such as the homepage or any custom-created ,\ncontain fixed content that does not change dynamically. You can manually create these pages, define\ntheir URLs, and adapt their properties as needed. Dynamic pages, on the other hand, are generated dynamically. All pages generated automatically by Odoo, for\nexample, when you install an app or module (e.g., /shop or /blog ) or publish a new product or blog post , are dynamic pages and are therefore managed differently.\n`/shop`\n`/blog`\n\n## Page creation\n\nWebsite pages can be created from the frontend and the backend . To create a new website\npage, proceed as follows:\n- Either open the Website app, click + New in the top-right corner, then select Page ; Or go to Website ⣠Site ⣠Pages and click New .\n- Either open the Website app, click + New in the top-right corner, then select Page ;\nEither open the Website app, click + New in the top-right corner, then select Page ;\n- Or go to Website ⣠Site ⣠Pages and click New .\nOr go to Website ⣠Site ⣠Pages and click New .\n- In the New Page selection menu, click on a template. They are sorted by type: Basic : Multi-purpose page. A blank page is also available to start from scratch. About : Information about your brand. Landing Pages : Summary of company content and info. Gallery : Photos and media showcase. Services : Focus on what youâre selling and contact. Pricing Plans : Highlight on subscription and prices. Team : The people behind your company. Custom : To select a custom template. To add a template to this category, open the\npage you want to save as a template, then go to Site ⣠Properties , enter\nthe Page Title , edit the pageâs properties , enable Is a template , and click Save .\nIn the New Page selection menu, click on a template. They are sorted by type:\n- Basic : Multi-purpose page. A blank page is also available to start from scratch.\nBasic : Multi-purpose page. A blank page is also available to start from scratch.\n- About : Information about your brand.\nAbout : Information about your brand.\n- Landing Pages : Summary of company content and info.\nLanding Pages : Summary of company content and info.\n- Gallery : Photos and media showcase.\nGallery : Photos and media showcase.\n- Services : Focus on what youâre selling and contact.\nServices : Focus on what youâre selling and contact.\n- Pricing Plans : Highlight on subscription and prices.\nPricing Plans : Highlight on subscription and prices.\n- Team : The people behind your company.\nTeam : The people behind your company.\n- Custom : To select a custom template. To add a template to this category, open the\npage you want to save as a template, then go to Site ⣠Properties , enter\nthe Page Title , edit the pageâs properties , enable Is a template , and click Save .\nCustom : To select a custom template. To add a template to this category, open the\npage you want to save as a template, then go to Site ⣠Properties , enter\nthe Page Title , edit the pageâs properties , enable Is a template , and click Save .\n- Enter a Page Title ; this title is used in the menu and the pageâs URL.\nEnter a Page Title ; this title is used in the menu and the pageâs URL.\n- Click Create .\n- If needed, customize the pageâs content and appearance using the website\neditor, then click Save .\nIf needed, customize the pageâs content and appearance using the website\neditor, then click Save .\n- Publish the page.\nDisable Add to menu if the page should not appear in the menu.\n\n## Page management\n\n### Publishing/unpublishing pages\n\nPages need to be published to make them visible to website visitors. To publish or unpublish a\npage, access it and toggle the switch in the upper-right corner from Unpublished to Published , or vice versa.\nIt is also possible to:\n- Publish/unpublish a page from the page properties ,\nwhere you can define a publishing date and/or restrict the pageâs visibility if needed;\nPublish/unpublish a page from the page properties ,\nwhere you can define a publishing date and/or restrict the pageâs visibility if needed;\n- Publish/unpublish several pages at once: go to Website ⣠Site ⣠Pages ,\nselect the pages, then click Action and select Publish or Unpublish .\nPublish/unpublish several pages at once: go to Website ⣠Site ⣠Pages ,\nselect the pages, then click Action and select Publish or Unpublish .\nAlternatively, you can define any static page as your homepage by\ngoing to Website ⣠Site ⣠Properties . Select the Publish tab and\nenable Use as Homepage .\n\n### Page properties\n\nTo modify a static pageâs properties, access the page you wish to\nmodify, then go to Site ⣠Properties , where you can change the following\nproperties:\n- Page URL : Modify the page URL in the field. In this case, you can redirect the\nold URL to the new one if needed. To do so, enable Redirect old URL , then select the Type of redirection : 301 Moved permanently : to redirect the page permanently. 302 Moved temporarily : to redirect the page temporarily.\nPage URL : Modify the page URL in the field. In this case, you can redirect the\nold URL to the new one if needed. To do so, enable Redirect old URL , then select the Type of redirection :\n- 301 Moved permanently : to redirect the page permanently.\n301 Moved permanently : to redirect the page permanently.\n- 302 Moved temporarily : to redirect the page temporarily.\n302 Moved temporarily : to redirect the page temporarily.\n- In Menu : Disable if you donât want the page to appear in the menu.\nIn Menu : Disable if you donât want the page to appear in the menu.\n- Is Homepage : Enable if you want the page to be the homepage of your website.\nIs Homepage : Enable if you want the page to be the homepage of your website.\n- Published : Enable to publish the page.\nPublished : Enable to publish the page.\n- Publishing Date : To publish the page at a specific date and time, click the field,\nset the date and time, then press Enter or click Apply to validate your selection.\nPublishing Date : To publish the page at a specific date and time, click the field,\nset the date and time, then press Enter or click Apply to validate your selection.\n- Indexed : Disable if you donât want the page to appear in search engine results.\nIndexed : Disable if you donât want the page to appear in search engine results.\n- Visibility : Select who can access the page: Public : Everyone can access the page. Signed In : Only signed-in users can access the page. Restricted Group : Select the user access group(s) in the Authorized group field. With Password : Type the password required to access the page in the Password field.\nVisibility : Select who can access the page:\n- Public : Everyone can access the page.\nPublic : Everyone can access the page.\n- Signed In : Only signed-in users can access the page.\nSigned In : Only signed-in users can access the page.\n- Restricted Group : Select the user access group(s) in the Authorized group field.\nRestricted Group : Select the user access group(s) in the Authorized group field.\n- With Password : Type the password required to access the page in the Password field.\nWith Password : Type the password required to access the page in the Password field.\n- Is a template : Toggle the switch to save the page as a template and add it to the Custom category.\nIs a template : Toggle the switch to save the page as a template and add it to the Custom category.\nSome of these properties can also be modified in batch from Website ⣠Site ⣠Pages .\n\n#### Duplicating pages\n\nTo duplicate a page, access the page, then go to Site ⣠Properties , and click Duplicate Page . Enter a Page Name , then click OK . By default,\nthe new page is added after the duplicated page in the menu, but you can remove it from the menu or\nchange its position using the menu editor .\n\n#### Deleting pages\n\nTo delete a page, proceed as follows:\n- Access the page, then go to Site ⣠Properties and click Delete Page .\nAccess the page, then go to Site ⣠Properties and click Delete Page .\n- A pop-up window shows all links referring to the page you want to delete,\norganized by category. To ensure website visitors donât land on an error page, you must update\nall the links on your website referring to the page. To do so, expand a category, then click on a\nlink to open it in a new window. Alternatively, you can set up a redirection for the deleted page.\nA pop-up window shows all links referring to the page you want to delete,\norganized by category. To ensure website visitors donât land on an error page, you must update\nall the links on your website referring to the page. To do so, expand a category, then click on a\nlink to open it in a new window. Alternatively, you can set up a redirection for the deleted page.\n- Once you have updated the links (or set up a redirection ),\ntick the I am sure about this check box, then click OK .\nOnce you have updated the links (or set up a redirection ),\ntick the I am sure about this check box, then click OK .\n\n### URL redirect mapping\n\nURL redirect mapping consists in sending visitors and search engines to a URL different from\nthe one they initially requested. This technique is used, for example, to prevent broken links when\nyou delete a page , modify its URL , or migrate your site from another platform to\nan Odoo domain . It can also be used to improve Search Engine Optimization (SEO) .\nTo access existing URL redirections and create new ones, activate the developer mode and go to Website ⣠Configuration â£\nRedirects .\n- A redirect record is added automatically every time you modify a pageâs URL and enable Redirect Old URL .\nA redirect record is added automatically every time you modify a pageâs URL and enable Redirect Old URL .\n- You can set up redirections for static and dynamic pages .\nYou can set up redirections for static and dynamic pages .\nTo create a new redirection, click the New button, then fill in the fields:\n- Name : Enter a name to identify the redirect.\nName : Enter a name to identify the redirect.\n- Action : Select the type of redirection: 404 Not found : visitors are redirected to a 404 error page when they try to access\nan unpublished or deleted page. 301 Moved Permanently : for permanent redirections of unpublished or deleted static pages . The new URL is shown in search engine results,\nand the redirect is cached by browsers. 302 Moved Temporarily : for short-term redirections, for example, if you are\nredesigning or updating a page. The new URL is neither cached by browsers nor shown in search\nengine results. 308 Redirect/Rewrite : for permanent redirections of existing dynamic pages . The URL is renamed; the new name is shown in search engine results\nand is cached by browsers. Use this redirect type to rename a dynamic page, for example, if you\nwish to rename /shop into /market .\nAction : Select the type of redirection:\n- 404 Not found : visitors are redirected to a 404 error page when they try to access\nan unpublished or deleted page.\n404 Not found : visitors are redirected to a 404 error page when they try to access\nan unpublished or deleted page.\n- 301 Moved Permanently : for permanent redirections of unpublished or deleted static pages . The new URL is shown in search engine results,\nand the redirect is cached by browsers.\n301 Moved Permanently : for permanent redirections of unpublished or deleted static pages . The new URL is shown in search engine results,\nand the redirect is cached by browsers.\n- 302 Moved Temporarily : for short-term redirections, for example, if you are\nredesigning or updating a page. The new URL is neither cached by browsers nor shown in search\nengine results.\n302 Moved Temporarily : for short-term redirections, for example, if you are\nredesigning or updating a page. The new URL is neither cached by browsers nor shown in search\nengine results.\n- 308 Redirect/Rewrite : for permanent redirections of existing dynamic pages . The URL is renamed; the new name is shown in search engine results\nand is cached by browsers. Use this redirect type to rename a dynamic page, for example, if you\nwish to rename /shop into /market .\n308 Redirect/Rewrite : for permanent redirections of existing dynamic pages . The URL is renamed; the new name is shown in search engine results\nand is cached by browsers. Use this redirect type to rename a dynamic page, for example, if you\nwish to rename /shop into /market .\n`/shop`\n`/market`\n- URL from : Enter the URL to be redirected (e.g., /about-the-company ) or search for\nthe desired dynamic page and select it from the list.\nURL from : Enter the URL to be redirected (e.g., /about-the-company ) or search for\nthe desired dynamic page and select it from the list.\n`/about-the-company`\n- URL to : For 301, 302, and 308 redirects, enter the URL to be redirected to. If you\nwant to redirect to an external URL, include the protocol (e.g., https:// ).\nURL to : For 301, 302, and 308 redirects, enter the URL to be redirected to. If you\nwant to redirect to an external URL, include the protocol (e.g., https:// ).\n`https://`\n- Website : Select a specific website.\nWebsite : Select a specific website.\n- Sequence : To define the order in which redirections are performed, e.g., in the case\nof redirect chains (i.e., a series of redirects where one URL is redirected to another one, which\nis itself further redirected to another URL).\nSequence : To define the order in which redirections are performed, e.g., in the case\nof redirect chains (i.e., a series of redirects where one URL is redirected to another one, which\nis itself further redirected to another URL).\nToggle the Activate switch to deactivate the redirection.\n404, 301, and 302 redirections are meant to migrate traffic from unpublished or deleted pages\nto new pages, while the 308 redirect is used for permanent redirections of existing pages.\n- Google documentation on redirects and search\nGoogle documentation on redirects and search\n- Search Engine Optimization (SEO)\nSearch Engine Optimization (SEO)", "headings": ["Page creation", "Page management", "Publishing/unpublishing pages", "Page properties", "URL redirect mapping"], "doc_id": "010a11b1d83a65aa"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/structure/seo.html", "title": "Search Engine Optimization (SEO)", "module": "website", "section": "Search Engine Optimization (SEO)", "text": "# Search Engine Optimization (SEO)\n\nSearch Engine Optimization, often abbreviated as SEO, is a digital marketing strategy to improve a\nwebsiteâs visibility and ranking in search engine results (e.g., in Google). It involves optimizing\nvarious elements on your website, including its content, social sharing, URLs, images, and page\nspeed.\n- Odoo provides several modules to help you build your website content, such as eCommerce , Blog , eLearning , and Forum .\nOdoo provides several modules to help you build your website content, such as eCommerce , Blog , eLearning , and Forum .\n- All Odoo themes rely on the CSS Framework Bootstrap to render efficiently according to the device: desktop, tablet,\nor mobile, which positively impacts ranking in search engines.\nAll Odoo themes rely on the CSS Framework Bootstrap to render efficiently according to the device: desktop, tablet,\nor mobile, which positively impacts ranking in search engines.\nMagic Sheet - Optimize your website [PDF]\n\n## Content optimization\n\nTo optimize a webpageâs SEO, access the page, then go to Website ⣠Site â£\nOptimize SEO .\nIf you change the title of a blog post or the name of a product, the link to the related webpage\nis automatically updated. The old link still functions as Odoo creates a 301 redirect , maintaining the SEO.\n\n### Keywords and Meta tags\n\nThere are two types of keywords in SEO, which serve different purposes.\n\n#### In-text keywords\n\nIn-text keywords appear naturally throughout a pageâs visible content (titles, headings, and body\ntext) and help search engines determine the topic and relevance of the page. These keywords have a\nreal impact on ranking. They cannot be edited in the optimize SEO pop-up.\nIt is strongly recommended to only use one H1 title per page for SEO.\n\n#### Meta tags and meta keywords\n\nMeta tags are HTML elements that provide information about a webpage to search engines and\nwebsite visitors. They play a crucial role in SEO by helping search engines understand the content\nand context of a webpage and attract visitors with appealing content. They can be edited in the optimize SEO pop-up. There are two types of meta tags in Odoo:\n- Title tags specify a webpageâs title and are displayed as a clickable link in search\nengine results. They should be concise, descriptive, and relevant to the pageâs content. You can\nupdate the title tag of your webpage or keep it empty to use the default value based on the pageâs\ncontent.\nTitle tags specify a webpageâs title and are displayed as a clickable link in search\nengine results. They should be concise, descriptive, and relevant to the pageâs content. You can\nupdate the title tag of your webpage or keep it empty to use the default value based on the pageâs\ncontent.\n- Description tags summarize the webpageâs content, often displayed in search engine\nresults below the title. They are used to encourage the user to visit the page. You can update\nthe description tag of your webpage or keep it empty to use the default value based on the pageâs\ncontent.\nDescription tags summarize the webpageâs content, often displayed in search engine\nresults below the title. They are used to encourage the user to visit the page. You can update\nthe description tag of your webpage or keep it empty to use the default value based on the pageâs\ncontent.\nThe Preview card displays how the title and description tags should appear in search\nresults. It also includes the URL of your page.\nMeta keywords are placed in a hidden HTML tag <meta name=\"keywords\"> . Once used to describe a\npageâs topic, this tag is now ignored by major search engines and has little or no impact on SEO.\nTo edit Keywords , enter the keywords you consider essential in this field and click Add to see how they are used at different levels in your content (H1, H2, page title,\npage description, page content) and the related searches in Google. The tool also suggests relevant\nkeywords.\n`<metaname=\"keywords\">`\n\n### Images\n\nThe size of images has a significant impact on page speed, which is an essential criterion for\nsearch engines to optimize SEO ranking.\nCompare how your website ranks using Google Page Speed or Pingdom Website Speed Test .\nOdoo automatically compresses uploaded images and converts them to Webp . With this file format,\nphotos are smaller, which increases the page loading speed and, therefore, gives a better ranking in\nSEO. All images used in Odoo official themes are also compressed by\ndefault. If you are using a third-party theme, it may provide images that are not compressed\nefficiently.\n`Webp`\nTo modify an image from your website, select the image, click Edit , then go to the Customize tab, and adapt the Format in the Image section.\nAlt tags are used to provide context to what an image is displaying, informing search engine\ncrawlers and allowing them to index an image correctly. Adding alt tags keywords in the Description field is essential from an SEO perspective. This description is added to\nthe HTML code of your image, and it is shown when the image cannot be displayed.\n\n#### Image for social share\n\nWhen you share your page on social media, your website logo is selected by default, but you can\nsearch the Unsplash image library or upload any\nother image by clicking the (upload) button.\nYou can set a default social share image. Go to Website ⣠Configuration ⣠Settings in the SEO section and tick the Default Social Share Image checkbox.\n- The Social Preview card displays how the pageâs information would appear when\nshared.\nThe Social Preview card displays how the pageâs information would appear when\nshared.\n\n## Indexation\n\nWebsite indexation is the process by which search engines, such as Google, discover, analyze, and\nstore information about a websiteâs content in their database. Search engine bots, known as crawlers\nor spiders, visit web pages and follow links to collect data, including text, images, and other\nmedia. The purpose of indexation is to make a websiteâs content searchable and discoverable to\nusers. Without being indexed, a website or a specific page on that site will not appear in search\nengine results, regardless of how relevant or well-designed it is. Indexation is a fundamental step\nin SEO , serving as the foundation for a websiteâs visibility\nand organic traffic.\nWhen you first create your website on Odoo, it will not appear directly in search engine\nresults. Search engines need time to crawl and index it, which can take anywhere from a few\ndays to several weeks. For Google, you can use the Search Console and request indexing for specific URLs, though this does not guarantee faster results.\nIf you have an existing website and are migrating, your previous website may still appear instead\nof the new one during that timeframe.\n\n### SEO impact when migrating your existing website to Odoo\n\nIn most cases, migrating to Odoo will not negatively impact your SEO. While no platform can\nguarantee that rankings will remain unchanged, follow these best practices to significantly reduce\nthe risk.\n- Keep your existing content.\nKeep your existing content.\n- Implement redirects from old URLs to their new counterparts.\nImplement redirects from old URLs to their new counterparts.\n- Monitor traffic and indexation to make sure that everything is going well, using Google Search Console .\nMonitor traffic and indexation to make sure that everything is going well, using Google Search Console .\nBy doing this, you help search engines reindex your site and maintain your visibility in search\nresults.\nIt is normal to experience a traffic decrease in the first days.\n\n### Prevent a page from being indexed\n\nTo effectively prevent a page from appearing in search engine results, use one of the following\nmethods:\n- noindex tag: Access the pageâs properties and toggle\nthe Indexed switch off. Note This option is not yet available for dynamic pages .\nnoindex tag: Access the pageâs properties and toggle\nthe Indexed switch off.\nThis option is not yet available for dynamic pages .\n- 404 or 403: Configure the page to return a 404 (Not Found) or 403 (Forbidden) HTTP status\ncode. These codes signal to search engines that the page does not exist or is inaccessible,\nleading to its eventual removal from the index. 404: Configure a 404 redirection. 403: Access the pageâs properties and toggle the Visibility switch off or unpublish the page .\n404 or 403: Configure the page to return a 404 (Not Found) or 403 (Forbidden) HTTP status\ncode. These codes signal to search engines that the page does not exist or is inaccessible,\nleading to its eventual removal from the index.\n- 404: Configure a 404 redirection.\n404: Configure a 404 redirection.\n- 403: Access the pageâs properties and toggle the Visibility switch off or unpublish the page .\n403: Access the pageâs properties and toggle the Visibility switch off or unpublish the page .\n- Google Search Console: Use Google Search Console to request the removal of specific URLs from\nGoogleâs index.\nGoogle Search Console: Use Google Search Console to request the removal of specific URLs from\nGoogleâs index.\n- Google Search Console\nGoogle Search Console\n\n### Prevent a website from being indexed\n\nTo prevent a website from appearing in search engine results, go to Configuration ⣠Settings , then in the Website Info section, add a\nrandom value in the Domain field. Doing so automatically inserts the following tag into\nthe page source:\nThis tag instructs search engines not to index the site. After applying the change, it may take\nseveral days or weeks for search engines to update their results and remove the website.\nThis can be used to prevent websites from test databases from appearing in search results.\n\n## Sitemap\n\nThe sitemap points out website pages and their relation to each other to search engine crawlers.\nOdoo generates a /sitemap.xml file, including all URLs. For performance reasons, this file is\ncached and updated every 12 hours.\n`/sitemap.xml`\nIf your website has a lot of pages, Odoo automatically creates a Sitemap Index file, respecting\nthe sitemaps.org protocol , grouping sitemap URLs in\n45000 chunks per file.\nEvery sitemap entry has three attributes that are computed automatically:\n- <loc> : the URL of a page.\n<loc> : the URL of a page.\n`<loc>`\n- <lastmod> : last modification date of the resource, computed automatically based on the related\nobject. For a page related to a product, this could be the last modification date of the product\nor the page.\n<lastmod> : last modification date of the resource, computed automatically based on the related\nobject. For a page related to a product, this could be the last modification date of the product\nor the page.\n`<lastmod>`\n- <priority> : modules may implement their priority algorithm based on their content (for example,\na forum might assign a priority based on the number of votes on a specific post). The priority of\na static page is defined by its priority field, which is normalized (16 is the default).\n<priority> : modules may implement their priority algorithm based on their content (for example,\na forum might assign a priority based on the number of votes on a specific post). The priority of\na static page is defined by its priority field, which is normalized (16 is the default).\n`<priority>`\nTo prevent pages from appearing in a sitemap, go to Site ⣠Properties , and\ntoggle off the Indexed feature.\n\n## robots.txt\n\nA robots.txt file instructs search engine crawlers which parts of a website they are permitted to\naccess. Its primary purpose is to:\n`robots.txt`\n- Prevent overloading the website: By guiding crawlers away from certain sections, robots.txt\nhelps manage server load.\nPrevent overloading the website: By guiding crawlers away from certain sections, robots.txt\nhelps manage server load.\n- Control access to resources and detailed descriptions: It can prevent crawlers from accessing\nmedia files (images, videos), CSS stylesheets, and JavaScript files, and from reading the content\n(text) of specific pages.\nControl access to resources and detailed descriptions: It can prevent crawlers from accessing\nmedia files (images, videos), CSS stylesheets, and JavaScript files, and from reading the content\n(text) of specific pages.\nWhen indexing your website, search engines first look at the robots.txt file. Odoo automatically\ncreates one robot.txt file available on mydatabase.odoo.com/robots.txt .\n`mydatabase.odoo.com/robots.txt`\nReputable bots adhere to robots.txt; others may require blocking via Cloudflare on your custom domain.\n\n### Edit robots.txt\n\nBy editing a robots.txt file, you can control which site pages are accessible to search engine\ncrawlers. To add custom instructions to the file, go to Website ⣠Configuration\n⣠Settings , scroll down to the SEO section, and click Edit robots.txt .\nIf you do not want robots to crawl the /about-us page of your site, you can edit the\nrobots.txt file to add Disallow: /about-us .\n`/about-us`\n`Disallow:/about-us`\nWhile robots.txt prevents content from being crawled, it does not guarantee that a page\nwill not be indexed . A page can still appear in search results if it is linked to from other\ncrawled pages (indexed by âreferenceâ). Google generally does not recommend using robots.txt to\nblock webpages that you wish to keep out of search results entirely.\n`robots.txt`\n\n## Advanced features\n\n### Structured data markup\n\nStructured data markup is used to generate rich snippets in search engine results. It is a way for\nwebsites to send structured data to search engine crawlers, helping them understand your content and\ncreate well-presented search results.\nBy default, Google supports many rich snippets for content types, including Reviews, People, Products, Businesses, Events, and Organizations.\nMicrodata is a set of tags, introduced with HTML5, that help search engines better understand your\ncontent and display it in a relevant way. Odoo implements microdata as defined in the schema.org specification for events, eCommerce products, forum posts, and\ncontact addresses. This allows your product pages to be displayed in Google using extra information\nlike the price and rating of a product:\n\n### Hreflang HTML tags\n\nOdoo automatically includes hreflang and x-default tags in the code of your websiteâs\nmultilingual pages. These HTML attributes are crucial in informing search engines about a specific\npageâs language and geographical targeting.\n`hreflang`\n`x-default`", "headings": ["Content optimization", "Keywords and Meta tags", "Images", "Indexation", "SEO impact when migrating your existing website to Odoo", "Prevent a page from being indexed", "Prevent a website from being indexed", "Sitemap", "robots.txt", "Edit robots.txt", "Advanced features", "Structured data markup", "Hreflang HTML tags"], "doc_id": "c2d110fdb0a91164"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/web_design.html", "title": "Web design", "module": "website", "section": "Web design", "text": "# Web design\n\nDesign your website using building blocks , customize\nits theme with various options, structure and present content\nwith elements , and display or hide building blocks using visibility settings .\n\n#### Building blocks\n\nDesign your website by dragging and dropping building blocks, then editing them to fit your\ncontent and layout needs.\n\n#### General theme\n\nCustomize your websiteâs theme by adjusting its colors, fonts, and layout.\n\n#### Elements\n\nStructure and present content effectively with elements such as titles, lists, etc.\n\n#### Visibility\n\nDisplay or hide building blocks based on several criteria.\nOdoo Tutorials: Website", "headings": [], "doc_id": "3830016835b6597d"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/web_design/building_blocks.html", "title": "Building blocks", "module": "website", "section": "Building blocks", "text": "# Building blocks\n\nYou can design your website by dragging and dropping building blocks , then editing them to fit your\ncontent and layout needs.\nOdoo Tutorial: Design your website: text and colors\n\n## Add a building block\n\nTo add a block to a website page , access the page, click Edit , then\ndrag and drop the desired building block into the appropriate location. Two types of building blocks\nare available: Categories and Inner Content . Inner Content building blocks can only be added into Categories building blocks.\nWhen clicking on a category block, a popup appears, allowing you to select between multiple\ntemplates for each category.\nYou can also search for a specific block in the Insert a block popup using the\nsearch bar.\nOnce the category block is placed, you can drag and drop Inner content blocks\nwithin it. The Inner content blocks allow you to add elements, such as videos, images,\nsocial media buttons, etc., into pre-existing category blocks.\nAccess to certain blocks requires the installation of their respective application or module\n(e.g., eCommerce for the Products block).\nAdd all your social media accounts in one place with the inner content Social Media block. Toggle the switch on or off next to the desired platform and copy/paste your account URL.\n\n### Form\n\nThe Form block is used to collect information from website visitors and create records\nin your database, if applicable. To add a form to a website page, drag and drop the Contact & Forms category, then select the Form block .\n\n#### Action\n\nBy default, when the form is submitted, an email containing the information entered by the visitor\nis automatically sent. Depending on the apps installed on your database, additional actions that can\nautomatically create records may become available. To choose a different action, click Edit , click the form, navigate to the Customize tab, and select the desired Action :\n- Apply for a Job ( Recruitment )\nApply for a Job ( Recruitment )\n- Create a Customer ( eCommerce )\nCreate a Customer ( eCommerce )\n- Create a Ticket ( Helpdesk )\nCreate a Ticket ( Helpdesk )\n- Create an Opportunity ( CRM )\nCreate an Opportunity ( CRM )\n- Subscribe to Newsletter ( Email Marketing )\nSubscribe to Newsletter ( Email Marketing )\n- Create a Task ( Project )\nCreate a Task ( Project )\nBy default, submitting the form redirects visitors to a Thank you page. Use the URL field to send them to a different page. Alternatively, you can choose not to redirect and keep\nthem on the formâs page by selecting Nothing or Show Message in the On Success field.\n\n#### Fields\n\nTo add a new field to the form, navigate to the Customize tab and click the + Field button next to the Form or Field section. To modify the\nnew (or any other) field on the form, select the field, then use the options available in the Field section of the Customize tab. For example, you can:\n- Change the field Type . Tip It is also possible to select an Existing Field from the database and use the data\nit contains. The fields available depend on the selected action. Property fields added to the\ndatabase can also be used. Click here to preview all field types. Some fields are visually similar, but the data entered must follow a specific format.\nChange the field Type .\nIt is also possible to select an Existing Field from the database and use the data\nit contains. The fields available depend on the selected action. Property fields added to the\ndatabase can also be used.\nSome fields are visually similar, but the data entered must follow a specific format.\n- Edit the fieldâs Label and adapt its Position .\nEdit the fieldâs Label and adapt its Position .\n- Enable a field Description . Click the default description on the form to modify it.\nEnable a field Description . Click the default description on the form to modify it.\n- Add a Placeholder or Default value .\nAdd a Placeholder or Default value .\n- Specify if the field is Required .\nSpecify if the field is Required .\n- Edit the fieldâs visibility settings.\nEdit the fieldâs visibility settings.\n- Add an animation .\nOnce you have made the desired changes, click Save .\n\n#### Add an Odoo contact form on a non-Odoo website\n\nYou can display an Odoo contact form on another website using an iframe. To do so, follow these\nsteps:\n- Prepare the Odoo form: Create a contact form on a page in Odoo Website and remove the header design and the footer design . Make sure only the contact form remains on the page.\nPrepare the Odoo form: Create a contact form on a page in Odoo Website and remove the header design and the footer design . Make sure only the contact form remains on the page.\n- Generate an embeddable code: Copy the URL of the Odoo form page and paste it into an iframe\ngenerator, such as La Digitale.dev or iFrame Generator . Adjust the width and height for proper\ndisplay.\nGenerate an embeddable code: Copy the URL of the Odoo form page and paste it into an iframe\ngenerator, such as La Digitale.dev or iFrame Generator . Adjust the width and height for proper\ndisplay.\n- Add the embedded code to the non-Odoo website: Open the relevant pageâs HTML (in the code\neditor or CMS) and insert the embedded code where the form should be displayed.\nAdd the embedded code to the non-Odoo website: Open the relevant pageâs HTML (in the code\neditor or CMS) and insert the embedded code where the form should be displayed.\nExample of an embedded code:\n\n### Embed code\n\nEmbedding code allows you to integrate content from third-party services into a page, such as videos\nfrom YouTube, maps from Google Maps, social media posts from Instagram, etc.\nAfter adding the block to a page, click the block, then go to the Customize tab and\nclick Edit . Replace the placeholder code with your custom embed code.\nDo not copy/paste code you do not understand, as it could put your data at risk.\n\n## Move, switch, or delete a building block\n\nPull the turquoise borders on the block to reduce or increase the space at the top or bottom of it.\nChange the block order by clicking ( chevron up ) or ( chevron down ) and move the block on the page by clicking ( arrows ). When you have multiple columns , move a column to the left or right by clicking ( chevron left ) or ( chevron right ).\nTo delete a block, click ( trash ).\nQuickly change the block category by clicking ( exchange ).\n\n## Edit a building block\n\nTo edit the content of a building block, click on it and go to the Customize tab.\nAvailable customization options vary depending on the type of block selected.\n- Web design elements\n- Visibility\n\n### Background\n\nTo modify the background of a building block, select the block, go to the Customize tab,\nand click the color dot or another Background option. You can change the\ncolor and/or add an image, video, and/or shape. Once youâve selected a shape, new fields appear to\nallow you to customize the shape.\n- Position an element (image, text, etc.) behind or in front of another one by using the Send to back or Bring to front icons.\nPosition an element (image, text, etc.) behind or in front of another one by using the Send to back or Bring to front icons.\n- To resize a block, click and drag the dots around its edges to adjust it as needed.\nTo resize a block, click and drag the dots around its edges to adjust it as needed.\n\n### Layout: grid and columns\n\nFor most building blocks, you can choose between two layout styles: grid or columns (cols) . To change\nthe default layout style, click the block, go to the Customize tab, and set the Layout field to Grid or Cols .\n\n#### Grid\n\nThe Grid layout allows you to reposition and resize elements, such as images or text, by\ndragging and dropping them. When Grid is selected, additional options are available to Add Elements by clicking Image , Text , or Button .\n\n#### Cols\n\nChoosing the Cols layout allows you to determine the number of elements per line within\nthe block. To do so, select the block to modify, click the dropdown next to the Cols field, and adjust the number. You can then modify a specific columnâs settings using the options in\nthe Column section of the Customize tab.\nBy default, on mobile devices , only one element (column) is visible per line\nto ensure that content remains easily readable and accessible on smaller screens. To adjust\nthe value, click the ( mobile icon ) at the top of the website editor\nand adapt the number of columns. Shapes are hidden by default on mobiles.\n\n## Duplicate a building block\n\nTo duplicate a building block, click the ( duplicate ) icon at the top of\nthe Customize tab. Once duplicated, the new block appears on the page beneath the\noriginal one.\n\n## Save a custom building block\n\nYou can save a customized building block to reuse it elsewhere. To do so, select it, navigate to\nthe Customize tab, and click the ( floppy disk ) icon.\nClick the Save and reload button in the popup to confirm saving your custom block.\nTo add a saved building block to the page, navigate to the Blocks tab and drag and drop\nthe Custom block from the Categories section. In the popup that opens, click\nthe desired block in the Custom category.\nIn the Insert a block popup, click ( edit ) to rename the\ncustom block or ( delete ) to delete it.\n\n## Create an anchor link\n\nAnchor links are hyperlinks that direct users to a specific section of a page. To create an\nanchor link for a block, follow these steps:\n- Click Edit and select the block you want to link to.\nClick Edit and select the block you want to link to.\n- Click ( link ) at the top of the Customize tab.\nClick ( link ) at the top of the Customize tab.\n- To edit the default anchor name, click Edit in the green popup message that opens.\nTo edit the default anchor name, click Edit in the green popup message that opens.\n- Replace the anchor name and click Save & copy .\nReplace the anchor name and click Save & copy .\nOnce the anchor is saved, you can link to it from anywhere on your\nwebsite.", "headings": ["Add a building block", "Form", "Embed code", "Move, switch, or delete a building block", "Edit a building block", "Background", "Layout: grid and columns", "Duplicate a building block", "Save a custom building block", "Create an anchor link"], "doc_id": "715ecaf92c6e1f77"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/web_design/elements.html", "title": "Elements", "module": "website", "section": "Elements", "text": "# Elements\n\nElements help structure and present content effectively. They range from text-based components like titles , lists and text highlights to interactive ones such as buttons and links . Visual elements\nlike images , icons , videos , and animations can\nalso be added to improve content presentation and organization.\nTo add or modify a website element:\n- Navigate to the relevant website page and click on Edit .\nNavigate to the relevant website page and click on Edit .\n- Click the section on the page where you want to add or modify an element.\nClick the section on the page where you want to add or modify an element.\n- Make the necessary changes.\nMake the necessary changes.\n- Click on Save .\nThe default styles for headings, buttons, links, and paragraph text, for example, are defined in\nthe Theme tab of the website editor.\n\n## Titles\n\nTitles define headings and organize website content into different levels for clarity and structure.\nTo insert a title, type /title , choose the heading style ( Heading 1 , Heading 2 , or Heading 3 ), and type the text.\n`/title`\nAlternatively, type the text, select it, and choose the appropriate style from the Inline Text section in the Customize tab of the website editor. Additional\nformatting options, such as fonts and colors, are also available in this section.\n\n## Buttons\n\nButtons are interactive elements that allow to link to another page or to a page anchor. To insert a\nbutton:\n- Type /button .\n`/button`\n- Enter the buttonâs label in the Link Label field.\nEnter the buttonâs label in the Link Label field.\n- Add the URL or Email . Type / to search for a page and # to link to an anchor.\nAdd the URL or Email . Type / to search for a page and # to link to an anchor.\n`/`\n`#`\n- Set the Style , Size , and Layout to\ndefine the buttonâs appearance.\nSet the Style , Size , and Layout to\ndefine the buttonâs appearance.\n- If needed, toggle the switch to open the linked page or anchor in a new tab.\nIf needed, toggle the switch to open the linked page or anchor in a new tab.\n- Click Apply to save changes.\nClick Apply to save changes.\nTo modify an existing button, click the button and edit the options in the Inline text section of the website editor.\n\n## Images\n\n- Type /image .\n`/image`\n- Search the Unsplash database or click Upload an image to choose a file from your local images.\nSearch the Unsplash database or click Upload an image to choose a file from your local images.\n- Click Add .\n- To customize the image, click on the image and edit the options in the Image section of the website editor. For example: Replace the image. Define an alt tag in the Description field. Enter a title tag in the Tooltip field. This text will appear when visitors hover\ntheir mouse over the image. Add a Shape ; some shapes also allow for color customization. Adjust the imageâs Width , e.g., to improve performance. A smaller size may be\nsuggested if it is sufficient for display. Resize the image using the Transform tool. Adjust the Padding to add space (in pixels) around the image. Etc.\nTo customize the image, click on the image and edit the options in the Image section of the website editor. For example:\n- Replace the image.\n- Define an alt tag in the Description field.\nDefine an alt tag in the Description field.\n- Enter a title tag in the Tooltip field. This text will appear when visitors hover\ntheir mouse over the image.\nEnter a title tag in the Tooltip field. This text will appear when visitors hover\ntheir mouse over the image.\n- Add a Shape ; some shapes also allow for color customization.\nAdd a Shape ; some shapes also allow for color customization.\n- Adjust the imageâs Width , e.g., to improve performance. A smaller size may be\nsuggested if it is sufficient for display.\nAdjust the imageâs Width , e.g., to improve performance. A smaller size may be\nsuggested if it is sufficient for display.\n- Resize the image using the Transform tool.\nResize the image using the Transform tool.\n- Adjust the Padding to add space (in pixels) around the image.\nAdjust the Padding to add space (in pixels) around the image.\n\n## Videos\n\nTo add a video, type /video , insert the URL, and turn on the desired options:\n`/video`\n- Autoplay : to automatically play the video when the page is accessed. The video is\nautomatically muted by default.\nAutoplay : to automatically play the video when the page is accessed. The video is\nautomatically muted by default.\n- Loop : to play the video on a loop.\nLoop : to play the video on a loop.\n- Hide player controls\n- Hide fullscreen button\nHide fullscreen button\n\n## Icons\n\nTo insert an icon, type /image , go to the Icons tab, select an icon, and click Add . To modify an icon, click on it and use the Icon section of the website\neditor to customize options, such as Color , Size , Animations , Shape , etc.\n`/image`\n\n## Links\n\nLinks are used to connect different pages and resources, guiding visitors and improving navigation.\nTo add a link, type /link , then, in the pop-up that opens, enter the linkâs Label and\nadd the URL or Email . Type / to search for a page and # to link to an anchor .\n`/link`\n`/`\n`#`\nBy default, the Style field is set to Link . Select a different style to\ntransform the link into a button .\n\n## Lists\n\nLists help organize content clearly, making information easier to read and improving web pagesâ\nstructures. Type /list and choose from three different types of lists: Bulleted lists , Numbered lists , or Checklists .\n`/list`\n\n## Text highlights\n\nHighlights can be added to titles and text using in the Inline Text section of the\nwebsite editor. To add a highlight:\n- Select the text or title you want to highlight.\nSelect the text or title you want to highlight.\n- In the website editor, click on Highlight .\nIn the website editor, click on Highlight .\n- Select the highlight style.\nSelect the highlight style.\n- Modify its Color .\n- Choose its Thickness .\nChoose its Thickness .\n\n## Animations\n\nAnimations are used to add movement to building blocks and website\nelements such as images and text. Three types of animation are available: On Scroll , On Appearance , and On Hover (for images only).\nTo add an animation to a website element:\n- Click on the element.\nClick on the element.\n- In the website editor, go to the relevant section for the element (e.g., Button , Column , Inline Text , etc.).\nIn the website editor, go to the relevant section for the element (e.g., Button , Column , Inline Text , etc.).\n- In the Animation field, select the desired animation type.\nIn the Animation field, select the desired animation type.\n- Customize the animation settings as needed. Available options vary based on the selected\nanimation type.\nCustomize the animation settings as needed. Available options vary based on the selected\nanimation type.\n\n### Animations on scroll\n\nFor animations on scroll, it is possible to:\n- Choose In to add the animation when the element enters the screen and Out to add it when it leaves the screen.\nChoose In to add the animation when the element enters the screen and Out to add it when it leaves the screen.\n- Select an Effect .\n- Choose the Direction of the effect.\nChoose the Direction of the effect.\n- Adapt the Intensity of the effect.\nAdapt the Intensity of the effect.\n- Define the Scroll Zone , where the first value represents the percentage of the screen\nshown when the effect starts, and the second value represents its percentage at the end.\nDefine the Scroll Zone , where the first value represents the percentage of the screen\nshown when the effect starts, and the second value represents its percentage at the end.\n\n### Animations on appearance\n\nFor animations on appearance, it is possible to:\n- Choose among different effects.\nChoose among different effects.\n- Choose the Direction of the effect.\nChoose the Direction of the effect.\n- Pick a Trigger option to define when the animation occurs: either the First Time only or Every Time .\nPick a Trigger option to define when the animation occurs: either the First Time only or Every Time .\n- Adapt the Intensity of the effect.\nAdapt the Intensity of the effect.\n- If you want the animation to be triggered after a number of seconds, define this number in the Start After field.\nIf you want the animation to be triggered after a number of seconds, define this number in the Start After field.\n- Choose a Duration for the animation.\nChoose a Duration for the animation.\n\n### Animations on hover (for images only)\n\nAnimations On hover can be added to images . You can\nchoose the Effect of the animation, as well as the Color and the Stroke Width .", "headings": ["Titles", "Buttons", "Images", "Videos", "Icons", "Links", "Lists", "Text highlights", "Animations", "Animations on scroll", "Animations on appearance", "Animations on hover (for images only)"], "doc_id": "9b8312aa5474a4ba"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/web_design/themes.html", "title": "General theme", "module": "website", "section": "General theme", "text": "# General theme\n\nOdoo offers various options to shape your websiteâs theme, including its colors , fonts , and layout .\nWhen setting up your website for the first time, you are prompted to select a theme. Hover your\nmouse over the themes to see an extended preview of each one. Click on a theme to select it.\n- If you leave without selecting a theme, your website is created using the default one.\nIf you leave without selecting a theme, your website is created using the default one.\n- You can switch themes later if needed.\nYou can switch themes later if needed.\nIn the website builder, the Theme tab offers various options to customize your websiteâs\ngeneral theme. To access it, click Edit and go to the Theme tab.\nOnce you have made the desired changes, click on Save to confirm and apply them to your\nwebsite.\n\n## Theme\n\nIn the Website section, click on Switch Theme to open the theme selector.\nHover your mouse over the themes to see an extended preview of each one. Click on a theme to apply\nit to your website.\n\n## Colors\n\nOdooâs website editor features two main types of colors: theme colors and status colors .\n\n### Theme colors\n\nTheme colors refer to the set of colors displayed across all pages of your website. These are made\nof five colors: three main colors and two light and dark colors.\nTo edit your websiteâs colors, go to the Colors section in the website editor, then:\n- Click on the color dot you want to change, then select a Solid color or click on Custom to pick a specific color tone manually (or add its #HEX or RGBA code).\nClick on the color dot you want to change, then select a Solid color or click on Custom to pick a specific color tone manually (or add its #HEX or RGBA code).\n- Click on the paint palette icon and choose a color palette. As a result, all color customizations\nare reset; click a color dot to change a specific color.\nClick on the paint palette icon and choose a color palette. As a result, all color customizations\nare reset; click a color dot to change a specific color.\nOdoo automatically creates Color Presets for your chosen palette. These are predefined\ncolor combinations applied to different elements of your website to provide a structured and\nvisually appealing design. When you select a color palette, its presets define how those colors are\ndistributed across different elements from a building block, such as buttons, backgrounds, and text.\nIf you want to modify them, click on Color Presets and click on a preset to customize it\nfurther. Each color preset contains colors for your building blockâs background, text, headings,\nlinks, primary buttons, and secondary buttons.\nTo apply a color preset to a building block on your site, select the building block, go to the Customize tab, click the color dot located next to Background , and choose a Theme .\nChanging a color preset automatically updates the colors of both the default preset and the\nbuilding blocks where the preset is used.\n\n### Status colors\n\nStatus colors are used to indicate the status of certain actions (e.g., Success , Warning , etc.). Theyâre used in pop-up messages that appear to provide feedback to\nusers and website visitors. To customize your websiteâs Status Colors , scroll down to\nthe Advanced section and click on the dots to change their color.\n\n## Page layout\n\nThe Page layout option in the Website section allows you to change the\noverall display and spacing of building blocks and website elements on pages. Click the dropdown\nmenu and select the desired layout. Under Page Layout , customize your Background by choosing an Image , using a selected image in a Pattern , or leaving it blank.\n\n## Fonts\n\nOdoo allows you to customize the font family and size for specific elements on your website,\nincluding paragraphs, headings, buttons, and input fields.\n- Font Family : In the Paragraph , Headings , and Button sections, select a font from the dropdown menu.\nFont Family : In the Paragraph , Headings , and Button sections, select a font from the dropdown menu.\n- Font Size : In the Paragraph , Headings , Button , and Input Fields sections, use the Font Size field to set a default size.\nClick the (arrow) icon to expand the section and define custom sizes\n(e.g., based on the heading level, button size, etc.).\nFont Size : In the Paragraph , Headings , Button , and Input Fields sections, use the Font Size field to set a default size.\nClick the (arrow) icon to expand the section and define custom sizes\n(e.g., based on the heading level, button size, etc.).\nAdditionally, each element-specific section offers extra styling options, such as Line Height and Margins , for further customization.\n\n### Custom fonts\n\nIt is possible to use fonts on your website that are not offered by default in Odoo. To add a custom\nfont, click the dropdown menu related to the Font Family field and select Add\na Custom Font at the bottom of the dropdown menu. In the pop-up window:\n- To add a Google font, click on Select a Google Font and click on the desired font\nin the list. Toggle off the Serve font from Google servers if your website is operated\nfrom a location where regulations require compliance with laws such as, but not limited to, the\nEuropean Unionâs GDPR. This will ensure that the Google Font is stored on your websiteâs server\ninstead of Googleâs.\nTo add a Google font, click on Select a Google Font and click on the desired font\nin the list. Toggle off the Serve font from Google servers if your website is operated\nfrom a location where regulations require compliance with laws such as, but not limited to, the\nEuropean Unionâs GDPR. This will ensure that the Google Font is stored on your websiteâs server\ninstead of Googleâs.\n- To upload a custom font from your computer, click on Choose File .\nTo upload a custom font from your computer, click on Choose File .\nOnce done, click on Save and Reload .\n\n## Button styles\n\nTo customize the style of your websiteâs primary and secondary buttons, navigate to the Button section in the website editor and edit the relevant options:\n- Click the arrow next to the Primary Style or Secondary Style fields and\nselect one of the available styles for each type of button: Fill , Outline ,\nor Flat . When selecting Outline , the Border Width option\nappears below, allowing you to adjust the width of the buttonâs outline.\nClick the arrow next to the Primary Style or Secondary Style fields and\nselect one of the available styles for each type of button: Fill , Outline ,\nor Flat . When selecting Outline , the Border Width option\nappears below, allowing you to adjust the width of the buttonâs outline.\n- Modify the fonts .\n- Adjust the Padding to change the size of the spacing (in pixels) around the buttonsâ\nlabels.\nAdjust the Padding to change the size of the spacing (in pixels) around the buttonsâ\nlabels.\n- Customize the buttonsâ border radius using the Round Corners option.\nCustomize the buttonsâ border radius using the Round Corners option.\n- Add an animation when a button is clicked in the On Click Effect dropdown menu.\nAdd an animation when a button is clicked in the On Click Effect dropdown menu.\nYou can define custom Small and Large sizes for the buttonsâ Padding , Font Size , and Round Corners : Click on the (arrow) icon and use the related fields.\n\n## Link style\n\nIn the Link section, click on Link Style to choose the appearance of links\non your website. Select No Underline , Underline On Hover , or Always Underline in the dropdown menu.", "headings": ["Theme", "Colors", "Theme colors", "Status colors", "Page layout", "Fonts", "Custom fonts", "Button styles", "Link style"], "doc_id": "4244df9aa5d33159"}
|
||
{"url": "https://www.odoo.com/documentation/18.0/applications/websites/website/web_design/visibility.html", "title": "Visibility", "module": "website", "section": "Visibility", "text": "# Visibility\n\nYou can choose to display or hide building blocks based on a visitorâs:\n- device type (mobile or computer),\ndevice type (mobile or computer),\n- country (IP-based geolocation),\ncountry (IP-based geolocation),\n- website language,\n- UTM parameters , and\n- login state.\n\n## Mobile/computer\n\nTo toggle the visibility of a building block based on the visitorâs device type:\n- Open the website editor and select a block.\nOpen the website editor and select a block.\n- In the Customize tab, under the blockâs customization options, look for Visibility . Click the ( Show/Hide on Desktop ) button to hide\nthe block for users visiting your website from a computer. Click the ( Show/Hide on Mobile ) button to hide the block\nfor users visiting your website from a mobile device.\nIn the Customize tab, under the blockâs customization options, look for Visibility .\n- Click the ( Show/Hide on Desktop ) button to hide\nthe block for users visiting your website from a computer.\nClick the ( Show/Hide on Desktop ) button to hide\nthe block for users visiting your website from a computer.\n- Click the ( Show/Hide on Mobile ) button to hide the block\nfor users visiting your website from a mobile device.\nClick the ( Show/Hide on Mobile ) button to hide the block\nfor users visiting your website from a mobile device.\n- Click Save to apply the changes.\nClick Save to apply the changes.\nIt is also sometimes possible to hide elements within blocks. It is mostly used to hide specific\nelements inside blocks that may be too wide to be correctly displayed on mobile devices. To see if\nthe option is available, select an element within a block and look for the Visibility option under the elementâs customization option.\nThe selected image is hidden on mobile devices.\n\n## Conditions\n\nTo access the country, website language, UTM parameters, and login state conditions:\n- Open the website editor and select a building block.\nOpen the website editor and select a building block.\n- In the Customize tab, look for Visibility .\nIn the Customize tab, look for Visibility .\n- Click No condition and select Conditionally instead to display the\ndifferent options: Country : the country of the visitorâs IP address. Languages : the website language used by the visitor. Note This option is only available if more than one language is installed . UTM Campaign : the selected campaign. UTM Medium : the selected medium of any campaign. UTM Source : the selected source of any campaign. Users : select whether the visitor should be Logged In or Logged Out to view the block. By default, the option is set to Visible\nfor Everyone .\nClick No condition and select Conditionally instead to display the\ndifferent options:\n- Country : the country of the visitorâs IP address.\nCountry : the country of the visitorâs IP address.\n- Languages : the website language used by the visitor. Note This option is only available if more than one language is installed .\nLanguages : the website language used by the visitor.\nThis option is only available if more than one language is installed .\n- UTM Campaign : the selected campaign.\nUTM Campaign : the selected campaign.\n- UTM Medium : the selected medium of any campaign.\nUTM Medium : the selected medium of any campaign.\n- UTM Source : the selected source of any campaign.\nUTM Source : the selected source of any campaign.\n- Users : select whether the visitor should be Logged In or Logged Out to view the block. By default, the option is set to Visible\nfor Everyone .\nUsers : select whether the visitor should be Logged In or Logged Out to view the block. By default, the option is set to Visible\nfor Everyone .\n- For one or more of the first five options, choose if the block should be Visible for or Hidden for , then click Choose a record⦠and select it.\nFor one or more of the first five options, choose if the block should be Visible for or Hidden for , then click Choose a record⦠and select it.\n- You can select multiple records for each option by clicking Choose a record⦠again.\nYou can select multiple records for each option by clicking Choose a record⦠again.\n- Click the ( remove ) button to remove an option.\nClick the ( remove ) button to remove an option.\nClick Save to apply the changes.\nA block with the following configuration will only be displayed to visitors with a Belgian IP\naddress, for which the website is displayed in French, unless they visit the page using the Sales campaign tracked URL.\n`Sales`\n\n## Invisible elements\n\nBlocks and elements with custom visibility settings are listed at the bottom of the website editor\nsidebar. You can preview how the page would look like by clicking the ( visible ) button to hide a block or element, or the ( hidden ) to show it in the website editor.", "headings": ["Mobile/computer", "Conditions", "Invisible elements"], "doc_id": "2f36721a91aa193c"}
|