Compare commits
8 Commits
master-sal
...
master
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
ef9e390ab0 |
[IMP] db: online editor update
closes odoo/documentation#15849
X-original-commit:
|
||
|
|
aad582e99a |
[FIX] spain: remove reference to deleted module
In Odoo saas-17.1 the module `l10n_es_edi_facturae_adm_centers` was merged into the module `l10n_es_edi_facturae`[^1] and doesn't need to be installed separately anymore. We remove the reference to this module and step in the documentation. [^1]: |
||
|
|
3457109fe1 |
[IMP] Website: add alt tag and metadata translation tips
task-5003381
closes odoo/documentation#15840
X-original-commit:
|
||
|
|
db02b86801 |
[IMP] iot: 19.0 updates
task-5108135
closes odoo/documentation#15831
X-original-commit:
|
||
|
|
8fba07203e |
[IMP] point_of_sale: configure epos w/ epson certified domain
Update of the documentation to match the new UI of Chrome and Windows 11 behavior
opw-5349624
closes odoo/documentation#15727
X-original-commit:
|
||
|
|
1330e84e2f |
[IMP] POS: store timings
task-4893669
closes odoo/documentation#15728
X-original-commit:
|
||
|
|
03e7184b6f |
[IMP] Project: Update Deadline feature
task-5403953
closes odoo/documentation#15687
X-original-commit:
|
||
|
|
f3a8ff3116 |
[IMP] accounting: wise direct deposit for usa vendor payments
closes odoo/documentation#15814
X-original-commit:
|
|
|
@@ -172,11 +172,8 @@ From an Odoo.sh editor terminal:
|
|||
|
||||
$ git push https HEAD:feature-1
|
||||
|
||||
The above command is explained in the section
|
||||
:ref:`Commit & Push your changes
|
||||
<odoosh-gettingstarted-online-editor-push>` of the
|
||||
:ref:`Online Editor <odoosh-gettingstarted-online-editor>`
|
||||
chapter.
|
||||
The above command is explained in the section :ref:`Commit and push changes
|
||||
<odoo-sh/editor/commit>` of the :doc:`Online editor page <getting_started/online_editor>`.
|
||||
It includes the explanation regarding the fact you will be prompted to type your username and
|
||||
password, and what to do if you use the two-factor authentication.
|
||||
|
||||
|
|
|
|||
|
|
@@ -53,6 +53,5 @@ Odoo.sh involves different types of users, each with a specific role in the proj
|
|||
getting_started/create
|
||||
getting_started/branches
|
||||
getting_started/builds
|
||||
getting_started/status
|
||||
getting_started/settings
|
||||
getting_started/online-editor
|
||||
getting_started/online_editor
|
||||
|
|
|
|||
|
|
@@ -289,7 +289,7 @@ shell consoles.
|
|||
You can open multiple tabs and drag and drop them to arrange the layout as you wish.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Online editor documentation <online-editor>`.
|
||||
:doc:`Online editor documentation <online_editor>`.
|
||||
|
||||
.. _odoo-sh/branches/tabs/monitor:
|
||||
|
||||
|
|
|
|||
|
|
@@ -1,197 +0,0 @@
|
|||
|
||||
.. _odoosh-gettingstarted-online-editor:
|
||||
|
||||
=============
|
||||
Online Editor
|
||||
=============
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
The online editor allows you to edit the source code of your builds from a web browser.
|
||||
It also gives you the possibility to open terminals, Python consoles, Odoo Shell consoles and
|
||||
`Notebooks <https://jupyterlab.readthedocs.io/en/stable/user/notebook.html>`_.
|
||||
|
||||
.. image:: online-editor/interface-editor.png
|
||||
:align: center
|
||||
|
||||
You can access the editor of a build through
|
||||
:ref:`the branches tabs <odoo-sh/branches/tabs>`,
|
||||
:ref:`the builds dropdown menu <odoo-sh/builds/stages/features>`
|
||||
or by adding */odoo-sh/editor* to your build domain name
|
||||
(e.g. *https://odoo-addons-master-1.dev.odoo.com/odoo-sh/editor*).
|
||||
|
||||
Edit the source code
|
||||
====================
|
||||
|
||||
The working directory is composed of the following folders:
|
||||
|
||||
::
|
||||
|
||||
.
|
||||
├── home
|
||||
│ └── odoo
|
||||
│ ├── src
|
||||
│ │ ├── odoo Odoo Community source code
|
||||
│ │ │ └── odoo-bin Odoo server executable
|
||||
│ │ ├── enterprise Odoo Enterprise source code
|
||||
│ │ ├── themes Odoo Themes source code
|
||||
│ │ └── user Your repository branch source code
|
||||
│ ├── data
|
||||
│ │ ├── filestore database attachments, as well as the files of binary fields
|
||||
│ │ └── sessions visitors and users sessions
|
||||
│ └── logs
|
||||
│ ├── install.log Database installation logs
|
||||
│ ├── odoo.log Running server logs
|
||||
│ ├── update.log Database updates logs
|
||||
│ └── pip.log Python packages installation logs
|
||||
|
||||
You can edit the source code (files under */src*) in development and staging builds.
|
||||
|
||||
.. note::
|
||||
Your changes won't be propagated to a new build, you must commit them in your
|
||||
source code if you want to make them persist.
|
||||
|
||||
|
||||
For production builds, the source code is read-only, because applying local changes on a production
|
||||
server is not a good practice.
|
||||
|
||||
* The source code of your Github repository is located under */src/user*,
|
||||
* The source code of Odoo is located under
|
||||
|
||||
* */src/odoo* (`odoo/odoo <https://github.com/odoo/odoo>`_),
|
||||
* */src/enterprise* (`odoo/enterprise <https://github.com/odoo/enterprise>`_),
|
||||
* */src/themes* (`odoo/design-themes <https://github.com/odoo/design-themes>`_).
|
||||
|
||||
To open a file in the editor, just double-click on it in the file browser panel on the left.
|
||||
|
||||
.. image:: online-editor/interface-editor-open-file.png
|
||||
:align: center
|
||||
|
||||
You can then begin to make your changes. You can save your changes with the menu
|
||||
:menuselection:`File --> Save .. File` or by hitting the :kbd:`Ctrl+S` shortcut.
|
||||
|
||||
.. image:: online-editor/interface-editor-save-file.png
|
||||
:align: center
|
||||
|
||||
If you save a Python file which is under your Odoo server addons path,
|
||||
Odoo will detect it and reload automatically so your changes are reflected immediately,
|
||||
without having to restart the server manually.
|
||||
|
||||
.. image:: online-editor/interface-editor-automaticreload.gif
|
||||
:align: center
|
||||
|
||||
However, if the change is a data stored in database, such as the label of a field, or a view,
|
||||
you have to update the according module to apply the change.
|
||||
You can update the module of the currently opened file by using the menu
|
||||
:menuselection:`Odoo --> Update current module`. Note that the file considered as currently opened
|
||||
is the file focused in the text editor, not the file highlighted in the file browser.
|
||||
|
||||
.. image:: online-editor/interface-editor-update-current-module.png
|
||||
:align: center
|
||||
|
||||
You can also open a terminal and execute the command:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ odoo-bin -u <comma-separated module names> --stop-after-init
|
||||
|
||||
.. _odoosh-gettingstarted-online-editor-push:
|
||||
|
||||
Commit & Push your changes
|
||||
==========================
|
||||
|
||||
You have the possibility to commit and push your changes to your Github repository.
|
||||
|
||||
* Open a terminal (:menuselection:`File --> New --> Terminal`),
|
||||
* Change the directory to *~/src/user* using :code:`cd ~/src/user`,
|
||||
* Stage your changes using :code:`git add`,
|
||||
* Commit your changes using :code:`git commit`,
|
||||
* Push your changes using :code:`git push https HEAD:<branch>`.
|
||||
|
||||
In this last 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,
|
||||
most-likely the current branch if you work in a development build.
|
||||
|
||||
.. image:: online-editor/interface-editor-commit-push.png
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
The SSH Github remote is not used because your SSH private key
|
||||
is not hosted in your build containers (for obvious security concerns)
|
||||
nor forwarded through an SSH Agent (as you access this editor through a web browser)
|
||||
and you therefore cannot authenticate yourself to Github using SSH.
|
||||
You have to use the HTTPS remote of your Github repository to push your changes,
|
||||
which is added automatically named as *https* in your Git remotes.
|
||||
You will be prompted to enter your Github username and password.
|
||||
If you activated the two-factor authentication on Github,
|
||||
you can create a `personal access token
|
||||
<https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/>`_
|
||||
and use it as password. Granting the ``repo`` permission suffices.
|
||||
|
||||
.. note::
|
||||
The Git source folder *~/src/user* is not checked out on a branch but rather on a detached revision:
|
||||
This is because builds work on specific revisions rather than branches.
|
||||
In other words, this means you can have multiple builds on the same branch, but on different revisions.
|
||||
|
||||
Once your changes are pushed,
|
||||
according to your :ref:`branch push behavior <odoo-sh/branches/tabs/settings>`,
|
||||
a new build may be created. You can continue to work in the editor you pushed from,
|
||||
as it will have the same revision as the new build that was created, but always make sure to be
|
||||
in an editor of a build using the latest revision of your branch.
|
||||
|
||||
Consoles
|
||||
========
|
||||
|
||||
You can open Python consoles, which are
|
||||
`IPython interactive shells <https://ipython.readthedocs.io/en/stable/interactive/tutorial.html>`_.
|
||||
One of the most interesting addition to use a Python console
|
||||
rather than a IPython shell within a terminal is the
|
||||
`rich display <https://ipython.readthedocs.io/en/stable/config/integrating.html#rich-display>`_
|
||||
capabilities.
|
||||
Thanks to this, you will be able to display objects in HTML.
|
||||
|
||||
You can for instance display cells of a CSV file using
|
||||
`pandas <https://pandas.pydata.org/pandas-docs/stable/tutorials.html>`_.
|
||||
|
||||
.. image:: online-editor/interface-editor-console-python-read-csv.png
|
||||
:align: center
|
||||
|
||||
You can also open an Odoo Shell console to play around
|
||||
with the Odoo registry and model methods of your database. You can also directly read or write
|
||||
on your records.
|
||||
|
||||
.. warning::
|
||||
In an Odoo Console, transactions are automatically committed.
|
||||
This means, for instance, that changes in records are applied effectively in the database.
|
||||
If you change the name of a user, the name of the user is changed in your database as well.
|
||||
You therefore should use Odoo consoles carefully on production databases.
|
||||
|
||||
You can use *env* to invoke models of your database registry, e.g. :code:`env['res.users']`.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
env['res.users'].search_read([], ['name', 'email', 'login'])
|
||||
[{'id': 2,
|
||||
'login': 'admin',
|
||||
'name': 'Administrator',
|
||||
'email': 'admin@example.com'}]
|
||||
|
||||
The class :code:`Pretty` gives you the possibility
|
||||
to easily display lists and dicts in a pretty way, using the
|
||||
`rich display <https://ipython.readthedocs.io/en/stable/config/integrating.html#rich-display>`_
|
||||
mentioned above.
|
||||
|
||||
.. image:: online-editor/interface-editor-console-odoo-pretty.png
|
||||
:align: center
|
||||
|
||||
You can also use
|
||||
`pandas <https://pandas.pydata.org/pandas-docs/stable/tutorials.html>`_
|
||||
to display graphs.
|
||||
|
||||
.. image:: online-editor/interface-editor-console-odoo-graph.png
|
||||
:align: center
|
||||
|
Before Width: | Height: | Size: 2.0 MiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 23 KiB |
200
content/administration/odoo_sh/getting_started/online_editor.rst
Normal file
|
|
@@ -0,0 +1,200 @@
|
|||
=============
|
||||
Online editor
|
||||
=============
|
||||
|
||||
The :guilabel:`Online Editor` view allows editing the source code of your builds from a web browser.
|
||||
It also gives you the possibility to open terminals, Python consoles, Odoo shell consoles, and
|
||||
`Jupyter Notebooks <https://jupyterlab.readthedocs.io/en/stable/user/notebook.html>`_.
|
||||
|
||||
.. image:: online_editor/online-editor.png
|
||||
:alt: Overview of the online editor
|
||||
|
||||
You can access the editor of a build through :ref:`the branches tab <odoo-sh/branches/tabs>`,
|
||||
:ref:`the builds dropdown menu <odoo-sh/builds/stages/features>`, or by adding `/odoo-sh/editor` to
|
||||
the build's URL (e.g., `https://odoo-addons-master-1.dev.odoo.com/odoo-sh/editor`).
|
||||
|
||||
.. _odoo-sh/editor/source:
|
||||
|
||||
Editing the source code
|
||||
=======================
|
||||
|
||||
The working directory is composed of the following:
|
||||
|
||||
::
|
||||
|
||||
.
|
||||
├── home
|
||||
│ └── odoo
|
||||
│ ├── src
|
||||
│ │ ├── odoo Odoo Community source code
|
||||
│ │ │ └── odoo-bin Odoo server executable
|
||||
│ │ ├── enterprise Odoo Enterprise source code
|
||||
│ │ ├── themes Odoo Themes source code
|
||||
│ │ └── user Your repository branch source code
|
||||
│ ├── data
|
||||
│ │ ├── filestore Database attachments, as well as the files of binary fields
|
||||
│ │ └── sessions Visitors and users sessions
|
||||
│ └── logs
|
||||
│ ├── install.log Database installation logs
|
||||
│ ├── odoo.log Running server logs
|
||||
│ ├── update.log Database updates logs
|
||||
│ └── pip.log Python packages installation logs
|
||||
|
||||
You can edit the source code (files under `/src`) of development and staging builds. For production
|
||||
builds, the source code is read-only, because applying local changes on a production server is not a
|
||||
good practice.
|
||||
|
||||
.. note::
|
||||
- Your changes won't be propagated to new builds. It is necessary to :ref:`commit them to the
|
||||
source code <odoo-sh/editor/commit>` if you want them to persist.
|
||||
- The source code of your GitHub repository is located under `/src/user`.
|
||||
- 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>`_)
|
||||
|
||||
To open a file in the editor, double-click it in the file browser panel. You can then edit the file.
|
||||
To save your changes, go to :menuselection:`File --> Save` or use the :kbd:`Ctrl+S` keyboard
|
||||
shortcut.
|
||||
|
||||
If you save a Python file in your Odoo server's addons path, Odoo will detect it and reload
|
||||
automatically, meaning your changes are immediately visible.
|
||||
|
||||
.. image:: online_editor/auto-reload.gif
|
||||
:alt: Change to a Python file being immediately visible
|
||||
|
||||
However, if your changes are stored in the database, such as a field's label or a view, it is
|
||||
necessary to update the related module to apply the changes. To update the module of the currently1
|
||||
open file, go to :menuselection:`Odoo --> Update current module`.
|
||||
|
||||
.. image:: online_editor/update-module.png
|
||||
:alt: Using the editor to update the current module
|
||||
|
||||
.. tip::
|
||||
You can also execute the following command in a terminal to update a module:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
odoo-bin -u <comma-separated module names> --stop-after-init
|
||||
|
||||
.. _odoo-sh/editor/commit:
|
||||
|
||||
Committing and pushing changes
|
||||
==============================
|
||||
|
||||
To commit and push changes to your GitHub repository:
|
||||
|
||||
- Open a terminal by going to :menuselection:`File --> New --> Terminal`.
|
||||
- Change the directory to `~/src/user`.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
cd ~/src/user
|
||||
|
||||
- State your identity.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
git config --global user.email "you@example.com" && git config --global user.name "Your Name"
|
||||
|
||||
- Stage your changes.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
git add
|
||||
|
||||
- Commit your changes.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
git commit
|
||||
|
||||
- Push your changes.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
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,
|
||||
most likely the current branch if you work on a development build.
|
||||
|
||||
You will be prompted to input your GitHub username and password. After inputting your credentials,
|
||||
press enter.
|
||||
|
||||
.. image:: online_editor/commit-push.png
|
||||
:alt: The commands to commit and push changes
|
||||
|
||||
.. tip::
|
||||
If you activate two-factor authentication for your GitHub account, you can create a `personal
|
||||
access token <https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token>`_
|
||||
and use it as a password. `Granting the repo permission <https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/repository-access-and-collaboration/inviting-collaborators-to-a-personal-repository>`_
|
||||
suffices.
|
||||
|
||||
.. note::
|
||||
- It is not possible to authenticate yourself using SSH, as your private SSH key is not hosted in
|
||||
your build containers for security reasons, nor forwarded through an SSH agent, as you access
|
||||
the editor through a web browser.
|
||||
- The source folder `~/src/user` is not checked out on a branch but rather on a detached
|
||||
revision. This is because builds work on specific revisions rather than branches, meaning you
|
||||
can have multiple builds on the same branch, but on different revisions.
|
||||
|
||||
Once your changes are pushed, according to your :ref:`branch push behavior
|
||||
<odoo-sh/branches/tabs/settings>`, a new build may be created. You can continue to work in the editor
|
||||
you pushed from, as it will have the same revision as the new build that was created. However,
|
||||
always make sure to be in the editor of a build using the latest revision of your branch.
|
||||
|
||||
.. _odoo-sh/editor/consoles:
|
||||
|
||||
Consoles
|
||||
========
|
||||
|
||||
You can open Python consoles, which are `IPython interactive shells
|
||||
<https://ipython.readthedocs.io/en/stable/interactive/tutorial.html>`_. Using these Python consoles
|
||||
(rather than IPython shells within a terminal) allows you to utilize their `rich display
|
||||
capabilities <https://ipython.readthedocs.io/en/stable/config/integrating.html#rich-display>`_ to
|
||||
display objects in HTML.
|
||||
|
||||
.. example::
|
||||
The :code:`Pretty` class displays lists in a legible way.
|
||||
|
||||
.. image:: online_editor/pretty-class.png
|
||||
:alt: Pretty class example
|
||||
|
||||
.. tip::
|
||||
Using `pandas <https://pandas.pydata.org/pandas-docs/stable/getting_started/tutorials.html>`_ you
|
||||
can display:
|
||||
|
||||
- Cells of a CSV file
|
||||
|
||||
.. image:: online_editor/pandas-csv.png
|
||||
:alt: pandas CSV example
|
||||
|
||||
- Graphs
|
||||
|
||||
.. image:: online_editor/pandas-graph.png
|
||||
:alt: pandas graph example
|
||||
|
||||
You can open Odoo shell consoles to experiment with the Odoo registry and model methods of your
|
||||
database. You can also read or write directly on your records.
|
||||
|
||||
.. warning::
|
||||
In an Odoo shell console, transactions are automatically committed. This means that changes made
|
||||
to records are applied to the database. For example, if you change a user's name, it will be
|
||||
updated in your database as well. Therefore, use Odoo shell consoles carefully on production
|
||||
databases.
|
||||
|
||||
You can use `env` to invoke models of your database registry, e.g., :code:`env['res.users']`.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
env['res.users'].search_read([], ['name', 'email', 'login'])
|
||||
[{'id': 2,
|
||||
'login': 'admin',
|
||||
'name': 'Administrator',
|
||||
'email': 'admin@example.com'}]
|
||||
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
|
@@ -1,12 +0,0 @@
|
|||
======
|
||||
Status
|
||||
======
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
The status page shows statistics regarding the servers your project uses. It includes the servers
|
||||
availability.
|
||||
|
||||
.. image:: status/interface-status.png
|
||||
:align: center
|
||||
|
Before Width: | Height: | Size: 35 KiB |
|
|
@@ -284,10 +284,6 @@ Administrative centers
|
|||
In order for **FACe** to work with **administrative centers**, the invoice *must* include specific
|
||||
data about the centers.
|
||||
|
||||
.. note::
|
||||
Make sure to have the :guilabel:`Spain - Facturae EDI - Administrative Centers Patch
|
||||
(l10n_es_edi_facturae_adm_centers)` module :ref:`installed <general/install>`.
|
||||
|
||||
To add **administrative centers**, create a new **contact** to add to the **partner** company.
|
||||
Select :guilabel:`FACe Center` as the **type**, assign one or more **role(s)** to that contact, and
|
||||
:guilabel:`Save`. The **three** roles usually required are:
|
||||
|
|
|
|||
|
|
@@ -432,6 +432,7 @@ Once all check configurations are complete, :guilabel:`Save` the settings.
|
|||
recommended.
|
||||
|
||||
.. important::
|
||||
|
||||
Use one of the blank check formats to print the information of the check ad-hoc when needed. This
|
||||
requires the use of both :abbr:`MICR (Magnetic Ink Character Recognition)` ink or toner complying
|
||||
with the standards for check printing, as well as `check quality paper
|
||||
|
|
@@ -746,6 +747,162 @@ a new |NACHA| |ACH| file.
|
|||
- :doc:`../accounting/payments/batch`
|
||||
- :doc:`Europe's direct debiting <../accounting/payments/batch_sdd>`
|
||||
|
||||
.. |API| replace:: :abbr:`API (Application Programming Interface)`
|
||||
|
||||
Pay by direct deposit
|
||||
=====================
|
||||
|
||||
Direct deposit is an electronic fund transfer primarily used in the United States, in which money is
|
||||
sent directly to a bank account without the use of a physical check or manual deposit. Odoo offers
|
||||
direct deposit through an international money transfer service called `Wise.com
|
||||
<https://wise.com/>`_.
|
||||
|
||||
Wise provides an |API|, invoicing tools, and business accounts. Businesses can send and receive
|
||||
payments using Wise's cross-border payment technology without building everything from scratch.
|
||||
|
||||
This feature can be used to pay vendor bills.
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
Wise configuration
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Wise configuration involves three main steps: creating a Wise account, linking a bank account to the
|
||||
Wise account, and generating |API| tokens from the Wise account. These steps are detailed below:
|
||||
|
||||
1. Navigate to `Wise.com <https://wise.com/>`_ and click :guilabel:`Sign-Up` to create an account.
|
||||
#. Select :guilabel:`Business Account` and finish providing company and personal user details to
|
||||
complete the sign-up process.
|
||||
|
||||
i. Wise may require additional verification documents depending on the business type and country.
|
||||
This process can take 1–3 business days.
|
||||
|
||||
#. Navigate to the account settings by clicking the :guilabel:`Company Name` in the top-right corner
|
||||
of the dashboard.
|
||||
#. Select :menuselection:`Payment Methods --> Connected bank accounts` and click :guilabel:`Connect
|
||||
Your Bank Account`.
|
||||
#. Search for the bank and add the bank account information. This bank account will be configured in
|
||||
Odoo as well.
|
||||
|
||||
#. Go to the account settings by clicking the :guilabel:`Company Name` in the top-right corner of
|
||||
the dashboard.
|
||||
#. Select :menuselection:`Integration and Tools --> API Tokens` and click :guilabel:`Add new token`.
|
||||
#. Add a description and select :guilabel:`Full Access`, then click :guilabel:`Create Token`.
|
||||
#. Find the token under :guilabel:`API tokens` and click :guilabel:`Reveal key`.
|
||||
#. Copy the token to the clipboard.
|
||||
|
||||
Odoo configuration
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Odoo configuration involves four main steps: installing the Wise module, adding Wise |API|
|
||||
credentials, adding the company bank account, and adding the vendor bank account. These steps are
|
||||
detailed below:
|
||||
|
||||
1. In the Odoo database, :ref:`install <general/install>` the :guilabel:`United States - Direct
|
||||
Deposit` module.
|
||||
|
||||
.. tip::
|
||||
To see the module in search results, remove the :doc:`Apps filter
|
||||
<../../general/apps_modules>` from the search bar.
|
||||
|
||||
#. Go to :menuselection:`Accounting app --> Configuration --> Settings` and scroll down to the
|
||||
:guilabel:`Vendor Payments` section.
|
||||
#. In the setting for :guilabel:`U.S. Direct Deposit (via Wise)`, enter the :guilabel:`Wise API
|
||||
token` generated in Wise.
|
||||
|
||||
#. Click :icon:`fa-plug` :guilabel:`Connect to Wise` to ensure the connection is established between
|
||||
the Odoo database and the Wise account.
|
||||
|
||||
.. image:: united_states/connect-to-wise.png
|
||||
:alt: Click the Connect to Wise button to ensure the connection is established between the
|
||||
Odoo database and the Wise account.
|
||||
|
||||
#. Create the company and vendor bank accounts:
|
||||
|
||||
a. Go to the :guilabel:`Contacts` app and select the company/vendor's contact card.
|
||||
#. Switch to the :guilabel:`Accounting` tab and click on the :guilabel:`Bank accounts` field,
|
||||
then click :guilabel:`Create`.
|
||||
|
||||
.. image:: united_states/create-bank-account.png
|
||||
:alt: Click the Bank accounts field, then click Create to enter the bank account details.
|
||||
|
||||
#. Click on the :guilabel:`Bank` field, then select the bank from the list, or click
|
||||
:guilabel:`Search more` if it's not visible. If the bank isn't listed, click :guilabel:`Create
|
||||
new` to fill out the bank details, then click :guilabel:`Save`.
|
||||
|
||||
.. image:: united_states/bank-information.png
|
||||
:alt: Click the Bank accounts field, then select or create the bank.
|
||||
|
||||
#. Finally, enter the company bank account information (linked in Wise) or vendor bank account
|
||||
information, and click :guilabel:`Save`.
|
||||
|
||||
i. The :guilabel:`Bank accounts` field in the :guilabel:`Accounting` tab should now display
|
||||
the newly added bank account.
|
||||
|
||||
.. image:: united_states/bank-account-information.png
|
||||
:alt: Enter the company/vendor bank account information, then click Save.
|
||||
|
||||
#. Repeat these steps for the **vendor** bank account.
|
||||
|
||||
.. important::
|
||||
To avoid errors when initiating payments to the vendor, ensure the following:
|
||||
|
||||
- Verify the destination bank account with the vendor, then mark it as :doc:`Trusted
|
||||
<../accounting/payments/trusted_accounts>`.
|
||||
- Select the correct :guilabel:`Bank Account Type` (checking or savings).
|
||||
- Select the preferred :guilabel:`Direct Deposit Transfer Type` for the vendor/destination
|
||||
account. Pricing can be verified directly in Wise.
|
||||
- See `Wise US pricing <https://wise.com/us/pricing/business>`__ to calculate price by
|
||||
feature & transaction amount; for pricing in other countries, select the country at the
|
||||
top of the page.
|
||||
|
||||
.. note::
|
||||
Wise offers a `Sandbox environment <https://sandbox.transferwise.tech/login>`_ for testing
|
||||
features and integrations.
|
||||
|
||||
Select the appropriate environment to ensure accurate results (*sandbox* for testing,
|
||||
*production* for real transactions).
|
||||
|
||||
Pay vendor bills with direct deposit
|
||||
------------------------------------
|
||||
|
||||
After configuring direct deposit in both Wise and Odoo, vendor payments can be created individually
|
||||
in the Odoo database, batched for transfer, and then paid in Wise.
|
||||
|
||||
1. :ref:`Create vendor bills <accounting/vendor_bills/creation>`.
|
||||
#. :doc:`Pay the vendor bills <../accounting/payments>` using :guilabel:`U.S. Direct Deposit` as the
|
||||
:guilabel:`Payment Method` for the transaction.
|
||||
#. :doc:`Create a batch payment <../accounting/payments/batch>`. Batch payments can include payments
|
||||
from multiple vendors.
|
||||
#. Confirm the :guilabel:`Batch Type` is :guilabel:`Outbound`, and click :guilabel:`Initiate
|
||||
payment`. Odoo will redirect to Wise.
|
||||
|
||||
i. Sign into the Wise account if needed, and see all the pending transactions.
|
||||
|
||||
#. Review the details and confirm the batch number is the same in Odoo and Wise.
|
||||
#. Click :guilabel:`Pay for this batch` or :guilabel:`I've now paid` to pay for the entire batch.
|
||||
|
||||
.. note::
|
||||
If pop-ups are blocked in the browser settings, Odoo can't redirect to Wise. Instead, Odoo
|
||||
displays a message stating:
|
||||
|
||||
`"A popup window has been blocked. You may need to change your browser settings to allow popup
|
||||
windows for this page."`
|
||||
|
||||
The payment record is still created in Wise, and can be accessed by clicking :guilabel:`View
|
||||
Batch` on the batch payment.
|
||||
|
||||
Cancel a batch payment
|
||||
----------------------
|
||||
|
||||
To cancel a batch payment, follow these steps:
|
||||
|
||||
1. Navigate to :menuselection:`Accounting --> Vendors --> Batch Payments`.
|
||||
#. Select the batch payment to cancel, then click :guilabel:`View Batch`. Odoo will redirect to the
|
||||
batch in Wise. Sign into the Wise account if needed.
|
||||
#. Click :guilabel:`Cancel batch` in Wise.
|
||||
|
||||
ISO 20022
|
||||
=========
|
||||
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
|
@@ -18,7 +18,7 @@ The following IoT systems are supported:
|
|||
|
||||
.. note::
|
||||
- :abbr:`MRP (Material Requirement Planning)` devices, including cameras and measurement tools,
|
||||
are not compatible with Windows virtual IoT.
|
||||
are not compatible with the Windows virtual IoT.
|
||||
- Multiple IoT systems can be used at the same time.
|
||||
- It is also possible to create a Windows Virtual Machine on a MacOS/Linux computer. However,
|
||||
this option is not supported by Odoo, and no troubleshooting assistance will be provided.
|
||||
|
|
@@ -28,12 +28,10 @@ The following IoT systems are supported:
|
|||
IoT box subscription
|
||||
====================
|
||||
|
||||
An IoT box subscription is required for production use of IoT systems. If you have issues related
|
||||
to your subscription, contact the database's account manager or Odoo partner for assistance.
|
||||
|
||||
.. tip::
|
||||
If the subscription is linked to an `Odoo.com <https://www.odoo.com>`_ portal user, check the
|
||||
information on the portal's subscription page.
|
||||
An IoT box subscription is required for production use of IoT systems and generating the
|
||||
:ref:`HTTPS certificate <iot/connect/https_certificate>`. It is created automatically
|
||||
when an IoT system is :doc:`connected to the database <iot/connect>`. If you have issues related to
|
||||
your subscription, contact the database's account manager or Odoo partner for assistance.
|
||||
|
||||
.. seealso::
|
||||
- `Odoo's compatible IoT devices <https://www.odoo.com/app/iot-hardware>`_
|
||||
|
|
@@ -55,7 +53,7 @@ to your subscription, contact the database's account manager or Odoo partner for
|
|||
:target: iot/windows_iot
|
||||
:large:
|
||||
|
||||
Set up Windows virtual IoT.
|
||||
Set up a Windows virtual IoT.
|
||||
|
||||
.. card:: IoT system connection to Odoo
|
||||
:target: iot/connect
|
||||
|
|
@@ -67,11 +65,10 @@ to your subscription, contact the database's account manager or Odoo partner for
|
|||
|
||||
Connect devices such as printers, screens, measurement tools, etc., to the IoT system.
|
||||
|
||||
.. card:: HTTPS certificate
|
||||
:target: iot/iot_advanced/https_certificate_iot
|
||||
.. card:: Troubleshooting
|
||||
:target: iot/iot_advanced/troubleshooting
|
||||
|
||||
Verify your IoT system and database meet the eligibility requirements for HTTPS certificate
|
||||
generation and address any related issues.
|
||||
Diagnose and resolve common IoT system connection and configuration issues.
|
||||
|
||||
.. card:: IoT system updates
|
||||
:target: iot/iot_advanced/updating_iot
|
||||
|
|
|
|||
|
|
@@ -9,7 +9,7 @@ To connect the IoT system to an Odoo database, the following prerequisites must
|
|||
|
||||
- The Internet of Things (IoT) app must be :ref:`installed <general/install>`.
|
||||
- The IoT system must be connected to the network.
|
||||
- The computer connecting to Odoo must be on the same network as the IoT system.
|
||||
- The device connecting to Odoo must be on the same network as the IoT system.
|
||||
|
||||
.. note::
|
||||
It is recommended to connect the IoT system to a **production** instance, as other types of
|
||||
|
|
@@ -23,34 +23,45 @@ To connect the IoT system to an Odoo database, the following prerequisites must
|
|||
Connection
|
||||
==========
|
||||
|
||||
The IoT system can be connected to the Odoo database using a :ref:`pairing code
|
||||
To connect the IoT system to an Odoo database, open the IoT app and click :guilabel:`Connect`.
|
||||
|
||||
The browser then scans the network to which the computer is connected for available IoT systems. If
|
||||
an IoT system is detected, it is connected automatically. If multiple IoT systems are found, select
|
||||
the appropriate one in the popup that opens, then click :guilabel:`Connect`. If no IoT system is
|
||||
detected automatically, try connecting it to the database using a :ref:`pairing code
|
||||
<iot/connect/pairing-code>` or a :ref:`connection token <iot/connect/token>`.
|
||||
|
||||
.. tip::
|
||||
The IoT system’s name is composed of either the :doc:`IoT box <iot_box>` or the
|
||||
:doc:`Windows computer <windows_iot>`’s motherboard serial number, followed by its :ref:`pairing
|
||||
code <iot/connect/pairing-code>`.
|
||||
|
||||
.. _iot/connect/pairing-code:
|
||||
|
||||
Connection using a pairing code
|
||||
-------------------------------
|
||||
|
||||
.. note::
|
||||
- The pairing code is displayed for up to 5 minutes after the IoT system starts. If the code is
|
||||
no longer visible, reboot the IoT box or :ref:`restart the Windows virtual IoT service
|
||||
<iot/windows_iot/restart>` to display the pairing code again. Alternatively, connect the IoT
|
||||
- The pairing code is valid for up to 2 hours after the IoT system powers on. If the code is
|
||||
no longer valid, restart the IoT box or :ref:`restart the Windows virtual IoT service
|
||||
<iot/windows_iot/restart>` to display another pairing code. Alternatively, connect the IoT
|
||||
system to the database using a :ref:`connection token <iot/connect/token>`.
|
||||
- The pairing code is not displayed if the IoT system is already connected to a database (e.g.,
|
||||
a test database).
|
||||
a test database). If necessary, :ref:`disconnect the IoT system from the database
|
||||
<iot/connect/disconnect>`.
|
||||
|
||||
#. Retrieve the IoT's system pairing code:
|
||||
#. Retrieve the IoT system's pairing code:
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: IoT box
|
||||
|
||||
Connect the IoT box to an external monitor or printer. If the IoT box was already plugged
|
||||
prior to this, reboot it by unplugging it for a few seconds and replugging it.
|
||||
Connect the IoT box to an external monitor or a USB printer. If the IoT box was already plugged
|
||||
prior to this, :ref:`restart <iot/iot-box/restart>` it.
|
||||
|
||||
- External monitor: The pairing code should be displayed on the screen a few minutes after
|
||||
rebooting the IoT box.
|
||||
- Printer: The pairing code should be printed automatically.
|
||||
- External monitor: The pairing code will be displayed on the screen after (re)starting the
|
||||
IoT box.
|
||||
- USB-connected printer: The pairing code should be printed automatically.
|
||||
|
||||
.. tip::
|
||||
If no external monitor or printer is connected to the IoT box, access the :ref:`IoT
|
||||
|
|
@@ -64,23 +75,37 @@ Connection using a pairing code
|
|||
:guilabel:`Pairing Code` section.
|
||||
|
||||
#. In Odoo, open the IoT app and click :guilabel:`Connect`.
|
||||
#. In the :guilabel:`Connect an IoT Box` popup that opens, enter the :guilabel:`Pairing code`.
|
||||
#. Click :guilabel:`Pair`.
|
||||
#. In the :guilabel:`Searching for an IoT Box` popup that opens, click :guilabel:`Use Pairing Code`.
|
||||
#. Enter the :guilabel:`Pairing code` and click :guilabel:`Connect`.
|
||||
|
||||
.. _iot/connect/token:
|
||||
|
||||
Connection using a connection token
|
||||
-----------------------------------
|
||||
|
||||
#. :ref:`Enable the developer mode <developer-mode>`.
|
||||
#. In Odoo, open the IoT app and click :guilabel:`Connect`.
|
||||
#. In the :guilabel:`Connect an IoT Box` popup that opens, copy the :guilabel:`Token`.
|
||||
#. In the :guilabel:`Searching for an IoT Box` popup that opens, click :guilabel:`Offline pairing`.
|
||||
#. In the :guilabel:`Pair an IoT Box offline` popup that opens, copy the :guilabel:`Token`.
|
||||
#. Access the :ref:`IoT box's <iot/iot-box/homepage>` or :ref:`Windows virtual IoT's
|
||||
<iot/windows-iot/homepage>` homepage.
|
||||
#. In the :guilabel:`Odoo database connected` section, click :guilabel:`Configure`.
|
||||
#. In the :icon:`fa-link` :guilabel:`Odoo database connected` section, click :guilabel:`Configure`.
|
||||
#. Paste the token into the :guilabel:`Server Token` field and click :guilabel:`Connect`.
|
||||
|
||||
.. note::
|
||||
Once the IoT box is connected to a database, its green LED remains constantly lit.
|
||||
Once the IoT system is connected to a database:
|
||||
|
||||
- If the :doc:`Point of Sale app </applications/sales/point_of_sale>` is installed, a popup
|
||||
appears to select the :doc:`POS the IoT system should be associated with
|
||||
</applications/sales/point_of_sale/configuration/pos_iot>`.
|
||||
- If using an :doc:`IoT box <iot_box>`, wait a few minutes for it to update before using the
|
||||
connected :doc:`devices <devices>`.
|
||||
- The IoT system automatically requests an :ref:`HTTPS certificate
|
||||
<iot/connect/https_certificate>` and its homepage is updated to a new HTTPS URL ending with
|
||||
`.odoo-iot.com` when it becomes available.
|
||||
|
||||
.. seealso::
|
||||
:doc:`iot_advanced/troubleshooting`
|
||||
|
||||
.. _iot/connect/IoT-form:
|
||||
|
||||
|
|
@@ -88,64 +113,71 @@ IoT system form
|
|||
===============
|
||||
|
||||
Once the IoT system is connected to the Odoo database, it is displayed as a card in the IoT app.
|
||||
Click the IP address on the card to access the :ref:`IoT box's <iot/windows-iot/homepage>` or
|
||||
:ref:`Windows virtual IoT's <iot/iot-box/homepage>` homepage. Click the card to access the
|
||||
list of :doc:`devices <devices>` connected to the IoT system.
|
||||
Click the card to access the IoT system's form, which allows to access the :ref:`IoT box's
|
||||
<iot/iot-box/homepage>` or :ref:`Windows virtual IoT's <iot/windows-iot/homepage>` homepage and
|
||||
view the list of :doc:`devices <devices>` connected to the IoT system.
|
||||
|
||||
.. tip::
|
||||
:ref:`Enable the developer mode <developer-mode>` to access the IoT system's
|
||||
:guilabel:`Technical Information`, such as its :guilabel:`Identifier`, :guilabel:`Domain
|
||||
address`, and :guilabel:`Image version`.
|
||||
|
||||
.. note::
|
||||
Enable the :ref:`developer mode <developer-mode>` to access the IoT system's :guilabel:`Technical
|
||||
Information`, such as its :guilabel:`Domain Address`, :guilabel:`Image Version`, and
|
||||
:ref:`SSL Certificate <iot/connect/https_certificate>` :guilabel:`End Date`.
|
||||
By default, drivers are automatically :ref:`updated <iot_updating_iot/handlers>` every time the
|
||||
IoT system is restarted. To disable automatic updates, uncheck the :guilabel:`Automatic drivers
|
||||
update` option.
|
||||
|
||||
.. _iot/connect/troubleshooting:
|
||||
.. _iot/connect/disconnect:
|
||||
|
||||
Troubleshooting
|
||||
===============
|
||||
Disconnecting an IoT system from a database
|
||||
===========================================
|
||||
|
||||
The pairing code does not appear or does not work
|
||||
-------------------------------------------------
|
||||
To disconnect the IoT system from a database, follow these steps:
|
||||
|
||||
The :ref:`pairing code <iot/connect/pairing-code>` might not be displayed or printed under the
|
||||
following circumstances:
|
||||
#. Open the IoT app and click the relevant IoT system's card.
|
||||
#. Click the :icon:`fa-cog` :guilabel:`(Actions)` icon, and select :guilabel:`Delete`.
|
||||
|
||||
- The IoT system is not connected to the Internet.
|
||||
- The IoT system is already connected to an Odoo database.
|
||||
- The :ref:`pairing code <iot/connect/pairing-code>` display time has expired. Reboot the IoT box
|
||||
or :ref:`restart the Windows virtual IoT service <iot/windows_iot/restart>` to display the pairing
|
||||
code again.
|
||||
- The IoT system's image version is too old and needs to be :ref:`updated
|
||||
<iot/updating_iot/image-code>`.
|
||||
.. tip::
|
||||
Alternatively:
|
||||
|
||||
The IoT system is connected but does not appear in the database
|
||||
---------------------------------------------------------------
|
||||
#. Access the :ref:`IoT box's <iot/iot-box/homepage>` or :ref:`Windows virtual IoT's
|
||||
<iot/windows-iot/homepage>` homepage.
|
||||
#. Click :guilabel:`Configure` in the :icon:`fa-link` :guilabel:`Odoo database connected`
|
||||
section.
|
||||
#. Click :guilabel:`Disconnect` in the popup that opens.
|
||||
|
||||
The IoT system might take a few minutes to restart when it connects to a database. If it still does
|
||||
not appear after a few minutes:
|
||||
.. _iot/connect/https_certificate:
|
||||
|
||||
- Verify that the IoT system can reach the database and the server does not use a multi-database
|
||||
environment.
|
||||
- Reboot the IoT box or :ref:`restart the Windows virtual IoT service <iot/windows_iot/restart>`.
|
||||
HTTPS certificate
|
||||
=================
|
||||
|
||||
The IoT box is connected to the Odoo database but cannot be reached
|
||||
-------------------------------------------------------------------
|
||||
:abbr:`HTTPS (Hypertext Transfer Protocol Secure)` is the secure, encrypted version of :abbr:`HTTP
|
||||
(Hypertext Transfer Protocol)`. It uses :abbr:`TLS (Transport Layer Security)` (previously
|
||||
:abbr:`SSL (Secure Sockets Layer)`) certificates to authenticate the server and protect the data
|
||||
exchanged between a browser and a website. Some network devices, such as payment terminals, require
|
||||
a valid HTTPS certificate to communicate with the IoT system; without it, they cannot interact
|
||||
properly.
|
||||
|
||||
Verify that the IoT system and the computer running the Odoo database are connected to the same
|
||||
network.
|
||||
.. note::
|
||||
In this documentation and throughout Odoo, the term *HTTPS certificate* refers to a valid
|
||||
SSL certificate that allows an HTTPS connection.
|
||||
|
||||
The Windows virtual IoT's homepage cannot be accessed from another device
|
||||
-------------------------------------------------------------------------
|
||||
When the IoT system is (re-)started and connected to a database, it automatically downloads the
|
||||
HTTPS certificate if the database meets the following eligibility criteria:
|
||||
|
||||
Check the :ref:`iot/windows-iot/firewall`.
|
||||
.. _iot/https_certificate_iot/iot-eligibility:
|
||||
|
||||
The IoT system is disconnected from the database after an Odoo upgrade
|
||||
----------------------------------------------------------------------
|
||||
- The database must be a **production** instance. The database instance should not be a copy, a
|
||||
duplicate, a staging, or a development environment.
|
||||
- The Odoo subscription must be ongoing (:guilabel:`In Progress` status).
|
||||
|
||||
:ref:`Update the IoT system's image <iot/updating_iot/image-code>` by flashing the IoT box's card or
|
||||
:ref:`uninstalling the Windows virtual IoT program <iot/windows_iot/uninstall>` and
|
||||
:ref:`reinstalling <iot/windows-iot/installation>` the latest package for Windows **matching your
|
||||
database's version**.
|
||||
When the certificate has been received:
|
||||
|
||||
- The IoT system's homepage address is updated to a new HTTPS URL ending with `.odoo-iot.com`.
|
||||
- The :guilabel:`HTTPS certificate` banner displays the certificate's validity period. To view this
|
||||
information, click the :icon:`fa-cogs` (:guilabel:`cogs`) button at the top-right of the IoT
|
||||
system's homepage.
|
||||
|
||||
.. image:: connect/https-valid.png
|
||||
:alt: IoT box homepage with HTTPS certificate validity date.
|
||||
|
||||
.. seealso::
|
||||
:ref:`iot/troubleshooting/https_certificate`
|
||||
|
|
|
|||
BIN
content/applications/general/iot/connect/https-valid.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
|
|
@@ -6,17 +6,19 @@
|
|||
Devices
|
||||
=======
|
||||
|
||||
.. seealso::
|
||||
- :doc:`Connect a Worldline/Axepta BNP Paribas payment terminal
|
||||
<../../sales/point_of_sale/payment_methods/terminals/worldline_axepta>`
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
devices/printer
|
||||
devices/scale
|
||||
devices/screen
|
||||
devices/measurement_tool
|
||||
devices/camera
|
||||
devices/footswitch
|
||||
devices/printer
|
||||
devices/scale
|
||||
|
||||
.. seealso::
|
||||
- :doc:`Connect a Worldline/Axepta BNP Paribas payment terminal
|
||||
<../../sales/point_of_sale/payment_methods/terminals/worldline_axepta>`
|
||||
- :doc:`Connect a SIX payment terminal
|
||||
<../../sales/point_of_sale/payment_methods/terminals/six>`
|
||||
|
|
|
|||
|
|
@@ -16,14 +16,18 @@ Connection
|
|||
==========
|
||||
|
||||
IoT systems support printers connected through USB, network connection, or Bluetooth.
|
||||
`Supported printers <https://www.odoo.com/page/iot-hardware>`__ are detected automatically, and
|
||||
`Supported printers <https://www.odoo.com/page/iot-hardware>`_ are detected automatically, and
|
||||
appear in the :guilabel:`Devices` list of the IoT app.
|
||||
|
||||
.. image:: printer/printer-detected.png
|
||||
:alt: The printer as it would appear in the IoT app devices list.
|
||||
|
||||
.. important::
|
||||
Printers connecting to the IoT system via the network must be on the **same network** as the IoT
|
||||
system.
|
||||
|
||||
.. note::
|
||||
Printers can take up to two minutes to appear in the IoT app :guilabel:`Devices` list.
|
||||
Printers can take up to two minutes to appear in the IoT app's :guilabel:`Devices` list.
|
||||
|
||||
Link a printer
|
||||
==============
|
||||
|
|
|
|||
|
|
@@ -19,7 +19,8 @@ scale's drivers <iot_updating_iot/handlers>`.
|
|||
the Odoo IoT system <https://www.odoo.com/page/iot-hardware>`_. In such cases, a different scale
|
||||
must be used.
|
||||
|
||||
Once the scale is connected to the IoT system, :ref:`configure it in the POS settings <pos/scale>`.
|
||||
Once the scale is connected to the IoT system, :ref:`configure it in the POS settings
|
||||
<pos/hardware/scale>`.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Connect an IoT system to a POS </applications/sales/point_of_sale/configuration/pos_iot>`
|
||||
|
|
|
|||
|
|
@@ -2,109 +2,31 @@
|
|||
Connect a screen
|
||||
================
|
||||
|
||||
In Odoo, an :abbr:`IoT (Internet of Things)` box can be connected to a screen display. After being
|
||||
configured, the screen can be used to display a Point of Sale (PoS) order to a client.
|
||||
|
||||
.. figure:: screen/screen-pos-client-display.png
|
||||
|
||||
An example of a PoS (point of sale) order on a screen display.
|
||||
|
||||
Access the customer display by going to the :abbr:`IoT (Internet of Things)` box homepage and
|
||||
clicking on the :guilabel:`PoS Display` button. To get to the :abbr:`IoT (Internet of Things)` box
|
||||
homepage, navigate to :menuselection:`IoT app --> IoT Boxes` and click on the :abbr:`IoT (Internet
|
||||
of Things)` box homepage link.
|
||||
The :doc:`IoT box <../iot_box>` can be connected to a screen, e.g. to ease the IoT box's setup
|
||||
and/or serve as a :ref:`customer display <pos/hardware/display>` to show customers their :doc:`Point
|
||||
of Sale </applications/sales/point_of_sale>` orders.
|
||||
|
||||
Connection
|
||||
==========
|
||||
|
||||
The way to connect the screen display to the :abbr:`IoT (Internet of Things)` box differs depending
|
||||
on the model.
|
||||
Connect the screen to the IoT box using a micro-HDMI cable. If the connection was successful, the
|
||||
external monitor displays the :guilabel:`Status display` screen.
|
||||
|
||||
.. tabs::
|
||||
.. image:: screen/screen-status-display.png
|
||||
:alt: Default Status Display screen
|
||||
|
||||
.. tab:: IoT Box model 4
|
||||
The screen also appears in the IoT box's list of devices:
|
||||
|
||||
Connect up to two screens with micro-HDMI cables on the side of the :abbr:`IoT (Internet of
|
||||
Things)` box. If two screens are connected, they can display distinct content (see
|
||||
:ref:`Screen Usage <iot/usage_screen>`).
|
||||
- on the :ref:`IoT box's form <iot/connect/IoT-form>`;
|
||||
- on the :ref:`IoT box's homepage <iot/iot-box/homepage>`;
|
||||
- in the IoT app, under the menu :menuselection:`IoT --> Devices`.
|
||||
|
||||
.. tab:: IoT Box model 3
|
||||
Customer display
|
||||
================
|
||||
|
||||
Connect the screen with an HDMI cable on the side of the :abbr:`IoT (Internet of Things)` box.
|
||||
To use the screen as a :ref:`customer display <pos/hardware/display>`, :ref:`configure the POS
|
||||
accordingly <pos/hardware/display-configuration>`.
|
||||
|
||||
.. seealso::
|
||||
:ref:`See the Raspberry Pi Schema <pos/pos_iot/connect_schema>`.
|
||||
|
||||
.. important::
|
||||
Screen(s) should be connected before the :abbr:`IoT (Internet of Things)` box is switched on. If
|
||||
it is already on, connect the screen(s), and then restart the :abbr:`IoT (Internet of Things)`
|
||||
box by unplugging it for ten seconds and plugging it back into its power source.
|
||||
|
||||
.. warning::
|
||||
The usage of HDMI/micro-HDMI adapters may cause issues which will result in a blank, black screen
|
||||
on the screen display. Using the specific cable for the display connection is recommended.
|
||||
|
||||
If the connection was successful, the screen should display the :guilabel:`POS Client display`
|
||||
screen.
|
||||
|
||||
.. image:: screen/screen-pos-client-display-no-order.png
|
||||
:align: center
|
||||
:alt: The default "POS Client Display" screen that appears when a screen display is successfully
|
||||
connected to an IoT box.
|
||||
|
||||
The screen should also appear in the list of :guilabel:`Displays` on the :abbr:`IoT (Internet of
|
||||
Things)` box homepage. Alternatively, the display can be seen by accessing :menuselection:`IoT app
|
||||
--> Devices`.
|
||||
|
||||
.. image:: screen/screen-screen-name-example.png
|
||||
:align: center
|
||||
:alt: An example of a screen display name shown on the IoT Box Home Page.
|
||||
|
||||
.. note::
|
||||
If no screen is detected, a default display named :guilabel:`Distant Display` will be displayed
|
||||
instead. This indicates that there is no hardware screen connected.
|
||||
|
||||
.. image:: screen/screen-no-screen.png
|
||||
:align: center
|
||||
:alt: The "Distant Display" screen name will be used if no screen is detected.
|
||||
|
||||
.. _iot/usage_screen:
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
Show Point of Sale orders to customers
|
||||
--------------------------------------
|
||||
|
||||
To use the screen in the *Point of Sale app*, go to :menuselection:`Point of Sale -->
|
||||
Configuration --> Point of Sale`, select a :abbr:`PoS (Point of Sale)`, click :guilabel:`Edit` if
|
||||
necessary, and enable the :guilabel:`IoT Box` feature.
|
||||
|
||||
Next, select the screen from the :guilabel:`Customer Display` drop-down menu. Then click
|
||||
:guilabel:`Save`, if required.
|
||||
|
||||
.. image:: screen/screen-pos-screen-config.png
|
||||
:align: center
|
||||
:alt: Connect the screen display to the Point of Sale app.
|
||||
|
||||
The screen is now available for :abbr:`PoS (Point of Sale)` sessions. A screen icon will appear in
|
||||
the menu at the top of the screen to indicate the screen's connection status.
|
||||
|
||||
.. image:: screen/screen-pos-icon.png
|
||||
:align: center
|
||||
:alt: The "screen" icon on the Point of Sale display shows the connection status with the
|
||||
screen.
|
||||
|
||||
The screen will automatically show the :abbr:`PoS (Point of Sale)` orders and update when changes
|
||||
are made to the order.
|
||||
|
||||
.. image:: screen/screen-pos-client-display.png
|
||||
:align: center
|
||||
:alt: An example of a PoS order on a screen display.
|
||||
|
||||
Display a website on the screen
|
||||
-------------------------------
|
||||
|
||||
Open the screen form view by accessing :menuselection:`IoT app --> Devices --> Customer Display`.
|
||||
This allows the user to choose a particular website URL to display on the screen using the
|
||||
:guilabel:`Display URL` field.
|
||||
To display a specific website on the screen instead of the POS customer display, go to
|
||||
:menuselection:`IoT --> Devices`, click the screen's card, then enter the desired website's URL in
|
||||
the :guilabel:`Display URL` field.
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 7.4 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
|
@@ -6,6 +6,6 @@ Advanced
|
|||
|
||||
.. toctree::
|
||||
|
||||
iot_advanced/https_certificate_iot
|
||||
iot_advanced/troubleshooting
|
||||
iot_advanced/updating_iot
|
||||
iot_advanced/ssh_connect
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
|
@@ -16,10 +16,9 @@ IoT box SSH connection
|
|||
To provide an :abbr:`SSH (secure shell protocol)` connection to an IoT box, you must generate a
|
||||
password:
|
||||
|
||||
#. Access the IoT box's homepage by opening the IoT app and clicking the IP address displayed
|
||||
on the IoT box's card.
|
||||
#. Click the :icon:`fa-cogs` (:guilabel:`cogs`) button at the top-right, then :guilabel:`Remote
|
||||
Debug`.
|
||||
#. Open the IoT app, click the relevant IoT box's card, and click :guilabel:`Homepage`.
|
||||
#. On the IoT system's homepage, click the :icon:`fa-cogs` (:guilabel:`cogs`) button at the
|
||||
top-right, then :guilabel:`Remote Debug`.
|
||||
#. In the :guilabel:`Remote Debugging` popup that opens, click :guilabel:`Generate` and save the
|
||||
password securely. Once you close the popup, the password will no longer be available.
|
||||
|
||||
|
|
|
|||
|
|
@@ -1,76 +1,59 @@
|
|||
.. _iot/https_certificate_iot:
|
||||
:hide-page-toc:
|
||||
|
||||
=======================
|
||||
HTTPS certificate (IoT)
|
||||
=======================
|
||||
===============
|
||||
Troubleshooting
|
||||
===============
|
||||
|
||||
*Hypertext Transfer Protocol Secure* (HTTPS) is the secure and encrypted version of *Hypertext
|
||||
Transfer Protocol* (HTTP), which is the primary protocol used for data communication between a web
|
||||
browser and a website. It secures communications by using an encryption protocol known as *Transport
|
||||
Layer Security* (TLS), previously called *Secure Sockets Layer* (SSL). The security of
|
||||
:abbr:`HTTPS (Hypertext Transfer Protocol Secure)` relies on :abbr:`TLS (Transport Layer Security)`
|
||||
/:abbr:`SSL (Secure Sockets Layer)` certificates, which authenticate the provider and verify their
|
||||
identity.
|
||||
The pairing code does not appear or does not work
|
||||
=================================================
|
||||
|
||||
The use of HTTPS is required to communicate with certain network devices, particularly payment
|
||||
terminals. If the HTTPS certificate is not valid, some devices cannot interact with the IoT
|
||||
system.
|
||||
The :ref:`pairing code <iot/connect/pairing-code>` might not be displayed or printed under the
|
||||
following circumstances:
|
||||
|
||||
.. note::
|
||||
In this documentation and throughout Odoo, the term *HTTPS certificate* refers to a valid
|
||||
SSL certificate that allows an HTTPS connection.
|
||||
- The IoT system is not connected to the network.
|
||||
- The IoT system is already connected to an Odoo database. :ref:`Disconnect it from the database
|
||||
<iot/connect/disconnect>`.
|
||||
- The :ref:`pairing code <iot/connect/pairing-code>` display time has expired. Restart the :ref:`IoT
|
||||
box <iot/iot-box/restart>` or the :ref:`Windows virtual IoT service <iot/windows_iot/restart>` to
|
||||
generate and display the pairing code.
|
||||
|
||||
.. _iot/https_certificate_iot/generation:
|
||||
The IoT system does not connect to the database
|
||||
===============================================
|
||||
|
||||
HTTPS certificate generation
|
||||
============================
|
||||
The IoT system might take a few minutes to restart when it connects to a database. If it still does
|
||||
not appear after a few minutes:
|
||||
|
||||
The HTTPS certificate is generated automatically. When the IoT system is (re-)started (e.g., after
|
||||
it is connected to the Odoo database), a request is sent to `<https://www.odoo.com>`_, which returns
|
||||
the HTTPS certificate if the IoT system and database meet the eligibility criteria:
|
||||
- Verify that the IoT system can reach the database and the server does not use a multi-database
|
||||
environment.
|
||||
- Restart the :ref:`IoT box <iot/iot-box/restart>` or the :ref:`Windows virtual IoT service
|
||||
<iot/windows_iot/restart>`.
|
||||
|
||||
.. _iot/https_certificate_iot/iot-eligibility:
|
||||
The IoT system is connected to the Odoo database but cannot be reached
|
||||
======================================================================
|
||||
|
||||
- The database must be a **production** instance. The database instance should not be a copy, a
|
||||
duplicate, a staging, or a development environment.
|
||||
- The Odoo subscription must be ongoing (:guilabel:`In Progress` status) and have an :ref:`IoT
|
||||
box subscription <iot/iot/iot-subscription>` line.
|
||||
Verify that the IoT system and the computer running the Odoo database are connected to the same
|
||||
network and :ref:`update the DNS settings <iot/troubleshooting/dns>` if necessary.
|
||||
|
||||
When the certificate has been received:
|
||||
The Windows virtual IoT's homepage cannot be accessed from another device
|
||||
=========================================================================
|
||||
|
||||
- The IoT system's homepage address is updated to a new HTTPS URL ending with `.odoo-iot.com`. Click
|
||||
the URL to establish a secure HTTPS connection.
|
||||
- Ensure the device is connected to the same network as the Windows virtual IoT.
|
||||
- Check the :ref:`iot/windows-iot/firewall`.
|
||||
|
||||
.. image:: https_certificate_iot/iot-new-domain.png
|
||||
:alt: Odoo IoT app IoT box with .odoo-iot.com domain.
|
||||
The IoT system does not work after an Odoo upgrade
|
||||
==================================================
|
||||
|
||||
- The :guilabel:`HTTPS certificate` banner displays the certificate's validity period. To view this
|
||||
information, click the :icon:`fa-cogs` (:guilabel:`cogs`) button on the IoT system's homepage.
|
||||
Restart the :ref:`IoT box <iot/iot-box/restart>` or the :ref:`Windows virtual IoT service
|
||||
<iot/windows_iot/restart>`.
|
||||
|
||||
.. image:: https_certificate_iot/https-valid.png
|
||||
:alt: IoT box homepage with HTTPS certificate validity date.
|
||||
If the issue persists, :ref:`update its image <iot/updating_iot/image-code>` by flashing the IoT
|
||||
box's card or :ref:`uninstalling the Windows virtual IoT program <iot/windows_iot/uninstall>` and
|
||||
:ref:`reinstalling the virtual IoT package <iot/windows-iot/installation>`.
|
||||
|
||||
HTTPS certificate generation issues and errors
|
||||
==============================================
|
||||
|
||||
The HTTPS certificate does not generate
|
||||
---------------------------------------
|
||||
|
||||
Potential causes include the following:
|
||||
|
||||
- No :ref:`IoT box subscription <iot/iot/iot-subscription>` is linked to your account.
|
||||
- The :ref:`IoT box subscription <iot/iot/iot-subscription>` was added *after* connecting the IoT
|
||||
system to the database. In this case, refresh the IoT system's homepage or reboot/:ref:`restart
|
||||
<iot/windows_iot/restart>` the IoT system to regenerate the HTTPS certificate.
|
||||
- The firewall is preventing the HTTPS certificate from generating correctly. In this case,
|
||||
deactivate 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
|
||||
generating.
|
||||
.. _iot/troubleshooting/dns:
|
||||
|
||||
The IoT system's homepage can be accessed using its IP address but not the `xxx.odoo-iot.com` URL
|
||||
-------------------------------------------------------------------------------------------------
|
||||
=================================================================================================
|
||||
|
||||
Contact your system or network administrator to address the issue. Network-related problems are
|
||||
beyond the scope of Odoo support services.
|
||||
|
|
@@ -88,11 +71,31 @@ beyond the scope of Odoo support services.
|
|||
- On some browsers, an error code mentioning the DNS (such as `DNS_PROBE_FINISHED_NXDOMAIN`) is
|
||||
displayed.
|
||||
|
||||
.. _iot/troubleshooting/https_certificate:
|
||||
|
||||
HTTPS certificate generation issues and errors
|
||||
==============================================
|
||||
|
||||
The HTTPS certificate does not generate
|
||||
---------------------------------------
|
||||
|
||||
Potential causes include the following:
|
||||
|
||||
- The database doesn't meet the :ref:`eligibility requirements
|
||||
<iot/https_certificate_iot/iot-eligibility>` for generating an :ref:`HTTPS certificate
|
||||
<iot/connect/https_certificate>`.
|
||||
- The firewall is preventing the HTTPS certificate from generating correctly. In this case,
|
||||
deactivate 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
|
||||
generating.
|
||||
|
||||
Errors
|
||||
------
|
||||
|
||||
A specific error code is displayed on the IoT system's homepage if any issues occur during the
|
||||
generation or reception of the HTTPS certificate.
|
||||
generation or reception of the ref:`HTTPS certificate <iot/connect/https_certificate>`.
|
||||
|
||||
.. tip::
|
||||
When you access the IoT system's homepage, it automatically checks for an HTTPS certificate and
|
||||
|
|
@@ -102,23 +105,24 @@ generation or reception of the HTTPS certificate.
|
|||
`ERR_IOT_HTTPS_CHECK_NO_SERVER`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The server configuration is missing, i.e., the Odoo instance is not :doc:`connected <../connect>` to
|
||||
The server configuration is missing, i.e., the database is not :doc:`connected <../connect>` to
|
||||
the IoT system.
|
||||
|
||||
`ERR_IOT_HTTPS_CHECK_CERT_READ_EXCEPTION`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
An error occurred while attempting to read the existing HTTPS certificate.
|
||||
An error occurred while attempting to read the existing ref:`HTTPS certificate
|
||||
<iot/connect/https_certificate>`.
|
||||
Verify that the HTTPS certificate file is readable.
|
||||
|
||||
`ERR_IOT_HTTPS_LOAD_NO_CREDENTIAL`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The contract and/or database :abbr:`UUID (Universal Unique Identifier)` is missing form the IoT.
|
||||
The contract and/or database :abbr:`UUID (Universal Unique Identifier)` is missing from the IoT.
|
||||
|
||||
Verify that both values are correctly configured. To update them, :ref:`access the IoT box's
|
||||
<iot/iot-box/homepage>` or :ref:`Windows virtual IoT's homepage <iot/windows-iot/homepage>`,
|
||||
click the :icon:`fa-cogs` (:guilabel:`cogs`) button, then click :guilabel:`Credential`.
|
||||
click the :icon:`fa-cogs` (:guilabel:`cogs`) button, then click :guilabel:`Credentials`.
|
||||
|
||||
`ERR_IOT_HTTPS_LOAD_REQUEST_EXCEPTION`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
@@ -162,7 +166,7 @@ To solve this issue:
|
|||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The IoT system successfully connected to `<https://www.odoo.com>`_, but the server refused to
|
||||
provide the HTTPS certificate.
|
||||
provide the ref:`HTTPS certificate <iot/connect/https_certificate>`.
|
||||
|
||||
Check that the IoT system and database meet the :ref:`eligibility requirements
|
||||
<iot/https_certificate_iot/iot-eligibility>` for an HTTPS certificate.
|
||||
|
|
@@ -39,8 +39,8 @@ Image and core code update
|
|||
|
||||
#. `Download balenaEtcher. <https://etcher.balena.io/#download-etcher>`_
|
||||
#. Insert the IoT box's micro SD card into the computer or adapter.
|
||||
#. Open balenaEtcher, click :guilabel:`Flash from URL`, and enter the following URL:
|
||||
`http://nightly.odoo.com/master/iotbox/iotbox-latest.zip`.
|
||||
#. | Open balenaEtcher, click :guilabel:`Flash from URL`, and enter the following URL:
|
||||
| `http://nightly.odoo.com/master/iotbox/iotbox-latest.zip`.
|
||||
#. Click :guilabel:`Select target` and select the SD card.
|
||||
#. Click :guilabel:`Flash` and wait for the process to finish.
|
||||
|
||||
|
|
@@ -52,10 +52,9 @@ Image and core code update
|
|||
To update the IoT box's core code, click :guilabel:`Update` under :guilabel:`IoT Box Update`
|
||||
in the :guilabel:`Update` popup.
|
||||
|
||||
.. danger::
|
||||
This process may take over 30 minutes. **Do not turn off or unplug the IoT box** during
|
||||
this time, as doing so could leave the device in an inconsistent state, requiring the IoT
|
||||
box to be reflashed with a new image.
|
||||
.. warning::
|
||||
**Do not turn off or unplug the IoT box** during the update process, as doing so could leave
|
||||
the device in an inconsistent state, requiring the IoT box to be reflashed with a new image.
|
||||
|
||||
.. group-tab:: Windows virtual IoT
|
||||
|
||||
|
|
|
|||
|
|
@@ -4,23 +4,13 @@ IoT box
|
|||
|
||||
To start using an IoT box:
|
||||
|
||||
#. Make sure you have a :ref:`valid IoT box subscription <iot/iot/iot-subscription>` in addition to
|
||||
your Odoo subscription.
|
||||
#. Connect your :doc:`devices <devices>` to the IoT box.
|
||||
#. :ref:`Connect the IoT box to the network <iot/iot_box/network>`.
|
||||
#. :doc:`Connect the IoT box to your Odoo database <connect>`.
|
||||
|
||||
.. seealso::
|
||||
`Video: How to Set Up and Use the Odoo IoT Box: A Beginner's Guide <https://www.youtube.com/watch?v=w2_Dcm3r_7o&ab_channel=Odoo>`_
|
||||
|
||||
.. note::
|
||||
Devices can also be connected after the IoT box is added to the network and/or connected to the
|
||||
database; however, a reboot of the IoT box might be required.
|
||||
|
||||
.. important::
|
||||
Never make the IoT box accessible from the public Internet.
|
||||
IoT systems are designed to provide your database with access to devices on your local network.
|
||||
Exposing them to the public Internet would create a **security risk**.
|
||||
- `Video: How to Set Up and Use the Odoo IoT Box: A Beginner's Guide <https://www.youtube.com/watch?v=w2_Dcm3r_7o&ab_channel=Odoo>`_
|
||||
- :doc:`iot_advanced/troubleshooting`
|
||||
|
||||
.. _iot/iot_box/network:
|
||||
|
||||
|
|
@@ -30,9 +20,14 @@ Network connection
|
|||
The IoT box can be connected to the network via :ref:`Ethernet <iot/iot_box/network-ethernet>` or
|
||||
:ref:`Wi-Fi <iot/iot_box/network-wifi>`.
|
||||
|
||||
.. note::
|
||||
It is recommended to connect the IoT box to the same network as the :doc:`devices <devices>`
|
||||
connecting to it.
|
||||
|
||||
.. important::
|
||||
**All** devices must be connected to the **same network**: the IoT box, the device(s) connected
|
||||
to the IoT box, and the computer connected to Odoo.
|
||||
Never make the IoT box accessible from the public Internet.
|
||||
IoT systems are designed to provide your database with access to devices on your local network.
|
||||
Exposing them to the public Internet would create a **security risk**.
|
||||
|
||||
.. _iot/iot_box/network-ethernet:
|
||||
|
||||
|
|
@@ -58,10 +53,15 @@ Make sure no Ethernet cable is connected to the IoT box and follow these steps:
|
|||
.. note::
|
||||
Depending on your operating system, the browser might not open and redirect to the IoT box's
|
||||
homepage. 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`).
|
||||
or any URL starting with **http** (e.g., `http://odoo.com`).
|
||||
|
||||
#. On the IoT box's homepage, click :guilabel:`Configure` next to the :guilabel:`Internet Status`
|
||||
section.
|
||||
|
||||
.. image:: iot_box/iot-wifi.png
|
||||
:scale: 75%
|
||||
:alt: IoT box's WiFi hotspot
|
||||
|
||||
#. Wait a few minutes for the available networks to be scanned, select the network, enter the
|
||||
Wi-Fi's password, and click :guilabel:`Connect`.
|
||||
|
||||
|
|
@@ -70,6 +70,27 @@ Make sure no Ethernet cable is connected to the IoT box and follow these steps:
|
|||
computer should automatically reconnect to its original network. If it does not, reconnect to it
|
||||
manually.
|
||||
|
||||
.. tip::
|
||||
If the IoT box is connected to an :doc:`external monitor <devices/screen>`, you can also scan the
|
||||
first QR code displayed on the screen to connect to the network, then scan the second QR code to
|
||||
access the IoT box's :ref:`homepage <iot/iot-box/homepage>`. On the homepage, click
|
||||
:guilabel:`Configure` in the :guilabel:`Internet Status` section, select the relevant Wi-Fi
|
||||
network, enter the password, and click :guilabel:`Connect`.
|
||||
|
||||
.. _iot/iot-box/led-status:
|
||||
|
||||
LED status
|
||||
==========
|
||||
|
||||
The IoT box features two LEDs, located to the right of the SD card slot, which show its status and
|
||||
help with troubleshooting when no display is connected. The LEDs can be interpreted as follows:
|
||||
|
||||
- **Red LED lit**: The IoT box has no Internet connection. Ensure the Ethernet cable is properly
|
||||
connected or :ref:`connect the IoT box via Wi-Fi <iot/iot_box/network-wifi>`.
|
||||
- **Green LED flashing**: The IoT box is awaiting :doc:`connection to a database <connect>`.
|
||||
- **Green LED constantly lit**: The IoT box is connected to a database; no further action is
|
||||
required.
|
||||
|
||||
.. _iot/iot-box/homepage:
|
||||
|
||||
IoT box homepage
|
||||
|
|
@@ -84,30 +105,33 @@ navigate to the IoT box's IP address.
|
|||
|
||||
The IoT box's IP address can be retrieved by:
|
||||
|
||||
- connecting the IoT box to an external monitor: the IP address is displayed on the screen.
|
||||
- connecting the IoT box to an :doc:`external monitor <devices/screen>`: the IP address is displayed
|
||||
on the screen.
|
||||
|
||||
.. image:: iot_box/iot-pos-display.png
|
||||
.. image:: iot_box/iot-status-display.png
|
||||
:scale: 75%
|
||||
:alt: POS display with IoT box's IP address
|
||||
:alt: Status display with IoT box's IP address
|
||||
|
||||
- connecting the IoT box to a `supported receipt or label printer <https://www.odoo.com/app/iot-hardware>`_
|
||||
with a USB cable: the IP address is automatically printed.
|
||||
- accessing the administrator interface of the router to which the IoT box is connected or using
|
||||
third-party software to scan the network.
|
||||
|
||||
.. tip::
|
||||
If the IoT box is connected to an :doc:`external monitor <devices/screen>` or a :doc:`printer
|
||||
<devices/printer>`, its homepage can also be accessed by scanning the displayed or printed QR
|
||||
code with a device connected to the same network as the IoT box.
|
||||
|
||||
Once the IoT box is :doc:`connected to the Odoo database <connect>`, its homepage can be accessed
|
||||
from Odoo by opening the IoT app and clicking the URL displayed on the IoT box's card.
|
||||
from the IoT app: click the relevant IoT box's card, then click :guilabel:`Homepage`.
|
||||
|
||||
.. _iot/iot-box/led-status:
|
||||
.. _iot/iot-box/restart:
|
||||
|
||||
LED status
|
||||
==========
|
||||
IoT box restart
|
||||
===============
|
||||
|
||||
The IoT box features two LEDs, located to the right of the SD card slot, which show its status and
|
||||
help with troubleshooting when no display is connected. The LEDs can be interpreted as follows:
|
||||
To manually restart the IoT box, access its :ref:`homepage <iot/iot-box/homepage>`, then click the
|
||||
:icon:`fa-power-off` :guilabel:`(power off)` button in the top-right corner.
|
||||
|
||||
- **Red LED lit**: The IoT box has no Internet connection. Ensure the Ethernet cable is properly
|
||||
connected or :ref:`connect the IoT box via Wi-Fi <iot/iot_box/network-wifi>`.
|
||||
- **Green LED flashing**: The IoT box is awaiting :doc:`connection to a database <connect>`.
|
||||
- **Green LED constantly lit**: The IoT box is connected to a database; no further action is
|
||||
required.
|
||||
.. tip::
|
||||
You can also fully reboot the IoT box by unplugging and plugging it back in.
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 46 KiB |
BIN
content/applications/general/iot/iot_box/iot-status-display.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
content/applications/general/iot/iot_box/iot-wifi.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
|
|
@@ -4,29 +4,22 @@ Windows virtual IoT
|
|||
|
||||
To start using the Windows virtual IoT:
|
||||
|
||||
#. Make sure all :ref:`prerequisites <iot/windows-iot/prerequisites>` are met.
|
||||
#. :ref:`Install the Windows virtual IoT <iot/windows-iot/installation>` on a Windows computer.
|
||||
#. :ref:`Configure the Windows Firewall <iot/windows-iot/firewall>`.
|
||||
#. Make sure the computer runs an updated version of Windows (Windows 10 or Windows 11), whether
|
||||
it's a laptop, desktop, or server.
|
||||
#. :ref:`Install the Windows virtual IoT <iot/windows-iot/installation>` on the Windows computer.
|
||||
#. Connect your :doc:`devices <devices>` to the Windows virtual IoT.
|
||||
#. :ref:`Configure the Windows Firewall <iot/windows-iot/firewall>`.
|
||||
#. :doc:`Connect the Windows virtual IoT to your Odoo database <connect>`.
|
||||
|
||||
.. _iot/windows-iot/prerequisites:
|
||||
|
||||
Prerequisites
|
||||
=============
|
||||
|
||||
The following prerequisites must be met before setting up and using the Windows virtual IoT:
|
||||
|
||||
- A valid :ref:`IoT box subscription <iot/iot/iot-subscription>`.
|
||||
- An updated and recent version of Windows (i.e., Windows 10 or Windows 11) installed on a Windows
|
||||
computer (laptop, desktop, or server).
|
||||
|
||||
.. note::
|
||||
- :abbr:`MRP (Material Requirement Planning)` devices, including cameras and measurement tools,
|
||||
are not compatible with Windows virtual IoT.
|
||||
- It is also possible to create a Windows Virtual Machine on a MacOS/Linux computer. However,
|
||||
- It is also possible to create a Windows Virtual Machine on a macOS/Linux computer. However,
|
||||
this option is not supported by Odoo, and no troubleshooting assistance will be provided.
|
||||
|
||||
.. seealso::
|
||||
:doc:`iot_advanced/troubleshooting`
|
||||
|
||||
.. important::
|
||||
Never make the Windows virtual IoT accessible from the public Internet.
|
||||
IoT systems are designed to provide your database with access to devices on your local network.
|
||||
|
|
@@ -49,7 +42,7 @@ To install the Windows virtual IoT on a Windows computer:
|
|||
|
||||
.. warning::
|
||||
Do not install Odoo's Windows virtual IoT in any Windows user directory, as this can cause
|
||||
issues with :ref:`iot/https_certificate_iot/generation`.
|
||||
issues with :ref:`HTTPS certificate generation <iot/connect/https_certificate>`.
|
||||
|
||||
#. Set up GPL Ghostscript: Click :guilabel:`Next`, agree to the terms and conditions, click
|
||||
:guilabel:`Install`, then :guilabel:`Finish`.
|
||||
|
|
@@ -57,7 +50,6 @@ To install the Windows virtual IoT on a Windows computer:
|
|||
:ref:`IoT system's homepage <iot/windows-iot/homepage>` automatically opens in a web browser with
|
||||
the URL `http://localhost:8069`.
|
||||
#. :ref:`Restart <iot/windows_iot/restart>` the Windows virtual IoT service.
|
||||
|
||||
#. Check that you can access the :ref:`IoT system's homepage <iot/windows-iot/homepage>` in a web
|
||||
browser:
|
||||
|
||||
|
|
@@ -65,21 +57,36 @@ To install the Windows virtual IoT on a Windows computer:
|
|||
- 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 :doc:`HTTPS
|
||||
<iot_advanced/https_certificate_iot>` connection.
|
||||
`https://xxx` (where `xxx` is the IoT system's IP address) to test for :ref:`HTTPS
|
||||
<iot/connect/https_certificate>` connection.
|
||||
|
||||
.. tip::
|
||||
If you cannot access the :ref:`IoT system's homepage <iot/windows-iot/homepage>` from
|
||||
another device, create a :ref:`Windows Firewall <iot/windows-iot/firewall>` rule to allow
|
||||
communication through port `8069`.
|
||||
|
||||
Device connection
|
||||
=================
|
||||
|
||||
Most :doc:`devices <devices>` automatically connect to the Windows computer used for the Windows
|
||||
Virtual IoT through `Windows Plug and Play (PnP)
|
||||
<https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/introduction-to-plug-and-play>`_.
|
||||
However, if Windows does not recognize the device automatically upon connection, the administrator
|
||||
may need to manually install the appropriate drivers.
|
||||
|
||||
.. tip::
|
||||
After connecting the devices to the computer, refresh the :ref:`IoT system's homepage
|
||||
<iot/windows-iot/homepage>` to verify that the device is listed. If the device does not appear,
|
||||
:ref:`reload the handlers <iot_updating_iot/handlers>` from the :ref:`IoT system's homepage
|
||||
<iot/windows-iot/homepage>`.
|
||||
|
||||
.. _iot/windows-iot/firewall:
|
||||
|
||||
Windows Firewall configuration
|
||||
==============================
|
||||
|
||||
Firewalls help keep devices secure but can sometimes block legitimate connections. If the Windows
|
||||
virtual IoT isn't accessible on the :abbr:`LAN (Local Area Network)`, for example from another
|
||||
virtual IoT isn't accessible on the :abbr:`LAN (Local Area Network)`, for example, from another
|
||||
device, it could be due to a firewall blocking the connection. To prevent this issue, configure
|
||||
exceptions for network discovery in the :abbr:`OS (Operating System)` or firewall settings.
|
||||
|
||||
|
|
@@ -87,8 +94,8 @@ exceptions for network discovery in the :abbr:`OS (Operating System)` or firewal
|
|||
If third-party firewall software is installed on the Windows computer, refer to the software's
|
||||
documentation to configure firewall exceptions.
|
||||
|
||||
To create a rule on Windows Defender and allow communication through port `8069`, follow these
|
||||
steps:
|
||||
To create a rule on Windows Defender and allow communication through the required ports, follow
|
||||
these steps:
|
||||
|
||||
#. Search the Windows start menu for `firewall` and select the :guilabel:`Windows Defender Firewall
|
||||
with Advanced Security` app.
|
||||
|
|
@@ -101,9 +108,9 @@ steps:
|
|||
:guilabel:`Next`.
|
||||
|
||||
.. note::
|
||||
Other ports may be necessary depending on your IoT devices. For example, for the
|
||||
:doc:`/applications/sales/point_of_sale/payment_methods/terminals/worldline_axepta` payment terminal,
|
||||
add the `9050` port.
|
||||
Other ports may be required depending on your IoT devices. For example, add port `9050` for
|
||||
the :doc:`/applications/sales/point_of_sale/payment_methods/terminals/worldline_axepta`
|
||||
payment terminals.
|
||||
|
||||
#. On the :guilabel:`Action` page, select :guilabel:`Allow the connection` and click
|
||||
:guilabel:`Next`.
|
||||
|
|
@@ -127,8 +134,8 @@ the IoT system** and navigate to the URL `http://xxx:8069` (where `xxx` is the I
|
|||
address).
|
||||
|
||||
Once the Windows virtual IoT is :doc:`connected to the Odoo database <connect>`, its homepage can
|
||||
be accessed from Odoo by opening the IoT app and clicking the URL displayed on the IoT system's
|
||||
card.
|
||||
be accessed from Odoo by opening the IoT app, clicking the relevant IoT box's card, and
|
||||
clicking :guilabel:`Homepage`.
|
||||
|
||||
.. image:: windows_iot/iot-windows-homepage.png
|
||||
:scale: 75%
|
||||
|
|
@@ -137,29 +144,14 @@ card.
|
|||
.. note::
|
||||
Make sure the :ref:`Windows Firewall is configured <iot/windows-iot/firewall>` to allow access.
|
||||
|
||||
Device connection
|
||||
=================
|
||||
|
||||
Most :doc:`devices <devices>` automatically connect to the Windows computer used for the Windows
|
||||
Virtual IoT through `Windows Plug and Play (PnP)
|
||||
<https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/introduction-to-plug-and-play>`_.
|
||||
However, if Windows does not recognize the device automatically upon connection, the administrator
|
||||
may need to manually install the appropriate drivers.
|
||||
|
||||
.. tip::
|
||||
After connecting the devices to the computer, refresh the :ref:`IoT system's homepage
|
||||
<iot/windows-iot/homepage>` to verify that the device is listed. If the device does not appear,
|
||||
:ref:`reload the handlers <iot_updating_iot/handlers>` from the :ref:`IoT system's homepage
|
||||
<iot/windows-iot/homepage>`.
|
||||
|
||||
.. _iot/windows_iot/restart:
|
||||
|
||||
Windows virtual IoT restart
|
||||
===========================
|
||||
|
||||
To manually restart the Windows IoT server, search the Windows start menu for `services` and
|
||||
select the :guilabel:`Services` app. Scroll down to the :guilabel:`odoo-server-xxx` service (where
|
||||
`xxx` is the odoo version), right-click it, and select :guilabel:`Start` or :guilabel:`Restart`.
|
||||
select the Services app. Scroll down to the :guilabel:`odoo-server-xxx` service, right-click it, and
|
||||
select :guilabel:`Start` or :guilabel:`Restart`.
|
||||
|
||||
.. _iot/windows_iot/uninstall:
|
||||
|
||||
|
|
|
|||
|
|
@@ -133,8 +133,9 @@ it into your browser.
|
|||
#. open Chrome;
|
||||
#. go to :menuselection:`Settings --> Privacy and security --> Security -->
|
||||
Manage certificates`;
|
||||
#. go to the :guilabel:`Authorities` tab, click :guilabel:`Import`, and select
|
||||
the exported certification file;
|
||||
#. on the :guilabel:`Local certificates` tab, click :guilabel:`Installed by you` under the :guilabel:`Custom` section;
|
||||
#. click :guilabel:`Import` next to :guilabel:`Trusted Certificates`, and select
|
||||
the exported certification file from your local drive;
|
||||
#. accept all warnings;
|
||||
#. click :guilabel:`ok`;
|
||||
#. restart your browser.
|
||||
|
|
@@ -145,8 +146,11 @@ it into your browser.
|
|||
#. open Firefox;
|
||||
#. go to :menuselection:`Settings --> Privacy & Security --> Security --> View
|
||||
Certificates... --> Import`;
|
||||
#. select the exported certification file;
|
||||
#. tick the checkboxes and validate;
|
||||
#. in the pop-up window, open the :guilabel:`Servers` tab;
|
||||
#. click :guilabel:`Add Exception...`;
|
||||
#. enter the printer's IP address in the :guilabel:`Location` field, then
|
||||
click :guilabel:`Get Certificate`;
|
||||
#. tick the :guilabel:`Permanently store this exception` checkbox and confirm;
|
||||
#. restart your browser.
|
||||
|
||||
.. tab:: Mac OS
|
||||
|
|
|
|||
|
|
@@ -27,23 +27,24 @@ To connect the POS with an :doc:`IoT system </applications/general/iot>`:
|
|||
the barcode scanner to be compatible. This is most likely the barcode scanner's default
|
||||
configuration.
|
||||
* - Scale
|
||||
- Connect the scale and power it on. Refer to :doc:`/applications/general/iot/devices/scale`.
|
||||
- :ref:`Connect the scale and power it on <pos/hardware/scale>`.
|
||||
* - Customer display
|
||||
- Connect a screen to the :abbr:`IoT (Internet of Things)` box to display the :abbr:`PoS
|
||||
(Point of Sale)` order. Refer to :doc:`/applications/general/iot/devices/screen`.
|
||||
- :ref:`Connect a screen <pos/hardware/display>` to the :abbr:`IoT (Internet of
|
||||
Things)` box to display the :abbr:`PoS (Point of Sale)` order.
|
||||
* - Payment terminal
|
||||
- The connection process depends on the terminal. Refer to the :doc:`payment terminals
|
||||
documentation </applications/sales/point_of_sale/payment_methods>`.
|
||||
|
||||
#. :doc:`Connect the IoT system to your Odoo database </applications/general/iot/connect>`.
|
||||
#. :ref:`Access the POS settings <configuration/settings>` and select your POS, or click the
|
||||
vertical ellipsis button (:guilabel:`⋮`) on a POS card and click :guilabel:`Edit`. Scroll down
|
||||
to the :guilabel:`Connected Devices` section, enable :guilabel:`IoT Box`, then select the devices
|
||||
to be used for the POS. Click :guilabel:`Save`.
|
||||
#. In the :guilabel:`Connect to a Point of Sale` popup that opens, select the :guilabel:`Associated
|
||||
POS` and click :guilabel:`Continue`. The IoT system and its devices are automatically linked to
|
||||
the POS.
|
||||
|
||||
.. tip::
|
||||
Click :guilabel:`IoT Devices` to access the list of :doc:`/applications/general/iot/devices` for
|
||||
your POS and view their connection status. Click a card to access the device's form.
|
||||
.. tip::
|
||||
Alternatively, :ref:`access the POS settings <configuration/settings>` and select the POS, or
|
||||
click the vertical ellipsis button (:guilabel:`⋮`) on a POS card and click :guilabel:`Edit`.
|
||||
Then, enable :guilabel:`IoT Box`, select the devices to use with the POS, and click
|
||||
:guilabel:`Save`.
|
||||
|
||||
.. seealso::
|
||||
- `List of supported hardware <https://www.odoo.com/page/point-of-sale-hardware>`_.
|
||||
|
|
|
|||
|
|
@@ -103,6 +103,16 @@ Point of Sale
|
|||
.. image:: online_food_delivery/create-store.png
|
||||
:alt: Food delivery connector settings
|
||||
|
||||
Store timings
|
||||
-------------
|
||||
|
||||
Configure the store timings to define when the delivery services are available:
|
||||
|
||||
#. Navigate to :menuselection:`Point of Sale --> Configuration --> Store Timings`.
|
||||
#. Add a new timing record by clicking :guilabel:`New` to add a line, or edit an existing line.
|
||||
#. Fill in the :guilabel:`Week Day`, :guilabel:`Starting Hour`, :guilabel:`Ending Hour`,
|
||||
and :guilabel:`Point of Sale associated with this timing` columns.
|
||||
|
||||
Products
|
||||
--------
|
||||
|
||||
|
|
|
|||
|
|
@@ -4,11 +4,11 @@ Hardware
|
|||
|
||||
Odoo Point of Sale supports integration with a variety of hardware, including :doc:`payment
|
||||
terminals <payment_methods/terminals>` and cash drawers, as well as :ref:`customer displays
|
||||
<pos/display>`, :ref:`scales <pos/scale>`, :doc:`barcode scanners <shop/barcode>`,
|
||||
<pos/hardware/display>`, :ref:`scales <pos/hardware/scale>`, :doc:`barcode scanners <shop/barcode>`,
|
||||
:doc:`ePOS printers <configuration/epos_printers>`, and in-store :doc:`electronic shelf labels
|
||||
<pricing/electronic_labels>`.
|
||||
|
||||
.. _pos/display:
|
||||
.. _pos/hardware/display:
|
||||
|
||||
Customer display
|
||||
================
|
||||
|
|
@@ -26,6 +26,8 @@ the selected :doc:`payment method <payment_methods>`, and any change to be retur
|
|||
Both the customer and POS displays must have a minimum diagonal size of 6 inches. For optimal
|
||||
readability, larger screens are recommended.
|
||||
|
||||
.. _pos/hardware/display-configuration:
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
|
|
@@ -76,7 +78,7 @@ support, follow these steps:
|
|||
#. Click the :icon:`fa-desktop` (:guilabel:`Customer Display`) icon, which opens the customer
|
||||
display on the terminal's secondary screen.
|
||||
|
||||
.. _pos/scale:
|
||||
.. _pos/hardware/scale:
|
||||
|
||||
Scale
|
||||
=====
|
||||
|
|
@@ -156,7 +158,7 @@ turns green.
|
|||
|
||||
.. admonition:: Additional guidelines
|
||||
|
||||
Both the :ref:`customer <pos/display>` and POS displays must have a minimum diagonal
|
||||
Both the :ref:`customer <pos/hardware/display>` and POS displays must have a minimum diagonal
|
||||
size of 6 inches. For optimal readability, larger screens are recommended.
|
||||
|
||||
Using a scale in PoS
|
||||
|
|
|
|||
|
|
@@ -39,8 +39,11 @@ Click the task to open it. The task form includes the following fields that you
|
|||
linked to billable projects.
|
||||
- :guilabel:`Allocated Time`: the amount of time that the work on this task is expected to last,
|
||||
tracked by timesheets.
|
||||
- :guilabel:`Deadline`: the expected end date of the task. Once this field is filled in, you can
|
||||
also add a start date to designate the entire time frame of the tasks' duration.
|
||||
- :guilabel:`Deadline`: the expected end date of the task. Click the :guilabel:`Deadline` field to
|
||||
select the task's end date in the dropdown calendar. To define the task's duration, including its
|
||||
start and end dates (and optionally specific times), click the :icon:`fa-calendar-plus-o`
|
||||
(:guilabel:`fa-calendar-plus-o`) icon in the dropdown calendar, select the dates and times, then
|
||||
click :guilabel:`Apply` to save.
|
||||
|
||||
.. tip::
|
||||
|
||||
|
|
|
|||
|
|
@@ -2,112 +2,120 @@
|
|||
Translations
|
||||
============
|
||||
|
||||
Your website is displayed in the language that matches your visitor’s browser. If the browser’s
|
||||
language has not been installed and added to your website, the content is shown in the
|
||||
:ref:`default language <translate/default-language>`. When additional languages are installed, users
|
||||
can choose their preferred language using the :ref:`language selector <translate/language-selector>`.
|
||||
Your website can be translated into multiple languages, allowing visitors to view its content in
|
||||
their preferred language.
|
||||
|
||||
The :ref:`Translate <translate/translate>` feature on your website allows automatic translation of
|
||||
standard terms and provides a tool for manual content translation.
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Install languages
|
||||
=================
|
||||
Before translating a website into one or more languages, :doc:`install them on the database
|
||||
<../../../general/users/language>`. To do so:
|
||||
|
||||
To allow translation of your website, you must first :doc:`install <../../../general/users/language>`
|
||||
the required languages and add them to your website. To do so, go to :menuselection:`Website -->
|
||||
Configuration --> Settings` and click :icon:`fa-arrow-right` :guilabel:`Install new languages` in
|
||||
the :guilabel:`Website Info` section. In the dialog box that opens, select the :guilabel:`Languages`
|
||||
you want from the dropdown menu, tick the required :guilabel:`Websites to translate`, and click
|
||||
:guilabel:`Add`.
|
||||
- Go to :menuselection:`Website --> Configuration --> Settings`.
|
||||
- Under the :guilabel:`General` section, click :icon:`oi-arrow-right` :guilabel:`Install new
|
||||
languages`.
|
||||
- In the dialog box, select one or more :guilabel:`Languages` from the dropdown menu, click
|
||||
:guilabel:`Add`, then :guilabel:`Close`.
|
||||
|
||||
To edit your website's languages, go to :menuselection:`Website -–> Configuration -–> Settings` and
|
||||
add/remove the required languages in/from the :guilabel:`Languages` field in the
|
||||
:guilabel:`Website info` section.
|
||||
Next, add the installed language(s) to the website by selecting them under the :guilabel:`Languages`
|
||||
field and clicking :guilabel:`Save`.
|
||||
|
||||
.. tip::
|
||||
Alternatively, once the languages have been installed, you can add them from the :ref:`language
|
||||
selector <translate/language-selector>`. You might then need to refresh your page to see the new
|
||||
language.
|
||||
|
||||
.. _translate/default-language:
|
||||
|
||||
Default language
|
||||
----------------
|
||||
|
||||
When multiple languages are available on your website, you can set a default language to be used if
|
||||
the visitor’s browser language is not available. To do so, go to :menuselection:`Website –->
|
||||
Configuration -–> Settings`, and select a language in the :guilabel:`Default` field.
|
||||
|
||||
.. note::
|
||||
This field is only visible if multiple languages have been installed and added to your website.
|
||||
To remove a language from a website, click the :icon:`oi-close` :guilabel:`(Delete)` icon next to
|
||||
it.
|
||||
|
||||
.. _translate/language-selector:
|
||||
|
||||
Language selector
|
||||
=================
|
||||
|
||||
Your website’s visitors can switch languages using the language selector, available by default in
|
||||
the :guilabel:`Copyright` section at the bottom of the page. To edit the language selector menu:
|
||||
|
||||
#. Go to your website and click :guilabel:`Edit`;
|
||||
#. Click the language selector available in the :guilabel:`Copyright` block and go to the
|
||||
:guilabel:`Copyright` section of the website builder;
|
||||
#. Set the :guilabel:`Language Selector` field to either :guilabel:`Dropdown` or :guilabel:`Inline`.
|
||||
Click :guilabel:`None` if you do not want to display the :guilabel:`Language selector`;
|
||||
|
||||
.. image:: translate/language-selector.png
|
||||
:alt: Add a language selector menu.
|
||||
|
||||
#. Click :guilabel:`Save`.
|
||||
Once another language is added to a website, the language selector is displayed in the website's
|
||||
header and footer, allowing visitors to switch between languages.
|
||||
|
||||
.. tip::
|
||||
You can also add the :guilabel:`Language Selector` to the :guilabel:`Header` of your page. To do
|
||||
so, click the :guilabel:`Header` block and go to the :guilabel:`Navbar` section to edit the
|
||||
:guilabel:`Language Selector`.
|
||||
- Refresh your browser if the language selector or a language option does not appear.
|
||||
- If the visitor's browser language is not available, the website will use the website's default
|
||||
language. To edit it, go to :menuselection:`Website --> Configuration --> Settings`. Under the
|
||||
:guilabel:`General` section, select the language using the :guilabel:`Default` field.
|
||||
|
||||
To hide or customize the appearance of one of the language selectors, open the website in the
|
||||
default language, click :guilabel:`Edit`, then select the language selector.
|
||||
|
||||
- To edit the header's language selector:
|
||||
|
||||
#. In the sidebar, scroll down to the :guilabel:`Language Selector` section.
|
||||
#. Set the :guilabel:`Style` to :guilabel:`Dropdown` or :guilabel:`Inline`.
|
||||
#. Set the :guilabel:`Label` to :guilabel:`Text`, :guilabel:`Flag`, :guilabel:`Flag and Text`,
|
||||
:guilabel:`Code`, or :guilabel:`Flag and Code`.
|
||||
#. Click :guilabel:`Save`.
|
||||
|
||||
.. tip::
|
||||
To hide the language selector in the header, go to the :guilabel:`Show/Hide Elements` section
|
||||
and click the :icon:`fa-flag` (:guilabel:`Language selector`) button next to the
|
||||
:guilabel:`Actions` field.
|
||||
|
||||
- To edit the footer's language selector:
|
||||
|
||||
#. Set the :guilabel:`Language selector` field to :guilabel:`Dropdown`, :guilabel:`Inline`,
|
||||
or :guilabel:`None`.
|
||||
#. Set the :guilabel:`Label` to :guilabel:`Text`, :guilabel:`Flag`, :guilabel:`Flag and Text`,
|
||||
:guilabel:`Code`, or :guilabel:`Flag and Code`.
|
||||
#. Click :guilabel:`Save`.
|
||||
|
||||
.. tip::
|
||||
You can :ref:`display or hide website elements <website/visibility/conditions>` based on the
|
||||
website's language.
|
||||
|
||||
.. _translate/translate:
|
||||
|
||||
Translate your website
|
||||
======================
|
||||
Translate a page
|
||||
================
|
||||
|
||||
Select your desired language from the language selector to see your content in another language.
|
||||
Then, click the :guilabel:`Translate` button in the top-right corner to manually activate the
|
||||
translation mode so that you can translate what has not been translated automatically by Odoo.
|
||||
|
||||
Translated text strings are highlighted in green; text strings that were not translated
|
||||
automatically are highlighted in yellow.
|
||||
|
||||
.. image:: translate/translated-text.png
|
||||
:alt: Entering the translation mode
|
||||
|
||||
In this mode, you can only translate text. To change the page's structure, you must edit the master
|
||||
page, i.e., the page in the original language of the database. Any changes made to the master page
|
||||
are automatically applied to all translated versions.
|
||||
|
||||
To replace the original text with the translation, click the block, edit its contents, and
|
||||
:guilabel:`Save`.
|
||||
To translate a website page, switch to the language to translate and click :menuselection:`Edit -->
|
||||
Translate` in the top-right corner to activate the translation mode.
|
||||
|
||||
.. note::
|
||||
When a website supports multiple languages, the core URL structure remains consistent across
|
||||
languages, 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,
|
||||
while `https://www.mywebsite.com/fr/shop/product/mon-produit-1` is the French version of the same
|
||||
page. The structure (/shop/product/) stays unchanged, but the translated elements (e.g., product
|
||||
name) adapt to the selected language.
|
||||
- In this mode, only translatable text can be edited. Any other type of modification with the
|
||||
website builder must be carried out while using the default language.
|
||||
- Depending on the language added, some default content may already be translated. However, the
|
||||
content you added manually should be translated using the :guilabel:`Translate` feature.
|
||||
- When text is highlighted in green, it indicates that it has already been translated (manually
|
||||
or automatically). When text is highlighted in yellow, it indicates that it has not been
|
||||
translated.
|
||||
|
||||
Click the green button next to the :guilabel:`Translated to` field to automatically translate all
|
||||
text highlighted in yellow. You can also manually translate or adapt text, whether it is highlighted
|
||||
in green or yellow, by selecting it and editing it. Click :guilabel:`Save` when you are done
|
||||
translating.
|
||||
|
||||
.. image:: translate/text-translation.png
|
||||
:alt: Entering the translation mode
|
||||
|
||||
.. tip::
|
||||
Once the desired language is installed, you can translate some items from the backend (e.g., the
|
||||
product's name in the product form). To do so, click the language code (e.g., :guilabel:`EN`) next
|
||||
to the text you want to translate and add the translation.
|
||||
- The core URL structure remains consistent across languages, while specific elements like
|
||||
product names or categories are translated. For example,
|
||||
`https://www.mywebsite.com/shop/product/my-product-1` is the default version of a product page,
|
||||
while `https://www.mywebsite.com/fr/shop/product/mon-produit-1` is the translated version of
|
||||
the same product page. The structure (`/shop/product/`) remains unchanged, but the product name
|
||||
(`my-product`) is translated (`mon-produit`).
|
||||
- Some elements can also be translated from the backend (e.g., product names).
|
||||
|
||||
Content visibility by language
|
||||
Translate SEO-related elements
|
||||
------------------------------
|
||||
|
||||
You can hide content (such as images or videos, for example) depending on the language. To do so:
|
||||
To translate an :ref:`image's alt tag <seo/images>` (i.e., the image's :guilabel:`Description`
|
||||
field) and title tag (i.e., the image's :guilabel:`Tooltip` field), switch to the language to
|
||||
translate, click :menuselection:`Edit --> Translate`, and select the image. In the
|
||||
:guilabel:`Translate Attribute` box, enter the translation for the :guilabel:`alt` and/or the
|
||||
:guilabel:`title` tags.
|
||||
|
||||
#. Click :guilabel:`Edit` and select an element of your website;
|
||||
#. Go to the :guilabel:`Text - Image` section and :guilabel:`Visibility`;
|
||||
#. Click :guilabel:`No condition` and select :guilabel:`Conditionally` instead;
|
||||
#. Go to :guilabel:`Languages` to configure the condition(s) to apply by selecting
|
||||
:guilabel:`Visible for` or :guilabel:`Hidden for`, and click :guilabel:`Choose a record` to
|
||||
decide which languages are impacted.
|
||||
To add translated :ref:`meta tags <seo/meta-tags>`, go to :menuselection:`Website --> Site -->
|
||||
Optimize SEO`. In the :guilabel:`Keywords` section, select the language and add the keywords.
|
||||
|
||||
.. note::
|
||||
When viewing a website in its default language, all keywords are displayed, regardless of their
|
||||
language. However, when viewing a website in another language, only the keywords relevant to that
|
||||
language are displayed.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Search Engine Optimization <../structure/seo>`
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
|
@@ -33,7 +33,7 @@ Optimize SEO`.
|
|||
is automatically updated. The old link still functions as Odoo creates a
|
||||
:ref:`301 redirect <website/pages/URL-redirection>`, maintaining the SEO.
|
||||
|
||||
Keywords and Meta tags
|
||||
Keywords and meta tags
|
||||
----------------------
|
||||
|
||||
There are two types of keywords in SEO, which serve different purposes.
|
||||
|
|
@@ -48,6 +48,8 @@ real impact on ranking. They cannot be edited in the :guilabel:`optimize SEO` po
|
|||
.. important::
|
||||
It is strongly recommended to only use one H1 title per page for SEO.
|
||||
|
||||
.. _seo/meta-tags:
|
||||
|
||||
Meta tags and meta keywords
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
|
@@ -77,6 +79,8 @@ To edit :guilabel:`Keywords`, enter the keywords you consider essential in this
|
|||
page description, page content) and the related searches in Google. The tool also suggests relevant
|
||||
keywords.
|
||||
|
||||
.. _seo/images:
|
||||
|
||||
Images
|
||||
------
|
||||
|
||||
|
|
|
|||
|
|
@@ -5,6 +5,8 @@ administration/supported_versions.rst administration/standard_extended_support.r
|
|||
# administration/odoo_sh
|
||||
|
||||
administration/odoo_sh/getting_started/first_module.rst administration/odoo_sh/first_module.rst
|
||||
administration/odoo_sh/getting_started/online-editor.rst administration/odoo_sh/getting_started/online_editor.rst
|
||||
administration/odoo_sh/getting_started/status.rst administration/odoo_sh/getting_started.rst
|
||||
administration/odoo_sh/overview/introduction.rst administration/odoo_sh.rst
|
||||
|
||||
# developer/reference
|
||||
|
|
|
|||
|
|
@@ -8,7 +8,6 @@ applications/inventory_and_mrp/inventory/product_management/inventory_valuation/
|
|||
applications/inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config.rst applications/inventory_and_mrp/inventory/inventory_valuation/cheat_sheet.rst
|
||||
applications/inventory_and_mrp/inventory/product_management/inventory_valuation/using_inventory_valuation.rst applications/inventory_and_mrp/inventory/inventory_valuation/cheat_sheet.rst
|
||||
applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst applications/inventory_and_mrp/inventory/inventory_valuation/valuation_by_lots.rst
|
||||
applications/inventory_and_mrp/inventory/warehouses_storage/reporting/aging.rst applications/inventory_and_mrp/inventory/inventory_valuation/cheat_sheet.rst
|
||||
|
||||
# applications/finance
|
||||
|
||||
|
|
@@ -18,3 +17,8 @@ applications/finance/payment_providers/sdd.rst applications/finance/payment_prov
|
|||
# applications/hr
|
||||
|
||||
applications/hr/payroll/batches.rst applications/hr/payroll/pay_runs.rst
|
||||
|
||||
|
||||
#applications/general
|
||||
|
||||
applications/general/iot/iot_advanced/https_certificate_iot.rst applications/general/iot/iot_advanced/troubleshooting.rst
|
||||
|
|
|
|||