Understanding the Affinity 2.0 next order page
The Affinity 2.0 Next order page is the main entry point of the Affinity customer portal. It always focuses on a single charge or order and organizes everything else around it.
This guide explains how the page chooses which charge or order to show, what sections make up the page, and what conditions control each section and its features.
This guide covers the Affinity 2.0 Next order page. If you're using Affinity 1.0, see Understanding the Affinity 1.0 entry page.
- Shopify Checkout Integration
- Migrated Shopify Checkout Integration
Before you start
- Affinity is a no-to-low code solution designed for merchants to seamlessly configure. See Customizing Affinity 2.0 for customization steps.
- Some Affinity customizations require custom code, which is not supported by Recharge as per the design and integration policy. Visit working with third-party developers if you require developer assistance.
- For some settings to appear in the customer portal, they must be enabled in the merchant portal.
How it works
The Next order page is powered by the Next order template, a single reusable layout that renders across multiple routes. Unlike Affinity 1.0, which groups all orders scheduled for the same date together, Affinity 2.0 focuses on one charge or order at a time. Actions the customer takes (skipping, rescheduling, sending now) apply only to that focused charge or order, not to every order on the same date.
Merchants configure which sections appear on the page and how they're styled using the Page Builder. A section can be included in the page template but still not appear for a given customer if its conditions aren't met. Any feature, which includes a section, a button, or an inner area, can be gated by up to four layers, all of which must be satisfied:
| Layer | What it means |
|---|---|
| Store | A feature or permission is enabled at the store level, such as a product access setting or a customer portal setting. |
| Page template | The section is included in the page template in the Page Builder. |
| Section settings | A specific option is toggled on inside the section's configuration in the Page Builder. |
| Customer data | The customer is in a specific state, such as having an upcoming charge, a credit balance, or an active punch card. |
How the primary charge or order is chosen
When a customer visits the Overview page, the page works through a priority sequence to determine which charge or order to show. The first condition that matches decides what's displayed.
1. Unresolved charge error
A charge in error status, for example, a failed payment, always takes priority. It's surfaced first so the customer can resolve it before doing anything else. If multiple charges are in error, the most recent one wins. The page renders in its error state.
The specific content depends on the error type:
| Error type | Description | Customer actions |
|---|---|---|
| Payment method error | The payment method failed. For example, an expired card or insufficient funds. | Retry payment and Update payment method, unless the system is already about to retry. |
| Inventory error | One or more products in the order are out of stock. | Error description shown. No retry or update buttons. |
| Other error | Any other charge error outside the customer's direct control. | Error description shown with a Contact support link using the store's configured support email. |
2. Earliest relevant charge or order
If there's no charge error, Affinity selects what to display in two steps:
- Find the earliest date. Affinity compares queued charges, scheduled prepaid shipments, and skipped charges and displays the item with the earliest date, regardless of type. For example, a skipped charge dated earlier than the next queued charge takes precedence over it.
-
Decide by type. If multiple items share the earliest date, Affinity prioritizes in this order:
- A queued charge
- A prepaid order
- A skipped charge
If the selected charge is currently being processed, the page shows it in the processing view.
3. Inactive subscriber
If the customer has no charges or orders that match any of the above conditions, the page switches to the inactive subscriber view, which shows a list of cancelled subscriptions with reactivation options.
A Reactivate button appears next to each cancelled subscription when the Reactivate subscriptions in the customer portal store setting is enabled. The cross-sell carousel also appears in this state if it's enabled, giving the customer an option to start a new subscription.
Primary vs. secondary charges and orders
The customer's other charges and orders don't disappear, they become secondary and surface on the same page in two places:
- Also on this date - Secondary charges or orders scheduled for the same date as the primary one.
- Not in your next order - Subscriptions whose next delivery date is different from the primary one.
Section catalog
The Next order page is composed of sections arranged across three regions: header, main, and sidebar. Each section below includes what the customer sees and the conditions that control its visibility.
Welcome message
A personalized greeting with the customer's first name. The heading text is configurable in the Page Builder. Always shown when the section is in the page template.
Navigation
A top-of-page menu with links to other parts of the customer portal. You configure which links appear.
Next order detail
The most complex section on the page. It always reflects the focused charge or order and adapts its layout to the current state of that charge or order.
View states
The section has several distinct states that change its appearance:
| State | Description |
|---|---|
| Normal (queued charge) | The standard view. Shows order details and the actions configured in the Page Builder. |
| Skipped | The charge has been skipped. The action area shows an Unskip button only. |
| Processing | The charge is currently being processed. Action buttons are replaced with a processing overlay and a link to view the charge. |
| Completed | The charge has been processed. A success message replaces the action area, with a link to the next upcoming order. |
| Payment error | The charge has a payment problem. The section switches to an error layout with actions to resolve the issue. |
| Inactive subscriber | The customer has no upcoming charges. The section shows cancelled subscriptions with a Reactivate option for each. |
| Order in process | After a customer clicks Send Now, the page shows an order in progress state briefly while the next order information is recalculated. |
Order-level actions
These buttons appear at the top of the section when the charge is in queued status. Each requires specific store settings, section settings, and customer data conditions to be met:
| Action | Requirements |
|---|---|
| Send Now | Requires the Reschedule upcoming regular orders store setting and a queued, non-prepaid charge. |
| Reschedule | Requires the same store setting and a queued, non-prepaid charge. |
| Skip | Requires the Skip their next order store setting (and Skip upcoming prepaid orders for prepaid). The charge must be queued and not already skipped. |
| Unskip | Shown only when the charge is in skipped status. |
Savings banner
A banner showing how much the customer is saving on this order. Only shown for regular, non-prepaid charges that are not in the Processing or Completed view state, and non-zero total saved amounts.
Products list
The list of subscription items included in the focused charge or order. Per-product actions depend on the product type and charge status:
| Action | Requirements |
|---|---|
| Edit | Redirects to the subscription details page. Available for subscription and one-time products (not free gifts, add-ons, or digital subscriptions). |
| Edit contents | For customizable bundles only. Redirects to the subscription details page to change bundle contents. Hidden for preset bundles. |
| Swap | Requires the Customers can swap between products store setting and a queued, non-prepaid charge. |
| Cancel | Requires the Cancel subscriptions in the customer portal store setting and a queued, non-prepaid charge. |
| Reschedule | Requires Reschedule upcoming regular orders in the Customer Portal settings and Allow customers to reschedule products from here in the section settings. |
| Skip | Requires Skip their next order in the Customer Portal settings and Allow customers to skip products from here in the section settings. One-time products cannot be skipped. |
Offers
An optional strip above the products list showing special offers. Only appears when the charge is queued, not skipped, not processing or completed, not a prepaid order, and at least one offer is configured. Available offer types include:
- Free gift — A gift product automatically added to the order.
- Claimable gift — A gift the customer can choose to claim, sometimes with a variant selection. Disappears once claimed.
- Prepaid upsell — An offer to switch from a recurring subscription to a prepaid plan. Requires the Show prepaid upsell store setting.
- Tiered discount — A progress bar showing how close the customer is to unlocking a larger discount. Requires the tiered discount offer block to be configured in the section settings and a next tier the customer hasn't reached yet.
Add product button
A button below the products list that lets the customer add a product to the upcoming charge. Requires the Customers can add more products store setting, the corresponding section setting enabled, and a queued, non-prepaid charge.
Also on this date
A list of other deliveries scheduled for the same date as the focused charge. Each entry shows the shipping address, item count, status (if skipped or processing), price (for regular charges only), product thumbnails, and a View order link. Hidden unless at least one other delivery is scheduled on the same date. Not shown in the inactive subscriber state.
Order summary
An itemized cost breakdown for the focused charge or order, including subtotal, discounts, taxes, shipping, and total. Shown when the customer has a queued charge or an active prepaid order. Hidden if the prepaid subscription is already cancelled or expired.
The discount code entry form appears when the Enter discount codes store setting is enabled and the charge is queued with no discount already applied. A delete button appears next to an applied discount code only if the code is address-based, not automatic.
Shipping and payment
Shows the shipping address and payment method for the focused charge or order, with edit links for each. If no payment method is on file, a caution alert appears with a link to add one. Shown whenever the customer has a queued charge or an active prepaid order.
Edit links are controlled by store settings:
- Edit address — Requires the Edit shipping addresses store setting.
- Edit payment method — Always available when a payment method exists. No additional store setting required.
Not in your next order
A collapsible section listing products from the customer's active subscriptions whose next delivery date is different from the focused charge or order. Each product row shows the product image, name, variant, and next scheduled date, with a Manage button and a See all your products link at the bottom.
Hidden unless at least one subscription product has a different next order date from the focused charge or order. When focused on a charge, the charge must also be in queued, skipped, or error status. If the charge is currently processing or completed, this section is hidden.
Recent order
A summary of the customer's most recently completed order: the date, product images (up to 4), item count, order total, and a View order link. Shown when the customer has a successfully processed order within the past 75 hours. No store setting or section setting required.
Cross-sell carousel
A horizontally scrollable carousel of product recommendations the customer can add to their next order. Each card shows the product image, name, price, and an Add button.
Requires the Allow customers to add products store setting, at least one configured product collection, and at least one available product in that collection. Shown for queued charges (with no other charges in error on the account) and for inactive subscribers. Hidden for prepaid orders and for charges in any non-queued state.
Credits balance
Shows the customer's current store credit balance, with a toggle to apply or remove credits from their next order. Requires the Credits feature to be enabled at the store level and a non-zero credit balance. Hidden if the balance is zero.
The toggle is shown when the store and subscription currencies match, or when multi-currency credit redemption is enabled. When the store uses automatic redemption mode, the toggle is display-only. Not shown in the inactive subscriber state.
Referrals
A referral link the customer can share, displayed in a copyable text box. Requires a referral URL on the customer's record. Hidden if no referral link exists. Not shown in the inactive subscriber state.
Punch card
A loyalty card showing the customer's progress toward a reward milestone. If the customer has multiple active punch cards, each one is shown in sequence. Requires the Punch Card feature to be enabled and at least one active punch card with progress that hasn't exceeded all milestones. Not shown in the inactive subscriber state.
Announcement
One or more merchant-configured announcement banners. Content is defined in the Rewards product, not in the Page Builder. Shown only when at least one active announcement with valid content exists for the customer. Not shown in the inactive subscriber state.
Custom sections
Sections you register via the merchant portal, outside the default catalog. Visibility is determined by the extension's own logic. In the Page Builder preview, custom sections render as dashed placeholders.
Understanding pricing and discounts
Pricing in the customer portal appears across two main areas, and each area reflects a different set of discounts.
Product-level pricing
Prices shown next to individual products in the products list reflect plan discounts, product discounts, and tiered discounts. These are already applied to the price shown for each item. If available, the full price reflects the product's Shopify "compare at" price.
Order-level pricing
The Order summary shows the full breakdown of the order total, including:
- Subtotal, before any discount
- All discounts - subscriber discounts, product discounts, tiered discounts, member discounts, automatic discounts, promo codes, and flow discounts (each flow discount shows separately, for example, Cancellation Offer or Reward Discount)
- Shipping costs
- Estimated taxes
Savings display
The savings amount shown in the portal includes all applied discounts across both product-level discounts (plan or tiered) and order-level discounts (promo codes, automatic discounts, and similar).
