Skip to content

Commit 2ad225a

Browse files
[REF] Subscriptions: rewrite overview, integrate products page
X-original-commit: 16a969e
1 parent 5dcb8e7 commit 2ad225a

19 files changed

+198
-41
lines changed

content/applications/sales/sales/products_prices/prices/pricing.rst

+21
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ modified.
3434
After clicking the checkbox beside the :guilabel:`Pricelists` feature, select one of those two
3535
options, then click :guilabel:`Save` to save all changes.
3636

37+
.. _sales/product_prices/pricelist:
38+
3739
Pricelists
3840
==========
3941

@@ -135,8 +137,17 @@ for detailed steps on how to add advanced price rules to a pricelist.
135137
Recurring Prices tab
136138
--------------------
137139

140+
<<<<<<< 5dcb8e7bb4e97a3967abf3e48749e80f2351372b
138141
Recurring prices are specifically used with :doc:`subscription products
139142
<../../../subscriptions/products>`.
143+
||||||| 0625fa1d2b75cac1bd6858da0b25695055be23b7
144+
Time-based rules are used specifically with :doc:`subscription products
145+
</applications/sales/subscriptions/products>`. Be sure to check out the Odoo *Subscriptions*
146+
:doc:`documentation </applications/sales/subscriptions>`.
147+
=======
148+
Time-based rules are used specifically with subscription products. Be sure to check out the Odoo
149+
:doc:`Subscriptions </applications/sales/subscriptions>` documentation for more information.
150+
>>>>>>> aca3c2b1b8775310e852bdc874afc1e43af936a6
140151

141152
Under the :guilabel:`Recurring Prices` tab, the same functionality of the :guilabel:`Price Rules`
142153
tab is present. The only difference being that a recurring time period can be applied in the
@@ -208,9 +219,19 @@ Lastly, there is the option to add an :guilabel:`E-commerce Promotional Code`. T
208219
in the desired promo code that, when entered during the checkout process, applies the pricelist to
209220
the customer, even if the customer does not fall into the previously-specified criteria.
210221

222+
<<<<<<< 5dcb8e7bb4e97a3967abf3e48749e80f2351372b
211223
Then, in the :guilabel:`Discounts` section, there is a :guilabel:`Discount Policy` field with two
212224
options to choose from: :guilabel:`Discount included in the price` or :guilabel:`Show public price &
213225
discount to the customer`.
226+
||||||| 0625fa1d2b75cac1bd6858da0b25695055be23b7
227+
Show discount percentage to customers
228+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
229+
=======
230+
.. _sales/products_prices/discounts:
231+
232+
Show discount percentage to customers
233+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
234+
>>>>>>> aca3c2b1b8775310e852bdc874afc1e43af936a6
214235

