[REF] Subscriptions: rewrite overview, integrate products page
closes odoo/documentation#12823
closes odoo/documentation#12870
closes odoo/documentation#12989
X-original-commit: ee2126a112
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
@@ -9,8 +9,8 @@ time periods, etc., and is useful for creating pricing strategies and optimizing
|
|||||||
Odoo **Sales** has a useful pricelist feature that can be tailored to fit any unique pricing
|
Odoo **Sales** has a useful pricelist feature that can be tailored to fit any unique pricing
|
||||||
strategy. Pricelists suggest certain prices, but they can always be overridden on the sales order.
|
strategy. Pricelists suggest certain prices, but they can always be overridden on the sales order.
|
||||||
|
|
||||||
Pricelists configuration
|
Configuration
|
||||||
========================
|
=============
|
||||||
|
|
||||||
To enable pricelists in the Odoo **Sales** app, first navigate to :menuselection:`Sales app -->
|
To enable pricelists in the Odoo **Sales** app, first navigate to :menuselection:`Sales app -->
|
||||||
Configuration --> Settings`. In the :guilabel:`Pricing` section, tick the checkbox next to the
|
Configuration --> Settings`. In the :guilabel:`Pricing` section, tick the checkbox next to the
|
||||||
@@ -147,9 +147,8 @@ From here, there are several configuration options:
|
|||||||
Recurring Prices tab
|
Recurring Prices tab
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
Recurring prices are specifically used with :doc:`subscription products
|
Time-based rules are used specifically with subscription products. Be sure to check out the Odoo
|
||||||
<../../../subscriptions/products>`. When configuring price rules in this tab, keep in mind that
|
:doc:`Subscriptions </applications/sales/subscriptions>` documentation for more information.
|
||||||
they will only apply to subscription products, or products with recurring prices enabled.
|
|
||||||
|
|
||||||
In the :guilabel:`Recurring Prices` tab, pricelists are configured with the same options as in the
|
In the :guilabel:`Recurring Prices` tab, pricelists are configured with the same options as in the
|
||||||
:guilabel:`Price Rules` tab, with additional columns for :guilabel:`Product Variants` add
|
:guilabel:`Price Rules` tab, with additional columns for :guilabel:`Product Variants` add
|
||||||
@@ -213,8 +212,13 @@ The :guilabel:`Selectable` can be enabled to allow the customer to choose this p
|
|||||||
Finally, promotional and loyalty codes can be added to the :guilabel:`E-commerce Promotional Code`
|
Finally, promotional and loyalty codes can be added to the :guilabel:`E-commerce Promotional Code`
|
||||||
field.
|
field.
|
||||||
|
|
||||||
.. image:: pricing/sales-pricelist-ecommerce.png
|
Tick the :guilabel:`Selectable` checkbox to have this pricelist as a selectable option for
|
||||||
:alt: The Ecommerce tab in a pricelist configuration form.
|
customers to choose as they shop. If the :guilabel:`Selectable` box is left unticked, customers
|
||||||
|
**cannot** select this pricelist for themselves.
|
||||||
|
|
||||||
|
Lastly, there is the option to add an :guilabel:`E-commerce Promotional Code`. To add a code, type
|
||||||
|
in the desired promo code that, when entered during the checkout process, applies the pricelist to
|
||||||
|
the customer, even if the customer does not fall into the previously-specified criteria.
|
||||||
|
|
||||||
Customer pricelist application
|
Customer pricelist application
|
||||||
==============================
|
==============================
|
||||||
|
|||||||
@@ -7,8 +7,6 @@ Reusable quotation templates can be made in Odoo's **Sales** app for common prod
|
|||||||
By using these templates, quotations can be tailored and sent to customers at a quicker pace,
|
By using these templates, quotations can be tailored and sent to customers at a quicker pace,
|
||||||
without having to create new quotations from scratch every time a sales negotiation occurs.
|
without having to create new quotations from scratch every time a sales negotiation occurs.
|
||||||
|
|
||||||
.. _sales/send_quotations/templates:
|
|
||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
=============
|
=============
|
||||||
|
|
||||||
|
|||||||
@@ -1,46 +1,267 @@
|
|||||||
:show-content:
|
:show-content:
|
||||||
|
:hide-toc:
|
||||||
|
|
||||||
=============
|
=============
|
||||||
Subscriptions
|
Subscriptions
|
||||||
=============
|
=============
|
||||||
|
|
||||||
Odoo *Subscriptions* is used to run recurring businesses: :ref:`sell new contracts
|
The Odoo **Subscriptions** app is designed to manage recurring revenue through subscription-based
|
||||||
<subscriptions/quotations>`, :doc:`upsell customers </applications/sales/subscriptions/upselling>`,
|
products or services. It supports automated invoicing, renewal management, and customer lifecycle
|
||||||
keep the churn under control, and :doc:`generate reports
|
tracking.
|
||||||
</applications/sales/subscriptions/reports>` on the main :abbr:`KPIs (Key Performance Indicators)`:
|
|
||||||
:abbr:`MRR (Monthly Recurring Revenue)`, :abbr:`ARR (Annual Recurring Revenue)`, retention, churn,
|
Subscriptions can be created manually or automatically through online sales, with varying options
|
||||||
etc.
|
for recurring billing. The app integrates with other Odoo modules such as **Invoicing**, **CRM**,
|
||||||
|
**Sales**, and **Helpdesk** to support end-to-end subscription workflows.
|
||||||
|
|
||||||
|
.. cards::
|
||||||
|
|
||||||
|
.. card:: Subscription plans
|
||||||
|
:target: subscriptions/plans
|
||||||
|
:large:
|
||||||
|
|
||||||
|
Customize subscription plan templates tailored to various product offerings
|
||||||
|
|
||||||
|
.. card:: Renew a subscription
|
||||||
|
:target: subscriptions/plans
|
||||||
|
:large:
|
||||||
|
|
||||||
|
Understand the core management activity for subscriptions
|
||||||
|
|
||||||
|
.. card:: Upsell a subscription
|
||||||
|
:target: subscriptions/plans
|
||||||
|
:large:
|
||||||
|
|
||||||
|
Offer more value for current subscribers on the same sales order
|
||||||
|
|
||||||
|
.. card:: Integrate subscriptions with eCommerce
|
||||||
|
:target: subscriptions/plans
|
||||||
|
:large:
|
||||||
|
|
||||||
|
Offer subscription products with an Odoo **eCommerce** app integration
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
- `Odoo Tutorials: Subscriptions <https://www.odoo.com/slides/subscription-20>`_
|
- `Odoo Tutorials: Subscriptions <https://www.odoo.com/slides/subscription-20>`_
|
||||||
- :doc:`/applications/sales/subscriptions/products`
|
|
||||||
- :doc:`/applications/sales/subscriptions/ecommerce`
|
Set up recurring plans
|
||||||
- :doc:`/applications/sales/subscriptions/plans`
|
======================
|
||||||
- :doc:`/applications/sales/subscriptions/upselling`
|
|
||||||
- :doc:`/applications/sales/subscriptions/renewals`
|
To get started with subscription products in Odoo, *recurring plans* (previously known as
|
||||||
- :doc:`/applications/sales/subscriptions/closing`
|
*recurrence periods*) must first be configured.
|
||||||
- :doc:`/applications/sales/subscriptions/automatic_alerts`
|
|
||||||
- :doc:`/applications/sales/subscriptions/scheduled_actions`
|
Recurring plans are the time windows in which subscriptions are active before they renew again.
|
||||||
- :doc:`/applications/sales/subscriptions/reports`
|
While a subscription is active, customers receive products or services, and may also have access to
|
||||||
|
additional benefits such as support desk triage. In terms of payment, these recurring plans
|
||||||
|
designate how often the customer is charged in order to maintain the benefits of their subscription.
|
||||||
|
|
||||||
|
To configure recurring plans, go to :menuselection:`Subscriptions app --> Configuration -->
|
||||||
|
Recurring Plans`.
|
||||||
|
|
||||||
|
By default, the **Subscriptions** app includes a number of common recurring plans already available,
|
||||||
|
such as :guilabel:`Monthly` and :guilabel:`Yearly`.
|
||||||
|
|
||||||
|
Create a new recurring plan by clicking :guilabel:`New` on the :guilabel:`Recurring Plans`
|
||||||
|
dashboard, to reveal a blank form where the plan :guilabel:`Name`, :guilabel:`DETAILS`,
|
||||||
|
:guilabel:`SELF-SERVICE` and :guilabel:`Pricing` field values are specified.
|
||||||
|
|
||||||
|
.. image:: subscriptions/recurring-plan-blank-form.png
|
||||||
|
:alt: A blank recurring plan form in the Odoo Subscriptions application.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
The `Days` unit of measure *cannot* be used as a :guilabel:`Billing Period` for subscription
|
||||||
|
products. The daily recurrence period in Odoo is designated for rentals, and **cannot** be added
|
||||||
|
to subscription-based sales orders.
|
||||||
|
|
||||||
|
This limitation is there to avoid sales orders that would generate daily invoices.
|
||||||
|
|
||||||
|
DETAILS section
|
||||||
|
---------------
|
||||||
|
|
||||||
|
After giving the recurring plan a suitable :guilabel:`Name` (e.g. `Monthly`, `Bi-weekly`,
|
||||||
|
`Quarterly`, etc.), proceed to the form's :guilabel:`DETAILS` section to fill out the following
|
||||||
|
configuration fields:
|
||||||
|
|
||||||
|
- :guilabel:`Billing Period`: determines the recurrence period of the recurring plan. Set the
|
||||||
|
numerical value in the text field and contextualize the quantity with a unit of time in the
|
||||||
|
corresponding drop-down menu, in :guilabel:`Weeks`, :guilabel:`Months`, or :guilabel:`Years`.
|
||||||
|
- :guilabel:`Automatic Closing`: a numerical value, in days, where the subscription is set to close
|
||||||
|
automatically if payment is not made.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
If a subscription is set to renew on the 1st of every month, and the :guilabel:`Automatic
|
||||||
|
Closing` value is set to `15` :guilabel:`Days`, then the subscription will close on the 16th of
|
||||||
|
that month if payment is not received.
|
||||||
|
|
||||||
|
- :guilabel:`Align to Period Start`: optionally force new and recurring subscription renewal dates
|
||||||
|
under this plan to the first day of what is defined in the :guilabel:`Billing Period`.
|
||||||
|
- :guilabel:`Company`: optional assignment, if the database has :doc:`Multi-company
|
||||||
|
<../general/multi_company>` functionality enabled. Assigning this value will make the recurring
|
||||||
|
plan available for that company's location, specifically.
|
||||||
|
- :guilabel:`Invoice Email Template`: assigns a specific email template to be used in subscriptions
|
||||||
|
invoicing communications. The default assignment here is `Invoice: Sending` which contains various
|
||||||
|
dynamic fields that autopopulate specific variables across the :guilabel:`Subject` field and
|
||||||
|
:guilabel:`Content` tab, such as the customer's name, invoice number, total amount invoiced, etc.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
Although this field is optional, it is recommended to use it since this type of communication
|
||||||
|
fulfills good business practices around price transparency, regular customer communication
|
||||||
|
(especially as it relates to charged amounts), and helps build contextual financial
|
||||||
|
documentation around recurring revenues.
|
||||||
|
|
||||||
|
.. figure:: subscriptions/subscriptions-invoice-email-template.png
|
||||||
|
:alt: An email template in Odoo used to send subscriptions invoicing messages to customers.
|
||||||
|
|
||||||
|
The `Invoice: Sending` email template is accessible by clicking the :icon:`fa-arrow-right`
|
||||||
|
(:guilabel:`Internal link`) that appears after hovering over the :guilabel:`Invoice Email
|
||||||
|
Template` drop-down field in the :guilabel:`Recurring Plans` form.
|
||||||
|
|
||||||
|
SELF-SERVICE section
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
The following optional fields enable customers to take administrative actions on their own
|
||||||
|
subscriptions. Enabling any of these options may decrease customer service request volume or
|
||||||
|
increase customer lifetime value (LTV).
|
||||||
|
|
||||||
|
- :guilabel:`Closable`: checking this box will give customers the power to close their own
|
||||||
|
subscriptions. Consider enabling this option to reduce customer service requests and improve the
|
||||||
|
overall customer experience; customers that can manage their own subscriptions in this way helps
|
||||||
|
offload tedious tasks for sales and support teams, and reduces the likelihood of negative reviews.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
Although this option is generally advisable to enable, sales teams with strong customer
|
||||||
|
offboarding processes may consider leaving this option unchecked in order to force an
|
||||||
|
interaction that might save the subscription or a different form of recurring revenue (such as
|
||||||
|
in the case of a lesser subscription or a new trial period with an alternative plan).
|
||||||
|
|
||||||
|
- :guilabel:`Add Products`: allows customers to add new products or edit existing product quantities
|
||||||
|
to their recurring sales orders, thereby enabling customer-driven upselling. When enabled,
|
||||||
|
:doc:`Upsell quotations <subscriptions/upselling>` are generated in Odoo whenever a customer
|
||||||
|
performs a quantitative adjustment on their sales order product lines.
|
||||||
|
|
||||||
|
- :guilabel:`Renew`: enabling this allows customers to manually create a :doc:`Renewal quotation
|
||||||
|
<subscriptions/renewals>` for their subscription.
|
||||||
|
- :guilabel:`Optional Plans`: adding values here from the drop-down field menu enables customers to
|
||||||
|
switch their subscription plans, in which case a new subscription quotation or renewal quote is
|
||||||
|
created to accommodate the change request.
|
||||||
|
|
||||||
|
Pricing tab
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Make product-specific pricing adjustments, as part of the recurring plan, by adding them to the
|
||||||
|
:guilabel:`Pricing` tab order lines. Sequentially add the :guilabel:`Products`, along with any
|
||||||
|
respective :guilabel:`Product Variants`, and then assign a :guilabel:`Pricelist` (if available) and
|
||||||
|
a :guilabel:`Recurring Price`.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Price rules that are added here take precedent over the default pricing information on the
|
||||||
|
subscription product's form. This is meant to accommodate deals, discounts, and similar pricing
|
||||||
|
adjustment strategies that would incentivize customers to purchase the recurring plan.
|
||||||
|
|
||||||
|
Smart buttons
|
||||||
|
-------------
|
||||||
|
|
||||||
|
At the top of the individual :guilabel:`Recurring Plans` form, are two smart buttons to aid in
|
||||||
|
navigating the recurring revenue sources attached to the plan:
|
||||||
|
|
||||||
|
- :guilabel:`Subscriptions`: shows the number of active subscriptions sales orders that fall under
|
||||||
|
the recurring plan. Clicking the button leads to a tabled list view, where each row hyperlinks to
|
||||||
|
a respective subscriptions sales order.
|
||||||
|
- :guilabel:`Subscription Items`: lists all the individual recurring subscription services that are
|
||||||
|
active, in an itemized fashion. :guilabel:`Subscription` and :guilabel:`Customer` values will
|
||||||
|
repeat it the customer ordered multiple subscriptions on the same sales order.
|
||||||
|
|
||||||
|
Product form configuration
|
||||||
|
==========================
|
||||||
|
|
||||||
|
With recurring plans set up, create a subscription product by navigating to
|
||||||
|
:menuselection:`Subscriptions app --> Products --> Products`, and click either an existing product
|
||||||
|
to edit, or make a new one by clicking :guilabel:`New` to open up the subscription product's form.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
By default, the :guilabel:`Subscriptions` option is already enabled, prompting Odoo to recognize
|
||||||
|
it as a subscription product. Be sure to leave the :guilabel:`Subscriptions` and
|
||||||
|
:guilabel:`Sales` options enabled.
|
||||||
|
|
||||||
|
.. image:: subscriptions/subscription-product-form.png
|
||||||
|
:alt: A basic subscription product form in Odoo Subscriptions application.
|
||||||
|
|
||||||
|
On the product form, configure the following items in the :guilabel:`General Information` tab so the
|
||||||
|
subscription product will function correctly:
|
||||||
|
|
||||||
|
- :guilabel:`Product type`: this value is typically set to a :guilabel:`Service`, however other
|
||||||
|
product types may be used depending on the purpose of the subscription (e.g., physical product box
|
||||||
|
subscriptions, eLearning course with supplemental physical goods, etc.).
|
||||||
|
- :doc:`Invoicing policy <sales/invoicing/invoicing_policy>`: set this value to when the customer
|
||||||
|
should be charged for their subscription.
|
||||||
|
- :guilabel:`Unit of Measure`: how the product should be counted in Odoo, for stock purposes. For
|
||||||
|
most subscriptions, the :abbr:`UoM (Unit of Measure)` will be :guilabel:`Units`.
|
||||||
|
- :guilabel:`Sales Price`: enter the recurring cost of the subscription that the customer will pay
|
||||||
|
per recurrence period.
|
||||||
|
|
||||||
|
Optionally set up information on the:
|
||||||
|
|
||||||
|
- :guilabel:`Create on Order` field: this enables secondary actions in Odoo such as creating a new
|
||||||
|
:guilabel:`Task` in a chosen :guilabel:`Project` :icon:`fa-building-o`, :guilabel:`Event
|
||||||
|
Registration` or :guilabel:`Course Access`. If none of the selectable actions in this field's
|
||||||
|
drop-down menu are needed, then choose :guilabel:`Nothing` for the field' value.
|
||||||
|
- :doc:`Attributes & Variants <sales/products_prices/products/variants>` tab if the subscription
|
||||||
|
contains multiple choices for customers (i.e. food delivery, tailored fashion boxes, etc.).
|
||||||
|
- :guilabel:`Purchase` tab if the product is sourced from a vendor, such as part of reseller
|
||||||
|
(retail) or subcontracting operations.
|
||||||
|
|
||||||
|
In the :guilabel:`Recurring Prices` tab, clarify the pricing options for the subscription. For each
|
||||||
|
option available, click :guilabel:`Add a price rule` to add a new row.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
Longer time :guilabel:`Recurring Plan` time periods are typically incentivized with cost savings.
|
||||||
|
Consider dropping the total :guilabel:`Recurring Price` values to offer customers a discount
|
||||||
|
while supporting the business's financial runway.
|
||||||
|
|
||||||
|
Last, if the subscription is meant to be sold on the **eCommerce** website, click the
|
||||||
|
:icon:`fa-globe` :menuselection:`Go To Website` smart button and in the product page header, click
|
||||||
|
the gray slider from :guilabel:`Unpublished` to the green :guilabel:`Published` status.
|
||||||
|
|
||||||
.. _subscriptions/quotations:
|
.. _subscriptions/quotations:
|
||||||
|
|
||||||
Subscription quotations
|
Create a subscriptions quotation
|
||||||
=======================
|
================================
|
||||||
|
|
||||||
|
Manually create a new customer subscription by navigating to either the :menuselection:`Sales` or
|
||||||
|
:menuselection:`Subscriptions` app dashboards, and then clicking :guilabel:`New`.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Products that have been marked as :guilabel:`Subscriptions` on their product forms, and are also
|
||||||
|
sold on the **eCommerce** website will *automatically* create and confirm subscription quotations
|
||||||
|
in the backend of Odoo.
|
||||||
|
|
||||||
.. important::
|
.. important::
|
||||||
Sales orders with a defined recurrence become subscriptions.
|
Sales orders with a defined recurring plan automatically become subscriptions.
|
||||||
|
|
||||||
To create a new subscription, click on :guilabel:`New` from the *Subscription* or the :doc:`Sales
|
On the quotation form, fill in the necessary fields such as :guilabel:`Customer` and
|
||||||
</applications/sales>` app. You can either:
|
:guilabel:`Recurring Plan`, as well as the :guilabel:`Order Lines` tab.
|
||||||
|
|
||||||
- Select a :doc:`subscription plan </applications/sales/subscriptions/plans>` to prefill the
|
Optionally, specify a:
|
||||||
quotation instantly, or
|
|
||||||
- Fill out the quotation normally, making sure to select a recurrence and an end date if necessary
|
- :doc:`Quotation Template <sales/sales_quotations/quote_template>`, if one is readily available to
|
||||||
and adding :doc:`recurrent products </applications/sales/subscriptions/products>`.
|
help populate the form fields.
|
||||||
|
- :guilabel:`Expiration` date, to indicate when the subscription offer is no longer valid.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
Expiration dates pair well with :doc:`discounts <sales/products_prices/prices/discounts>` to
|
||||||
|
incentivize faster purchases, since the discount will expire with the quotation if it's not
|
||||||
|
turned into a sales order within the specified date range.
|
||||||
|
|
||||||
|
- :doc:`Pricelist <sales/products_prices/prices/pricing>`, if one is available and appropriate to
|
||||||
|
use (i.e., summer sale discount, VIP customer, etc.).
|
||||||
|
- :guilabel:`Payment Terms`, to set a specified time window for when the subscription must be paid.
|
||||||
|
This is not to be confused for when the quotation is *confirmed* and becomes a sales order, to
|
||||||
|
where, payment may then be obtained immediately or within a certain amount of days, weeks, months,
|
||||||
|
etc.
|
||||||
|
|
||||||
|
.. image:: subscriptions/new-subscription-form.png
|
||||||
|
:alt: A completed example of a new subscription quotation in Odoo.
|
||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
You can define different invoice and delivery addresses by enabling the :doc:`Customer Addresses
|
Define different invoice and delivery addresses by enabling the :doc:`Customer Addresses
|
||||||
</applications/finance/accounting/customer_invoices/customer_addresses>` feature.
|
</applications/finance/accounting/customer_invoices/customer_addresses>` feature.
|
||||||
|
|
||||||
.. _subscriptions/confirmation:
|
.. _subscriptions/confirmation:
|
||||||
@@ -48,32 +269,16 @@ To create a new subscription, click on :guilabel:`New` from the *Subscription* o
|
|||||||
Confirmation
|
Confirmation
|
||||||
============
|
============
|
||||||
|
|
||||||
Send the quotation to the customer for confirmation by clicking on :guilabel:`Send by email`, or
|
Send the quotation to the customer for confirmation by clicking on :guilabel:`Send By Email`, or
|
||||||
confirm it immediately by clicking on :guilabel:`Confirm`.
|
confirm it immediately by clicking on :guilabel:`Confirm`.
|
||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
Click on :guilabel:`Customer Preview` to preview the customer portal where the customer can view
|
Click on :guilabel:`Preview` to preview the customer portal where the customer can view their
|
||||||
their quotation, sign and pay it, and communicate with you.
|
quotation, sign and pay it, and communicate with you.
|
||||||
|
|
||||||
.. _subscriptions/automatic-payments:
|
If an :guilabel:`Online signature` or :guilabel:`Online payment` is required to confirm the
|
||||||
|
quotation, set the checkboxes next to either (or both) of these labels in the :guilabel:`Other Info`
|
||||||
Automatic payments
|
tab, under the :guilabel:`SALES` section.
|
||||||
==================
|
|
||||||
|
|
||||||
You can require the customer to set an automatic payment method and pre-pay the subscription's first
|
|
||||||
occurrence before they can confirm their quotation. To do so, go to the :guilabel:`Other Info` tab
|
|
||||||
of the quotation and check the :guilabel:`Payment` option in the :guilabel:`Online confirmation`
|
|
||||||
field.
|
|
||||||
|
|
||||||
If you leave :guilabel:`Payment` unchecked, the customer doesn't have to pre-pay to start the
|
|
||||||
subscription. This means that the payment is not automatic and that the customer must pay each
|
|
||||||
invoice manually.
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
If the online confirmation requires a pre-payment, your customer can select only the
|
|
||||||
:ref:`payment providers <payment_providers/supported_providers>` that have the :ref:`tokenization
|
|
||||||
feature <payment_providers/tokenization>`. This ensures that the customer is automatically
|
|
||||||
charged at each new period.
|
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
- :doc:`/applications/finance/accounting/payments/online`
|
- :doc:`/applications/finance/accounting/payments/online`
|
||||||
@@ -82,7 +287,6 @@ invoice manually.
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:titlesonly:
|
:titlesonly:
|
||||||
|
|
||||||
subscriptions/products
|
|
||||||
subscriptions/ecommerce
|
subscriptions/ecommerce
|
||||||
subscriptions/plans
|
subscriptions/plans
|
||||||
subscriptions/upselling
|
subscriptions/upselling
|
||||||
|
|||||||
@@ -163,7 +163,6 @@ If :guilabel:`Create next activity` is selected in the :guilabel:`Action To Do`
|
|||||||
as the assignee(s) for the configured activity.
|
as the assignee(s) for the configured activity.
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
- :doc:`../subscriptions`
|
- :doc:`../subscriptions`
|
||||||
- :doc:`plans`
|
- :doc:`plans`
|
||||||
- :doc:`products`
|
- :doc:`../../essentials/in_app_purchase`
|
||||||
- :doc:`../../essentials/in_app_purchase`
|
|
||||||
|
|||||||
@@ -104,4 +104,3 @@ In addition, the specified :guilabel:`Close Reason` appears on the subscription
|
|||||||
.. seealso::
|
.. seealso::
|
||||||
- :doc:`../subscriptions`
|
- :doc:`../subscriptions`
|
||||||
- :doc:`plans`
|
- :doc:`plans`
|
||||||
- :doc:`products`
|
|
||||||
|
|||||||
@@ -5,14 +5,15 @@ Subscriptions in the eCommerce shop
|
|||||||
Subscription products can be sold in the Odoo *eCommerce* shop just like regular sales products.
|
Subscription products can be sold in the Odoo *eCommerce* shop just like regular sales products.
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
- :doc:`Configure subscription products </applications/sales/subscriptions/products>`
|
- :doc:`Configure subscription products </applications/sales/subscriptions>`
|
||||||
|
- :doc:`Product variants </applications/sales/sales/products_prices/products/variants>`
|
||||||
|
|
||||||
Selling eCommerce subscriptions
|
Selling eCommerce subscriptions
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
:doc:`Configure the subscription product <products>` as a regular recurring sales product. To
|
:doc:`Configure subscription products </applications/sales/subscriptions>` as a regular recurring
|
||||||
start selling the subscription in the eCommerce shop, click the :guilabel:`Go to Website` smart
|
sales product. To start selling the subscription in the eCommerce shop, click the :guilabel:`Go to
|
||||||
button to navigate to the product page.
|
Website` smart button to navigate to the product page.
|
||||||
|
|
||||||
From here, review the subscription product and its recurring periods. Then, toggle the switch in the
|
From here, review the subscription product and its recurring periods. Then, toggle the switch in the
|
||||||
upper-right corner from :guilabel:`Unpublished` to :guilabel:`Published`.
|
upper-right corner from :guilabel:`Unpublished` to :guilabel:`Published`.
|
||||||
|
|||||||
|
After Width: | Height: | Size: 49 KiB |
@@ -1,158 +0,0 @@
|
|||||||
=====================
|
|
||||||
Subscription products
|
|
||||||
=====================
|
|
||||||
|
|
||||||
By closely integrating with the Odoo *Sales* app, the *Subscriptions* app enables users to sell
|
|
||||||
subscription products alongside regular sales products. While regular products are sold on a
|
|
||||||
one-time basis, subscription products are sold on a renewing basis, generating recurring revenue.
|
|
||||||
|
|
||||||
In Odoo, subscription products are also called *recurring* products.
|
|
||||||
|
|
||||||
Configure recurrence periods
|
|
||||||
============================
|
|
||||||
|
|
||||||
To get started with subscriptions, the *recurrence periods* must be properly configured, as needed.
|
|
||||||
|
|
||||||
Recurrence periods are the time periods in which subscriptions renew. They designate how often the
|
|
||||||
customer pays for (and receives) subscription products.
|
|
||||||
|
|
||||||
To configure recurrence periods, go to :menuselection:`Subscriptions app --> Configuration -->
|
|
||||||
Recurrence periods`.
|
|
||||||
|
|
||||||
.. image:: products/recurrence-periods-page.png
|
|
||||||
:align: center
|
|
||||||
:alt: The recurrence periods page in Odoo Subscriptions application.
|
|
||||||
|
|
||||||
The *Subscriptions* app comes with some basic recurrence periods already configured:
|
|
||||||
|
|
||||||
- :guilabel:`Monthly`
|
|
||||||
- :guilabel:`Quarterly`
|
|
||||||
- :guilabel:`Weekly`
|
|
||||||
- :guilabel:`2 Weeks`
|
|
||||||
- :guilabel:`Yearly`
|
|
||||||
- :guilabel:`3 Years`
|
|
||||||
- :guilabel:`5 Years`
|
|
||||||
|
|
||||||
New recurrence periods can be added and/or edited at any time.
|
|
||||||
|
|
||||||
To create a new recurrence period, click :guilabel:`New` on the :guilabel:`Recurrence Periods` page.
|
|
||||||
Doing so reveals a blank recurrence period form.
|
|
||||||
|
|
||||||
.. image:: products/recurrence-period-form.png
|
|
||||||
:align: center
|
|
||||||
:alt: A recurrence period form in Odoo Subscriptions application.
|
|
||||||
|
|
||||||
Then, type in the :guilabel:`Name` and :guilabel:`Duration` of the recurrence period, and select the
|
|
||||||
:guilabel:`Unit` that defines the duration.
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
The unit :guilabel:`Days` *cannot* be used as a recurrence period on subscriptions. The daily
|
|
||||||
recurrence is meant for rentals, and **cannot** be added on recurring subscription sales orders.
|
|
||||||
|
|
||||||
This limitation is there to avoid sales orders that would generate daily invoices.
|
|
||||||
|
|
||||||
Product form configuration
|
|
||||||
==========================
|
|
||||||
|
|
||||||
To create a new subscription product, navigate to :menuselection:`Subscriptions app --> Products -->
|
|
||||||
Products`, and click :guilabel:`New`.
|
|
||||||
|
|
||||||
Doing so reveals a blank product form, which can be configured and customized in a number of ways.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
By default, the :guilabel:`Recurring` option is already enabled, prompting Odoo to recognize it
|
|
||||||
as a subscription product. Be sure to leave the :guilabel:`Recurring` and :guilabel:`Can be Sold`
|
|
||||||
options enabled.
|
|
||||||
|
|
||||||
The :guilabel:`Product Type` field is set to :guilabel:`Service` by default, as well. However,
|
|
||||||
subscription products *can* be set to other types, if needed.
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
When creating a physical subscription product in the Odoo **Sales** application, the
|
|
||||||
:guilabel:`Invoicing Policy` must be set to :guilabel:`Ordered quantities`.
|
|
||||||
|
|
||||||
Setting it to :guilabel:`Delivered quantities` causes issues with invoice creation, and disrupts
|
|
||||||
the subscription process.
|
|
||||||
|
|
||||||
Similarly, when creating a physical subscription product in the Odoo **Subscriptions**
|
|
||||||
application, the :guilabel:`Invoicing Policy` must **not** be set to :guilabel:`Based on
|
|
||||||
Delivered Quantity (Manual)` for the same reasons.
|
|
||||||
|
|
||||||
.. image:: products/subscription-product-form.png
|
|
||||||
:align: center
|
|
||||||
:alt: A basic subscription product form in Odoo Subscriptions application.
|
|
||||||
|
|
||||||
Time-based pricing
|
|
||||||
------------------
|
|
||||||
|
|
||||||
Once the desired fields in the :guilabel:`General Information` tab have been entered, click the
|
|
||||||
:guilabel:`Time-based pricing` tab on the product form.
|
|
||||||
|
|
||||||
.. image:: products/time-based-pricing-tab.png
|
|
||||||
:align: center
|
|
||||||
:alt: The time-based pricing tab on a subscription product form in Odoo Subscriptions.
|
|
||||||
|
|
||||||
From here, click :guilabel:`Add a price` to begin defining recurring prices.
|
|
||||||
|
|
||||||
In the :guilabel:`Period` column, select a desired recurrence period. In the :guilabel:`Pricelist`
|
|
||||||
column, select a pricelist, if needed. Then, in the :guilabel:`Price` column, enter the price for
|
|
||||||
that recurrence period.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
:guilabel:`Daily` and :guilabel:`Hourly` periods **cannot** be used on recurring products.
|
|
||||||
|
|
||||||
.. image:: products/validation-error-popup.png
|
|
||||||
:align: center
|
|
||||||
:alt: The validation error pop-up window that appears in Odoo Subscriptions.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
There is *no limit* to how many lines can be added to the :guilabel:`Time-based pricing` table.
|
|
||||||
|
|
||||||
.. tip::
|
|
||||||
An existing product can be made into a subscription product, simply by marking it as
|
|
||||||
:guilabel:`Recurring`, and configuring :guilabel:`Time-based pricing` on the product form.
|
|
||||||
|
|
||||||
Pricelists
|
|
||||||
~~~~~~~~~~
|
|
||||||
|
|
||||||
:doc:`Pricelists <../sales/products_prices/prices/pricing>` can be used with subscription products
|
|
||||||
to give special pricing to customers included in pricelists.
|
|
||||||
|
|
||||||
This can be configured either in the :guilabel:`Time-based pricing` tab of the product form, or on
|
|
||||||
the pricelist form in the *Sales* application.
|
|
||||||
|
|
||||||
To create recurring price rules for specific pricelists in the :guilabel:`Time-based pricing` tab of
|
|
||||||
the product form, select a pricelist in the :guilabel:`Pricelist` column.
|
|
||||||
|
|
||||||
.. image:: products/pricelist-time-based-pricing.png
|
|
||||||
:align: center
|
|
||||||
:alt: Pricelists in the "Time-based pricing" tab of the product form.
|
|
||||||
|
|
||||||
When pricelists are added to the :guilabel:`Time-based pricing` tab, the pricelist form in the
|
|
||||||
*Sales* app is automatically updated.
|
|
||||||
|
|
||||||
Time-based pricing rules can also be configured directly on the pricelist form.
|
|
||||||
|
|
||||||
To do this, go to :menuselection:`Sales app --> Products --> Pricelists`, and select a pricelist (or
|
|
||||||
click :guilabel:`New` to create a new pricelist).
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
Pricelists are also accessible through the Odoo *Subscriptions* app by following the same menu
|
|
||||||
steps.
|
|
||||||
|
|
||||||
Then, on the pricelist form, under the :guilabel:`Time-based rules` tab, click :guilabel:`Add a
|
|
||||||
line`.
|
|
||||||
|
|
||||||
.. image:: products/pricelist-form-time-based-rules-tab.png
|
|
||||||
:align: center
|
|
||||||
:alt: The time-based rules tab on a pricelist form in Odoo Sales.
|
|
||||||
|
|
||||||
Then, select a subscription product in the :guilabel:`Products` column, and select a recurrence
|
|
||||||
period in the :guilabel:`Period` column. Lastly, enter a :guilabel:`Price` for that particular
|
|
||||||
product and period. Add as many lines as needed.
|
|
||||||
|
|
||||||
When :guilabel:`Time-based rules` are added to the pricelist form, the :guilabel:`Time-based
|
|
||||||
pricing` tab of the product form is automatically updated.
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
:doc:`ecommerce`
|
|
||||||
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 22 KiB |
@@ -127,4 +127,3 @@ related to this specific subscription.
|
|||||||
.. seealso::
|
.. seealso::
|
||||||
- :doc:`../subscriptions`
|
- :doc:`../subscriptions`
|
||||||
- :doc:`plans`
|
- :doc:`plans`
|
||||||
- :doc:`products`
|
|
||||||
|
|||||||
@@ -402,4 +402,3 @@ Analysis` reporting page are:
|
|||||||
.. seealso::
|
.. seealso::
|
||||||
- :doc:`../subscriptions`
|
- :doc:`../subscriptions`
|
||||||
- :doc:`plans`
|
- :doc:`plans`
|
||||||
- :doc:`products`
|
|
||||||
|
|||||||
@@ -185,5 +185,4 @@ For example, if the next invoice date is July 1st, and the :guilabel:`Automatic
|
|||||||
.. seealso::
|
.. seealso::
|
||||||
- :doc:`../subscriptions`
|
- :doc:`../subscriptions`
|
||||||
- :doc:`plans`
|
- :doc:`plans`
|
||||||
- :doc:`products`
|
|
||||||
- :doc:`automatic_alerts`
|
- :doc:`automatic_alerts`
|
||||||
|
|||||||
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 28 KiB |
@@ -106,4 +106,3 @@ Status`.
|
|||||||
.. seealso::
|
.. seealso::
|
||||||
- :doc:`../subscriptions`
|
- :doc:`../subscriptions`
|
||||||
- :doc:`plans`
|
- :doc:`plans`
|
||||||
- :doc:`products`
|
|
||||||
|
|||||||
@@ -162,6 +162,7 @@ applications/sales/subscriptions/sales_flow/closing.rst applications/sales/subsc
|
|||||||
applications/sales/subscriptions/sales_flow/create_a_quotation.rst applications/sales/subscriptions.rst # subscriptions/sales_flow/create_a_quotation --> subscriptions
|
applications/sales/subscriptions/sales_flow/create_a_quotation.rst applications/sales/subscriptions.rst # subscriptions/sales_flow/create_a_quotation --> subscriptions
|
||||||
applications/sales/subscriptions/sales_flow/renewals.rst applications/sales/subscriptions/renewals.rst # sales_flow/* --> *
|
applications/sales/subscriptions/sales_flow/renewals.rst applications/sales/subscriptions/renewals.rst # sales_flow/* --> *
|
||||||
applications/sales/subscriptions/sales_flow/upselling.rst applications/sales/subscriptions/upselling.rst # sales_flow/* --> *
|
applications/sales/subscriptions/sales_flow/upselling.rst applications/sales/subscriptions/upselling.rst # sales_flow/* --> *
|
||||||
|
applications/sales/subscriptions/products.rst applications/sales/subscriptions.rst # subscriptions/products --> subscriptions
|
||||||
|
|
||||||
# applications/services
|
# applications/services
|
||||||
|
|
||||||
|
|||||||