Odoo-Tutorial/documentation/static/html/18.0/developer/tutorials/web.html
2025-02-24 16:51:43 +07:00

4288 lines
522 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="EN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1">
<title>Customizing the web client &#8212; Odoo 18.0 documentation</title>
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../../_static/style.css" />
<link rel="stylesheet" type="text/css" href="../../_static/graphviz.css" />
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script>
<script src="../../_static/js/utils.js"></script>
<script src="../../_static/js/layout.js"></script>
<script src="../../_static/js/menu.js"></script>
<script src="../../_static/js/page_toc.js"></script>
<script src="../../_static/js/switchers.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.bundle.min.js"
integrity="sha384-b5kHyXgcpbZJO/tY9Ul7kGkf1S0CWuKcCD38l8YkeH8z8QjE0GmW1gYU5S9FOnJ0"
crossorigin="anonymous"></script>
<link rel="shortcut icon" href="../../_static/favicon.ico"/>
<link rel="alternate" hreflang="vi" href="/documentation/static/html/18.0/vi/developer/tutorials/web.html" />
<link rel="canonical" href="/documentation/static/html/18.0/developer/tutorials/web.html" />
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
</head><body>
<noscript>
<nav class="o_side_nav border-end">
<ul>
<li class="toctree-l1 o_menu_applications"><a class="reference internal" href="../../applications.html">User Docs</a><ul>
<li class="toctree-l2 o_menu_applications_essentials"><a class="reference internal" href="#">Odoo essentials</a><ul>
<li class="toctree-l3 o_menu_applications_essentials_activities"><a class="reference internal" href="../../applications/essentials/activities.html">Activities</a></li>
<li class="toctree-l3 o_menu_applications_essentials_reporting"><a class="reference internal" href="../../applications/essentials/reporting.html">Reporting</a></li>
<li class="toctree-l3 o_menu_applications_essentials_search"><a class="reference internal" href="../../applications/essentials/search.html">Search, filter, and group records</a></li>
<li class="toctree-l3 o_menu_applications_essentials_contacts"><a class="reference internal" href="../../applications/essentials/contacts.html">Contacts</a><ul>
<li class="toctree-l4 o_menu_applications_essentials_contacts_merge"><a class="reference internal" href="../../applications/essentials/contacts/merge.html">Merge contacts</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_essentials_export_import_data"><a class="reference internal" href="../../applications/essentials/export_import_data.html">Export and import data</a></li>
<li class="toctree-l3 o_menu_applications_essentials_in_app_purchase"><a class="reference internal" href="../../applications/essentials/in_app_purchase.html">In-app purchases (IAP)</a></li>
<li class="toctree-l3 o_menu_applications_essentials_keyboard_shortcuts"><a class="reference internal" href="../../applications/essentials/keyboard_shortcuts.html">Keyboard shortcuts</a></li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_finance"><a class="reference internal" href="#">Finance</a><ul>
<li class="toctree-l3 o_menu_applications_finance_accounting"><a class="reference internal" href="../../applications/finance/accounting.html">Accounting and Invoicing</a><ul>
<li class="toctree-l4 o_menu_applications_finance_accounting_get_started"><a class="reference internal" href="../../applications/finance/accounting/get_started.html">Get started</a><ul>
<li class="toctree-l5 o_menu_applications_finance_accounting_get_started_cheat_sheet"><a class="reference internal" href="../../applications/finance/accounting/get_started/cheat_sheet.html">Accounting cheat sheet</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_get_started_chart_of_accounts"><a class="reference internal" href="../../applications/finance/accounting/get_started/chart_of_accounts.html">Chart of accounts</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_get_started_multi_currency"><a class="reference internal" href="../../applications/finance/accounting/get_started/multi_currency.html">Multi-currency system</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_get_started_avg_price_valuation"><a class="reference internal" href="../../applications/finance/accounting/get_started/avg_price_valuation.html">Average price on returned goods</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_get_started_tax_units"><a class="reference internal" href="../../applications/finance/accounting/get_started/tax_units.html">Tax units</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_finance_accounting_taxes"><a class="reference internal" href="../../applications/finance/accounting/taxes.html">Taxes</a><ul>
<li class="toctree-l5 o_menu_applications_finance_accounting_taxes_cash_basis"><a class="reference internal" href="../../applications/finance/accounting/taxes/cash_basis.html">Cash basis taxes</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_taxes_retention"><a class="reference internal" href="../../applications/finance/accounting/taxes/retention.html">Withholding taxes</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_taxes_vat_verification"><a class="reference internal" href="../../applications/finance/accounting/taxes/vat_verification.html">VAT numbers verification (VIES)</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_taxes_fiscal_positions"><a class="reference internal" href="../../applications/finance/accounting/taxes/fiscal_positions.html">Fiscal positions (tax and account mapping)</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_taxes_avatax"><a class="reference internal" href="../../applications/finance/accounting/taxes/avatax.html">AvaTax integration</a><ul>
<li class="toctree-l6 o_menu_applications_finance_accounting_taxes_avatax_avatax_use"><a class="reference internal" href="../../applications/finance/accounting/taxes/avatax/avatax_use.html">AvaTax use</a></li>
<li class="toctree-l6 o_menu_applications_finance_accounting_taxes_avatax_avalara_portal"><a class="reference internal" href="../../applications/finance/accounting/taxes/avatax/avalara_portal.html">Avalara (Avatax) portal</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_finance_accounting_taxes_eu_distance_selling"><a class="reference internal" href="../../applications/finance/accounting/taxes/eu_distance_selling.html">EU intra-community distance selling</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_taxes_B2B_B2C"><a class="reference internal" href="../../applications/finance/accounting/taxes/B2B_B2C.html">B2B (tax excluded) and B2C (tax included) pricing</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_finance_accounting_customer_invoices"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices.html">Customer invoices</a><ul>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_overview"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/overview.html">Invoicing processes</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_customer_addresses"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/customer_addresses.html">Delivery and invoice addresses</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_payment_terms"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/payment_terms.html">Payment terms and installment plans</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_terms_conditions"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/terms_conditions.html">Default terms and conditions (T&amp;C)</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_cash_discounts"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/cash_discounts.html">Cash discounts and tax reduction</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_credit_notes"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/credit_notes.html">Credit notes and refunds</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_cash_rounding"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/cash_rounding.html">Cash rounding</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_deferred_revenues"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/deferred_revenues.html">Deferred revenues</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_electronic_invoicing"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/electronic_invoicing.html">Electronic invoicing (<abbr title="electronic data interchange">EDI</abbr>)</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_sequence"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/sequence.html">Invoice sequence</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_snailmail"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/snailmail.html">Snailmail</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_epc_qr_code"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/epc_qr_code.html">EPC QR codes</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_incoterms"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/incoterms.html">Incoterms</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_finance_accounting_vendor_bills"><a class="reference internal" href="../../applications/finance/accounting/vendor_bills.html">Vendor bills</a><ul>
<li class="toctree-l5 o_menu_applications_finance_accounting_vendor_bills_invoice_digitization"><a class="reference internal" href="../../applications/finance/accounting/vendor_bills/invoice_digitization.html">AI-powered document digitization</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_vendor_bills_assets"><a class="reference internal" href="../../applications/finance/accounting/vendor_bills/assets.html">Non-current assets and fixed assets</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_vendor_bills_deferred_expenses"><a class="reference internal" href="../../applications/finance/accounting/vendor_bills/deferred_expenses.html">Deferred expenses</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_finance_accounting_payments"><a class="reference internal" href="../../applications/finance/accounting/payments.html">Payments</a><ul>
<li class="toctree-l5 o_menu_applications_finance_accounting_payments_online"><a class="reference internal" href="../../applications/finance/accounting/payments/online.html">Online payments</a><ul>
<li class="toctree-l6 o_menu_applications_finance_accounting_payments_online_install_portal_patch"><a class="reference internal" href="../../applications/finance/accounting/payments/online/install_portal_patch.html">Install the patch to disable online invoice payment</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_finance_accounting_payments_checks"><a class="reference internal" href="../../applications/finance/accounting/payments/checks.html">Checks</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_payments_batch"><a class="reference internal" href="../../applications/finance/accounting/payments/batch.html">Batch payments by bank deposit</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_payments_batch_sdd"><a class="reference internal" href="../../applications/finance/accounting/payments/batch_sdd.html">Batch payments: SEPA Direct Debit (SDD)</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_payments_follow_up"><a class="reference internal" href="../../applications/finance/accounting/payments/follow_up.html">Follow-up on invoices</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_payments_pay_sepa"><a class="reference internal" href="../../applications/finance/accounting/payments/pay_sepa.html">Pay with SEPA</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_payments_pay_checks"><a class="reference internal" href="../../applications/finance/accounting/payments/pay_checks.html">Pay by checks</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_payments_forecast"><a class="reference internal" href="../../applications/finance/accounting/payments/forecast.html">Forecast future bills to pay</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_payments_trusted_accounts"><a class="reference internal" href="../../applications/finance/accounting/payments/trusted_accounts.html">Trusted accounts (send money)</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_finance_accounting_bank"><a class="reference internal" href="../../applications/finance/accounting/bank.html">Bank and cash accounts</a><ul>
<li class="toctree-l5 o_menu_applications_finance_accounting_bank_bank_synchronization"><a class="reference internal" href="../../applications/finance/accounting/bank/bank_synchronization.html">Bank synchronization</a><ul>
<li class="toctree-l6 o_menu_applications_finance_accounting_bank_bank_synchronization_saltedge"><a class="reference internal" href="../../applications/finance/accounting/bank/bank_synchronization/saltedge.html">Salt Edge</a></li>
<li class="toctree-l6 o_menu_applications_finance_accounting_bank_bank_synchronization_ponto"><a class="reference internal" href="../../applications/finance/accounting/bank/bank_synchronization/ponto.html">Ponto</a></li>
<li class="toctree-l6 o_menu_applications_finance_accounting_bank_bank_synchronization_enablebanking"><a class="reference internal" href="../../applications/finance/accounting/bank/bank_synchronization/enablebanking.html">Enable Banking</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_finance_accounting_bank_transactions"><a class="reference internal" href="../../applications/finance/accounting/bank/transactions.html">Transactions</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_bank_reconciliation"><a class="reference internal" href="../../applications/finance/accounting/bank/reconciliation.html">Bank reconciliation</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_bank_reconciliation_models"><a class="reference internal" href="../../applications/finance/accounting/bank/reconciliation_models.html">Reconciliation models</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_bank_internal_transfers"><a class="reference internal" href="../../applications/finance/accounting/bank/internal_transfers.html">Internal transfers</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_bank_foreign_currency"><a class="reference internal" href="../../applications/finance/accounting/bank/foreign_currency.html">Manage a bank account in a foreign currency</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_bank_loans"><a class="reference internal" href="../../applications/finance/accounting/bank/loans.html">Loans management</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_finance_accounting_reporting"><a class="reference internal" href="../../applications/finance/accounting/reporting.html">Reporting</a><ul>
<li class="toctree-l5 o_menu_applications_finance_accounting_reporting_tax_returns"><a class="reference internal" href="../../applications/finance/accounting/reporting/tax_returns.html">Tax return (VAT declaration)</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_reporting_tax_carryover"><a class="reference internal" href="../../applications/finance/accounting/reporting/tax_carryover.html">Tax carryover</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_reporting_analytic_accounting"><a class="reference internal" href="../../applications/finance/accounting/reporting/analytic_accounting.html">Analytic accounting</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_reporting_budget"><a class="reference internal" href="../../applications/finance/accounting/reporting/budget.html">Budgets</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_reporting_intrastat"><a class="reference internal" href="../../applications/finance/accounting/reporting/intrastat.html">Intrastat</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_reporting_data_inalterability"><a class="reference internal" href="../../applications/finance/accounting/reporting/data_inalterability.html">Data inalterability check report</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_reporting_silverfin"><a class="reference internal" href="../../applications/finance/accounting/reporting/silverfin.html">Silverfin integration</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_reporting_customize"><a class="reference internal" href="../../applications/finance/accounting/reporting/customize.html">Custom reports</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_reporting_year_end"><a class="reference internal" href="../../applications/finance/accounting/reporting/year_end.html">Year-end closing</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_finance_expenses"><a class="reference internal" href="../../applications/finance/expenses.html">Expenses</a><ul>
<li class="toctree-l4 o_menu_applications_finance_expenses_log_expenses"><a class="reference internal" href="../../applications/finance/expenses/log_expenses.html">Log expenses</a></li>
<li class="toctree-l4 o_menu_applications_finance_expenses_expense_reports"><a class="reference internal" href="../../applications/finance/expenses/expense_reports.html">Expense reports</a></li>
<li class="toctree-l4 o_menu_applications_finance_expenses_approve_expenses"><a class="reference internal" href="../../applications/finance/expenses/approve_expenses.html">Approve expenses</a></li>
<li class="toctree-l4 o_menu_applications_finance_expenses_post_expenses"><a class="reference internal" href="../../applications/finance/expenses/post_expenses.html">Post expenses</a></li>
<li class="toctree-l4 o_menu_applications_finance_expenses_reimburse"><a class="reference internal" href="../../applications/finance/expenses/reimburse.html">Reimburse employees</a></li>
<li class="toctree-l4 o_menu_applications_finance_expenses_reinvoice_expenses"><a class="reference internal" href="../../applications/finance/expenses/reinvoice_expenses.html">Re-invoice expenses</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_finance_payment_providers"><a class="reference internal" href="../../applications/finance/payment_providers.html">Online payments</a><ul>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_wire_transfer"><a class="reference internal" href="../../applications/finance/payment_providers/wire_transfer.html">Wire transfers</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_adyen"><a class="reference internal" href="../../applications/finance/payment_providers/adyen.html">Adyen</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_amazon_payment_services"><a class="reference internal" href="../../applications/finance/payment_providers/amazon_payment_services.html">Amazon Payment Services</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_asiapay"><a class="reference internal" href="../../applications/finance/payment_providers/asiapay.html">AsiaPay</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_authorize"><a class="reference internal" href="../../applications/finance/payment_providers/authorize.html">Authorize.Net</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_buckaroo"><a class="reference internal" href="../../applications/finance/payment_providers/buckaroo.html">Buckaroo</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_demo"><a class="reference internal" href="../../applications/finance/payment_providers/demo.html">Demo</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_flutterwave"><a class="reference internal" href="../../applications/finance/payment_providers/flutterwave.html">Flutterwave</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_mercado_pago"><a class="reference internal" href="../../applications/finance/payment_providers/mercado_pago.html">Mercado Pago</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_mollie"><a class="reference internal" href="../../applications/finance/payment_providers/mollie.html">Mollie</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_paypal"><a class="reference internal" href="../../applications/finance/payment_providers/paypal.html">PayPal</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_razorpay"><a class="reference internal" href="../../applications/finance/payment_providers/razorpay.html">Razorpay</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_stripe"><a class="reference internal" href="../../applications/finance/payment_providers/stripe.html">Stripe</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_worldline"><a class="reference internal" href="../../applications/finance/payment_providers/worldline.html">Worldline</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_xendit"><a class="reference internal" href="../../applications/finance/payment_providers/xendit.html">Xendit</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_finance_fiscal_localizations"><a class="reference internal" href="../../applications/finance/fiscal_localizations.html">Fiscal localizations</a><ul>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_argentina"><a class="reference internal" href="../../applications/finance/fiscal_localizations/argentina.html">Argentina</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_australia"><a class="reference internal" href="../../applications/finance/fiscal_localizations/australia.html">Australia</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_austria"><a class="reference internal" href="../../applications/finance/fiscal_localizations/austria.html">Austria</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_belgium"><a class="reference internal" href="../../applications/finance/fiscal_localizations/belgium.html">Belgium</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_brazil"><a class="reference internal" href="../../applications/finance/fiscal_localizations/brazil.html">Brazil</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_canada"><a class="reference internal" href="../../applications/finance/fiscal_localizations/canada.html">Canada</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_chile"><a class="reference internal" href="../../applications/finance/fiscal_localizations/chile.html">Chile</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_colombia"><a class="reference internal" href="../../applications/finance/fiscal_localizations/colombia.html">Colombia</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_ecuador"><a class="reference internal" href="../../applications/finance/fiscal_localizations/ecuador.html">Ecuador</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_egypt"><a class="reference internal" href="../../applications/finance/fiscal_localizations/egypt.html">Egypt</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_france"><a class="reference internal" href="../../applications/finance/fiscal_localizations/france.html">France</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_germany"><a class="reference internal" href="../../applications/finance/fiscal_localizations/germany.html">Germany</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_hong_kong"><a class="reference internal" href="../../applications/finance/fiscal_localizations/hong_kong.html">Hong Kong</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_india"><a class="reference internal" href="../../applications/finance/fiscal_localizations/india.html">India</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_indonesia"><a class="reference internal" href="../../applications/finance/fiscal_localizations/indonesia.html">Indonesia</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_italy"><a class="reference internal" href="../../applications/finance/fiscal_localizations/italy.html">Italy</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_kenya"><a class="reference internal" href="../../applications/finance/fiscal_localizations/kenya.html">Kenya</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_luxembourg"><a class="reference internal" href="../../applications/finance/fiscal_localizations/luxembourg.html">Luxembourg</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_malaysia"><a class="reference internal" href="../../applications/finance/fiscal_localizations/malaysia.html">Malaysia</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_mexico"><a class="reference internal" href="../../applications/finance/fiscal_localizations/mexico.html">Mexico</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_netherlands"><a class="reference internal" href="../../applications/finance/fiscal_localizations/netherlands.html">Netherlands</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_new_zealand"><a class="reference internal" href="../../applications/finance/fiscal_localizations/new_zealand.html">New Zealand</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_peru"><a class="reference internal" href="../../applications/finance/fiscal_localizations/peru.html">Peru</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_philippines"><a class="reference internal" href="../../applications/finance/fiscal_localizations/philippines.html">Philippines</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_romania"><a class="reference internal" href="../../applications/finance/fiscal_localizations/romania.html">Romania</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_saudi_arabia"><a class="reference internal" href="../../applications/finance/fiscal_localizations/saudi_arabia.html">Saudi Arabia</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_singapore"><a class="reference internal" href="../../applications/finance/fiscal_localizations/singapore.html">Singapore</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_spain"><a class="reference internal" href="../../applications/finance/fiscal_localizations/spain.html">Spain</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_switzerland"><a class="reference internal" href="../../applications/finance/fiscal_localizations/switzerland.html">Switzerland</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_thailand"><a class="reference internal" href="../../applications/finance/fiscal_localizations/thailand.html">Thailand</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_united_arab_emirates"><a class="reference internal" href="../../applications/finance/fiscal_localizations/united_arab_emirates.html">United Arab Emirates</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_united_kingdom"><a class="reference internal" href="../../applications/finance/fiscal_localizations/united_kingdom.html">United Kingdom</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_united_states"><a class="reference internal" href="../../applications/finance/fiscal_localizations/united_states.html">United States</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_uruguay"><a class="reference internal" href="../../applications/finance/fiscal_localizations/uruguay.html">Uruguay</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_vietnam"><a class="reference internal" href="../../applications/finance/fiscal_localizations/vietnam.html">Vietnam</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_employment_hero"><a class="reference internal" href="../../applications/finance/fiscal_localizations/employment_hero.html">Employment Hero Payroll</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_sales"><a class="reference internal" href="#">Sales</a><ul>
<li class="toctree-l3 o_menu_applications_sales_crm"><a class="reference internal" href="../../applications/sales/crm.html">CRM</a><ul>
<li class="toctree-l4 o_menu_applications_sales_crm_pipeline"><a class="reference internal" href="#">Organize the pipeline</a><ul>
<li class="toctree-l5 o_menu_applications_sales_crm_pipeline_lost_opportunities"><a class="reference internal" href="../../applications/sales/crm/pipeline/lost_opportunities.html">Manage lost opportunities</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_pipeline_merge_similar"><a class="reference internal" href="../../applications/sales/crm/pipeline/merge_similar.html">Merge similar leads and opportunities</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_pipeline_manage_sales_teams"><a class="reference internal" href="../../applications/sales/crm/pipeline/manage_sales_teams.html">Manage sales teams</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_crm_acquire_leads"><a class="reference internal" href="#">Acquire leads</a><ul>
<li class="toctree-l5 o_menu_applications_sales_crm_acquire_leads_convert"><a class="reference internal" href="../../applications/sales/crm/acquire_leads/convert.html">Convert leads into opportunities</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_acquire_leads_opportunities_form"><a class="reference internal" href="../../applications/sales/crm/acquire_leads/opportunities_form.html">Create opportunities from web contact forms</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_acquire_leads_email_manual"><a class="reference internal" href="../../applications/sales/crm/acquire_leads/email_manual.html">Create leads (from email or manually)</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_acquire_leads_send_quotes"><a class="reference internal" href="../../applications/sales/crm/acquire_leads/send_quotes.html">Create and send quotations</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_acquire_leads_lead_mining"><a class="reference internal" href="../../applications/sales/crm/acquire_leads/lead_mining.html">Lead mining</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_crm_track_leads"><a class="reference internal" href="#">Assign and track leads</a><ul>
<li class="toctree-l5 o_menu_applications_sales_crm_track_leads_lead_scoring"><a class="reference internal" href="../../applications/sales/crm/track_leads/lead_scoring.html">Assign leads with predictive lead scoring</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_track_leads_unattended_leads_report"><a class="reference internal" href="../../applications/sales/crm/track_leads/unattended_leads_report.html">Unattended leads report</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_track_leads_quality_leads_report"><a class="reference internal" href="../../applications/sales/crm/track_leads/quality_leads_report.html">Quality leads report</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_track_leads_resellers"><a class="reference internal" href="../../applications/sales/crm/track_leads/resellers.html">Resellers</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_track_leads_marketing_attribution"><a class="reference internal" href="../../applications/sales/crm/track_leads/marketing_attribution.html">Marketing attribution reports</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_track_leads_lead_distribution_report"><a class="reference internal" href="../../applications/sales/crm/track_leads/lead_distribution_report.html">Lead distribution report</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_crm_performance"><a class="reference internal" href="#">Analyze performance</a><ul>
<li class="toctree-l5 o_menu_applications_sales_crm_performance_win_loss"><a class="reference internal" href="../../applications/sales/crm/performance/win_loss.html">Pipeline Analysis</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_performance_expected_revenue_report"><a class="reference internal" href="../../applications/sales/crm/performance/expected_revenue_report.html">Expected revenue report</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_performance_forecast_report"><a class="reference internal" href="../../applications/sales/crm/performance/forecast_report.html">Forecast report</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_crm_optimize"><a class="reference internal" href="#">Optimize your Day-to-Day work</a><ul>
<li class="toctree-l5 o_menu_applications_sales_crm_optimize_partner_autocomplete"><a class="reference internal" href="../../applications/sales/crm/optimize/partner_autocomplete.html">Enrich contacts with partner autocomplete</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_optimize_gamification"><a class="reference internal" href="../../applications/sales/crm/optimize/gamification.html">CRM Gamification</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_optimize_utilize_activities"><a class="reference internal" href="../../applications/sales/crm/optimize/utilize_activities.html">Utilize activities for sales teams</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_optimize_lead_enrichment"><a class="reference internal" href="../../applications/sales/crm/optimize/lead_enrichment.html">Lead enrichment</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_sales_sales"><a class="reference internal" href="../../applications/sales/sales.html">Sales</a><ul>
<li class="toctree-l4 o_menu_applications_sales_sales_send_quotations"><a class="reference internal" href="#">Send Quotations</a><ul>
<li class="toctree-l5 o_menu_applications_sales_sales_send_quotations_create_quotations"><a class="reference internal" href="../../applications/sales/sales/send_quotations/create_quotations.html">Create quotations</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_send_quotations_quote_template"><a class="reference internal" href="../../applications/sales/sales/send_quotations/quote_template.html">Quotation templates</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_send_quotations_optional_products"><a class="reference internal" href="../../applications/sales/sales/send_quotations/optional_products.html">Optional products</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_send_quotations_get_signature_to_validate"><a class="reference internal" href="../../applications/sales/sales/send_quotations/get_signature_to_validate.html">Online signatures for order confirmations</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_send_quotations_get_paid_to_validate"><a class="reference internal" href="../../applications/sales/sales/send_quotations/get_paid_to_validate.html">Online payment order confirmation</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_send_quotations_deadline"><a class="reference internal" href="../../applications/sales/sales/send_quotations/deadline.html">Quotation deadlines</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_send_quotations_different_addresses"><a class="reference internal" href="../../applications/sales/sales/send_quotations/different_addresses.html">Deliveries and invoices to different addresses</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_send_quotations_orders_and_variants"><a class="reference internal" href="../../applications/sales/sales/send_quotations/orders_and_variants.html">Product variants on quotations and sales orders</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_send_quotations_pdf_quote_builder"><a class="reference internal" href="../../applications/sales/sales/send_quotations/pdf_quote_builder.html">PDF quote builder</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_sales_invoicing"><a class="reference internal" href="#">Invoicing Method</a><ul>
<li class="toctree-l5 o_menu_applications_sales_sales_invoicing_invoicing_policy"><a class="reference internal" href="../../applications/sales/sales/invoicing/invoicing_policy.html">Invoice based on delivered or ordered quantities</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_invoicing_down_payment"><a class="reference internal" href="../../applications/sales/sales/invoicing/down_payment.html">Down payments</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_invoicing_proforma"><a class="reference internal" href="../../applications/sales/sales/invoicing/proforma.html">Pro-forma invoices</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_invoicing_time_materials"><a class="reference internal" href="../../applications/sales/sales/invoicing/time_materials.html">Invoicing based on time and materials</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_invoicing_milestone"><a class="reference internal" href="../../applications/sales/sales/invoicing/milestone.html">Invoice project milestones</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_invoicing_expense"><a class="reference internal" href="../../applications/sales/sales/invoicing/expense.html">Reinvoice expenses to customers</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_sales_products_prices"><a class="reference internal" href="#">Products &amp; Prices</a><ul>
<li class="toctree-l5 o_menu_applications_sales_sales_products_prices_products"><a class="reference internal" href="#">Manage your products</a><ul>
<li class="toctree-l6 o_menu_applications_sales_sales_products_prices_products_import"><a class="reference internal" href="../../applications/sales/sales/products_prices/products/import.html">Import products</a></li>
<li class="toctree-l6 o_menu_applications_sales_sales_products_prices_products_variants"><a class="reference internal" href="../../applications/sales/sales/products_prices/products/variants.html">Product variants</a></li>
<li class="toctree-l6 o_menu_applications_sales_sales_products_prices_products_product_images"><a class="reference internal" href="../../applications/sales/sales/products_prices/products/product_images.html">Product images with Google Images</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_sales_sales_products_prices_prices"><a class="reference internal" href="#">Manage your pricing</a><ul>
<li class="toctree-l6 o_menu_applications_sales_sales_products_prices_prices_pricing"><a class="reference internal" href="../../applications/sales/sales/products_prices/prices/pricing.html">Pricelists</a></li>
<li class="toctree-l6 o_menu_applications_sales_sales_products_prices_prices_currencies"><a class="reference internal" href="../../applications/sales/sales/products_prices/prices/currencies.html">Foreign currencies</a></li>
<li class="toctree-l6 o_menu_applications_sales_sales_products_prices_prices_discounts"><a class="reference internal" href="../../applications/sales/sales/products_prices/prices/discounts.html">Discounts</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_sales_sales_products_prices_returns"><a class="reference internal" href="../../applications/sales/sales/products_prices/returns.html">Returns and refunds</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_products_prices_ewallets_giftcards"><a class="reference internal" href="../../applications/sales/sales/products_prices/ewallets_giftcards.html">Use eWallets and gift cards</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_products_prices_loyalty_discount"><a class="reference internal" href="../../applications/sales/sales/products_prices/loyalty_discount.html">Discount and loyalty programs</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_sales_amazon_connector"><a class="reference internal" href="#">Amazon Connector</a><ul>
<li class="toctree-l5 o_menu_applications_sales_sales_amazon_connector_features"><a class="reference internal" href="../../applications/sales/sales/amazon_connector/features.html">Amazon Connector features</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_amazon_connector_setup"><a class="reference internal" href="../../applications/sales/sales/amazon_connector/setup.html">Amazon Connector configuration</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_amazon_connector_manage"><a class="reference internal" href="../../applications/sales/sales/amazon_connector/manage.html">Amazon order management</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_sales_shopee_connector"><a class="reference internal" href="../../applications/sales/sales/shopee_connector.html">Shopee Connector</a><ul>
<li class="toctree-l5 o_menu_applications_sales_sales_shopee_connector_setup"><a class="reference internal" href="../../applications/sales/sales/shopee_connector/setup.html">Shopee Connector configuration</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_shopee_connector_manage"><a class="reference internal" href="../../applications/sales/sales/shopee_connector/manage.html">Shopee order management</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_sales_gelato"><a class="reference internal" href="../../applications/sales/sales/gelato.html">Gelato</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_sales_point_of_sale"><a class="reference internal" href="../../applications/sales/point_of_sale.html">Point of Sale</a><ul>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_configuration"><a class="reference internal" href="../../applications/sales/point_of_sale/configuration.html">Configuration</a><ul>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_configuration_pos_iot"><a class="reference internal" href="../../applications/sales/point_of_sale/configuration/pos_iot.html">IoT system connection</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_configuration_epos_printers"><a class="reference internal" href="../../applications/sales/point_of_sale/configuration/epos_printers.html">ePOS printers</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_configuration_https"><a class="reference internal" href="../../applications/sales/point_of_sale/configuration/https.html">Secure connection (HTTPS)</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_configuration_epos_ssc"><a class="reference internal" href="../../applications/sales/point_of_sale/configuration/epos_ssc.html">Self-signed certificate for ePOS printers</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_employee_login"><a class="reference internal" href="../../applications/sales/point_of_sale/employee_login.html">Multi-employee management</a></li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_receipts_invoices"><a class="reference internal" href="../../applications/sales/point_of_sale/receipts_invoices.html">Receipts and invoices</a></li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_preparation"><a class="reference internal" href="../../applications/sales/point_of_sale/preparation.html">Preparation display</a></li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_combos"><a class="reference internal" href="../../applications/sales/point_of_sale/combos.html">Product combos</a></li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_shop"><a class="reference internal" href="#">Shop features</a><ul>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_shop_sales_order"><a class="reference internal" href="../../applications/sales/point_of_sale/shop/sales_order.html">Sales orders</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_shop_barcode"><a class="reference internal" href="../../applications/sales/point_of_sale/shop/barcode.html">Barcodes</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_shop_serial_numbers"><a class="reference internal" href="../../applications/sales/point_of_sale/shop/serial_numbers.html">Serial numbers and lots</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_shop_ship_later"><a class="reference internal" href="../../applications/sales/point_of_sale/shop/ship_later.html">Ship later</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_shop_customer_display"><a class="reference internal" href="../../applications/sales/point_of_sale/shop/customer_display.html">Customer display</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_restaurant"><a class="reference internal" href="../../applications/sales/point_of_sale/restaurant.html">Restaurant features</a><ul>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_restaurant_floors_tables"><a class="reference internal" href="../../applications/sales/point_of_sale/restaurant/floors_tables.html">Floors and tables</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_restaurant_kitchen_printing"><a class="reference internal" href="../../applications/sales/point_of_sale/restaurant/kitchen_printing.html">Orders printing</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_restaurant_bill_printing"><a class="reference internal" href="../../applications/sales/point_of_sale/restaurant/bill_printing.html">Bills</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_restaurant_tips"><a class="reference internal" href="../../applications/sales/point_of_sale/restaurant/tips.html">Tips</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_pricing"><a class="reference internal" href="#">Pricing features</a><ul>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_pricing_discounts"><a class="reference internal" href="../../applications/sales/point_of_sale/pricing/discounts.html">Discounts</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_pricing_discount_tags"><a class="reference internal" href="../../applications/sales/point_of_sale/pricing/discount_tags.html">Discount tags (barcode scanner)</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_pricing_loyalty"><a class="reference internal" href="../../applications/sales/point_of_sale/pricing/loyalty.html">Loyalty programs</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_pricing_pricelists"><a class="reference internal" href="../../applications/sales/point_of_sale/pricing/pricelists.html">Pricelists</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_pricing_fiscal_position"><a class="reference internal" href="../../applications/sales/point_of_sale/pricing/fiscal_position.html">Flexible taxes (fiscal positions)</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_pricing_cash_rounding"><a class="reference internal" href="../../applications/sales/point_of_sale/pricing/cash_rounding.html">Cash rounding</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_pricing_electronic_labels"><a class="reference internal" href="../../applications/sales/point_of_sale/pricing/electronic_labels.html">Electronic shelf labels</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_payment_methods"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods.html">Payment methods</a><ul>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_payment_methods_qr_code_payment"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/qr_code_payment.html">QR code payments</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_payment_methods_terminals"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/terminals.html">Payment terminals</a><ul>
<li class="toctree-l6 o_menu_applications_sales_point_of_sale_payment_methods_terminals_adyen"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/terminals/adyen.html">Adyen</a></li>
<li class="toctree-l6 o_menu_applications_sales_point_of_sale_payment_methods_terminals_ingenico"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/terminals/ingenico.html">Ingenico</a></li>
<li class="toctree-l6 o_menu_applications_sales_point_of_sale_payment_methods_terminals_mercado_pago"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/terminals/mercado_pago.html">Mercado Pago</a></li>
<li class="toctree-l6 o_menu_applications_sales_point_of_sale_payment_methods_terminals_razorpay"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/terminals/razorpay.html">Razorpay</a></li>
<li class="toctree-l6 o_menu_applications_sales_point_of_sale_payment_methods_terminals_six"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/terminals/six.html">SIX</a></li>
<li class="toctree-l6 o_menu_applications_sales_point_of_sale_payment_methods_terminals_stripe"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/terminals/stripe.html">Stripe</a></li>
<li class="toctree-l6 o_menu_applications_sales_point_of_sale_payment_methods_terminals_viva_wallet"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/terminals/viva_wallet.html">Viva Wallet</a></li>
<li class="toctree-l6 o_menu_applications_sales_point_of_sale_payment_methods_terminals_worldline"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/terminals/worldline.html">Worldline</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_pos_based_marketing"><a class="reference internal" href="../../applications/sales/point_of_sale/pos_based_marketing.html">Marketing features</a></li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_online_food_delivery"><a class="reference internal" href="../../applications/sales/point_of_sale/online_food_delivery.html">Online food delivery</a></li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_reporting"><a class="reference internal" href="../../applications/sales/point_of_sale/reporting.html">Reporting</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_sales_subscriptions"><a class="reference internal" href="../../applications/sales/subscriptions.html">Subscriptions</a><ul>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_products"><a class="reference internal" href="../../applications/sales/subscriptions/products.html">Subscription products</a></li>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_ecommerce"><a class="reference internal" href="../../applications/sales/subscriptions/ecommerce.html">Subscriptions in the eCommerce shop</a></li>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_plans"><a class="reference internal" href="../../applications/sales/subscriptions/plans.html">Subscription plans</a></li>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_upselling"><a class="reference internal" href="../../applications/sales/subscriptions/upselling.html">Upsell subscriptions</a></li>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_renewals"><a class="reference internal" href="../../applications/sales/subscriptions/renewals.html">Renew subscriptions</a></li>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_closing"><a class="reference internal" href="../../applications/sales/subscriptions/closing.html">Close subscriptions</a></li>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_automatic_alerts"><a class="reference internal" href="../../applications/sales/subscriptions/automatic_alerts.html">Automation rules</a></li>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_scheduled_actions"><a class="reference internal" href="../../applications/sales/subscriptions/scheduled_actions.html">Scheduled actions</a></li>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_reports"><a class="reference internal" href="../../applications/sales/subscriptions/reports.html">Subscription reports</a></li>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_payment_providers"><a class="reference internal" href="#">Payment providers</a><ul>
<li class="toctree-l5 o_menu_applications_sales_subscriptions_payment_providers_wire_transfer"><a class="reference internal" href="../../applications/sales/subscriptions/payment_providers/wire_transfer.html">Wire transfer</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_sales_rental"><a class="reference internal" href="../../applications/sales/rental.html">Rental</a></li>
<li class="toctree-l3 o_menu_applications_sales_members"><a class="reference internal" href="../../applications/sales/members.html">Members</a><ul>
<li class="toctree-l4 o_menu_applications_sales_members_members_analysis"><a class="reference internal" href="../../applications/sales/members/members_analysis.html">Members analysis</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_websites"><a class="reference internal" href="#">Websites</a><ul>
<li class="toctree-l3 o_menu_applications_websites_website"><a class="reference internal" href="../../applications/websites/website.html">Website</a><ul>
<li class="toctree-l4 o_menu_applications_websites_website_web_design"><a class="reference internal" href="#">Web design</a><ul>
<li class="toctree-l5 o_menu_applications_websites_website_web_design_building_blocks"><a class="reference internal" href="../../applications/websites/website/web_design/building_blocks.html">Building blocks</a><ul>
<li class="toctree-l6 o_menu_applications_websites_website_web_design_building_blocks_structure"><a class="reference internal" href="../../applications/websites/website/web_design/building_blocks/structure.html">Structure</a></li>
<li class="toctree-l6 o_menu_applications_websites_website_web_design_building_blocks_features"><a class="reference internal" href="../../applications/websites/website/web_design/building_blocks/features.html">Features</a></li>
<li class="toctree-l6 o_menu_applications_websites_website_web_design_building_blocks_dynamic_content"><a class="reference internal" href="../../applications/websites/website/web_design/building_blocks/dynamic_content.html">Dynamic content</a></li>
<li class="toctree-l6 o_menu_applications_websites_website_web_design_building_blocks_inner_content"><a class="reference internal" href="../../applications/websites/website/web_design/building_blocks/inner_content.html">Inner content</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_websites_website_web_design_themes"><a class="reference internal" href="../../applications/websites/website/web_design/themes.html">Website themes</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_websites_website_pages"><a class="reference internal" href="../../applications/websites/website/pages.html">Pages</a><ul>
<li class="toctree-l5 o_menu_applications_websites_website_pages_menus"><a class="reference internal" href="../../applications/websites/website/pages/menus.html">Menus</a></li>
<li class="toctree-l5 o_menu_applications_websites_website_pages_seo"><a class="reference internal" href="../../applications/websites/website/pages/seo.html">Search Engine Optimization (SEO)</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_websites_website_configuration"><a class="reference internal" href="#">Configuration</a><ul>
<li class="toctree-l5 o_menu_applications_websites_website_configuration_domain_names"><a class="reference internal" href="../../applications/websites/website/configuration/domain_names.html">Domain names</a></li>
<li class="toctree-l5 o_menu_applications_websites_website_configuration_address_autocomplete"><a class="reference internal" href="../../applications/websites/website/configuration/address_autocomplete.html">Address autocomplete</a></li>
<li class="toctree-l5 o_menu_applications_websites_website_configuration_google_search_console"><a class="reference internal" href="../../applications/websites/website/configuration/google_search_console.html">Google Search Console</a></li>
<li class="toctree-l5 o_menu_applications_websites_website_configuration_cookies_bar"><a class="reference internal" href="../../applications/websites/website/configuration/cookies_bar.html">Cookies bar</a></li>
<li class="toctree-l5 o_menu_applications_websites_website_configuration_translate"><a class="reference internal" href="../../applications/websites/website/configuration/translate.html">Translations</a></li>
<li class="toctree-l5 o_menu_applications_websites_website_configuration_multi_website"><a class="reference internal" href="../../applications/websites/website/configuration/multi_website.html">Multiple websites</a></li>
<li class="toctree-l5 o_menu_applications_websites_website_configuration_spam_protection"><a class="reference internal" href="../../applications/websites/website/configuration/spam_protection.html">Forms spam protection</a></li>
<li class="toctree-l5 o_menu_applications_websites_website_configuration_cdn"><a class="reference internal" href="../../applications/websites/website/configuration/cdn.html">Set up a content delivery network (CDN)</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_websites_website_reporting"><a class="reference internal" href="#">Reporting</a><ul>
<li class="toctree-l5 o_menu_applications_websites_website_reporting_analytics"><a class="reference internal" href="../../applications/websites/website/reporting/analytics.html">Website analytics</a></li>
<li class="toctree-l5 o_menu_applications_websites_website_reporting_link_tracker"><a class="reference internal" href="../../applications/websites/website/reporting/link_tracker.html">Link tracker</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_websites_website_mail_groups"><a class="reference internal" href="../../applications/websites/website/mail_groups.html">Mail groups</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_websites_ecommerce"><a class="reference internal" href="../../applications/websites/ecommerce.html">eCommerce</a><ul>
<li class="toctree-l4 o_menu_applications_websites_ecommerce_products"><a class="reference internal" href="../../applications/websites/ecommerce/products.html">Products</a><ul>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_products_catalog"><a class="reference internal" href="../../applications/websites/ecommerce/products/catalog.html">Catalog</a></li>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_products_price_management"><a class="reference internal" href="../../applications/websites/ecommerce/products/price_management.html">Price management</a></li>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_products_cross_upselling"><a class="reference internal" href="../../applications/websites/ecommerce/products/cross_upselling.html">Cross-selling and upselling</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_websites_ecommerce_checkout_payment_shipping"><a class="reference internal" href="#">Checkout, payment, and delivery</a><ul>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_checkout_payment_shipping_cart"><a class="reference internal" href="../../applications/websites/ecommerce/checkout_payment_shipping/cart.html">Add to cart</a></li>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_checkout_payment_shipping_checkout"><a class="reference internal" href="../../applications/websites/ecommerce/checkout_payment_shipping/checkout.html">Checkout</a></li>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_checkout_payment_shipping_shipping"><a class="reference internal" href="../../applications/websites/ecommerce/checkout_payment_shipping/shipping.html">Delivery</a></li>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_checkout_payment_shipping_payments"><a class="reference internal" href="../../applications/websites/ecommerce/checkout_payment_shipping/payments.html">Payment providers</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_websites_ecommerce_ecommerce_management"><a class="reference internal" href="#">eCommerce management</a><ul>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_ecommerce_management_order_handling"><a class="reference internal" href="../../applications/websites/ecommerce/ecommerce_management/order_handling.html">Order handling</a></li>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_ecommerce_management_customer_accounts"><a class="reference internal" href="../../applications/websites/ecommerce/ecommerce_management/customer_accounts.html">Customer accounts</a></li>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_ecommerce_management_customer_interaction"><a class="reference internal" href="../../applications/websites/ecommerce/ecommerce_management/customer_interaction.html">Customer interaction</a></li>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_ecommerce_management_performance"><a class="reference internal" href="../../applications/websites/ecommerce/ecommerce_management/performance.html">Performance monitoring</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_websites_elearning"><a class="reference internal" href="../../applications/websites/elearning.html">eLearning</a></li>
<li class="toctree-l3 o_menu_applications_websites_forum"><a class="reference internal" href="../../applications/websites/forum.html">Forum</a></li>
<li class="toctree-l3 o_menu_applications_websites_blog"><a class="reference internal" href="../../applications/websites/blog.html">Blog</a></li>
<li class="toctree-l3 o_menu_applications_websites_livechat"><a class="reference internal" href="../../applications/websites/livechat.html">Live Chat</a><ul>
<li class="toctree-l4 o_menu_applications_websites_livechat_ratings"><a class="reference internal" href="../../applications/websites/livechat/ratings.html">Ratings</a></li>
<li class="toctree-l4 o_menu_applications_websites_livechat_responses"><a class="reference internal" href="../../applications/websites/livechat/responses.html">Commands and canned responses</a></li>
<li class="toctree-l4 o_menu_applications_websites_livechat_chatbots"><a class="reference internal" href="../../applications/websites/livechat/chatbots.html">Chatbots</a></li>
<li class="toctree-l4 o_menu_applications_websites_livechat_reports"><a class="reference internal" href="../../applications/websites/livechat/reports.html">Reports</a></li>
<li class="toctree-l4 o_menu_applications_websites_livechat_participate"><a class="reference internal" href="../../applications/websites/livechat/participate.html">Participate in live chat</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_inventory_and_mrp"><a class="reference internal" href="#">Supply Chain</a><ul>
<li class="toctree-l3 o_menu_applications_inventory_and_mrp_inventory"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory.html">Inventory</a><ul>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_inventory_product_management"><a class="reference internal" href="#">Product management</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_product_management_configure"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/configure.html">Configure product</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_configure_type"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/configure/type.html">Product type</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_configure_uom"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/configure/uom.html">Units of measure</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_configure_package"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/configure/package.html">Packages</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_configure_packaging"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/configure/packaging.html">Packaging</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_product_management_product_tracking"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/product_tracking.html">Product tracking</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_product_tracking_serial_numbers"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/product_tracking/serial_numbers.html">Serial numbers</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_product_tracking_lots"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.html">Lot numbers</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_product_tracking_reassign"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/product_tracking/reassign.html">Reassign lot/serial numbers</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_product_tracking_expiration_dates"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/product_tracking/expiration_dates.html">Expiration dates</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_product_management_inventory_valuation"><a class="reference internal" href="#">Inventory valuation</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_inventory_valuation_inventory_valuation_config"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config.html">Automatic inventory valuation</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_inventory_valuation_using_inventory_valuation"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/inventory_valuation/using_inventory_valuation.html">Using inventory valuation</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_inventory_valuation_landed_costs"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/inventory_valuation/landed_costs.html">Landed costs</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_inventory_valuation_valuation_by_lots"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.html">Valuation by lots/serial numbers</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage"><a class="reference internal" href="#">Warehouses and storage</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_inventory_management"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management.html">Inventory management</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_inventory_management_warehouses"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses.html">Warehouses</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_inventory_management_use_locations"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations.html">Locations</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_inventory_management_count_products"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/count_products.html">Inventory adjustments</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_inventory_management_cycle_counts"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/cycle_counts.html">Cycle counts</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_inventory_management_scrap_inventory"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/scrap_inventory.html">Scrap inventory</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_inventory_management_product_catalog"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/product_catalog.html">Product catalog</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_replenishment"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.html">Replenishment</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_replenishment_mto"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.html">Replenish on order (MTO)</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_replenishment_reordering_rules"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules.html">Reordering rules</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_replenishment_report"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/report.html">Replenishment report</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_replenishment_lead_times"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/lead_times.html">Lead times</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_replenishment_resupply_warehouses"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses.html">Inter-warehouse replenishment</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_reporting"><a class="reference internal" href="#">Reporting</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_reporting_stock"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/reporting/stock.html">Stock report</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_reporting_locations"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/reporting/locations.html">Locations dashboard</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_reporting_moves_history"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/reporting/moves_history.html">Moves history dashboard</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_reporting_aging"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/reporting/aging.html">Stock valuation dashboard</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving"><a class="reference internal" href="#">Shipping and receiving</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations.html">Inbound and outbound flows</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_use_routes"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/use_routes.html">Routes and push/pull rules</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_receipts_delivery_one_step"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/receipts_delivery_one_step.html">One-step receipt and delivery</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_receipts_delivery_two_steps"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/receipts_delivery_two_steps.html">Two-step receipt and delivery</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_receipts_three_steps"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/receipts_three_steps.html">Three-step receipt</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_delivery_three_steps"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/delivery_three_steps.html">Three-step delivery</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_putaway"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/putaway.html">Putaway rules</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_storage_category"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category.html">Storage categories</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_cross_dock"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/cross_dock.html">Organize a cross-dock in a warehouse</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_stock_warehouses"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/stock_warehouses.html">Sell stock from multiple warehouses using virtual locations</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_owned_stock"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/owned_stock.html">Consignment: buy and sell stock without owning it</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_dropshipping"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/dropshipping.html">Dropshipping</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration.html">Delivery methods</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_new_delivery_method"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/new_delivery_method.html">Add a new delivery method</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_third_party_shipper"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/third_party_shipper.html">Third-party shipping carriers</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_labels"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/labels.html">Print shipping labels</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_bpost"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/bpost.html">Bpost integration</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_dhl_credentials"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/dhl_credentials.html">DHL integration</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_fedex"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/fedex.html">FedEx integration</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_sendcloud_shipping"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.html">Sendcloud integration</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_starshipit_shipping"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/starshipit_shipping.html">Starshipit shipping</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_ups_credentials"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/ups_credentials.html">UPS integration</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_zebra"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/zebra.html">Zebra label configuration</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_cancel"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/cancel.html">How to cancel a shipping request to a shipper?</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_invoicing"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/invoicing.html">Shipping cost invoicing</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_label_type"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/label_type.html">Change shipping label size</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_multipack"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/multipack.html">Multi-package shipments</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_print_on_validation"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/print_on_validation.html">Printable delivery PDFs</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_dispatch"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/dispatch.html">Dispatch management system</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_reservation_methods"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/reservation_methods.html">Reservation methods</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_reservation_methods_at_confirmation"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/reservation_methods/at_confirmation.html">At confirmation reservation</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_reservation_methods_manually"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/reservation_methods/manually.html">Manual reservation</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_reservation_methods_before_scheduled_date"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/reservation_methods/before_scheduled_date.html">Before scheduled date reservation</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_picking_methods"><a class="reference internal" href="#">Picking methods</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_picking_methods_batch"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/picking_methods/batch.html">Batch picking</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_picking_methods_cluster"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/picking_methods/cluster.html">Cluster picking</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_picking_methods_wave"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/picking_methods/wave.html">Wave transfers</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_removal_strategies"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies.html">Removal strategies</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_removal_strategies_fifo"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fifo.html">FIFO removal</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_removal_strategies_lifo"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/lifo.html">LIFO removal</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_removal_strategies_fefo"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo.html">FEFO removal</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_removal_strategies_closest_location"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/closest_location.html">Closest location removal</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_removal_strategies_least_packages"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/least_packages.html">Least packages removal</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_inventory_and_mrp_manufacturing"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing.html">Manufacturing</a><ul>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_manufacturing_basic_setup"><a class="reference internal" href="#">Basic setup</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_basic_setup_configure_manufacturing_product"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/basic_setup/configure_manufacturing_product.html">Manufacturing product configuration</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_basic_setup_bill_configuration"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration.html">Bill of materials</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_basic_setup_one_step_manufacturing"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/basic_setup/one_step_manufacturing.html">One-step manufacturing</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_basic_setup_two_step_manufacturing"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/basic_setup/two_step_manufacturing.html">Two-step manufacturing</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_basic_setup_three_step_manufacturing"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/basic_setup/three_step_manufacturing.html">Three-step manufacturing</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_basic_setup_mo_costs"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/basic_setup/mo_costs.html">Manufacturing order costs</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_manufacturing_advanced_configuration"><a class="reference internal" href="#">Advanced configuration</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_advanced_configuration_product_variants"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/advanced_configuration/product_variants.html">Managing BoMs for product variants</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_advanced_configuration_kit_shipping"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/advanced_configuration/kit_shipping.html">Use kits</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_advanced_configuration_sub_assemblies"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/advanced_configuration/sub_assemblies.html">Manage semi-finished products</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_advanced_configuration_using_work_centers"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/advanced_configuration/using_work_centers.html">Manage work orders using work centers</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_advanced_configuration_work_order_dependencies"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/advanced_configuration/work_order_dependencies.html">Work order dependencies</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_manufacturing_workflows"><a class="reference internal" href="#">Workflows</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_workflows_use_mps"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/workflows/use_mps.html">Master production schedule</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_workflows_work_center_time_off"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/workflows/work_center_time_off.html">Work center time off</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_workflows_scrap_manufacturing"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/workflows/scrap_manufacturing.html">Scrap during manufacturing</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_workflows_manufacturing_backorders"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/workflows/manufacturing_backorders.html">Manufacturing backorders</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_workflows_split_merge"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/workflows/split_merge.html">Split and merge manufacturing orders</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_workflows_unbuild_orders"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/workflows/unbuild_orders.html">Unbuild orders</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_workflows_byproducts"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/workflows/byproducts.html">By-Products</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_workflows_continuous_improvement"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/workflows/continuous_improvement.html">Continuous product improvement</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_workflows_manufacture_lots_serials"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/workflows/manufacture_lots_serials.html">Manufacture with lots and serial numbers</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_manufacturing_shop_floor"><a class="reference internal" href="#">Shop Floor</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_shop_floor_shop_floor_overview"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.html">Shop Floor overview</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_shop_floor_shop_floor_tracking"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_tracking.html">Shop Floor time tracking</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_manufacturing_subcontracting"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/subcontracting.html">Subcontracting</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_subcontracting_subcontracting_basic"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/subcontracting/subcontracting_basic.html">Basic subcontracting</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_subcontracting_basic_subcontracting_lead_times"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/subcontracting/basic_subcontracting_lead_times.html">Basic subcontracting lead times</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_subcontracting_subcontracting_resupply"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/subcontracting/subcontracting_resupply.html">Resupply subcontractor</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_subcontracting_resupply_subcontracting_lead_times"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/subcontracting/resupply_subcontracting_lead_times.html">Resupply subcontracting lead times</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_subcontracting_subcontracting_dropship"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/subcontracting/subcontracting_dropship.html">Dropship to subcontractor</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_subcontracting_dropship_subcontracting_lead_times"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/subcontracting/dropship_subcontracting_lead_times.html">Dropship subcontracting lead times</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_manufacturing_reporting"><a class="reference internal" href="#">Reporting</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_reporting_allocation"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/reporting/allocation.html">Allocation reports</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_reporting_oee"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/reporting/oee.html">Overall equipment effectiveness</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_reporting_production_analysis"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/reporting/production_analysis.html">Production analysis</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_inventory_and_mrp_purchase"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase.html">Purchase</a><ul>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_purchase_products"><a class="reference internal" href="#">Products</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_products_pricelist"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/products/pricelist.html">Import vendor pricelist</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_products_reordering"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/products/reordering.html">Configure reordering rules</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_products_temporary_reordering"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/products/temporary_reordering.html">Temporary reordering rules</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_products_uom"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/products/uom.html">Purchase units of measure</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_purchase_manage_deals"><a class="reference internal" href="#">Manage deals</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_manage_deals_rfq"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/manage_deals/rfq.html">Requests for quotation</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_manage_deals_blanket_orders"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/manage_deals/blanket_orders.html">Blanket orders</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_manage_deals_calls_for_tenders"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders.html">Call for tenders</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_manage_deals_purchase_templates"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/manage_deals/purchase_templates.html">Purchase templates</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_manage_deals_control_bills"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/manage_deals/control_bills.html">Bill control policies</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_manage_deals_manage"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/manage_deals/manage.html">Manage vendor bills</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_purchase_advanced"><a class="reference internal" href="#">Advanced</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_advanced_analyze"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/advanced/analyze.html">Purchase Analysis report</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_advanced_vendor_costs_report"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/advanced/vendor_costs_report.html">Vendor costs report</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_advanced_procurement_expenses_report"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/advanced/procurement_expenses_report.html">Procurement expenses report</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_inventory_and_mrp_barcode"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode.html">Barcode</a><ul>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_barcode_setup"><a class="reference internal" href="#">Setup</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_setup_device_troubleshooting"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/setup/device_troubleshooting.html">Barcode device troubleshooting</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_setup_hardware"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/setup/hardware.html">Barcode scanner setup</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_setup_software"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/setup/software.html">Activate the Barcodes in Odoo</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_barcode_operations"><a class="reference internal" href="#">Daily operations</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_operations_adjustments"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/operations/adjustments.html">Apply inventory adjustments with barcodes</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_operations_receipts_deliveries"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/operations/receipts_deliveries.html">Process receipts and deliveries with barcodes</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_operations_process_transfers"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/operations/process_transfers.html">Process batch transfers</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_operations_transfers_scratch"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/operations/transfers_scratch.html">Create and process transfers with barcodes</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_operations_barcode_nomenclature"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/operations/barcode_nomenclature.html">Default barcode nomenclature</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_operations_gs1_nomenclature"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.html">GS1 barcode nomenclature</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_operations_gs1_usage"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/operations/gs1_usage.html">GS1 barcode usage</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_inventory_and_mrp_quality"><a class="reference internal" href="../../applications/inventory_and_mrp/quality.html">Quality</a><ul>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_quality_quality_management"><a class="reference internal" href="#">Quality control basics</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_quality_quality_management_quality_control_points"><a class="reference internal" href="../../applications/inventory_and_mrp/quality/quality_management/quality_control_points.html">Quality control points</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_quality_quality_management_quality_alerts"><a class="reference internal" href="../../applications/inventory_and_mrp/quality/quality_management/quality_alerts.html">Quality alerts</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_quality_quality_management_quality_checks"><a class="reference internal" href="../../applications/inventory_and_mrp/quality/quality_management/quality_checks.html">Quality checks</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_quality_quality_management_failure_locations"><a class="reference internal" href="../../applications/inventory_and_mrp/quality/quality_management/failure_locations.html">Failure locations</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_quality_quality_check_types"><a class="reference internal" href="#">Quality check types</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_quality_quality_check_types_instructions_check"><a class="reference internal" href="../../applications/inventory_and_mrp/quality/quality_check_types/instructions_check.html">Instructions quality check</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_quality_quality_check_types_pass_fail_check"><a class="reference internal" href="../../applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.html">Pass - Fail quality check</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_quality_quality_check_types_measure_check"><a class="reference internal" href="../../applications/inventory_and_mrp/quality/quality_check_types/measure_check.html">Measure quality check</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_quality_quality_check_types_picture_check"><a class="reference internal" href="../../applications/inventory_and_mrp/quality/quality_check_types/picture_check.html">Take a Picture quality check</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_inventory_and_mrp_maintenance"><a class="reference internal" href="../../applications/inventory_and_mrp/maintenance.html">Maintenance</a><ul>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_maintenance_add_new_equipment"><a class="reference internal" href="../../applications/inventory_and_mrp/maintenance/add_new_equipment.html">Add new equipment</a></li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_maintenance_maintenance_calendar"><a class="reference internal" href="../../applications/inventory_and_mrp/maintenance/maintenance_calendar.html">Maintenance calendar</a></li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_maintenance_maintenance_requests"><a class="reference internal" href="../../applications/inventory_and_mrp/maintenance/maintenance_requests.html">Maintenance requests</a></li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_maintenance_maintenance_setup"><a class="reference internal" href="../../applications/inventory_and_mrp/maintenance/maintenance_setup.html">Maintenance setup</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_inventory_and_mrp_plm"><a class="reference internal" href="../../applications/inventory_and_mrp/plm.html">Product lifecycle management</a><ul>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_plm_manage_changes"><a class="reference internal" href="#">Change management</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_plm_manage_changes_engineering_change_orders"><a class="reference internal" href="../../applications/inventory_and_mrp/plm/manage_changes/engineering_change_orders.html">Engineering change orders</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_plm_manage_changes_eco_type"><a class="reference internal" href="../../applications/inventory_and_mrp/plm/manage_changes/eco_type.html">ECO type</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_plm_manage_changes_version_control"><a class="reference internal" href="../../applications/inventory_and_mrp/plm/manage_changes/version_control.html">Version control</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_plm_management"><a class="reference internal" href="#">Project management</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_plm_management_approvals"><a class="reference internal" href="../../applications/inventory_and_mrp/plm/management/approvals.html">Approvals</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_inventory_and_mrp_repairs"><a class="reference internal" href="../../applications/inventory_and_mrp/repairs.html">Repairs</a><ul>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_repairs_repair_orders"><a class="reference internal" href="../../applications/inventory_and_mrp/repairs/repair_orders.html">Process repair orders</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_hr"><a class="reference internal" href="#">Human resources</a><ul>
<li class="toctree-l3 o_menu_applications_hr_attendances"><a class="reference internal" href="../../applications/hr/attendances.html">Attendances</a><ul>
<li class="toctree-l4 o_menu_applications_hr_attendances_check_in_check_out"><a class="reference internal" href="../../applications/hr/attendances/check_in_check_out.html">Check in and out</a></li>
<li class="toctree-l4 o_menu_applications_hr_attendances_kiosks"><a class="reference internal" href="../../applications/hr/attendances/kiosks.html">Kiosks</a></li>
<li class="toctree-l4 o_menu_applications_hr_attendances_hardware"><a class="reference internal" href="../../applications/hr/attendances/hardware.html">Hardware</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_hr_employees"><a class="reference internal" href="../../applications/hr/employees.html">Employees</a><ul>
<li class="toctree-l4 o_menu_applications_hr_employees_new_employee"><a class="reference internal" href="../../applications/hr/employees/new_employee.html">New employees</a></li>
<li class="toctree-l4 o_menu_applications_hr_employees_departments"><a class="reference internal" href="../../applications/hr/employees/departments.html">Departments</a></li>
<li class="toctree-l4 o_menu_applications_hr_employees_certifications"><a class="reference internal" href="../../applications/hr/employees/certifications.html">Certifications</a></li>
<li class="toctree-l4 o_menu_applications_hr_employees_offboarding"><a class="reference internal" href="../../applications/hr/employees/offboarding.html">Offboarding</a></li>
<li class="toctree-l4 o_menu_applications_hr_employees_retention_report"><a class="reference internal" href="../../applications/hr/employees/retention_report.html">Employee retention report</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_hr_appraisals"><a class="reference internal" href="../../applications/hr/appraisals.html">Appraisals</a><ul>
<li class="toctree-l4 o_menu_applications_hr_appraisals_new_appraisals"><a class="reference internal" href="../../applications/hr/appraisals/new_appraisals.html">New appraisals</a></li>
<li class="toctree-l4 o_menu_applications_hr_appraisals_goals"><a class="reference internal" href="../../applications/hr/appraisals/goals.html">Goals</a></li>
<li class="toctree-l4 o_menu_applications_hr_appraisals_appraisal_analysis"><a class="reference internal" href="../../applications/hr/appraisals/appraisal_analysis.html">Appraisal analysis</a></li>
<li class="toctree-l4 o_menu_applications_hr_appraisals_skills_evolution"><a class="reference internal" href="../../applications/hr/appraisals/skills_evolution.html">Skills evolution</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_hr_frontdesk"><a class="reference internal" href="../../applications/hr/frontdesk.html">Frontdesk</a><ul>
<li class="toctree-l4 o_menu_applications_hr_frontdesk_visitors"><a class="reference internal" href="../../applications/hr/frontdesk/visitors.html">Visitors</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_hr_fleet"><a class="reference internal" href="../../applications/hr/fleet.html">Fleet</a><ul>
<li class="toctree-l4 o_menu_applications_hr_fleet_models"><a class="reference internal" href="../../applications/hr/fleet/models.html">Vehicle models</a></li>
<li class="toctree-l4 o_menu_applications_hr_fleet_new_vehicle"><a class="reference internal" href="../../applications/hr/fleet/new_vehicle.html">New vehicles</a></li>
<li class="toctree-l4 o_menu_applications_hr_fleet_service"><a class="reference internal" href="../../applications/hr/fleet/service.html">Services</a></li>
<li class="toctree-l4 o_menu_applications_hr_fleet_accidents"><a class="reference internal" href="../../applications/hr/fleet/accidents.html">Accidents</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_hr_payroll"><a class="reference internal" href="../../applications/hr/payroll.html">Payroll</a><ul>
<li class="toctree-l4 o_menu_applications_hr_payroll_contracts"><a class="reference internal" href="../../applications/hr/payroll/contracts.html">Contracts</a></li>
<li class="toctree-l4 o_menu_applications_hr_payroll_work_entries"><a class="reference internal" href="../../applications/hr/payroll/work_entries.html">Work entries</a></li>
<li class="toctree-l4 o_menu_applications_hr_payroll_salary_attachments"><a class="reference internal" href="../../applications/hr/payroll/salary_attachments.html">Salary attachments</a></li>
<li class="toctree-l4 o_menu_applications_hr_payroll_payslips"><a class="reference internal" href="../../applications/hr/payroll/payslips.html">Payslips</a></li>
<li class="toctree-l4 o_menu_applications_hr_payroll_reporting"><a class="reference internal" href="../../applications/hr/payroll/reporting.html">Reporting</a></li>
<li class="toctree-l4 o_menu_applications_hr_payroll_work_entry_analysis"><a class="reference internal" href="../../applications/hr/payroll/work_entry_analysis.html">Work entry analysis</a></li>
<li class="toctree-l4 o_menu_applications_hr_payroll_salary_attachment"><a class="reference internal" href="../../applications/hr/payroll/salary_attachment.html">Salary attachment report</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_hr_time_off"><a class="reference internal" href="../../applications/hr/time_off.html">Time Off</a><ul>
<li class="toctree-l4 o_menu_applications_hr_time_off_allocations"><a class="reference internal" href="../../applications/hr/time_off/allocations.html">Allocations</a></li>
<li class="toctree-l4 o_menu_applications_hr_time_off_request_time_off"><a class="reference internal" href="../../applications/hr/time_off/request_time_off.html">Request time off</a></li>
<li class="toctree-l4 o_menu_applications_hr_time_off_my_time"><a class="reference internal" href="../../applications/hr/time_off/my_time.html">My time</a></li>
<li class="toctree-l4 o_menu_applications_hr_time_off_management"><a class="reference internal" href="../../applications/hr/time_off/management.html">Management</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_hr_recruitment"><a class="reference internal" href="../../applications/hr/recruitment.html">Recruitment</a><ul>
<li class="toctree-l4 o_menu_applications_hr_recruitment_new_job"><a class="reference internal" href="../../applications/hr/recruitment/new_job.html">Job positions</a></li>
<li class="toctree-l4 o_menu_applications_hr_recruitment_recruitment-flow"><a class="reference internal" href="../../applications/hr/recruitment/recruitment-flow.html">Recruitment flow</a></li>
<li class="toctree-l4 o_menu_applications_hr_recruitment_add-new-applicants"><a class="reference internal" href="../../applications/hr/recruitment/add-new-applicants.html">Add new applicants</a></li>
<li class="toctree-l4 o_menu_applications_hr_recruitment_schedule_interviews"><a class="reference internal" href="../../applications/hr/recruitment/schedule_interviews.html">Schedule interviews</a></li>
<li class="toctree-l4 o_menu_applications_hr_recruitment_offer_job_positions"><a class="reference internal" href="../../applications/hr/recruitment/offer_job_positions.html">Offer job positions</a></li>
<li class="toctree-l4 o_menu_applications_hr_recruitment_refuse_applicant"><a class="reference internal" href="../../applications/hr/recruitment/refuse_applicant.html">Refuse applicants</a></li>
<li class="toctree-l4 o_menu_applications_hr_recruitment_source_analysis"><a class="reference internal" href="../../applications/hr/recruitment/source_analysis.html">Source analysis reporting</a></li>
<li class="toctree-l4 o_menu_applications_hr_recruitment_recruitment_analysis"><a class="reference internal" href="../../applications/hr/recruitment/recruitment_analysis.html">Recruitment analysis</a></li>
<li class="toctree-l4 o_menu_applications_hr_recruitment_time_in_stage"><a class="reference internal" href="../../applications/hr/recruitment/time_in_stage.html">Time in stage analysis</a></li>
<li class="toctree-l4 o_menu_applications_hr_recruitment_team_performance"><a class="reference internal" href="../../applications/hr/recruitment/team_performance.html">Team performance reporting</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_hr_referrals"><a class="reference internal" href="../../applications/hr/referrals.html">Referrals</a><ul>
<li class="toctree-l4 o_menu_applications_hr_referrals_share_jobs"><a class="reference internal" href="../../applications/hr/referrals/share_jobs.html">Share job positions</a></li>
<li class="toctree-l4 o_menu_applications_hr_referrals_points"><a class="reference internal" href="../../applications/hr/referrals/points.html">Referral points</a></li>
<li class="toctree-l4 o_menu_applications_hr_referrals_rewards"><a class="reference internal" href="../../applications/hr/referrals/rewards.html">Rewards</a></li>
<li class="toctree-l4 o_menu_applications_hr_referrals_alerts"><a class="reference internal" href="../../applications/hr/referrals/alerts.html">Alerts</a></li>
<li class="toctree-l4 o_menu_applications_hr_referrals_reporting"><a class="reference internal" href="../../applications/hr/referrals/reporting.html">Reporting</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_hr_lunch"><a class="reference internal" href="../../applications/hr/lunch.html">Lunch</a><ul>
<li class="toctree-l4 o_menu_applications_hr_lunch_vendors"><a class="reference internal" href="../../applications/hr/lunch/vendors.html">Vendors</a></li>
<li class="toctree-l4 o_menu_applications_hr_lunch_products"><a class="reference internal" href="../../applications/hr/lunch/products.html">Products</a></li>
<li class="toctree-l4 o_menu_applications_hr_lunch_orders"><a class="reference internal" href="../../applications/hr/lunch/orders.html">Orders</a></li>
<li class="toctree-l4 o_menu_applications_hr_lunch_user-accounts"><a class="reference internal" href="../../applications/hr/lunch/user-accounts.html">Manage user accounts</a></li>
<li class="toctree-l4 o_menu_applications_hr_lunch_management"><a class="reference internal" href="../../applications/hr/lunch/management.html">Lunch management</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_marketing"><a class="reference internal" href="#">Marketing</a><ul>
<li class="toctree-l3 o_menu_applications_marketing_email_marketing"><a class="reference internal" href="../../applications/marketing/email_marketing.html">Email Marketing</a><ul>
<li class="toctree-l4 o_menu_applications_marketing_email_marketing_mailing_lists"><a class="reference internal" href="../../applications/marketing/email_marketing/mailing_lists.html">Mailing lists</a></li>
<li class="toctree-l4 o_menu_applications_marketing_email_marketing_unsubscriptions"><a class="reference internal" href="../../applications/marketing/email_marketing/unsubscriptions.html">Manage unsubscriptions (blacklist)</a></li>
<li class="toctree-l4 o_menu_applications_marketing_email_marketing_lost_leads_email"><a class="reference internal" href="../../applications/marketing/email_marketing/lost_leads_email.html">Lost leads reactivation email</a></li>
<li class="toctree-l4 o_menu_applications_marketing_email_marketing_analyze_metrics"><a class="reference internal" href="../../applications/marketing/email_marketing/analyze_metrics.html">Analyze metrics</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_marketing_marketing_automation"><a class="reference internal" href="../../applications/marketing/marketing_automation.html">Marketing Automation</a><ul>
<li class="toctree-l4 o_menu_applications_marketing_marketing_automation_target_audience"><a class="reference internal" href="../../applications/marketing/marketing_automation/target_audience.html">Audience targeting</a></li>
<li class="toctree-l4 o_menu_applications_marketing_marketing_automation_workflow_activities"><a class="reference internal" href="../../applications/marketing/marketing_automation/workflow_activities.html">Campaign workflow activities</a></li>
<li class="toctree-l4 o_menu_applications_marketing_marketing_automation_testing_running"><a class="reference internal" href="../../applications/marketing/marketing_automation/testing_running.html">Testing/running campaigns</a></li>
<li class="toctree-l4 o_menu_applications_marketing_marketing_automation_understanding_metrics"><a class="reference internal" href="../../applications/marketing/marketing_automation/understanding_metrics.html">Campaign metrics</a></li>
<li class="toctree-l4 o_menu_applications_marketing_marketing_automation_campaign_templates"><a class="reference internal" href="#">Campaign templates</a><ul>
<li class="toctree-l5 o_menu_applications_marketing_marketing_automation_campaign_templates_double_optin"><a class="reference internal" href="../../applications/marketing/marketing_automation/campaign_templates/double_optin.html">Double Opt-in</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_marketing_sms_marketing"><a class="reference internal" href="../../applications/marketing/sms_marketing.html">SMS Marketing</a><ul>
<li class="toctree-l4 o_menu_applications_marketing_sms_marketing_create_sms"><a class="reference internal" href="../../applications/marketing/sms_marketing/create_sms.html">Create SMS messages</a></li>
<li class="toctree-l4 o_menu_applications_marketing_sms_marketing_sms_analysis"><a class="reference internal" href="../../applications/marketing/sms_marketing/sms_analysis.html">SMS analysis</a></li>
<li class="toctree-l4 o_menu_applications_marketing_sms_marketing_marketing_campaigns"><a class="reference internal" href="../../applications/marketing/sms_marketing/marketing_campaigns.html">SMS campaign settings</a></li>
<li class="toctree-l4 o_menu_applications_marketing_sms_marketing_mailing_lists_blacklists"><a class="reference internal" href="../../applications/marketing/sms_marketing/mailing_lists_blacklists.html">Mailing lists and blacklists</a></li>
<li class="toctree-l4 o_menu_applications_marketing_sms_marketing_pricing_and_faq"><a class="reference internal" href="../../applications/marketing/sms_marketing/pricing_and_faq.html">SMS Pricing and FAQ</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_marketing_events"><a class="reference internal" href="../../applications/marketing/events.html">Events</a><ul>
<li class="toctree-l4 o_menu_applications_marketing_events_create_events"><a class="reference internal" href="../../applications/marketing/events/create_events.html">Create events</a></li>
<li class="toctree-l4 o_menu_applications_marketing_events_sell_tickets"><a class="reference internal" href="../../applications/marketing/events/sell_tickets.html">Sell event tickets</a></li>
<li class="toctree-l4 o_menu_applications_marketing_events_track_manage_talks"><a class="reference internal" href="../../applications/marketing/events/track_manage_talks.html">Talks, proposals, and agenda</a></li>
<li class="toctree-l4 o_menu_applications_marketing_events_event_templates"><a class="reference internal" href="../../applications/marketing/events/event_templates.html">Event templates</a></li>
<li class="toctree-l4 o_menu_applications_marketing_events_event_booths"><a class="reference internal" href="../../applications/marketing/events/event_booths.html">Event booths</a></li>
<li class="toctree-l4 o_menu_applications_marketing_events_event_tracks"><a class="reference internal" href="../../applications/marketing/events/event_tracks.html">Event tracks</a></li>
<li class="toctree-l4 o_menu_applications_marketing_events_registration_desk"><a class="reference internal" href="../../applications/marketing/events/registration_desk.html">Registration Desk</a></li>
<li class="toctree-l4 o_menu_applications_marketing_events_revenues_report"><a class="reference internal" href="../../applications/marketing/events/revenues_report.html">Revenues report</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_marketing_surveys"><a class="reference internal" href="../../applications/marketing/surveys.html">Surveys</a><ul>
<li class="toctree-l4 o_menu_applications_marketing_surveys_create"><a class="reference internal" href="../../applications/marketing/surveys/create.html">Create surveys</a></li>
<li class="toctree-l4 o_menu_applications_marketing_surveys_scoring"><a class="reference internal" href="../../applications/marketing/surveys/scoring.html">Scoring surveys</a></li>
<li class="toctree-l4 o_menu_applications_marketing_surveys_questions"><a class="reference internal" href="../../applications/marketing/surveys/questions.html">Create questions</a></li>
<li class="toctree-l4 o_menu_applications_marketing_surveys_live_session"><a class="reference internal" href="../../applications/marketing/surveys/live_session.html">Live Session surveys</a></li>
<li class="toctree-l4 o_menu_applications_marketing_surveys_analysis"><a class="reference internal" href="../../applications/marketing/surveys/analysis.html">Survey analysis</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_marketing_social_marketing"><a class="reference internal" href="../../applications/marketing/social_marketing.html">Social Marketing</a><ul>
<li class="toctree-l4 o_menu_applications_marketing_social_marketing_social_posts"><a class="reference internal" href="../../applications/marketing/social_marketing/social_posts.html">Social posts</a></li>
<li class="toctree-l4 o_menu_applications_marketing_social_marketing_social_campaigns"><a class="reference internal" href="../../applications/marketing/social_marketing/social_campaigns.html">Social marketing campaigns</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_services"><a class="reference internal" href="#">Services</a><ul>
<li class="toctree-l3 o_menu_applications_services_project"><a class="reference internal" href="../../applications/services/project.html">Project</a><ul>
<li class="toctree-l4 o_menu_applications_services_project_project_management"><a class="reference internal" href="../../applications/services/project/project_management.html">Project management</a></li>
<li class="toctree-l4 o_menu_applications_services_project_project_dashboard"><a class="reference internal" href="../../applications/services/project/project_dashboard.html">Project dashboard</a></li>
<li class="toctree-l4 o_menu_applications_services_project_tasks"><a class="reference internal" href="#">Task management</a><ul>
<li class="toctree-l5 o_menu_applications_services_project_tasks_task_stages_statuses"><a class="reference internal" href="../../applications/services/project/tasks/task_stages_statuses.html">Task stages and statuses</a></li>
<li class="toctree-l5 o_menu_applications_services_project_tasks_task_creation"><a class="reference internal" href="../../applications/services/project/tasks/task_creation.html">Task creation</a></li>
<li class="toctree-l5 o_menu_applications_services_project_tasks_recurring_tasks"><a class="reference internal" href="../../applications/services/project/tasks/recurring_tasks.html">Recurring tasks</a></li>
<li class="toctree-l5 o_menu_applications_services_project_tasks_sub-tasks"><a class="reference internal" href="../../applications/services/project/tasks/sub-tasks.html">Sub-tasks</a></li>
<li class="toctree-l5 o_menu_applications_services_project_tasks_task_dependencies"><a class="reference internal" href="../../applications/services/project/tasks/task_dependencies.html">Task dependencies</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_services_timesheets"><a class="reference internal" href="../../applications/services/timesheets.html">Timesheets</a><ul>
<li class="toctree-l4 o_menu_applications_services_timesheets_overview"><a class="reference internal" href="#">Overview</a><ul>
<li class="toctree-l5 o_menu_applications_services_timesheets_overview_time_off"><a class="reference internal" href="../../applications/services/timesheets/overview/time_off.html">Create Timesheets upon Time Off Validation</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_services_planning"><a class="reference internal" href="../../applications/services/planning.html">Planning</a></li>
<li class="toctree-l3 o_menu_applications_services_field_service"><a class="reference internal" href="../../applications/services/field_service.html">Field Service</a><ul>
<li class="toctree-l4 o_menu_applications_services_field_service_creating_tasks"><a class="reference internal" href="../../applications/services/field_service/creating_tasks.html">Creating field service tasks</a></li>
<li class="toctree-l4 o_menu_applications_services_field_service_product_management"><a class="reference internal" href="../../applications/services/field_service/product_management.html">Product management</a></li>
<li class="toctree-l4 o_menu_applications_services_field_service_planning_itinerary"><a class="reference internal" href="../../applications/services/field_service/planning_itinerary.html">Planning an itinerary</a></li>
<li class="toctree-l4 o_menu_applications_services_field_service_worksheets"><a class="reference internal" href="../../applications/services/field_service/worksheets.html">Worksheets</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_services_helpdesk"><a class="reference internal" href="../../applications/services/helpdesk.html">Helpdesk</a><ul>
<li class="toctree-l4 o_menu_applications_services_helpdesk_overview"><a class="reference internal" href="#">Overview</a><ul>
<li class="toctree-l5 o_menu_applications_services_helpdesk_overview_stages"><a class="reference internal" href="../../applications/services/helpdesk/overview/stages.html">Stages</a></li>
<li class="toctree-l5 o_menu_applications_services_helpdesk_overview_receiving_tickets"><a class="reference internal" href="../../applications/services/helpdesk/overview/receiving_tickets.html">Receiving tickets</a></li>
<li class="toctree-l5 o_menu_applications_services_helpdesk_overview_help_center"><a class="reference internal" href="../../applications/services/helpdesk/overview/help_center.html">Help Center</a></li>
<li class="toctree-l5 o_menu_applications_services_helpdesk_overview_sla"><a class="reference internal" href="../../applications/services/helpdesk/overview/sla.html">Service level agreements (SLA)</a></li>
<li class="toctree-l5 o_menu_applications_services_helpdesk_overview_reports"><a class="reference internal" href="../../applications/services/helpdesk/overview/reports.html">Reporting</a></li>
<li class="toctree-l5 o_menu_applications_services_helpdesk_overview_ratings"><a class="reference internal" href="../../applications/services/helpdesk/overview/ratings.html">Customer ratings</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_services_helpdesk_advanced"><a class="reference internal" href="#">Advanced</a><ul>
<li class="toctree-l5 o_menu_applications_services_helpdesk_advanced_after_sales"><a class="reference internal" href="../../applications/services/helpdesk/advanced/after_sales.html">After-Sales services</a></li>
<li class="toctree-l5 o_menu_applications_services_helpdesk_advanced_close_tickets"><a class="reference internal" href="../../applications/services/helpdesk/advanced/close_tickets.html">Closing tickets</a></li>
<li class="toctree-l5 o_menu_applications_services_helpdesk_advanced_track_and_bill"><a class="reference internal" href="../../applications/services/helpdesk/advanced/track_and_bill.html">Track and bill time</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_productivity"><a class="reference internal" href="#">Productivity</a><ul>
<li class="toctree-l3 o_menu_applications_productivity_documents"><a class="reference internal" href="../../applications/productivity/documents.html">Documents</a></li>
<li class="toctree-l3 o_menu_applications_productivity_sign"><a class="reference internal" href="../../applications/productivity/sign.html">Sign</a></li>
<li class="toctree-l3 o_menu_applications_productivity_spreadsheet"><a class="reference internal" href="../../applications/productivity/spreadsheet.html">Spreadsheet</a><ul>
<li class="toctree-l4 o_menu_applications_productivity_spreadsheet_insert"><a class="reference internal" href="../../applications/productivity/spreadsheet/insert.html">Link Odoo data</a></li>
<li class="toctree-l4 o_menu_applications_productivity_spreadsheet_functions"><a class="reference internal" href="../../applications/productivity/spreadsheet/functions.html">Functions</a></li>
<li class="toctree-l4 o_menu_applications_productivity_spreadsheet_templates"><a class="reference internal" href="../../applications/productivity/spreadsheet/templates.html">Templates</a></li>
<li class="toctree-l4 o_menu_applications_productivity_spreadsheet_global_filters"><a class="reference internal" href="../../applications/productivity/spreadsheet/global_filters.html">Global filters</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_productivity_knowledge"><a class="reference internal" href="../../applications/productivity/knowledge.html">Knowledge</a><ul>
<li class="toctree-l4 o_menu_applications_productivity_knowledge_articles_editing"><a class="reference internal" href="../../applications/productivity/knowledge/articles_editing.html">Articles editing</a></li>
<li class="toctree-l4 o_menu_applications_productivity_knowledge_management"><a class="reference internal" href="../../applications/productivity/knowledge/management.html">Articles management</a></li>
<li class="toctree-l4 o_menu_applications_productivity_knowledge_properties"><a class="reference internal" href="../../applications/productivity/knowledge/properties.html">Properties</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_productivity_calendar"><a class="reference internal" href="../../applications/productivity/calendar.html">Calendar</a><ul>
<li class="toctree-l4 o_menu_applications_productivity_calendar_outlook"><a class="reference internal" href="../../applications/productivity/calendar/outlook.html">Outlook Calendar synchronization</a></li>
<li class="toctree-l4 o_menu_applications_productivity_calendar_google"><a class="reference internal" href="../../applications/productivity/calendar/google.html">Google Calendar synchronization</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_productivity_discuss"><a class="reference internal" href="../../applications/productivity/discuss.html">Discuss</a><ul>
<li class="toctree-l4 o_menu_applications_productivity_discuss_team_communication"><a class="reference internal" href="../../applications/productivity/discuss/team_communication.html">Use channels for team communication</a></li>
<li class="toctree-l4 o_menu_applications_productivity_discuss_ice_servers"><a class="reference internal" href="../../applications/productivity/discuss/ice_servers.html">Configure ICE servers with Twilio</a></li>
<li class="toctree-l4 o_menu_applications_productivity_discuss_chatter"><a class="reference internal" href="../../applications/productivity/discuss/chatter.html">Chatter</a></li>
<li class="toctree-l4 o_menu_applications_productivity_discuss_canned_responses"><a class="reference internal" href="../../applications/productivity/discuss/canned_responses.html">Canned responses</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_productivity_data_cleaning"><a class="reference internal" href="../../applications/productivity/data_cleaning.html">Data Cleaning</a></li>
<li class="toctree-l3 o_menu_applications_productivity_whatsapp"><a class="reference internal" href="../../applications/productivity/whatsapp.html">WhatsApp</a></li>
<li class="toctree-l3 o_menu_applications_productivity_voip"><a class="reference internal" href="../../applications/productivity/voip.html">VoIP (Voice over Internet Protocol)</a><ul>
<li class="toctree-l4 o_menu_applications_productivity_voip_onsip"><a class="reference internal" href="../../applications/productivity/voip/onsip.html">Use VoIP services in Odoo with OnSIP</a></li>
<li class="toctree-l4 o_menu_applications_productivity_voip_axivox"><a class="reference internal" href="#">Axivox configuration</a><ul>
<li class="toctree-l5 o_menu_applications_productivity_voip_axivox_axivox_config"><a class="reference internal" href="../../applications/productivity/voip/axivox/axivox_config.html">VoIP services in Odoo with Axivox</a></li>
<li class="toctree-l5 o_menu_applications_productivity_voip_axivox_manage_users"><a class="reference internal" href="../../applications/productivity/voip/axivox/manage_users.html">Manage users in Axivox</a></li>
<li class="toctree-l5 o_menu_applications_productivity_voip_axivox_vm_audio_messages"><a class="reference internal" href="../../applications/productivity/voip/axivox/vm_audio_messages.html">Voicemails and audio messages</a></li>
<li class="toctree-l5 o_menu_applications_productivity_voip_axivox_dynamic_caller_id"><a class="reference internal" href="../../applications/productivity/voip/axivox/dynamic_caller_id.html">Dynamic caller ID</a></li>
<li class="toctree-l5 o_menu_applications_productivity_voip_axivox_conference_calls"><a class="reference internal" href="../../applications/productivity/voip/axivox/conference_calls.html">Conference calls</a></li>
<li class="toctree-l5 o_menu_applications_productivity_voip_axivox_dial_plan_basics"><a class="reference internal" href="../../applications/productivity/voip/axivox/dial_plan_basics.html">Dial plan basics</a></li>
<li class="toctree-l5 o_menu_applications_productivity_voip_axivox_dial_plan_advanced"><a class="reference internal" href="../../applications/productivity/voip/axivox/dial_plan_advanced.html">Advanced dial plans</a></li>
<li class="toctree-l5 o_menu_applications_productivity_voip_axivox_call_queues"><a class="reference internal" href="../../applications/productivity/voip/axivox/call_queues.html">Call queues</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_productivity_voip_voip_widget"><a class="reference internal" href="../../applications/productivity/voip/voip_widget.html">VoIP widget</a></li>
<li class="toctree-l4 o_menu_applications_productivity_voip_devices_integrations"><a class="reference internal" href="../../applications/productivity/voip/devices_integrations.html">Devices and integrations</a></li>
<li class="toctree-l4 o_menu_applications_productivity_voip_transfer_forward"><a class="reference internal" href="../../applications/productivity/voip/transfer_forward.html">Make, receive, transfer, and forward calls</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_productivity_to_do"><a class="reference internal" href="../../applications/productivity/to_do.html">To-do</a></li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_studio"><a class="reference internal" href="../../applications/studio.html">Studio</a><ul>
<li class="toctree-l3 o_menu_applications_studio_fields"><a class="reference internal" href="../../applications/studio/fields.html">Fields and widgets</a></li>
<li class="toctree-l3 o_menu_applications_studio_views"><a class="reference internal" href="../../applications/studio/views.html">Views</a></li>
<li class="toctree-l3 o_menu_applications_studio_models_modules_apps"><a class="reference internal" href="../../applications/studio/models_modules_apps.html">Models, modules, and apps</a></li>
<li class="toctree-l3 o_menu_applications_studio_automated_actions"><a class="reference internal" href="../../applications/studio/automated_actions.html">Automation rules</a></li>
<li class="toctree-l3 o_menu_applications_studio_pdf_reports"><a class="reference internal" href="../../applications/studio/pdf_reports.html">PDF reports</a></li>
<li class="toctree-l3 o_menu_applications_studio_approval_rules"><a class="reference internal" href="../../applications/studio/approval_rules.html">Approval rules</a></li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_general"><a class="reference internal" href="#">General settings</a><ul>
<li class="toctree-l3 o_menu_applications_general_apps_modules"><a class="reference internal" href="../../applications/general/apps_modules.html">Apps and modules</a></li>
<li class="toctree-l3 o_menu_applications_general_users"><a class="reference internal" href="../../applications/general/users.html">Users</a><ul>
<li class="toctree-l4 o_menu_applications_general_users_language"><a class="reference internal" href="../../applications/general/users/language.html">Change languages</a></li>
<li class="toctree-l4 o_menu_applications_general_users_2fa"><a class="reference internal" href="../../applications/general/users/2fa.html">Two-factor authentication</a></li>
<li class="toctree-l4 o_menu_applications_general_users_access_rights"><a class="reference internal" href="../../applications/general/users/access_rights.html">Access rights</a></li>
<li class="toctree-l4 o_menu_applications_general_users_portal"><a class="reference internal" href="../../applications/general/users/portal.html">Portal access</a></li>
<li class="toctree-l4 o_menu_applications_general_users_facebook"><a class="reference internal" href="../../applications/general/users/facebook.html">Facebook sign-in authentication</a></li>
<li class="toctree-l4 o_menu_applications_general_users_google"><a class="reference internal" href="../../applications/general/users/google.html">Google Sign-In Authentication</a></li>
<li class="toctree-l4 o_menu_applications_general_users_azure"><a class="reference internal" href="../../applications/general/users/azure.html">Microsoft Azure sign-in authentication</a></li>
<li class="toctree-l4 o_menu_applications_general_users_ldap"><a class="reference internal" href="../../applications/general/users/ldap.html">LDAP authentication</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_general_companies"><a class="reference internal" href="../../applications/general/companies.html">Companies</a><ul>
<li class="toctree-l4 o_menu_applications_general_companies_digest_emails"><a class="reference internal" href="../../applications/general/companies/digest_emails.html">Digest emails</a></li>
<li class="toctree-l4 o_menu_applications_general_companies_email_template"><a class="reference internal" href="../../applications/general/companies/email_template.html">Email templates</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_general_multi_company"><a class="reference internal" href="../../applications/general/multi_company.html">Multi-company</a></li>
<li class="toctree-l3 o_menu_applications_general_iot"><a class="reference internal" href="../../applications/general/iot.html">Internet of Things (IoT)</a><ul>
<li class="toctree-l4 o_menu_applications_general_iot_iot_box"><a class="reference internal" href="../../applications/general/iot/iot_box.html">IoT box</a></li>
<li class="toctree-l4 o_menu_applications_general_iot_windows_iot"><a class="reference internal" href="../../applications/general/iot/windows_iot.html">Windows virtual IoT</a></li>
<li class="toctree-l4 o_menu_applications_general_iot_connect"><a class="reference internal" href="../../applications/general/iot/connect.html">IoT system connection to Odoo</a></li>
<li class="toctree-l4 o_menu_applications_general_iot_iot_advanced"><a class="reference internal" href="#">Advanced</a><ul>
<li class="toctree-l5 o_menu_applications_general_iot_iot_advanced_https_certificate_iot"><a class="reference internal" href="../../applications/general/iot/iot_advanced/https_certificate_iot.html">HTTPS certificate (IoT)</a></li>
<li class="toctree-l5 o_menu_applications_general_iot_iot_advanced_updating_iot"><a class="reference internal" href="../../applications/general/iot/iot_advanced/updating_iot.html">IoT system updates</a></li>
<li class="toctree-l5 o_menu_applications_general_iot_iot_advanced_ssh_connect"><a class="reference internal" href="../../applications/general/iot/iot_advanced/ssh_connect.html">IoT box SSH connection</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_general_iot_devices"><a class="reference internal" href="../../applications/general/iot/devices.html">Devices</a><ul>
<li class="toctree-l5 o_menu_applications_general_iot_devices_screen"><a class="reference internal" href="../../applications/general/iot/devices/screen.html">Connect a screen</a></li>
<li class="toctree-l5 o_menu_applications_general_iot_devices_measurement_tool"><a class="reference internal" href="../../applications/general/iot/devices/measurement_tool.html">Connect a measurement tool</a></li>
<li class="toctree-l5 o_menu_applications_general_iot_devices_camera"><a class="reference internal" href="../../applications/general/iot/devices/camera.html">Connect a camera</a></li>
<li class="toctree-l5 o_menu_applications_general_iot_devices_footswitch"><a class="reference internal" href="../../applications/general/iot/devices/footswitch.html">Connect a footswitch</a></li>
<li class="toctree-l5 o_menu_applications_general_iot_devices_printer"><a class="reference internal" href="../../applications/general/iot/devices/printer.html">Connect a printer</a></li>
<li class="toctree-l5 o_menu_applications_general_iot_devices_scale"><a class="reference internal" href="../../applications/general/iot/devices/scale.html">Connect a scale</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_general_email_communication"><a class="reference internal" href="../../applications/general/email_communication.html">Communication in Odoo by email</a><ul>
<li class="toctree-l4 o_menu_applications_general_email_communication_email_servers_inbound"><a class="reference internal" href="../../applications/general/email_communication/email_servers_inbound.html">Manage inbound messages</a></li>
<li class="toctree-l4 o_menu_applications_general_email_communication_email_servers_outbound"><a class="reference internal" href="../../applications/general/email_communication/email_servers_outbound.html">Manage outbound messages</a></li>
<li class="toctree-l4 o_menu_applications_general_email_communication_email_domain"><a class="reference internal" href="../../applications/general/email_communication/email_domain.html">Configure DNS records to send emails in Odoo</a></li>
<li class="toctree-l4 o_menu_applications_general_email_communication_azure_oauth"><a class="reference internal" href="../../applications/general/email_communication/azure_oauth.html">Connect Microsoft Outlook 365 to Odoo using Azure OAuth</a></li>
<li class="toctree-l4 o_menu_applications_general_email_communication_google_oauth"><a class="reference internal" href="../../applications/general/email_communication/google_oauth.html">Connect Gmail to Odoo using Google OAuth</a></li>
<li class="toctree-l4 o_menu_applications_general_email_communication_mailjet_api"><a class="reference internal" href="../../applications/general/email_communication/mailjet_api.html">Mailjet API</a></li>
<li class="toctree-l4 o_menu_applications_general_email_communication_faq"><a class="reference internal" href="../../applications/general/email_communication/faq.html">Common emailing issues and solutions</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_general_integrations"><a class="reference internal" href="#">Integrations</a><ul>
<li class="toctree-l4 o_menu_applications_general_integrations_mail_plugins"><a class="reference internal" href="../../applications/general/integrations/mail_plugins.html">Mail Plugins</a><ul>
<li class="toctree-l5 o_menu_applications_general_integrations_mail_plugins_outlook"><a class="reference internal" href="../../applications/general/integrations/mail_plugins/outlook.html">Outlook Plugin</a></li>
<li class="toctree-l5 o_menu_applications_general_integrations_mail_plugins_gmail"><a class="reference internal" href="../../applications/general/integrations/mail_plugins/gmail.html">Gmail Plugin</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_general_integrations_unsplash"><a class="reference internal" href="../../applications/general/integrations/unsplash.html">Unsplash</a></li>
<li class="toctree-l4 o_menu_applications_general_integrations_geolocation"><a class="reference internal" href="../../applications/general/integrations/geolocation.html">Geolocation</a></li>
<li class="toctree-l4 o_menu_applications_general_integrations_google_translate"><a class="reference internal" href="../../applications/general/integrations/google_translate.html">Google Translate</a></li>
<li class="toctree-l4 o_menu_applications_general_integrations_barcodelookup"><a class="reference internal" href="../../applications/general/integrations/barcodelookup.html">Barcode Lookup</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_general_developer_mode"><a class="reference internal" href="../../applications/general/developer_mode.html">Developer mode (debug mode)</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1 o_menu_administration"><a class="reference internal" href="../../administration.html">Database management</a><ul>
<li class="toctree-l2 o_menu_administration_hosting"><a class="reference internal" href="../../administration/hosting.html">Hosting</a></li>
<li class="toctree-l2 o_menu_administration_odoo_online"><a class="reference internal" href="../../administration/odoo_online.html">Odoo Online</a></li>
<li class="toctree-l2 o_menu_administration_odoo_sh"><a class="reference internal" href="#">Odoo.sh</a><ul>
<li class="toctree-l3 o_menu_administration_odoo_sh_overview"><a class="reference internal" href="#">Overview</a><ul>
<li class="toctree-l4 o_menu_administration_odoo_sh_overview_introduction"><a class="reference internal" href="../../administration/odoo_sh/overview/introduction.html">Introduction to Odoo.sh</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_administration_odoo_sh_getting_started"><a class="reference internal" href="#">Get started</a><ul>
<li class="toctree-l4 o_menu_administration_odoo_sh_getting_started_create"><a class="reference internal" href="../../administration/odoo_sh/getting_started/create.html">Create your project</a></li>
<li class="toctree-l4 o_menu_administration_odoo_sh_getting_started_branches"><a class="reference internal" href="../../administration/odoo_sh/getting_started/branches.html">Branches</a></li>
<li class="toctree-l4 o_menu_administration_odoo_sh_getting_started_builds"><a class="reference internal" href="../../administration/odoo_sh/getting_started/builds.html">Builds</a></li>
<li class="toctree-l4 o_menu_administration_odoo_sh_getting_started_status"><a class="reference internal" href="../../administration/odoo_sh/getting_started/status.html">Status</a></li>
<li class="toctree-l4 o_menu_administration_odoo_sh_getting_started_settings"><a class="reference internal" href="../../administration/odoo_sh/getting_started/settings.html">Settings</a></li>
<li class="toctree-l4 o_menu_administration_odoo_sh_getting_started_online-editor"><a class="reference internal" href="../../administration/odoo_sh/getting_started/online-editor.html">Online Editor</a></li>
<li class="toctree-l4 o_menu_administration_odoo_sh_getting_started_first_module"><a class="reference internal" href="../../administration/odoo_sh/getting_started/first_module.html">Your first module</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_administration_odoo_sh_advanced"><a class="reference internal" href="#">Advanced</a><ul>
<li class="toctree-l4 o_menu_administration_odoo_sh_advanced_containers"><a class="reference internal" href="../../administration/odoo_sh/advanced/containers.html">Containers</a></li>
<li class="toctree-l4 o_menu_administration_odoo_sh_advanced_submodules"><a class="reference internal" href="../../administration/odoo_sh/advanced/submodules.html">Submodules</a></li>
<li class="toctree-l4 o_menu_administration_odoo_sh_advanced_frequent_technical_questions"><a class="reference internal" href="../../administration/odoo_sh/advanced/frequent_technical_questions.html">Frequent Technical Questions</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2 o_menu_administration_on_premise"><a class="reference internal" href="../../administration/on_premise.html">On-premise</a><ul>
<li class="toctree-l3 o_menu_administration_on_premise_packages"><a class="reference internal" href="../../administration/on_premise/packages.html">Packaged installers</a></li>
<li class="toctree-l3 o_menu_administration_on_premise_source"><a class="reference internal" href="../../administration/on_premise/source.html">Source install</a></li>
<li class="toctree-l3 o_menu_administration_on_premise_update"><a class="reference internal" href="../../administration/on_premise/update.html">Bugfix updates</a></li>
<li class="toctree-l3 o_menu_administration_on_premise_deploy"><a class="reference internal" href="../../administration/on_premise/deploy.html">System configuration</a></li>
<li class="toctree-l3 o_menu_administration_on_premise_email_gateway"><a class="reference internal" href="../../administration/on_premise/email_gateway.html">Email gateway</a></li>
<li class="toctree-l3 o_menu_administration_on_premise_geo_ip"><a class="reference internal" href="../../administration/on_premise/geo_ip.html">Geo IP</a></li>
<li class="toctree-l3 o_menu_administration_on_premise_community_to_enterprise"><a class="reference internal" href="../../administration/on_premise/community_to_enterprise.html">Switch from Community to Enterprise</a></li>
</ul>
</li>
<li class="toctree-l2 o_menu_administration_upgrade"><a class="reference internal" href="../../administration/upgrade.html">Upgrade</a></li>
<li class="toctree-l2 o_menu_administration_neutralized_database"><a class="reference internal" href="../../administration/neutralized_database.html">Neutralized database</a></li>
<li class="toctree-l2 o_menu_administration_supported_versions"><a class="reference internal" href="../../administration/supported_versions.html">Supported versions</a></li>
<li class="toctree-l2 o_menu_administration_mobile"><a class="reference internal" href="../../administration/mobile.html">Odoo mobile apps</a></li>
<li class="toctree-l2 o_menu_administration_odoo_accounts"><a class="reference internal" href="../../administration/odoo_accounts.html">Odoo.com accounts</a></li>
</ul>
</li>
<li class="toctree-l1 o_menu_developer"><a class="reference internal" href="../../developer.html">Developer</a><ul>
<li class="toctree-l2 o_menu_developer_tutorials"><a class="reference internal" href="../tutorials.html">Tutorials</a><ul>
<li class="toctree-l3 o_menu_developer_tutorials_setup_guide"><a class="reference internal" href="setup_guide.html">Setup guide</a></li>
<li class="toctree-l3 o_menu_developer_tutorials_server_framework_101"><a class="reference internal" href="server_framework_101.html">Server framework 101</a><ul>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_01_architecture"><a class="reference internal" href="server_framework_101/01_architecture.html">Chapter 1: Architecture Overview</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_02_newapp"><a class="reference internal" href="server_framework_101/02_newapp.html">Chapter 2: A New Application</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_03_basicmodel"><a class="reference internal" href="server_framework_101/03_basicmodel.html">Chapter 3: Models And Basic Fields</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_04_securityintro"><a class="reference internal" href="server_framework_101/04_securityintro.html">Chapter 4: Security - A Brief Introduction</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_05_firstui"><a class="reference internal" href="server_framework_101/05_firstui.html">Chapter 5: Finally, Some UI To Play With</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_06_basicviews"><a class="reference internal" href="server_framework_101/06_basicviews.html">Chapter 6: Basic Views</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_07_relations"><a class="reference internal" href="server_framework_101/07_relations.html">Chapter 7: Relations Between Models</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_08_compute_onchange"><a class="reference internal" href="server_framework_101/08_compute_onchange.html">Chapter 8: Computed Fields And Onchanges</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_09_actions"><a class="reference internal" href="server_framework_101/09_actions.html">Chapter 9: Ready For Some Action?</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_10_constraints"><a class="reference internal" href="server_framework_101/10_constraints.html">Chapter 10: Constraints</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_11_sprinkles"><a class="reference internal" href="server_framework_101/11_sprinkles.html">Chapter 11: Add The Sprinkles</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_12_inheritance"><a class="reference internal" href="server_framework_101/12_inheritance.html">Chapter 12: Inheritance</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_13_other_module"><a class="reference internal" href="server_framework_101/13_other_module.html">Chapter 13: Interact With Other Modules</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_14_qwebintro"><a class="reference internal" href="server_framework_101/14_qwebintro.html">Chapter 14: A Brief History Of QWeb</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_15_final_word"><a class="reference internal" href="server_framework_101/15_final_word.html">Chapter 15: The final word</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_developer_tutorials_discover_js_framework"><a class="reference internal" href="discover_js_framework.html">Discover the web framework</a><ul>
<li class="toctree-l4 o_menu_developer_tutorials_discover_js_framework_01_owl_components"><a class="reference internal" href="discover_js_framework/01_owl_components.html">Chapter 1: Owl components</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_discover_js_framework_02_build_a_dashboard"><a class="reference internal" href="discover_js_framework/02_build_a_dashboard.html">Chapter 2: Build a dashboard</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_developer_tutorials_master_odoo_web_framework"><a class="reference internal" href="master_odoo_web_framework.html">Master the web framework</a><ul>
<li class="toctree-l4 o_menu_developer_tutorials_master_odoo_web_framework_01_build_clicker_game"><a class="reference internal" href="master_odoo_web_framework/01_build_clicker_game.html">Chapter 1: Build a Clicker game</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_master_odoo_web_framework_02_create_gallery_view"><a class="reference internal" href="master_odoo_web_framework/02_create_gallery_view.html">Chapter 2: Create a Gallery View</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_master_odoo_web_framework_03_customize_kanban_view"><a class="reference internal" href="master_odoo_web_framework/03_customize_kanban_view.html">Chapter 3: Customize a kanban view</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_developer_tutorials_define_module_data"><a class="reference internal" href="define_module_data.html">Define module data</a></li>
<li class="toctree-l3 o_menu_developer_tutorials_restrict_data_access"><a class="reference internal" href="restrict_data_access.html">Restrict access to data</a></li>
<li class="toctree-l3 o_menu_developer_tutorials_unit_tests"><a class="reference internal" href="unit_tests.html">Safeguard your code with unit tests</a></li>
<li class="toctree-l3 o_menu_developer_tutorials_importable_modules"><a class="reference internal" href="importable_modules.html">Write importable modules</a></li>
<li class="toctree-l3 o_menu_developer_tutorials_mixins"><a class="reference internal" href="mixins.html">Reuse code with mixins</a></li>
<li class="toctree-l3 o_menu_developer_tutorials_pdf_reports"><a class="reference internal" href="pdf_reports.html">Build PDF Reports</a></li>
</ul>
</li>
<li class="toctree-l2 o_menu_developer_howtos"><a class="reference internal" href="../howtos.html">How-to guides</a><ul>
<li class="toctree-l3 o_menu_developer_howtos_scss_tips"><a class="reference internal" href="../howtos/scss_tips.html">Write lean easy-to-maintain CSS</a></li>
<li class="toctree-l3 o_menu_developer_howtos_javascript_field"><a class="reference internal" href="../howtos/javascript_field.html">Customize a field</a></li>
<li class="toctree-l3 o_menu_developer_howtos_javascript_view"><a class="reference internal" href="../howtos/javascript_view.html">Customize a view type</a></li>
<li class="toctree-l3 o_menu_developer_howtos_javascript_client_action"><a class="reference internal" href="../howtos/javascript_client_action.html">Create a client action</a></li>
<li class="toctree-l3 o_menu_developer_howtos_standalone_owl_application"><a class="reference internal" href="../howtos/standalone_owl_application.html">Create a standalone Owl application</a></li>
<li class="toctree-l3 o_menu_developer_howtos_frontend_owl_components"><a class="reference internal" href="../howtos/frontend_owl_components.html">Use Owl components on the portal and website</a></li>
<li class="toctree-l3 o_menu_developer_howtos_website_themes"><a class="reference internal" href="../howtos/website_themes.html">Website themes</a><ul>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_setup"><a class="reference internal" href="../howtos/website_themes/setup.html">Setup</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_theming"><a class="reference internal" href="../howtos/website_themes/theming.html">Theming</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_layout"><a class="reference internal" href="../howtos/website_themes/layout.html">Layout</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_navigation"><a class="reference internal" href="../howtos/website_themes/navigation.html">Navigation</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_pages"><a class="reference internal" href="../howtos/website_themes/pages.html">Pages</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_building_blocks"><a class="reference internal" href="../howtos/website_themes/building_blocks.html">Building blocks</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_shapes"><a class="reference internal" href="../howtos/website_themes/shapes.html">Shapes</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_gradients"><a class="reference internal" href="../howtos/website_themes/gradients.html">Gradients</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_animations"><a class="reference internal" href="../howtos/website_themes/animations.html">Animations</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_forms"><a class="reference internal" href="../howtos/website_themes/forms.html">Forms</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_translations"><a class="reference internal" href="../howtos/website_themes/translations.html">Translations</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_going_live"><a class="reference internal" href="../howtos/website_themes/going_live.html">Going live</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_developer_howtos_web_services"><a class="reference internal" href="../howtos/web_services.html">Web Services</a></li>
<li class="toctree-l3 o_menu_developer_howtos_company"><a class="reference internal" href="../howtos/company.html">Multi-company Guidelines</a></li>
<li class="toctree-l3 o_menu_developer_howtos_create_reports"><a class="reference internal" href="../howtos/create_reports.html">Create customized reports</a></li>
<li class="toctree-l3 o_menu_developer_howtos_accounting_localization"><a class="reference internal" href="../howtos/accounting_localization.html">Accounting localization</a></li>
<li class="toctree-l3 o_menu_developer_howtos_translations"><a class="reference internal" href="../howtos/translations.html">Translating Modules</a></li>
<li class="toctree-l3 o_menu_developer_howtos_connect_device"><a class="reference internal" href="../howtos/connect_device.html">Connect with a device</a></li>
<li class="toctree-l3 o_menu_developer_howtos_upgrade_custom_db"><a class="reference internal" href="../howtos/upgrade_custom_db.html">Upgrade a customized database</a></li>
</ul>
</li>
<li class="toctree-l2 o_menu_developer_reference"><a class="reference internal" href="../reference.html">Reference</a><ul>
<li class="toctree-l3 o_menu_developer_reference_backend"><a class="reference internal" href="#">Server framework</a><ul>
<li class="toctree-l4 o_menu_developer_reference_backend_orm"><a class="reference internal" href="../reference/backend/orm.html">ORM API</a><ul>
<li class="toctree-l5 o_menu_developer_reference_backend_orm_changelog"><a class="reference internal" href="../reference/backend/orm/changelog.html">Changelog</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_developer_reference_backend_data"><a class="reference internal" href="../reference/backend/data.html">Data Files</a></li>
<li class="toctree-l4 o_menu_developer_reference_backend_actions"><a class="reference internal" href="../reference/backend/actions.html">Actions</a></li>
<li class="toctree-l4 o_menu_developer_reference_backend_reports"><a class="reference internal" href="../reference/backend/reports.html">QWeb Reports</a></li>
<li class="toctree-l4 o_menu_developer_reference_backend_module"><a class="reference internal" href="../reference/backend/module.html">Module Manifests</a></li>
<li class="toctree-l4 o_menu_developer_reference_backend_security"><a class="reference internal" href="../reference/backend/security.html">Security in Odoo</a></li>
<li class="toctree-l4 o_menu_developer_reference_backend_performance"><a class="reference internal" href="../reference/backend/performance.html">Performance</a></li>
<li class="toctree-l4 o_menu_developer_reference_backend_testing"><a class="reference internal" href="../reference/backend/testing.html">Testing Odoo</a></li>
<li class="toctree-l4 o_menu_developer_reference_backend_http"><a class="reference internal" href="../reference/backend/http.html">Web Controllers</a></li>
<li class="toctree-l4 o_menu_developer_reference_backend_mixins"><a class="reference internal" href="../reference/backend/mixins.html">Mixins and Useful Classes</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_developer_reference_frontend"><a class="reference internal" href="#">Web framework</a><ul>
<li class="toctree-l4 o_menu_developer_reference_frontend_framework_overview"><a class="reference internal" href="../reference/frontend/framework_overview.html">Framework Overview</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_assets"><a class="reference internal" href="../reference/frontend/assets.html">Assets</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_javascript_modules"><a class="reference internal" href="../reference/frontend/javascript_modules.html">Javascript Modules</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_owl_components"><a class="reference internal" href="../reference/frontend/owl_components.html">Owl components</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_registries"><a class="reference internal" href="../reference/frontend/registries.html">Registries</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_services"><a class="reference internal" href="../reference/frontend/services.html">Services</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_hooks"><a class="reference internal" href="../reference/frontend/hooks.html">Hooks</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_patching_code"><a class="reference internal" href="../reference/frontend/patching_code.html">Patching code</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_error_handling"><a class="reference internal" href="../reference/frontend/error_handling.html">Error handling</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_javascript_reference"><a class="reference internal" href="../reference/frontend/javascript_reference.html">Javascript Reference</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_mobile"><a class="reference internal" href="../reference/frontend/mobile.html">Mobile JavaScript</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_qweb"><a class="reference internal" href="../reference/frontend/qweb.html">QWeb Templates</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_odoo_editor"><a class="reference internal" href="../reference/frontend/odoo_editor.html">Odoo Editor</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_developer_reference_user_interface"><a class="reference internal" href="#">User interface</a><ul>
<li class="toctree-l4 o_menu_developer_reference_user_interface_view_records"><a class="reference internal" href="../reference/user_interface/view_records.html">View records</a></li>
<li class="toctree-l4 o_menu_developer_reference_user_interface_view_architectures"><a class="reference internal" href="../reference/user_interface/view_architectures.html">View architectures</a></li>
<li class="toctree-l4 o_menu_developer_reference_user_interface_scss_inheritance"><a class="reference internal" href="../reference/user_interface/scss_inheritance.html">SCSS inheritance</a></li>
<li class="toctree-l4 o_menu_developer_reference_user_interface_icons"><a class="reference internal" href="../reference/user_interface/icons.html">UI icons</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_developer_reference_standard_modules"><a class="reference internal" href="#">Standard modules</a><ul>
<li class="toctree-l4 o_menu_developer_reference_standard_modules_account"><a class="reference internal" href="#">Accounting</a><ul>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_account_account_account_tag"><a class="reference internal" href="../reference/standard_modules/account/account_account_tag.html">Account Tag</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_account_account_account"><a class="reference internal" href="../reference/standard_modules/account/account_account.html">Account</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_account_account_fiscal_position"><a class="reference internal" href="../reference/standard_modules/account/account_fiscal_position.html">Fiscal Position</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_account_account_group"><a class="reference internal" href="../reference/standard_modules/account/account_group.html">Account Group</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_account_account_report"><a class="reference internal" href="../reference/standard_modules/account/account_report.html">Report</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_account_account_report_line"><a class="reference internal" href="../reference/standard_modules/account/account_report_line.html">Report Line</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_account_account_tax"><a class="reference internal" href="../reference/standard_modules/account/account_tax.html">Taxes</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_account_account_tax_repartition"><a class="reference internal" href="../reference/standard_modules/account/account_tax_repartition.html">Tax Repartitions</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_developer_reference_standard_modules_payment"><a class="reference internal" href="#">Payment</a><ul>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_payment_payment_method"><a class="reference internal" href="../reference/standard_modules/payment/payment_method.html">Payment Method</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_payment_payment_provider"><a class="reference internal" href="../reference/standard_modules/payment/payment_provider.html">Payment Provider</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_payment_payment_token"><a class="reference internal" href="../reference/standard_modules/payment/payment_token.html">Payment Token</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_payment_payment_transaction"><a class="reference internal" href="../reference/standard_modules/payment/payment_transaction.html">Payment Transaction</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_developer_reference_cli"><a class="reference internal" href="../reference/cli.html">Command-line interface (CLI)</a></li>
<li class="toctree-l3 o_menu_developer_reference_upgrades"><a class="reference internal" href="#">Upgrades</a><ul>
<li class="toctree-l4 o_menu_developer_reference_upgrades_upgrade_scripts"><a class="reference internal" href="../reference/upgrades/upgrade_scripts.html">Upgrade scripts</a></li>
<li class="toctree-l4 o_menu_developer_reference_upgrades_upgrade_utils"><a class="reference internal" href="../reference/upgrades/upgrade_utils.html">Upgrade utils</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_developer_reference_external_api"><a class="reference internal" href="../reference/external_api.html">External API</a></li>
<li class="toctree-l3 o_menu_developer_reference_extract_api"><a class="reference internal" href="../reference/extract_api.html">Extract API</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1 o_menu_contributing"><a class="reference internal" href="../../contributing.html">Contributing</a><ul>
<li class="toctree-l2 o_menu_contributing_development"><a class="reference internal" href="../../contributing/development.html">Development</a><ul>
<li class="toctree-l3 o_menu_contributing_development_coding_guidelines"><a class="reference internal" href="../../contributing/development/coding_guidelines.html">Coding guidelines</a></li>
<li class="toctree-l3 o_menu_contributing_development_git_guidelines"><a class="reference internal" href="../../contributing/development/git_guidelines.html">Git guidelines</a></li>
</ul>
</li>
<li class="toctree-l2 o_menu_contributing_documentation"><a class="reference internal" href="../../contributing/documentation.html">Documentation</a><ul>
<li class="toctree-l3 o_menu_contributing_documentation_content_guidelines"><a class="reference internal" href="../../contributing/documentation/content_guidelines.html">Content guidelines</a></li>
<li class="toctree-l3 o_menu_contributing_documentation_rst_guidelines"><a class="reference internal" href="../../contributing/documentation/rst_guidelines.html">RST guidelines and cheat sheet</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</noscript>
<nav id="o_menu" class="o_side_nav">
<div class="o_mobile-overlay" data-bs-toggle="collapse" data-bs-target="#o_menu"></div>
<div class="o_side_nav-inner border-end">
<aside id="o_page_toc_in_nav" class="o_page_toc o_in_nav_toc border-bottom pt-3 pb-3" hidden><div class="o_page_toc_nav mt-1">
<h5>On this page</h5>
<ul>
<li><a class="reference internal" href="#">Customizing the web client</a><ul>
<li><a class="reference internal" href="#a-simple-module">A Simple Module</a></li>
<li><a class="reference internal" href="#odoo-javascript-module">Odoo JavaScript Module</a></li>
<li><a class="reference internal" href="#classes">Classes</a></li>
<li><a class="reference internal" href="#widgets-basics">Widgets Basics</a><ul>
<li><a class="reference internal" href="#your-first-widget">Your First Widget</a></li>
<li><a class="reference internal" href="#display-content">Display Content</a></li>
<li><a class="reference internal" href="#widget-parents-and-children">Widget Parents and Children</a></li>
<li><a class="reference internal" href="#destroying-widgets">Destroying Widgets</a></li>
</ul>
</li>
<li><a class="reference internal" href="#the-qweb-template-engine">The QWeb Template Engine</a><ul>
<li><a class="reference internal" href="#using-qweb">Using QWeb</a><ul>
<li><a class="reference internal" href="#qweb-context">QWeb Context</a></li>
<li><a class="reference internal" href="#template-declaration">Template Declaration</a></li>
<li><a class="reference internal" href="#escaping">Escaping</a></li>
<li><a class="reference internal" href="#outputting-html">Outputting HTML</a></li>
<li><a class="reference internal" href="#conditionals">Conditionals</a></li>
<li><a class="reference internal" href="#iteration">Iteration</a></li>
<li><a class="reference internal" href="#defining-attributes">Defining attributes</a></li>
<li><a class="reference internal" href="#calling-other-templates">Calling other templates</a></li>
<li><a class="reference internal" href="#to-learn-more-about-qweb">To Learn More About QWeb</a></li>
<li><a class="reference internal" href="#exercise">Exercise</a></li>
</ul>
</li>
</ul>
</li>
<li><a class="reference internal" href="#widget-helpers">Widget Helpers</a><ul>
<li><a class="reference internal" href="#widget-s-jquery-selector"><code class="o_code docutils literal notranslate"><span class="pre">Widget</span></code>s jQuery Selector</a></li>
<li><a class="reference internal" href="#easier-dom-events-binding">Easier DOM Events Binding</a></li>
</ul>
</li>
<li><a class="reference internal" href="#widget-events-and-properties">Widget Events and Properties</a><ul>
<li><a class="reference internal" href="#events">Events</a></li>
<li><a class="reference internal" href="#properties">Properties</a></li>
<li><a class="reference internal" href="#id4">Exercise</a></li>
</ul>
</li>
<li><a class="reference internal" href="#modify-existing-widgets-and-classes">Modify existing widgets and classes</a></li>
<li><a class="reference internal" href="#translations">Translations</a></li>
<li><a class="reference internal" href="#communication-with-the-odoo-server">Communication with the Odoo Server</a><ul>
<li><a class="reference internal" href="#contacting-models">Contacting Models</a></li>
<li><a class="reference internal" href="#compoundcontext">CompoundContext</a></li>
<li><a class="reference internal" href="#queries">Queries</a></li>
</ul>
</li>
<li><a class="reference internal" href="#exercises">Exercises</a></li>
<li><a class="reference internal" href="#existing-web-components">Existing web components</a><ul>
<li><a class="reference internal" href="#the-action-manager">The Action Manager</a><ul>
<li><a class="reference internal" href="#using-the-action-manager">Using the Action Manager</a></li>
</ul>
</li>
<li><a class="reference internal" href="#client-actions">Client Actions</a></li>
<li><a class="reference internal" href="#architecture-of-the-views">Architecture of the Views</a><ul>
<li><a class="reference internal" href="#the-view-manager">The View Manager</a></li>
<li><a class="reference internal" href="#the-views">The Views</a></li>
</ul>
</li>
<li><a class="reference internal" href="#the-form-view-fields">The Form View Fields</a><ul>
<li><a class="reference internal" href="#creating-a-new-type-of-field">Creating a New Type of Field</a><ul>
<li><a class="reference internal" href="#simple-read-only-field">Simple Read-Only Field</a></li>
<li><a class="reference internal" href="#read-write-field">Read-Write Field</a></li>
</ul>
</li>
</ul>
</li>
<li><a class="reference internal" href="#the-form-view-custom-widgets">The Form View Custom Widgets</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</aside>
<div id="o_main_toctree" class="o_main_toc mt-3" hidden>
<ul>
<li class="toctree-l1 o_menu_applications"><a class="reference internal" href="../../applications.html">User Docs</a><ul>
<li class="toctree-l2 o_menu_applications_essentials"><a class="reference internal" href="#">Odoo essentials</a><ul>
<li class="toctree-l3 o_menu_applications_essentials_activities"><a class="reference internal" href="../../applications/essentials/activities.html">Activities</a></li>
<li class="toctree-l3 o_menu_applications_essentials_reporting"><a class="reference internal" href="../../applications/essentials/reporting.html">Reporting</a></li>
<li class="toctree-l3 o_menu_applications_essentials_search"><a class="reference internal" href="../../applications/essentials/search.html">Search, filter, and group records</a></li>
<li class="toctree-l3 o_menu_applications_essentials_contacts"><a class="reference internal" href="../../applications/essentials/contacts.html">Contacts</a><ul>
<li class="toctree-l4 o_menu_applications_essentials_contacts_merge"><a class="reference internal" href="../../applications/essentials/contacts/merge.html">Merge contacts</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_essentials_export_import_data"><a class="reference internal" href="../../applications/essentials/export_import_data.html">Export and import data</a></li>
<li class="toctree-l3 o_menu_applications_essentials_in_app_purchase"><a class="reference internal" href="../../applications/essentials/in_app_purchase.html">In-app purchases (IAP)</a></li>
<li class="toctree-l3 o_menu_applications_essentials_keyboard_shortcuts"><a class="reference internal" href="../../applications/essentials/keyboard_shortcuts.html">Keyboard shortcuts</a></li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_finance"><a class="reference internal" href="#">Finance</a><ul>
<li class="toctree-l3 o_menu_applications_finance_accounting"><a class="reference internal" href="../../applications/finance/accounting.html">Accounting and Invoicing</a><ul>
<li class="toctree-l4 o_menu_applications_finance_accounting_get_started"><a class="reference internal" href="../../applications/finance/accounting/get_started.html">Get started</a><ul>
<li class="toctree-l5 o_menu_applications_finance_accounting_get_started_cheat_sheet"><a class="reference internal" href="../../applications/finance/accounting/get_started/cheat_sheet.html">Accounting cheat sheet</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_get_started_chart_of_accounts"><a class="reference internal" href="../../applications/finance/accounting/get_started/chart_of_accounts.html">Chart of accounts</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_get_started_multi_currency"><a class="reference internal" href="../../applications/finance/accounting/get_started/multi_currency.html">Multi-currency system</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_get_started_avg_price_valuation"><a class="reference internal" href="../../applications/finance/accounting/get_started/avg_price_valuation.html">Average price on returned goods</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_get_started_tax_units"><a class="reference internal" href="../../applications/finance/accounting/get_started/tax_units.html">Tax units</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_finance_accounting_taxes"><a class="reference internal" href="../../applications/finance/accounting/taxes.html">Taxes</a><ul>
<li class="toctree-l5 o_menu_applications_finance_accounting_taxes_cash_basis"><a class="reference internal" href="../../applications/finance/accounting/taxes/cash_basis.html">Cash basis taxes</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_taxes_retention"><a class="reference internal" href="../../applications/finance/accounting/taxes/retention.html">Withholding taxes</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_taxes_vat_verification"><a class="reference internal" href="../../applications/finance/accounting/taxes/vat_verification.html">VAT numbers verification (VIES)</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_taxes_fiscal_positions"><a class="reference internal" href="../../applications/finance/accounting/taxes/fiscal_positions.html">Fiscal positions (tax and account mapping)</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_taxes_avatax"><a class="reference internal" href="../../applications/finance/accounting/taxes/avatax.html">AvaTax integration</a><ul>
<li class="toctree-l6 o_menu_applications_finance_accounting_taxes_avatax_avatax_use"><a class="reference internal" href="../../applications/finance/accounting/taxes/avatax/avatax_use.html">AvaTax use</a></li>
<li class="toctree-l6 o_menu_applications_finance_accounting_taxes_avatax_avalara_portal"><a class="reference internal" href="../../applications/finance/accounting/taxes/avatax/avalara_portal.html">Avalara (Avatax) portal</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_finance_accounting_taxes_eu_distance_selling"><a class="reference internal" href="../../applications/finance/accounting/taxes/eu_distance_selling.html">EU intra-community distance selling</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_taxes_B2B_B2C"><a class="reference internal" href="../../applications/finance/accounting/taxes/B2B_B2C.html">B2B (tax excluded) and B2C (tax included) pricing</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_finance_accounting_customer_invoices"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices.html">Customer invoices</a><ul>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_overview"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/overview.html">Invoicing processes</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_customer_addresses"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/customer_addresses.html">Delivery and invoice addresses</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_payment_terms"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/payment_terms.html">Payment terms and installment plans</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_terms_conditions"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/terms_conditions.html">Default terms and conditions (T&amp;C)</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_cash_discounts"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/cash_discounts.html">Cash discounts and tax reduction</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_credit_notes"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/credit_notes.html">Credit notes and refunds</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_cash_rounding"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/cash_rounding.html">Cash rounding</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_deferred_revenues"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/deferred_revenues.html">Deferred revenues</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_electronic_invoicing"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/electronic_invoicing.html">Electronic invoicing (<abbr title="electronic data interchange">EDI</abbr>)</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_sequence"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/sequence.html">Invoice sequence</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_snailmail"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/snailmail.html">Snailmail</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_epc_qr_code"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/epc_qr_code.html">EPC QR codes</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_customer_invoices_incoterms"><a class="reference internal" href="../../applications/finance/accounting/customer_invoices/incoterms.html">Incoterms</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_finance_accounting_vendor_bills"><a class="reference internal" href="../../applications/finance/accounting/vendor_bills.html">Vendor bills</a><ul>
<li class="toctree-l5 o_menu_applications_finance_accounting_vendor_bills_invoice_digitization"><a class="reference internal" href="../../applications/finance/accounting/vendor_bills/invoice_digitization.html">AI-powered document digitization</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_vendor_bills_assets"><a class="reference internal" href="../../applications/finance/accounting/vendor_bills/assets.html">Non-current assets and fixed assets</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_vendor_bills_deferred_expenses"><a class="reference internal" href="../../applications/finance/accounting/vendor_bills/deferred_expenses.html">Deferred expenses</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_finance_accounting_payments"><a class="reference internal" href="../../applications/finance/accounting/payments.html">Payments</a><ul>
<li class="toctree-l5 o_menu_applications_finance_accounting_payments_online"><a class="reference internal" href="../../applications/finance/accounting/payments/online.html">Online payments</a><ul>
<li class="toctree-l6 o_menu_applications_finance_accounting_payments_online_install_portal_patch"><a class="reference internal" href="../../applications/finance/accounting/payments/online/install_portal_patch.html">Install the patch to disable online invoice payment</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_finance_accounting_payments_checks"><a class="reference internal" href="../../applications/finance/accounting/payments/checks.html">Checks</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_payments_batch"><a class="reference internal" href="../../applications/finance/accounting/payments/batch.html">Batch payments by bank deposit</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_payments_batch_sdd"><a class="reference internal" href="../../applications/finance/accounting/payments/batch_sdd.html">Batch payments: SEPA Direct Debit (SDD)</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_payments_follow_up"><a class="reference internal" href="../../applications/finance/accounting/payments/follow_up.html">Follow-up on invoices</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_payments_pay_sepa"><a class="reference internal" href="../../applications/finance/accounting/payments/pay_sepa.html">Pay with SEPA</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_payments_pay_checks"><a class="reference internal" href="../../applications/finance/accounting/payments/pay_checks.html">Pay by checks</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_payments_forecast"><a class="reference internal" href="../../applications/finance/accounting/payments/forecast.html">Forecast future bills to pay</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_payments_trusted_accounts"><a class="reference internal" href="../../applications/finance/accounting/payments/trusted_accounts.html">Trusted accounts (send money)</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_finance_accounting_bank"><a class="reference internal" href="../../applications/finance/accounting/bank.html">Bank and cash accounts</a><ul>
<li class="toctree-l5 o_menu_applications_finance_accounting_bank_bank_synchronization"><a class="reference internal" href="../../applications/finance/accounting/bank/bank_synchronization.html">Bank synchronization</a><ul>
<li class="toctree-l6 o_menu_applications_finance_accounting_bank_bank_synchronization_saltedge"><a class="reference internal" href="../../applications/finance/accounting/bank/bank_synchronization/saltedge.html">Salt Edge</a></li>
<li class="toctree-l6 o_menu_applications_finance_accounting_bank_bank_synchronization_ponto"><a class="reference internal" href="../../applications/finance/accounting/bank/bank_synchronization/ponto.html">Ponto</a></li>
<li class="toctree-l6 o_menu_applications_finance_accounting_bank_bank_synchronization_enablebanking"><a class="reference internal" href="../../applications/finance/accounting/bank/bank_synchronization/enablebanking.html">Enable Banking</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_finance_accounting_bank_transactions"><a class="reference internal" href="../../applications/finance/accounting/bank/transactions.html">Transactions</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_bank_reconciliation"><a class="reference internal" href="../../applications/finance/accounting/bank/reconciliation.html">Bank reconciliation</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_bank_reconciliation_models"><a class="reference internal" href="../../applications/finance/accounting/bank/reconciliation_models.html">Reconciliation models</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_bank_internal_transfers"><a class="reference internal" href="../../applications/finance/accounting/bank/internal_transfers.html">Internal transfers</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_bank_foreign_currency"><a class="reference internal" href="../../applications/finance/accounting/bank/foreign_currency.html">Manage a bank account in a foreign currency</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_bank_loans"><a class="reference internal" href="../../applications/finance/accounting/bank/loans.html">Loans management</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_finance_accounting_reporting"><a class="reference internal" href="../../applications/finance/accounting/reporting.html">Reporting</a><ul>
<li class="toctree-l5 o_menu_applications_finance_accounting_reporting_tax_returns"><a class="reference internal" href="../../applications/finance/accounting/reporting/tax_returns.html">Tax return (VAT declaration)</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_reporting_tax_carryover"><a class="reference internal" href="../../applications/finance/accounting/reporting/tax_carryover.html">Tax carryover</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_reporting_analytic_accounting"><a class="reference internal" href="../../applications/finance/accounting/reporting/analytic_accounting.html">Analytic accounting</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_reporting_budget"><a class="reference internal" href="../../applications/finance/accounting/reporting/budget.html">Budgets</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_reporting_intrastat"><a class="reference internal" href="../../applications/finance/accounting/reporting/intrastat.html">Intrastat</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_reporting_data_inalterability"><a class="reference internal" href="../../applications/finance/accounting/reporting/data_inalterability.html">Data inalterability check report</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_reporting_silverfin"><a class="reference internal" href="../../applications/finance/accounting/reporting/silverfin.html">Silverfin integration</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_reporting_customize"><a class="reference internal" href="../../applications/finance/accounting/reporting/customize.html">Custom reports</a></li>
<li class="toctree-l5 o_menu_applications_finance_accounting_reporting_year_end"><a class="reference internal" href="../../applications/finance/accounting/reporting/year_end.html">Year-end closing</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_finance_expenses"><a class="reference internal" href="../../applications/finance/expenses.html">Expenses</a><ul>
<li class="toctree-l4 o_menu_applications_finance_expenses_log_expenses"><a class="reference internal" href="../../applications/finance/expenses/log_expenses.html">Log expenses</a></li>
<li class="toctree-l4 o_menu_applications_finance_expenses_expense_reports"><a class="reference internal" href="../../applications/finance/expenses/expense_reports.html">Expense reports</a></li>
<li class="toctree-l4 o_menu_applications_finance_expenses_approve_expenses"><a class="reference internal" href="../../applications/finance/expenses/approve_expenses.html">Approve expenses</a></li>
<li class="toctree-l4 o_menu_applications_finance_expenses_post_expenses"><a class="reference internal" href="../../applications/finance/expenses/post_expenses.html">Post expenses</a></li>
<li class="toctree-l4 o_menu_applications_finance_expenses_reimburse"><a class="reference internal" href="../../applications/finance/expenses/reimburse.html">Reimburse employees</a></li>
<li class="toctree-l4 o_menu_applications_finance_expenses_reinvoice_expenses"><a class="reference internal" href="../../applications/finance/expenses/reinvoice_expenses.html">Re-invoice expenses</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_finance_payment_providers"><a class="reference internal" href="../../applications/finance/payment_providers.html">Online payments</a><ul>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_wire_transfer"><a class="reference internal" href="../../applications/finance/payment_providers/wire_transfer.html">Wire transfers</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_adyen"><a class="reference internal" href="../../applications/finance/payment_providers/adyen.html">Adyen</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_amazon_payment_services"><a class="reference internal" href="../../applications/finance/payment_providers/amazon_payment_services.html">Amazon Payment Services</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_asiapay"><a class="reference internal" href="../../applications/finance/payment_providers/asiapay.html">AsiaPay</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_authorize"><a class="reference internal" href="../../applications/finance/payment_providers/authorize.html">Authorize.Net</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_buckaroo"><a class="reference internal" href="../../applications/finance/payment_providers/buckaroo.html">Buckaroo</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_demo"><a class="reference internal" href="../../applications/finance/payment_providers/demo.html">Demo</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_flutterwave"><a class="reference internal" href="../../applications/finance/payment_providers/flutterwave.html">Flutterwave</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_mercado_pago"><a class="reference internal" href="../../applications/finance/payment_providers/mercado_pago.html">Mercado Pago</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_mollie"><a class="reference internal" href="../../applications/finance/payment_providers/mollie.html">Mollie</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_paypal"><a class="reference internal" href="../../applications/finance/payment_providers/paypal.html">PayPal</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_razorpay"><a class="reference internal" href="../../applications/finance/payment_providers/razorpay.html">Razorpay</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_stripe"><a class="reference internal" href="../../applications/finance/payment_providers/stripe.html">Stripe</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_worldline"><a class="reference internal" href="../../applications/finance/payment_providers/worldline.html">Worldline</a></li>
<li class="toctree-l4 o_menu_applications_finance_payment_providers_xendit"><a class="reference internal" href="../../applications/finance/payment_providers/xendit.html">Xendit</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_finance_fiscal_localizations"><a class="reference internal" href="../../applications/finance/fiscal_localizations.html">Fiscal localizations</a><ul>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_argentina"><a class="reference internal" href="../../applications/finance/fiscal_localizations/argentina.html">Argentina</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_australia"><a class="reference internal" href="../../applications/finance/fiscal_localizations/australia.html">Australia</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_austria"><a class="reference internal" href="../../applications/finance/fiscal_localizations/austria.html">Austria</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_belgium"><a class="reference internal" href="../../applications/finance/fiscal_localizations/belgium.html">Belgium</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_brazil"><a class="reference internal" href="../../applications/finance/fiscal_localizations/brazil.html">Brazil</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_canada"><a class="reference internal" href="../../applications/finance/fiscal_localizations/canada.html">Canada</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_chile"><a class="reference internal" href="../../applications/finance/fiscal_localizations/chile.html">Chile</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_colombia"><a class="reference internal" href="../../applications/finance/fiscal_localizations/colombia.html">Colombia</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_ecuador"><a class="reference internal" href="../../applications/finance/fiscal_localizations/ecuador.html">Ecuador</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_egypt"><a class="reference internal" href="../../applications/finance/fiscal_localizations/egypt.html">Egypt</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_france"><a class="reference internal" href="../../applications/finance/fiscal_localizations/france.html">France</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_germany"><a class="reference internal" href="../../applications/finance/fiscal_localizations/germany.html">Germany</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_hong_kong"><a class="reference internal" href="../../applications/finance/fiscal_localizations/hong_kong.html">Hong Kong</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_india"><a class="reference internal" href="../../applications/finance/fiscal_localizations/india.html">India</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_indonesia"><a class="reference internal" href="../../applications/finance/fiscal_localizations/indonesia.html">Indonesia</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_italy"><a class="reference internal" href="../../applications/finance/fiscal_localizations/italy.html">Italy</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_kenya"><a class="reference internal" href="../../applications/finance/fiscal_localizations/kenya.html">Kenya</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_luxembourg"><a class="reference internal" href="../../applications/finance/fiscal_localizations/luxembourg.html">Luxembourg</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_malaysia"><a class="reference internal" href="../../applications/finance/fiscal_localizations/malaysia.html">Malaysia</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_mexico"><a class="reference internal" href="../../applications/finance/fiscal_localizations/mexico.html">Mexico</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_netherlands"><a class="reference internal" href="../../applications/finance/fiscal_localizations/netherlands.html">Netherlands</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_new_zealand"><a class="reference internal" href="../../applications/finance/fiscal_localizations/new_zealand.html">New Zealand</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_peru"><a class="reference internal" href="../../applications/finance/fiscal_localizations/peru.html">Peru</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_philippines"><a class="reference internal" href="../../applications/finance/fiscal_localizations/philippines.html">Philippines</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_romania"><a class="reference internal" href="../../applications/finance/fiscal_localizations/romania.html">Romania</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_saudi_arabia"><a class="reference internal" href="../../applications/finance/fiscal_localizations/saudi_arabia.html">Saudi Arabia</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_singapore"><a class="reference internal" href="../../applications/finance/fiscal_localizations/singapore.html">Singapore</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_spain"><a class="reference internal" href="../../applications/finance/fiscal_localizations/spain.html">Spain</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_switzerland"><a class="reference internal" href="../../applications/finance/fiscal_localizations/switzerland.html">Switzerland</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_thailand"><a class="reference internal" href="../../applications/finance/fiscal_localizations/thailand.html">Thailand</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_united_arab_emirates"><a class="reference internal" href="../../applications/finance/fiscal_localizations/united_arab_emirates.html">United Arab Emirates</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_united_kingdom"><a class="reference internal" href="../../applications/finance/fiscal_localizations/united_kingdom.html">United Kingdom</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_united_states"><a class="reference internal" href="../../applications/finance/fiscal_localizations/united_states.html">United States</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_uruguay"><a class="reference internal" href="../../applications/finance/fiscal_localizations/uruguay.html">Uruguay</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_vietnam"><a class="reference internal" href="../../applications/finance/fiscal_localizations/vietnam.html">Vietnam</a></li>
<li class="toctree-l4 o_menu_applications_finance_fiscal_localizations_employment_hero"><a class="reference internal" href="../../applications/finance/fiscal_localizations/employment_hero.html">Employment Hero Payroll</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_sales"><a class="reference internal" href="#">Sales</a><ul>
<li class="toctree-l3 o_menu_applications_sales_crm"><a class="reference internal" href="../../applications/sales/crm.html">CRM</a><ul>
<li class="toctree-l4 o_menu_applications_sales_crm_pipeline"><a class="reference internal" href="#">Organize the pipeline</a><ul>
<li class="toctree-l5 o_menu_applications_sales_crm_pipeline_lost_opportunities"><a class="reference internal" href="../../applications/sales/crm/pipeline/lost_opportunities.html">Manage lost opportunities</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_pipeline_merge_similar"><a class="reference internal" href="../../applications/sales/crm/pipeline/merge_similar.html">Merge similar leads and opportunities</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_pipeline_manage_sales_teams"><a class="reference internal" href="../../applications/sales/crm/pipeline/manage_sales_teams.html">Manage sales teams</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_crm_acquire_leads"><a class="reference internal" href="#">Acquire leads</a><ul>
<li class="toctree-l5 o_menu_applications_sales_crm_acquire_leads_convert"><a class="reference internal" href="../../applications/sales/crm/acquire_leads/convert.html">Convert leads into opportunities</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_acquire_leads_opportunities_form"><a class="reference internal" href="../../applications/sales/crm/acquire_leads/opportunities_form.html">Create opportunities from web contact forms</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_acquire_leads_email_manual"><a class="reference internal" href="../../applications/sales/crm/acquire_leads/email_manual.html">Create leads (from email or manually)</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_acquire_leads_send_quotes"><a class="reference internal" href="../../applications/sales/crm/acquire_leads/send_quotes.html">Create and send quotations</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_acquire_leads_lead_mining"><a class="reference internal" href="../../applications/sales/crm/acquire_leads/lead_mining.html">Lead mining</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_crm_track_leads"><a class="reference internal" href="#">Assign and track leads</a><ul>
<li class="toctree-l5 o_menu_applications_sales_crm_track_leads_lead_scoring"><a class="reference internal" href="../../applications/sales/crm/track_leads/lead_scoring.html">Assign leads with predictive lead scoring</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_track_leads_unattended_leads_report"><a class="reference internal" href="../../applications/sales/crm/track_leads/unattended_leads_report.html">Unattended leads report</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_track_leads_quality_leads_report"><a class="reference internal" href="../../applications/sales/crm/track_leads/quality_leads_report.html">Quality leads report</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_track_leads_resellers"><a class="reference internal" href="../../applications/sales/crm/track_leads/resellers.html">Resellers</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_track_leads_marketing_attribution"><a class="reference internal" href="../../applications/sales/crm/track_leads/marketing_attribution.html">Marketing attribution reports</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_track_leads_lead_distribution_report"><a class="reference internal" href="../../applications/sales/crm/track_leads/lead_distribution_report.html">Lead distribution report</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_crm_performance"><a class="reference internal" href="#">Analyze performance</a><ul>
<li class="toctree-l5 o_menu_applications_sales_crm_performance_win_loss"><a class="reference internal" href="../../applications/sales/crm/performance/win_loss.html">Pipeline Analysis</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_performance_expected_revenue_report"><a class="reference internal" href="../../applications/sales/crm/performance/expected_revenue_report.html">Expected revenue report</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_performance_forecast_report"><a class="reference internal" href="../../applications/sales/crm/performance/forecast_report.html">Forecast report</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_crm_optimize"><a class="reference internal" href="#">Optimize your Day-to-Day work</a><ul>
<li class="toctree-l5 o_menu_applications_sales_crm_optimize_partner_autocomplete"><a class="reference internal" href="../../applications/sales/crm/optimize/partner_autocomplete.html">Enrich contacts with partner autocomplete</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_optimize_gamification"><a class="reference internal" href="../../applications/sales/crm/optimize/gamification.html">CRM Gamification</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_optimize_utilize_activities"><a class="reference internal" href="../../applications/sales/crm/optimize/utilize_activities.html">Utilize activities for sales teams</a></li>
<li class="toctree-l5 o_menu_applications_sales_crm_optimize_lead_enrichment"><a class="reference internal" href="../../applications/sales/crm/optimize/lead_enrichment.html">Lead enrichment</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_sales_sales"><a class="reference internal" href="../../applications/sales/sales.html">Sales</a><ul>
<li class="toctree-l4 o_menu_applications_sales_sales_send_quotations"><a class="reference internal" href="#">Send Quotations</a><ul>
<li class="toctree-l5 o_menu_applications_sales_sales_send_quotations_create_quotations"><a class="reference internal" href="../../applications/sales/sales/send_quotations/create_quotations.html">Create quotations</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_send_quotations_quote_template"><a class="reference internal" href="../../applications/sales/sales/send_quotations/quote_template.html">Quotation templates</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_send_quotations_optional_products"><a class="reference internal" href="../../applications/sales/sales/send_quotations/optional_products.html">Optional products</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_send_quotations_get_signature_to_validate"><a class="reference internal" href="../../applications/sales/sales/send_quotations/get_signature_to_validate.html">Online signatures for order confirmations</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_send_quotations_get_paid_to_validate"><a class="reference internal" href="../../applications/sales/sales/send_quotations/get_paid_to_validate.html">Online payment order confirmation</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_send_quotations_deadline"><a class="reference internal" href="../../applications/sales/sales/send_quotations/deadline.html">Quotation deadlines</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_send_quotations_different_addresses"><a class="reference internal" href="../../applications/sales/sales/send_quotations/different_addresses.html">Deliveries and invoices to different addresses</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_send_quotations_orders_and_variants"><a class="reference internal" href="../../applications/sales/sales/send_quotations/orders_and_variants.html">Product variants on quotations and sales orders</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_send_quotations_pdf_quote_builder"><a class="reference internal" href="../../applications/sales/sales/send_quotations/pdf_quote_builder.html">PDF quote builder</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_sales_invoicing"><a class="reference internal" href="#">Invoicing Method</a><ul>
<li class="toctree-l5 o_menu_applications_sales_sales_invoicing_invoicing_policy"><a class="reference internal" href="../../applications/sales/sales/invoicing/invoicing_policy.html">Invoice based on delivered or ordered quantities</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_invoicing_down_payment"><a class="reference internal" href="../../applications/sales/sales/invoicing/down_payment.html">Down payments</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_invoicing_proforma"><a class="reference internal" href="../../applications/sales/sales/invoicing/proforma.html">Pro-forma invoices</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_invoicing_time_materials"><a class="reference internal" href="../../applications/sales/sales/invoicing/time_materials.html">Invoicing based on time and materials</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_invoicing_milestone"><a class="reference internal" href="../../applications/sales/sales/invoicing/milestone.html">Invoice project milestones</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_invoicing_expense"><a class="reference internal" href="../../applications/sales/sales/invoicing/expense.html">Reinvoice expenses to customers</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_sales_products_prices"><a class="reference internal" href="#">Products &amp; Prices</a><ul>
<li class="toctree-l5 o_menu_applications_sales_sales_products_prices_products"><a class="reference internal" href="#">Manage your products</a><ul>
<li class="toctree-l6 o_menu_applications_sales_sales_products_prices_products_import"><a class="reference internal" href="../../applications/sales/sales/products_prices/products/import.html">Import products</a></li>
<li class="toctree-l6 o_menu_applications_sales_sales_products_prices_products_variants"><a class="reference internal" href="../../applications/sales/sales/products_prices/products/variants.html">Product variants</a></li>
<li class="toctree-l6 o_menu_applications_sales_sales_products_prices_products_product_images"><a class="reference internal" href="../../applications/sales/sales/products_prices/products/product_images.html">Product images with Google Images</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_sales_sales_products_prices_prices"><a class="reference internal" href="#">Manage your pricing</a><ul>
<li class="toctree-l6 o_menu_applications_sales_sales_products_prices_prices_pricing"><a class="reference internal" href="../../applications/sales/sales/products_prices/prices/pricing.html">Pricelists</a></li>
<li class="toctree-l6 o_menu_applications_sales_sales_products_prices_prices_currencies"><a class="reference internal" href="../../applications/sales/sales/products_prices/prices/currencies.html">Foreign currencies</a></li>
<li class="toctree-l6 o_menu_applications_sales_sales_products_prices_prices_discounts"><a class="reference internal" href="../../applications/sales/sales/products_prices/prices/discounts.html">Discounts</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_sales_sales_products_prices_returns"><a class="reference internal" href="../../applications/sales/sales/products_prices/returns.html">Returns and refunds</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_products_prices_ewallets_giftcards"><a class="reference internal" href="../../applications/sales/sales/products_prices/ewallets_giftcards.html">Use eWallets and gift cards</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_products_prices_loyalty_discount"><a class="reference internal" href="../../applications/sales/sales/products_prices/loyalty_discount.html">Discount and loyalty programs</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_sales_amazon_connector"><a class="reference internal" href="#">Amazon Connector</a><ul>
<li class="toctree-l5 o_menu_applications_sales_sales_amazon_connector_features"><a class="reference internal" href="../../applications/sales/sales/amazon_connector/features.html">Amazon Connector features</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_amazon_connector_setup"><a class="reference internal" href="../../applications/sales/sales/amazon_connector/setup.html">Amazon Connector configuration</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_amazon_connector_manage"><a class="reference internal" href="../../applications/sales/sales/amazon_connector/manage.html">Amazon order management</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_sales_shopee_connector"><a class="reference internal" href="../../applications/sales/sales/shopee_connector.html">Shopee Connector</a><ul>
<li class="toctree-l5 o_menu_applications_sales_sales_shopee_connector_setup"><a class="reference internal" href="../../applications/sales/sales/shopee_connector/setup.html">Shopee Connector configuration</a></li>
<li class="toctree-l5 o_menu_applications_sales_sales_shopee_connector_manage"><a class="reference internal" href="../../applications/sales/sales/shopee_connector/manage.html">Shopee order management</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_sales_gelato"><a class="reference internal" href="../../applications/sales/sales/gelato.html">Gelato</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_sales_point_of_sale"><a class="reference internal" href="../../applications/sales/point_of_sale.html">Point of Sale</a><ul>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_configuration"><a class="reference internal" href="../../applications/sales/point_of_sale/configuration.html">Configuration</a><ul>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_configuration_pos_iot"><a class="reference internal" href="../../applications/sales/point_of_sale/configuration/pos_iot.html">IoT system connection</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_configuration_epos_printers"><a class="reference internal" href="../../applications/sales/point_of_sale/configuration/epos_printers.html">ePOS printers</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_configuration_https"><a class="reference internal" href="../../applications/sales/point_of_sale/configuration/https.html">Secure connection (HTTPS)</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_configuration_epos_ssc"><a class="reference internal" href="../../applications/sales/point_of_sale/configuration/epos_ssc.html">Self-signed certificate for ePOS printers</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_employee_login"><a class="reference internal" href="../../applications/sales/point_of_sale/employee_login.html">Multi-employee management</a></li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_receipts_invoices"><a class="reference internal" href="../../applications/sales/point_of_sale/receipts_invoices.html">Receipts and invoices</a></li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_preparation"><a class="reference internal" href="../../applications/sales/point_of_sale/preparation.html">Preparation display</a></li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_combos"><a class="reference internal" href="../../applications/sales/point_of_sale/combos.html">Product combos</a></li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_shop"><a class="reference internal" href="#">Shop features</a><ul>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_shop_sales_order"><a class="reference internal" href="../../applications/sales/point_of_sale/shop/sales_order.html">Sales orders</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_shop_barcode"><a class="reference internal" href="../../applications/sales/point_of_sale/shop/barcode.html">Barcodes</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_shop_serial_numbers"><a class="reference internal" href="../../applications/sales/point_of_sale/shop/serial_numbers.html">Serial numbers and lots</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_shop_ship_later"><a class="reference internal" href="../../applications/sales/point_of_sale/shop/ship_later.html">Ship later</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_shop_customer_display"><a class="reference internal" href="../../applications/sales/point_of_sale/shop/customer_display.html">Customer display</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_restaurant"><a class="reference internal" href="../../applications/sales/point_of_sale/restaurant.html">Restaurant features</a><ul>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_restaurant_floors_tables"><a class="reference internal" href="../../applications/sales/point_of_sale/restaurant/floors_tables.html">Floors and tables</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_restaurant_kitchen_printing"><a class="reference internal" href="../../applications/sales/point_of_sale/restaurant/kitchen_printing.html">Orders printing</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_restaurant_bill_printing"><a class="reference internal" href="../../applications/sales/point_of_sale/restaurant/bill_printing.html">Bills</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_restaurant_tips"><a class="reference internal" href="../../applications/sales/point_of_sale/restaurant/tips.html">Tips</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_pricing"><a class="reference internal" href="#">Pricing features</a><ul>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_pricing_discounts"><a class="reference internal" href="../../applications/sales/point_of_sale/pricing/discounts.html">Discounts</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_pricing_discount_tags"><a class="reference internal" href="../../applications/sales/point_of_sale/pricing/discount_tags.html">Discount tags (barcode scanner)</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_pricing_loyalty"><a class="reference internal" href="../../applications/sales/point_of_sale/pricing/loyalty.html">Loyalty programs</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_pricing_pricelists"><a class="reference internal" href="../../applications/sales/point_of_sale/pricing/pricelists.html">Pricelists</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_pricing_fiscal_position"><a class="reference internal" href="../../applications/sales/point_of_sale/pricing/fiscal_position.html">Flexible taxes (fiscal positions)</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_pricing_cash_rounding"><a class="reference internal" href="../../applications/sales/point_of_sale/pricing/cash_rounding.html">Cash rounding</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_pricing_electronic_labels"><a class="reference internal" href="../../applications/sales/point_of_sale/pricing/electronic_labels.html">Electronic shelf labels</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_payment_methods"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods.html">Payment methods</a><ul>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_payment_methods_qr_code_payment"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/qr_code_payment.html">QR code payments</a></li>
<li class="toctree-l5 o_menu_applications_sales_point_of_sale_payment_methods_terminals"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/terminals.html">Payment terminals</a><ul>
<li class="toctree-l6 o_menu_applications_sales_point_of_sale_payment_methods_terminals_adyen"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/terminals/adyen.html">Adyen</a></li>
<li class="toctree-l6 o_menu_applications_sales_point_of_sale_payment_methods_terminals_ingenico"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/terminals/ingenico.html">Ingenico</a></li>
<li class="toctree-l6 o_menu_applications_sales_point_of_sale_payment_methods_terminals_mercado_pago"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/terminals/mercado_pago.html">Mercado Pago</a></li>
<li class="toctree-l6 o_menu_applications_sales_point_of_sale_payment_methods_terminals_razorpay"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/terminals/razorpay.html">Razorpay</a></li>
<li class="toctree-l6 o_menu_applications_sales_point_of_sale_payment_methods_terminals_six"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/terminals/six.html">SIX</a></li>
<li class="toctree-l6 o_menu_applications_sales_point_of_sale_payment_methods_terminals_stripe"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/terminals/stripe.html">Stripe</a></li>
<li class="toctree-l6 o_menu_applications_sales_point_of_sale_payment_methods_terminals_viva_wallet"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/terminals/viva_wallet.html">Viva Wallet</a></li>
<li class="toctree-l6 o_menu_applications_sales_point_of_sale_payment_methods_terminals_worldline"><a class="reference internal" href="../../applications/sales/point_of_sale/payment_methods/terminals/worldline.html">Worldline</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_pos_based_marketing"><a class="reference internal" href="../../applications/sales/point_of_sale/pos_based_marketing.html">Marketing features</a></li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_online_food_delivery"><a class="reference internal" href="../../applications/sales/point_of_sale/online_food_delivery.html">Online food delivery</a></li>
<li class="toctree-l4 o_menu_applications_sales_point_of_sale_reporting"><a class="reference internal" href="../../applications/sales/point_of_sale/reporting.html">Reporting</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_sales_subscriptions"><a class="reference internal" href="../../applications/sales/subscriptions.html">Subscriptions</a><ul>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_products"><a class="reference internal" href="../../applications/sales/subscriptions/products.html">Subscription products</a></li>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_ecommerce"><a class="reference internal" href="../../applications/sales/subscriptions/ecommerce.html">Subscriptions in the eCommerce shop</a></li>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_plans"><a class="reference internal" href="../../applications/sales/subscriptions/plans.html">Subscription plans</a></li>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_upselling"><a class="reference internal" href="../../applications/sales/subscriptions/upselling.html">Upsell subscriptions</a></li>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_renewals"><a class="reference internal" href="../../applications/sales/subscriptions/renewals.html">Renew subscriptions</a></li>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_closing"><a class="reference internal" href="../../applications/sales/subscriptions/closing.html">Close subscriptions</a></li>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_automatic_alerts"><a class="reference internal" href="../../applications/sales/subscriptions/automatic_alerts.html">Automation rules</a></li>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_scheduled_actions"><a class="reference internal" href="../../applications/sales/subscriptions/scheduled_actions.html">Scheduled actions</a></li>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_reports"><a class="reference internal" href="../../applications/sales/subscriptions/reports.html">Subscription reports</a></li>
<li class="toctree-l4 o_menu_applications_sales_subscriptions_payment_providers"><a class="reference internal" href="#">Payment providers</a><ul>
<li class="toctree-l5 o_menu_applications_sales_subscriptions_payment_providers_wire_transfer"><a class="reference internal" href="../../applications/sales/subscriptions/payment_providers/wire_transfer.html">Wire transfer</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_sales_rental"><a class="reference internal" href="../../applications/sales/rental.html">Rental</a></li>
<li class="toctree-l3 o_menu_applications_sales_members"><a class="reference internal" href="../../applications/sales/members.html">Members</a><ul>
<li class="toctree-l4 o_menu_applications_sales_members_members_analysis"><a class="reference internal" href="../../applications/sales/members/members_analysis.html">Members analysis</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_websites"><a class="reference internal" href="#">Websites</a><ul>
<li class="toctree-l3 o_menu_applications_websites_website"><a class="reference internal" href="../../applications/websites/website.html">Website</a><ul>
<li class="toctree-l4 o_menu_applications_websites_website_web_design"><a class="reference internal" href="#">Web design</a><ul>
<li class="toctree-l5 o_menu_applications_websites_website_web_design_building_blocks"><a class="reference internal" href="../../applications/websites/website/web_design/building_blocks.html">Building blocks</a><ul>
<li class="toctree-l6 o_menu_applications_websites_website_web_design_building_blocks_structure"><a class="reference internal" href="../../applications/websites/website/web_design/building_blocks/structure.html">Structure</a></li>
<li class="toctree-l6 o_menu_applications_websites_website_web_design_building_blocks_features"><a class="reference internal" href="../../applications/websites/website/web_design/building_blocks/features.html">Features</a></li>
<li class="toctree-l6 o_menu_applications_websites_website_web_design_building_blocks_dynamic_content"><a class="reference internal" href="../../applications/websites/website/web_design/building_blocks/dynamic_content.html">Dynamic content</a></li>
<li class="toctree-l6 o_menu_applications_websites_website_web_design_building_blocks_inner_content"><a class="reference internal" href="../../applications/websites/website/web_design/building_blocks/inner_content.html">Inner content</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_websites_website_web_design_themes"><a class="reference internal" href="../../applications/websites/website/web_design/themes.html">Website themes</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_websites_website_pages"><a class="reference internal" href="../../applications/websites/website/pages.html">Pages</a><ul>
<li class="toctree-l5 o_menu_applications_websites_website_pages_menus"><a class="reference internal" href="../../applications/websites/website/pages/menus.html">Menus</a></li>
<li class="toctree-l5 o_menu_applications_websites_website_pages_seo"><a class="reference internal" href="../../applications/websites/website/pages/seo.html">Search Engine Optimization (SEO)</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_websites_website_configuration"><a class="reference internal" href="#">Configuration</a><ul>
<li class="toctree-l5 o_menu_applications_websites_website_configuration_domain_names"><a class="reference internal" href="../../applications/websites/website/configuration/domain_names.html">Domain names</a></li>
<li class="toctree-l5 o_menu_applications_websites_website_configuration_address_autocomplete"><a class="reference internal" href="../../applications/websites/website/configuration/address_autocomplete.html">Address autocomplete</a></li>
<li class="toctree-l5 o_menu_applications_websites_website_configuration_google_search_console"><a class="reference internal" href="../../applications/websites/website/configuration/google_search_console.html">Google Search Console</a></li>
<li class="toctree-l5 o_menu_applications_websites_website_configuration_cookies_bar"><a class="reference internal" href="../../applications/websites/website/configuration/cookies_bar.html">Cookies bar</a></li>
<li class="toctree-l5 o_menu_applications_websites_website_configuration_translate"><a class="reference internal" href="../../applications/websites/website/configuration/translate.html">Translations</a></li>
<li class="toctree-l5 o_menu_applications_websites_website_configuration_multi_website"><a class="reference internal" href="../../applications/websites/website/configuration/multi_website.html">Multiple websites</a></li>
<li class="toctree-l5 o_menu_applications_websites_website_configuration_spam_protection"><a class="reference internal" href="../../applications/websites/website/configuration/spam_protection.html">Forms spam protection</a></li>
<li class="toctree-l5 o_menu_applications_websites_website_configuration_cdn"><a class="reference internal" href="../../applications/websites/website/configuration/cdn.html">Set up a content delivery network (CDN)</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_websites_website_reporting"><a class="reference internal" href="#">Reporting</a><ul>
<li class="toctree-l5 o_menu_applications_websites_website_reporting_analytics"><a class="reference internal" href="../../applications/websites/website/reporting/analytics.html">Website analytics</a></li>
<li class="toctree-l5 o_menu_applications_websites_website_reporting_link_tracker"><a class="reference internal" href="../../applications/websites/website/reporting/link_tracker.html">Link tracker</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_websites_website_mail_groups"><a class="reference internal" href="../../applications/websites/website/mail_groups.html">Mail groups</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_websites_ecommerce"><a class="reference internal" href="../../applications/websites/ecommerce.html">eCommerce</a><ul>
<li class="toctree-l4 o_menu_applications_websites_ecommerce_products"><a class="reference internal" href="../../applications/websites/ecommerce/products.html">Products</a><ul>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_products_catalog"><a class="reference internal" href="../../applications/websites/ecommerce/products/catalog.html">Catalog</a></li>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_products_price_management"><a class="reference internal" href="../../applications/websites/ecommerce/products/price_management.html">Price management</a></li>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_products_cross_upselling"><a class="reference internal" href="../../applications/websites/ecommerce/products/cross_upselling.html">Cross-selling and upselling</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_websites_ecommerce_checkout_payment_shipping"><a class="reference internal" href="#">Checkout, payment, and delivery</a><ul>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_checkout_payment_shipping_cart"><a class="reference internal" href="../../applications/websites/ecommerce/checkout_payment_shipping/cart.html">Add to cart</a></li>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_checkout_payment_shipping_checkout"><a class="reference internal" href="../../applications/websites/ecommerce/checkout_payment_shipping/checkout.html">Checkout</a></li>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_checkout_payment_shipping_shipping"><a class="reference internal" href="../../applications/websites/ecommerce/checkout_payment_shipping/shipping.html">Delivery</a></li>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_checkout_payment_shipping_payments"><a class="reference internal" href="../../applications/websites/ecommerce/checkout_payment_shipping/payments.html">Payment providers</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_websites_ecommerce_ecommerce_management"><a class="reference internal" href="#">eCommerce management</a><ul>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_ecommerce_management_order_handling"><a class="reference internal" href="../../applications/websites/ecommerce/ecommerce_management/order_handling.html">Order handling</a></li>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_ecommerce_management_customer_accounts"><a class="reference internal" href="../../applications/websites/ecommerce/ecommerce_management/customer_accounts.html">Customer accounts</a></li>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_ecommerce_management_customer_interaction"><a class="reference internal" href="../../applications/websites/ecommerce/ecommerce_management/customer_interaction.html">Customer interaction</a></li>
<li class="toctree-l5 o_menu_applications_websites_ecommerce_ecommerce_management_performance"><a class="reference internal" href="../../applications/websites/ecommerce/ecommerce_management/performance.html">Performance monitoring</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_websites_elearning"><a class="reference internal" href="../../applications/websites/elearning.html">eLearning</a></li>
<li class="toctree-l3 o_menu_applications_websites_forum"><a class="reference internal" href="../../applications/websites/forum.html">Forum</a></li>
<li class="toctree-l3 o_menu_applications_websites_blog"><a class="reference internal" href="../../applications/websites/blog.html">Blog</a></li>
<li class="toctree-l3 o_menu_applications_websites_livechat"><a class="reference internal" href="../../applications/websites/livechat.html">Live Chat</a><ul>
<li class="toctree-l4 o_menu_applications_websites_livechat_ratings"><a class="reference internal" href="../../applications/websites/livechat/ratings.html">Ratings</a></li>
<li class="toctree-l4 o_menu_applications_websites_livechat_responses"><a class="reference internal" href="../../applications/websites/livechat/responses.html">Commands and canned responses</a></li>
<li class="toctree-l4 o_menu_applications_websites_livechat_chatbots"><a class="reference internal" href="../../applications/websites/livechat/chatbots.html">Chatbots</a></li>
<li class="toctree-l4 o_menu_applications_websites_livechat_reports"><a class="reference internal" href="../../applications/websites/livechat/reports.html">Reports</a></li>
<li class="toctree-l4 o_menu_applications_websites_livechat_participate"><a class="reference internal" href="../../applications/websites/livechat/participate.html">Participate in live chat</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_inventory_and_mrp"><a class="reference internal" href="#">Supply Chain</a><ul>
<li class="toctree-l3 o_menu_applications_inventory_and_mrp_inventory"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory.html">Inventory</a><ul>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_inventory_product_management"><a class="reference internal" href="#">Product management</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_product_management_configure"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/configure.html">Configure product</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_configure_type"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/configure/type.html">Product type</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_configure_uom"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/configure/uom.html">Units of measure</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_configure_package"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/configure/package.html">Packages</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_configure_packaging"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/configure/packaging.html">Packaging</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_product_management_product_tracking"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/product_tracking.html">Product tracking</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_product_tracking_serial_numbers"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/product_tracking/serial_numbers.html">Serial numbers</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_product_tracking_lots"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.html">Lot numbers</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_product_tracking_reassign"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/product_tracking/reassign.html">Reassign lot/serial numbers</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_product_tracking_expiration_dates"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/product_tracking/expiration_dates.html">Expiration dates</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_product_management_inventory_valuation"><a class="reference internal" href="#">Inventory valuation</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_inventory_valuation_inventory_valuation_config"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config.html">Automatic inventory valuation</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_inventory_valuation_using_inventory_valuation"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/inventory_valuation/using_inventory_valuation.html">Using inventory valuation</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_inventory_valuation_landed_costs"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/inventory_valuation/landed_costs.html">Landed costs</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_product_management_inventory_valuation_valuation_by_lots"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.html">Valuation by lots/serial numbers</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage"><a class="reference internal" href="#">Warehouses and storage</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_inventory_management"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management.html">Inventory management</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_inventory_management_warehouses"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses.html">Warehouses</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_inventory_management_use_locations"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations.html">Locations</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_inventory_management_count_products"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/count_products.html">Inventory adjustments</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_inventory_management_cycle_counts"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/cycle_counts.html">Cycle counts</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_inventory_management_scrap_inventory"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/scrap_inventory.html">Scrap inventory</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_inventory_management_product_catalog"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/product_catalog.html">Product catalog</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_replenishment"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.html">Replenishment</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_replenishment_mto"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.html">Replenish on order (MTO)</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_replenishment_reordering_rules"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules.html">Reordering rules</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_replenishment_report"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/report.html">Replenishment report</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_replenishment_lead_times"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/lead_times.html">Lead times</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_replenishment_resupply_warehouses"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses.html">Inter-warehouse replenishment</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_reporting"><a class="reference internal" href="#">Reporting</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_reporting_stock"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/reporting/stock.html">Stock report</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_reporting_locations"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/reporting/locations.html">Locations dashboard</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_reporting_moves_history"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/reporting/moves_history.html">Moves history dashboard</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_warehouses_storage_reporting_aging"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/warehouses_storage/reporting/aging.html">Stock valuation dashboard</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving"><a class="reference internal" href="#">Shipping and receiving</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations.html">Inbound and outbound flows</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_use_routes"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/use_routes.html">Routes and push/pull rules</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_receipts_delivery_one_step"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/receipts_delivery_one_step.html">One-step receipt and delivery</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_receipts_delivery_two_steps"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/receipts_delivery_two_steps.html">Two-step receipt and delivery</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_receipts_three_steps"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/receipts_three_steps.html">Three-step receipt</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_delivery_three_steps"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/delivery_three_steps.html">Three-step delivery</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_putaway"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/putaway.html">Putaway rules</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_storage_category"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/storage_category.html">Storage categories</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_cross_dock"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/cross_dock.html">Organize a cross-dock in a warehouse</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_stock_warehouses"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/stock_warehouses.html">Sell stock from multiple warehouses using virtual locations</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_owned_stock"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/owned_stock.html">Consignment: buy and sell stock without owning it</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_daily_operations_dropshipping"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/dropshipping.html">Dropshipping</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration.html">Delivery methods</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_new_delivery_method"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/new_delivery_method.html">Add a new delivery method</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_third_party_shipper"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/third_party_shipper.html">Third-party shipping carriers</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_labels"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/labels.html">Print shipping labels</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_bpost"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/bpost.html">Bpost integration</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_dhl_credentials"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/dhl_credentials.html">DHL integration</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_fedex"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/fedex.html">FedEx integration</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_sendcloud_shipping"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.html">Sendcloud integration</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_starshipit_shipping"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/starshipit_shipping.html">Starshipit shipping</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_ups_credentials"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/ups_credentials.html">UPS integration</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_zebra"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/zebra.html">Zebra label configuration</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_cancel"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/cancel.html">How to cancel a shipping request to a shipper?</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_invoicing"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/invoicing.html">Shipping cost invoicing</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_label_type"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/label_type.html">Change shipping label size</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_multipack"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/multipack.html">Multi-package shipments</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_print_on_validation"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/print_on_validation.html">Printable delivery PDFs</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_setup_configuration_dispatch"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/dispatch.html">Dispatch management system</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_reservation_methods"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/reservation_methods.html">Reservation methods</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_reservation_methods_at_confirmation"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/reservation_methods/at_confirmation.html">At confirmation reservation</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_reservation_methods_manually"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/reservation_methods/manually.html">Manual reservation</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_reservation_methods_before_scheduled_date"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/reservation_methods/before_scheduled_date.html">Before scheduled date reservation</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_picking_methods"><a class="reference internal" href="#">Picking methods</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_picking_methods_batch"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/picking_methods/batch.html">Batch picking</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_picking_methods_cluster"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/picking_methods/cluster.html">Cluster picking</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_picking_methods_wave"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/picking_methods/wave.html">Wave transfers</a></li>
</ul>
</li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_removal_strategies"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies.html">Removal strategies</a><ul>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_removal_strategies_fifo"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fifo.html">FIFO removal</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_removal_strategies_lifo"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/lifo.html">LIFO removal</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_removal_strategies_fefo"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo.html">FEFO removal</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_removal_strategies_closest_location"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/closest_location.html">Closest location removal</a></li>
<li class="toctree-l6 o_menu_applications_inventory_and_mrp_inventory_shipping_receiving_removal_strategies_least_packages"><a class="reference internal" href="../../applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/least_packages.html">Least packages removal</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_inventory_and_mrp_manufacturing"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing.html">Manufacturing</a><ul>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_manufacturing_basic_setup"><a class="reference internal" href="#">Basic setup</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_basic_setup_configure_manufacturing_product"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/basic_setup/configure_manufacturing_product.html">Manufacturing product configuration</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_basic_setup_bill_configuration"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration.html">Bill of materials</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_basic_setup_one_step_manufacturing"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/basic_setup/one_step_manufacturing.html">One-step manufacturing</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_basic_setup_two_step_manufacturing"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/basic_setup/two_step_manufacturing.html">Two-step manufacturing</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_basic_setup_three_step_manufacturing"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/basic_setup/three_step_manufacturing.html">Three-step manufacturing</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_basic_setup_mo_costs"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/basic_setup/mo_costs.html">Manufacturing order costs</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_manufacturing_advanced_configuration"><a class="reference internal" href="#">Advanced configuration</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_advanced_configuration_product_variants"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/advanced_configuration/product_variants.html">Managing BoMs for product variants</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_advanced_configuration_kit_shipping"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/advanced_configuration/kit_shipping.html">Use kits</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_advanced_configuration_sub_assemblies"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/advanced_configuration/sub_assemblies.html">Manage semi-finished products</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_advanced_configuration_using_work_centers"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/advanced_configuration/using_work_centers.html">Manage work orders using work centers</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_advanced_configuration_work_order_dependencies"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/advanced_configuration/work_order_dependencies.html">Work order dependencies</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_manufacturing_workflows"><a class="reference internal" href="#">Workflows</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_workflows_use_mps"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/workflows/use_mps.html">Master production schedule</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_workflows_work_center_time_off"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/workflows/work_center_time_off.html">Work center time off</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_workflows_scrap_manufacturing"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/workflows/scrap_manufacturing.html">Scrap during manufacturing</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_workflows_manufacturing_backorders"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/workflows/manufacturing_backorders.html">Manufacturing backorders</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_workflows_split_merge"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/workflows/split_merge.html">Split and merge manufacturing orders</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_workflows_unbuild_orders"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/workflows/unbuild_orders.html">Unbuild orders</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_workflows_byproducts"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/workflows/byproducts.html">By-Products</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_workflows_continuous_improvement"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/workflows/continuous_improvement.html">Continuous product improvement</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_workflows_manufacture_lots_serials"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/workflows/manufacture_lots_serials.html">Manufacture with lots and serial numbers</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_manufacturing_shop_floor"><a class="reference internal" href="#">Shop Floor</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_shop_floor_shop_floor_overview"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.html">Shop Floor overview</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_shop_floor_shop_floor_tracking"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_tracking.html">Shop Floor time tracking</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_manufacturing_subcontracting"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/subcontracting.html">Subcontracting</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_subcontracting_subcontracting_basic"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/subcontracting/subcontracting_basic.html">Basic subcontracting</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_subcontracting_basic_subcontracting_lead_times"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/subcontracting/basic_subcontracting_lead_times.html">Basic subcontracting lead times</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_subcontracting_subcontracting_resupply"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/subcontracting/subcontracting_resupply.html">Resupply subcontractor</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_subcontracting_resupply_subcontracting_lead_times"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/subcontracting/resupply_subcontracting_lead_times.html">Resupply subcontracting lead times</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_subcontracting_subcontracting_dropship"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/subcontracting/subcontracting_dropship.html">Dropship to subcontractor</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_subcontracting_dropship_subcontracting_lead_times"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/subcontracting/dropship_subcontracting_lead_times.html">Dropship subcontracting lead times</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_manufacturing_reporting"><a class="reference internal" href="#">Reporting</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_reporting_allocation"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/reporting/allocation.html">Allocation reports</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_reporting_oee"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/reporting/oee.html">Overall equipment effectiveness</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_manufacturing_reporting_production_analysis"><a class="reference internal" href="../../applications/inventory_and_mrp/manufacturing/reporting/production_analysis.html">Production analysis</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_inventory_and_mrp_purchase"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase.html">Purchase</a><ul>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_purchase_products"><a class="reference internal" href="#">Products</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_products_pricelist"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/products/pricelist.html">Import vendor pricelist</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_products_reordering"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/products/reordering.html">Configure reordering rules</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_products_temporary_reordering"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/products/temporary_reordering.html">Temporary reordering rules</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_products_uom"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/products/uom.html">Purchase units of measure</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_purchase_manage_deals"><a class="reference internal" href="#">Manage deals</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_manage_deals_rfq"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/manage_deals/rfq.html">Requests for quotation</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_manage_deals_blanket_orders"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/manage_deals/blanket_orders.html">Blanket orders</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_manage_deals_calls_for_tenders"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders.html">Call for tenders</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_manage_deals_purchase_templates"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/manage_deals/purchase_templates.html">Purchase templates</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_manage_deals_control_bills"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/manage_deals/control_bills.html">Bill control policies</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_manage_deals_manage"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/manage_deals/manage.html">Manage vendor bills</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_purchase_advanced"><a class="reference internal" href="#">Advanced</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_advanced_analyze"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/advanced/analyze.html">Purchase Analysis report</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_advanced_vendor_costs_report"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/advanced/vendor_costs_report.html">Vendor costs report</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_purchase_advanced_procurement_expenses_report"><a class="reference internal" href="../../applications/inventory_and_mrp/purchase/advanced/procurement_expenses_report.html">Procurement expenses report</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_inventory_and_mrp_barcode"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode.html">Barcode</a><ul>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_barcode_setup"><a class="reference internal" href="#">Setup</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_setup_device_troubleshooting"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/setup/device_troubleshooting.html">Barcode device troubleshooting</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_setup_hardware"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/setup/hardware.html">Barcode scanner setup</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_setup_software"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/setup/software.html">Activate the Barcodes in Odoo</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_barcode_operations"><a class="reference internal" href="#">Daily operations</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_operations_adjustments"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/operations/adjustments.html">Apply inventory adjustments with barcodes</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_operations_receipts_deliveries"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/operations/receipts_deliveries.html">Process receipts and deliveries with barcodes</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_operations_process_transfers"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/operations/process_transfers.html">Process batch transfers</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_operations_transfers_scratch"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/operations/transfers_scratch.html">Create and process transfers with barcodes</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_operations_barcode_nomenclature"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/operations/barcode_nomenclature.html">Default barcode nomenclature</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_operations_gs1_nomenclature"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.html">GS1 barcode nomenclature</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_barcode_operations_gs1_usage"><a class="reference internal" href="../../applications/inventory_and_mrp/barcode/operations/gs1_usage.html">GS1 barcode usage</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_inventory_and_mrp_quality"><a class="reference internal" href="../../applications/inventory_and_mrp/quality.html">Quality</a><ul>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_quality_quality_management"><a class="reference internal" href="#">Quality control basics</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_quality_quality_management_quality_control_points"><a class="reference internal" href="../../applications/inventory_and_mrp/quality/quality_management/quality_control_points.html">Quality control points</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_quality_quality_management_quality_alerts"><a class="reference internal" href="../../applications/inventory_and_mrp/quality/quality_management/quality_alerts.html">Quality alerts</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_quality_quality_management_quality_checks"><a class="reference internal" href="../../applications/inventory_and_mrp/quality/quality_management/quality_checks.html">Quality checks</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_quality_quality_management_failure_locations"><a class="reference internal" href="../../applications/inventory_and_mrp/quality/quality_management/failure_locations.html">Failure locations</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_quality_quality_check_types"><a class="reference internal" href="#">Quality check types</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_quality_quality_check_types_instructions_check"><a class="reference internal" href="../../applications/inventory_and_mrp/quality/quality_check_types/instructions_check.html">Instructions quality check</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_quality_quality_check_types_pass_fail_check"><a class="reference internal" href="../../applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.html">Pass - Fail quality check</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_quality_quality_check_types_measure_check"><a class="reference internal" href="../../applications/inventory_and_mrp/quality/quality_check_types/measure_check.html">Measure quality check</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_quality_quality_check_types_picture_check"><a class="reference internal" href="../../applications/inventory_and_mrp/quality/quality_check_types/picture_check.html">Take a Picture quality check</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_inventory_and_mrp_maintenance"><a class="reference internal" href="../../applications/inventory_and_mrp/maintenance.html">Maintenance</a><ul>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_maintenance_add_new_equipment"><a class="reference internal" href="../../applications/inventory_and_mrp/maintenance/add_new_equipment.html">Add new equipment</a></li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_maintenance_maintenance_calendar"><a class="reference internal" href="../../applications/inventory_and_mrp/maintenance/maintenance_calendar.html">Maintenance calendar</a></li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_maintenance_maintenance_requests"><a class="reference internal" href="../../applications/inventory_and_mrp/maintenance/maintenance_requests.html">Maintenance requests</a></li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_maintenance_maintenance_setup"><a class="reference internal" href="../../applications/inventory_and_mrp/maintenance/maintenance_setup.html">Maintenance setup</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_inventory_and_mrp_plm"><a class="reference internal" href="../../applications/inventory_and_mrp/plm.html">Product lifecycle management</a><ul>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_plm_manage_changes"><a class="reference internal" href="#">Change management</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_plm_manage_changes_engineering_change_orders"><a class="reference internal" href="../../applications/inventory_and_mrp/plm/manage_changes/engineering_change_orders.html">Engineering change orders</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_plm_manage_changes_eco_type"><a class="reference internal" href="../../applications/inventory_and_mrp/plm/manage_changes/eco_type.html">ECO type</a></li>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_plm_manage_changes_version_control"><a class="reference internal" href="../../applications/inventory_and_mrp/plm/manage_changes/version_control.html">Version control</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_plm_management"><a class="reference internal" href="#">Project management</a><ul>
<li class="toctree-l5 o_menu_applications_inventory_and_mrp_plm_management_approvals"><a class="reference internal" href="../../applications/inventory_and_mrp/plm/management/approvals.html">Approvals</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_inventory_and_mrp_repairs"><a class="reference internal" href="../../applications/inventory_and_mrp/repairs.html">Repairs</a><ul>
<li class="toctree-l4 o_menu_applications_inventory_and_mrp_repairs_repair_orders"><a class="reference internal" href="../../applications/inventory_and_mrp/repairs/repair_orders.html">Process repair orders</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_hr"><a class="reference internal" href="#">Human resources</a><ul>
<li class="toctree-l3 o_menu_applications_hr_attendances"><a class="reference internal" href="../../applications/hr/attendances.html">Attendances</a><ul>
<li class="toctree-l4 o_menu_applications_hr_attendances_check_in_check_out"><a class="reference internal" href="../../applications/hr/attendances/check_in_check_out.html">Check in and out</a></li>
<li class="toctree-l4 o_menu_applications_hr_attendances_kiosks"><a class="reference internal" href="../../applications/hr/attendances/kiosks.html">Kiosks</a></li>
<li class="toctree-l4 o_menu_applications_hr_attendances_hardware"><a class="reference internal" href="../../applications/hr/attendances/hardware.html">Hardware</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_hr_employees"><a class="reference internal" href="../../applications/hr/employees.html">Employees</a><ul>
<li class="toctree-l4 o_menu_applications_hr_employees_new_employee"><a class="reference internal" href="../../applications/hr/employees/new_employee.html">New employees</a></li>
<li class="toctree-l4 o_menu_applications_hr_employees_departments"><a class="reference internal" href="../../applications/hr/employees/departments.html">Departments</a></li>
<li class="toctree-l4 o_menu_applications_hr_employees_certifications"><a class="reference internal" href="../../applications/hr/employees/certifications.html">Certifications</a></li>
<li class="toctree-l4 o_menu_applications_hr_employees_offboarding"><a class="reference internal" href="../../applications/hr/employees/offboarding.html">Offboarding</a></li>
<li class="toctree-l4 o_menu_applications_hr_employees_retention_report"><a class="reference internal" href="../../applications/hr/employees/retention_report.html">Employee retention report</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_hr_appraisals"><a class="reference internal" href="../../applications/hr/appraisals.html">Appraisals</a><ul>
<li class="toctree-l4 o_menu_applications_hr_appraisals_new_appraisals"><a class="reference internal" href="../../applications/hr/appraisals/new_appraisals.html">New appraisals</a></li>
<li class="toctree-l4 o_menu_applications_hr_appraisals_goals"><a class="reference internal" href="../../applications/hr/appraisals/goals.html">Goals</a></li>
<li class="toctree-l4 o_menu_applications_hr_appraisals_appraisal_analysis"><a class="reference internal" href="../../applications/hr/appraisals/appraisal_analysis.html">Appraisal analysis</a></li>
<li class="toctree-l4 o_menu_applications_hr_appraisals_skills_evolution"><a class="reference internal" href="../../applications/hr/appraisals/skills_evolution.html">Skills evolution</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_hr_frontdesk"><a class="reference internal" href="../../applications/hr/frontdesk.html">Frontdesk</a><ul>
<li class="toctree-l4 o_menu_applications_hr_frontdesk_visitors"><a class="reference internal" href="../../applications/hr/frontdesk/visitors.html">Visitors</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_hr_fleet"><a class="reference internal" href="../../applications/hr/fleet.html">Fleet</a><ul>
<li class="toctree-l4 o_menu_applications_hr_fleet_models"><a class="reference internal" href="../../applications/hr/fleet/models.html">Vehicle models</a></li>
<li class="toctree-l4 o_menu_applications_hr_fleet_new_vehicle"><a class="reference internal" href="../../applications/hr/fleet/new_vehicle.html">New vehicles</a></li>
<li class="toctree-l4 o_menu_applications_hr_fleet_service"><a class="reference internal" href="../../applications/hr/fleet/service.html">Services</a></li>
<li class="toctree-l4 o_menu_applications_hr_fleet_accidents"><a class="reference internal" href="../../applications/hr/fleet/accidents.html">Accidents</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_hr_payroll"><a class="reference internal" href="../../applications/hr/payroll.html">Payroll</a><ul>
<li class="toctree-l4 o_menu_applications_hr_payroll_contracts"><a class="reference internal" href="../../applications/hr/payroll/contracts.html">Contracts</a></li>
<li class="toctree-l4 o_menu_applications_hr_payroll_work_entries"><a class="reference internal" href="../../applications/hr/payroll/work_entries.html">Work entries</a></li>
<li class="toctree-l4 o_menu_applications_hr_payroll_salary_attachments"><a class="reference internal" href="../../applications/hr/payroll/salary_attachments.html">Salary attachments</a></li>
<li class="toctree-l4 o_menu_applications_hr_payroll_payslips"><a class="reference internal" href="../../applications/hr/payroll/payslips.html">Payslips</a></li>
<li class="toctree-l4 o_menu_applications_hr_payroll_reporting"><a class="reference internal" href="../../applications/hr/payroll/reporting.html">Reporting</a></li>
<li class="toctree-l4 o_menu_applications_hr_payroll_work_entry_analysis"><a class="reference internal" href="../../applications/hr/payroll/work_entry_analysis.html">Work entry analysis</a></li>
<li class="toctree-l4 o_menu_applications_hr_payroll_salary_attachment"><a class="reference internal" href="../../applications/hr/payroll/salary_attachment.html">Salary attachment report</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_hr_time_off"><a class="reference internal" href="../../applications/hr/time_off.html">Time Off</a><ul>
<li class="toctree-l4 o_menu_applications_hr_time_off_allocations"><a class="reference internal" href="../../applications/hr/time_off/allocations.html">Allocations</a></li>
<li class="toctree-l4 o_menu_applications_hr_time_off_request_time_off"><a class="reference internal" href="../../applications/hr/time_off/request_time_off.html">Request time off</a></li>
<li class="toctree-l4 o_menu_applications_hr_time_off_my_time"><a class="reference internal" href="../../applications/hr/time_off/my_time.html">My time</a></li>
<li class="toctree-l4 o_menu_applications_hr_time_off_management"><a class="reference internal" href="../../applications/hr/time_off/management.html">Management</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_hr_recruitment"><a class="reference internal" href="../../applications/hr/recruitment.html">Recruitment</a><ul>
<li class="toctree-l4 o_menu_applications_hr_recruitment_new_job"><a class="reference internal" href="../../applications/hr/recruitment/new_job.html">Job positions</a></li>
<li class="toctree-l4 o_menu_applications_hr_recruitment_recruitment-flow"><a class="reference internal" href="../../applications/hr/recruitment/recruitment-flow.html">Recruitment flow</a></li>
<li class="toctree-l4 o_menu_applications_hr_recruitment_add-new-applicants"><a class="reference internal" href="../../applications/hr/recruitment/add-new-applicants.html">Add new applicants</a></li>
<li class="toctree-l4 o_menu_applications_hr_recruitment_schedule_interviews"><a class="reference internal" href="../../applications/hr/recruitment/schedule_interviews.html">Schedule interviews</a></li>
<li class="toctree-l4 o_menu_applications_hr_recruitment_offer_job_positions"><a class="reference internal" href="../../applications/hr/recruitment/offer_job_positions.html">Offer job positions</a></li>
<li class="toctree-l4 o_menu_applications_hr_recruitment_refuse_applicant"><a class="reference internal" href="../../applications/hr/recruitment/refuse_applicant.html">Refuse applicants</a></li>
<li class="toctree-l4 o_menu_applications_hr_recruitment_source_analysis"><a class="reference internal" href="../../applications/hr/recruitment/source_analysis.html">Source analysis reporting</a></li>
<li class="toctree-l4 o_menu_applications_hr_recruitment_recruitment_analysis"><a class="reference internal" href="../../applications/hr/recruitment/recruitment_analysis.html">Recruitment analysis</a></li>
<li class="toctree-l4 o_menu_applications_hr_recruitment_time_in_stage"><a class="reference internal" href="../../applications/hr/recruitment/time_in_stage.html">Time in stage analysis</a></li>
<li class="toctree-l4 o_menu_applications_hr_recruitment_team_performance"><a class="reference internal" href="../../applications/hr/recruitment/team_performance.html">Team performance reporting</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_hr_referrals"><a class="reference internal" href="../../applications/hr/referrals.html">Referrals</a><ul>
<li class="toctree-l4 o_menu_applications_hr_referrals_share_jobs"><a class="reference internal" href="../../applications/hr/referrals/share_jobs.html">Share job positions</a></li>
<li class="toctree-l4 o_menu_applications_hr_referrals_points"><a class="reference internal" href="../../applications/hr/referrals/points.html">Referral points</a></li>
<li class="toctree-l4 o_menu_applications_hr_referrals_rewards"><a class="reference internal" href="../../applications/hr/referrals/rewards.html">Rewards</a></li>
<li class="toctree-l4 o_menu_applications_hr_referrals_alerts"><a class="reference internal" href="../../applications/hr/referrals/alerts.html">Alerts</a></li>
<li class="toctree-l4 o_menu_applications_hr_referrals_reporting"><a class="reference internal" href="../../applications/hr/referrals/reporting.html">Reporting</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_hr_lunch"><a class="reference internal" href="../../applications/hr/lunch.html">Lunch</a><ul>
<li class="toctree-l4 o_menu_applications_hr_lunch_vendors"><a class="reference internal" href="../../applications/hr/lunch/vendors.html">Vendors</a></li>
<li class="toctree-l4 o_menu_applications_hr_lunch_products"><a class="reference internal" href="../../applications/hr/lunch/products.html">Products</a></li>
<li class="toctree-l4 o_menu_applications_hr_lunch_orders"><a class="reference internal" href="../../applications/hr/lunch/orders.html">Orders</a></li>
<li class="toctree-l4 o_menu_applications_hr_lunch_user-accounts"><a class="reference internal" href="../../applications/hr/lunch/user-accounts.html">Manage user accounts</a></li>
<li class="toctree-l4 o_menu_applications_hr_lunch_management"><a class="reference internal" href="../../applications/hr/lunch/management.html">Lunch management</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_marketing"><a class="reference internal" href="#">Marketing</a><ul>
<li class="toctree-l3 o_menu_applications_marketing_email_marketing"><a class="reference internal" href="../../applications/marketing/email_marketing.html">Email Marketing</a><ul>
<li class="toctree-l4 o_menu_applications_marketing_email_marketing_mailing_lists"><a class="reference internal" href="../../applications/marketing/email_marketing/mailing_lists.html">Mailing lists</a></li>
<li class="toctree-l4 o_menu_applications_marketing_email_marketing_unsubscriptions"><a class="reference internal" href="../../applications/marketing/email_marketing/unsubscriptions.html">Manage unsubscriptions (blacklist)</a></li>
<li class="toctree-l4 o_menu_applications_marketing_email_marketing_lost_leads_email"><a class="reference internal" href="../../applications/marketing/email_marketing/lost_leads_email.html">Lost leads reactivation email</a></li>
<li class="toctree-l4 o_menu_applications_marketing_email_marketing_analyze_metrics"><a class="reference internal" href="../../applications/marketing/email_marketing/analyze_metrics.html">Analyze metrics</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_marketing_marketing_automation"><a class="reference internal" href="../../applications/marketing/marketing_automation.html">Marketing Automation</a><ul>
<li class="toctree-l4 o_menu_applications_marketing_marketing_automation_target_audience"><a class="reference internal" href="../../applications/marketing/marketing_automation/target_audience.html">Audience targeting</a></li>
<li class="toctree-l4 o_menu_applications_marketing_marketing_automation_workflow_activities"><a class="reference internal" href="../../applications/marketing/marketing_automation/workflow_activities.html">Campaign workflow activities</a></li>
<li class="toctree-l4 o_menu_applications_marketing_marketing_automation_testing_running"><a class="reference internal" href="../../applications/marketing/marketing_automation/testing_running.html">Testing/running campaigns</a></li>
<li class="toctree-l4 o_menu_applications_marketing_marketing_automation_understanding_metrics"><a class="reference internal" href="../../applications/marketing/marketing_automation/understanding_metrics.html">Campaign metrics</a></li>
<li class="toctree-l4 o_menu_applications_marketing_marketing_automation_campaign_templates"><a class="reference internal" href="#">Campaign templates</a><ul>
<li class="toctree-l5 o_menu_applications_marketing_marketing_automation_campaign_templates_double_optin"><a class="reference internal" href="../../applications/marketing/marketing_automation/campaign_templates/double_optin.html">Double Opt-in</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_marketing_sms_marketing"><a class="reference internal" href="../../applications/marketing/sms_marketing.html">SMS Marketing</a><ul>
<li class="toctree-l4 o_menu_applications_marketing_sms_marketing_create_sms"><a class="reference internal" href="../../applications/marketing/sms_marketing/create_sms.html">Create SMS messages</a></li>
<li class="toctree-l4 o_menu_applications_marketing_sms_marketing_sms_analysis"><a class="reference internal" href="../../applications/marketing/sms_marketing/sms_analysis.html">SMS analysis</a></li>
<li class="toctree-l4 o_menu_applications_marketing_sms_marketing_marketing_campaigns"><a class="reference internal" href="../../applications/marketing/sms_marketing/marketing_campaigns.html">SMS campaign settings</a></li>
<li class="toctree-l4 o_menu_applications_marketing_sms_marketing_mailing_lists_blacklists"><a class="reference internal" href="../../applications/marketing/sms_marketing/mailing_lists_blacklists.html">Mailing lists and blacklists</a></li>
<li class="toctree-l4 o_menu_applications_marketing_sms_marketing_pricing_and_faq"><a class="reference internal" href="../../applications/marketing/sms_marketing/pricing_and_faq.html">SMS Pricing and FAQ</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_marketing_events"><a class="reference internal" href="../../applications/marketing/events.html">Events</a><ul>
<li class="toctree-l4 o_menu_applications_marketing_events_create_events"><a class="reference internal" href="../../applications/marketing/events/create_events.html">Create events</a></li>
<li class="toctree-l4 o_menu_applications_marketing_events_sell_tickets"><a class="reference internal" href="../../applications/marketing/events/sell_tickets.html">Sell event tickets</a></li>
<li class="toctree-l4 o_menu_applications_marketing_events_track_manage_talks"><a class="reference internal" href="../../applications/marketing/events/track_manage_talks.html">Talks, proposals, and agenda</a></li>
<li class="toctree-l4 o_menu_applications_marketing_events_event_templates"><a class="reference internal" href="../../applications/marketing/events/event_templates.html">Event templates</a></li>
<li class="toctree-l4 o_menu_applications_marketing_events_event_booths"><a class="reference internal" href="../../applications/marketing/events/event_booths.html">Event booths</a></li>
<li class="toctree-l4 o_menu_applications_marketing_events_event_tracks"><a class="reference internal" href="../../applications/marketing/events/event_tracks.html">Event tracks</a></li>
<li class="toctree-l4 o_menu_applications_marketing_events_registration_desk"><a class="reference internal" href="../../applications/marketing/events/registration_desk.html">Registration Desk</a></li>
<li class="toctree-l4 o_menu_applications_marketing_events_revenues_report"><a class="reference internal" href="../../applications/marketing/events/revenues_report.html">Revenues report</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_marketing_surveys"><a class="reference internal" href="../../applications/marketing/surveys.html">Surveys</a><ul>
<li class="toctree-l4 o_menu_applications_marketing_surveys_create"><a class="reference internal" href="../../applications/marketing/surveys/create.html">Create surveys</a></li>
<li class="toctree-l4 o_menu_applications_marketing_surveys_scoring"><a class="reference internal" href="../../applications/marketing/surveys/scoring.html">Scoring surveys</a></li>
<li class="toctree-l4 o_menu_applications_marketing_surveys_questions"><a class="reference internal" href="../../applications/marketing/surveys/questions.html">Create questions</a></li>
<li class="toctree-l4 o_menu_applications_marketing_surveys_live_session"><a class="reference internal" href="../../applications/marketing/surveys/live_session.html">Live Session surveys</a></li>
<li class="toctree-l4 o_menu_applications_marketing_surveys_analysis"><a class="reference internal" href="../../applications/marketing/surveys/analysis.html">Survey analysis</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_marketing_social_marketing"><a class="reference internal" href="../../applications/marketing/social_marketing.html">Social Marketing</a><ul>
<li class="toctree-l4 o_menu_applications_marketing_social_marketing_social_posts"><a class="reference internal" href="../../applications/marketing/social_marketing/social_posts.html">Social posts</a></li>
<li class="toctree-l4 o_menu_applications_marketing_social_marketing_social_campaigns"><a class="reference internal" href="../../applications/marketing/social_marketing/social_campaigns.html">Social marketing campaigns</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_services"><a class="reference internal" href="#">Services</a><ul>
<li class="toctree-l3 o_menu_applications_services_project"><a class="reference internal" href="../../applications/services/project.html">Project</a><ul>
<li class="toctree-l4 o_menu_applications_services_project_project_management"><a class="reference internal" href="../../applications/services/project/project_management.html">Project management</a></li>
<li class="toctree-l4 o_menu_applications_services_project_project_dashboard"><a class="reference internal" href="../../applications/services/project/project_dashboard.html">Project dashboard</a></li>
<li class="toctree-l4 o_menu_applications_services_project_tasks"><a class="reference internal" href="#">Task management</a><ul>
<li class="toctree-l5 o_menu_applications_services_project_tasks_task_stages_statuses"><a class="reference internal" href="../../applications/services/project/tasks/task_stages_statuses.html">Task stages and statuses</a></li>
<li class="toctree-l5 o_menu_applications_services_project_tasks_task_creation"><a class="reference internal" href="../../applications/services/project/tasks/task_creation.html">Task creation</a></li>
<li class="toctree-l5 o_menu_applications_services_project_tasks_recurring_tasks"><a class="reference internal" href="../../applications/services/project/tasks/recurring_tasks.html">Recurring tasks</a></li>
<li class="toctree-l5 o_menu_applications_services_project_tasks_sub-tasks"><a class="reference internal" href="../../applications/services/project/tasks/sub-tasks.html">Sub-tasks</a></li>
<li class="toctree-l5 o_menu_applications_services_project_tasks_task_dependencies"><a class="reference internal" href="../../applications/services/project/tasks/task_dependencies.html">Task dependencies</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_services_timesheets"><a class="reference internal" href="../../applications/services/timesheets.html">Timesheets</a><ul>
<li class="toctree-l4 o_menu_applications_services_timesheets_overview"><a class="reference internal" href="#">Overview</a><ul>
<li class="toctree-l5 o_menu_applications_services_timesheets_overview_time_off"><a class="reference internal" href="../../applications/services/timesheets/overview/time_off.html">Create Timesheets upon Time Off Validation</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_services_planning"><a class="reference internal" href="../../applications/services/planning.html">Planning</a></li>
<li class="toctree-l3 o_menu_applications_services_field_service"><a class="reference internal" href="../../applications/services/field_service.html">Field Service</a><ul>
<li class="toctree-l4 o_menu_applications_services_field_service_creating_tasks"><a class="reference internal" href="../../applications/services/field_service/creating_tasks.html">Creating field service tasks</a></li>
<li class="toctree-l4 o_menu_applications_services_field_service_product_management"><a class="reference internal" href="../../applications/services/field_service/product_management.html">Product management</a></li>
<li class="toctree-l4 o_menu_applications_services_field_service_planning_itinerary"><a class="reference internal" href="../../applications/services/field_service/planning_itinerary.html">Planning an itinerary</a></li>
<li class="toctree-l4 o_menu_applications_services_field_service_worksheets"><a class="reference internal" href="../../applications/services/field_service/worksheets.html">Worksheets</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_services_helpdesk"><a class="reference internal" href="../../applications/services/helpdesk.html">Helpdesk</a><ul>
<li class="toctree-l4 o_menu_applications_services_helpdesk_overview"><a class="reference internal" href="#">Overview</a><ul>
<li class="toctree-l5 o_menu_applications_services_helpdesk_overview_stages"><a class="reference internal" href="../../applications/services/helpdesk/overview/stages.html">Stages</a></li>
<li class="toctree-l5 o_menu_applications_services_helpdesk_overview_receiving_tickets"><a class="reference internal" href="../../applications/services/helpdesk/overview/receiving_tickets.html">Receiving tickets</a></li>
<li class="toctree-l5 o_menu_applications_services_helpdesk_overview_help_center"><a class="reference internal" href="../../applications/services/helpdesk/overview/help_center.html">Help Center</a></li>
<li class="toctree-l5 o_menu_applications_services_helpdesk_overview_sla"><a class="reference internal" href="../../applications/services/helpdesk/overview/sla.html">Service level agreements (SLA)</a></li>
<li class="toctree-l5 o_menu_applications_services_helpdesk_overview_reports"><a class="reference internal" href="../../applications/services/helpdesk/overview/reports.html">Reporting</a></li>
<li class="toctree-l5 o_menu_applications_services_helpdesk_overview_ratings"><a class="reference internal" href="../../applications/services/helpdesk/overview/ratings.html">Customer ratings</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_services_helpdesk_advanced"><a class="reference internal" href="#">Advanced</a><ul>
<li class="toctree-l5 o_menu_applications_services_helpdesk_advanced_after_sales"><a class="reference internal" href="../../applications/services/helpdesk/advanced/after_sales.html">After-Sales services</a></li>
<li class="toctree-l5 o_menu_applications_services_helpdesk_advanced_close_tickets"><a class="reference internal" href="../../applications/services/helpdesk/advanced/close_tickets.html">Closing tickets</a></li>
<li class="toctree-l5 o_menu_applications_services_helpdesk_advanced_track_and_bill"><a class="reference internal" href="../../applications/services/helpdesk/advanced/track_and_bill.html">Track and bill time</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_productivity"><a class="reference internal" href="#">Productivity</a><ul>
<li class="toctree-l3 o_menu_applications_productivity_documents"><a class="reference internal" href="../../applications/productivity/documents.html">Documents</a></li>
<li class="toctree-l3 o_menu_applications_productivity_sign"><a class="reference internal" href="../../applications/productivity/sign.html">Sign</a></li>
<li class="toctree-l3 o_menu_applications_productivity_spreadsheet"><a class="reference internal" href="../../applications/productivity/spreadsheet.html">Spreadsheet</a><ul>
<li class="toctree-l4 o_menu_applications_productivity_spreadsheet_insert"><a class="reference internal" href="../../applications/productivity/spreadsheet/insert.html">Link Odoo data</a></li>
<li class="toctree-l4 o_menu_applications_productivity_spreadsheet_functions"><a class="reference internal" href="../../applications/productivity/spreadsheet/functions.html">Functions</a></li>
<li class="toctree-l4 o_menu_applications_productivity_spreadsheet_templates"><a class="reference internal" href="../../applications/productivity/spreadsheet/templates.html">Templates</a></li>
<li class="toctree-l4 o_menu_applications_productivity_spreadsheet_global_filters"><a class="reference internal" href="../../applications/productivity/spreadsheet/global_filters.html">Global filters</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_productivity_knowledge"><a class="reference internal" href="../../applications/productivity/knowledge.html">Knowledge</a><ul>
<li class="toctree-l4 o_menu_applications_productivity_knowledge_articles_editing"><a class="reference internal" href="../../applications/productivity/knowledge/articles_editing.html">Articles editing</a></li>
<li class="toctree-l4 o_menu_applications_productivity_knowledge_management"><a class="reference internal" href="../../applications/productivity/knowledge/management.html">Articles management</a></li>
<li class="toctree-l4 o_menu_applications_productivity_knowledge_properties"><a class="reference internal" href="../../applications/productivity/knowledge/properties.html">Properties</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_productivity_calendar"><a class="reference internal" href="../../applications/productivity/calendar.html">Calendar</a><ul>
<li class="toctree-l4 o_menu_applications_productivity_calendar_outlook"><a class="reference internal" href="../../applications/productivity/calendar/outlook.html">Outlook Calendar synchronization</a></li>
<li class="toctree-l4 o_menu_applications_productivity_calendar_google"><a class="reference internal" href="../../applications/productivity/calendar/google.html">Google Calendar synchronization</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_productivity_discuss"><a class="reference internal" href="../../applications/productivity/discuss.html">Discuss</a><ul>
<li class="toctree-l4 o_menu_applications_productivity_discuss_team_communication"><a class="reference internal" href="../../applications/productivity/discuss/team_communication.html">Use channels for team communication</a></li>
<li class="toctree-l4 o_menu_applications_productivity_discuss_ice_servers"><a class="reference internal" href="../../applications/productivity/discuss/ice_servers.html">Configure ICE servers with Twilio</a></li>
<li class="toctree-l4 o_menu_applications_productivity_discuss_chatter"><a class="reference internal" href="../../applications/productivity/discuss/chatter.html">Chatter</a></li>
<li class="toctree-l4 o_menu_applications_productivity_discuss_canned_responses"><a class="reference internal" href="../../applications/productivity/discuss/canned_responses.html">Canned responses</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_productivity_data_cleaning"><a class="reference internal" href="../../applications/productivity/data_cleaning.html">Data Cleaning</a></li>
<li class="toctree-l3 o_menu_applications_productivity_whatsapp"><a class="reference internal" href="../../applications/productivity/whatsapp.html">WhatsApp</a></li>
<li class="toctree-l3 o_menu_applications_productivity_voip"><a class="reference internal" href="../../applications/productivity/voip.html">VoIP (Voice over Internet Protocol)</a><ul>
<li class="toctree-l4 o_menu_applications_productivity_voip_onsip"><a class="reference internal" href="../../applications/productivity/voip/onsip.html">Use VoIP services in Odoo with OnSIP</a></li>
<li class="toctree-l4 o_menu_applications_productivity_voip_axivox"><a class="reference internal" href="#">Axivox configuration</a><ul>
<li class="toctree-l5 o_menu_applications_productivity_voip_axivox_axivox_config"><a class="reference internal" href="../../applications/productivity/voip/axivox/axivox_config.html">VoIP services in Odoo with Axivox</a></li>
<li class="toctree-l5 o_menu_applications_productivity_voip_axivox_manage_users"><a class="reference internal" href="../../applications/productivity/voip/axivox/manage_users.html">Manage users in Axivox</a></li>
<li class="toctree-l5 o_menu_applications_productivity_voip_axivox_vm_audio_messages"><a class="reference internal" href="../../applications/productivity/voip/axivox/vm_audio_messages.html">Voicemails and audio messages</a></li>
<li class="toctree-l5 o_menu_applications_productivity_voip_axivox_dynamic_caller_id"><a class="reference internal" href="../../applications/productivity/voip/axivox/dynamic_caller_id.html">Dynamic caller ID</a></li>
<li class="toctree-l5 o_menu_applications_productivity_voip_axivox_conference_calls"><a class="reference internal" href="../../applications/productivity/voip/axivox/conference_calls.html">Conference calls</a></li>
<li class="toctree-l5 o_menu_applications_productivity_voip_axivox_dial_plan_basics"><a class="reference internal" href="../../applications/productivity/voip/axivox/dial_plan_basics.html">Dial plan basics</a></li>
<li class="toctree-l5 o_menu_applications_productivity_voip_axivox_dial_plan_advanced"><a class="reference internal" href="../../applications/productivity/voip/axivox/dial_plan_advanced.html">Advanced dial plans</a></li>
<li class="toctree-l5 o_menu_applications_productivity_voip_axivox_call_queues"><a class="reference internal" href="../../applications/productivity/voip/axivox/call_queues.html">Call queues</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_productivity_voip_voip_widget"><a class="reference internal" href="../../applications/productivity/voip/voip_widget.html">VoIP widget</a></li>
<li class="toctree-l4 o_menu_applications_productivity_voip_devices_integrations"><a class="reference internal" href="../../applications/productivity/voip/devices_integrations.html">Devices and integrations</a></li>
<li class="toctree-l4 o_menu_applications_productivity_voip_transfer_forward"><a class="reference internal" href="../../applications/productivity/voip/transfer_forward.html">Make, receive, transfer, and forward calls</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_productivity_to_do"><a class="reference internal" href="../../applications/productivity/to_do.html">To-do</a></li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_studio"><a class="reference internal" href="../../applications/studio.html">Studio</a><ul>
<li class="toctree-l3 o_menu_applications_studio_fields"><a class="reference internal" href="../../applications/studio/fields.html">Fields and widgets</a></li>
<li class="toctree-l3 o_menu_applications_studio_views"><a class="reference internal" href="../../applications/studio/views.html">Views</a></li>
<li class="toctree-l3 o_menu_applications_studio_models_modules_apps"><a class="reference internal" href="../../applications/studio/models_modules_apps.html">Models, modules, and apps</a></li>
<li class="toctree-l3 o_menu_applications_studio_automated_actions"><a class="reference internal" href="../../applications/studio/automated_actions.html">Automation rules</a></li>
<li class="toctree-l3 o_menu_applications_studio_pdf_reports"><a class="reference internal" href="../../applications/studio/pdf_reports.html">PDF reports</a></li>
<li class="toctree-l3 o_menu_applications_studio_approval_rules"><a class="reference internal" href="../../applications/studio/approval_rules.html">Approval rules</a></li>
</ul>
</li>
<li class="toctree-l2 o_menu_applications_general"><a class="reference internal" href="#">General settings</a><ul>
<li class="toctree-l3 o_menu_applications_general_apps_modules"><a class="reference internal" href="../../applications/general/apps_modules.html">Apps and modules</a></li>
<li class="toctree-l3 o_menu_applications_general_users"><a class="reference internal" href="../../applications/general/users.html">Users</a><ul>
<li class="toctree-l4 o_menu_applications_general_users_language"><a class="reference internal" href="../../applications/general/users/language.html">Change languages</a></li>
<li class="toctree-l4 o_menu_applications_general_users_2fa"><a class="reference internal" href="../../applications/general/users/2fa.html">Two-factor authentication</a></li>
<li class="toctree-l4 o_menu_applications_general_users_access_rights"><a class="reference internal" href="../../applications/general/users/access_rights.html">Access rights</a></li>
<li class="toctree-l4 o_menu_applications_general_users_portal"><a class="reference internal" href="../../applications/general/users/portal.html">Portal access</a></li>
<li class="toctree-l4 o_menu_applications_general_users_facebook"><a class="reference internal" href="../../applications/general/users/facebook.html">Facebook sign-in authentication</a></li>
<li class="toctree-l4 o_menu_applications_general_users_google"><a class="reference internal" href="../../applications/general/users/google.html">Google Sign-In Authentication</a></li>
<li class="toctree-l4 o_menu_applications_general_users_azure"><a class="reference internal" href="../../applications/general/users/azure.html">Microsoft Azure sign-in authentication</a></li>
<li class="toctree-l4 o_menu_applications_general_users_ldap"><a class="reference internal" href="../../applications/general/users/ldap.html">LDAP authentication</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_general_companies"><a class="reference internal" href="../../applications/general/companies.html">Companies</a><ul>
<li class="toctree-l4 o_menu_applications_general_companies_digest_emails"><a class="reference internal" href="../../applications/general/companies/digest_emails.html">Digest emails</a></li>
<li class="toctree-l4 o_menu_applications_general_companies_email_template"><a class="reference internal" href="../../applications/general/companies/email_template.html">Email templates</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_general_multi_company"><a class="reference internal" href="../../applications/general/multi_company.html">Multi-company</a></li>
<li class="toctree-l3 o_menu_applications_general_iot"><a class="reference internal" href="../../applications/general/iot.html">Internet of Things (IoT)</a><ul>
<li class="toctree-l4 o_menu_applications_general_iot_iot_box"><a class="reference internal" href="../../applications/general/iot/iot_box.html">IoT box</a></li>
<li class="toctree-l4 o_menu_applications_general_iot_windows_iot"><a class="reference internal" href="../../applications/general/iot/windows_iot.html">Windows virtual IoT</a></li>
<li class="toctree-l4 o_menu_applications_general_iot_connect"><a class="reference internal" href="../../applications/general/iot/connect.html">IoT system connection to Odoo</a></li>
<li class="toctree-l4 o_menu_applications_general_iot_iot_advanced"><a class="reference internal" href="#">Advanced</a><ul>
<li class="toctree-l5 o_menu_applications_general_iot_iot_advanced_https_certificate_iot"><a class="reference internal" href="../../applications/general/iot/iot_advanced/https_certificate_iot.html">HTTPS certificate (IoT)</a></li>
<li class="toctree-l5 o_menu_applications_general_iot_iot_advanced_updating_iot"><a class="reference internal" href="../../applications/general/iot/iot_advanced/updating_iot.html">IoT system updates</a></li>
<li class="toctree-l5 o_menu_applications_general_iot_iot_advanced_ssh_connect"><a class="reference internal" href="../../applications/general/iot/iot_advanced/ssh_connect.html">IoT box SSH connection</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_general_iot_devices"><a class="reference internal" href="../../applications/general/iot/devices.html">Devices</a><ul>
<li class="toctree-l5 o_menu_applications_general_iot_devices_screen"><a class="reference internal" href="../../applications/general/iot/devices/screen.html">Connect a screen</a></li>
<li class="toctree-l5 o_menu_applications_general_iot_devices_measurement_tool"><a class="reference internal" href="../../applications/general/iot/devices/measurement_tool.html">Connect a measurement tool</a></li>
<li class="toctree-l5 o_menu_applications_general_iot_devices_camera"><a class="reference internal" href="../../applications/general/iot/devices/camera.html">Connect a camera</a></li>
<li class="toctree-l5 o_menu_applications_general_iot_devices_footswitch"><a class="reference internal" href="../../applications/general/iot/devices/footswitch.html">Connect a footswitch</a></li>
<li class="toctree-l5 o_menu_applications_general_iot_devices_printer"><a class="reference internal" href="../../applications/general/iot/devices/printer.html">Connect a printer</a></li>
<li class="toctree-l5 o_menu_applications_general_iot_devices_scale"><a class="reference internal" href="../../applications/general/iot/devices/scale.html">Connect a scale</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_general_email_communication"><a class="reference internal" href="../../applications/general/email_communication.html">Communication in Odoo by email</a><ul>
<li class="toctree-l4 o_menu_applications_general_email_communication_email_servers_inbound"><a class="reference internal" href="../../applications/general/email_communication/email_servers_inbound.html">Manage inbound messages</a></li>
<li class="toctree-l4 o_menu_applications_general_email_communication_email_servers_outbound"><a class="reference internal" href="../../applications/general/email_communication/email_servers_outbound.html">Manage outbound messages</a></li>
<li class="toctree-l4 o_menu_applications_general_email_communication_email_domain"><a class="reference internal" href="../../applications/general/email_communication/email_domain.html">Configure DNS records to send emails in Odoo</a></li>
<li class="toctree-l4 o_menu_applications_general_email_communication_azure_oauth"><a class="reference internal" href="../../applications/general/email_communication/azure_oauth.html">Connect Microsoft Outlook 365 to Odoo using Azure OAuth</a></li>
<li class="toctree-l4 o_menu_applications_general_email_communication_google_oauth"><a class="reference internal" href="../../applications/general/email_communication/google_oauth.html">Connect Gmail to Odoo using Google OAuth</a></li>
<li class="toctree-l4 o_menu_applications_general_email_communication_mailjet_api"><a class="reference internal" href="../../applications/general/email_communication/mailjet_api.html">Mailjet API</a></li>
<li class="toctree-l4 o_menu_applications_general_email_communication_faq"><a class="reference internal" href="../../applications/general/email_communication/faq.html">Common emailing issues and solutions</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_general_integrations"><a class="reference internal" href="#">Integrations</a><ul>
<li class="toctree-l4 o_menu_applications_general_integrations_mail_plugins"><a class="reference internal" href="../../applications/general/integrations/mail_plugins.html">Mail Plugins</a><ul>
<li class="toctree-l5 o_menu_applications_general_integrations_mail_plugins_outlook"><a class="reference internal" href="../../applications/general/integrations/mail_plugins/outlook.html">Outlook Plugin</a></li>
<li class="toctree-l5 o_menu_applications_general_integrations_mail_plugins_gmail"><a class="reference internal" href="../../applications/general/integrations/mail_plugins/gmail.html">Gmail Plugin</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_applications_general_integrations_unsplash"><a class="reference internal" href="../../applications/general/integrations/unsplash.html">Unsplash</a></li>
<li class="toctree-l4 o_menu_applications_general_integrations_geolocation"><a class="reference internal" href="../../applications/general/integrations/geolocation.html">Geolocation</a></li>
<li class="toctree-l4 o_menu_applications_general_integrations_google_translate"><a class="reference internal" href="../../applications/general/integrations/google_translate.html">Google Translate</a></li>
<li class="toctree-l4 o_menu_applications_general_integrations_barcodelookup"><a class="reference internal" href="../../applications/general/integrations/barcodelookup.html">Barcode Lookup</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_applications_general_developer_mode"><a class="reference internal" href="../../applications/general/developer_mode.html">Developer mode (debug mode)</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1 o_menu_administration"><a class="reference internal" href="../../administration.html">Database management</a><ul>
<li class="toctree-l2 o_menu_administration_hosting"><a class="reference internal" href="../../administration/hosting.html">Hosting</a></li>
<li class="toctree-l2 o_menu_administration_odoo_online"><a class="reference internal" href="../../administration/odoo_online.html">Odoo Online</a></li>
<li class="toctree-l2 o_menu_administration_odoo_sh"><a class="reference internal" href="#">Odoo.sh</a><ul>
<li class="toctree-l3 o_menu_administration_odoo_sh_overview"><a class="reference internal" href="#">Overview</a><ul>
<li class="toctree-l4 o_menu_administration_odoo_sh_overview_introduction"><a class="reference internal" href="../../administration/odoo_sh/overview/introduction.html">Introduction to Odoo.sh</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_administration_odoo_sh_getting_started"><a class="reference internal" href="#">Get started</a><ul>
<li class="toctree-l4 o_menu_administration_odoo_sh_getting_started_create"><a class="reference internal" href="../../administration/odoo_sh/getting_started/create.html">Create your project</a></li>
<li class="toctree-l4 o_menu_administration_odoo_sh_getting_started_branches"><a class="reference internal" href="../../administration/odoo_sh/getting_started/branches.html">Branches</a></li>
<li class="toctree-l4 o_menu_administration_odoo_sh_getting_started_builds"><a class="reference internal" href="../../administration/odoo_sh/getting_started/builds.html">Builds</a></li>
<li class="toctree-l4 o_menu_administration_odoo_sh_getting_started_status"><a class="reference internal" href="../../administration/odoo_sh/getting_started/status.html">Status</a></li>
<li class="toctree-l4 o_menu_administration_odoo_sh_getting_started_settings"><a class="reference internal" href="../../administration/odoo_sh/getting_started/settings.html">Settings</a></li>
<li class="toctree-l4 o_menu_administration_odoo_sh_getting_started_online-editor"><a class="reference internal" href="../../administration/odoo_sh/getting_started/online-editor.html">Online Editor</a></li>
<li class="toctree-l4 o_menu_administration_odoo_sh_getting_started_first_module"><a class="reference internal" href="../../administration/odoo_sh/getting_started/first_module.html">Your first module</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_administration_odoo_sh_advanced"><a class="reference internal" href="#">Advanced</a><ul>
<li class="toctree-l4 o_menu_administration_odoo_sh_advanced_containers"><a class="reference internal" href="../../administration/odoo_sh/advanced/containers.html">Containers</a></li>
<li class="toctree-l4 o_menu_administration_odoo_sh_advanced_submodules"><a class="reference internal" href="../../administration/odoo_sh/advanced/submodules.html">Submodules</a></li>
<li class="toctree-l4 o_menu_administration_odoo_sh_advanced_frequent_technical_questions"><a class="reference internal" href="../../administration/odoo_sh/advanced/frequent_technical_questions.html">Frequent Technical Questions</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2 o_menu_administration_on_premise"><a class="reference internal" href="../../administration/on_premise.html">On-premise</a><ul>
<li class="toctree-l3 o_menu_administration_on_premise_packages"><a class="reference internal" href="../../administration/on_premise/packages.html">Packaged installers</a></li>
<li class="toctree-l3 o_menu_administration_on_premise_source"><a class="reference internal" href="../../administration/on_premise/source.html">Source install</a></li>
<li class="toctree-l3 o_menu_administration_on_premise_update"><a class="reference internal" href="../../administration/on_premise/update.html">Bugfix updates</a></li>
<li class="toctree-l3 o_menu_administration_on_premise_deploy"><a class="reference internal" href="../../administration/on_premise/deploy.html">System configuration</a></li>
<li class="toctree-l3 o_menu_administration_on_premise_email_gateway"><a class="reference internal" href="../../administration/on_premise/email_gateway.html">Email gateway</a></li>
<li class="toctree-l3 o_menu_administration_on_premise_geo_ip"><a class="reference internal" href="../../administration/on_premise/geo_ip.html">Geo IP</a></li>
<li class="toctree-l3 o_menu_administration_on_premise_community_to_enterprise"><a class="reference internal" href="../../administration/on_premise/community_to_enterprise.html">Switch from Community to Enterprise</a></li>
</ul>
</li>
<li class="toctree-l2 o_menu_administration_upgrade"><a class="reference internal" href="../../administration/upgrade.html">Upgrade</a></li>
<li class="toctree-l2 o_menu_administration_neutralized_database"><a class="reference internal" href="../../administration/neutralized_database.html">Neutralized database</a></li>
<li class="toctree-l2 o_menu_administration_supported_versions"><a class="reference internal" href="../../administration/supported_versions.html">Supported versions</a></li>
<li class="toctree-l2 o_menu_administration_mobile"><a class="reference internal" href="../../administration/mobile.html">Odoo mobile apps</a></li>
<li class="toctree-l2 o_menu_administration_odoo_accounts"><a class="reference internal" href="../../administration/odoo_accounts.html">Odoo.com accounts</a></li>
</ul>
</li>
<li class="toctree-l1 o_menu_developer"><a class="reference internal" href="../../developer.html">Developer</a><ul>
<li class="toctree-l2 o_menu_developer_tutorials"><a class="reference internal" href="../tutorials.html">Tutorials</a><ul>
<li class="toctree-l3 o_menu_developer_tutorials_setup_guide"><a class="reference internal" href="setup_guide.html">Setup guide</a></li>
<li class="toctree-l3 o_menu_developer_tutorials_server_framework_101"><a class="reference internal" href="server_framework_101.html">Server framework 101</a><ul>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_01_architecture"><a class="reference internal" href="server_framework_101/01_architecture.html">Chapter 1: Architecture Overview</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_02_newapp"><a class="reference internal" href="server_framework_101/02_newapp.html">Chapter 2: A New Application</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_03_basicmodel"><a class="reference internal" href="server_framework_101/03_basicmodel.html">Chapter 3: Models And Basic Fields</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_04_securityintro"><a class="reference internal" href="server_framework_101/04_securityintro.html">Chapter 4: Security - A Brief Introduction</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_05_firstui"><a class="reference internal" href="server_framework_101/05_firstui.html">Chapter 5: Finally, Some UI To Play With</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_06_basicviews"><a class="reference internal" href="server_framework_101/06_basicviews.html">Chapter 6: Basic Views</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_07_relations"><a class="reference internal" href="server_framework_101/07_relations.html">Chapter 7: Relations Between Models</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_08_compute_onchange"><a class="reference internal" href="server_framework_101/08_compute_onchange.html">Chapter 8: Computed Fields And Onchanges</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_09_actions"><a class="reference internal" href="server_framework_101/09_actions.html">Chapter 9: Ready For Some Action?</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_10_constraints"><a class="reference internal" href="server_framework_101/10_constraints.html">Chapter 10: Constraints</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_11_sprinkles"><a class="reference internal" href="server_framework_101/11_sprinkles.html">Chapter 11: Add The Sprinkles</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_12_inheritance"><a class="reference internal" href="server_framework_101/12_inheritance.html">Chapter 12: Inheritance</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_13_other_module"><a class="reference internal" href="server_framework_101/13_other_module.html">Chapter 13: Interact With Other Modules</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_14_qwebintro"><a class="reference internal" href="server_framework_101/14_qwebintro.html">Chapter 14: A Brief History Of QWeb</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_server_framework_101_15_final_word"><a class="reference internal" href="server_framework_101/15_final_word.html">Chapter 15: The final word</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_developer_tutorials_discover_js_framework"><a class="reference internal" href="discover_js_framework.html">Discover the web framework</a><ul>
<li class="toctree-l4 o_menu_developer_tutorials_discover_js_framework_01_owl_components"><a class="reference internal" href="discover_js_framework/01_owl_components.html">Chapter 1: Owl components</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_discover_js_framework_02_build_a_dashboard"><a class="reference internal" href="discover_js_framework/02_build_a_dashboard.html">Chapter 2: Build a dashboard</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_developer_tutorials_master_odoo_web_framework"><a class="reference internal" href="master_odoo_web_framework.html">Master the web framework</a><ul>
<li class="toctree-l4 o_menu_developer_tutorials_master_odoo_web_framework_01_build_clicker_game"><a class="reference internal" href="master_odoo_web_framework/01_build_clicker_game.html">Chapter 1: Build a Clicker game</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_master_odoo_web_framework_02_create_gallery_view"><a class="reference internal" href="master_odoo_web_framework/02_create_gallery_view.html">Chapter 2: Create a Gallery View</a></li>
<li class="toctree-l4 o_menu_developer_tutorials_master_odoo_web_framework_03_customize_kanban_view"><a class="reference internal" href="master_odoo_web_framework/03_customize_kanban_view.html">Chapter 3: Customize a kanban view</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_developer_tutorials_define_module_data"><a class="reference internal" href="define_module_data.html">Define module data</a></li>
<li class="toctree-l3 o_menu_developer_tutorials_restrict_data_access"><a class="reference internal" href="restrict_data_access.html">Restrict access to data</a></li>
<li class="toctree-l3 o_menu_developer_tutorials_unit_tests"><a class="reference internal" href="unit_tests.html">Safeguard your code with unit tests</a></li>
<li class="toctree-l3 o_menu_developer_tutorials_importable_modules"><a class="reference internal" href="importable_modules.html">Write importable modules</a></li>
<li class="toctree-l3 o_menu_developer_tutorials_mixins"><a class="reference internal" href="mixins.html">Reuse code with mixins</a></li>
<li class="toctree-l3 o_menu_developer_tutorials_pdf_reports"><a class="reference internal" href="pdf_reports.html">Build PDF Reports</a></li>
</ul>
</li>
<li class="toctree-l2 o_menu_developer_howtos"><a class="reference internal" href="../howtos.html">How-to guides</a><ul>
<li class="toctree-l3 o_menu_developer_howtos_scss_tips"><a class="reference internal" href="../howtos/scss_tips.html">Write lean easy-to-maintain CSS</a></li>
<li class="toctree-l3 o_menu_developer_howtos_javascript_field"><a class="reference internal" href="../howtos/javascript_field.html">Customize a field</a></li>
<li class="toctree-l3 o_menu_developer_howtos_javascript_view"><a class="reference internal" href="../howtos/javascript_view.html">Customize a view type</a></li>
<li class="toctree-l3 o_menu_developer_howtos_javascript_client_action"><a class="reference internal" href="../howtos/javascript_client_action.html">Create a client action</a></li>
<li class="toctree-l3 o_menu_developer_howtos_standalone_owl_application"><a class="reference internal" href="../howtos/standalone_owl_application.html">Create a standalone Owl application</a></li>
<li class="toctree-l3 o_menu_developer_howtos_frontend_owl_components"><a class="reference internal" href="../howtos/frontend_owl_components.html">Use Owl components on the portal and website</a></li>
<li class="toctree-l3 o_menu_developer_howtos_website_themes"><a class="reference internal" href="../howtos/website_themes.html">Website themes</a><ul>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_setup"><a class="reference internal" href="../howtos/website_themes/setup.html">Setup</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_theming"><a class="reference internal" href="../howtos/website_themes/theming.html">Theming</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_layout"><a class="reference internal" href="../howtos/website_themes/layout.html">Layout</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_navigation"><a class="reference internal" href="../howtos/website_themes/navigation.html">Navigation</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_pages"><a class="reference internal" href="../howtos/website_themes/pages.html">Pages</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_building_blocks"><a class="reference internal" href="../howtos/website_themes/building_blocks.html">Building blocks</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_shapes"><a class="reference internal" href="../howtos/website_themes/shapes.html">Shapes</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_gradients"><a class="reference internal" href="../howtos/website_themes/gradients.html">Gradients</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_animations"><a class="reference internal" href="../howtos/website_themes/animations.html">Animations</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_forms"><a class="reference internal" href="../howtos/website_themes/forms.html">Forms</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_translations"><a class="reference internal" href="../howtos/website_themes/translations.html">Translations</a></li>
<li class="toctree-l4 o_menu_developer_howtos_website_themes_going_live"><a class="reference internal" href="../howtos/website_themes/going_live.html">Going live</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_developer_howtos_web_services"><a class="reference internal" href="../howtos/web_services.html">Web Services</a></li>
<li class="toctree-l3 o_menu_developer_howtos_company"><a class="reference internal" href="../howtos/company.html">Multi-company Guidelines</a></li>
<li class="toctree-l3 o_menu_developer_howtos_create_reports"><a class="reference internal" href="../howtos/create_reports.html">Create customized reports</a></li>
<li class="toctree-l3 o_menu_developer_howtos_accounting_localization"><a class="reference internal" href="../howtos/accounting_localization.html">Accounting localization</a></li>
<li class="toctree-l3 o_menu_developer_howtos_translations"><a class="reference internal" href="../howtos/translations.html">Translating Modules</a></li>
<li class="toctree-l3 o_menu_developer_howtos_connect_device"><a class="reference internal" href="../howtos/connect_device.html">Connect with a device</a></li>
<li class="toctree-l3 o_menu_developer_howtos_upgrade_custom_db"><a class="reference internal" href="../howtos/upgrade_custom_db.html">Upgrade a customized database</a></li>
</ul>
</li>
<li class="toctree-l2 o_menu_developer_reference"><a class="reference internal" href="../reference.html">Reference</a><ul>
<li class="toctree-l3 o_menu_developer_reference_backend"><a class="reference internal" href="#">Server framework</a><ul>
<li class="toctree-l4 o_menu_developer_reference_backend_orm"><a class="reference internal" href="../reference/backend/orm.html">ORM API</a><ul>
<li class="toctree-l5 o_menu_developer_reference_backend_orm_changelog"><a class="reference internal" href="../reference/backend/orm/changelog.html">Changelog</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_developer_reference_backend_data"><a class="reference internal" href="../reference/backend/data.html">Data Files</a></li>
<li class="toctree-l4 o_menu_developer_reference_backend_actions"><a class="reference internal" href="../reference/backend/actions.html">Actions</a></li>
<li class="toctree-l4 o_menu_developer_reference_backend_reports"><a class="reference internal" href="../reference/backend/reports.html">QWeb Reports</a></li>
<li class="toctree-l4 o_menu_developer_reference_backend_module"><a class="reference internal" href="../reference/backend/module.html">Module Manifests</a></li>
<li class="toctree-l4 o_menu_developer_reference_backend_security"><a class="reference internal" href="../reference/backend/security.html">Security in Odoo</a></li>
<li class="toctree-l4 o_menu_developer_reference_backend_performance"><a class="reference internal" href="../reference/backend/performance.html">Performance</a></li>
<li class="toctree-l4 o_menu_developer_reference_backend_testing"><a class="reference internal" href="../reference/backend/testing.html">Testing Odoo</a></li>
<li class="toctree-l4 o_menu_developer_reference_backend_http"><a class="reference internal" href="../reference/backend/http.html">Web Controllers</a></li>
<li class="toctree-l4 o_menu_developer_reference_backend_mixins"><a class="reference internal" href="../reference/backend/mixins.html">Mixins and Useful Classes</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_developer_reference_frontend"><a class="reference internal" href="#">Web framework</a><ul>
<li class="toctree-l4 o_menu_developer_reference_frontend_framework_overview"><a class="reference internal" href="../reference/frontend/framework_overview.html">Framework Overview</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_assets"><a class="reference internal" href="../reference/frontend/assets.html">Assets</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_javascript_modules"><a class="reference internal" href="../reference/frontend/javascript_modules.html">Javascript Modules</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_owl_components"><a class="reference internal" href="../reference/frontend/owl_components.html">Owl components</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_registries"><a class="reference internal" href="../reference/frontend/registries.html">Registries</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_services"><a class="reference internal" href="../reference/frontend/services.html">Services</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_hooks"><a class="reference internal" href="../reference/frontend/hooks.html">Hooks</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_patching_code"><a class="reference internal" href="../reference/frontend/patching_code.html">Patching code</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_error_handling"><a class="reference internal" href="../reference/frontend/error_handling.html">Error handling</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_javascript_reference"><a class="reference internal" href="../reference/frontend/javascript_reference.html">Javascript Reference</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_mobile"><a class="reference internal" href="../reference/frontend/mobile.html">Mobile JavaScript</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_qweb"><a class="reference internal" href="../reference/frontend/qweb.html">QWeb Templates</a></li>
<li class="toctree-l4 o_menu_developer_reference_frontend_odoo_editor"><a class="reference internal" href="../reference/frontend/odoo_editor.html">Odoo Editor</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_developer_reference_user_interface"><a class="reference internal" href="#">User interface</a><ul>
<li class="toctree-l4 o_menu_developer_reference_user_interface_view_records"><a class="reference internal" href="../reference/user_interface/view_records.html">View records</a></li>
<li class="toctree-l4 o_menu_developer_reference_user_interface_view_architectures"><a class="reference internal" href="../reference/user_interface/view_architectures.html">View architectures</a></li>
<li class="toctree-l4 o_menu_developer_reference_user_interface_scss_inheritance"><a class="reference internal" href="../reference/user_interface/scss_inheritance.html">SCSS inheritance</a></li>
<li class="toctree-l4 o_menu_developer_reference_user_interface_icons"><a class="reference internal" href="../reference/user_interface/icons.html">UI icons</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_developer_reference_standard_modules"><a class="reference internal" href="#">Standard modules</a><ul>
<li class="toctree-l4 o_menu_developer_reference_standard_modules_account"><a class="reference internal" href="#">Accounting</a><ul>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_account_account_account_tag"><a class="reference internal" href="../reference/standard_modules/account/account_account_tag.html">Account Tag</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_account_account_account"><a class="reference internal" href="../reference/standard_modules/account/account_account.html">Account</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_account_account_fiscal_position"><a class="reference internal" href="../reference/standard_modules/account/account_fiscal_position.html">Fiscal Position</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_account_account_group"><a class="reference internal" href="../reference/standard_modules/account/account_group.html">Account Group</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_account_account_report"><a class="reference internal" href="../reference/standard_modules/account/account_report.html">Report</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_account_account_report_line"><a class="reference internal" href="../reference/standard_modules/account/account_report_line.html">Report Line</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_account_account_tax"><a class="reference internal" href="../reference/standard_modules/account/account_tax.html">Taxes</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_account_account_tax_repartition"><a class="reference internal" href="../reference/standard_modules/account/account_tax_repartition.html">Tax Repartitions</a></li>
</ul>
</li>
<li class="toctree-l4 o_menu_developer_reference_standard_modules_payment"><a class="reference internal" href="#">Payment</a><ul>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_payment_payment_method"><a class="reference internal" href="../reference/standard_modules/payment/payment_method.html">Payment Method</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_payment_payment_provider"><a class="reference internal" href="../reference/standard_modules/payment/payment_provider.html">Payment Provider</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_payment_payment_token"><a class="reference internal" href="../reference/standard_modules/payment/payment_token.html">Payment Token</a></li>
<li class="toctree-l5 o_menu_developer_reference_standard_modules_payment_payment_transaction"><a class="reference internal" href="../reference/standard_modules/payment/payment_transaction.html">Payment Transaction</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3 o_menu_developer_reference_cli"><a class="reference internal" href="../reference/cli.html">Command-line interface (CLI)</a></li>
<li class="toctree-l3 o_menu_developer_reference_upgrades"><a class="reference internal" href="#">Upgrades</a><ul>
<li class="toctree-l4 o_menu_developer_reference_upgrades_upgrade_scripts"><a class="reference internal" href="../reference/upgrades/upgrade_scripts.html">Upgrade scripts</a></li>
<li class="toctree-l4 o_menu_developer_reference_upgrades_upgrade_utils"><a class="reference internal" href="../reference/upgrades/upgrade_utils.html">Upgrade utils</a></li>
</ul>
</li>
<li class="toctree-l3 o_menu_developer_reference_external_api"><a class="reference internal" href="../reference/external_api.html">External API</a></li>
<li class="toctree-l3 o_menu_developer_reference_extract_api"><a class="reference internal" href="../reference/extract_api.html">Extract API</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1 o_menu_contributing"><a class="reference internal" href="../../contributing.html">Contributing</a><ul>
<li class="toctree-l2 o_menu_contributing_development"><a class="reference internal" href="../../contributing/development.html">Development</a><ul>
<li class="toctree-l3 o_menu_contributing_development_coding_guidelines"><a class="reference internal" href="../../contributing/development/coding_guidelines.html">Coding guidelines</a></li>
<li class="toctree-l3 o_menu_contributing_development_git_guidelines"><a class="reference internal" href="../../contributing/development/git_guidelines.html">Git guidelines</a></li>
</ul>
</li>
<li class="toctree-l2 o_menu_contributing_documentation"><a class="reference internal" href="../../contributing/documentation.html">Documentation</a><ul>
<li class="toctree-l3 o_menu_contributing_documentation_content_guidelines"><a class="reference internal" href="../../contributing/documentation/content_guidelines.html">Content guidelines</a></li>
<li class="toctree-l3 o_menu_contributing_documentation_rst_guidelines"><a class="reference internal" href="../../contributing/documentation/rst_guidelines.html">RST guidelines and cheat sheet</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<header class="o_headers"><div class="o_main_header border-bottom d-flex align-items-center">
<div class="o_logo_wrapper">
<a href="../../index.html" class="o_logo">
<img src="../../_static/img/logos/odoo_logo.svg" height="20" alt="Odoo"/>
<span>docs</span>
</a>
</div>
<div class="d-flex flex-grow-1">
<div id="searchbox" class="o_search_wrapper d-flex flex-grow-1" role="search">
<form class="o_search" action="../../search.html" method="get">
<input type="text" name="q" id="q" class="form-control rounded-pill" placeholder="What are you looking for?">
<input type="hidden" name="area" value="default">
<input type="hidden" name="check_keywords" value="yes">
<button type="submit" class="btn"><i class="i-search"></i></button>
</form>
</div>
<script type="text/javascript">$('.o_search_wrapper').show(0);</script>
<a class="btn btn-primary fw_bold ms-auto d-none d-lg-inline-block" href="https://odoo.com/trial">Try Odoo for FREE</a>
</div>
</div>
<div class="o_subheader border-bottom d-flex">
<div class="o_side_nav_toggler_wrapper border-end d-flex d-lg-none">
<button class="h-100 border-0" type="button" data-bs-toggle="collapse" data-bs-target="#o_menu" aria-label="Toggle navigation">
<i class="i-sidepanel"></i>
</button>
</div>
<div class="d-flex justify-content-end ms-auto"><div class="o_languages">
<div class="dropdown">
<button class="btn btn-sm dropdown-toggle"
id="languages"
data-bs-toggle="dropdown">
EN
</button>
<ul class="dropdown-menu" aria-labelledby="languages">
<li><a class="o_switcher_item dropdown-item" href="/documentation/static/html/18.0/vi/developer/tutorials/web.html">VI</a></li>
</ul>
</div>
</div><div class="o_versions row">
<div class="dropdown">
<button class="btn btn-sm dropdown-toggle"
id="versions"
disabled="">
Odoo 18
</button>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="versions">
</ul>
</div>
</div>
</div>
</div>
</header>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="nav-item nav-item-0"><a href="../../index.html">Odoo 18.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Customizing the web client</a></li>
</ul>
</div>
<div id="wrap">
<main class="container-fluid ">
<article id="o_content" class="doc-body">
<div role="main">
<section id="customizing-the-web-client">
<h1>Customizing the web client<a class="headerlink" href="#customizing-the-web-client" title="Permalink to this headline"></a></h1>
<div class="alert alert-danger">
<p class="alert-title">
Danger</p><p>This tutorial is outdated.</p>
</div>
<p>This guide is about creating modules for Odoos web client.</p>
<p>To create websites with Odoo, see <a class="reference internal" href="website.html"><span class="doc">Building a Website</span></a>; to add business capabilities
or extend existing business systems of Odoo, see <a class="reference internal" href="backend.html"><span class="doc">Building a Module</span></a>.</p>
<div class="alert alert-warning">
<p class="alert-title">
Warning</p><p>This guide assumes knowledge of:</p>
<ul class="simple">
<li><p>Javascript basics and good practices</p></li>
<li><p><a class="reference external" href="http://jquery.org">jQuery</a></p></li>
<li><p><a class="reference external" href="http://underscorejs.org">Underscore.js</a></p></li>
</ul>
<p>It also requires <a class="reference internal" href="../../administration/on_premise.html"><span class="doc">an installed Odoo</span></a>, and <a class="reference external" href="http://git-scm.com">Git</a>.</p>
</div>
</section><section id="a-simple-module">
<h2>A Simple Module<a class="headerlink" href="#a-simple-module" title="Permalink to this headline"></a></h2>
<p>Lets start with a simple Odoo module holding basic web component
configuration and letting us test the web framework.</p>
<p>The example module is available online and can be downloaded using the
following command:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> git clone http://github.com/odoo/petstore
</pre></div>
</div>
<p>This will create a <code class="o_code docutils literal notranslate"><span class="pre">petstore</span></code> folder wherever you executed the command.
You then need to add that folder to Odoos
<a class="reference internal" href="../reference/cli.html#cmdoption-odoo-bin-addons-path"><code class="xref std std-option o_code docutils literal notranslate"><span class="pre">addons</span> <span class="pre">path</span></code></a>, create a new database and
install the <code class="o_code docutils literal notranslate"><span class="pre">oepetstore</span></code> module.</p>
<p>If you browse the <code class="o_code docutils literal notranslate"><span class="pre">petstore</span></code> folder, you should see the following content:</p>
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>oepetstore
|-- images
| |-- alligator.jpg
| |-- ball.jpg
| |-- crazy_circle.jpg
| |-- fish.jpg
| `-- mice.jpg
|-- __init__.py
|-- oepetstore.message_of_the_day.csv
|-- __manifest__.py
|-- petstore_data.xml
|-- petstore.py
|-- petstore.xml
`-- static
`-- src
|-- css
| `-- petstore.css
|-- js
| `-- petstore.js
`-- xml
`-- petstore.xml
</pre></div>
</div>
<p>The module already holds various server customizations. Well come back to
these later, for now lets focus on the web-related content, in the <code class="o_code docutils literal notranslate"><span class="pre">static</span></code>
folder.</p>
<p>Files used in the “web” side of an Odoo module must be placed in a <code class="o_code docutils literal notranslate"><span class="pre">static</span></code>
folder so they are available to a web browser, files outside that folder can
not be fetched by browsers. The <code class="o_code docutils literal notranslate"><span class="pre">src/css</span></code>, <code class="o_code docutils literal notranslate"><span class="pre">src/js</span></code> and <code class="o_code docutils literal notranslate"><span class="pre">src/xml</span></code>
sub-folders are conventional and not strictly necessary.</p>
<dl>
<dt><code class="o_code docutils literal notranslate"><span class="pre">oepetstore/static/css/petstore.css</span></code></dt><dd><p>Currently empty, will hold the <a class="reference external" href="http://www.w3.org/Style/CSS/Overview.en.html">CSS</a> for pet store content</p>
</dd>
<dt><code class="o_code docutils literal notranslate"><span class="pre">oepetstore/static/xml/petstore.xml</span></code></dt><dd><p>Mostly empty, will hold <a class="reference internal" href="../reference/frontend/qweb.html#reference-qweb"><span class="std std-ref">QWeb Templates</span></a> templates</p>
</dd>
<dt><code class="o_code docutils literal notranslate"><span class="pre">oepetstore/static/js/petstore.js</span></code></dt><dd><p>The most important (and interesting) part, contains the logic of the
application (or at least its web-browser side) as javascript. It should
currently look like:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">odoo</span><span class="p">.</span><span class="nx">oepetstore</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">local</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">_t</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">_t</span><span class="p">,</span>
<span class="nx">_lt</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">_lt</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">QWeb</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">qweb</span><span class="p">;</span>
<span class="nx">local</span><span class="p">.</span><span class="nx">HomePage</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;pet store home page loaded&quot;</span><span class="p">);</span>
<span class="p">},</span>
<span class="p">});</span>
<span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">client_actions</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span>
<span class="s1">&#39;petstore.homepage&#39;</span><span class="p">,</span> <span class="s1">&#39;instance.oepetstore.HomePage&#39;</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
</div>
</dd>
</dl>
<p>Which only prints a small message in the browsers console.</p>
<p>The files in the <code class="o_code docutils literal notranslate"><span class="pre">static</span></code> folder, need to be defined within the module in order for them to be
loaded correctly. Everything in <code class="o_code docutils literal notranslate"><span class="pre">src/xml</span></code> is defined in <code class="o_code docutils literal notranslate"><span class="pre">__manifest__.py</span></code> while the contents of
<code class="o_code docutils literal notranslate"><span class="pre">src/css</span></code> and <code class="o_code docutils literal notranslate"><span class="pre">src/js</span></code> are defined in <code class="o_code docutils literal notranslate"><span class="pre">petstore.xml</span></code>, or a similar file.</p>
<div class="alert alert-warning">
<p class="alert-title">
Warning</p><p>All JavaScript files are concatenated and <a class="reference internal" href="../glossary.html#term-minified"><span class="xref std std-term">minified</span></a> to improve
application load time.</p>
<p>One of the drawback is debugging becomes more difficult as
individual files disappear and the code is made significantly less
readable. It is possible to disable this process by enabling the
“developer mode”: log into your Odoo instance (user <em>admin</em> password
<em>admin</em> by default) open the user menu (in the top-right corner of the
Odoo screen) and select <span class="guilabel">About Odoo</span> then <span class="guilabel">Activate
the developer mode</span>:</p>
<img alt="../../_images/about_odoo.png" class="align-center" src="../../_images/about_odoo.png" />
<img alt="../../_images/devmode.png" class="align-center" src="../../_images/devmode.png" />
<p>This will reload the web client with optimizations disabled, making
development and debugging significantly more comfortable.</p>
</div>
</section><section id="odoo-javascript-module">
<h2>Odoo JavaScript Module<a class="headerlink" href="#odoo-javascript-module" title="Permalink to this headline"></a></h2>
<p>Javascript doesnt have built-in modules. As a result variables defined in
different files are all mashed together and may conflict. This has given rise
to various module patterns used to build clean namespaces and limit risks of
naming conflicts.</p>
<p>The Odoo framework uses one such pattern to define modules within web addons,
in order to both namespace code and correctly order its loading.</p>
<p><code class="o_code docutils literal notranslate"><span class="pre">oepetstore/static/js/petstore.js</span></code> contains a module declaration:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">odoo</span><span class="p">.</span><span class="nx">oepetstore</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">local</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">local</span><span class="p">.</span><span class="nx">xxx</span> <span class="o">=</span> <span class="p">...;</span>
<span class="p">}</span>
</pre></div>
</div>
<p>In Odoo web, modules are declared as functions set on the global <code class="o_code docutils literal notranslate"><span class="pre">odoo</span></code>
variable. The functions name must be the same as the addon (in this case
<code class="o_code docutils literal notranslate"><span class="pre">oepetstore</span></code>) so the framework can find it, and automatically initialize it.</p>
<p>When the web client loads your module it will call the root function
and provide two parameters:</p>
<ul class="simple">
<li><p>the first parameter is the current instance of the Odoo web client, it gives
access to various capabilities defined by the Odoo (translations,
network services) as well as objects defined by the core or by other
modules.</p></li>
<li><p>the second parameter is your own local namespace automatically created by
the web client. Objects and variables which should be accessible from
outside your module (either because the Odoo web client needs to call them
or because others may want to customize them) should be set inside that
namespace.</p></li>
</ul>
</section><section id="classes">
<h2>Classes<a class="headerlink" href="#classes" title="Permalink to this headline"></a></h2>
<p>Much as modules, and contrary to most object-oriented languages, javascript
does not build in <em>classes</em><a class="footnote-reference brackets" href="#id6" id="id2">1</a> although it provides roughly
equivalent (if lower-level and more verbose) mechanisms.</p>
<p>For simplicity and developer-friendliness Odoo web provides a class
system based on John Resigs <a class="reference external" href="http://ejohn.org/blog/simple-javascript-inheritance/">Simple JavaScript Inheritance</a>.</p>
<p>New classes are defined by calling the <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">extend()</span></code>
method of <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">odoo.web.Class()</span></code>:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="kd">var</span> <span class="nx">MyClass</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">Class</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">say_hello</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;hello&quot;</span><span class="p">);</span>
<span class="p">},</span>
<span class="p">});</span>
</pre></div>
</div>
<p>The <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">extend()</span></code> method takes a dictionary describing
the new classs content (methods and static attributes). In this case, it will
only have a <code class="o_code docutils literal notranslate"><span class="pre">say_hello</span></code> method which takes no parameters.</p>
<p>Classes are instantiated using the <code class="o_code docutils literal notranslate"><span class="pre">new</span></code> operator:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="kd">var</span> <span class="nx">my_object</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">MyClass</span><span class="p">();</span>
<span class="nx">my_object</span><span class="p">.</span><span class="nx">say_hello</span><span class="p">();</span>
<span class="c1">// print &quot;hello&quot; in the console</span>
</pre></div>
</div>
<p>And attributes of the instance can be accessed via <code class="o_code docutils literal notranslate"><span class="pre">this</span></code>:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="kd">var</span> <span class="nx">MyClass</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">Class</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">say_hello</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;hello&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">name</span><span class="p">);</span>
<span class="p">},</span>
<span class="p">});</span>
<span class="kd">var</span> <span class="nx">my_object</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">MyClass</span><span class="p">();</span>
<span class="nx">my_object</span><span class="p">.</span><span class="nx">name</span> <span class="o">=</span> <span class="s2">&quot;Bob&quot;</span><span class="p">;</span>
<span class="nx">my_object</span><span class="p">.</span><span class="nx">say_hello</span><span class="p">();</span>
<span class="c1">// print &quot;hello Bob&quot; in the console</span>
</pre></div>
</div>
<p>Classes can provide an initializer to perform the initial setup of the
instance, by defining an <code class="o_code docutils literal notranslate"><span class="pre">init()</span></code> method. The initializer receives the
parameters passed when using the <code class="o_code docutils literal notranslate"><span class="pre">new</span></code> operator:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="kd">var</span> <span class="nx">MyClass</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">Class</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">init</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">name</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">name</span> <span class="o">=</span> <span class="nx">name</span><span class="p">;</span>
<span class="p">},</span>
<span class="nx">say_hello</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;hello&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">name</span><span class="p">);</span>
<span class="p">},</span>
<span class="p">});</span>
<span class="kd">var</span> <span class="nx">my_object</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">MyClass</span><span class="p">(</span><span class="s2">&quot;Bob&quot;</span><span class="p">);</span>
<span class="nx">my_object</span><span class="p">.</span><span class="nx">say_hello</span><span class="p">();</span>
<span class="c1">// print &quot;hello Bob&quot; in the console</span>
</pre></div>
</div>
<p>It is also possible to create subclasses from existing (used-defined) classes
by calling <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">extend()</span></code> on the parent class, as is done
to subclass <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">Class()</span></code>:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="kd">var</span> <span class="nx">MySpanishClass</span> <span class="o">=</span> <span class="nx">MyClass</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">say_hello</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;hola&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">name</span><span class="p">);</span>
<span class="p">},</span>
<span class="p">});</span>
<span class="kd">var</span> <span class="nx">my_object</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">MySpanishClass</span><span class="p">(</span><span class="s2">&quot;Bob&quot;</span><span class="p">);</span>
<span class="nx">my_object</span><span class="p">.</span><span class="nx">say_hello</span><span class="p">();</span>
<span class="c1">// print &quot;hola Bob&quot; in the console</span>
</pre></div>
</div>
<p>When overriding a method using inheritance, you can use <code class="o_code docutils literal notranslate"><span class="pre">this._super()</span></code> to
call the original method:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="kd">var</span> <span class="nx">MySpanishClass</span> <span class="o">=</span> <span class="nx">MyClass</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">say_hello</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">_super</span><span class="p">();</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;translation in Spanish: hola&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">name</span><span class="p">);</span>
<span class="p">},</span>
<span class="p">});</span>
<span class="kd">var</span> <span class="nx">my_object</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">MySpanishClass</span><span class="p">(</span><span class="s2">&quot;Bob&quot;</span><span class="p">);</span>
<span class="nx">my_object</span><span class="p">.</span><span class="nx">say_hello</span><span class="p">();</span>
<span class="c1">// print &quot;hello Bob \n translation in Spanish: hola Bob&quot; in the console</span>
</pre></div>
</div>
<div class="alert alert-warning">
<p class="alert-title">
Warning</p><p><code class="o_code docutils literal notranslate"><span class="pre">_super</span></code> is not a standard method, it is set on-the-fly to the next
method in the current inheritance chain, if any. It is only defined
during the <em>synchronous</em> part of a method call, for use in asynchronous
handlers (after network calls or in <code class="o_code docutils literal notranslate"><span class="pre">setTimeout</span></code> callbacks) a reference
to its value should be retained, it should not be accessed via <code class="o_code docutils literal notranslate"><span class="pre">this</span></code>:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="c1">// broken, will generate an error</span>
<span class="nx">say_hello</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
<span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">_super</span><span class="p">();</span>
<span class="p">}.</span><span class="nx">bind</span><span class="p">(</span><span class="k">this</span><span class="p">),</span> <span class="mi">0</span><span class="p">);</span>
<span class="p">}</span>
<span class="c1">// correct</span>
<span class="nx">say_hello</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
<span class="c1">// don&#39;t forget .bind()</span>
<span class="kd">var</span> <span class="nx">_super</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_super</span><span class="p">.</span><span class="nx">bind</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>
<span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
<span class="nx">_super</span><span class="p">();</span>
<span class="p">}.</span><span class="nx">bind</span><span class="p">(</span><span class="k">this</span><span class="p">),</span> <span class="mi">0</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
</div>
</div>
</section><section id="widgets-basics">
<h2>Widgets Basics<a class="headerlink" href="#widgets-basics" title="Permalink to this headline"></a></h2>
<p>The Odoo web client bundles <a class="reference external" href="http://jquery.org">jQuery</a> for easy DOM manipulation. It is useful
and provides a better API than standard <a class="reference external" href="http://www.w3.org/TR/DOM-Level-3-Core/">W3C DOM</a><a class="footnote-reference brackets" href="#dombugs" id="id3">2</a>, but
insufficient to structure complex applications leading to difficult
maintenance.</p>
<p>Much like object-oriented desktop UI toolkits (e.g. <a class="reference external" href="http://qt-project.org">Qt</a>, <a class="reference external" href="https://developer.apple.com/technologies/mac/cocoa.html">Cocoa</a> or <a class="reference external" href="http://www.gtk.org">GTK</a>),
Odoo Web makes specific components responsible for sections of a page. In
Odoo web, the base for such components is the <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">Widget()</span></code>
class, a component specialized in handling a page section and displaying
information for the user.</p>
</section><section id="your-first-widget">
<h3>Your First Widget<a class="headerlink" href="#your-first-widget" title="Permalink to this headline"></a></h3>
<p>The initial demonstration module already provides a basic widget:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">HomePage</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;pet store home page loaded&quot;</span><span class="p">);</span>
<span class="p">},</span>
<span class="p">});</span>
</pre></div>
</div>
<p>It extends <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">Widget()</span></code> and overrides the standard method
<code class="xref js js-func o_code docutils literal notranslate"><span class="pre">start()</span></code>, which — much like the previous <code class="o_code docutils literal notranslate"><span class="pre">MyClass</span></code>
— does little for now.</p>
<p>This line at the end of the file:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">client_actions</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span>
<span class="s1">&#39;petstore.homepage&#39;</span><span class="p">,</span> <span class="s1">&#39;instance.oepetstore.HomePage&#39;</span><span class="p">);</span>
</pre></div>
</div>
<p>registers our basic widget as a client action. Client actions will be
explained later, for now this is just what allows our widget to
be called and displayed when we select the
<span class="menuselection">Pet Store ‣ Pet Store ‣ Home Page</span> menu.</p>
<div class="alert alert-warning">
<p class="alert-title">
Warning</p><p>because the widget will be called from outside our module, the web client
needs its “fully qualified” name, not the local version.</p>
</div>
</section><section id="display-content">
<h3>Display Content<a class="headerlink" href="#display-content" title="Permalink to this headline"></a></h3>
<p>Widgets have a number of methods and features, but the basics are simple:</p>
<ul class="simple">
<li><p>set up a widget</p></li>
<li><p>format the widgets data</p></li>
<li><p>display the widget</p></li>
</ul>
<p>The <code class="o_code docutils literal notranslate"><span class="pre">HomePage</span></code> widget already has a <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">start()</span></code>
method. That method is part of the normal widget lifecycle and automatically
called once the widget is inserted in the page. We can use it to display some
content.</p>
<p>All widgets have a <code class="xref js js-attr o_code docutils literal notranslate"><span class="pre">$el</span></code> which represents the
section of page theyre in charge of (as a <a class="reference external" href="http://jquery.org">jQuery</a> object). Widget content
should be inserted there. By default, <code class="xref js js-attr o_code docutils literal notranslate"><span class="pre">$el</span></code> is an
empty <code class="o_code docutils literal notranslate"><span class="pre">&lt;div&gt;</span></code> element.</p>
<p>A <code class="o_code docutils literal notranslate"><span class="pre">&lt;div&gt;</span></code> element is usually invisible to the user if it has no content (or
without specific styles giving it a size) which is why nothing is displayed
on the page when <code class="o_code docutils literal notranslate"><span class="pre">HomePage</span></code> is launched.</p>
<p>Lets add some content to the widgets root element, using jQuery:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">HomePage</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">$el</span><span class="p">.</span><span class="nx">append</span><span class="p">(</span><span class="s2">&quot;&lt;div&gt;Hello dear Odoo user!&lt;/div&gt;&quot;</span><span class="p">);</span>
<span class="p">},</span>
<span class="p">});</span>
</pre></div>
</div>
<p>That message will now appear when you open <span class="menuselection">Pet Store
‣ Pet Store ‣ Home Page</span></p>
<div class="alert alert-primary">
<p class="alert-title">
Note</p><p>to refresh the javascript code loaded in Odoo Web, you will need to reload
the page. There is no need to restart the Odoo server.</p>
</div>
<p>The <code class="o_code docutils literal notranslate"><span class="pre">HomePage</span></code> widget is used by Odoo Web and managed automatically.
To learn how to use a widget “from scratch” lets create a new one:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">GreetingsWidget</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">$el</span><span class="p">.</span><span class="nx">append</span><span class="p">(</span><span class="s2">&quot;&lt;div&gt;We are so happy to see you again in this menu!&lt;/div&gt;&quot;</span><span class="p">);</span>
<span class="p">},</span>
<span class="p">});</span>
</pre></div>
</div>
<p>We can now add our <code class="o_code docutils literal notranslate"><span class="pre">GreetingsWidget</span></code> to the <code class="o_code docutils literal notranslate"><span class="pre">HomePage</span></code> by using the
<code class="o_code docutils literal notranslate"><span class="pre">GreetingsWidget</span></code>s <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">appendTo()</span></code> method:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">HomePage</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">$el</span><span class="p">.</span><span class="nx">append</span><span class="p">(</span><span class="s2">&quot;&lt;div&gt;Hello dear Odoo user!&lt;/div&gt;&quot;</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">greeting</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">local</span><span class="p">.</span><span class="nx">GreetingsWidget</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>
<span class="k">return</span> <span class="nx">greeting</span><span class="p">.</span><span class="nx">appendTo</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">$el</span><span class="p">);</span>
<span class="p">},</span>
<span class="p">});</span>
</pre></div>
</div>
<ul class="simple">
<li><p><code class="o_code docutils literal notranslate"><span class="pre">HomePage</span></code> first adds its own content to its DOM root</p></li>
<li><p><code class="o_code docutils literal notranslate"><span class="pre">HomePage</span></code> then instantiates <code class="o_code docutils literal notranslate"><span class="pre">GreetingsWidget</span></code></p></li>
<li><p>Finally it tells <code class="o_code docutils literal notranslate"><span class="pre">GreetingsWidget</span></code> where to insert itself, delegating part
of its <code class="xref js js-attr o_code docutils literal notranslate"><span class="pre">$el</span></code> to the <code class="o_code docutils literal notranslate"><span class="pre">GreetingsWidget</span></code>.</p></li>
</ul>
<p>When the <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">appendTo()</span></code> method is called, it asks the
widget to insert itself at the specified position and to display its content.
The <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">start()</span></code> method will be called during the call
to <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">appendTo()</span></code>.</p>
<p>To see what happens under the displayed interface, we will use the browsers
DOM Explorer. But first lets alter our widgets slightly so we can more easily
find where they are, by <code class="xref js js-attr o_code docutils literal notranslate"><span class="pre">adding</span> <span class="pre">a</span> <span class="pre">class</span> <span class="pre">to</span> <span class="pre">their</span> <span class="pre">root</span> <span class="pre">elements</span></code>:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">HomePage</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">className</span><span class="o">:</span> <span class="s1">&#39;oe_petstore_homepage&#39;</span><span class="p">,</span>
<span class="p">...</span>
<span class="p">});</span>
<span class="nx">local</span><span class="p">.</span><span class="nx">GreetingsWidget</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">className</span><span class="o">:</span> <span class="s1">&#39;oe_petstore_greetings&#39;</span><span class="p">,</span>
<span class="p">...</span>
<span class="p">});</span>
</pre></div>
</div>
<p>If you can find the relevant section of the DOM (right-click on the text
then <span class="guilabel">Inspect Element</span>), it should look like this:</p>
<div class="highlight-html notranslate"><div class="highlight"><pre><span></span><span class="p">&lt;</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">&quot;oe_petstore_homepage&quot;</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">div</span><span class="p">&gt;</span>Hello dear Odoo user!<span class="p">&lt;/</span><span class="nt">div</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">&quot;oe_petstore_greetings&quot;</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">div</span><span class="p">&gt;</span>We are so happy to see you again in this menu!<span class="p">&lt;/</span><span class="nt">div</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">div</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">div</span><span class="p">&gt;</span>
</pre></div>
</div>
<p>Which clearly shows the two <code class="o_code docutils literal notranslate"><span class="pre">&lt;div&gt;</span></code> elements automatically created by
<code class="xref js js-class o_code docutils literal notranslate"><span class="pre">Widget()</span></code>, because we added some classes on them.</p>
<p>We can also see the two message-holding divs we added ourselves</p>
<p>Finally, note the <code class="o_code docutils literal notranslate"><span class="pre">&lt;div</span> <span class="pre">class=&quot;oe_petstore_greetings&quot;&gt;</span></code> element which
represents the <code class="o_code docutils literal notranslate"><span class="pre">GreetingsWidget</span></code> instance is <em>inside</em> the
<code class="o_code docutils literal notranslate"><span class="pre">&lt;div</span> <span class="pre">class=&quot;oe_petstore_homepage&quot;&gt;</span></code> which represents the <code class="o_code docutils literal notranslate"><span class="pre">HomePage</span></code>
instance, since we appended</p>
</section><section id="widget-parents-and-children">
<h3>Widget Parents and Children<a class="headerlink" href="#widget-parents-and-children" title="Permalink to this headline"></a></h3>
<p>In the previous part, we instantiated a widget using this syntax:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="k">new</span> <span class="nx">local</span><span class="p">.</span><span class="nx">GreetingsWidget</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>
</pre></div>
</div>
<p>The first argument is <code class="o_code docutils literal notranslate"><span class="pre">this</span></code>, which in that case was a <code class="o_code docutils literal notranslate"><span class="pre">HomePage</span></code>
instance. This tells the widget being created which other widget is its
<em>parent</em>.</p>
<p>As weve seen, widgets are usually inserted in the DOM by another widget and
<em>inside</em> that other widgets root element. This means most widgets are “part”
of another widget, and exist on behalf of it. We call the container the
<em>parent</em>, and the contained widget the <em>child</em>.</p>
<p>Due to multiple technical and conceptual reasons, it is necessary for a widget
to know who is its parent and who are its children.</p>
<dl>
<dt><code class="xref js js-func o_code docutils literal notranslate"><span class="pre">getParent()</span></code></dt><dd><p>can be used to get the parent of a widget:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">GreetingsWidget</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">getParent</span><span class="p">().</span><span class="nx">$el</span> <span class="p">);</span>
<span class="c1">// will print &quot;div.oe_petstore_homepage&quot; in the console</span>
<span class="p">},</span>
<span class="p">});</span>
</pre></div>
</div>
</dd>
<dt><code class="xref js js-func o_code docutils literal notranslate"><span class="pre">getChildren()</span></code></dt><dd><p>can be used to get a list of its children:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">HomePage</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">greeting</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">local</span><span class="p">.</span><span class="nx">GreetingsWidget</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>
<span class="nx">greeting</span><span class="p">.</span><span class="nx">appendTo</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">$el</span><span class="p">);</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">getChildren</span><span class="p">()[</span><span class="mi">0</span><span class="p">].</span><span class="nx">$el</span><span class="p">);</span>
<span class="c1">// will print &quot;div.oe_petstore_greetings&quot; in the console</span>
<span class="p">},</span>
<span class="p">});</span>
</pre></div>
</div>
</dd>
</dl>
<p>When overriding the <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">init()</span></code> method of a widget it is
<em>of the utmost importance</em> to pass the parent to the <code class="o_code docutils literal notranslate"><span class="pre">this._super()</span></code> call,
otherwise the relation will not be set up correctly:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">GreetingsWidget</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">init</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">parent</span><span class="p">,</span> <span class="nx">name</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">_super</span><span class="p">(</span><span class="nx">parent</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">name</span> <span class="o">=</span> <span class="nx">name</span><span class="p">;</span>
<span class="p">},</span>
<span class="p">});</span>
</pre></div>
</div>
<p>Finally, if a widget does not have a parent (e.g. because its the root
widget of the application), <code class="o_code docutils literal notranslate"><span class="pre">null</span></code> can be provided as parent:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="k">new</span> <span class="nx">local</span><span class="p">.</span><span class="nx">GreetingsWidget</span><span class="p">(</span><span class="kc">null</span><span class="p">);</span>
</pre></div>
</div>
</section><section id="destroying-widgets">
<h3>Destroying Widgets<a class="headerlink" href="#destroying-widgets" title="Permalink to this headline"></a></h3>
<p>If you can display content to your users, you should also be able to erase
it. This is done via the <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">destroy()</span></code> method:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">greeting</span><span class="p">.</span><span class="nx">destroy</span><span class="p">();</span>
</pre></div>
</div>
<p>When a widget is destroyed it will first call
<code class="xref js js-func o_code docutils literal notranslate"><span class="pre">destroy()</span></code> on all its children. Then it erases itself
from the DOM. If you have set up permanent structures in
<code class="xref js js-func o_code docutils literal notranslate"><span class="pre">init()</span></code> or <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">start()</span></code> which
must be explicitly cleaned up (because the garbage collector will not handle
them), you can override <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">destroy()</span></code>.</p>
<div class="alert alert-danger">
<p class="alert-title">
Danger</p><p>when overriding <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">destroy()</span></code>, <code class="o_code docutils literal notranslate"><span class="pre">_super()</span></code>
<em>must always</em> be called otherwise the widget and its children are not
correctly cleaned up leaving possible memory leaks and “phantom events”,
even if no error is displayed</p>
</div>
</section><section id="the-qweb-template-engine">
<h2>The QWeb Template Engine<a class="headerlink" href="#the-qweb-template-engine" title="Permalink to this headline"></a></h2>
<p>In the previous section we added content to our widgets by directly
manipulating (and adding to) their DOM:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="k">this</span><span class="p">.</span><span class="nx">$el</span><span class="p">.</span><span class="nx">append</span><span class="p">(</span><span class="s2">&quot;&lt;div&gt;Hello dear Odoo user!&lt;/div&gt;&quot;</span><span class="p">);</span>
</pre></div>
</div>
<p>This allows generating and displaying any type of content, but gets unwieldy
when generating significant amounts of DOM (lots of duplication, quoting
issues, …)</p>
<p>As many other environments, Odoos solution is to use a <a class="reference external" href="http://en.wikipedia.org/wiki/Web_template_system">template engine</a>.
Odoos template engine is called <a class="reference internal" href="../reference/frontend/qweb.html#reference-qweb"><span class="std std-ref">QWeb Templates</span></a>.</p>
<p>QWeb is an XML-based templating language, similar to <a class="reference external" href="http://en.wikipedia.org/wiki/Genshi_(templating_language)">Genshi</a>, <a class="reference external" href="http://en.wikipedia.org/wiki/Thymeleaf">Thymeleaf</a> or <a class="reference external" href="http://en.wikipedia.org/wiki/Facelets">Facelets</a>. It has the following
characteristics:</p>
<ul class="simple">
<li><p>Its implemented fully in JavaScript and rendered in the browser</p></li>
<li><p>Each template file (XML files) contains multiple templates</p></li>
<li><p>It has special support in Odoo Webs <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">Widget()</span></code>, though it
can be used outside of Odoos web client (and its possible to use
<code class="xref js js-class o_code docutils literal notranslate"><span class="pre">Widget()</span></code> without relying on QWeb)</p></li>
</ul>
<div class="alert alert-primary">
<p class="alert-title">
Note</p><p>The rationale behind using QWeb instead of existing javascript template
engines is the extensibility of pre-existing (third-party) templates, much
like Odoo <a class="reference internal" href="../reference/user_interface/view_records.html"><span class="doc">views</span></a>.</p>
<p>Most javascript template engines are text-based which precludes easy
structural extensibility where an XML-based templating engine can be
generically altered using e.g. XPath or CSS and a tree-alteration DSL (or
even just XSLT). This flexibility and extensibility is a core
characteristic of Odoo, and losing it was considered unacceptable.</p>
</div>
</section><section id="using-qweb">
<h3>Using QWeb<a class="headerlink" href="#using-qweb" title="Permalink to this headline"></a></h3>
<p>First lets define a simple QWeb template in the almost-empty
<code class="o_code docutils literal notranslate"><span class="pre">oepetstore/static/src/xml/petstore.xml</span></code> file:</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="cp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>
<span class="nt">&lt;templates</span> <span class="na">xml:space=</span><span class="s">&quot;preserve&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;t</span> <span class="na">t-name=</span><span class="s">&quot;HomePageTemplate&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;div</span> <span class="na">style=</span><span class="s">&quot;background-color: red;&quot;</span><span class="nt">&gt;</span>This is some simple HTML<span class="nt">&lt;/div&gt;</span>
<span class="nt">&lt;/t&gt;</span>
<span class="nt">&lt;/templates&gt;</span>
</pre></div>
</div>
<p>Now we can use this template inside of the <code class="o_code docutils literal notranslate"><span class="pre">HomePage</span></code> widget. Using the
<code class="o_code docutils literal notranslate"><span class="pre">QWeb</span></code> loader variable defined at the top of the page, we can call to the
template defined in the XML file:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">HomePage</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">$el</span><span class="p">.</span><span class="nx">append</span><span class="p">(</span><span class="nx">QWeb</span><span class="p">.</span><span class="nx">render</span><span class="p">(</span><span class="s2">&quot;HomePageTemplate&quot;</span><span class="p">));</span>
<span class="p">},</span>
<span class="p">});</span>
</pre></div>
</div>
<p><code class="xref js js-func o_code docutils literal notranslate"><span class="pre">QWeb.render()</span></code> looks for the specified template, renders it to a string
and returns the result.</p>
<p>However, because <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">Widget()</span></code> has special integration for QWeb
the template can be set directly on the widget via its
<code class="xref js js-attr o_code docutils literal notranslate"><span class="pre">template</span></code> attribute:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">HomePage</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">template</span><span class="o">:</span> <span class="s2">&quot;HomePageTemplate&quot;</span><span class="p">,</span>
<span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="p">...</span>
<span class="p">},</span>
<span class="p">});</span>
</pre></div>
</div>
<p>Although the result looks similar, there are two differences between these
usages:</p>
<ul class="simple">
<li><p>with the second version, the template is rendered right before
<code class="xref js js-func o_code docutils literal notranslate"><span class="pre">start()</span></code> is called</p></li>
<li><p>in the first version the templates content is added to the widgets root
element, whereas in the second version the templates root element is
directly <em>set as</em> the widgets root element. Which is why the “greetings”
sub-widget also gets a red background</p></li>
</ul>
<div class="alert alert-warning">
<p class="alert-title">
Warning</p><p>templates should have a single non-<code class="o_code docutils literal notranslate"><span class="pre">t</span></code> root element, especially if
theyre set as a widgets <code class="xref js js-attr o_code docutils literal notranslate"><span class="pre">template</span></code>. If there are
multiple “root elements”, results are undefined (usually only the first
root element will be used and the others will be ignored)</p>
</div>
</section><section id="qweb-context">
<h4>QWeb Context<a class="headerlink" href="#qweb-context" title="Permalink to this headline"></a></h4>
<p>QWeb templates can be given data and can contain basic display logic.</p>
<p>For explicit calls to <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">QWeb.render()</span></code>, the template data is passed as
second parameter:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">QWeb</span><span class="p">.</span><span class="nx">render</span><span class="p">(</span><span class="s2">&quot;HomePageTemplate&quot;</span><span class="p">,</span> <span class="p">{</span><span class="nx">name</span><span class="o">:</span> <span class="s2">&quot;Klaus&quot;</span><span class="p">});</span>
</pre></div>
</div>
<p>with the template modified to:</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;t</span> <span class="na">t-name=</span><span class="s">&quot;HomePageTemplate&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;div&gt;</span>Hello <span class="nt">&lt;t</span> <span class="na">t-esc=</span><span class="s">&quot;name&quot;</span><span class="nt">/&gt;&lt;/div&gt;</span>
<span class="nt">&lt;/t&gt;</span>
</pre></div>
</div>
<p>will result in:</p>
<div class="highlight-html notranslate"><div class="highlight"><pre><span></span><span class="p">&lt;</span><span class="nt">div</span><span class="p">&gt;</span>Hello Klaus<span class="p">&lt;/</span><span class="nt">div</span><span class="p">&gt;</span>
</pre></div>
</div>
<p>When using <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">Widget()</span></code>s integration it is not possible to
provide additional data to the template. The template will be given a single
<code class="o_code docutils literal notranslate"><span class="pre">widget</span></code> context variable, referencing the widget being rendered right
before <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">start()</span></code> is called (the widgets state will
essentially be that set up by <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">init()</span></code>):</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;t</span> <span class="na">t-name=</span><span class="s">&quot;HomePageTemplate&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;div&gt;</span>Hello <span class="nt">&lt;t</span> <span class="na">t-esc=</span><span class="s">&quot;widget.name&quot;</span><span class="nt">/&gt;&lt;/div&gt;</span>
<span class="nt">&lt;/t&gt;</span>
</pre></div>
</div>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">HomePage</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">template</span><span class="o">:</span> <span class="s2">&quot;HomePageTemplate&quot;</span><span class="p">,</span>
<span class="nx">init</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">_super</span><span class="p">(</span><span class="nx">parent</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">name</span> <span class="o">=</span> <span class="s2">&quot;Mordecai&quot;</span><span class="p">;</span>
<span class="p">},</span>
<span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="p">},</span>
<span class="p">});</span>
</pre></div>
</div>
<p>Result:</p>
<div class="highlight-html notranslate"><div class="highlight"><pre><span></span><span class="p">&lt;</span><span class="nt">div</span><span class="p">&gt;</span>Hello Mordecai<span class="p">&lt;/</span><span class="nt">div</span><span class="p">&gt;</span>
</pre></div>
</div>
</section><section id="template-declaration">
<h4>Template Declaration<a class="headerlink" href="#template-declaration" title="Permalink to this headline"></a></h4>
<p>Weve seen how to <em>render</em> QWeb templates, lets now see the syntax of
the templates themselves.</p>
<p>A QWeb template is composed of regular XML mixed with QWeb <em>directives</em>. A
QWeb directive is declared with XML attributes starting with <code class="o_code docutils literal notranslate"><span class="pre">t-</span></code>.</p>
<p>The most basic directive is <code class="o_code docutils literal notranslate"><span class="pre">t-name</span></code>, used to declare new templates in
a template file:</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;templates&gt;</span>
<span class="nt">&lt;t</span> <span class="na">t-name=</span><span class="s">&quot;HomePageTemplate&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;div&gt;</span>This is some simple HTML<span class="nt">&lt;/div&gt;</span>
<span class="nt">&lt;/t&gt;</span>
<span class="nt">&lt;/templates&gt;</span>
</pre></div>
</div>
<p><code class="o_code docutils literal notranslate"><span class="pre">t-name</span></code> takes the name of the template being defined, and declares that
it can be called using <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">QWeb.render()</span></code>. It can only be used at the
top-level of a template file.</p>
</section><section id="escaping">
<h4>Escaping<a class="headerlink" href="#escaping" title="Permalink to this headline"></a></h4>
<p>The <code class="o_code docutils literal notranslate"><span class="pre">t-esc</span></code> directive can be used to output text:</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;div&gt;</span>Hello <span class="nt">&lt;t</span> <span class="na">t-esc=</span><span class="s">&quot;name&quot;</span><span class="nt">/&gt;&lt;/div&gt;</span>
</pre></div>
</div>
<p>It takes a Javascript expression which is evaluated, the result of the
expression is then HTML-escaped and inserted in the document. Since its an
expression its possible to provide just a variable name as above, or a more
complex expression like a computation:</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;div&gt;&lt;t</span> <span class="na">t-esc=</span><span class="s">&quot;3+5&quot;</span><span class="nt">/&gt;&lt;/div&gt;</span>
</pre></div>
</div>
<p>or method calls:</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;div&gt;&lt;t</span> <span class="na">t-esc=</span><span class="s">&quot;name.toUpperCase()&quot;</span><span class="nt">/&gt;&lt;/div&gt;</span>
</pre></div>
</div>
</section><section id="outputting-html">
<h4>Outputting HTML<a class="headerlink" href="#outputting-html" title="Permalink to this headline"></a></h4>
<p>To inject HTML in the page being rendered, use <code class="o_code docutils literal notranslate"><span class="pre">t-raw</span></code>. Like <code class="o_code docutils literal notranslate"><span class="pre">t-esc</span></code> it
takes an arbitrary Javascript expression as parameter, but it does not
perform an HTML-escape step.</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;div&gt;&lt;t</span> <span class="na">t-raw=</span><span class="s">&quot;name.link(user_account)&quot;</span><span class="nt">/&gt;&lt;/div&gt;</span>
</pre></div>
</div>
<div class="alert alert-danger">
<p class="alert-title">
Danger</p><p><code class="o_code docutils literal notranslate"><span class="pre">t-raw</span></code> <em>must not</em> be used on any data which may contain non-escaped
user-provided content as this leads to <a class="reference external" href="http://en.wikipedia.org/wiki/Cross-site_scripting">cross-site scripting</a>
vulnerabilities</p>
</div>
</section><section id="conditionals">
<h4>Conditionals<a class="headerlink" href="#conditionals" title="Permalink to this headline"></a></h4>
<p>QWeb can have conditional blocks using <code class="o_code docutils literal notranslate"><span class="pre">t-if</span></code>. The directive takes an
arbitrary expression, if the expression is falsy (<code class="o_code docutils literal notranslate"><span class="pre">false</span></code>, <code class="o_code docutils literal notranslate"><span class="pre">null</span></code>, <code class="o_code docutils literal notranslate"><span class="pre">0</span></code>
or an empty string) the whole block is suppressed, otherwise it is displayed.</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;div&gt;</span>
<span class="nt">&lt;t</span> <span class="na">t-if=</span><span class="s">&quot;true == true&quot;</span><span class="nt">&gt;</span>
true is true
<span class="nt">&lt;/t&gt;</span>
<span class="nt">&lt;t</span> <span class="na">t-if=</span><span class="s">&quot;true == false&quot;</span><span class="nt">&gt;</span>
true is not true
<span class="nt">&lt;/t&gt;</span>
<span class="nt">&lt;/div&gt;</span>
</pre></div>
</div>
<div class="alert alert-primary">
<p class="alert-title">
Note</p><p>QWeb doesnt have an “else” structure, use a second <code class="o_code docutils literal notranslate"><span class="pre">t-if</span></code> with the
original condition inverted. You may want to store the condition in a
local variable if its a complex or expensive expression.</p>
</div>
</section><section id="iteration">
<h4>Iteration<a class="headerlink" href="#iteration" title="Permalink to this headline"></a></h4>
<p>To iterate on a list, use <code class="o_code docutils literal notranslate"><span class="pre">t-foreach</span></code> and <code class="o_code docutils literal notranslate"><span class="pre">t-as</span></code>. <code class="o_code docutils literal notranslate"><span class="pre">t-foreach</span></code> takes an
expression returning a list to iterate on <code class="o_code docutils literal notranslate"><span class="pre">t-as</span></code> takes a variable name to
bind to each item during iteration.</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;div&gt;</span>
<span class="nt">&lt;t</span> <span class="na">t-foreach=</span><span class="s">&quot;names&quot;</span> <span class="na">t-as=</span><span class="s">&quot;name&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;div&gt;</span>
Hello <span class="nt">&lt;t</span> <span class="na">t-esc=</span><span class="s">&quot;name&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/div&gt;</span>
<span class="nt">&lt;/t&gt;</span>
<span class="nt">&lt;/div&gt;</span>
</pre></div>
</div>
<div class="alert alert-primary">
<p class="alert-title">
Note</p><p><code class="o_code docutils literal notranslate"><span class="pre">t-foreach</span></code> can also be used with numbers and objects
(dictionaries)</p>
</div>
</section><section id="defining-attributes">
<h4>Defining attributes<a class="headerlink" href="#defining-attributes" title="Permalink to this headline"></a></h4>
<p>QWeb provides two related directives to define computed attributes:
<code class="samp o_code docutils literal notranslate"><span class="pre">t-att-</span><em><span class="pre">name</span></em></code> and <code class="samp o_code docutils literal notranslate"><span class="pre">t-attf-</span><em><span class="pre">name</span></em></code>. In either case, <em>name</em> is the
name of the attribute to create (e.g. <code class="o_code docutils literal notranslate"><span class="pre">t-att-id</span></code> defines the attribute
<code class="o_code docutils literal notranslate"><span class="pre">id</span></code> after rendering).</p>
<p><code class="o_code docutils literal notranslate"><span class="pre">t-att-</span></code> takes a javascript expression whose result is set as the
attributes value, it is most useful if all of the attributes value is
computed:</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;div&gt;</span>
Input your name:
<span class="nt">&lt;input</span> <span class="na">type=</span><span class="s">&quot;text&quot;</span> <span class="na">t-att-value=</span><span class="s">&quot;defaultName&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/div&gt;</span>
</pre></div>
</div>
<p><code class="o_code docutils literal notranslate"><span class="pre">t-attf-</span></code> takes a <em>format string</em>. A format string is literal text with
interpolation blocks inside, an interpolation block is a javascript
expression between <code class="o_code docutils literal notranslate"><span class="pre">{{</span></code> and <code class="o_code docutils literal notranslate"><span class="pre">}}</span></code>, which will be replaced by the result
of the expression. It is most useful for attributes which are partially
literal and partially computed such as a class:</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;div</span> <span class="na">t-attf-class=</span><span class="s">&quot;container {{ left ? &#39;text-left&#39; : &#39;&#39; }} {{ extra_class }}&quot;</span><span class="nt">&gt;</span>
insert content here
<span class="nt">&lt;/div&gt;</span>
</pre></div>
</div>
</section><section id="calling-other-templates">
<h4>Calling other templates<a class="headerlink" href="#calling-other-templates" title="Permalink to this headline"></a></h4>
<p>Templates can be split into sub-templates (for simplicity, maintainability,
reusability or to avoid excessive markup nesting).</p>
<p>This is done using the <code class="o_code docutils literal notranslate"><span class="pre">t-call</span></code> directive, which takes the name of the
template to render:</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;t</span> <span class="na">t-name=</span><span class="s">&quot;A&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">&quot;i-am-a&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;t</span> <span class="na">t-call=</span><span class="s">&quot;B&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/div&gt;</span>
<span class="nt">&lt;/t&gt;</span>
<span class="nt">&lt;t</span> <span class="na">t-name=</span><span class="s">&quot;B&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">&quot;i-am-b&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/t&gt;</span>
</pre></div>
</div>
<p>rendering the <code class="o_code docutils literal notranslate"><span class="pre">A</span></code> template will result in:</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">&quot;i-am-a&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">&quot;i-am-b&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/div&gt;</span>
</pre></div>
</div>
<p>Sub-templates inherit the rendering context of their caller.</p>
</section><section id="to-learn-more-about-qweb">
<h4>To Learn More About QWeb<a class="headerlink" href="#to-learn-more-about-qweb" title="Permalink to this headline"></a></h4>
<p>For a QWeb reference, see <a class="reference internal" href="../reference/frontend/qweb.html#reference-qweb"><span class="std std-ref">QWeb Templates</span></a>.</p>
</section><section id="exercise">
<h4>Exercise<a class="headerlink" href="#exercise" title="Permalink to this headline"></a></h4>
<div class="alert alert-dark">
<p class="alert-title">
Exercise</p><p>Usage of QWeb in Widgets</p>
<p>Create a widget whose constructor takes two parameters aside from
<code class="o_code docutils literal notranslate"><span class="pre">parent</span></code>: <code class="o_code docutils literal notranslate"><span class="pre">product_names</span></code> and <code class="o_code docutils literal notranslate"><span class="pre">color</span></code>.</p>
<ul class="simple">
<li><p><code class="o_code docutils literal notranslate"><span class="pre">product_names</span></code> should an array of strings, each one the name of a
product</p></li>
<li><p><code class="o_code docutils literal notranslate"><span class="pre">color</span></code> is a string containing a color in CSS color format (ie:
<code class="o_code docutils literal notranslate"><span class="pre">#000000</span></code> for black).</p></li>
</ul>
<p>The widget should display the given product names one under the other,
each one in a separate box with a background color with the value of
<code class="o_code docutils literal notranslate"><span class="pre">color</span></code> and a border. You should use QWeb to render the HTML. Any
necessary CSS should be in <code class="o_code docutils literal notranslate"><span class="pre">oepetstore/static/src/css/petstore.css</span></code>.</p>
<p>Use the widget in <code class="o_code docutils literal notranslate"><span class="pre">HomePage</span></code> with half a dozen products.</p>
</div>
</section><section id="widget-helpers">
<h2>Widget Helpers<a class="headerlink" href="#widget-helpers" title="Permalink to this headline"></a></h2>
</section><section id="widget-s-jquery-selector">
<h3><code class="o_code docutils literal notranslate"><span class="pre">Widget</span></code>s jQuery Selector<a class="headerlink" href="#widget-s-jquery-selector" title="Permalink to this headline"></a></h3>
<p>Selecting DOM elements within a widget can be performed by calling the
<code class="o_code docutils literal notranslate"><span class="pre">find()</span></code> method on the widgets DOM root:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="k">this</span><span class="p">.</span><span class="nx">$el</span><span class="p">.</span><span class="nx">find</span><span class="p">(</span><span class="s2">&quot;input.my_input&quot;</span><span class="p">)...</span>
</pre></div>
</div>
<p>But because its a common operation, <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">Widget()</span></code> provides an
equivalent shortcut through the <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">$()</span></code> method:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">MyWidget</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">$</span><span class="p">(</span><span class="s2">&quot;input.my_input&quot;</span><span class="p">)...</span>
<span class="p">},</span>
<span class="p">});</span>
</pre></div>
</div>
<div class="alert alert-warning">
<p class="alert-title">
Warning</p><p>The global jQuery function <code class="o_code docutils literal notranslate"><span class="pre">$()</span></code> should <em>never</em> be used unless it is
absolutely necessary: selection on a widgets root are scoped to the
widget and local to it, but selections with <code class="o_code docutils literal notranslate"><span class="pre">$()</span></code> are global to the
page/application and may match parts of other widgets and views, leading
to odd or dangerous side-effects. Since a widget should generally act
only on the DOM section it owns, there is no cause for global selection.</p>
</div>
</section><section id="easier-dom-events-binding">
<h3>Easier DOM Events Binding<a class="headerlink" href="#easier-dom-events-binding" title="Permalink to this headline"></a></h3>
<p>We have previously bound DOM events using normal jQuery event handlers (e.g.
<code class="o_code docutils literal notranslate"><span class="pre">.click()</span></code> or <code class="o_code docutils literal notranslate"><span class="pre">.change()</span></code>) on widget elements:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">MyWidget</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">self</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">$</span><span class="p">(</span><span class="s2">&quot;.my_button&quot;</span><span class="p">).</span><span class="nx">click</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">self</span><span class="p">.</span><span class="nx">button_clicked</span><span class="p">();</span>
<span class="p">});</span>
<span class="p">},</span>
<span class="nx">button_clicked</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="p">..</span>
<span class="p">},</span>
<span class="p">});</span>
</pre></div>
</div>
<p>While this works it has a few issues:</p>
<ol class="arabic simple">
<li><p>it is rather verbose</p></li>
<li><p>it does not support replacing the widgets root element at runtime as
the binding is only performed when <code class="o_code docutils literal notranslate"><span class="pre">start()</span></code> is run (during widget
initialization)</p></li>
<li><p>it requires dealing with <code class="o_code docutils literal notranslate"><span class="pre">this</span></code>-binding issues</p></li>
</ol>
<p>Widgets thus provide a shortcut to DOM event binding via
<code class="xref js js-attr o_code docutils literal notranslate"><span class="pre">events</span></code>:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">MyWidget</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">events</span><span class="o">:</span> <span class="p">{</span>
<span class="s2">&quot;click .my_button&quot;</span><span class="o">:</span> <span class="s2">&quot;button_clicked&quot;</span><span class="p">,</span>
<span class="p">},</span>
<span class="nx">button_clicked</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="p">..</span>
<span class="p">}</span>
<span class="p">});</span>
</pre></div>
</div>
<p><code class="xref js js-attr o_code docutils literal notranslate"><span class="pre">events</span></code> is an object (mapping) of an event to the
function or method to call when the event is triggered:</p>
<ul>
<li><p>the key is an event name, possibly refined with a CSS selector in which
case only if the event happens on a selected sub-element will the function
or method run: <code class="o_code docutils literal notranslate"><span class="pre">click</span></code> will handle all clicks within the widget, but
<code class="o_code docutils literal notranslate"><span class="pre">click</span> <span class="pre">.my_button</span></code> will only handle clicks in elements bearing the
<code class="o_code docutils literal notranslate"><span class="pre">my_button</span></code> class</p></li>
<li><p>the value is the action to perform when the event is triggered</p>
<p>It can be either a function:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">events</span><span class="o">:</span> <span class="p">{</span>
<span class="s1">&#39;click&#39;</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span> <span class="cm">/* code here */</span> <span class="p">}</span>
<span class="p">}</span>
</pre></div>
</div>
<p>or the name of a method on the object (see example above).</p>
<p>In either case, the <code class="o_code docutils literal notranslate"><span class="pre">this</span></code> is the widget instance and the handler is given
a single parameter, the <a class="reference external" href="http://api.jquery.com/category/events/event-object/">jQuery event object</a> for the event.</p>
</li>
</ul>
</section><section id="widget-events-and-properties">
<h2>Widget Events and Properties<a class="headerlink" href="#widget-events-and-properties" title="Permalink to this headline"></a></h2>
</section><section id="events">
<h3>Events<a class="headerlink" href="#events" title="Permalink to this headline"></a></h3>
<p>Widgets provide an event system (separate from the DOM/jQuery event system
described above): a widget can fire events on itself, and other widgets (or
itself) can bind themselves and listen for these events:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">ConfirmWidget</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">events</span><span class="o">:</span> <span class="p">{</span>
<span class="s1">&#39;click button.ok_button&#39;</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="s1">&#39;user_chose&#39;</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="p">},</span>
<span class="s1">&#39;click button.cancel_button&#39;</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="s1">&#39;user_chose&#39;</span><span class="p">,</span> <span class="kc">false</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">$el</span><span class="p">.</span><span class="nx">append</span><span class="p">(</span><span class="s2">&quot;&lt;div&gt;Are you sure you want to perform this action?&lt;/div&gt;&quot;</span> <span class="o">+</span>
<span class="s2">&quot;&lt;button class=&#39;ok_button&#39;&gt;Ok&lt;/button&gt;&quot;</span> <span class="o">+</span>
<span class="s2">&quot;&lt;button class=&#39;cancel_button&#39;&gt;Cancel&lt;/button&gt;&quot;</span><span class="p">);</span>
<span class="p">},</span>
<span class="p">});</span>
</pre></div>
</div>
<p>This widget acts as a facade, transforming user input (through DOM events)
into a documentable internal event to which parent widgets can bind
themselves.</p>
<p><code class="xref js js-func o_code docutils literal notranslate"><span class="pre">trigger()</span></code> takes the name of the event to trigger as
its first (mandatory) argument, any further arguments are treated as event
data and passed directly to listeners.</p>
<p>We can then set up a parent event instantiating our generic widget and
listening to the <code class="o_code docutils literal notranslate"><span class="pre">user_chose</span></code> event using <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">on()</span></code>:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">HomePage</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">widget</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">local</span><span class="p">.</span><span class="nx">ConfirmWidget</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>
<span class="nx">widget</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s2">&quot;user_chose&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">user_chose</span><span class="p">);</span>
<span class="nx">widget</span><span class="p">.</span><span class="nx">appendTo</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">$el</span><span class="p">);</span>
<span class="p">},</span>
<span class="nx">user_chose</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">confirm</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">confirm</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;The user agreed to continue&quot;</span><span class="p">);</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;The user refused to continue&quot;</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="p">});</span>
</pre></div>
</div>
<p><code class="xref js js-func o_code docutils literal notranslate"><span class="pre">on()</span></code> binds a function to be called when the
event identified by <code class="o_code docutils literal notranslate"><span class="pre">event_name</span></code> is. The <code class="o_code docutils literal notranslate"><span class="pre">func</span></code> argument is the
function to call and <code class="o_code docutils literal notranslate"><span class="pre">object</span></code> is the object to which that function is
related if it is a method. The bound function will be called with the
additional arguments of <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">trigger()</span></code> if it has
any. Example:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">widget</span> <span class="o">=</span> <span class="p">...</span>
<span class="nx">widget</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s2">&quot;my_event&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">my_event_triggered</span><span class="p">);</span>
<span class="nx">widget</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="s2">&quot;my_event&quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">);</span>
<span class="p">},</span>
<span class="nx">my_event_triggered</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span> <span class="nx">b</span><span class="p">,</span> <span class="nx">c</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span> <span class="nx">b</span><span class="p">,</span> <span class="nx">c</span><span class="p">);</span>
<span class="c1">// will print &quot;1 2 3&quot;</span>
<span class="p">}</span>
</pre></div>
</div>
<div class="alert alert-primary">
<p class="alert-title">
Note</p><p>Triggering events on an other widget is generally a bad idea. The main
exception to that rule is <code class="o_code docutils literal notranslate"><span class="pre">odoo.web.bus</span></code> which exists specifically
to broadcasts evens in which any widget could be interested throughout
the Odoo web application.</p>
</div>
</section><section id="properties">
<h3>Properties<a class="headerlink" href="#properties" title="Permalink to this headline"></a></h3>
<p>Properties are very similar to normal object attributes in that they allow
storing data on a widget instance, however they have the additional feature
that they trigger events when set:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">widget</span> <span class="o">=</span> <span class="p">...</span>
<span class="k">this</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s2">&quot;change:name&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">name_changed</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">set</span><span class="p">(</span><span class="s2">&quot;name&quot;</span><span class="p">,</span> <span class="s2">&quot;Nicolas&quot;</span><span class="p">);</span>
<span class="p">},</span>
<span class="nx">name_changed</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;The new value of the property &#39;name&#39; is&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="s2">&quot;name&quot;</span><span class="p">));</span>
<span class="p">}</span>
</pre></div>
</div>
<ul class="simple">
<li><p><code class="xref js js-func o_code docutils literal notranslate"><span class="pre">set()</span></code> sets the value of a property and triggers
<code class="samp o_code docutils literal notranslate"><span class="pre">change:</span><em><span class="pre">propname</span></em></code> (where <em>propname</em> is the property name passed as
first parameter to <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">set()</span></code>) and <code class="o_code docutils literal notranslate"><span class="pre">change</span></code></p></li>
<li><p><code class="xref js js-func o_code docutils literal notranslate"><span class="pre">get()</span></code> retrieves the value of a property.</p></li>
</ul>
</section><section id="id4">
<h3>Exercise<a class="headerlink" href="#id4" title="Permalink to this headline"></a></h3>
<div class="alert alert-dark">
<p class="alert-title">
Exercise</p><p>Widget Properties and Events</p>
<p>Create a widget <code class="o_code docutils literal notranslate"><span class="pre">ColorInputWidget</span></code> that will display 3 <code class="o_code docutils literal notranslate"><span class="pre">&lt;input</span>
<span class="pre">type=&quot;text&quot;&gt;</span></code>. Each of these <code class="o_code docutils literal notranslate"><span class="pre">&lt;input&gt;</span></code> is dedicated to type a
hexadecimal number from 00 to FF. When any of these <code class="o_code docutils literal notranslate"><span class="pre">&lt;input&gt;</span></code> is
modified by the user the widget must query the content of the three
<code class="o_code docutils literal notranslate"><span class="pre">&lt;input&gt;</span></code>, concatenate their values to have a complete CSS color code
(ie: <code class="o_code docutils literal notranslate"><span class="pre">#00FF00</span></code>) and put the result in a property named <code class="o_code docutils literal notranslate"><span class="pre">color</span></code>. Please
note the jQuery <code class="o_code docutils literal notranslate"><span class="pre">change()</span></code> event that you can bind on any HTML
<code class="o_code docutils literal notranslate"><span class="pre">&lt;input&gt;</span></code> element and the <code class="o_code docutils literal notranslate"><span class="pre">val()</span></code> method that can query the current
value of that <code class="o_code docutils literal notranslate"><span class="pre">&lt;input&gt;</span></code> could be useful to you for this exercise.</p>
<p>Then, modify the <code class="o_code docutils literal notranslate"><span class="pre">HomePage</span></code> widget to instantiate <code class="o_code docutils literal notranslate"><span class="pre">ColorInputWidget</span></code>
and display it. The <code class="o_code docutils literal notranslate"><span class="pre">HomePage</span></code> widget should also display an empty
rectangle. That rectangle must always, at any moment, have the same
background color as the color in the <code class="o_code docutils literal notranslate"><span class="pre">color</span></code> property of the
<code class="o_code docutils literal notranslate"><span class="pre">ColorInputWidget</span></code> instance.</p>
<p>Use QWeb to generate all HTML.</p>
</div>
</section><section id="modify-existing-widgets-and-classes">
<h2>Modify existing widgets and classes<a class="headerlink" href="#modify-existing-widgets-and-classes" title="Permalink to this headline"></a></h2>
<p>The class system of the Odoo web framework allows direct modification of
existing classes using the <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">include()</span></code> method:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="kd">var</span> <span class="nx">TestClass</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">Class</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">testMethod</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">return</span> <span class="s2">&quot;hello&quot;</span><span class="p">;</span>
<span class="p">},</span>
<span class="p">});</span>
<span class="nx">TestClass</span><span class="p">.</span><span class="nx">include</span><span class="p">({</span>
<span class="nx">testMethod</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">_super</span><span class="p">()</span> <span class="o">+</span> <span class="s2">&quot; world&quot;</span><span class="p">;</span>
<span class="p">},</span>
<span class="p">});</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="k">new</span> <span class="nx">TestClass</span><span class="p">().</span><span class="nx">testMethod</span><span class="p">());</span>
<span class="c1">// will print &quot;hello world&quot;</span>
</pre></div>
</div>
<p>This system is similar to the inheritance mechanism, except it will alter the
target class in-place instead of creating a new class.</p>
<p>In that case, <code class="o_code docutils literal notranslate"><span class="pre">this._super()</span></code> will call the original implementation of a
method being replaced/redefined. If the class already had sub-classes, all
calls to <code class="o_code docutils literal notranslate"><span class="pre">this._super()</span></code> in sub-classes will call the new implementations
defined in the call to <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">include()</span></code>. This will also work
if some instances of the class (or of any of its sub-classes) were created
prior to the call to <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">include()</span></code>.</p>
</section><section id="translations">
<h2>Translations<a class="headerlink" href="#translations" title="Permalink to this headline"></a></h2>
<p>The process to translate text in Python and JavaScript code is very
similar. You could have noticed these lines at the beginning of the
<code class="o_code docutils literal notranslate"><span class="pre">petstore.js</span></code> file:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="kd">var</span> <span class="nx">_t</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">_t</span><span class="p">,</span>
<span class="nx">_lt</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">_lt</span><span class="p">;</span>
</pre></div>
</div>
<p>These lines are simply used to import the translation functions in the current
JavaScript module. They are used thus:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="k">this</span><span class="p">.</span><span class="nx">$el</span><span class="p">.</span><span class="nx">text</span><span class="p">(</span><span class="nx">_t</span><span class="p">(</span><span class="s2">&quot;Hello user!&quot;</span><span class="p">));</span>
</pre></div>
</div>
<p>In Odoo, translations files are automatically generated by scanning the source
code. All piece of code that calls a certain function are detected and their
content is added to a translation file that will then be sent to the
translators. In Python, the function is <code class="o_code docutils literal notranslate"><span class="pre">_()</span></code>. In JavaScript the function is
<code class="xref js js-func o_code docutils literal notranslate"><span class="pre">_t()</span></code> (and also <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">_lt()</span></code>).</p>
<p><code class="o_code docutils literal notranslate"><span class="pre">_t()</span></code> will return the translation defined for the text it is given. If no
translation is defined for that text, it will return the original text as-is.</p>
<div class="alert alert-primary">
<p class="alert-title">
Note</p><p>To inject user-provided values in translatable strings, it is recommended
to use <a class="reference external" href="http://gabceb.github.io/underscore.string.site/#sprintf">_.str.sprintf</a> with named
arguments <em>after</em> the translation:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="k">this</span><span class="p">.</span><span class="nx">$el</span><span class="p">.</span><span class="nx">text</span><span class="p">(</span><span class="nx">_</span><span class="p">.</span><span class="nx">str</span><span class="p">.</span><span class="nx">sprintf</span><span class="p">(</span>
<span class="nx">_t</span><span class="p">(</span><span class="s2">&quot;Hello, %(user)s!&quot;</span><span class="p">),</span> <span class="p">{</span>
<span class="nx">user</span><span class="o">:</span> <span class="s2">&quot;Ed&quot;</span>
<span class="p">}));</span>
</pre></div>
</div>
<p>This makes translatable strings more readable to translators, and gives
them more flexibility to reorder or ignore parameters.</p>
</div>
<p><code class="xref js js-func o_code docutils literal notranslate"><span class="pre">_lt()</span></code> (“lazy translate”) is similar but somewhat more
complex: instead of translating its parameter immediately, it returns
an object which, when converted to a string, will perform the translation.</p>
<p>It is used to define translatable terms before the translations system is
initialized, for class attributes for instance (as modules are loaded before
the users language is configured and translations are downloaded).</p>
</section><section id="communication-with-the-odoo-server">
<h2>Communication with the Odoo Server<a class="headerlink" href="#communication-with-the-odoo-server" title="Permalink to this headline"></a></h2>
</section><section id="contacting-models">
<h3>Contacting Models<a class="headerlink" href="#contacting-models" title="Permalink to this headline"></a></h3>
<p>Most operations with Odoo involve communicating with <em>models</em> implementing
business concern, these models will then (potentially) interact with some
storage engine (usually <a class="reference external" href="http://en.wikipedia.org/wiki/PostgreSQL">PostgreSQL</a>).</p>
<p>Although <a class="reference external" href="http://jquery.org">jQuery</a> provides a <a class="reference external" href="http://api.jquery.com/jquery.ajax/">$.ajax</a> function for network interactions,
communicating with Odoo requires additional metadata whose setup before every
call would be verbose and error-prone. As a result, Odoo web provides
higher-level communication primitives.</p>
<p>To demonstrate this, the file <code class="o_code docutils literal notranslate"><span class="pre">petstore.py</span></code> already contains a small model
with a sample method:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">message_of_the_day</span><span class="p">(</span><span class="n">models</span><span class="o">.</span><span class="n">Model</span><span class="p">):</span>
<span class="n">_name</span> <span class="o">=</span> <span class="s2">&quot;oepetstore.message_of_the_day&quot;</span>
<span class="nd">@api</span><span class="o">.</span><span class="n">model</span>
<span class="k">def</span> <span class="nf">my_method</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">return</span> <span class="p">{</span><span class="s2">&quot;hello&quot;</span><span class="p">:</span> <span class="s2">&quot;world&quot;</span><span class="p">}</span>
<span class="n">message</span> <span class="o">=</span> <span class="n">fields</span><span class="o">.</span><span class="n">Text</span><span class="p">(),</span>
<span class="n">color</span> <span class="o">=</span> <span class="n">fields</span><span class="o">.</span><span class="n">Char</span><span class="p">(</span><span class="n">size</span><span class="o">=</span><span class="mi">20</span><span class="p">),</span>
</pre></div>
</div>
<p>This declares a model with two fields, and a method <code class="o_code docutils literal notranslate"><span class="pre">my_method()</span></code> which
returns a literal dictionary.</p>
<p>Here is a sample widget that calls <code class="o_code docutils literal notranslate"><span class="pre">my_method()</span></code> and displays the result:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">HomePage</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">self</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">model</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">Model</span><span class="p">(</span><span class="s2">&quot;oepetstore.message_of_the_day&quot;</span><span class="p">);</span>
<span class="nx">model</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="s2">&quot;my_method&quot;</span><span class="p">,</span> <span class="p">{</span><span class="nx">context</span><span class="o">:</span> <span class="k">new</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">CompoundContext</span><span class="p">()}).</span><span class="nx">then</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">result</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">self</span><span class="p">.</span><span class="nx">$el</span><span class="p">.</span><span class="nx">append</span><span class="p">(</span><span class="s2">&quot;&lt;div&gt;Hello &quot;</span> <span class="o">+</span> <span class="nx">result</span><span class="p">[</span><span class="s2">&quot;hello&quot;</span><span class="p">]</span> <span class="o">+</span> <span class="s2">&quot;&lt;/div&gt;&quot;</span><span class="p">);</span>
<span class="c1">// will show &quot;Hello world&quot; to the user</span>
<span class="p">});</span>
<span class="p">},</span>
<span class="p">});</span>
</pre></div>
</div>
<p>The class used to call Odoo models is <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">odoo.Model()</span></code>. It is
instantiated with the Odoo models name as first parameter
(<code class="o_code docutils literal notranslate"><span class="pre">oepetstore.message_of_the_day</span></code> here).</p>
<p><code class="xref js js-func o_code docutils literal notranslate"><span class="pre">call()</span></code> can be used to call any (public) method of an
Odoo model. It takes the following positional arguments:</p>
<dl>
<dt><code class="o_code docutils literal notranslate"><span class="pre">name</span></code></dt><dd><p>The name of the method to call, <code class="o_code docutils literal notranslate"><span class="pre">my_method</span></code> here</p>
</dd>
<dt><code class="o_code docutils literal notranslate"><span class="pre">args</span></code></dt><dd><p>an array of <a class="reference external" href="https://docs.python.org/2/glossary.html#term-argument">positional arguments</a> to provide to the method. Because the
example has no positional argument to provide, the <code class="o_code docutils literal notranslate"><span class="pre">args</span></code> parameter is not
provided.</p>
<p>Here is an other example with positional arguments:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="nd">@api</span><span class="o">.</span><span class="n">model</span>
<span class="k">def</span> <span class="nf">my_method2</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">):</span> <span class="o">...</span>
</pre></div>
</div>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">model</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="s2">&quot;my_method&quot;</span><span class="p">,</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span> <span class="p">...</span>
<span class="c1">// with this a=1, b=2 and c=3</span>
</pre></div>
</div>
</dd>
<dt><code class="o_code docutils literal notranslate"><span class="pre">kwargs</span></code></dt><dd><p>a mapping of <a class="reference external" href="https://docs.python.org/2/glossary.html#term-argument">keyword arguments</a> to pass. The example provides a single
named argument <code class="o_code docutils literal notranslate"><span class="pre">context</span></code>.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="nd">@api</span><span class="o">.</span><span class="n">model</span>
<span class="k">def</span> <span class="nf">my_method2</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">):</span> <span class="o">...</span>
</pre></div>
</div>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">model</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="s2">&quot;my_method&quot;</span><span class="p">,</span> <span class="p">[],</span> <span class="p">{</span><span class="nx">a</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">b</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">c</span><span class="o">:</span> <span class="mi">3</span><span class="p">,</span> <span class="p">...</span>
<span class="c1">// with this a=1, b=2 and c=3</span>
</pre></div>
</div>
</dd>
</dl>
<p><code class="xref js js-func o_code docutils literal notranslate"><span class="pre">call()</span></code> returns a deferred resolved with the value
returned by the models method as first argument.</p>
</section><section id="compoundcontext">
<h3>CompoundContext<a class="headerlink" href="#compoundcontext" title="Permalink to this headline"></a></h3>
<p>The previous section used a <code class="o_code docutils literal notranslate"><span class="pre">context</span></code> argument which was not explained in
the method call:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">model</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="s2">&quot;my_method&quot;</span><span class="p">,</span> <span class="p">{</span><span class="nx">context</span><span class="o">:</span> <span class="k">new</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">CompoundContext</span><span class="p">()})</span>
</pre></div>
</div>
<p>The context is like a “magic” argument that the web client will always give to
the server when calling a method. The context is a dictionary containing
multiple keys. One of the most important key is the language of the user, used
by the server to translate all the messages of the application. Another one is
the time zone of the user, used to compute correctly dates and times if Odoo
is used by people in different countries.</p>
<p>The <code class="o_code docutils literal notranslate"><span class="pre">argument</span></code> is necessary in all methods, otherwise bad things could
happen (such as the application not being translated correctly). Thats why,
when you call a models method, you should always provide that argument. The
solution to achieve that is to use <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">odoo.web.CompoundContext()</span></code>.</p>
<p><code class="xref js js-class o_code docutils literal notranslate"><span class="pre">CompoundContext()</span></code> is a class used to pass the users
context (with language, time zone, etc…) to the server as well as adding new
keys to the context (some models methods use arbitrary keys added to the
context). It is created by giving to its constructor any number of
dictionaries or other <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">CompoundContext()</span></code> instances. It will
merge all those contexts before sending them to the server.</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">model</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="s2">&quot;my_method&quot;</span><span class="p">,</span> <span class="p">{</span><span class="nx">context</span><span class="o">:</span> <span class="k">new</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">CompoundContext</span><span class="p">({</span><span class="s1">&#39;new_key&#39;</span><span class="o">:</span> <span class="s1">&#39;key_value&#39;</span><span class="p">})})</span>
</pre></div>
</div>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="nd">@api</span><span class="o">.</span><span class="n">model</span>
<span class="k">def</span> <span class="nf">my_method</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="nb">print</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="o">.</span><span class="n">context</span><span class="p">)</span>
<span class="o">//</span> <span class="n">will</span> <span class="nb">print</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;lang&#39;</span><span class="p">:</span> <span class="s1">&#39;en_US&#39;</span><span class="p">,</span> <span class="s1">&#39;new_key&#39;</span><span class="p">:</span> <span class="s1">&#39;key_value&#39;</span><span class="p">,</span> <span class="s1">&#39;tz&#39;</span><span class="p">:</span> <span class="s1">&#39;Europe/Brussels&#39;</span><span class="p">,</span> <span class="s1">&#39;uid&#39;</span><span class="p">:</span> <span class="mi">1</span><span class="p">}</span>
</pre></div>
</div>
<p>You can see the dictionary in the argument <code class="o_code docutils literal notranslate"><span class="pre">context</span></code> contains some keys that
are related to the configuration of the current user in Odoo plus the
<code class="o_code docutils literal notranslate"><span class="pre">new_key</span></code> key that was added when instantiating
<code class="xref js js-class o_code docutils literal notranslate"><span class="pre">CompoundContext()</span></code>.</p>
</section><section id="queries">
<h3>Queries<a class="headerlink" href="#queries" title="Permalink to this headline"></a></h3>
<p>While <code class="xref js js-func o_code docutils literal notranslate"><span class="pre">call()</span></code> is sufficient for any interaction with Odoo
models, Odoo Web provides a helper for simpler and clearer querying of models
(fetching of records based on various conditions):
<code class="xref js js-func o_code docutils literal notranslate"><span class="pre">query()</span></code> which acts as a shortcut for the common
combination of <code class="xref py py-meth o_code docutils literal notranslate"><span class="pre">search()</span></code> and
:<code class="xref py py-meth o_code docutils literal notranslate"><span class="pre">read()</span></code>. It provides a clearer syntax to search
and read models:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">model</span><span class="p">.</span><span class="nx">query</span><span class="p">([</span><span class="s1">&#39;name&#39;</span><span class="p">,</span> <span class="s1">&#39;login&#39;</span><span class="p">,</span> <span class="s1">&#39;user_email&#39;</span><span class="p">,</span> <span class="s1">&#39;signature&#39;</span><span class="p">])</span>
<span class="p">.</span><span class="nx">filter</span><span class="p">([[</span><span class="s1">&#39;active&#39;</span><span class="p">,</span> <span class="s1">&#39;=&#39;</span><span class="p">,</span> <span class="kc">true</span><span class="p">],</span> <span class="p">[</span><span class="s1">&#39;company_id&#39;</span><span class="p">,</span> <span class="s1">&#39;=&#39;</span><span class="p">,</span> <span class="nx">main_company</span><span class="p">]])</span>
<span class="p">.</span><span class="nx">limit</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span>
<span class="p">.</span><span class="nx">all</span><span class="p">().</span><span class="nx">then</span><span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">users</span><span class="p">)</span> <span class="p">{</span>
<span class="c1">// do work with users records</span>
<span class="p">});</span>
</pre></div>
</div>
<p>versus:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">model</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="s1">&#39;search&#39;</span><span class="p">,</span> <span class="p">[[</span><span class="s1">&#39;active&#39;</span><span class="p">,</span> <span class="s1">&#39;=&#39;</span><span class="p">,</span> <span class="kc">true</span><span class="p">],</span> <span class="p">[</span><span class="s1">&#39;company_id&#39;</span><span class="p">,</span> <span class="s1">&#39;=&#39;</span><span class="p">,</span> <span class="nx">main_company</span><span class="p">]],</span> <span class="p">{</span><span class="nx">limit</span><span class="o">:</span> <span class="mi">15</span><span class="p">})</span>
<span class="p">.</span><span class="nx">then</span><span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">ids</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="nx">model</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="s1">&#39;read&#39;</span><span class="p">,</span> <span class="p">[</span><span class="nx">ids</span><span class="p">,</span> <span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">,</span> <span class="s1">&#39;login&#39;</span><span class="p">,</span> <span class="s1">&#39;user_email&#39;</span><span class="p">,</span> <span class="s1">&#39;signature&#39;</span><span class="p">]]);</span>
<span class="p">})</span>
<span class="p">.</span><span class="nx">then</span><span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">users</span><span class="p">)</span> <span class="p">{</span>
<span class="c1">// do work with users records</span>
<span class="p">});</span>
</pre></div>
</div>
<ul class="simple">
<li><p><code class="xref js js-func o_code docutils literal notranslate"><span class="pre">query()</span></code> takes an optional list of fields as
parameter (if no field is provided, all fields of the model are fetched). It
returns a <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">odoo.web.Query()</span></code> which can be further customized before
being executed</p></li>
<li><p><code class="xref js js-class o_code docutils literal notranslate"><span class="pre">Query()</span></code> represents the query being built. It is
immutable, methods to customize the query actually return a modified copy,
so its possible to use the original and the new version side-by-side. See
<code class="xref js js-class o_code docutils literal notranslate"><span class="pre">Query()</span></code> for its customization options.</p></li>
</ul>
<p>When the query is set up as desired, simply call
<code class="xref js js-func o_code docutils literal notranslate"><span class="pre">all()</span></code> to execute it and return a
deferred to its result. The result is the same as
<code class="xref py py-meth o_code docutils literal notranslate"><span class="pre">read()</span></code>s, an array of dictionaries where each
dictionary is a requested record, with each requested field a dictionary key.</p>
</section><section id="exercises">
<h2>Exercises<a class="headerlink" href="#exercises" title="Permalink to this headline"></a></h2>
<div class="alert alert-dark">
<p class="alert-title">
Exercise</p><p>Message of the Day</p>
<p>Create a <code class="o_code docutils literal notranslate"><span class="pre">MessageOfTheDay</span></code> widget displaying the last record of the
<code class="o_code docutils literal notranslate"><span class="pre">oepetstore.message_of_the_day</span></code> model. The widget should fetch its
record as soon as it is displayed.</p>
<p>Display the widget in the Pet Store home page.</p>
</div>
<div class="alert alert-dark">
<p class="alert-title">
Exercise</p><p>Pet Toys List</p>
<p>Create a <code class="o_code docutils literal notranslate"><span class="pre">PetToysList</span></code> widget displaying 5 toys (using their name and
their images).</p>
<p>The pet toys are not stored in a new model, instead theyre stored in
<code class="o_code docutils literal notranslate"><span class="pre">product.product</span></code> using a special category <em>Pet Toys</em>. You can see the
pre-generated toys and add new ones by going to
<span class="menuselection">Pet Store ‣ Pet Store ‣ Pet Toys</span>. You will probably
need to explore <code class="o_code docutils literal notranslate"><span class="pre">product.product</span></code> to create the right domain to
select just pet toys.</p>
<p>In Odoo, images are generally stored in regular fields encoded as
<a class="reference external" href="http://en.wikipedia.org/wiki/Base64">base64</a>, HTML supports displaying images straight from base64 with
<code class="samp o_code docutils literal notranslate"><span class="pre">&lt;img</span> <span class="pre">src=&quot;data:</span><em><span class="pre">mime_type</span></em><span class="pre">;base64,</span><em><span class="pre">base64_image_data</span></em><span class="pre">&quot;/&gt;</span></code></p>
<p>The <code class="o_code docutils literal notranslate"><span class="pre">PetToysList</span></code> widget should be displayed on the home page on the
right of the <code class="o_code docutils literal notranslate"><span class="pre">MessageOfTheDay</span></code> widget. You will need to make some layout
with CSS to achieve this.</p>
</div>
</section><section id="existing-web-components">
<h2>Existing web components<a class="headerlink" href="#existing-web-components" title="Permalink to this headline"></a></h2>
</section><section id="the-action-manager">
<h3>The Action Manager<a class="headerlink" href="#the-action-manager" title="Permalink to this headline"></a></h3>
<p>In Odoo, many operations start from an <a class="reference internal" href="../reference/backend/actions.html"><span class="doc">action</span></a>:
opening a menu item (to a view), printing a report, …</p>
<p>Actions are pieces of data describing how a client should react to the
activation of a piece of content. Actions can be stored (and read through a
model) or they can be generated on-the fly (locally to the client by
javascript code, or remotely by a method of a model).</p>
<p>In Odoo Web, the component responsible for handling and reacting to these
actions is the <em>Action Manager</em>.</p>
</section><section id="using-the-action-manager">
<h4>Using the Action Manager<a class="headerlink" href="#using-the-action-manager" title="Permalink to this headline"></a></h4>
<p>The action manager can be invoked explicitly from javascript code by creating
a dictionary describing <a class="reference internal" href="../reference/backend/actions.html"><span class="doc">an action</span></a> of the right
type, and calling an action manager instance with it.</p>
<p><code class="xref js js-func o_code docutils literal notranslate"><span class="pre">do_action()</span></code> is a shortcut of <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">Widget()</span></code>
looking up the “current” action manager and executing the action:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">TestWidget</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">Widget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">dispatch_to_new_action</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">do_action</span><span class="p">({</span>
<span class="nx">type</span><span class="o">:</span> <span class="s1">&#39;ir.actions.act_window&#39;</span><span class="p">,</span>
<span class="nx">res_model</span><span class="o">:</span> <span class="s2">&quot;product.product&quot;</span><span class="p">,</span>
<span class="nx">res_id</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span>
<span class="nx">views</span><span class="o">:</span> <span class="p">[[</span><span class="kc">false</span><span class="p">,</span> <span class="s1">&#39;form&#39;</span><span class="p">]],</span>
<span class="nx">target</span><span class="o">:</span> <span class="s1">&#39;current&#39;</span><span class="p">,</span>
<span class="nx">context</span><span class="o">:</span> <span class="p">{},</span>
<span class="p">});</span>
<span class="p">},</span>
<span class="p">});</span>
</pre></div>
</div>
<p>The most common action <code class="o_code docutils literal notranslate"><span class="pre">type</span></code> is <code class="o_code docutils literal notranslate"><span class="pre">ir.actions.act_window</span></code> which provides
views to a model (displays a model in various manners), its most common
attributes are:</p>
<dl class="simple">
<dt><code class="o_code docutils literal notranslate"><span class="pre">res_model</span></code></dt><dd><p>The model to display in views</p>
</dd>
<dt><code class="o_code docutils literal notranslate"><span class="pre">res_id</span></code> (optional)</dt><dd><p>For form views, a preselected record in <code class="o_code docutils literal notranslate"><span class="pre">res_model</span></code></p>
</dd>
<dt><code class="o_code docutils literal notranslate"><span class="pre">views</span></code></dt><dd><p>Lists the views available through the action. A list of
<code class="o_code docutils literal notranslate"><span class="pre">[view_id,</span> <span class="pre">view_type]</span></code>, <code class="o_code docutils literal notranslate"><span class="pre">view_id</span></code> can either be the database identifier
of a view of the right type, or <code class="o_code docutils literal notranslate"><span class="pre">false</span></code> to use the view by default for
the specified type. View types can not be present multiple times. The action
will open the first view of the list by default.</p>
</dd>
<dt><code class="o_code docutils literal notranslate"><span class="pre">target</span></code></dt><dd><p>Either <code class="o_code docutils literal notranslate"><span class="pre">current</span></code> (the default) which replaces the “content” section of the
web client by the action, or <code class="o_code docutils literal notranslate"><span class="pre">new</span></code> to open the action in a dialog box.</p>
</dd>
<dt><code class="o_code docutils literal notranslate"><span class="pre">context</span></code></dt><dd><p>Additional context data to use within the action.</p>
</dd>
</dl>
<div class="alert alert-dark">
<p class="alert-title">
Exercise</p><p>Jump to Product</p>
<p>Modify the <code class="o_code docutils literal notranslate"><span class="pre">PetToysList</span></code> component so clicking on a toy replaces the
homepage by the toys form view.</p>
</div>
</section><section id="client-actions">
<span id="howtos-web-client-actions"></span><h3>Client Actions<a class="headerlink" href="#client-actions" title="Permalink to this headline"></a></h3>
<p>Throughout this guide, we used a simple <code class="o_code docutils literal notranslate"><span class="pre">HomePage</span></code> widget which the web
client automatically starts when we select the right menu item. But how did
the Odoo web know to start this widget? Because the widget is registered as
a <em>client action</em>.</p>
<p>A client action is (as its name implies) an action type defined almost
entirely in the client, in javascript for Odoo web. The server simply sends
an action tag (an arbitrary name), and optionally adds a few parameters, but
beyond that <em>everything</em> is handled by custom client code.</p>
<p>Our widget is registered as the handler for the client action through this:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">client_actions</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">&#39;petstore.homepage&#39;</span><span class="p">,</span> <span class="s1">&#39;instance.oepetstore.HomePage&#39;</span><span class="p">);</span>
</pre></div>
</div>
<p><code class="o_code docutils literal notranslate"><span class="pre">instance.web.client_actions</span></code> is a <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">Registry()</span></code> in which
the action manager looks up client action handlers when it needs to execute
one. The first parameter of <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">add()</span></code> is the name
(tag) of the client action, and the second parameter is the path to the widget
from the Odoo web client root.</p>
<p>When a client action must be executed, the action manager looks up its tag
in the registry, walks the specified path and displays the widget it finds at
the end.</p>
<div class="alert alert-primary">
<p class="alert-title">
Note</p><p>a client action handler can also be a regular function, in which case
itll be called and its result (if any) will be interpreted as the
next action to execute.</p>
</div>
<p>On the server side, we had simply defined an <code class="o_code docutils literal notranslate"><span class="pre">ir.actions.client</span></code> action:</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;record</span> <span class="na">id=</span><span class="s">&quot;action_home_page&quot;</span> <span class="na">model=</span><span class="s">&quot;ir.actions.client&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;field</span> <span class="na">name=</span><span class="s">&quot;tag&quot;</span><span class="nt">&gt;</span>petstore.homepage<span class="nt">&lt;/field&gt;</span>
<span class="nt">&lt;/record&gt;</span>
</pre></div>
</div>
<p>and a menu opening the action:</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;menuitem</span> <span class="na">id=</span><span class="s">&quot;home_page_petstore_menu&quot;</span> <span class="na">parent=</span><span class="s">&quot;petstore_menu&quot;</span>
<span class="na">name=</span><span class="s">&quot;Home Page&quot;</span> <span class="na">action=</span><span class="s">&quot;action_home_page&quot;</span><span class="nt">/&gt;</span>
</pre></div>
</div>
</section><section id="architecture-of-the-views">
<h3>Architecture of the Views<a class="headerlink" href="#architecture-of-the-views" title="Permalink to this headline"></a></h3>
<p>Much of Odoo webs usefulness (and complexity) resides in views. Each view
type is a way of displaying a model in the client.</p>
</section><section id="the-view-manager">
<h4>The View Manager<a class="headerlink" href="#the-view-manager" title="Permalink to this headline"></a></h4>
<p>When an <code class="o_code docutils literal notranslate"><span class="pre">ActionManager</span></code> instance receive an action of type
<code class="o_code docutils literal notranslate"><span class="pre">ir.actions.act_window</span></code>, it delegates the synchronization and handling of
the views themselves to a <em>view manager</em>, which will then set up one or
multiple views depending on the original actions requirements:</p>
<img alt="../../_images/viewarchitecture.png" class="align-center" src="../../_images/viewarchitecture.png" style="width: 40%;" />
</section><section id="the-views">
<h4>The Views<a class="headerlink" href="#the-views" title="Permalink to this headline"></a></h4>
<p>Most <a class="reference internal" href="../reference/user_interface/view_records.html"><span class="doc">Odoo views</span></a> are implemented through a subclass
of <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">odoo.web.View()</span></code> which provides a bit of generic basic structure
for handling events and displaying model information.</p>
<p>The <em>search view</em> is considered a view type by the main Odoo framework, but
handled separately by the web client (as its a more permanent fixture and
can interact with other views, which regular views dont do).</p>
<p>A view is responsible for loading its own description XML (using
<code class="xref py py-class o_code docutils literal notranslate"><span class="pre">fields_view_get</span></code>) and any other data source
it needs. To that purpose, views are provided with an optional view
identifier set as the <code class="xref js js-attr o_code docutils literal notranslate"><span class="pre">view_id</span></code> attribute.</p>
<p>Views are also provided with a <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">DataSet()</span></code> instance which
holds most necessary model information (the model name and possibly various
record ids).</p>
<p>Views may also want to handle search queries by overriding
<code class="xref js js-func o_code docutils literal notranslate"><span class="pre">do_search()</span></code>, and updating their
<code class="xref js js-class o_code docutils literal notranslate"><span class="pre">DataSet()</span></code> as necessary.</p>
</section><section id="the-form-view-fields">
<h3>The Form View Fields<a class="headerlink" href="#the-form-view-fields" title="Permalink to this headline"></a></h3>
<p>A common need is the extension of the web form view to add new ways of
displaying fields.</p>
<p>All built-in fields have a default display implementation, a new
form widget may be necessary to correctly interact with a new field type
(e.g. a <a class="reference internal" href="../glossary.html#term-GIS"><span class="xref std std-term">GIS</span></a> field) or to provide new representations and ways to
interact with existing field types (e.g. validate
<code class="xref py py-class o_code docutils literal notranslate"><span class="pre">Char</span></code> fields which should contain email addresses
and display them as email links).</p>
<p>To explicitly specify which form widget should be used to display a field,
simply use the <code class="o_code docutils literal notranslate"><span class="pre">widget</span></code> attribute in the views XML description:</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;field</span> <span class="na">name=</span><span class="s">&quot;contact_mail&quot;</span> <span class="na">widget=</span><span class="s">&quot;email&quot;</span><span class="nt">/&gt;</span>
</pre></div>
</div>
<div class="alert alert-primary">
<p class="alert-title">
Note</p><ul class="simple">
<li><p>the same widget is used in both “view” (read-only) and “edit” modes
of a form view, its not possible to use a widget in one and an other
widget in the other</p></li>
<li><p>and a given field (name) can not be used multiple times in the same form</p></li>
<li><p>a widget may ignore the current mode of the form view and remain the
same in both view and edit modes</p></li>
</ul>
</div>
<p>Fields are instantiated by the form view after it has read its XML description
and constructed the corresponding HTML representing that description. After
that, the form view will communicate with the field objects using some
methods. These methods are defined by the <code class="o_code docutils literal notranslate"><span class="pre">FieldInterface</span></code>
interface. Almost all fields inherit the <code class="o_code docutils literal notranslate"><span class="pre">AbstractField</span></code> abstract
class. That class defines some default mechanisms that need to be implemented
by most fields.</p>
<p>Here are some of the responsibilities of a field class:</p>
<ul class="simple">
<li><p>The field class must display and allow the user to edit the value of the field.</p></li>
<li><p>It must correctly implement the 3 field attributes available in all fields
of Odoo. The <code class="o_code docutils literal notranslate"><span class="pre">AbstractField</span></code> class already implements an algorithm that
dynamically calculates the value of these attributes (they can change at any
moment because their value change according to the value of other
fields). Their values are stored in <em>Widget Properties</em> (the widget
properties were explained earlier in this guide). It is the responsibility
of each field class to check these widget properties and dynamically adapt
depending of their values. Here is a description of each of these
attributes:</p>
<ul>
<li><p><code class="o_code docutils literal notranslate"><span class="pre">required</span></code>: The field must have a value before saving. If <code class="o_code docutils literal notranslate"><span class="pre">required</span></code>
is <code class="o_code docutils literal notranslate"><span class="pre">true</span></code> and the field doesnt have a value, the method
<code class="o_code docutils literal notranslate"><span class="pre">is_valid()</span></code> of the field must return <code class="o_code docutils literal notranslate"><span class="pre">false</span></code>.</p></li>
<li><p><code class="o_code docutils literal notranslate"><span class="pre">invisible</span></code>: When this is <code class="o_code docutils literal notranslate"><span class="pre">true</span></code>, the field must be invisible. The
<code class="o_code docutils literal notranslate"><span class="pre">AbstractField</span></code> class already has a basic implementation of this
behavior that fits most fields.</p></li>
<li><p><code class="o_code docutils literal notranslate"><span class="pre">readonly</span></code>: When <code class="o_code docutils literal notranslate"><span class="pre">true</span></code>, the field must not be editable by the
user. Most fields in Odoo have a completely different behavior depending
on the value of <code class="o_code docutils literal notranslate"><span class="pre">readonly</span></code>. As example, the <code class="o_code docutils literal notranslate"><span class="pre">FieldChar</span></code> displays an
HTML <code class="o_code docutils literal notranslate"><span class="pre">&lt;input&gt;</span></code> when it is editable and simply displays the text when
it is read-only. This also means it has much more code it would need to
implement only one behavior, but this is necessary to ensure a good user
experience.</p></li>
</ul>
</li>
<li><p>Fields have two methods, <code class="o_code docutils literal notranslate"><span class="pre">set_value()</span></code> and <code class="o_code docutils literal notranslate"><span class="pre">get_value()</span></code>, which are
called by the form view to give it the value to display and get back the new
value entered by the user. These methods must be able to handle the value as
given by the Odoo server when a <code class="o_code docutils literal notranslate"><span class="pre">read()</span></code> is performed on a model and give
back a valid value for a <code class="o_code docutils literal notranslate"><span class="pre">write()</span></code>. Remember that the JavaScript/Python
data types used to represent the values given by <code class="o_code docutils literal notranslate"><span class="pre">read()</span></code> and given to
<code class="o_code docutils literal notranslate"><span class="pre">write()</span></code> is not necessarily the same in Odoo. As example, when you read a
many2one, it is always a tuple whose first value is the id of the pointed
record and the second one is the name get (ie: <code class="o_code docutils literal notranslate"><span class="pre">(15,</span> <span class="pre">&quot;Agrolait&quot;)</span></code>). But
when you write a many2one it must be a single integer, not a tuple
anymore. <code class="o_code docutils literal notranslate"><span class="pre">AbstractField</span></code> has a default implementation of these methods
that works well for simple data type and set a widget property named
<code class="o_code docutils literal notranslate"><span class="pre">value</span></code>.</p></li>
</ul>
<p>Please note that, to better understand how to implement fields, you are
strongly encouraged to look at the definition of the <code class="o_code docutils literal notranslate"><span class="pre">FieldInterface</span></code>
interface and the <code class="o_code docutils literal notranslate"><span class="pre">AbstractField</span></code> class directly in the code of the Odoo web
client.</p>
</section><section id="creating-a-new-type-of-field">
<h4>Creating a New Type of Field<a class="headerlink" href="#creating-a-new-type-of-field" title="Permalink to this headline"></a></h4>
<p>In this part we will explain how to create a new type of field. The example
here will be to re-implement the <code class="o_code docutils literal notranslate"><span class="pre">FieldChar</span></code> class and progressively explain
each part.</p>
</section><section id="simple-read-only-field">
<h5>Simple Read-Only Field<a class="headerlink" href="#simple-read-only-field" title="Permalink to this headline"></a></h5>
<p>Here is a first implementation that will only display text. The
user will not be able to modify the content of the field.</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">FieldChar2</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">form</span><span class="p">.</span><span class="nx">AbstractField</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">init</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">_super</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">set</span><span class="p">(</span><span class="s2">&quot;value&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">);</span>
<span class="p">},</span>
<span class="nx">render_value</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">$el</span><span class="p">.</span><span class="nx">text</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="s2">&quot;value&quot;</span><span class="p">));</span>
<span class="p">},</span>
<span class="p">});</span>
<span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">form</span><span class="p">.</span><span class="nx">widgets</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">&#39;char2&#39;</span><span class="p">,</span> <span class="s1">&#39;instance.oepetstore.FieldChar2&#39;</span><span class="p">);</span>
</pre></div>
</div>
<p>In this example, we declare a class named <code class="o_code docutils literal notranslate"><span class="pre">FieldChar2</span></code> inheriting from
<code class="o_code docutils literal notranslate"><span class="pre">AbstractField</span></code>. We also register this class in the registry
<code class="o_code docutils literal notranslate"><span class="pre">instance.web.form.widgets</span></code> under the key <code class="o_code docutils literal notranslate"><span class="pre">char2</span></code>. That will allow us to
use this new field in any form view by specifying <code class="o_code docutils literal notranslate"><span class="pre">widget=&quot;char2&quot;</span></code> in the
<code class="o_code docutils literal notranslate"><span class="pre">&lt;field/&gt;</span></code> tag in the XML declaration of the view.</p>
<p>In this example, we define a single method: <code class="o_code docutils literal notranslate"><span class="pre">render_value()</span></code>. All it does is
display the widget property <code class="o_code docutils literal notranslate"><span class="pre">value</span></code>. Those are two tools defined by the
<code class="o_code docutils literal notranslate"><span class="pre">AbstractField</span></code> class. As explained before, the form view will call the
method <code class="o_code docutils literal notranslate"><span class="pre">set_value()</span></code> of the field to set the value to display. This method
already has a default implementation in <code class="o_code docutils literal notranslate"><span class="pre">AbstractField</span></code> which simply sets
the widget property <code class="o_code docutils literal notranslate"><span class="pre">value</span></code>. <code class="o_code docutils literal notranslate"><span class="pre">AbstractField</span></code> also watch the
<code class="o_code docutils literal notranslate"><span class="pre">change:value</span></code> event on itself and calls the <code class="o_code docutils literal notranslate"><span class="pre">render_value()</span></code> when it
occurs. So, <code class="o_code docutils literal notranslate"><span class="pre">render_value()</span></code> is a convenience method to implement in child
classes to perform some operation each time the value of the field changes.</p>
<p>In the <code class="o_code docutils literal notranslate"><span class="pre">init()</span></code> method, we also define the default value of the field if
none is specified by the form view (here we assume the default value of a
<code class="o_code docutils literal notranslate"><span class="pre">char</span></code> field should be an empty string).</p>
</section><section id="read-write-field">
<h5>Read-Write Field<a class="headerlink" href="#read-write-field" title="Permalink to this headline"></a></h5>
<p>Read-only fields, which only display content and dont allow the
user to modify it can be useful, but most fields in Odoo also allow editing.
This makes the field classes more complicated, mostly because fields are
supposed to handle both editable and non-editable mode, those modes are
often completely different (for design and usability purpose) and the fields
must be able to switch between modes at any moment.</p>
<p>To know in which mode the current field should be, the <code class="o_code docutils literal notranslate"><span class="pre">AbstractField</span></code> class
sets a widget property named <code class="o_code docutils literal notranslate"><span class="pre">effective_readonly</span></code>. The field should watch
for changes in that widget property and display the correct mode
accordingly. Example:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">FieldChar2</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">form</span><span class="p">.</span><span class="nx">AbstractField</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">init</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">_super</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">set</span><span class="p">(</span><span class="s2">&quot;value&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">);</span>
<span class="p">},</span>
<span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s2">&quot;change:effective_readonly&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">display_field</span><span class="p">();</span>
<span class="k">this</span><span class="p">.</span><span class="nx">render_value</span><span class="p">();</span>
<span class="p">});</span>
<span class="k">this</span><span class="p">.</span><span class="nx">display_field</span><span class="p">();</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">_super</span><span class="p">();</span>
<span class="p">},</span>
<span class="nx">display_field</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">self</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">$el</span><span class="p">.</span><span class="nx">html</span><span class="p">(</span><span class="nx">QWeb</span><span class="p">.</span><span class="nx">render</span><span class="p">(</span><span class="s2">&quot;FieldChar2&quot;</span><span class="p">,</span> <span class="p">{</span><span class="nx">widget</span><span class="o">:</span> <span class="k">this</span><span class="p">}));</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="k">this</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="s2">&quot;effective_readonly&quot;</span><span class="p">))</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">$</span><span class="p">(</span><span class="s2">&quot;input&quot;</span><span class="p">).</span><span class="nx">change</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">self</span><span class="p">.</span><span class="nx">internal_set_value</span><span class="p">(</span><span class="nx">self</span><span class="p">.</span><span class="nx">$</span><span class="p">(</span><span class="s2">&quot;input&quot;</span><span class="p">).</span><span class="nx">val</span><span class="p">());</span>
<span class="p">});</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="nx">render_value</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="s2">&quot;effective_readonly&quot;</span><span class="p">))</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">$el</span><span class="p">.</span><span class="nx">text</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="s2">&quot;value&quot;</span><span class="p">));</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">$</span><span class="p">(</span><span class="s2">&quot;input&quot;</span><span class="p">).</span><span class="nx">val</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="s2">&quot;value&quot;</span><span class="p">));</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="p">});</span>
<span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">form</span><span class="p">.</span><span class="nx">widgets</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">&#39;char2&#39;</span><span class="p">,</span> <span class="s1">&#39;instance.oepetstore.FieldChar2&#39;</span><span class="p">);</span>
</pre></div>
</div>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;t</span> <span class="na">t-name=</span><span class="s">&quot;FieldChar2&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">&quot;oe_field_char2&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;t</span> <span class="na">t-if=</span><span class="s">&quot;! widget.get(&#39;effective_readonly&#39;)&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;input</span> <span class="na">type=</span><span class="s">&quot;text&quot;</span><span class="nt">&gt;&lt;/input&gt;</span>
<span class="nt">&lt;/t&gt;</span>
<span class="nt">&lt;/div&gt;</span>
<span class="nt">&lt;/t&gt;</span>
</pre></div>
</div>
<p>In the <code class="o_code docutils literal notranslate"><span class="pre">start()</span></code> method (which is called immediately after a widget has been
appended to the DOM), we bind on the event <code class="o_code docutils literal notranslate"><span class="pre">change:effective_readonly</span></code>. That
allows us to redisplay the field each time the widget property
<code class="o_code docutils literal notranslate"><span class="pre">effective_readonly</span></code> changes. This event handler will call
<code class="o_code docutils literal notranslate"><span class="pre">display_field()</span></code>, which is also called directly in <code class="o_code docutils literal notranslate"><span class="pre">start()</span></code>. This
<code class="o_code docutils literal notranslate"><span class="pre">display_field()</span></code> was created specifically for this field, its not a method
defined in <code class="o_code docutils literal notranslate"><span class="pre">AbstractField</span></code> or any other class. We can use this method
to display the content of the field depending on the current mode.</p>
<p>From now on the conception of this field is typical, except there is a
lot of verifications to know the state of the <code class="o_code docutils literal notranslate"><span class="pre">effective_readonly</span></code> property:</p>
<ul class="simple">
<li><p>In the QWeb template used to display the content of the widget, it displays
an <code class="o_code docutils literal notranslate"><span class="pre">&lt;input</span> <span class="pre">type=&quot;text&quot;</span> <span class="pre">/&gt;</span></code> if we are in read-write mode and nothing in
particular in read-only mode.</p></li>
<li><p>In the <code class="o_code docutils literal notranslate"><span class="pre">display_field()</span></code> method, we have to bind on the <code class="o_code docutils literal notranslate"><span class="pre">change</span></code> event
of the <code class="o_code docutils literal notranslate"><span class="pre">&lt;input</span> <span class="pre">type=&quot;text&quot;</span> <span class="pre">/&gt;</span></code> to know when the user has changed the
value. When it happens, we call the <code class="o_code docutils literal notranslate"><span class="pre">internal_set_value()</span></code> method with the
new value of the field. This is a convenience method provided by the
<code class="o_code docutils literal notranslate"><span class="pre">AbstractField</span></code> class. That method will set a new value in the <code class="o_code docutils literal notranslate"><span class="pre">value</span></code>
property but will not trigger a call to <code class="o_code docutils literal notranslate"><span class="pre">render_value()</span></code> (which is not
necessary since the <code class="o_code docutils literal notranslate"><span class="pre">&lt;input</span> <span class="pre">type=&quot;text&quot;</span> <span class="pre">/&gt;</span></code> already contains the correct
value).</p></li>
<li><p>In <code class="o_code docutils literal notranslate"><span class="pre">render_value()</span></code>, we use a completely different code to display the
value of the field depending if we are in read-only or in read-write mode.</p></li>
</ul>
<div class="alert alert-dark">
<p class="alert-title">
Exercise</p><p>Create a Color Field</p>
<p>Create a <code class="o_code docutils literal notranslate"><span class="pre">FieldColor</span></code> class. The value of this field should be a string
containing a color code like those used in CSS (example: <code class="o_code docutils literal notranslate"><span class="pre">#FF0000</span></code> for
red). In read-only mode, this color field should display a little block
whose color corresponds to the value of the field. In read-write mode, you
should display an <code class="o_code docutils literal notranslate"><span class="pre">&lt;input</span> <span class="pre">type=&quot;color&quot;</span> <span class="pre">/&gt;</span></code>. That type of <code class="o_code docutils literal notranslate"><span class="pre">&lt;input</span> <span class="pre">/&gt;</span></code>
is an HTML5 component that doesnt work in all browsers but works well in
Google Chrome. So its OK to use as an exercise.</p>
<p>You can use that widget in the form view of the <code class="o_code docutils literal notranslate"><span class="pre">message_of_the_day</span></code>
model for its field named <code class="o_code docutils literal notranslate"><span class="pre">color</span></code>. As a bonus, you can change the
<code class="o_code docutils literal notranslate"><span class="pre">MessageOfTheDay</span></code> widget created in the previous part of this guide to
display the message of the day with the background color indicated in the
<code class="o_code docutils literal notranslate"><span class="pre">color</span></code> field.</p>
</div>
</section><section id="the-form-view-custom-widgets">
<h3>The Form View Custom Widgets<a class="headerlink" href="#the-form-view-custom-widgets" title="Permalink to this headline"></a></h3>
<p>Form fields are used to edit a single field, and are intrinsically linked to
a field. Because this may be limiting, it is also possible to create
<em>form widgets</em> which are not so restricted and have less ties to a specific
lifecycle.</p>
<p>Custom form widgets can be added to a form view through the <code class="o_code docutils literal notranslate"><span class="pre">widget</span></code> tag:</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;widget</span> <span class="na">type=</span><span class="s">&quot;xxx&quot;</span> <span class="nt">/&gt;</span>
</pre></div>
</div>
<p>This type of widget will simply be created by the form view during the
creation of the HTML according to the XML definition. They have properties in
common with the fields (like the <code class="o_code docutils literal notranslate"><span class="pre">effective_readonly</span></code> property) but they are
not assigned a precise field. And so they dont have methods like
<code class="o_code docutils literal notranslate"><span class="pre">get_value()</span></code> and <code class="o_code docutils literal notranslate"><span class="pre">set_value()</span></code>. They must inherit from the <code class="o_code docutils literal notranslate"><span class="pre">FormWidget</span></code>
abstract class.</p>
<p>Form widgets can interact with form fields by listening for their changes and
fetching or altering their values. They can access form fields through
their <code class="xref js js-attr o_code docutils literal notranslate"><span class="pre">field_manager</span></code> attribute:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">local</span><span class="p">.</span><span class="nx">WidgetMultiplication</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">form</span><span class="p">.</span><span class="nx">FormWidget</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">_super</span><span class="p">();</span>
<span class="k">this</span><span class="p">.</span><span class="nx">field_manager</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s2">&quot;field_changed:integer_a&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">display_result</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">field_manager</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s2">&quot;field_changed:integer_b&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">display_result</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">display_result</span><span class="p">();</span>
<span class="p">},</span>
<span class="nx">display_result</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">result</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">field_manager</span><span class="p">.</span><span class="nx">get_field_value</span><span class="p">(</span><span class="s2">&quot;integer_a&quot;</span><span class="p">)</span> <span class="o">*</span>
<span class="k">this</span><span class="p">.</span><span class="nx">field_manager</span><span class="p">.</span><span class="nx">get_field_value</span><span class="p">(</span><span class="s2">&quot;integer_b&quot;</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">$el</span><span class="p">.</span><span class="nx">text</span><span class="p">(</span><span class="s2">&quot;a*b = &quot;</span> <span class="o">+</span> <span class="nx">result</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">});</span>
<span class="nx">instance</span><span class="p">.</span><span class="nx">web</span><span class="p">.</span><span class="nx">form</span><span class="p">.</span><span class="nx">custom_widgets</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">&#39;multiplication&#39;</span><span class="p">,</span> <span class="s1">&#39;instance.oepetstore.WidgetMultiplication&#39;</span><span class="p">);</span>
</pre></div>
</div>
<p><code class="xref js js-attr o_code docutils literal notranslate"><span class="pre">FormWidget</span></code> is generally the
<code class="xref js js-class o_code docutils literal notranslate"><span class="pre">FormView()</span></code> itself, but features used from it should
be limited to those defined by <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">FieldManagerMixin()</span></code>,
the most useful being:</p>
<ul class="simple">
<li><p><code class="xref js js-func o_code docutils literal notranslate"><span class="pre">get_field_value(field_name)()</span></code>
which returns the value of a field.</p></li>
<li><p><code class="xref js js-func o_code docutils literal notranslate"><span class="pre">set_values(values)()</span></code> sets multiple
field values, takes a mapping of <code class="o_code docutils literal notranslate"><span class="pre">{field_name:</span> <span class="pre">value_to_set}</span></code></p></li>
<li><p>An event <code class="samp o_code docutils literal notranslate"><span class="pre">field_changed:</span><em><span class="pre">field_name</span></em></code> is triggered any time the value
of the field called <code class="o_code docutils literal notranslate"><span class="pre">field_name</span></code> is changed</p></li>
</ul>
<div class="alert alert-dark">
<p class="alert-title">
Exercise</p><p>Show Coordinates on Google Map</p>
<p>Add two fields to <code class="o_code docutils literal notranslate"><span class="pre">product.product</span></code> storing a latitude and a longitude,
then create a new form widget to display the latitude and longitude of
a products origin on a map</p>
<p>To display the map, use Google Maps embedding:</p>
<div class="highlight-html notranslate"><div class="highlight"><pre><span></span><span class="p">&lt;</span><span class="nt">iframe</span> <span class="na">width</span><span class="o">=</span><span class="s">&quot;400&quot;</span> <span class="na">height</span><span class="o">=</span><span class="s">&quot;300&quot;</span> <span class="na">src</span><span class="o">=</span><span class="s">&quot;https://maps.google.com/?ie=UTF8&amp;amp;ll=XXX,YYY&amp;amp;output=embed&quot;</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">iframe</span><span class="p">&gt;</span>
</pre></div>
</div>
<p>where <code class="o_code docutils literal notranslate"><span class="pre">XXX</span></code> should be replaced by the latitude and <code class="o_code docutils literal notranslate"><span class="pre">YYY</span></code> by the
longitude.</p>
<p>Display the two position fields and a map widget using them in a new
notebook page of the products form view.</p>
</div>
<div class="alert alert-dark">
<p class="alert-title">
Exercise</p><p>Get the Current Coordinate</p>
<p>Add a button resetting the products coordinates to the location of the
user, you can get these coordinates using the
<a class="reference external" href="http://diveintohtml5.info/geolocation.html">javascript geolocation API</a>.</p>
<p>Now we would like to display an additional button to automatically set the
coordinates to the location of the current user.</p>
<p>To get the coordinates of the user, an easy way is to use the geolocation
JavaScript API. <a class="reference external" href="http://www.w3schools.com/html/html5_geolocation.asp">See the online documentation to know how to use it</a>.</p>
<p>Please also note that the user should not be able to
click on that button when the form view is in read-only mode. So, this
custom widget should handle correctly the <code class="o_code docutils literal notranslate"><span class="pre">effective_readonly</span></code> property
just like any field. One way to do this would be to make the button
disappear when <code class="o_code docutils literal notranslate"><span class="pre">effective_readonly</span></code> is true.</p>
</div>
<dl class="footnote brackets">
<dt class="label" id="id6"><span class="brackets"><a class="fn-backref" href="#id2">1</a></span></dt>
<dd><p>as a separate concept from instances. In many languages classes
are full-fledged objects and themselves instance (of
metaclasses) but there remains two fairly separate hierarchies
between classes and instances</p>
</dd>
<dt class="label" id="dombugs"><span class="brackets"><a class="fn-backref" href="#id3">2</a></span></dt>
<dd><p>as well as papering over cross-browser differences, although
this has become less necessary over time</p>
</dd>
</dl>
</section>
</div>
</article>
</main>
<aside id="o_page_toc" class="o_page_toc" hidden><div class="o_page_toc_nav mt-1">
<h5>On this page</h5>
<ul>
<li><a class="reference internal" href="#">Customizing the web client</a><ul>
<li><a class="reference internal" href="#a-simple-module">A Simple Module</a></li>
<li><a class="reference internal" href="#odoo-javascript-module">Odoo JavaScript Module</a></li>
<li><a class="reference internal" href="#classes">Classes</a></li>
<li><a class="reference internal" href="#widgets-basics">Widgets Basics</a><ul>
<li><a class="reference internal" href="#your-first-widget">Your First Widget</a></li>
<li><a class="reference internal" href="#display-content">Display Content</a></li>
<li><a class="reference internal" href="#widget-parents-and-children">Widget Parents and Children</a></li>
<li><a class="reference internal" href="#destroying-widgets">Destroying Widgets</a></li>
</ul>
</li>
<li><a class="reference internal" href="#the-qweb-template-engine">The QWeb Template Engine</a><ul>
<li><a class="reference internal" href="#using-qweb">Using QWeb</a><ul>
<li><a class="reference internal" href="#qweb-context">QWeb Context</a></li>
<li><a class="reference internal" href="#template-declaration">Template Declaration</a></li>
<li><a class="reference internal" href="#escaping">Escaping</a></li>
<li><a class="reference internal" href="#outputting-html">Outputting HTML</a></li>
<li><a class="reference internal" href="#conditionals">Conditionals</a></li>
<li><a class="reference internal" href="#iteration">Iteration</a></li>
<li><a class="reference internal" href="#defining-attributes">Defining attributes</a></li>
<li><a class="reference internal" href="#calling-other-templates">Calling other templates</a></li>
<li><a class="reference internal" href="#to-learn-more-about-qweb">To Learn More About QWeb</a></li>
<li><a class="reference internal" href="#exercise">Exercise</a></li>
</ul>
</li>
</ul>
</li>
<li><a class="reference internal" href="#widget-helpers">Widget Helpers</a><ul>
<li><a class="reference internal" href="#widget-s-jquery-selector"><code class="o_code docutils literal notranslate"><span class="pre">Widget</span></code>s jQuery Selector</a></li>
<li><a class="reference internal" href="#easier-dom-events-binding">Easier DOM Events Binding</a></li>
</ul>
</li>
<li><a class="reference internal" href="#widget-events-and-properties">Widget Events and Properties</a><ul>
<li><a class="reference internal" href="#events">Events</a></li>
<li><a class="reference internal" href="#properties">Properties</a></li>
<li><a class="reference internal" href="#id4">Exercise</a></li>
</ul>
</li>
<li><a class="reference internal" href="#modify-existing-widgets-and-classes">Modify existing widgets and classes</a></li>
<li><a class="reference internal" href="#translations">Translations</a></li>
<li><a class="reference internal" href="#communication-with-the-odoo-server">Communication with the Odoo Server</a><ul>
<li><a class="reference internal" href="#contacting-models">Contacting Models</a></li>
<li><a class="reference internal" href="#compoundcontext">CompoundContext</a></li>
<li><a class="reference internal" href="#queries">Queries</a></li>
</ul>
</li>
<li><a class="reference internal" href="#exercises">Exercises</a></li>
<li><a class="reference internal" href="#existing-web-components">Existing web components</a><ul>
<li><a class="reference internal" href="#the-action-manager">The Action Manager</a><ul>
<li><a class="reference internal" href="#using-the-action-manager">Using the Action Manager</a></li>
</ul>
</li>
<li><a class="reference internal" href="#client-actions">Client Actions</a></li>
<li><a class="reference internal" href="#architecture-of-the-views">Architecture of the Views</a><ul>
<li><a class="reference internal" href="#the-view-manager">The View Manager</a></li>
<li><a class="reference internal" href="#the-views">The Views</a></li>
</ul>
</li>
<li><a class="reference internal" href="#the-form-view-fields">The Form View Fields</a><ul>
<li><a class="reference internal" href="#creating-a-new-type-of-field">Creating a New Type of Field</a><ul>
<li><a class="reference internal" href="#simple-read-only-field">Simple Read-Only Field</a></li>
<li><a class="reference internal" href="#read-write-field">Read-Write Field</a></li>
</ul>
</li>
</ul>
</li>
<li><a class="reference internal" href="#the-form-view-custom-widgets">The Form View Custom Widgets</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</aside>
</div>
<footer><div class="o_get_help container-fluid d-lg-flex">
<div class="col-12 col-lg-10">
<h4><i class="i-o-help me-2"></i>Get Help</h4>
<div>
<a href="https://odoo.com/help" target="_blank" class="btn btn-outline-secondary mb-2">Contact Support</a>
<a href="https://www.odoo.com/forum/help-1" target="_blank" class="btn btn-outline-secondary mb-2">Ask the Odoo Community</a>
</div>
</div>
<div class="col-12 col-lg-2 mt-5 mt-lg-0 text-center">
<a class="o_logo" href="https://www.odoo.com">
<img src="../../_static/img/logos/odoo_logo.svg" height="20" alt="Odoo"/>
</a>
</div>
</div>
</footer>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../../genindex.html" title="General Index"
>index</a></li>
<li class="nav-item nav-item-0"><a href="../../index.html">Odoo 18.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Customizing the web client</a></li>
</ul>
</div>
</body>
</html>