215236
If :guilabel:`Discount included in the price` is selected, the price shown to the customer already
216237
accounts for the discount being applied. However, if :guilabel:`Show public price & discount to the

content/applications/sales/subscriptions.rst

+157-37
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,47 @@
11
:show-content:
2+
:hide-toc:
23

34
=============
45
Subscriptions
56
=============
67

7-
Odoo *Subscriptions* is used to run recurring businesses: :ref:`sell new contracts
8-
<subscriptions/quotations>`, :doc:`upsell customers </applications/sales/subscriptions/upselling>`,
9-
keep the churn under control, and :doc:`generate reports
10-
</applications/sales/subscriptions/reports>` on the main :abbr:`KPIs (Key Performance Indicators)`:
11-
:abbr:`MRR (Monthly Recurring Revenue)`, :abbr:`ARR (Annual Recurring Revenue)`, retention, churn,
12-
etc.
8+
The Odoo **Subscriptions** app is designed to manage recurring revenue through subscription-based
9+
products or services. It supports automated invoicing, renewal management, and customer lifecycle
10+
tracking.
11+
12+
Subscriptions can be created manually or automatically through online sales, with varying options
13+
for recurring billing. The app integrates with other Odoo modules such as **Invoicing**, **CRM**,
14+
**Sales**, and **Helpdesk** to support end-to-end subscription workflows.
15+
16+
.. cards::
17+
18+
.. card:: Subscription plans
19+
:target: subscriptions/plans
20+
:large:
21+
22+
Customize subscription plan templates tailored to various product offerings
23+
24+
.. card:: Renew a subscription
25+
:target: subscriptions/plans
26+
:large:
27+
28+
Understand the core management activity for subscriptions
29+
30+
.. card:: Upsell a subscription
31+
:target: subscriptions/plans
32+
:large:
33+
34+
Offer more value for current subscribers on the same sales order
35+
36+
.. card:: Integrate subscriptions with eCommerce
37+
:target: subscriptions/plans
38+
:large:
39+
40+
Offer subscription products with an Odoo **eCommerce** app integration
1341

1442
.. seealso::
1543
- `Odoo Tutorials: Subscriptions <https://www.odoo.com/slides/subscription-20>`_
44+
<<<<<<< 5dcb8e7bb4e97a3967abf3e48749e80f2351372b
1645
- :doc:`/applications/sales/subscriptions/products`
1746
- :doc:`/applications/sales/subscriptions/ecommerce`
1847
- :doc:`/applications/sales/subscriptions/plans`
@@ -22,22 +51,131 @@ etc.
2251
- :doc:`/applications/sales/subscriptions/automatic_alerts`
2352
- :doc:`/applications/sales/subscriptions/scheduled_actions`
2453
- :doc:`/applications/sales/subscriptions/reports`
54+
||||||| 0625fa1d2b75cac1bd6858da0b25695055be23b7
55+
- :doc:`/applications/sales/subscriptions/products`
56+
- :doc:`/applications/sales/subscriptions/ecommerce`
57+
- :doc:`/applications/sales/subscriptions/plans`
58+
- :doc:`/applications/sales/subscriptions/upselling`
59+
- :doc:`/applications/sales/subscriptions/renewals`
60+
- :doc:`/applications/sales/subscriptions/closing`
61+
- :doc:`/applications/sales/subscriptions/automatic_alerts`
62+
- :doc:`/applications/sales/subscriptions/reports`
63+
=======
64+
65+
Set up recurrence periods
66+
=========================
67+
68+
To get started with subscription products in Odoo, *recurrence periods* must first be configured.
69+
70+
Recurrence periods are the time windows in which subscriptions are active before they renew again.
71+
While a subscription is active, customers receive products or services, and may also have access to
72+
additional benefits such as support desk triage. In terms of payment, these recurrence periods
73+
designate how often the customer is charged in order to maintain the benefits of their subscription.
74+
75+
To configure recurrence periods, go to :menuselection:`Subscriptions app --> Configuration -->
76+
Recurrence periods`.
77+
78+
By default, the **Subscriptions** app includes a number of common recurrence periods already
79+
available, such as :guilabel:`Monthly` and :guilabel:`Yearly`.
80+
81+
Create new recurrence periods by clicking :guilabel:`NEW` on the :guilabel:`Recurrence Periods`
82+
dashboard, to reveal a blank form where the period :guilabel:`Name`, :guilabel:`Duration` and
83+
:guilabel:`Unit` values are specified.
84+
85+
.. image:: subscriptions/recurrence-period-blank-form.png
86+
:alt: A blank recurrence period form in the Odoo Subscriptions application.
87+
88+
.. important::
89+
The unit :guilabel:`Days` *cannot* be used as a recurrence period for subscription products. The
90+
daily recurrence period in Odoo is designated for rentals, and **cannot** be added to
91+
subscription-based sales orders.
92+
93+
This limitation is there to avoid sales orders that would generate daily invoices.
94+
95+
Product form configuration
96+
==========================
97+
98+
With recurrence periods set up, create a subscription product by navigating to
99+
:menuselection:`Subscriptions app --> Subscriptions --> Products`, and either clicking an existing
100+
product to turn into a subscription, or by clicking :guilabel:`NEW` to open up a blank product form.
101+
102+
.. note::
103+
By default, the :guilabel:`Recurring` option is already enabled, prompting Odoo to recognize it
104+
as a subscription product. Be sure to leave the :guilabel:`Recurring` and :guilabel:`Can be Sold`
105+
options enabled.
106+
107+
.. image:: subscriptions/subscription-product-form.png
108+
:alt: A basic subscription product form in Odoo Subscriptions application.
109+
110+
On the product form, configure the following items in the :guilabel:`General Information` tab so the
111+
subscription product will function correctly:
112+
113+
- :guilabel:`Recurring`: check this box to turn the product into a subscription in Odoo.
114+
- :guilabel:`Product type`: this value is typically set to a :guilabel:`Service`, however other
115+
product types may be used (e.g., physical product box subscriptions, eLearning course, etc.).
116+
- :doc:`Invoicing policy <sales/invoicing/invoicing_policy>`: set this value to when the customer
117+
should be charged for their subscription.
118+
- :guilabel:`Unit of Measure`: how the product should be counted in Odoo, for stock purposes. For
119+
most subscriptions, the :abbr:`UoM (Unit of Measure)` will be :guilabel:`Units`.
120+
- :guilabel:`Sales Price`: enter the recurring cost of the subscription that the customer will pay
121+
per recurrence period.
122+
123+
Optionally set up information on the :doc:`Attributes & Variants
124+
<sales/products_prices/products/variants>` tab if the subscription contains multiple choices for
125+
customers (i.e. food delivery, tailored fashion boxes, etc.).
126+
127+
In the :guilabel:`Time-based pricing` tab, clarify the pricing options for the subscription. For
128+
each option available, click :guilabel:`Add a price` to add a new row.
129+
130+
.. tip::
131+
Longer time :guilabel:`Period` options are typically incentivized with cost savings. Consider
132+
dropping the total :guilabel:`Price` values to offer customers a discount while supporting the
133+
business's financial runway.
134+
135+
Last, if the subscription is meant to be purchased on the **eCommerce** website, click the
136+
:icon:`fa-globe` :menuselection:`Go To Website` smart button and in the product page header, click
137+
the gray slider from :guilabel:`Unpublished` to the green :guilabel:`Published` status.
138+
>>>>>>> aca3c2b1b8775310e852bdc874afc1e43af936a6
25139

