Skip to main content

Overview

The Renewal Options page lets a portal member renew a subscription before a renewal order exists. The member picks the product they are renewing into, picks a subscription plan, decides whether to auto-renew, and the page creates the renewal Order and hands them straight to checkout. It works alongside the nightly renewal job. Where the job has already generated a renewal Order, the member reviews and pays it on the Renew Subscription page. Where it has not, this page builds the Order from the member’s own choices — so Renew works throughout the renewal window.
The page is fsPortalRenewalOptions in the unmanaged Portal Components package. It reads eligible renewal products from Subscriptions (FCORE_MEM) and prices from Commerce (FCORE_PAY). Because the package is unmanaged you can customize it — but clone the component before changing its code, or a package upgrade will overwrite your edits.

Prerequisites

  • The Subscription Hub is already on a portal page.
  • Each subscription product has a renewal window configured — Renew Anytime, or Renew X Days Before Expiry / Renew X Days After Expiry.
  • The products a subscription may renew into exist, are active, and have at least one active subscription plan linked.
  • The Business Unit has Portal Checkout Page Path (FCORE_PORTAL__Portal_Checkout_Page_Path__c) set — the page hands off to it. See Configuring the Business Unit’s Portal Checkout Page.

Add the Renewal Options Page

1

Create the page

In Experience Builder, create a new page for renewals — for example Renewal Options — and drag the FS Portal - Renewal Options component onto it.The component has no properties to configure. It reads which subscription to renew from the id URL parameter (the Purchase Activity UUID), which the Subscription Hub and Manage Subscription pass automatically.
2

Point the Subscription Hub at the page

On the FS Portal - Subscription Hub component, set Renewal Options Page URL (renewalOptionsPageUrl) to the page you just created.
This property is required and defaults to /. While it is left at /, the hub hides the Renew button for every subscription that would route to the Renewal Options page — members simply see no way to renew, with no error.
3

Point Manage Subscription at the page

On the FS Portal - Manage Subscription component, set Renewal Options (renewalOptionsURL) to the same page, alongside the existing Renew Subscription and Cancel Subscription paths. The Renew Now button inside Manage Subscription routes the same way the hub does.
4

Publish

Click Publish to make the page live.

Where the Renew Button Goes

The Renew button has two destinations. fusionCore decides which one applies per subscription. The button appears only when all of the following are true:
  • Is Within Renewal Time Frame (FS_PORTAL_Is_Within_Renewal_Time_Frame__c) on the Purchase Activity is true.
  • Renewal Status (FCORE_MEM__Renewal_Status__c) isPending.
  • The Purchase Activity Status is Active or Expired.
  • The member’s contact role is in the product’s Manage Subscription (FS_PORTAL_Manage_Subscription__c) setting.
  • The destination page URL is configured — that is, not left at /.
When it appears, this is where it leads:
For the Renew Subscription side of that split — where the member reviews the renewal document and pays — see Managing and Renewing Subscriptions in Subscription Hub.

Control the Renewal Window

Is Within Renewal Time Frame is a formula field — you never set it directly. It is true when the subscription is not cancelled, its product is not flagged Is Not Renewable (FCORE_MEM__Is_Not_Renewable__c), and any of these holds:
This is the portal renewal window and it is separate from the plan’s Renewal Days (FCORE_MEM__Renewal_Days__c), which governs the nightly renewal batch job. A subscription can be inside one window and outside the other. Set the product fields deliberately rather than assuming the batch job’s window applies.

Control What Members Can Renew Into

The choices on the page come from Renewal Paths. For the subscription’s current product, fusionCore collects every Renewal_Path__c where:
  • Original Product (Original_Product__c) matches the subscription’s product,
  • Renewal Product (Renewal_Product__c) is active, and
  • Condition (Condition__c) is blank, or its Condition record evaluates to true for this member.
If no path qualifies, the page offers a single option: renewing into the current product. So a product with no renewal paths at all still renews cleanly. Each option then carries the renewal product’s active subscription plans, and the plan flagged as default for that product (Product_Subscription_Plan__c.Is_Default__c, where the plan itself is active). Set Renewal Direction (Renewal_Direction__c) on each path to Upgrade or Downgrade to badge it on the page and place it in the display order. Leave it blank for paths you do not want labelled.
Conditions are how you keep the page honest — a member should only ever see options they actually qualify for. A path whose condition cannot be evaluated is skipped and logged, so the member sees fewer options rather than an error.

What the Page Does Not Do

  • Prices on renewal page exclude tax. Every price on the page is pre-tax. Tax is calculated at checkout.
  • Portal members cannot create installment plans. Only staff users can. Plan-driven auto-charge is the only member-facing recurring option.
  • The page does not change an existing renewal Order. If one already exists, the member is routed to the Renew Subscription page instead.

Limitations and Common Pitfalls with Renewal Options

  • Renewal Options Page URL left at /. The hub hides Renew entirely for subscriptions that would route here — it does not fall back to the old renew page. Set the property, then re-test as a member.
  • Renewal Options not set on Manage Subscription. The hub tile works but the Renew Now button inside Manage Subscription disappears. Both components need the path.
  • The renewal product is inactive. An inactive Renewal_Product__c is dropped from the options list silently. If every path is dropped, the member is offered the current product instead — which may not be what you intended.
  • A product with more than one active default plan. fusionCore picks one deterministically (the lowest plan Id), so the page never breaks, but which plan a member lands on becomes hard to explain. Query for products with more than one active default Product_Subscription_Plan__c and clean them up.
  • No Business Unit checkout path. The member can choose and confirm, but the handoff URL is malformed and checkout never loads. Set Portal Checkout Page Path on the Business Unit.
  • Members can reach the page only through Subscription Hub or Manage Subscription page. Opened directly, with no id parameter, it reports Purchase Activity Id cannot be blank.