4288 lines
522 KiB
HTML
4288 lines
522 KiB
HTML
|
||
<!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 — 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&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 & 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&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 & 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> »</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 Odoo’s 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>Let’s 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 Odoo’s
|
||
<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. We’ll come back to
|
||
these later, for now let’s 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">"pet store home page loaded"</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">'petstore.homepage'</span><span class="p">,</span> <span class="s1">'instance.oepetstore.HomePage'</span><span class="p">);</span>
|
||
<span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd>
|
||
</dl>
|
||
<p>Which only prints a small message in the browser’s 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 doesn’t 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 function’s 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 Resig’s <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">"hello"</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 class’s 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 "hello" 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">"hello"</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">"Bob"</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 "hello Bob" 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">"hello"</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">"Bob"</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 "hello Bob" 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">"hola"</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">"Bob"</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 "hola Bob" 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">"translation in Spanish: hola"</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">"Bob"</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 "hello Bob \n translation in Spanish: hola Bob" 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'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">"pet store home page loaded"</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">'petstore.homepage'</span><span class="p">,</span> <span class="s1">'instance.oepetstore.HomePage'</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 widget’s 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 they’re 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"><div></span></code> element.</p>
|
||
<p>A <code class="o_code docutils literal notranslate"><span class="pre"><div></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>Let’s add some content to the widget’s 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">"<div>Hello dear Odoo user!</div>"</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” let’s 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">"<div>We are so happy to see you again in this menu!</div>"</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">"<div>Hello dear Odoo user!</div>"</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 browser’s
|
||
DOM Explorer. But first let’s 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">'oe_petstore_homepage'</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">'oe_petstore_greetings'</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"><</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">"oe_petstore_homepage"</span><span class="p">></span>
|
||
<span class="p"><</span><span class="nt">div</span><span class="p">></span>Hello dear Odoo user!<span class="p"></</span><span class="nt">div</span><span class="p">></span>
|
||
<span class="p"><</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">"oe_petstore_greetings"</span><span class="p">></span>
|
||
<span class="p"><</span><span class="nt">div</span><span class="p">></span>We are so happy to see you again in this menu!<span class="p"></</span><span class="nt">div</span><span class="p">></span>
|
||
<span class="p"></</span><span class="nt">div</span><span class="p">></span>
|
||
<span class="p"></</span><span class="nt">div</span><span class="p">></span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Which clearly shows the two <code class="o_code docutils literal notranslate"><span class="pre"><div></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"><div</span> <span class="pre">class="oe_petstore_greetings"></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"><div</span> <span class="pre">class="oe_petstore_homepage"></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 we’ve seen, widgets are usually inserted in the DOM by another widget and
|
||
<em>inside</em> that other widget’s 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 "div.oe_petstore_homepage" 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 "div.oe_petstore_greetings" 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 it’s 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">"<div>Hello dear Odoo user!</div>"</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, Odoo’s solution is to use a <a class="reference external" href="http://en.wikipedia.org/wiki/Web_template_system">template engine</a>.
|
||
Odoo’s 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>It’s 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 Web’s <code class="xref js js-class o_code docutils literal notranslate"><span class="pre">Widget()</span></code>, though it
|
||
can be used outside of Odoo’s web client (and it’s 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 let’s 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"><?xml version="1.0" encoding="UTF-8"?></span>
|
||
<span class="nt"><templates</span> <span class="na">xml:space=</span><span class="s">"preserve"</span><span class="nt">></span>
|
||
<span class="nt"><t</span> <span class="na">t-name=</span><span class="s">"HomePageTemplate"</span><span class="nt">></span>
|
||
<span class="nt"><div</span> <span class="na">style=</span><span class="s">"background-color: red;"</span><span class="nt">></span>This is some simple HTML<span class="nt"></div></span>
|
||
<span class="nt"></t></span>
|
||
<span class="nt"></templates></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">"HomePageTemplate"</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">"HomePageTemplate"</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 template’s content is added to the widget’s root
|
||
element, whereas in the second version the template’s root element is
|
||
directly <em>set as</em> the widget’s 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
|
||
they’re set as a widget’s <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">"HomePageTemplate"</span><span class="p">,</span> <span class="p">{</span><span class="nx">name</span><span class="o">:</span> <span class="s2">"Klaus"</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"><t</span> <span class="na">t-name=</span><span class="s">"HomePageTemplate"</span><span class="nt">></span>
|
||
<span class="nt"><div></span>Hello <span class="nt"><t</span> <span class="na">t-esc=</span><span class="s">"name"</span><span class="nt">/></div></span>
|
||
<span class="nt"></t></span>
|
||
</pre></div>
|
||
</div>
|
||
<p>will result in:</p>
|
||
<div class="highlight-html notranslate"><div class="highlight"><pre><span></span><span class="p"><</span><span class="nt">div</span><span class="p">></span>Hello Klaus<span class="p"></</span><span class="nt">div</span><span class="p">></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 widget’s 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"><t</span> <span class="na">t-name=</span><span class="s">"HomePageTemplate"</span><span class="nt">></span>
|
||
<span class="nt"><div></span>Hello <span class="nt"><t</span> <span class="na">t-esc=</span><span class="s">"widget.name"</span><span class="nt">/></div></span>
|
||
<span class="nt"></t></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">"HomePageTemplate"</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">"Mordecai"</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"><</span><span class="nt">div</span><span class="p">></span>Hello Mordecai<span class="p"></</span><span class="nt">div</span><span class="p">></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>We’ve seen how to <em>render</em> QWeb templates, let’s 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"><templates></span>
|
||
<span class="nt"><t</span> <span class="na">t-name=</span><span class="s">"HomePageTemplate"</span><span class="nt">></span>
|
||
<span class="nt"><div></span>This is some simple HTML<span class="nt"></div></span>
|
||
<span class="nt"></t></span>
|
||
<span class="nt"></templates></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"><div></span>Hello <span class="nt"><t</span> <span class="na">t-esc=</span><span class="s">"name"</span><span class="nt">/></div></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 it’s an
|
||
expression it’s 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"><div><t</span> <span class="na">t-esc=</span><span class="s">"3+5"</span><span class="nt">/></div></span>
|
||
</pre></div>
|
||
</div>
|
||
<p>or method calls:</p>
|
||
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><div><t</span> <span class="na">t-esc=</span><span class="s">"name.toUpperCase()"</span><span class="nt">/></div></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"><div><t</span> <span class="na">t-raw=</span><span class="s">"name.link(user_account)"</span><span class="nt">/></div></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"><div></span>
|
||
<span class="nt"><t</span> <span class="na">t-if=</span><span class="s">"true == true"</span><span class="nt">></span>
|
||
true is true
|
||
<span class="nt"></t></span>
|
||
<span class="nt"><t</span> <span class="na">t-if=</span><span class="s">"true == false"</span><span class="nt">></span>
|
||
true is not true
|
||
<span class="nt"></t></span>
|
||
<span class="nt"></div></span>
|
||
</pre></div>
|
||
</div>
|
||
<div class="alert alert-primary">
|
||
<p class="alert-title">
|
||
Note</p><p>QWeb doesn’t 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 it’s 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"><div></span>
|
||
<span class="nt"><t</span> <span class="na">t-foreach=</span><span class="s">"names"</span> <span class="na">t-as=</span><span class="s">"name"</span><span class="nt">></span>
|
||
<span class="nt"><div></span>
|
||
Hello <span class="nt"><t</span> <span class="na">t-esc=</span><span class="s">"name"</span><span class="nt">/></span>
|
||
<span class="nt"></div></span>
|
||
<span class="nt"></t></span>
|
||
<span class="nt"></div></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
|
||
attribute’s value, it is most useful if all of the attribute’s value is
|
||
computed:</p>
|
||
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><div></span>
|
||
Input your name:
|
||
<span class="nt"><input</span> <span class="na">type=</span><span class="s">"text"</span> <span class="na">t-att-value=</span><span class="s">"defaultName"</span><span class="nt">/></span>
|
||
<span class="nt"></div></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"><div</span> <span class="na">t-attf-class=</span><span class="s">"container {{ left ? 'text-left' : '' }} {{ extra_class }}"</span><span class="nt">></span>
|
||
insert content here
|
||
<span class="nt"></div></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"><t</span> <span class="na">t-name=</span><span class="s">"A"</span><span class="nt">></span>
|
||
<span class="nt"><div</span> <span class="na">class=</span><span class="s">"i-am-a"</span><span class="nt">></span>
|
||
<span class="nt"><t</span> <span class="na">t-call=</span><span class="s">"B"</span><span class="nt">/></span>
|
||
<span class="nt"></div></span>
|
||
<span class="nt"></t></span>
|
||
<span class="nt"><t</span> <span class="na">t-name=</span><span class="s">"B"</span><span class="nt">></span>
|
||
<span class="nt"><div</span> <span class="na">class=</span><span class="s">"i-am-b"</span><span class="nt">/></span>
|
||
<span class="nt"></t></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"><div</span> <span class="na">class=</span><span class="s">"i-am-a"</span><span class="nt">></span>
|
||
<span class="nt"><div</span> <span class="na">class=</span><span class="s">"i-am-b"</span><span class="nt">/></span>
|
||
<span class="nt"></div></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 widget’s 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">"input.my_input"</span><span class="p">)...</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>But because it’s 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">"input.my_input"</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 widget’s 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">".my_button"</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 widget’s 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">"click .my_button"</span><span class="o">:</span> <span class="s2">"button_clicked"</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">'click'</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">'click button.ok_button'</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">'user_chose'</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
|
||
<span class="p">},</span>
|
||
<span class="s1">'click button.cancel_button'</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">'user_chose'</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">"<div>Are you sure you want to perform this action?</div>"</span> <span class="o">+</span>
|
||
<span class="s2">"<button class='ok_button'>Ok</button>"</span> <span class="o">+</span>
|
||
<span class="s2">"<button class='cancel_button'>Cancel</button>"</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">"user_chose"</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">"The user agreed to continue"</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">"The user refused to continue"</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">"my_event"</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">"my_event"</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 "1 2 3"</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">"change:name"</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">"name"</span><span class="p">,</span> <span class="s2">"Nicolas"</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">"The new value of the property 'name' is"</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">"name"</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"><input</span>
|
||
<span class="pre">type="text"></span></code>. Each of these <code class="o_code docutils literal notranslate"><span class="pre"><input></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"><input></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"><input></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"><input></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"><input></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">"hello"</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">" world"</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 "hello world"</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">"Hello user!"</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">"Hello, %(user)s!"</span><span class="p">),</span> <span class="p">{</span>
|
||
<span class="nx">user</span><span class="o">:</span> <span class="s2">"Ed"</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 user’s 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">"oepetstore.message_of_the_day"</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">"hello"</span><span class="p">:</span> <span class="s2">"world"</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">"oepetstore.message_of_the_day"</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">"my_method"</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">"<div>Hello "</span> <span class="o">+</span> <span class="nx">result</span><span class="p">[</span><span class="s2">"hello"</span><span class="p">]</span> <span class="o">+</span> <span class="s2">"</div>"</span><span class="p">);</span>
|
||
<span class="c1">// will show "Hello world" 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 model’s 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">"my_method"</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">"my_method"</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 model’s 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">"my_method"</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). That’s why,
|
||
when you call a model’s 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 user’s
|
||
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">"my_method"</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">'new_key'</span><span class="o">:</span> <span class="s1">'key_value'</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">'lang'</span><span class="p">:</span> <span class="s1">'en_US'</span><span class="p">,</span> <span class="s1">'new_key'</span><span class="p">:</span> <span class="s1">'key_value'</span><span class="p">,</span> <span class="s1">'tz'</span><span class="p">:</span> <span class="s1">'Europe/Brussels'</span><span class="p">,</span> <span class="s1">'uid'</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">'name'</span><span class="p">,</span> <span class="s1">'login'</span><span class="p">,</span> <span class="s1">'user_email'</span><span class="p">,</span> <span class="s1">'signature'</span><span class="p">])</span>
|
||
<span class="p">.</span><span class="nx">filter</span><span class="p">([[</span><span class="s1">'active'</span><span class="p">,</span> <span class="s1">'='</span><span class="p">,</span> <span class="kc">true</span><span class="p">],</span> <span class="p">[</span><span class="s1">'company_id'</span><span class="p">,</span> <span class="s1">'='</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">'search'</span><span class="p">,</span> <span class="p">[[</span><span class="s1">'active'</span><span class="p">,</span> <span class="s1">'='</span><span class="p">,</span> <span class="kc">true</span><span class="p">],</span> <span class="p">[</span><span class="s1">'company_id'</span><span class="p">,</span> <span class="s1">'='</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">'read'</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">'name'</span><span class="p">,</span> <span class="s1">'login'</span><span class="p">,</span> <span class="s1">'user_email'</span><span class="p">,</span> <span class="s1">'signature'</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 it’s 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 they’re 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"><img</span> <span class="pre">src="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">"/></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">'ir.actions.act_window'</span><span class="p">,</span>
|
||
<span class="nx">res_model</span><span class="o">:</span> <span class="s2">"product.product"</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">'form'</span><span class="p">]],</span>
|
||
<span class="nx">target</span><span class="o">:</span> <span class="s1">'current'</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 toy’s 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">'petstore.homepage'</span><span class="p">,</span> <span class="s1">'instance.oepetstore.HomePage'</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
|
||
it’ll 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"><record</span> <span class="na">id=</span><span class="s">"action_home_page"</span> <span class="na">model=</span><span class="s">"ir.actions.client"</span><span class="nt">></span>
|
||
<span class="nt"><field</span> <span class="na">name=</span><span class="s">"tag"</span><span class="nt">></span>petstore.homepage<span class="nt"></field></span>
|
||
<span class="nt"></record></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"><menuitem</span> <span class="na">id=</span><span class="s">"home_page_petstore_menu"</span> <span class="na">parent=</span><span class="s">"petstore_menu"</span>
|
||
<span class="na">name=</span><span class="s">"Home Page"</span> <span class="na">action=</span><span class="s">"action_home_page"</span><span class="nt">/></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 web’s 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 action’s 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 it’s a more permanent fixture and
|
||
can interact with other views, which regular views don’t 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 view’s XML description:</p>
|
||
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><field</span> <span class="na">name=</span><span class="s">"contact_mail"</span> <span class="na">widget=</span><span class="s">"email"</span><span class="nt">/></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, it’s 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 doesn’t 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"><input></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">"Agrolait")</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">"value"</span><span class="p">,</span> <span class="s2">""</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">"value"</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">'char2'</span><span class="p">,</span> <span class="s1">'instance.oepetstore.FieldChar2'</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="char2"</span></code> in the
|
||
<code class="o_code docutils literal notranslate"><span class="pre"><field/></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 don’t 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">"value"</span><span class="p">,</span> <span class="s2">""</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">"change:effective_readonly"</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">"FieldChar2"</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">"effective_readonly"</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">"input"</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">"input"</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">"effective_readonly"</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">"value"</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">"input"</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">"value"</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">'char2'</span><span class="p">,</span> <span class="s1">'instance.oepetstore.FieldChar2'</span><span class="p">);</span>
|
||
</pre></div>
|
||
</div>
|
||
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><t</span> <span class="na">t-name=</span><span class="s">"FieldChar2"</span><span class="nt">></span>
|
||
<span class="nt"><div</span> <span class="na">class=</span><span class="s">"oe_field_char2"</span><span class="nt">></span>
|
||
<span class="nt"><t</span> <span class="na">t-if=</span><span class="s">"! widget.get('effective_readonly')"</span><span class="nt">></span>
|
||
<span class="nt"><input</span> <span class="na">type=</span><span class="s">"text"</span><span class="nt">></input></span>
|
||
<span class="nt"></t></span>
|
||
<span class="nt"></div></span>
|
||
<span class="nt"></t></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, it’s 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"><input</span> <span class="pre">type="text"</span> <span class="pre">/></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"><input</span> <span class="pre">type="text"</span> <span class="pre">/></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"><input</span> <span class="pre">type="text"</span> <span class="pre">/></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"><input</span> <span class="pre">type="color"</span> <span class="pre">/></span></code>. That type of <code class="o_code docutils literal notranslate"><span class="pre"><input</span> <span class="pre">/></span></code>
|
||
is an HTML5 component that doesn’t work in all browsers but works well in
|
||
Google Chrome. So it’s 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"><widget</span> <span class="na">type=</span><span class="s">"xxx"</span> <span class="nt">/></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 don’t 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">"field_changed:integer_a"</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">"field_changed:integer_b"</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">"integer_a"</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">"integer_b"</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">"a*b = "</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">'multiplication'</span><span class="p">,</span> <span class="s1">'instance.oepetstore.WidgetMultiplication'</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 product’s origin on a map</p>
|
||
<p>To display the map, use Google Map’s embedding:</p>
|
||
<div class="highlight-html notranslate"><div class="highlight"><pre><span></span><span class="p"><</span><span class="nt">iframe</span> <span class="na">width</span><span class="o">=</span><span class="s">"400"</span> <span class="na">height</span><span class="o">=</span><span class="s">"300"</span> <span class="na">src</span><span class="o">=</span><span class="s">"https://maps.google.com/?ie=UTF8&amp;ll=XXX,YYY&amp;output=embed"</span><span class="p">></span>
|
||
<span class="p"></</span><span class="nt">iframe</span><span class="p">></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 product’s 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 product’s 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> »</li>
|
||
<li class="nav-item nav-item-this"><a href="">Customizing the web client</a></li>
|
||
</ul>
|
||
</div>
|
||
</body>
|
||
</html> |