26140
.. _subscriptions/quotations:
27141

28-
Subscription quotations
29-
=======================
142+
Create a subscriptions quotation
143+
================================
144+
145+
Manually create a new customer subscription by navigating to either the :menuselection:`Sales` or
146+
:menuselection:`Subscriptions` app dashboards, and then clicking :guilabel:`NEW`.
147+
148+
.. note::
149+
Products that have been marked as :guilabel:`Recurring` on their product forms, and are also sold
150+
on the **eCommerce** website will *automatically* create and confirm subscription quotations in
151+
the backend of Odoo.
30152

31153
.. important::
32-
Sales orders with a defined recurrence become subscriptions.
154+
Sales orders with a defined recurrence period automatically become subscriptions.
155+
156+
On the quotation form, fill in the necessary fields such as :guilabel:`Customer` and
157+
:guilabel:`Recurrence`, as well as the :guilabel:`Order Lines` tab.
158+
159+
Optionally, specify a:
160+
161+
- :doc:`Quotation Template <sales/send_quotations/quote_template>`, if one is readily available to
162+
help populate the form fields.
163+
- :guilabel:`Expiration` date, to indicate when the subscription offer is no longer valid.
33164

34-
To create a new subscription, click on :guilabel:`New` from the *Subscription* or the :doc:`Sales
35-
</applications/sales>` app. You can either:
165+
.. tip::
166+
Expiration dates pair well with :ref:`discounts <sales/products_prices/discounts>` to
167+
incentivize faster purchases, since the discount will expire with the quotation if it's not
168+
turned into a sales order within the specified date range.
36169

37-
- Select a :doc:`subscription plan </applications/sales/subscriptions/plans>` to prefill the
38-
quotation instantly, or
39-
- Fill out the quotation normally, making sure to select a recurrence and an end date if necessary
40-
and adding :doc:`recurrent products </applications/sales/subscriptions/products>`.
170+
- :ref:`Pricelist <sales/product_prices/pricelist>`, if one is available and appropriate to use
171+
(i.e., summer sale discount, VIP customer, etc.).
172+
- :guilabel:`Payment Terms`, to set a specified time window for when the subscription must be paid.
173+
This is not to be confused for when the quotation is *confirmed* and becomes a sales order, to
174+
where, payment may then be obtained immediately or within a certain amount of days, weeks, months,
175+
etc.
176+
177+
.. image:: subscriptions/new-subscription-form.png
178+
:alt: A completed example of a new subscription quotation in Odoo.
41179

