Skip to content

Conversation

theRealThagomizer
Copy link
Contributor

Big rework of the "Renew subscriptions" page

  • Added appropriate icons to all smart button guilabels
  • Removed unnecessary language from throughout
  • Reorganized content into more logical sections (e.g., all "See Also" sections moved to end and merged)
  • Reworked "Important" section at end with more accurate language, pending a rewrite of the "Scheduled actions" page
  • Cleaned up the RST, ensuring guilabels are used correctly
  • Cleaned up the RST, standardizing between bolding and italicizing for emphasis

This 18.0 PR can be FWP up to master.

Not sure if this reaches 50% revised, so I've marked it 2 points for now.

@robodoo
Copy link
Collaborator

robodoo commented Oct 2, 2025

Pull request status dashboard

@C3POdoo C3POdoo requested a review from a team October 2, 2025 23:40
Copy link
Contributor

@Felicious Felicious left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @theRealThagomizer!

Since this is a longer doc, I’m splitting my review into several passes so we can cover everything thoroughly.

In this round, I left comments on overall structure, plus a few minor formatting and style notes. Quick notes:

  • no need to capitalize Odoo terms like "renewal quotation" and "chatter" when we're referring to them. Unless we're specifically referring to the "Renewal Quotation" status on the sales order.
  • "sales order" rather than "sale order" as a singular term

I also have a question about scope: yesterday in the office we discussed moving the detailed instructions about how contracts in exception work (and the common pitfalls) into the Scheduled Actions doc. Is that still the plan? I want to make sure I understand whether we’re handling this across two PRs, with this one focused mainly on improving this doc.

