Upgrade guide — v20 to v21 — Subscriptions and vouchers
On this page
Skip this section if you do not use StoreConnect subscriptions or vouchers.
The guide assumes you are on the latest v20 website release. Changes that already shipped in v20 patch releases are not repeated here.
Salesforce package changes
Review: Payment Method field on Subscription
Payment_Method_Id__c is a lookup to Payment_Method__c on Subscription__c. It is an alternative to the existing Payment_Token__c field, which stores the gateway token as plain text directly on the subscription record.
When Payment_Method_Id__c is populated, renewals use the token stored on the linked Payment_Method__c record instead of Payment_Token__c. The token can then be updated on the Payment_Method__c record without modifying the subscription itself, which is what enables features such as eWay 3DS token rotation.
Payment_Method_Id__c is populated at subscription creation when the gateway supports saving a payment method as a dedicated record. Subscriptions created through gateways that do not support this continue to use Payment_Token__c and leave Payment_Method_Id__c blank.
Review whether Payment_Method_Id__c should be added to your Subscription page layouts. See Subscription Object Reference.
Review: Plan Change Mode and the Subscription Change object
Subscription_Plan_Change_Mode__c (label: Plan Change Mode) is a new field on Product2 that controls how proration is handled when a customer changes subscription plan:
- Prorate Immediately (default): charges the pro-rata difference at the time of the plan change
- Prorate on Renewal: adds the pro-rata difference to the next invoice
- No Proration: charges the full new price at the next renewal with no mid-cycle adjustment
Each plan change is recorded in a new Subscription_Change__c object with the old and new product, pricing, proration, and the mode used. It is included in the Administrator and Sync permission sets.
Review whether Plan Change Mode should be added to your Product page layouts and whether any subscription products should use a non-default mode. See Subscription Change Object Reference.
Review: Validation and processing fields on Subscription
| New field | Purpose |
|---|---|
Validation_Status__c |
Whether the subscription has passed the checks needed to process a payment |
Validation_Error_Messages__c |
Any validation errors found |
Last_Validation_At__c |
When the subscription was last validated |
Last_Processed_At__c |
When StoreConnect last processed the subscription |
Delinquent_Order_Id__c |
The most recent failed order that needs a retry |
These fields are populated automatically. Review your subscription reports and list views to decide whether they should show validation status, and whether a manual process for finding failed renewals can now use Delinquent_Order_Id__c. See Manage delinquent subscription payments.
Action required: Voucher Log field changes
Two fields on Voucher_Log__c have been renamed or replaced. Both old fields remain temporarily but must be migrated before they are removed in a future release.
| Old field | New field | Notes |
|---|---|---|
Event_Result__c |
Success__c |
Replaced by a boolean field |
Reason_Code__c |
Reason__c |
Renamed to a picklist field |
Before changing anything, confirm the old fields are not used for purposes outside StoreConnect, such as custom reporting.
- Salesforce reports and list views. Search for any reports filtered or grouped on
Voucher Log: Event ResultorVoucher Log: Reason Codeand update them using the replacements in the table above. - Flows and Process Builder. Search for any automations that read or write
Event_Result__corReason_Code__conVoucher_Log__crecords and update the field references. - Apex or API integrations. Update any code querying or updating these fields by API name.
- Liquid templates. If your theme references voucher log fields, update them to
successandreason.
See Voucher Log Object Reference.
Review: New fields on Voucher
| New field | Purpose |
|---|---|
Status__c |
Whether the voucher is waiting to be activated, available, canceled, or temporarily locked |
Activate_Before_Datetime__c |
A deadline by which the voucher must be activated. A voucher not activated by then cannot be redeemed |
Activated_At__c, Activation_Code__c |
When the voucher was activated, and the code required to activate it |
Pin__c |
A PIN required at redemption |
Asset_Id__c |
The asset backing a physical voucher |
Email_Fields__c |
The generated values included on the voucher email |
Review whether these fields should be added to your Voucher page layouts, and whether existing vouchers should have an activation deadline or a PIN. See Voucher Object Reference.
Review: Voucher products create vouchers when sold
When a voucher product is sold, StoreConnect creates and activates the Voucher__c record automatically. Voucher_Requires__c on Product sets what the purchased voucher requires at activation, and Voucher_Uses_Assets__c makes the vouchers for that product asset-backed. If you created vouchers by hand or with a Flow after a sale, assess whether that process is still needed. See Create voucher products.
Behavior changes
Review: Renewal orders and failed payments
- Renewal order items are created from the catalog lines only, so a renewal that involves a card surcharge keeps its subscription line.
- A renewal order that was already populated by hand or by automation is not populated again at charge time.
- Recording a payment against a renewal order in Salesforce renews the existing subscription instead of creating duplicates.
- Delinquent subscription retries resume after a failed payment instead of leaving the subscription stuck.
- Customers with a failed or past-due renewal can pay the outstanding amount from a Pay Owing page in their account area, and the Order record page shows a related list of the order’s subscriptions.
If you have Flows that populate renewal orders, confirm after upgrading that a renewal produces one subscription line and one subscription.
Review: Subscriptions through wallets and the Authorize.Net ACH switch
Subscription products can be purchased with Apple Pay, Google Pay, and other wallet providers, and through express checkout. A customer switching an Authorize.Net subscription to ACH now has the bank account added to their existing Authorize.Net profile, so renewals charge the bank account. See Authorize.Net ACH payment provider.
Review: eWay 3DS subscription token rotation
eWay v2 subscription payments support 3DS token rotation, which updates the stored payment token for a subscription as part of the 3DS authentication flow. If you use eWay v2 for subscription billing, test your subscription renewal flow after upgrading to confirm tokens are being handled correctly. See eWay Payment Provider.
Review: Voucher audit logging
StoreConnect records every voucher redemption and state change in Voucher_Log__c, capturing the event, whether it succeeded, and the reason. It requires no configuration. If you have custom processes for tracking voucher changes, review whether they are still needed. See Managing and spending vouchers.
Was this article helpful?
Thanks for your feedback! It helps us improve our docs.