42180
.. tip::
43181
You can define different invoice and delivery addresses by enabling the :doc:`Customer Addresses
@@ -48,37 +186,19 @@ To create a new subscription, click on :guilabel:`New` from the *Subscription* o
48186
Confirmation
49187
============
50188

51-
Send the quotation to the customer for confirmation by clicking on :guilabel:`Send by email`, or
52-
confirm it immediately by clicking on :guilabel:`Confirm`.
189+
Send the quotation to the customer for confirmation by clicking on :guilabel:`SEND BY EMAIL`, or
190+
confirm it immediately by clicking on :guilabel:`CONFIRM`.
53191

54192
.. tip::
55193
Click on :guilabel:`Customer Preview` to preview the customer portal where the customer can view
56194
their quotation, sign and pay it, and communicate with you.
57195

58-
.. _subscriptions/automatic-payments:
59-
60-
Automatic payments
61-
==================
62-
63-
You can require the customer to set an automatic payment method and pre-pay the subscription's first
64-
occurrence before they can confirm their quotation. To do so, go to the :guilabel:`Other Info` tab
65-
of the quotation and check the :guilabel:`Payment` option in the :guilabel:`Online confirmation`
66-
field.
67-
68-
If you leave :guilabel:`Payment` unchecked, the customer doesn't have to pre-pay to start the
69-
subscription. This means that the payment is not automatic and that the customer must pay each
70-
invoice manually.
71-
72-
.. important::
73-
If the online confirmation requires a pre-payment, your customer can select only the
74-
:ref:`payment providers <payment_providers/supported_providers>` that have the :ref:`tokenization
75-
feature <payment_providers/tokenization>`. This ensures that the customer is automatically
76-
charged at each new period.
196+
If a signature or a payment is required to confirm the quotation, set either (or both) of these
197+
options in the :guilabel:`Other Info` tab, next to the :guilabel:`Online confirmation` field.
77198

78199
.. toctree::
79200
:titlesonly:
80201

81-
subscriptions/products
82202
subscriptions/ecommerce
83203
subscriptions/plans
84204
subscriptions/upselling

content/applications/sales/subscriptions/automatic_alerts.rst

+11
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,18 @@ If :guilabel:`Create next activity` is selected in the :guilabel:`Action To Do`
163163
as the assignee(s) for the configured activity.
164164

165165
.. seealso::
166+
<<<<<<< 5dcb8e7bb4e97a3967abf3e48749e80f2351372b
166167
- :doc:`../subscriptions`
167168
- :doc:`plans`
168169
- :doc:`products`
169170
- :doc:`../../essentials/in_app_purchase`
171+
||||||| 0625fa1d2b75cac1bd6858da0b25695055be23b7
172+
- :doc:`../subscriptions`
173+
- :doc:`plans`
174+
- :doc:`products`
175+
- :doc:`../../essentials/in_app_purchase`
176+
=======
177+
- :doc:`../subscriptions`
178+
- :doc:`plans`
179+
- :doc:`../../essentials/in_app_purchase`
180+
>>>>>>> aca3c2b1b8775310e852bdc874afc1e43af936a6

content/applications/sales/subscriptions/closing.rst

-1
Original file line numberDiff line numberDiff line change
@@ -104,4 +104,3 @@ In addition, the specified :guilabel:`Close Reason` appears on the subscription
104104
.. seealso::
105105
- :doc:`../subscriptions`
106106
- :doc:`plans`
107-
- :doc:`products`

content/applications/sales/subscriptions/ecommerce.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ To add more recurrence periods to the eCommerce product page, create a *product
1414
recurrence period.
1515

1616
.. seealso::
17-
- :doc:`Configure subscription products </applications/sales/subscriptions/products>`
17+
- :doc:`Configure subscription products </applications/sales/subscriptions>`
1818
- :doc:`Product variants </applications/sales/sales/products_prices/products/variants>`
1919

2020
Create recurrence periods as product variants
Loading
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading

content/applications/sales/subscriptions/renewals.rst

-1
Original file line numberDiff line numberDiff line change
@@ -127,4 +127,3 @@ related to this specific subscription.
127127
.. seealso::
128128
- :doc:`../subscriptions`
129129
- :doc:`plans`
130-
- :doc:`products`

content/applications/sales/subscriptions/reports.rst

-1
Original file line numberDiff line numberDiff line change
@@ -402,4 +402,3 @@ Analysis` reporting page are:
402402
.. seealso::
403403
- :doc:`../subscriptions`
404404
- :doc:`plans`
405-
- :doc:`products`
Loading

content/applications/sales/subscriptions/upselling.rst

+7
Original file line numberDiff line numberDiff line change
@@ -106,4 +106,11 @@ Status`.
106106
.. seealso::
107107
- :doc:`../subscriptions`
108108
- :doc:`plans`
109+
<<<<<<< 5dcb8e7bb4e97a3967abf3e48749e80f2351372b
109110
- :doc:`products`
111+
||||||| 0625fa1d2b75cac1bd6858da0b25695055be23b7
112+
- :doc:`products`
113+
114+
=======
115+
116+
>>>>>>> aca3c2b1b8775310e852bdc874afc1e43af936a6

redirects/16.0.txt

+1
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ applications/sales/subscriptions/sales_flow/closing.rst applications/sales/subsc
162162
applications/sales/subscriptions/sales_flow/create_a_quotation.rst applications/sales/subscriptions.rst # subscriptions/sales_flow/create_a_quotation --> subscriptions
163163
applications/sales/subscriptions/sales_flow/renewals.rst applications/sales/subscriptions/renewals.rst # sales_flow/* --> *
164164
applications/sales/subscriptions/sales_flow/upselling.rst applications/sales/subscriptions/upselling.rst # sales_flow/* --> *
165+
applications/sales/subscriptions/products.rst applications/sales/subscriptions.rst # subscriptions/products --> subscriptions
165166

166167
# applications/services
167168

0 commit comments

Comments
 (0)