If that’s the case, I’m curious why you modified the content in the important block instead of shortening it. Are you planning to move that content over in a follow-up PR? Knowing your plan will help me review more effectively. (:

Once you’ve addressed these comments, feel free to re-tag me for another review—it’s almost there!

Comment on lines 5 to 9
Subscription renewal is the process customers follow when they willingly choose to continue a
subscription product or service. Subscribers go through the renewal process at different intervals
-- weekly, monthly, annually, etc. -- depending on the duration of the agreed-upon contract. Most
companies that offer subscriptions prefer to automate the renewal process for customers. However,
manual subscription renewals are still used in some cases.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

muchhh better rewrite!!!!

Comment on lines 37 to 33

.. image:: renewals/renew-button.png
:align: center
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn’t need to be updated for this PR, since the images are still accurate in version 18. But just for future reference: we’ve updated our style guidelines to stop using red boxes to mark up screenshots. For your next PRs, please take screenshots without them.

@theRealThagomizer theRealThagomizer added 3 and removed 2 labels Oct 3, 2025
@theRealThagomizer theRealThagomizer force-pushed the 18.0-subscriptions-renew-subscription-revisions-thjud branch from 01f832d to b6ad1e1 Compare October 3, 2025 23:02
@theRealThagomizer
Copy link
Contributor Author

@Felicious I made the earlier edits and adjusted the way the info is presented in the doc. I can also see that I didn't format the headings properly, so I've made a note to myself to fix that ASAP. -_-;

Co-authored-by: Felicia Kuan <feku@odoo.com>
@theRealThagomizer theRealThagomizer force-pushed the 18.0-subscriptions-renew-subscription-revisions-thjud branch from b6ad1e1 to cf3db81 Compare October 6, 2025 23:22
@C3POdoo C3POdoo requested review from a team October 6, 2025 23:35
Copy link
Contributor

@Felicious Felicious left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm very proud of your improvements made to this doc, @theRealThagomizer!

The flow is much clearer now ✨ You’ve defined the prerequisite conditions for a sub up front, made the renewal steps easier to follow, and added helpful clarifications about the quotation state that really improved readability. I also appreciate how you trimmed the unnecessary side-questing about other smart buttons! it keeps the doc focused and purposeful. Excellent work! 🙌

The content is awesome; I'm marking this changes requested for really minor technical RST stuff. Since you've removed the files in the RST, we also want to remove files from the renewals folder. After you remove those, can you push up your changes and tag me for another review? It'll be a super quick double-check!

(Tip: run make review and enter the image folder to check which image files in the folder was not used in the .rst file! Below is a screenshot of it yelling at me that mrr-smart-button.png isn't used)

Image

Comment on lines +11 to 14
With the Odoo :guilabel:`Subscriptions` application, a company can manage all of its subscriptions
in one place. Renewals can be processed automatically or manually, include additional products or
upsells per renewal order, and be filtered in batch views to locate customers who need to renew
their subscriptions.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Amazing paragraph! 💯 this clearly explains the value of the renew feature and nicely distinguishes between manual and automatic renewals. I also like the mention of batch view filters to locate customers who need to renew.

Just a small note: since let's cover how to set up automatic renewals and how to locate customers that need to renew subscriptions in a future PR. And then once the doc section is written, add a ref link here so the reader can jump to those related documents if they're interested in setting it up! Let's talk about that after we merge this.

The only change I have here is that instead of guilabels, when referring to applications, we use bold. Then, I moved some words around to fit 100 characters on each line.

Suggested change
With the Odoo :guilabel:`Subscriptions` application, a company can manage all of its subscriptions
in one place. Renewals can be processed automatically or manually, include additional products or
upsells per renewal order, and be filtered in batch views to locate customers who need to renew
their subscriptions.
With the Odoo **Subscriptions** application, a company can manage all of its subscriptions in one
place. Renewals can be processed automatically or manually, include additional products or upsells
per renewal order, and be filtered in batch views to locate customers who need to renew their
subscriptions.

Comment on lines +16 to +17
Opening a renewal quotation
===========================
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we're thinking of distinguishing between the manual and automatic renewal process, let's be more intentional in the naming that this is for the manual process! Here are some ideas for ways we could title this

Suggested change
Opening a renewal quotation
===========================
Manual renewals
===============

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The title above is the most concise option, but if we want to consider SEO and make it more action-oriented, we could try:

Suggested change
Opening a renewal quotation
===========================
Create a renewal manually
=========================

I dropped “quotation” from the title since it feels a bit Odoo-specific and might not be something a general user would search for. That said, this is just my take and gut feeling, I don’t have data to back it up! 😅

You’re the one diving deep into the Subscriptions app, so I’d love for you to decide what feels right here! If "renewal quotation" is an industry-standard term or makes more sense for our audience, feel free to keep it! I trust your judgment as you build your expertise in this area. 🙌

Comment on lines +19 to +20
In order to create a renewal quotation, there are certain prerequisites that a subscription must
meet.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And a response to the above message about titles, I personally would leave the wording like you have it here on "renewal quotation", since we're getting into the step-by-step instructions in Odoo, so Odoo-isms are expected and encouraged to build the reader's familiarity with our terminology (: (things like smart buttons)

:doc:`invoice the order <../../sales/sales/invoicing/invoicing_policy>`, and :ref:`register payment
<finance/accounting/register-payment-invoice-bill>`.

Once the renewal quotation is confirmed, it becomes a sale order and a :icon:`fa-usd`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Once the renewal quotation is confirmed, it becomes a sale order and a :icon:`fa-usd`
Once the renewal quotation is confirmed, it becomes a sales order and a :icon:`fa-usd`

Just a quick note about terminology here!

I know we had this discussion last week that the smart button currently says "Sale Order" but sales order is more correct grammatically.

In cases like this, we follow the UI exactly when using a guilabel (even if it's grammatically wrong) and we can submit R&D feedback to Belgium to suggest the fix.

Since you’re referring to sales orders in general here (and not using a guilabel), it’s perfectly fine to write “sales order” in the grammatically correct form! (:

top-right of the sales order, if there is an error in the payment method.
On rare occasions, automatic payments can fail to register properly, which results in a
:guilabel:`Payment Failure` tag on the sale order and the :guilabel:`Contract in exception`
checkbox being automatically ticked in the :guilabel:`Subscription` section of the sale order's
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
checkbox being automatically ticked in the :guilabel:`Subscription` section of the sale order's
checkbox being automatically ticked in the :guilabel:`Subscription` section of the sales order's

Click into the desired subscription, then check the Chatter to see if the payment was made.

If the payment was **not** made, first enter :doc:`debug mode <../../general/developer_mode>`.
If the payment *was not* made, first enter :doc:`Developer Mode <../../general/developer_mode>`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no need to capitalize!

Suggested change
If the payment *was not* made, first enter :doc:`Developer Mode <../../general/developer_mode>`.
If the payment *was not* made, first enter :doc:`developer mode <../../general/developer_mode>`.

Reload the sales order, and the :guilabel:`Payment Failure` tag is gone.
If the payment *was* made, a new invoice must be made and posted manually. This automatically
updates the next invoice date of the subscription. Once the invoice is created, enter
:doc:`Developer Mode <../../general/developer_mode>` and navigate to the new sale order. Click
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
:doc:`Developer Mode <../../general/developer_mode>` and navigate to the new sale order. Click
:doc:`developer mode <../../general/developer_mode>` and navigate to the new sales order. Click

updates the next invoice date of the subscription. Once the invoice is created, enter
:doc:`Developer Mode <../../general/developer_mode>` and navigate to the new sale order. Click
the :guilabel:`Other Info` tab, and untick the checkbox next to
:guilabel:`Contract in exception`. Reload the sale order and confirm that the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
:guilabel:`Contract in exception`. Reload the sale order and confirm that the
:guilabel:`Contract in exception`. Reload the sales order and confirm that the

handles renewals automatically again. If the subscription remains in *payment failure*, it is
skipped by Odoo until the sales order is closed.
In both cases, once the :guilabel:`Contract in exception` checkbox is no longer ticked, Odoo
handles renewals automatically again. If the subscription remains in Payment Failure, it is
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
handles renewals automatically again. If the subscription remains in Payment Failure, it is
handles renewals automatically again. If the subscription remains in :guilabel:`Payment Failure`, it is

skipped by Odoo until the sales order is closed.
In both cases, once the :guilabel:`Contract in exception` checkbox is no longer ticked, Odoo
handles renewals automatically again. If the subscription remains in Payment Failure, it is
ignored by Odoo until the sale order is closed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
ignored by Odoo until the sale order is closed.
ignored by Odoo until the sales order is closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants