Product Page Add-ons
Widget add-ons are the extras around your subscription widget: a badge next to the product price, the add to cart button text, the delivery date picker and a few display rules. Each one is a row in the Add-on settings card. Switch a row on or off with its toggle, and click the row to open its settings.
Add-ons change the product page around the widget. They are not the add-on products you can attach to a bundle option, which are set on the offer.
Table of contents
- Subscription badge
- Subscription price details
- Add to cart button text
- Subscription limit reached text
- Plan group order
- Loyalty bonus
- Hide when single option
- Update product page prices
- Currency code on prices
- Cents on whole prices
- Date picker
- Offer countdown
- Sticky add to cart
- Custom fields
- Gift subscriptions
- Cart upsell
- Spend more, save more
- Add to my subscription
- Common questions
- Related guides
Subscription badge
- Badge label
Set the text that appears inside the badge. Use {{ subscription_discount }} to insert the discount, for example SUBSCRIPTION • {{ subscription_discount }}. If your badge label has no variable in it, the badge shows only the text you typed and no discount.
- Percentage discount text
Customize how percentage based discounts are shown using {{ subscription_discount_percentage }}.
- Amount off discount text
Customize fixed discount amounts with {{ subscription_amount_off_discount }}.
- Fixed price discount text
Show a fixed subscription price using {{ subscription_fixed_price_discount }}.
- Animation
Choose from None, Pop, or Drop to draw attention when the badge appears.
The badge label holds the wording, and the three discount texts control how the discount itself is written. Whichever one matches your subscription option's discount type is inserted where you put {{ subscription_discount }}. To remove the badge, switch the row off.
Subscription price details
- Per delivery price text (prepaid)
Label the cost of each delivery on a prepaid subscription option using {{ per_delivery_price }}, for example {{ per_delivery_price }} / delivery.
- Unit price
Display the unit price with {{ unit_price }} and {{ unit_price_measurement }}. This uses the unit price you set on the product in Shopify.
- Price per week or month
Choose Per week or Per month to add a line such as $7.82 / week, worked out from the price of each delivery and how often it is delivered. It helps customers compare options with different frequencies, and it follows the bundle option they pick. Word it with {{ per_week_price }} or {{ per_month_price }}. A month counts as 30.44 days. Tick Round to whole amounts to show $8 / week rather than $7.82 / week; the price charged does not change.
- Later orders price
When later orders cost something different from the first, for example after a refill or a loyalty discount change, a line such as Then $5.00 from order 2 is added. Word it with {{ renewal_price }} and {{ order_number }}. The price is per unit, like the lines above, and it is the same later price Shopify shows at checkout.
These lines appear only when a subscription option is selected. The per item price printed inside the widget itself ("$3.50 each") is a different thing: it is switched on and off in Elements > Price per unit and worded in Labels, see The Subscription Widget.
Add to cart button text
- Add subscription to cart button text
Enter any wording, such as "Subscribe now", to replace your theme's button text whenever a subscription option is selected. If the wording is too long to fit where your theme puts the button (beside the quantity, for example), the button keeps your theme's own text on that screen size rather than moving to a new line.
You can also put the saving on the button, using any of these variables:
{{ subscription_savings_amount }}the money the subscription saves{{ subscription_discount_value }}the discount itself, as a percentage or an amount{{ subscription_full_amount }}the price before the subscription discount{{ subscription_discounted_amount }}the price after it
For example, Subscribe and save {{ subscription_savings_amount }} shows as "Subscribe and save £5.00". The figures follow whatever the customer has selected, so they update when they change the quantity, the variant or the delivery frequency.
To keep your theme's own button text at all times, switch this add-on off. The button then says whatever your theme says, whether a subscription is selected or not.
Subscription limit reached text
- Add to cart button text
Replaces the add to cart button text when a limited subscription is selected. The default is "Subscription limit reached".
- Checkout validation message
The error shown at checkout if the customer still has the limited product in their cart.
- Customer already at their limit (checkout)
The error shown at checkout when a signed-in customer already holds as many subscriptions on an option as its Max per customer allows. Translate it in Settings > Translations under Widgets.
Plan group order
Each offer's subscription options form one group on the product page, headed by the offer's Subscription name. Click the row, move the groups up and down with the arrows, then click Save. The top group is shown first. The same order is used everywhere Shopify lists them, including checkout.
To change the order of the options inside one offer, drag their rows in the offer instead. See The order things appear in.
Loyalty bonus
Switch it on with its toggle and click the row to set its wording and look. The rewards themselves come from the loyalty program attached to the subscription option. See Loyalty programs.
Hide when single option
That covers a product with one subscription option and no one-time purchase row. On an offer with bundle options it is also judged on the bundle option the shopper has selected: while it leaves only one way to buy, because it is One-time purchase only, or Subscription only with a single delivery frequency, the widget steps aside and that way to buy is used. Pick a bundle option that offers more and the widget comes back.
It is off by default. Turn it on to let your bundle options carry the whole choice, see One choice instead of two. It is also the way to hide the widget on a subscription-only product that has a single delivery frequency.
Update product page prices
This is on by default. Turn it off to leave your theme's price alone: your subscription widget and your bundle options still show their own prices, only the theme's price stops changing.
Where your theme already knows how to display a sale, the app puts your theme into that state and fills in your theme's own price and crossed out price, so a subscription or bundle discount looks exactly like a markdown you set yourself, in your fonts and your colours. Where a theme has no sale styling of its own, the crossed out price is built from your theme's price so it still matches your type and colour, with a plain line through it.
Currency code on prices
- Same as theme (the default): the widget and the bundle options follow your theme's own currency code setting, so they match the rest of your store.
- Show: always print the currency code, whatever your theme does.
- Hide: never print it, even if your theme shows currency codes elsewhere.
The choice saves as soon as you pick it and applies to every price in the subscription widget and the bundle options, including the prices that update when a shopper changes the variant, the selected option or the quantity. Savings such as "Save $5.00" are written without the code either way. On Same as theme the preview on the Design page shows prices without the code, because it cannot read your theme's setting; your storefront still follows the theme.
Cents on whole prices
- Show ($24.00) (the default): every price keeps its cents.
- Hide ($24): a price with no cents is written without them, so $24.00 reads $24 and $1,200.00 reads $1,200. A price like $24.50 always keeps its cents, so what a shopper sees is always exactly what they pay.
The choice saves as soon as you pick it and applies to every price in the subscription widget and the bundle options, custom designs included, and to the subscription price details under the product price. It also applies to the prices that update when a shopper changes the variant, the selected option or the quantity. It follows your store's money format, so a store that writes prices as 24,00 € gets 24 €. Your theme's own product price is not changed.
Date picker
Switch it on with the toggle on the Date picker row, then click the row to set it up:
- Date picker heading
The heading above the calendar field.
- First delivery date label and Next delivery date label
The names of the dates added to the cart and checkout on a subscription.
- Single delivery date label
Used for one-time and bundle purchases, which have no next order.
- Available delivery days
Choose which days of the week customers can select.
- Processing days before delivery
Add a buffer between order placement and the earliest available delivery date.
- Maximum first order delivery date
Limit how far in the future customers can choose their first delivery (in days, weeks, or months).
- Disabled delivery dates
Block out specific dates or date ranges such as holidays.
- Order cutoff time
The last time customers can order for the earliest available delivery date, with its Time zone.
Offer countdown
Offer countdown shows how long is left on an offer, such as Ends in 2d 4h, on the product page under the offer title. Each offer turns it on for itself: set an End date under Offers > Schedule and tick Show a countdown on the product page (see Scheduling an offer). It updates while the page is open and disappears when the offer ends.
This row has no switch of its own. Click it to change the Countdown text, where {time} prints the time left in days, hours and minutes in the shopper's language, and its Text color (the offer title's colour by default). The text is translated with your other labels under Settings > Translations > Widgets.
Sticky add to cart
Sticky add to cart keeps an add to cart bar on screen once your theme's add to cart button has scrolled out of view. It shows the product's name, the variant, the price of what the shopper has chosen (the subscription option, the one-time price or the selected bundle option) and an add to cart button.
The button presses your theme's own add to cart, so your cart drawer or cart page, bundles and everything else work exactly as they do from the main button, and it carries the same wording, including Add subscription to cart while a subscription is chosen. Switch it on with the row's toggle, then click the row to set:
- Show on: Phones (the default) or All screens.
- Layout: a Bar across the foot of the page, or a Floating card with the product image, rounded and centred.
- Show option pickers in the bar: small dropdowns for the subscription options and the bundle options, so shoppers can change them without scrolling back up. They change the options on the page, so the price and the cart are the same as choosing there.
- Style: the background colour, text colour, corner radius and font size. Left empty, they follow your widget design. The button keeps your theme's look.
It is off unless you turn it on. If your theme has a sticky add to cart bar of its own, turn one of the two off so shoppers see only one.
Custom fields
Custom fields ask shoppers questions on the product page, such as a pet's name or a grind preference, and save each answer on the order and on the subscription, so it follows every renewal. Each subscription option asks its own: in Offers, open the option, click Custom fields (under Display, after Benefits) and add up to 5 fields. For each one, set:
- Label: the question. It is also the name the answer is saved under, so changing it later saves new answers under the new name.
- Type: Text or Dropdown, with its Choices separated by commas.
- Placeholder (or Prompt for a dropdown).
- Default answer: what the field starts with, so shoppers only change it when it does not fit. Type it for a text field, or pick one of the choices for a dropdown. The shopper can change or clear it; a required field with a default is already answered. A subscription you create yourself starts with the same answers.
- Required: the shopper cannot add to cart until it is filled in, and sees Please fill in followed by the field's name.
- Customers can change it in the portal: the answer shows in the customer portal under Your details, where the customer can change it. Untick it to show the answer without letting them change it.
Know when customers change their answers. When a customer changes an answer in the customer portal, they get the Subscription contract updated email. Like every subscription email, it shows the subscription's answers in its Subscription summary, each under its field's name, leaving out empty ones. Tick Email me a copy on that email under Settings > Notifications > Customer notifications to get the same email whenever it is sent, so you can keep packing lists up to date. You also get a copy for the subscription's other changes, such as products or quantities.
See and change the answers. Open the subscription from Subscriptions: its answers are in the Custom fields card on the right, which every subscription has. Click the pencil to change an answer or fill in one the customer left empty. You can change every field, including the ones customers cannot change in the portal, but fields the subscription option asks cannot be removed: a required one left empty shows Required but still saves. Click Add field to add your own field, a name and a value, to any subscription, even one whose option asks nothing; the bin icon removes your own fields and answers saved under a name no field uses any more (a field you renamed or removed). Fields you add are saved on future orders, where the customer can see them, but not in the customer portal unless Other order details under Settings > Customer portal includes them. Changes apply from the next order. The order the shopper placed keeps the answers they gave, listed under the product on the order page in Shopify. When you create a subscription yourself (Subscriptions > Create subscription contract), the same Custom fields card lets you answer the option's fields and add your own.
The fields appear under the subscription options while that option is chosen, in every design, and work with bundle options too; the offer editor's preview shows them as you type. They take your widget design's borders, corners and text colour. Click the Custom fields row here to override them under Style (including Field background, the inputs' fill; left empty, the inputs take your design's option background, or white), and to reword the message for a required field. Translate the labels, placeholders, choices, text default answers and the message under Settings > Translations > Widgets > Custom fields; a translated dropdown still saves the choice in your store's main language, so your orders read the same whatever the shopper's language.
Gift subscriptions
Gift subscriptions holds the texts and look of the Send as a gift toggle that shows while a shopper picks an option that can be gifted (in Offers, a one-off Prepaid subscription with Shoppers can send it as a gift ticked). Switched on, it asks for the recipient's email (always) and, if you choose under Also ask for, their name and a gift message (the message is on unless you switch it off). Click the row to reword the toggle, the field names and the messages, and to set their Style (left empty, they follow your widget design); translate them under Settings > Translations > Widgets > Gift subscriptions. The recipient gets the Gift received email once the subscription starts. See Can I offer gift subscriptions? for the whole setup.
Cart upsell
Cart upsell adds a Subscribe and save 10% button to each product bought one time, in your cart page and cart drawer, just above its quantity. One click switches that line to a subscription, at the subscription price, without leaving the cart.
- The button offers the product's first subscription option that its product page would show on its own (or all of them, see Let shoppers choose the frequency below), so options only sold inside a bundle, options you keep off the online store, free trial options and prepaid options are never offered. Options limited to tagged customers are left out too; options for signed-in customers show only to signed-in customers.
- The saving is the option's discount. With no discount, the button reads Switch to a subscription.
- A quantity break (a 2 pack, a 3 pack) gets the button too, when that bundle option's discount applies to subscriptions. The line keeps its bundle discount with the subscription discount on top, the same price your product page charges for that pack on a subscription, and only an option that pack allows is offered. Other bundle lines (fixed bundles, build-a-box, Buy X Get Y, gifts and add-ons) and lines carrying another app's details never get a button.
- Let shoppers choose the frequency (in the row's settings, off by default) puts a dropdown of the product's subscription options beside a Subscribe button, each option with its own saving ("Delivery every month, save 10%"). The first option is chosen, so one click still does it. A product with only one option keeps the single button. Option names come from your subscription options, in the shopper's language.
- Let shoppers switch back to one-time (off by default) gives subscription lines a Switch to one-time purchase button. It is not shown for products sold on subscription only, or for a bundle option sold on subscription only.
- Under Style, choose an outline or filled button, its colour and text colour, the corner radius, the font (your theme's body or heading font, system, serif or monospace), its weight and size, and with the dropdown on, the dropdown's text colour. The dropdown's arrow takes the button colour. Left empty, the colours and corners follow your widget design (the border of the chosen option), read from the product page; on a page with no widget they use the design this shopper last saw, and your theme's only before they have seen one.
- It needs the app embed switched on, because a cart drawer can open on any page.
Click the row to reword the buttons and the dropdown entries ({discount} is the saving, {option} the option's name), and translate them under Settings > Translations > Widgets > Cart upsell. Most themes are supported; if the button does not show in your cart, tell us which theme you use.
Spend more, save more
- Click Spend more, save more, set up to 5 tiers (Spend at least in your store's currency, and Percentage off), and choose what Counts: every item in the cart, one-time items only, or subscription items only.
- Reword the Progress text (
{remaining}is the amount still to spend,{discount}the next tier's percentage) and the Last tier reached text ({discount}), and set the bar's colour, corners and type under Style. Both texts translate under Settings > Translations > Widgets. - Click Save, then turn the toggle on.
How it works:
- Each tier is a Shopify automatic discount the app creates, so checkout applies it, and you will see them under Discounts in your Shopify admin. Change them here: every save replaces them.
- Shopify applies the best tier the cart reaches. The tiers combine with bundle discounts, subscription discounts and shipping discounts, but not with other order discounts.
- Counts decides both what the bar adds up and which items the discount comes off: with One-time items only, subscriptions neither count nor get the discount.
- The Discount name at checkout (
{minimum},{discount}) is shown on the order in your store's language only: Shopify does not translate discount names. - The bar needs the app embed on. Minimums are converted for shoppers paying in another currency.
- While it is on, the preview on the Design page also draws the bar under the widget, captioned In the cart and cart drawer, with this product: it shows what a cart holding the previewed product at its selected price would read, in your Style.
Add to my subscription
Add to my subscription lets a customer who already subscribes add the product they are looking at to that subscription, straight from the product page, with no new checkout. The button appears under the subscription options only for customers who are signed in to your store and have an active subscription; nobody else sees it.
It shows as a card: the button, and under it the date the product will ship (Ships with your next order on October 23). The card appears while the customer has a subscription option selected, not on a one-time purchase, and offers only their active or paused subscriptions on that same subscription option, so the product is added at the price the page shows. With one such subscription there is no list; with more than one, they pick which from a list (Subscription #1234, next order October 23).
Clicking the button opens a confirmation before anything changes. It lists everything already in the subscription, then the new product highlighted and marked New with its price on each delivery, and the subscription's next order with the product added: subtotal, discounts, shipping, tax and total, worked out by Shopify. When the product brings a bigger discount or cheaper shipping, that row is highlighted and tagged New saving. Only when the customer clicks Add to subscription is the product added, to every order of that subscription at its subscription price, and they get the usual Subscription updated email.
A product already in the subscription. Adding a product the subscription already has raises the quantity of that line instead of adding a second one, so the confirmation shows the line once with its new quantity. A line that is part of a bundle or a subscription box, a free gift or reward, or one carrying the customer's own details (an engraving, for example) is left as it is, and the product is added on its own.
Quantity breaks. If the subscription already holds the product as a quantity break pack on the same subscription option, the product joins that pack instead of becoming a line of its own, when that earns a bigger pack. For example, one more can on a Double turns it into a Triple, with the Triple's saving on every following order, priced exactly as your checkout prices it. The confirmation shows the pack with its new quantity and name. If no pack fits the new quantity, the product is added on its own and the existing pack keeps its price. Other bundle types are not combined this way yet.
It follows the same rules as adding products in the customer portal: it needs Add products on under Settings > Customer portal, and it is refused inside your Lock changes before the next order window. Click the row to reword every text on the card and in the confirmation, and to set its Style: an outline or filled button, the accent and text colours, corners, the font, its weight and size, and the list's text colour. A preview shows the card and the confirmation as you edit. The texts are translated with your other labels under Settings > Translations > Widgets.
Common questions
The button changed to "Add subscription to cart". How do I keep my theme's "Add to cart"?
Switch off Add to cart button text in Add-on settings, or type the wording you want in Add subscription to cart button text.
The price at the top of my product page does not change when a subscription or bundle is selected.
Check that Update product page prices is on. If it is and your theme's price still does not change, tell us which theme you use and we will add support for it.
My product page shows a discounted price instead of the price I set.
The theme's price follows the option selected when the page opens. Make the One-time purchase row the default on the offer, or switch off Update product page prices.
Prices in the widget show "USD" (or do not show it).
Change Currency code on prices to Show or Hide. If the widget shows a different currency from the rest of your store, message us with the product link.
Can I show prices without .00?
Yes. Set Cents on whole prices to Hide. Prices with cents, such as $24.50, keep them.
My product is subscription only with one frequency. Can I hide the widget?
Yes. Switch on Hide when single option.
Related guides
- The Subscription Widget
- What happened to the widget editor
- Store pickup and local delivery for subscriptions
- What shoppers see in the cart and at checkout
Updated on: 10/15/2026
Thank you!
