Compare commits
89 Commits
master-che
...
saas-15.2-
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
0dbf42b385 |
[FIX] odoo_theme: correctly consider baseurl
urlBase was only containing the domain name, not the /documentation/ |
||
|
|
9f27b04063 |
[IMP] odoo_theme: introduce fallback URLs for the page switchers
When a user clicks on the link of an alternate page in the version or
language switcher, we now check if the page referenced by the target URL
exists or not. If not, we generate a series of fallback URLs from the
target URL and check whether the targeted resource exists or not, until
we read the root of the documentation. As soon as we find a valid URL,
we redirect the user to it.
This is inspired by the behaviour of docs.python.org's version and
language switchers.
task-2534669
closes odoo/documentation#2049
X-original-commit:
|
||
|
|
6210353661 |
[FIX] developer/frontend: typo in the user menu registry example
closes odoo/documentation#2036
X-original-commit:
|
||
|
|
e02de5c5ac |
[FW][FIX] developer/howtos: Fixed typo from field to fields
closes odoo/documentation#2033 Forward-port-of: odoo/documentation#2023 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> |
||
|
|
f3fd6990c1 |
[IMP] CRM: updated lead scoring with note about deprecation
Task ID: 2496900
closes odoo/documentation#2027
X-original-commit:
|
||
|
|
27220bcdec |
[IMP] CRM: updating flow and screenshots of generating leads
closes odoo/documentation#2020
Task: 2540813
X-original-commit:
|
||
|
|
d2d6c10c12 |
[IMP] developer: clarify options for many2one widget
Only `no_create` is required to hide both the 'Create "xxx"' and the
'Create and Edit...' dropdown menu options.
closes odoo/documentation#2014
X-original-commit:
|
||
|
|
0cab975494 |
[ADD] accounting: new doc about outstanding account
Task-id 2744131
closes odoo/documentation#2010
X-original-commit:
|
||
|
|
9cf700b1ee |
[FIX] requirements.txt: pin Jinja2 < 3.1
The latest versions of Jinja2 are no longer compatible with the latest
version of Sphinx 3 (3.5.4).
task-2828982
closes odoo/documentation#1999
X-original-commit:
|
||
|
|
1a466a95a3 |
[IMP] payment acquirers: a note in Authorize.net
closes odoo/documentation#1988
X-original-commit:
|
||
|
|
75cf0a88dc |
[IMP] sale_management: remove price_unit from quotation template
Companion of [1].
[1]: https://github.com/odoo/odoo/pull/47186
opw-2824263
closes odoo/documentation#1978
X-original-commit:
|
||
|
|
beaa5afd9f |
[FIX] conf: allow building the documentation with Python 3.6.
Commit |
||
|
|
5e0f64edcd |
[IMP] amazon: explain how to use a carrier
In case of an unsupported carrier or a self Delivery, Odoo won't block
the user to use the Amazon connector, but explanation were needed for
these cases.
task-2804907
closes odoo/documentation#1965
X-original-commit:
|
||
|
|
0ef18f4d90 |
[IMP] CRM: update multiple sales teams doc
closes odoo/documentation#1961
Task: 2588786
X-original-commit:
|
||
|
|
9db567159d |
[REF] i18n/localization.rst: rework the entire localization tutorial
closes odoo/documentation#1956 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> Co-authored-by: William Andre <wan@odoo.com> Co-authored-by: Ivan Yelizariev <iel@odoo.com> |
||
|
|
e00b5e35c7 |
[ADD] extension: allow to build graphs using graphviz
Part-of: odoo/documentation#1956 |
||
|
|
16afaf6fa7 |
[ADD] extensions: new autofield directive
This new directive is generating documentation from Odoo fields. This can be used to build documentation about business classes. This will help developpers import/export data and build localization modules for instance. Part-of: odoo/documentation#1956 |
||
|
|
a514c905c0 |
[ADD] conf: give relative and absolute path to odoo repo
Also add a condition on some directives to ignore them when we have no relative/absolute path. Part-of: odoo/documentation#1956 |
||
|
|
496a28400b |
[IMP] odoo_theme: allow to add plausible script
export PLAUSIBLE_SCRIPT=https://plausible.io/js/script.js
export PLAUSIBLE_DOMAIN=yourdomain.com
closes odoo/documentation#1953
X-original-commit:
|
||
|
|
382e296e13 |
[ADD] accounting: avatax integration
closes odoo/documentation#1944
X-original-commit:
|
||
|
|
3feb4678b4 |
[IMP] install/maintain: add seealso links in domain names doc
closes odoo/documentation#1936
X-original-commit:
|
||
|
|
28dde5dcbe |
[FW][FIX] developer/howtos: missing parentheses in print statement
Added parentheses in a print function closes odoo/documentation#1929 Forward-port-of: odoo/documentation#1923 Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com> |
||
|
|
992ead9e0a |
[IMP] contributing: modify titles and headings guidelines
The previous guidelines for titles and headings included an exception to
capitalize feature names as they are written in the apps. However, this
exception seems to have confused most writers as it isn't always clear
what should be considered as a feature name or what should be considered
as a noun or noun group. This commit removes this exception to make the
writing and reviewing processes easier while retaining good titles and
improving consistency across the documentation. It also changes the
titles of the Accounting section to provide a better example to other
writers.
task-id 2843109
closes odoo/documentation#1920
X-original-commit:
|
||
|
|
9122af05cd |
[FW][IMP] accounting: add a warning about invoices in USD in Mexico
Mexican companies very commonly issue invoices in USD, to be fulfiled in MXN, at the official exchange rate defined by the Banco de Mexico on the day of payment. (Presumably, this is to insure against the volatility of the Mexican peso.) Odoo supports this workflow, but only if the payment is registered directly on the invoice using the 'Register Payment' button. If the payment is created separately, and then reconciled manually with the invoice, a whole host of problems occur: - the payment typically can't be reconciled fully with the invoice, (even though that can usually be solved by manually creating an exchange move) - but more problematically, the amounts on the payment CFDI will be wrong, and even manually creating an exchange move won't solve that. So, we absolutely need to warn users not to try to do that. (We've been encountering lots of tickets lately in the tech-support pipe because of users who tried this and then wonder why it doesn't work.) This is currently an issue in 14.0, 15.0 and master. closes odoo/documentation#1915 Forward-port-of: odoo/documentation#1728 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> |
||
|
|
e9e8963682 |
[FIX] sales: fix typo
critarias -> criteria
closes odoo/documentation#1904
X-original-commit:
|
||
|
|
6913280063 |
[ADD] .gitattributes: include RST files in language statistic on GitHub
closes odoo/documentation#1895
X-original-commit:
|
||
|
|
def5b7c245 |
[ADD] multi_website: add info to configure multiple domains
closes odoo/documentation#1894
X-original-commit:
|
||
|
|
d2650ca3c9 |
[IMP] outlook mail_plugin: add solution for cookie issue
closes odoo/documentation#1883
X-original-commit:
|
||
|
|
3d1bb598a7 |
[FIX] developer/rd-training: fix commands
Changed commands that were still referring to Odoo 14.0 to 15.0
closes odoo/documentation#1878
X-original-commit:
|
||
|
|
b4a37f1004 |
[FW][FIX] crm: fix typos and menuselection items
closes odoo/documentation#1872 Forward-port-of: odoo/documentation#1183 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> |
||
|
|
0e0fb430ad |
[FIX] developer/rdtraining: fix typos
closes odoo/documentation#1865
X-original-commit:
|
||
|
|
1c67fb351c |
[FIX] developer: fix duplicate action availability
The duplicate action is not available for list views
closes odoo/documentation#1858
X-original-commit:
|
||
|
|
4e5c5cfb86 |
[FIX] developer: fix duplicate availability
The duplicate action is not available for list views
closes odoo/documentation#1850
X-original-commit:
|
||
|
|
09c8973603 |
[FIX] inventory_and_mrp: documentation update
After this PR: https://github.com/odoo/odoo/pull/78199
The explanation of the `Security Lead Time for Purchase` field needs to be updated
opw-2766940
closes odoo/documentation#1839
X-original-commit:
|
||
|
|
4f7bb49805 |
[IMP] rdtraining: clarify transition sentence to view inheritance
The "View Inheritance" section is introduced by a sentence that can be
understood as "do this task then we'll be ready to go the next section"
instead of "in the next section we will see how to do this task".
This can confuse the reader into thinking that some knowledge was not
acquired in the previous parts.
This commit makes it clear that the task described in the transition
sentence will be achieved in the next part.
task-2822582
closes odoo/documentation#1829
X-original-commit:
|
||
|
|
823e773fbb |
[IMP] rdtraining: add note about Settings requiring at least one app
At the point when the developer mode is introduced in the training, it is
confusing because the documentation page describes the option inside the
Settings page, but that page only appears if at least one application is
installed. (Otherwise, the Settings app shows the Users instead)
This commit adds a note so that the reader does not start looking for a
screen that cannot be reached at that point.
task-2822582
X-original-commit:
|
||
|
|
10ffb09278 |
[FW][FIX] developer/rdtraining: fix typo
Fixed `name = field.Char(required=True)` to `name = fields.Char(required=True)`. closes odoo/documentation#1821 Forward-port-of: odoo/documentation#1816 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> |
||
|
|
0e818066ff |
[IMP] odoo_theme: hide the "Edit on GitHub" button for pages in legal/
closes odoo/documentation#1814
X-original-commit:
|
||
|
|
631bb2d23e |
[FIX] supported_versions: correct naming of recent saas~x versions
Since 11.0, the naming scheme changed from `(x.)saas~y` to `saas~x.y`.
closes odoo/documentation#1808
X-original-commit:
|
||
|
|
fe6a601398 |
[ADD] last_build: add an orphan page informing on the last build date
closes odoo/documentation#1802
X-original-commit:
|
||
|
|
c62169e08f |
[IMP] manufacturing: scrap location warning fw of #950
The destination location in manufacturing order shouldn't be a scrap location.
Otherwise, the user won't be able to complete manufacturing orders.
closes odoo/documentation#1793
X-original-commit:
|
||
|
|
c923dd3d0e |
[IMP] pos: add tip usable decimal separator
task-id 2608735
closes odoo/documentation#1787
X-original-commit:
|
||
|
|
2b293d5cb5 |
[IMP] inventory: add note about detailed operations in one_step.rst
User tripped up due to the creation of a second warehouse enabling
Storage Locations and changingthe workflow.
https://www.odoo.com/forum/help-1/inventory-receipt-in-second-warehouse-199962
closes odoo/documentation#1781
X-original-commit:
|
||
|
|
85b5e51db4 |
[REF] general: move images in their respective page's folder
Codeowner regexes need images to be in the correct location, otherwise
some image files might not be assigned to a GitHub team when the regex
covering the parent folder is split into multiple codeowner rules.
closes odoo/documentation#1776
X-original-commit:
|
||
|
|
0744cb58a0 |
[FIX] upgrade: small fixes
task-2684744
closes odoo/documentation#1768
X-original-commit:
|
||
|
|
8e3e05959f |
[FIX] redirects: add missing redirection for maintain/online.rst
closes odoo/documentation#1763
X-original-commit:
|
||
|
|
7a8fd93aeb |
[FIX] install/maintain: typo in deploy.rst
closes odoo/documentation#1758
X-original-commit:
|
||
|
|
ddff6b5af8 |
[IMP] upgrade: update and improve the upgrade processes and information
task ID: |
||
|
|
b43a80ded5 |
[IMP] supported_versions: flag saas-15.2 as supported
closes odoo/documentation#1744
X-original-commit:
|
||
|
|
fe41dec3e9 |
[IMP] CLI: adapt cloc doc to new behavior
since https://github.com/odoo/odoo/pull/85854 cloc
also count stylesheet file and frontend file in
imported module
closes odoo/documentation#1733
X-original-commit:
|
||
|
|
a458ae05e1 |
[ADD] accounting/l10n: new localization for luxembourg
task-id 2780977
closes odoo/documentation#1721
X-original-commit:
|
||
|
|
c179ceadb6 |
[ADD] general/digest_emails: add new digest emails docs
closes odoo/documentation#1730
X-original-commit:
|
||
|
|
a0fab7bd7c |
[IMP] developer: extend internationalization guide
In order for javascript translations to become active, the corresponding
addon needs to follow a certain naming scheme or register explicitly.
This commit updates the internationalization guide with a respective
hint.
Fixes odoo/documentation#1676
closes odoo/documentation#1726
X-original-commit:
|
||
|
|
d19fe91014 |
[FIX] odoo_theme: fix CSS issues and warnings
closes odoo/documentation#1716
X-original-commit:
|
||
|
|
923a60532c |
[FIX] dev/misc/cmdline: update url werkzeug
URL was pointing to a dead end.
Update from
http://werkzeug.pocoo.org/docs/contrib/fixers/#werkzeug.contrib.fixers.ProxyFix
to
https://werkzeug.palletsprojects.com/en/0.16.x/middleware/proxy_fix/#module-werkzeug.middleware.proxy_fix
new URL as we are using 0.16.1
closes odoo/documentation#1708
X-original-commit:
|
||
|
|
3e83d1113f |
[IMP] payment_acquirers: add tabs for Stripe
task-2782290
closes odoo/documentation#1701
X-original-commit:
|
||
|
|
65be544b0c |
[IMP] developer/cli: mention the different ways of calling the CLI
All examples on the page suggest calling the CLI with "odoo-bin" while
it is recommended to call it with "odoo" when Odoo was installed from a
distribution package. It also failed to mention the location of
"odoo-bin" relative to the source files.
The chance is also taken to rename the somewhat unclear page title to
something more clear and generic.
closes odoo/documentation#1698
X-original-commit:
|
||
|
|
693d09d98a |
[IMP] developer/api/extract_api: rework page to get rid of switchers
task-2787415
closes odoo/documentation#1691
X-original-commit:
|
||
|
|
a655c82e21 |
[IMP] developer/api/odoo: rework page to use examples and content tabs
task-2787415
X-original-commit:
|
||
|
|
b2149964a1 |
[REM] extensions: remove the 'switcher' extension
The 'sphinx-tabs' extension is better in every aspect:
- Synchronize selected tabs (group tabs feature).
- No need for extra `code-block` directive (code tabs feature).
- Better looking.
- No custom Python, JS, or CSS.
task-2787415
X-original-commit:
|
||
|
|
7f6dfcf665 |
[IMP] contributing/documentation: document usage of code tabs
task-2787415
X-original-commit:
|
||
|
|
db4f98d44e |
[FIX] developer/mixins: mail.thread method names
In d46e358d3e88aea9f9289c4845c6c87ab9491c55 some mail.thread method
names were changed: it should be changed in documentation too.
closes odoo/documentation#1685
X-original-commit:
|
||
|
|
2c8f6d11c7 |
[IMP] install/maintain: add use of :guilabel: in domain_names
+ fix two small typos.
closes odoo/documentation#1680
X-original-commit:
|
||
|
|
e2be114583 |
[IMP] scss: content tabs refining
This commit removes unnecessary negative margins and makes code-blocks
inside content tabs lose their bottom margin and border.
closes odoo/documentation#1672
X-original-commit:
|
||
|
|
6348f5df3d |
[IMP] scss: make alert full width of parent
Before this commit, the alerts would all have different widths according
to their content, some stretching and getting pushed under the
"on this page" menu. This way all alerts are aligned.
X-original-commit:
|
||
|
|
4ad3584f06 |
[IMP] documentation: content tabs design
This commit improves current css style added by default to the Odoo
Documentation's content tabs.
This design improvement has been made by following the current theme's
style, especially in terms of palette and borders.
Tabs are responsive and have been optimised in order to have a
cross-browser compatibility.
--
Task-2755240
closes odoo/documentation#1665
X-original-commit:
|
||
|
|
479252f211 |
[IMP] accounting: improve phrasing OCR
Add link to try the OCR service, cleanup copy.
closes odoo/documentation#1659
X-original-commit:
|
||
|
|
486dabe6bf |
[IMP] install/maintain: new improved doc about domain names
task-id 2680490
closes odoo/documentation#1650
X-original-commit:
|
||
|
|
e68027e79d |
[IMP] accounting: fix a typo in eu_distance_selling.rst
closes odoo/documentation#1637
X-original-commit:
|
||
|
|
759d99aa1a |
[IMP] general/payment_acquirers: add Stripe Connect documentation
This commit adds the user documentation about the modification done in
the payment onboarding and the new Stripe Connect capabilities.
task-2685160
closes odoo/documentation#1630
X-original-commit:
|
||
|
|
f163a968a3 |
[IMP] extensions: add content tabs (backport of cf6ca0fb)
closes odoo/documentation#1628
X-original-commit:
|
||
|
|
1c7c9eab28 |
[FW][REV] odoo_sh: revert commit 6c48f90
closes odoo/documentation#1622 Forward-port-of: odoo/documentation#1618 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> |
||
|
|
a3a8098fed |
[IMP] install: remove deprecated ssl instruction in deploy.rst
Backport of commit |
||
|
|
0086b51de9 |
[IMP] odoo_sh doc update
closes odoo/documentation#1609
X-original-commit:
|
||
|
|
afee8f919b |
[FIX] conf: upper-case 'master' in the version switcher
closes odoo/documentation#1603
X-original-commit:
|
||
|
|
d366d7b739 |
[IMP] odoo_theme: switch admonitions' display type to inline-block
When placing an image before an admonition block and setting its
alignment to left or right, the admonition block would hide the image.
The reason for this is the use of "float" on the image. In order for
the image to reappear, we change the admonition's `display: block` to
`display: inline-block`.
task-2582954
closes odoo/documentation#1594
X-original-commit:
|
||
|
|
3febaffd75 |
[IMP] conf: show all relevant versions in the version switcher
From now on, the master branch and the latest released SaaS branch are
always shown. SaaS branches are labeled "Odoo Online".
The list of the versions shown in the switcher is hard-coded to force
their ordering.
The class `dropdown-toggle` is always added to the version|language
switcher regardless of whether other versions|languages are available,
as a quick fix to a CSS issue that occurs when the class is missing.
closes odoo/documentation#1580
X-original-commit:
|
||
|
|
620c40967e |
[IMP] install/maintain: add info about upgrading Odoo Online databases
closes odoo/documentation#1581
X-original-commit:
|
||
|
|
7e2b194743 |
[IMP] supported_versions: emphasis short-term support of SaaS versions
X-original-commit:
|
||
|
|
b77132847a |
[IMP] supported_versions: flag saas-15.1 as supported
X-original-commit:
|
||
|
|
a0fe598958 |
[ADD] point_of_sale: Connect an Worldline Payment Terminal to your PoS
Documentation to explain how to configure a Worldline Payment terminal.
closes odoo/documentation#1571
X-original-commit:
|
||
|
|
ef92af7d6c |
[IMP] accounting/l10n: update webinar link in colombia.rst
The current webinar link is for another version, with this commit we're adding the newest webinar link.
closes odoo/documentation#1568
X-original-commit:
|
||
|
|
108e607528 |
[FIX] install/maintain: update versions in "Installing Odoo"
closes odoo/documentation#1563
X-original-commit:
|
||
|
|
5f55abc561 |
[FIX] redirections: duplicate rule + misplaced rules
- removes a duplicate rule:
applications/finance/sign/overview/signature_validity.rst
applications/finance/sign.rst
- moves two rules closer to their related redirections
- adds comments to these two rules
- updates redirection to "email_servers" with the new path (line 203)
closes odoo/documentation#1555
X-original-commit:
|
||
|
|
946e51e863 |
[ADD] email_communication: new documentation regarding general emailing
Creation of a new submenu under Applications/General for the Email communication.
Moved advanced of dicuss to this new submenu + adding of content regarding
frequently asked question in support.
Redirection has been done on other files pointing to Discuss/Advanced to match
the new folder email_communication.
Modified content in:
- Email servers: split and move configuration part under email_domain
- Email domain: covering information about SPF DKIM and DMARC configurations by JQU
- Email templates: (how to use the functions) by GOR
- Email common: answering frequently asked questions + common issues by ALA
closes odoo/documentation#1549
X-original-commit:
|
||
|
|
65cc3e71e2 |
[FW][FIX] accounting: fix module name to install in intrastat
closes odoo/documentation#1543 Forward-port-of: odoo/documentation#1539 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com> |
||
|
|
e5e75aa596 |
[IMP] contributing/doc: add an entry for the example admonition
closes odoo/documentation#1537
X-original-commit:
|
||
|
|
4fafae4d8b |
[REF] mrp: documentation update
- Updated Pictures with latest version, deleted old ones
- Added Quality Control section
- Deleted Kit Routings section
- Adapted Terminology, specifically work orders vs routings
closes odoo/documentation#1534
X-original-commit:
|
||
|
|
0116d7dbc7 |
[REL] freeze saas-15.2 branch
closes odoo/documentation#1526 |
2
.gitattributes
vendored
Normal file
|
|
@@ -0,0 +1,2 @@
|
|||
# Include RST files in language statistics on GitHub.
|
||||
*.rst linguist-detectable
|
||||
3
.gitignore
vendored
|
|
@@ -1,6 +1,7 @@
|
|||
*.pyc
|
||||
.*
|
||||
*.mo
|
||||
.*
|
||||
!.gitattributes
|
||||
|
||||
# Sphinx build files
|
||||
_build/
|
||||
|
|
|
|||
4
Makefile
|
|
@@ -19,12 +19,14 @@ SPHINXOPTS = -D project_root=$(ROOT) -D canonical_version=$(CANONICAL_VERSIO
|
|||
-D versions=$(VERSIONS) -D languages=$(LANGUAGES) -D language=$(CURRENT_LANG) \
|
||||
-D is_remote_build=$(IS_REMOTE_BUILD) \
|
||||
-A google_analytics_key=$(GOOGLE_ANALYTICS_KEY) \
|
||||
-A plausible_script=$(PLAUSIBLE_SCRIPT) \
|
||||
-A plausible_domain=$(PLAUSIBLE_DOMAIN) \
|
||||
-j $(WORKERS)
|
||||
SOURCE_DIR = content
|
||||
|
||||
HTML_BUILD_DIR = $(BUILD_DIR)/html
|
||||
ifdef VERSIONS
|
||||
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/master
|
||||
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/saas-15.2
|
||||
endif
|
||||
ifneq ($(CURRENT_LANG),en)
|
||||
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/$(CURRENT_LANG)
|
||||
|
|
|
|||
14
README.md
|
|
@@ -4,11 +4,11 @@
|
|||
|
||||
### Requirements
|
||||
|
||||
- [Git](https://www.odoo.com/documentation/master/contributing/documentation.html#install-git)
|
||||
- [Python 3.7 or 3.8](https://www.odoo.com/documentation/master/contributing/documentation.html#python)
|
||||
- Python dependencies listed in the file [`requirements.txt`](https://github.com/odoo/documentation/tree/master/requirements.txt).
|
||||
- [Make](https://www.odoo.com/documentation/master/contributing/documentation.html#make)
|
||||
- A local copy of the [odoo/odoo repository in master](https://github.com/odoo/odoo/tree/master) (Optional)
|
||||
- [Git](https://www.odoo.com/documentation/saas-15.2/contributing/documentation.html#install-git)
|
||||
- [Python 3.7 or 3.8](https://www.odoo.com/documentation/saas-15.2/contributing/documentation.html#python)
|
||||
- Python dependencies listed in the file [`requirements.txt`](https://github.com/odoo/documentation/tree/saas-15.2/requirements.txt).
|
||||
- [Make](https://www.odoo.com/documentation/saas-15.2/contributing/documentation.html#make)
|
||||
- A local copy of the [odoo/odoo repository in saas-15.2](https://github.com/odoo/odoo/tree/saas-15.2) (Optional)
|
||||
|
||||
### Instructions
|
||||
|
||||
|
|
@@ -23,7 +23,7 @@
|
|||
|
||||
2. Open the file `documentation/_build/html/index.html` in your web browser to display the render.
|
||||
|
||||
3. See [this guide](https://www.odoo.com/documentation/master/contributing/documentation.html#preview-your-changes)
|
||||
3. See [this guide](https://www.odoo.com/documentation/saas-15.2/contributing/documentation.html#preview-your-changes)
|
||||
for more detailed instructions.
|
||||
|
||||
Optional: to fully build the developer documentation with inline docstrings for documented Python
|
||||
|
|
@@ -34,7 +34,7 @@ be shown.
|
|||
## Contribute to the documentation
|
||||
|
||||
For contributions to the content of the documentation, please refer to the
|
||||
[Introduction Guide](https://www.odoo.com/documentation/master/contributing/documentation.html).
|
||||
[Introduction Guide](https://www.odoo.com/documentation/saas-15.2/contributing/documentation.html).
|
||||
|
||||
To **report a content issue**, **request new content** or **ask a question**, use the
|
||||
[repository's issue tracker](https://github.com/odoo/documentation-user/issues) as usual.
|
||||
|
|
|
|||
78
conf.py
|
|
@@ -1,9 +1,12 @@
|
|||
import re
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
import docutils
|
||||
from pygments.lexers import JsonLexer, XmlLexer
|
||||
from sphinx.ext import graphviz
|
||||
from sphinx.util import logging
|
||||
import sphinx
|
||||
|
||||
|
|
@@ -19,7 +22,7 @@ copyright = 'Odoo S.A.'
|
|||
# `version` if the version info for the project being documented, acts as replacement for |version|,
|
||||
# also used in various other places throughout the built documents.
|
||||
# `release` is the full version, including alpha/beta/rc tags. Acts as replacement for |release|.
|
||||
version = release = 'master'
|
||||
version = release = 'saas-15.2'
|
||||
|
||||
# The minimal Sphinx version required to build the documentation.
|
||||
needs_sphinx = '3.0.0'
|
||||
|
|
@@ -53,6 +56,11 @@ add_function_parentheses = True
|
|||
|
||||
#=== Extensions configuration ===#
|
||||
|
||||
source_read_replace_vals = {
|
||||
'GITHUB_PATH': f'https://github.com/odoo/odoo/blob/{version}',
|
||||
'GITHUB_ENT_PATH': f'https://github.com/odoo/enterprise/blob/{version}',
|
||||
}
|
||||
|
||||
# Add extensions directory to PYTHONPATH
|
||||
extension_dir = Path('extensions')
|
||||
sys.path.insert(0, str(extension_dir.absolute()))
|
||||
|
|
@@ -74,11 +82,15 @@ if not odoo_sources_dirs:
|
|||
{'dir_list': '\n'.join([f'\t- {d.resolve()}' for d in odoo_sources_candidate_dirs])},
|
||||
)
|
||||
else:
|
||||
odoo_dir = odoo_sources_dirs[0].resolve()
|
||||
sys.path.insert(0, str(odoo_dir))
|
||||
if (3, 6) < sys.version_info < (3, 7):
|
||||
# Running odoo needs python 3.7 min but monkey patch version_info to be compatible with 3.6
|
||||
# Running odoo needs python 3.7 min but monkey patch version_info to be compatible with 3.6.
|
||||
sys.version_info = (3, 7, 0)
|
||||
odoo_dir = odoo_sources_dirs[0].resolve()
|
||||
source_read_replace_vals['ODOO_RELPATH'] = '/../' + str(odoo_sources_dirs[0])
|
||||
source_read_replace_vals['ODOO_ABSPATH'] = str(odoo_dir)
|
||||
sys.path.insert(0, str(odoo_dir))
|
||||
import odoo.addons
|
||||
odoo.addons.__path__.append(str(odoo_dir) + '/addons')
|
||||
from odoo import release as odoo_release # Don't collide with Sphinx's 'release' config option
|
||||
odoo_version = odoo_release.version.replace('~', '-') # Change saas~XX.Y to saas-XX.Y
|
||||
odoo_version = 'master' if 'alpha' in odoo_release.version else odoo_version
|
||||
|
|
@@ -98,12 +110,18 @@ else:
|
|||
)
|
||||
odoo_dir_in_path = True
|
||||
|
||||
# Mapping between odoo models related to master data and the declaration of the
|
||||
# data. This is used to point users to available xml_ids when giving values for
|
||||
# a field with the autodoc_field extension.
|
||||
model_references = {
|
||||
'account.account.type': 'addons/account/data/data_account_type.xml',
|
||||
'res.country': 'odoo/addons/base/data/res_country_data.xml',
|
||||
'res.currency': 'odoo/addons/base/data/res_currency_data.xml',
|
||||
}
|
||||
|
||||
# The Sphinx extensions to use, as module names.
|
||||
# They can be extensions coming with Sphinx (named 'sphinx.ext.*') or custom ones.
|
||||
extensions = [
|
||||
# Parse Python docstrings (autodoc, automodule, autoattribute directives)
|
||||
'sphinx.ext.autodoc' if odoo_dir_in_path else 'autodoc_placeholder',
|
||||
|
||||
# Link sources in other projects (used to build the reference doc)
|
||||
'sphinx.ext.intersphinx',
|
||||
|
||||
|
|
@@ -133,7 +151,15 @@ if odoo_dir_in_path:
|
|||
extensions += [
|
||||
'sphinx.ext.linkcode',
|
||||
'github_link',
|
||||
# Parse Python docstrings (autodoc, automodule, autoattribute directives)
|
||||
'sphinx.ext.autodoc',
|
||||
'autodoc_field',
|
||||
]
|
||||
else:
|
||||
extensions += [
|
||||
'autodoc_placeholder',
|
||||
]
|
||||
extensions.append('sphinx.ext.graphviz' if shutil.which('dot') else 'graphviz_placeholder')
|
||||
|
||||
todo_include_todos = False
|
||||
|
||||
|
|
@@ -266,6 +292,22 @@ latex_logo = 'static/img/odoo_logo.png'
|
|||
# If true, show URL addresses after external links.
|
||||
latex_show_urls = 'True'
|
||||
|
||||
# https://github.com/sphinx-doc/sphinx/issues/4054#issuecomment-329097229
|
||||
def source_read_replace(app, docname, source):
|
||||
"""Substitute parts of strings with computed values.
|
||||
|
||||
Since the RST substitution is not working everywhere, i.e. in directives'
|
||||
options, we need to be able to input those values when reading the sources.
|
||||
This is using the config `source_read_replace_vals`, mapping a name to its
|
||||
replacement. This will look for the name surrounded by curly braces in the source.
|
||||
|
||||
Meant to be connected to the `source-read` event.
|
||||
"""
|
||||
result = source[0]
|
||||
for key in app.config.source_read_replace_vals:
|
||||
result = result.replace(f"{{{key}}}", app.config.source_read_replace_vals[key])
|
||||
source[0] = result
|
||||
|
||||
|
||||
def setup(app):
|
||||
# Generate all alternate URLs for each document
|
||||
|
|
@@ -274,12 +316,34 @@ def setup(app):
|
|||
app.add_config_value('versions', None, 'env')
|
||||
app.add_config_value('languages', None, 'env')
|
||||
app.add_config_value('is_remote_build', None, 'env') # Whether the build is remotely deployed
|
||||
app.add_config_value('source_read_replace_vals', {}, 'env')
|
||||
app.connect('source-read', source_read_replace)
|
||||
|
||||
app.add_lexer('json', JsonLexer)
|
||||
app.add_lexer('xml', XmlLexer)
|
||||
|
||||
app.connect('html-page-context', _generate_alternate_urls)
|
||||
|
||||
# Add a `condition` option on directives to ignore them based on config values
|
||||
app.add_config_value('odoo_dir_in_path', None, 'env')
|
||||
def context_eval(expr):
|
||||
return eval(expr, {confval.name: confval.value for confval in app.config})
|
||||
|
||||
def patch(to_patch):
|
||||
to_patch.option_spec['condition'] = context_eval
|
||||
original_run = to_patch.run
|
||||
def new_run(self):
|
||||
if not self.options.get('condition', True):
|
||||
return []
|
||||
return original_run(self)
|
||||
to_patch.run = new_run
|
||||
|
||||
for to_patch in (
|
||||
sphinx.directives.code.LiteralInclude,
|
||||
docutils.parsers.rst.directives.tables.CSVTable,
|
||||
):
|
||||
patch(to_patch)
|
||||
|
||||
|
||||
def _generate_alternate_urls(app, pagename, templatename, context, doctree):
|
||||
""" Add keys of required alternate URLs for the current document in the rendering context.
|
||||
|
|
|
|||
|
|
@@ -21,6 +21,11 @@ You can use a custom domain name to access your Odoo database and websites:
|
|||
databases for one year. Visitors can then access your website with an address such as
|
||||
``www.example.com`` rather than the default ``example.odoo.com``.
|
||||
|
||||
.. seealso::
|
||||
- `Odoo Tutorials: Register a Free Domain Name
|
||||
<https://www.odoo.com/slides/slide/register-a-free-domain-name-1663>`_
|
||||
- `Odoo Quick Tips: Get a free domain name! <https://www.youtube.com/watch?v=eAfgeNOHLP4>`_
|
||||
|
||||
.. _domain-name/about:
|
||||
|
||||
About domain names
|
||||
|
|
|
|||
|
|
@@ -1,8 +1,8 @@
|
|||
:nosearch:
|
||||
|
||||
===========
|
||||
Bank & Cash
|
||||
===========
|
||||
=============
|
||||
Bank and cash
|
||||
=============
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
|
|
|||
|
|
@@ -1,7 +1,7 @@
|
|||
:nosearch:
|
||||
|
||||
==========
|
||||
Bank Feeds
|
||||
Bank feeds
|
||||
==========
|
||||
|
||||
.. toctree::
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
===============
|
||||
Bank Statements
|
||||
Bank statements
|
||||
===============
|
||||
|
||||
Importing your bank statements in Odoo Accounting allows you to keep track of the financial
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
======================================
|
||||
Bank Synchronization: Automatic Import
|
||||
Bank synchronization: Automatic import
|
||||
======================================
|
||||
|
||||
Odoo can synchronize directly with your bank institution to get all bank statements imported
|
||||
|
|
|
|||
|
|
@@ -1,7 +1,7 @@
|
|||
:nosearch:
|
||||
|
||||
===================
|
||||
Bank Reconciliation
|
||||
Bank reconciliation
|
||||
===================
|
||||
|
||||
.. toctree::
|
||||
|
|
|
|||
|
|
@@ -8,5 +8,6 @@ Setup
|
|||
:titlesonly:
|
||||
|
||||
setup/bank_accounts
|
||||
setup/outstanding_accounts
|
||||
setup/manage_cash_register
|
||||
setup/foreign_currency
|
||||
|
|
|
|||
|
|
@@ -0,0 +1,46 @@
|
|||
====================
|
||||
Outstanding accounts
|
||||
====================
|
||||
|
||||
By default, payments are registered through transitory accounts named **outstanding accounts**,
|
||||
before being recorded in your bank account.
|
||||
|
||||
- An **outstanding payments account** is where outgoing payments are posted until they are linked
|
||||
with a withdrawal from your bank statement.
|
||||
- An **outstanding receipts account** is where incoming payments are posted until they are linked
|
||||
with a deposit from your bank statement.
|
||||
|
||||
These accounts should be of :ref:`type <chart-of-account/type>` :guilabel:`Current Assets`.
|
||||
|
||||
.. note::
|
||||
The movement from an outstanding account to a bank account is done automatically when you
|
||||
reconcile the bank account with a bank statement.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Default accounts configuration
|
||||
------------------------------
|
||||
|
||||
The outstanding accounts are defined by default. If necessary, you can update them by going to
|
||||
:menuselection:`Accounting --> Configuration --> Settings --> Default Accounts` and update your
|
||||
:guilabel:`Outstanding Receipts Account` and :guilabel:`Outstanding Payments Account`.
|
||||
|
||||
Bank and cash journals configuration
|
||||
------------------------------------
|
||||
|
||||
You can also set specific outstanding accounts for any journal with the :ref:`type
|
||||
<chart-of-account/type>` :guilabel:`Bank` or :guilabel:`Cash`.
|
||||
|
||||
From your :guilabel:`Accounting Dashboard`, click on the menu selection ⋮ of the journal you want to
|
||||
configure, and click on :guilabel:`Configuration`, then open the :guilabel:`Incoming/Outgoing
|
||||
Payments` tab. To display the outstanding accounts column, click on the toggle button and check the
|
||||
:guilabel:`Outstanding Receipts/Payments accounts`, then update the account.
|
||||
|
||||
.. image:: outstanding_accounts/toggle-button.png
|
||||
:align: center
|
||||
:alt: Select the toggle button and click on outstanding Accounts
|
||||
|
||||
.. note::
|
||||
If you do not specify an outstanding payments account or an outstanding receipts account for a
|
||||
specific journal, Odoo uses the default outstanding accounts.
|
||||
|
After Width: | Height: | Size: 9.0 KiB |
|
|
@@ -1,7 +1,7 @@
|
|||
:nosearch:
|
||||
|
||||
====================
|
||||
Fiscal Localizations
|
||||
Fiscal localizations
|
||||
====================
|
||||
|
||||
.. toctree::
|
||||
|
|
|
|||
|
|
@@ -555,6 +555,14 @@ be *In Payment* since the payment will be effectively validated when it is bank
|
|||
associated with the invoice, it must be valid so that the stamped payment complement can be
|
||||
created.
|
||||
|
||||
.. warning::
|
||||
- When making a payment in MXN for an invoice in USD, the payment must be created using the
|
||||
:guilabel:`Register Payment` button **on the invoice view** and not separately as a payment.
|
||||
Otherwise, the payment CFDI is not correctly generated.
|
||||
- As such, a payment in MXN cannot be used to pay multiple invoices in USD. Rather, the payment
|
||||
should be separated into multiple payments created using the :guilabel:`Register Payment`
|
||||
button on the corresponding invoices.
|
||||
|
||||
Register PUE Payments
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
============================
|
||||
Fiscal Localization Packages
|
||||
Fiscal localization packages
|
||||
============================
|
||||
|
||||
**Fiscal Localization Packages** are country-specific modules that install pre-configured taxes,
|
||||
|
|
|
|||
|
|
@@ -6,7 +6,7 @@ Odoo Accounting can be used in many countries out of the box by installing the a
|
|||
Here is a list of all :doc:`Fiscal Localization Packages <fiscal_localization_packages>` that are
|
||||
available on Odoo.
|
||||
|
||||
Fiscal Localization Packages available
|
||||
Fiscal localization packages available
|
||||
======================================
|
||||
|
||||
- Algeria - Accounting
|
||||
|
|
|
|||
|
|
@@ -1,7 +1,7 @@
|
|||
:nosearch:
|
||||
|
||||
===============
|
||||
Getting Started
|
||||
Getting started
|
||||
===============
|
||||
|
||||
.. toctree::
|
||||
|
|
|
|||
|
|
@@ -1,7 +1,7 @@
|
|||
:nosearch:
|
||||
|
||||
=====================
|
||||
Initial Configuration
|
||||
Initial configuration
|
||||
=====================
|
||||
|
||||
.. toctree::
|
||||
|
|
|
|||
|
|
@@ -46,6 +46,8 @@ Code and Name
|
|||
|
||||
Each account is identified by its **Code** and **Name**, which also indicates the account's purpose.
|
||||
|
||||
.. _chart-of-account/type:
|
||||
|
||||
Type
|
||||
----
|
||||
|
||||
|
|
|
|||
|
|
@@ -1,8 +1,8 @@
|
|||
:nosearch:
|
||||
|
||||
===========
|
||||
========
|
||||
Analytic
|
||||
===========
|
||||
========
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
|
|
|||
|
|
@@ -1,7 +1,7 @@
|
|||
:nosearch:
|
||||
|
||||
================
|
||||
Account Payables
|
||||
Account payables
|
||||
================
|
||||
|
||||
.. toctree::
|
||||
|
|
|
|||
|
|
@@ -1,7 +1,7 @@
|
|||
:nosearch:
|
||||
|
||||
===============
|
||||
Vendor Payments
|
||||
Vendor payments
|
||||
===============
|
||||
|
||||
.. toctree::
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
=============
|
||||
Pay by Checks
|
||||
Pay by checks
|
||||
=============
|
||||
|
||||
Once you decide to pay a supplier bill, you can select to pay by check.
|
||||
|
|
|
|||
|
|
@@ -1,7 +1,7 @@
|
|||
:nosearch:
|
||||
|
||||
============
|
||||
Vendor Bills
|
||||
Vendor bills
|
||||
============
|
||||
|
||||
.. toctree::
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
===================================
|
||||
Non-current Assets and Fixed Assets
|
||||
Non-current assets and fixed assets
|
||||
===================================
|
||||
|
||||
**Non-current Assets**, also known as **long-term assets**, are investments that are expected to be
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
=================================
|
||||
Deferred Expenses and Prepayments
|
||||
Deferred expenses and prepayments
|
||||
=================================
|
||||
|
||||
**Deferred expenses** and **prepayments** (also known as **prepaid expense**), are both costs that
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
===================
|
||||
Manage vendor Bills
|
||||
Manage vendor bills
|
||||
===================
|
||||
|
||||
The **Purchase** application allows you to manage your purchase orders,
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
==============================================================
|
||||
Digitize Vendor Bills with Optical Character Recognition (OCR)
|
||||
Digitize vendor bills with optical character recognition (OCR)
|
||||
==============================================================
|
||||
|
||||
Encoding bills manually can be a time-consuming task. Having a solution that allows you to digitize
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
=================
|
||||
Purchase Receipts
|
||||
Purchase receipts
|
||||
=================
|
||||
|
||||
**Purchase Receipts** are not invoices but rather confirmations of received payments, such as a
|
||||
|
|
|
|||
|
|
@@ -1,7 +1,7 @@
|
|||
:nosearch:
|
||||
|
||||
===================
|
||||
Account Receivables
|
||||
Account receivables
|
||||
===================
|
||||
|
||||
.. toctree::
|
||||
|
|
|
|||
|
|
@@ -1,7 +1,7 @@
|
|||
:nosearch:
|
||||
|
||||
=================
|
||||
Customer Invoices
|
||||
Customer invoices
|
||||
=================
|
||||
|
||||
.. toctree::
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
=============
|
||||
Cash Rounding
|
||||
Cash rounding
|
||||
=============
|
||||
|
||||
**Cash rounding** is required when the lowest physical denomination
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
========================
|
||||
Credit Notes and Refunds
|
||||
Credit notes and refunds
|
||||
========================
|
||||
A **credit note**, or **credit memo**, is a document issued
|
||||
to a customer that notifies them that they have been credited
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
=================
|
||||
Deferred Revenues
|
||||
Deferred revenues
|
||||
=================
|
||||
|
||||
**Deferred revenues**, or **unearned revenue**, are payments made in advance by customers for
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
===================================
|
||||
Payment Terms and Installment Plans
|
||||
Payment terms and installment plans
|
||||
===================================
|
||||
|
||||
**Payment Terms** specify all the conditions under which a sale is paid, mostly to ensure customers
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
======================================
|
||||
Send your Invoices by Post (Snailmail)
|
||||
Send your invoices by post (Snailmail)
|
||||
======================================
|
||||
|
||||
Direct mail is a great way to capture individuals’ attention at a time where inboxes are always
|
||||
|
|
|
|||
|
|
@@ -1,7 +1,7 @@
|
|||
:nosearch:
|
||||
|
||||
=================
|
||||
Customer Payments
|
||||
Customer payments
|
||||
=================
|
||||
|
||||
.. toctree::
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
==================================================
|
||||
Batch Payments: Batch Deposits (checks, cash etc.)
|
||||
Batch payments: Batch deposits (checks, cash etc.)
|
||||
==================================================
|
||||
|
||||
A **Batch Deposit** groups multiple payments in a single batch. This allows you to deposit several
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
=======================================
|
||||
Batch Payments: SEPA Direct Debit (SDD)
|
||||
Batch payments: SEPA Direct Debit (SDD)
|
||||
=======================================
|
||||
|
||||
SEPA, the Single Euro Payments Area, is a payment-integration initiative of the European Union for
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
======================
|
||||
Invoice Online Payment
|
||||
Invoice online payment
|
||||
======================
|
||||
|
||||
To make it more convenient for your customers to pay the invoices you issue, you can activate the
|
||||
|
|
|
|||
|
|
@@ -1,8 +1,8 @@
|
|||
:nosearch:
|
||||
|
||||
===========
|
||||
=========
|
||||
Reporting
|
||||
===========
|
||||
=========
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
============================
|
||||
Tax Return (VAT Declaration)
|
||||
Tax return (VAT declaration)
|
||||
============================
|
||||
|
||||
Companies that are registered for **VAT (Value Added Tax)** must file a **Tax return** on a monthly
|
||||
|
|
|
|||
|
|
@@ -1,7 +1,7 @@
|
|||
:nosearch:
|
||||
|
||||
===========
|
||||
Fiscal Year
|
||||
Fiscal year
|
||||
===========
|
||||
|
||||
.. toctree::
|
||||
|
|
|
|||
|
|
@@ -11,6 +11,7 @@ Taxes
|
|||
taxes/default_taxes
|
||||
taxes/fiscal_positions
|
||||
taxes/eu_distance_selling
|
||||
taxes/avatax
|
||||
taxes/taxcloud
|
||||
taxes/retention
|
||||
taxes/B2B_B2C
|
||||
|
|
|
|||
|
|
@@ -0,0 +1,74 @@
|
|||
==================
|
||||
Avatax integration
|
||||
==================
|
||||
|
||||
Avatax is a tax calculation provider that can be integrated in Odoo.
|
||||
|
||||
.. _avatax/credentials:
|
||||
|
||||
Credential configuration
|
||||
========================
|
||||
|
||||
To integrate Avatax with Odoo, go to :menuselection:`Accounting --> Configuration --> Settings -->
|
||||
Taxes` and add your Avatax credentials in the :guilabel:`Avatax` section.
|
||||
|
||||
.. tip::
|
||||
If you do not yet have credentials, click on :guilabel:`How to Get Credentials`.
|
||||
|
||||
.. image:: avatax/avatax-configuration-settings.png
|
||||
:align: center
|
||||
:alt: Configure Avatax settings
|
||||
|
||||
.. _avatax/tax-mapping:
|
||||
|
||||
Tax mapping
|
||||
===========
|
||||
|
||||
The Avatax integration is available on Sale Orders and Invoices with the included Avatax fiscal
|
||||
position.
|
||||
|
||||
Before using the integration, specify an :guilabel:`Avatax Category` on the product categories.
|
||||
|
||||
.. image:: avatax/avatax-category.png
|
||||
:align: center
|
||||
:alt: Specify Avatax Category on products
|
||||
|
||||
Avatax Categories may be overridden or set on individual products as well.
|
||||
|
||||
.. image:: avatax/override-avatax-product-category.png
|
||||
:align: center
|
||||
:alt: Override product categories as needed
|
||||
|
||||
.. _avatax/address-mapping:
|
||||
|
||||
Address validation
|
||||
==================
|
||||
|
||||
Manually validate customer addresses by clicking the :guilabel:`Validate address` link in the
|
||||
customer form view.
|
||||
|
||||
.. image:: avatax/validate-customer-address.png
|
||||
:align: center
|
||||
:alt: Validate customer addresses
|
||||
|
||||
If preferred, choose to keep the newly validated address or the original address in the wizard that
|
||||
pops up.
|
||||
|
||||
.. image:: avatax/choose-customer-address.png
|
||||
:align: center
|
||||
:alt: Address validation wizard
|
||||
|
||||
.. _avatax/tax-calculation:
|
||||
|
||||
Tax calculation
|
||||
===============
|
||||
|
||||
Automatically calculate taxes on Odoo quotations and invoices with Avatax by confirming the
|
||||
documents. Alternatively, calculate the taxes manually by clicking the :guilabel:`Compute taxes
|
||||
using Avatax` button while these documents are in draft mode.
|
||||
|
||||
Use the :guilabel:`Avalara Code` field that's available on customers, quotations, and invoices to
|
||||
cross-reference data in Odoo and Avatax.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`fiscal_positions`
|
||||
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
|
@@ -1,5 +1,5 @@
|
|||
=============
|
||||
Default Taxes
|
||||
Default taxes
|
||||
=============
|
||||
|
||||
**Default Taxes** define which :doc:`taxes <taxes>` are automatically selected when there is no
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
===================================
|
||||
EU intra-community Distance Selling
|
||||
EU intra-community distance selling
|
||||
===================================
|
||||
|
||||
**Distance sales within the European Union** include cross-border sales of goods and services to a
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
==========================================
|
||||
Fiscal Positions (tax and account mapping)
|
||||
Fiscal positions (tax and account mapping)
|
||||
==========================================
|
||||
|
||||
Default taxes and accounts are set on products and customers to create new transactions on the fly.
|
||||
|
|
|
|||
|
|
@@ -56,7 +56,7 @@ Online payment acquirers
|
|||
| | Payment flow | Save cards | Capture amount | Refund |
|
||||
| | | | manually | from Odoo |
|
||||
+===============================+======================+============+=================+===========+
|
||||
| :doc:`Adyen | Payment from Odoo | |V| | |V| | |V| |
|
||||
| :doc:`Adyen | Payment from Odoo | |V| | | |V| |
|
||||
| <payment_acquirers/adyen>` | | | | |
|
||||
+-------------------------------+----------------------+------------+-----------------+-----------+
|
||||
| :doc:`Alipay | Redirection to the | | | |
|
||||
|
|
@@ -86,7 +86,7 @@ Online payment acquirers
|
|||
| :doc:`SIPS | Redirection to the | | | |
|
||||
| <payment_acquirers/sips>` | acquirer website | | | |
|
||||
+-------------------------------+----------------------+------------+-----------------+-----------+
|
||||
| :doc:`Stripe | Redirection to the | |V| | |V| | |
|
||||
| :doc:`Stripe | Redirection to the | |V| | | |
|
||||
| <payment_acquirers/stripe>` | acquirer website | | | |
|
||||
+-------------------------------+----------------------+------------+-----------------+-----------+
|
||||
|
||||
|
|
|
|||
|
|
@@ -99,31 +99,5 @@ where payments will be made (the URLs of the servers hosting your Odoo instances
|
|||
:align: center
|
||||
:alt: Allows payments originated from a specific domain.
|
||||
|
||||
Place a hold on a card
|
||||
----------------------
|
||||
|
||||
Adyen allows you to capture an amount manually instead of having an immediate capture.
|
||||
|
||||
To set it up, enable the **Capture Amount Manually** option on Odoo, as explained in the
|
||||
:ref:`payment acquirers documentation <payment_acquirers/capture_amount>`.
|
||||
|
||||
Then, open your Adyen Merchant Account, go to :menuselection:`Account --> Settings`, and set the
|
||||
**Capture Delay** to **manual**.
|
||||
|
||||
.. image:: media/adyen_capture_delay.png
|
||||
:align: center
|
||||
:alt: Capture Delay settings in Adyen
|
||||
|
||||
.. caution::
|
||||
- If you configure Odoo to capture amounts manually, make sure to set the **Capture Delay** to
|
||||
**manual** on Adyen. Otherwise, the transaction will be blocked in the authorized state in
|
||||
Odoo.
|
||||
- Odoo doesn't support the partial capture yet. Be aware that if you make a partial capture from
|
||||
Adyen's interface, Odoo will manage it as if it was a full capture.
|
||||
|
||||
.. note::
|
||||
After **7 days**, if the transaction hasn't been captured yet, the customer has the right to
|
||||
**revoke** it.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../payment_acquirers`
|
||||
|
|
|
|||
|
|
@@ -28,8 +28,13 @@ To retrieve them, log into your Authorize.Net account, go to :menuselection:`Acc
|
|||
Key**.
|
||||
|
||||
.. important::
|
||||
If you are trying Authorize.Net as a test, with a *sandbox account*, change the **State** to
|
||||
*Test Mode*. We recommend doing this on a test Odoo database, rather than on your main database.
|
||||
If you are trying Authorize.Net as a test, with a *sandbox account*, change the :guilabel:`State`
|
||||
to :guilabel:`Test Mode`. We recommend doing this on a test Odoo database, rather than on your
|
||||
main database.
|
||||
|
||||
If you set :guilabel:`Test Mode` on Odoo and use an authorize.net account instead of a
|
||||
sandbox.authorize.net account, it results in the following error: *The merchant login ID or
|
||||
password is invalid or the account is inactive*.
|
||||
|
||||
Configuration tab
|
||||
-----------------
|
||||
|
|
|
|||
|
|
@@ -27,7 +27,7 @@ The method to acquire your credentials depends on your hosting type:
|
|||
.. tip::
|
||||
To use your own API keys, :ref:`activate the Developer mode <developer-mode>` and
|
||||
:ref:`enable Stripe manually <payment_acquirers/add_new>`. You can then :ref:`Fill in your
|
||||
credentials <stripe/api-keys>`, :ref:`generate a webhook <stripe/webhook>` and enable the
|
||||
credentials <stripe/api_keys>`, :ref:`generate a webhook <stripe/webhook>` and enable the
|
||||
payment acquirer.
|
||||
|
||||
.. group-tab:: Odoo.sh or On-premise
|
||||
|
|
@@ -37,7 +37,7 @@ The method to acquire your credentials depends on your hosting type:
|
|||
#. Fill in the requested information and submit the form.
|
||||
#. Confirm your email address when Stripe sends you a confirmation email.
|
||||
#. At the end of the process, you are redirected to the payment acquirer **Stripe** on Odoo.
|
||||
#. :ref:`Fill in your credentials <stripe/api-keys>`.
|
||||
#. :ref:`Fill in your credentials <stripe/api_keys>`.
|
||||
#. :ref:`Generate a webhook <stripe/webhook>`.
|
||||
#. Enable the payment acquirer.
|
||||
#. You are all set and can continue to :ref:`stripe/local-payment-methods`.
|
||||
|
|
@@ -51,7 +51,7 @@ The method to acquire your credentials depends on your hosting type:
|
|||
If you are testing Stripe (in **test mode**), change the **State** to *Test Mode*. We recommend
|
||||
doing this on a test Odoo database rather than on your main database.
|
||||
|
||||
.. _stripe/api-keys:
|
||||
.. _stripe/api_keys:
|
||||
|
||||
Fill in your credentials
|
||||
------------------------
|
||||
|
|
@@ -59,8 +59,8 @@ Fill in your credentials
|
|||
In case your **API Credentials** are required to connect with your Stripe account, these are the
|
||||
credentials that must be completed:
|
||||
|
||||
- :ref:`Publishable Key <stripe/api-keys>`: The key solely used to identify the account with Stripe.
|
||||
- :ref:`Secret Key <stripe/api-keys>`: The key to sign the merchant account with Stripe.
|
||||
- :ref:`Publishable Key <stripe/api_keys>`: The key solely used to identify the account with Stripe.
|
||||
- :ref:`Secret Key <stripe/api_keys>`: The key to sign the merchant account with Stripe.
|
||||
- :ref:`Webhook Signing Secret <stripe/webhook>`: When you enable your webhook on your Stripe
|
||||
account, this signing secret must be set to authenticate the messages sent from Stripe to Odoo.
|
||||
|
||||
|
|
@@ -77,67 +77,28 @@ In case your **Webhook Signing Secret** is required to connect with your Stripe
|
|||
create a webhook either automatically or manually.
|
||||
|
||||
.. tabs::
|
||||
.. tab:: Manage the webhook automatically
|
||||
.. tab:: Create the webhook automatically
|
||||
|
||||
Make sure your :ref:`Publishable and Secret keys <stripe/api-keys>` are filled in, then click
|
||||
on the :guilabel:`Generate your Webhook` button.
|
||||
Make sure your :ref:`Publishable and Secret keys <stripe/api_keys>` are filled in, then click
|
||||
on the *Generate your Webhook* button.
|
||||
|
||||
.. tip::
|
||||
To update the webhook, click once again on the :guilabel:`Generate your Webhook` button.
|
||||
|
||||
.. tab:: Manage the webhook manually
|
||||
.. tab:: Create the webhook manually
|
||||
|
||||
Visit the `webhooks page on Stripe <https://dashboard.stripe.com/webhooks>`_, or log into your
|
||||
Stripe dashboard and go to :menuselection:`Developers --> Webhooks`. Then, click on
|
||||
:guilabel:`Add endpoint` in your :guilabel:`Hosted endpoints` and insert the following data
|
||||
into the pop-up form:
|
||||
Stripe dashboard and go to :menuselection:`Developers --> Webhooks`. Then, click on **Add
|
||||
endpoint** in your **Hosted endpoints** and insert the following data into the pop-up form:
|
||||
|
||||
- | In the :guilabel:`Endpoint URL`, enter your Odoo database's URL followed by
|
||||
- | In the **Endpoint URL**, enter your Odoo database's URL followed by
|
||||
| `/payment/stripe/webhook`.
|
||||
| For example: `https://yourcompany.odoo.com/payment/stripe/webhook`
|
||||
- At the bottom of the form, you can select events to listen to. Click on :guilabel:`Select
|
||||
events`. Then:
|
||||
|
||||
- In the :guilabel:`Payment Intent` section, select
|
||||
:guilabel:`payment_intent.amount_capturable_updated` and
|
||||
:guilabel:`payment_intent.succeeded`.
|
||||
- In the :guilabel:`Setup Intent` section, select :guilabel:`setup_intent.succeeded`.
|
||||
- At the end of the form, you can **Select events** to listen to. Click on it and, in the
|
||||
**Checkout** section, select **checkout.session.completed**.
|
||||
|
||||
.. note::
|
||||
It is possible to select other events, but they are currently not processed by Odoo.
|
||||
|
||||
When you click on :guilabel:`Add endpoint`, your Webhook is configured. Click on
|
||||
:guilabel:`reveal` to display your signing secret.
|
||||
|
||||
.. tip::
|
||||
To update an existing webhook, click on it. Then, click on the three dots at the right side
|
||||
of the **Webhook URL** and on :guilabel:`Update details`.
|
||||
|
||||
Configuration tab
|
||||
-----------------
|
||||
|
||||
.. _stripe/manual-capture:
|
||||
|
||||
Place a hold on a card
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Stripe allows you to **capture an amount manually** instead of having an immediate capture. This
|
||||
feature earmarks an amount on the customer's account for a determined period of time that depends on
|
||||
the payment method used.
|
||||
|
||||
To set it up, enable the :guilabel:`Capture Amount Manually` option on Odoo, as explained in the
|
||||
:ref:`payment acquirers documentation <payment_acquirers/capture_amount>`.
|
||||
|
||||
.. warning::
|
||||
When the manual capture feature is activated, your customers are not able to proceed with any
|
||||
payment if unsupported payment methods are selected.
|
||||
|
||||
.. caution::
|
||||
Odoo doesn't support the partial capture yet. Be aware that a partial capture from Stripe's
|
||||
interface is still managed as a full capture by Odoo.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../payment_acquirers`
|
||||
When you click on **Add endpoint**, your Webhook is configured. You can then click on
|
||||
**reveal** to display your signing secret.
|
||||
|
||||
.. _stripe/local-payment-methods:
|
||||
|
||||
|
|
|
|||
|
|
@@ -38,12 +38,10 @@ are:
|
|||
customer. Then, the default scheduled date on the delivery order
|
||||
is **SO delivery date - Security Lead Time**.
|
||||
|
||||
- **Purchase Security Lead Time**: additional time to mitigate the risk
|
||||
of a vendor delay. The receipt will be scheduled that many days
|
||||
earlier to cope with unexpected vendor delays. In case of a
|
||||
*Replenish to Order*, the **Delivery order scheduled date -
|
||||
Security lead time** for purchase will be the default
|
||||
*Receipt* scheduled date.
|
||||
- **Purchase Security Lead Time**: margin of error for vendor lead times.
|
||||
When the system generates Purchase Orders for procuring products,
|
||||
they will be scheduled that many days earlier to cope with unexpected
|
||||
vendor delays.
|
||||
|
||||
- **Purchase Delivery Lead Time**: this is the expected time between a
|
||||
PO being confirmed and the receipt of the ordered products. The
|
||||
|
|
|
|||
|
|
@@ -75,6 +75,21 @@ Connect your database
|
|||
Only a limited amount of *Company Insights* (*Lead Enrichment*) requests are available as a
|
||||
trial. This feature requires :ref:`prepaid credits <mail_plugins/pricing>`.
|
||||
|
||||
.. tip::
|
||||
If, after a short while, the panel is still empty, it is possible that your browser cookie
|
||||
settings prevented it from loading.
|
||||
Note that these settings also change if you are in "Incognito" mode on your
|
||||
browser.
|
||||
|
||||
To fix this issue, configure your browser to always allow cookies on Odoo's plugin page.
|
||||
|
||||
For Google Chrome, you can do so by following the guide at:
|
||||
`https://support.google.com/chrome/answer/95647 <https://support.google.com/chrome/answer/95647#:~:text=Allow%20or%20block%20cookies%20for%20a%20specific%20site>`_
|
||||
and adding `download.odoo.com` to the list of `Sites that can always use cookies`.
|
||||
|
||||
Once done, the Outlook panel needs to be opened again.
|
||||
|
||||
|
||||
#. Enter your Odoo database URL and click on *Login*.
|
||||
|
||||
.. image:: outlook/enter-database-url.png
|
||||
|
|
|
|||
|
|
@@ -8,7 +8,6 @@ Acquire leads
|
|||
:titlesonly:
|
||||
|
||||
acquire_leads/convert
|
||||
acquire_leads/generate_from_email
|
||||
acquire_leads/generate_from_website
|
||||
acquire_leads/generate_leads
|
||||
acquire_leads/send_quotes
|
||||
acquire_leads/lead_mining
|
||||
|
|
|
|||
|
|
@@ -1,20 +0,0 @@
|
|||
========================================
|
||||
Generate leads/opportunities from emails
|
||||
========================================
|
||||
|
||||
Automating the lead/opportunity generation will considerably improve
|
||||
your efficiency. By default, any email sent to
|
||||
*sales@database\_domain.ext* will create an opportunity in the
|
||||
pipeline of the default sales channel.
|
||||
|
||||
Configure email aliases
|
||||
=======================
|
||||
|
||||
Each sales teams can have its own email alias, to generate
|
||||
leads/opportunities automatically assigned to it. It is useful if you
|
||||
manage several sales teams with specific business processes. You will
|
||||
find the configuration of sales teams under
|
||||
:menuselection:`Configuration --> Sales Teams`.
|
||||
|
||||
.. image:: media/generate_from_email01.png
|
||||
:align: center
|
||||
|
|
@@ -1,78 +0,0 @@
|
|||
===========================================================
|
||||
Generate leads/opportunities from your website contact page
|
||||
===========================================================
|
||||
|
||||
Automating the lead/opportunity generation will considerably improve
|
||||
your efficiency. Any visitor using the contact form on your website will
|
||||
create a lead/opportunity in the pipeline.
|
||||
|
||||
Use the contact us on your website
|
||||
==================================
|
||||
|
||||
You should first go to your website app.
|
||||
|
||||
|image0|\ |image1|
|
||||
|
||||
With the CRM app installed, you benefit from a ready-to-use contact form
|
||||
on your Odoo website that will generate leads/opportunities
|
||||
automatically.
|
||||
|
||||
.. image:: media/generate_from_website03.png
|
||||
:align: center
|
||||
|
||||
To change to a specific sales channel, go to :menuselection:`Website
|
||||
--> Configuration --> Settings` under *Communication* you will find the
|
||||
Contact Form info and where to change the *Sales Channel* or
|
||||
*Salesperson*.
|
||||
|
||||
.. image:: media/generate_from_website04.png
|
||||
:align: center
|
||||
|
||||
Create a custom contact form
|
||||
============================
|
||||
|
||||
You may want to know more from your visitor when they use the contact form to
|
||||
you will need to build a custom contact form on your
|
||||
website. These contact forms can generate multiple types of records in
|
||||
the system (emails, leads/opportunities, project tasks, helpdesk
|
||||
tickets, etc.)
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
You will need to install the free *Form Builder* module, only
|
||||
available in Odoo Enterprise.
|
||||
|
||||
.. image:: media/generate_from_website05.png
|
||||
:align: center
|
||||
|
||||
Create a custom contact form
|
||||
----------------------------
|
||||
|
||||
First, go to the page where you want to put your contact form. In edit mode, drag
|
||||
the form builder onto the page, and you will be able to add all the fields
|
||||
you wish.
|
||||
|
||||
.. image:: media/generate_from_website06.png
|
||||
:align: center
|
||||
|
||||
By default, any new contact form will send an email. You can switch to
|
||||
lead/opportunity generation in *Change Form Parameters*.
|
||||
|
||||
.. note::
|
||||
If the same visitor uses the contact form twice, the second
|
||||
entry will be added to the first lead/opportunity in the chatter.
|
||||
|
||||
Generate leads instead of opportunities
|
||||
=======================================
|
||||
|
||||
When using a contact form, you should use a qualification step
|
||||
before assigning the form to the right sales people. To do so, activate *Leads*
|
||||
in CRM settings and refer to :doc:`convert`.
|
||||
|
||||
.. |image0| image:: ./media/generate_from_website01.png
|
||||
:width: 1.04401in
|
||||
:height: 1.16146in
|
||||
.. |image1| image:: ./media/generate_from_website02.png
|
||||
:width: 1.43229in
|
||||
:height: 1.16244in
|
||||
104
content/applications/sales/crm/acquire_leads/generate_leads.rst
Normal file
|
|
@@ -0,0 +1,104 @@
|
|||
============================
|
||||
Generate leads/opportunities
|
||||
============================
|
||||
|
||||
Two key ways to generate new leads or opportunities for your business are through email aliases and
|
||||
website contact forms. Odoo automatically creates leads in your CRM whenever someone sends a
|
||||
message to a Sales Team email alias or fills out a contact form on your website.
|
||||
|
||||
Configure email aliases
|
||||
=======================
|
||||
|
||||
Each Sales Team can use its own unique email alias to generate leads/opportunities. Any email sent
|
||||
to a Sales Team's email alias will automatically create a lead (if leads are activated in your CRM
|
||||
settings) or an opportunity in the pipeline for that particular team. Configure custom email
|
||||
aliases on the configuration page for each Sales Team by navigating to :menuselection:`CRM -->
|
||||
Configuration --> Sales Teams`.
|
||||
|
||||
.. image:: generate_leads/sales-team-config.png
|
||||
:align: center
|
||||
:alt: Configuring Sales Teams
|
||||
|
||||
Use Contact Forms on your website
|
||||
=================================
|
||||
|
||||
By default, your website's *Contact Us* page displays Odoo's ready-to-use Contact Form. Whenever
|
||||
someone submits this form, a lead or an opportunity is generated in your database.
|
||||
|
||||
.. image:: generate_leads/default-contact-us-page.png
|
||||
:align: center
|
||||
:alt: Default Contact Us page
|
||||
|
||||
The Contact Form can be activated or deactivated at any time by going to :menuselection:`Website
|
||||
--> Go to Website --> Customize --> Contact Form`.
|
||||
|
||||
.. image:: generate_leads/contact-form-toggle.png
|
||||
:align: center
|
||||
:alt: Contact Form toggle
|
||||
|
||||
When the Form is deactivated, the *Contact Us* page simply displays a button to email your company
|
||||
directly. Any email sent this way will generate a lead/opportunity.
|
||||
|
||||
.. image:: generate_leads/default-contact-us-page-no-form.png
|
||||
:align: center
|
||||
:alt: Contact Us Page using email
|
||||
|
||||
Choose which Sales Team or salesperson is automatically assigned to the leads/opportunities created
|
||||
from the Contact Form by going to :menuselection:`Website --> Configuration --> Settings -->
|
||||
Communication`.
|
||||
|
||||
.. image:: generate_leads/contact-form-settings.png
|
||||
:align: center
|
||||
:alt: Contact Form settings
|
||||
|
||||
Customize Contact Forms
|
||||
=======================
|
||||
|
||||
Contact Forms can be customized for the specific information your team needs, using the free *Form
|
||||
Builder* module.
|
||||
|
||||
The *Form Builder* module is installed automatically when a Form element is added to a web page via
|
||||
the Website Builder. It can also be installed manually from the :guilabel:`Apps` page.
|
||||
|
||||
.. image:: generate_leads/form-building-block.png
|
||||
:align: center
|
||||
:alt: Form Builder building blocks
|
||||
|
||||
.. tip::
|
||||
Forms can be created from scratch to serve a wide variety of purposes. However, Odoo's default
|
||||
*Contact Us* page is designed to fit most users' needs. Start with the default form and modify
|
||||
from there.
|
||||
|
||||
Edit Contact Form fields
|
||||
------------------------
|
||||
|
||||
In Edit mode on your website, click on any field to start editing it. The following information can
|
||||
be edited for each field on the Contact Form:
|
||||
|
||||
- :guilabel:`Type`: Choose a custom field option or an existing field. Examples include phone, file
|
||||
upload, language, etc.
|
||||
- :guilabel:`Input Type`: Determine the type of entry customers should input. Available options are
|
||||
text,email, telephone, and URL.
|
||||
- :guilabel:`Input Placeholder`: Type in an example to guide users how to input information where
|
||||
formatting is important, such as a phone number or email address.
|
||||
- :guilabel:`Label Name`: Type in the display name to show users what information is needed from
|
||||
them.
|
||||
- :guilabel:`Label Position`: Choose the way the label is aligned with the rest of the form. The
|
||||
label can be hidden, above the field, to the far left of the field, or right adjusted and closer
|
||||
to the field.
|
||||
- :guilabel:`Required`: Toggle this option for information that you absolutely need entered.
|
||||
- :guilabel:`Hidden`: Toggle this option to hide the field without deleting it.
|
||||
- :guilabel:`Shown on Mobile`: Toggle this option to show the field to users on mobile devices.
|
||||
|
||||
.. image:: generate_leads/editable-field-options.png
|
||||
:align: center
|
||||
:alt: Editable field options
|
||||
|
||||
By default, when a Form is submitted, it sends you an email with the customer's inputted
|
||||
information. To have it automatically generate a lead/opportunity instead, edit the Form and select
|
||||
:guilabel:`Create an Opportunity` as the Action.
|
||||
|
||||
.. tip::
|
||||
If leads are activated in your CRM settings, selecting :guilabel:`Create an Opportunity`
|
||||
generates a lead instead. To learn more about activating leads in the CRM settings, head over to
|
||||
:doc:`convert`.
|
||||
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
|
@@ -31,7 +31,7 @@ From there, click on the **Generate Leads** button, a window where you will be a
|
|||
:align: center
|
||||
|
||||
|
||||
When choosing to target Companied and their contacts you can choose the contacts you are getting based on Role or Seniority.
|
||||
When choosing to target Companies and their contacts you can choose the contacts you are getting based on Role or Seniority.
|
||||
When getting contact information make sure to be aware of the latest EU regulation, get more information about General Data Protection Regulation on
|
||||
`Odoo GDPR <http://odoo.com/gdpr>`__,
|
||||
|
||||
|
|
@@ -49,10 +49,10 @@ You can also add tags to track your generated leads.
|
|||
Pricing
|
||||
==================
|
||||
This is an In-App Purchase feature, each generated lead will cost you one credit.
|
||||
If you choose to get contact information each contact will also cost us one additional credit.
|
||||
If you choose to get contact information each contact will also cost you one additional credit.
|
||||
Here is the pricing for this `feature <https://iap.odoo.com/iap/in-app-services/167?>`__,
|
||||
To buy credits you can either go to :menuselection:`CRM --> Configuration --> Settings --> Buy
|
||||
Credits`; or go to :menuselection:`Settings --> In-App Purchases --> View my Services`.
|
||||
Credits`; or go to :menuselection:`Settings --> Contacts --> Odoo IAP --> View my Services`.
|
||||
|
||||
.. image:: media/LM6.png
|
||||
:align: center
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 7.4 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 7.9 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
|
@@ -1,47 +1,65 @@
|
|||
===========================
|
||||
Manage multiple sales teams
|
||||
===========================
|
||||
====================
|
||||
Multiple sales teams
|
||||
====================
|
||||
|
||||
In Odoo, you can manage several sales teams, departments or channels
|
||||
with specific sales processes. To do so, we use the concept of *Sales
|
||||
Channel*.
|
||||
Odoo lets you manage several sales teams, departments, or channels, each with their own unique
|
||||
sales processes, using *Sales Teams*.
|
||||
|
||||
Create a new sales channel
|
||||
==========================
|
||||
|
||||
To create a new *Sales Channel*, go to :menuselection:`Configuration --> Sales Channels`.
|
||||
|
||||
There you can set an email alias to it. Every message sent to that email
|
||||
address will create a lead/opportunity.
|
||||
|
||||
.. image:: media/multi_sales_team01.png
|
||||
:align: center
|
||||
|
||||
Add members to your sales channel
|
||||
---------------------------------
|
||||
|
||||
You can add members to any channel; that way those members will see the
|
||||
pipeline structure of the sales channel when opening it. Any
|
||||
lead/opportunity assigned to them will link to the sales channel.
|
||||
Therefore, you can only be a member of one channel.
|
||||
|
||||
This will ease the process review of the team manager.
|
||||
|
||||
.. image:: media/multi_sales_team02.png
|
||||
:align: center
|
||||
|
||||
If you now filter on this specific channel in your pipeline, you will
|
||||
find all of its opportunities.
|
||||
|
||||
.. image:: media/multi_sales_team03.png
|
||||
:align: center
|
||||
|
||||
Sales channel dashboard
|
||||
Create a new Sales Team
|
||||
=======================
|
||||
|
||||
To see the operations and results of any sales channel at a glance, the
|
||||
sales manager also has access to the *Sales Channel Dashboard* under
|
||||
*Reporting*.
|
||||
To create a new Sales Team, go to :menuselection:`CRM --> Configuration --> Sales Teams` then
|
||||
click **Create**.
|
||||
|
||||
On the creation page, set an *Email Alias* to automatically generate a lead/opportunity for this
|
||||
Sales Team every time a message is sent to that unique email address. You can also choose whether
|
||||
to accept emails from *Everyone*, *Authenticated Partners*, or *Followers Only*.
|
||||
|
||||
Set a *Domain* to assign leads/opportunities to this Sales Team based on specific filters, such as
|
||||
country, language, or campaign. Set an *Invoicing Target* if this team has specific monthly revenue
|
||||
goals.
|
||||
|
||||
.. image:: multiple_sales_teams/sales-team-creation.png
|
||||
:align: center
|
||||
:alt: Creating a Sales Team
|
||||
|
||||
Add members to a Sales Team
|
||||
---------------------------
|
||||
|
||||
To add team members, click **Add** under the Assignment tab when editing the Sales Team's
|
||||
configuration page. Select a salesperson from the dropdown menu or create new salesperson. Set a
|
||||
maximum number of leads that can be assigned to this salesperson in a 30-day period to ensure that
|
||||
they do not overwork.
|
||||
|
||||
.. image:: multiple_sales_teams/add-a-salesperson.png
|
||||
:align: center
|
||||
:alt: Adding a Salesperson
|
||||
|
||||
One person can be added as a team member or Team Leader to multiple Sales Teams, allowing them to access all of the pipelines that they need to.
|
||||
|
||||
Sales Team dashboard
|
||||
====================
|
||||
|
||||
To view the Sales Team dashboard, go to :menuselection:`CRM --> Configuration --> Sales Teams`. Any
|
||||
teams you are a part of will appear as dashboard tiles.
|
||||
|
||||
Each tile gives an overview of the Sales Team's open opportunities, quotations, sales orders, and
|
||||
expected revenue, as well as a bar graph of new opportunities per week and an invoicing progress
|
||||
bar.
|
||||
|
||||
.. image:: multiple_sales_teams/sales-team-overview.png
|
||||
:align: center
|
||||
:alt: Sales Team Overview
|
||||
|
||||
Click on the three dots in the corner of a tile to open a navigational menu that lets you quickly
|
||||
view documents or reports, create new quotations or opportunities, pick a color for this team, or
|
||||
access its configuration page.
|
||||
|
||||
.. image:: multiple_sales_teams/team-overview-three-dot-menu.png
|
||||
:align: center
|
||||
:alt: Three Dot Menu
|
||||
|
||||
Click on the **Pipeline** button to go directly to that team's CRM pipeline.
|
||||
|
||||
|
||||
It is shared with the whole ecosystem so every revenue stream is
|
||||
included in it: Sales, eCommerce, PoS, etc.
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
|
@@ -2,77 +2,72 @@
|
|||
Assign leads based on scoring
|
||||
=============================
|
||||
|
||||
With *Leads Scoring* you can automatically rank your leads based on
|
||||
selected criteria.
|
||||
*Lead Scoring* lets you rank and prioritize leads based on selected criteria. A higher score
|
||||
indicates that a lead is more likely to bring value to your company.
|
||||
|
||||
For example you could score customers from your country higher or the
|
||||
ones that visited specific pages on your website.
|
||||
For example, if customers from Canada tend to be more likely to purchase your products, you can
|
||||
assign them a higher score than customers from other countries.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To use scoring, install the free module *Lead Scoring* under your
|
||||
*Apps* page (only available in Odoo Enterprise).
|
||||
To use scoring, go to :menuselection:`Apps`, remove the :guilabel:`Apps` filter, search for
|
||||
:guilabel:`Lead Scoring` and then install the module.
|
||||
|
||||
.. image:: media/lead_scoring01.png
|
||||
.. image:: lead_scoring/lead-scoring-module.png
|
||||
:align: center
|
||||
:alt: Lead Scoring module installation
|
||||
|
||||
Create scoring rules
|
||||
====================
|
||||
|
||||
You now have a new tab in your *CRM* app called *Leads Management*
|
||||
where you can manage your scoring rules.
|
||||
To manage scoring rules, go to :menuselection:`CRM --> Leads --> Scoring Rules`.
|
||||
|
||||
Here's an example for a Canadian lead, you can modify for whatever
|
||||
criteria you wish to score your leads on. You can add as many criteria
|
||||
as you wish.
|
||||
Customize your rules to fit the needs of your business, and add as many criteria as you want.
|
||||
|
||||
.. image:: media/lead_scoring02.png
|
||||
.. image:: lead_scoring/scoring-example.png
|
||||
:align: center
|
||||
:alt: Score Rule example
|
||||
|
||||
Every hour every lead without a score will be automatically scanned and
|
||||
assigned their right score according to your scoring rules.
|
||||
Every hour, Odoo automatically assigns scores to new leads according to your configured rules.
|
||||
|
||||
.. image:: media/lead_scoring03.png
|
||||
.. image:: lead_scoring/scoring-section-on-lead.png
|
||||
:align: center
|
||||
:alt: Scoring section on a lead
|
||||
|
||||
Assign leads
|
||||
============
|
||||
|
||||
Once the scores computed, leads can be assigned to specific teams using
|
||||
the same domain mechanism. To do so go to :menuselection:`CRM --> Leads Management --> Team Assignation`
|
||||
and apply a specific domain on each team. This domain can include scores.
|
||||
Odoo can also assign leads to specific teams based on configured rules. To configure assignment
|
||||
rules, go to the individual Sales Team's configuration page via :menuselection:`CRM --> Leads -->
|
||||
Team Assignment` or :menuselection:`CRM --> Configuration --> Sales Teams`, and apply a specific
|
||||
Domain to each team. The Domain can include lead scores.
|
||||
|
||||
.. image:: media/lead_scoring04.png
|
||||
.. image:: lead_scoring/team-assignation.png
|
||||
:align: center
|
||||
:alt: Team Assignments using domains
|
||||
|
||||
Further on, you can assign to a specific vendor in the team with an even
|
||||
more refined domain.
|
||||
Assign leads to specific salespeople using further refined Domains at :menuselection:`CRM --> Leads
|
||||
--> Leads Assignment`.
|
||||
|
||||
To do so go to :menuselection:`CRM --> Leads Management --> Leads Assignation`.
|
||||
|
||||
.. image:: media/lead_scoring05.png
|
||||
.. image:: lead_scoring/lead-assignment-filters.png
|
||||
:align: center
|
||||
:alt: Lead Assignments
|
||||
|
||||
Odoo automatically assigns new leads to teams/salespeople once per day.
|
||||
|
||||
Evaluate and use the unassigned leads
|
||||
=====================================
|
||||
|
||||
Not all leads will fall into your set Domains and get assigned automatically by Odoo.
|
||||
|
||||
To view your unassigned leads, go to :menuselection:`CRM --> Leads --> Leads` and select the
|
||||
Unassigned filter.
|
||||
|
||||
.. image:: lead_scoring/unassigned-filter.png
|
||||
:align: center
|
||||
:alt: Filtering for unassigned leads
|
||||
|
||||
.. note::
|
||||
The team & leads assignation will assign the unassigned leads
|
||||
once a day.
|
||||
|
||||
Evaluate & use the unassigned leads
|
||||
===================================
|
||||
|
||||
Once your scoring rules are in place you will most likely still have
|
||||
some unassigned leads. Some of them could still lead to an opportunity
|
||||
so it is useful to do something with them.
|
||||
|
||||
In your leads page you can place a filter to find your unassigned leads.
|
||||
|
||||
.. image:: media/lead_scoring06.png
|
||||
:align: center
|
||||
|
||||
Why not using :menuselection:`Email Marketing` or
|
||||
:menuselection:`Marketing Automation` apps to send a mass email to
|
||||
them? You can also easily find such unassigned leads from there.
|
||||
|
||||
.. image:: media/lead_scoring07.png
|
||||
:align: center
|
||||
You can also find unassigned leads and create re-engagement campaigns using the :guilabel:`Email
|
||||
Marketing` or :guilabel:`Marketing Automation` apps.
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 22 KiB |