This article discusses features and capabilities available only for Shopify merchants. If you're using another platform, visit this article.
ReferralCandy provides several widgets and storefront blocks for your Shopify referral campaigns. This article maps which surfaces exist on the Widgets page, where each one fits in the merchantβadvocateβfriend flow, and where each is enabled and edited.
π‘ See the widgets in action
Want to preview these widgets on a real Shopify store before setting up your own? You can see all of them (legacy widgets excluded) on our test store, acmesupplements.co/pages/refer-a-friend:
Join block β embedded on that page (the "Share a gift" signup form)
Referral extension β appears on the Shopify Thank You page; requires a test purchase to see
Friend offer landing (Page or Storefront Popup) β appears when you click a referral link from an enrolled advocate
Customer referral details extension β appears inside the customer account area; requires logging in as an enrolled customer
Before you start: where changes are made
For Shopify merchants, ReferralCandy surfaces are edited in different places depending on what you're trying to change.
In general:
ReferralCandy Widgets page = edit widget text, copy, labels, templates, toggles, and widget-level campaign settings
Shopify editors = add the widget or extension to your store and control placement, layout, alignment, and display settings
ReferralCandy Themes / Visual Editor = edit the design of campaign pages, such as the Friend Offer Page and Storefront Popup
Important distinction:
Most newer Shopify widgets are not edited in the Theme editor β they're enabled in Shopify editors and have their text edited on the Widgets page
Older script-based widgets (the floating Referral widget and Shopify post-purchase script widget) are legacy setups and don't appear in the modern Widgets page UI
If you edit in the wrong place, it can look like "my changes didn't apply" β they did, just in a different surface.
Rule of thumb:
If you want to change the words inside a modern Shopify widget, start in the Widgets page
If you want to place the widget on a Shopify surface or change layout/display settings, use the relevant Shopify editor
If you want to change a campaign page design (Friend Offer Page or Storefront Popup), use Themes / Visual Editor
The Shopify locations you'll see referenced
ReferralCandy Widgets page
Shopify admin > Apps > ReferralCandy > Referral campaigns > select a campaign > Promote campaign > Widgets
Used for widget text, copy, labels, templates, toggles, and widget-level campaign settings
ReferralCandy Themes / Visual Editor
Shopify admin > Apps > ReferralCandy > Referral campaigns > select a campaign > Customize campaign > Themes > Customize
Used for the design of campaign pages β the Friend Offer Page and Storefront Popup, plus other Theme-based items
Shopify Theme editor
Shopify admin > Online Store > Themes > Customize
Used for storefront app blocks and app embeds β for example, the Join block and the Friend Offer Popup app embed
Shopify Checkout editor
Shopify admin > Settings > Checkout > Customize
Used for checkout extensions such as the Referral extension
Shopify Customer Accounts editor
Used for customer-account app blocks such as the Customer referral details extension
Note: Shopify's navigation labels can vary slightly, but the editing pattern stays the same.
Widgets available on Shopify
Listed in the order they appear on the Widgets page.
Referral extension (Checkout block)
Where it shows up in the flow
A customer completes a checkout β lands on the Shopify post-checkout "Thank you" page (and related order-status pages, depending on your setup) β sees the Referral extension prompting them to share with friends. They tap it to grab their referral link and share.
The Referral extension is the share moment itself β customers see their sharing options inline, right there on the Thank You page. It's not a path to the Rewards page (advocates access that via the Your Rewards tab on their Share Page β see What advocates see after signing up). Visibility on the Thank You page also depends on the customer's enrollment state (enrolled / unenrolled / never enrolled) and whether you've enabled signup/waitlist for unqualified customers β see Referral extension for Shopify for the full behavior matrix.
Why use it
The Thank You page is the highest-intent moment in the customer journey for a referral ask β the customer just bought, so they're at peak enthusiasm. The block is a Shopify-native checkout extension, so the placement and design stay consistent with the rest of your checkout flow.
Where to enable / add it
Shopify Checkout editor β add the ReferralCandy block.
Where to customize it
Checkout editor: placement and layout of the block
ReferralCandy Widgets page: the copy and visuals inside the block β Header and Body text (with optional Liquid placeholders like
{{incentive_description}}and{{offer_description}}), banner image upload, language selector, and toggles for showing the campaign's content and allowing signup/waitlist for unqualified customers
Common confusion
If you're trying to change the Thank you page block text, don't look in campaign Themes β edit the widget text on the Widgets page, then confirm the block is placed correctly in the Checkout editor.
For full setup details including banner image sizing and Liquid placeholder behavior, see Referral extension for Shopify.
Friend offer landing
Where it shows up in the flow
An advocate shares their referral link β a friend clicks it. If your campaign's friend offer is a discount code, the friend needs to land somewhere that shows them the code before they shop. The Friend offer landing section controls how that delivery works on Shopify β and gives you two paths to choose between:
Friend Offer Page β a ReferralCandy-hosted page where the friend picks up their discount code before clicking through to your store. We host it; the design is set in ReferralCandy Themes.
Storefront Popup β the friend lands directly on your Shopify store URL, and a popup over your storefront shows them the code. We trigger this through a Shopify app embed.
Which path runs depends on your setup:
If the Friend Offer Page toggle on the Widgets page is ON, friends land on the Friend Offer Page first.
If the toggle is OFF and the Storefront Popup app embed is enabled in Shopify's Theme editor, friends go straight to your store and the popup shows the code.
If your campaign's friend offer isn't a discount code (no friend offer, or a non-code-based offer type), neither path applies β friends just land on your store URL. Both Friend Offer Page and Storefront Popup exist specifically to deliver discount codes.
Which is better for Shopify merchants?
Generally the Storefront Popup is the more seamless setup:
Friends land on your actual Shopify store β the place the referral was for β rather than an intermediary page, which tends to feel more trustworthy.
The popup design sits on top of your storefront, so it inherits your Shopify branding visually.
No extra page hop between the click and the store, so referred friends reach your product pages faster.
Keep the Friend Offer Page if you'd rather control the friend's first impression on a dedicated page you fully design (often used to feature the friend offer prominently, or when the merchant prefers a clean "here's your offer β click through" flow). Either works β the Popup just tends to feel more native on Shopify.
Where to enable each surface
Friend Offer Page toggle β ReferralCandy Widgets page (this section)
Storefront Popup β Shopify Theme editor > App embeds (enable the Friend Offer Popup embed)
Where to customize the design
Both surfaces share the same theme and layouts β edit them together in ReferralCandy Themes > Customize. For full coverage (available layouts, the Page/Popup surface toggle inside the Theme editor, what each surface controls individually, and the legacy popup migration), see Friend offer landing page and popup.
Headless / custom storefronts
Referral details and discount code parameters may not carry through automatically on custom checkout flows. This can affect discount application and referral tracking β you may need a developer to preserve the referral link parameters through your custom storefront.
Customer referral details extension (Customer Accounts app block)
Where it shows up in the flow
An enrolled advocate logs into their Shopify customer account on your store β sees their referral details inside their account area: their referral link, sharing buttons, and reward progress. They don't have to navigate to a separate ReferralCandy share page to find their info.
Why use it
Keeps everything advocate-facing in one Shopify-native place. Advocates who come back to your store to check their account see their referral progress alongside their orders and other account details, rather than having to remember where their ReferralCandy share page lives.
Where to enable / add it
Shopify Customer Accounts editor β add the Customer Referral Details Extension app block. (Depending on your Shopify setup, this is accessed via customer-accounts customization rather than the general Theme editor.)
Where to customize it
Shopify editor: display and layout controls (alignment, show/hide certain sections, icon toggles, etc.)
ReferralCandy Widgets page: the widget's text β headers, descriptions, and the table labels. Use the Edit table text button on the Widgets page to update the labels shown inside the referral details table.
Common confusion
Some header and subheader styling lives in Shopify's block settings, while the actual words and templates live in the Widgets page. They work together β one doesn't replace the other.
For full setup details, see Customer referral details extension for Shopify.
Join block (Theme app block)
Where it shows up in the flow
A customer or visitor browsing your storefront sees an embedded signup form β typically on a dedicated "Refer a friend" or "Rewards" page, but it can be placed on a landing page, the homepage, or anywhere a Shopify theme allows app blocks. They fill in the form to enroll as an advocate without leaving your store. Already-enrolled advocates can also use the same form as a login entry point β entering their signup email switches the widget to show their referral link, so they don't need a separate login page to come back to their share options.
Why use it
Recruits new advocates from your existing storefront traffic β visitors and customers who are already on your site. Because it submits directly into the ReferralCandy campaign, the advocate is enrolled without bouncing them off your store.
Where to enable / add it
Shopify Theme editor (Online Store 2.0) β add the Join block as an app block on the page or template you want.
One-time permission step: the first time you use a Join block, you'll see a "Grant permissions" prompt on the Widgets page. This authorizes ReferralCandy to write the metafields the block needs. Click Grant permissions once, then proceed with setup.
Where to customize it
Theme editor: placement and layout toggles (alignment, show/hide header/offer, etc.)
ReferralCandy Widgets page: text and content (header, offer text, field labels, button text, etc.). The Widgets page also has a Join block linked to this campaign dropdown β you can link this campaign to one of up to 4 Join block slots, which is useful if you're running multiple programs (e.g., a referral campaign and an affiliate campaign) and want different signup blocks for each.
Important distinction
The Join block is the embedded storefront widget. The Join Page is a ReferralCandy-hosted campaign Theme page (edited under Themes), accessible via a shareable link. They're related, but they're not the same thing. For Join Page setup and customization, see Join Page.
For full setup details, see Join block for Shopify.
Cookie consent
Where it shows up in the flow
A visitor lands on your storefront β sees a sticky banner at the bottom asking for cookie consent β either consents or declines. ReferralCandy uses cookies to attribute referrals back to the advocate who shared the link, so this banner is the consent moment for that tracking.
Why use it (or not)
Turn this on if your store serves customers in jurisdictions that require explicit cookie consent (GDPR in the EU, CCPA in California, etc.). Without consent in those regions, referral tracking may not work correctly for those visitors. If you don't serve those jurisdictions, or you already have your own cookie consent system, you probably don't need this.
Where to enable / disable it
ReferralCandy Widgets page β the Cookie consent toggle.
Where to customize it
This widget is typically minimal and mostly just enabled or disabled. If your store needs deeper styling or behavior changes, that becomes theme or custom-code scope.
Other signup surfaces and the advocate experience
Beyond the storefront widgets above, your campaign also has a hosted Join Page β a ReferralCandy-hosted signup page accessible via a link you can share via email, social posts, customer support replies, or anywhere a link works (no install required). See Join Page for how to find and customize it.
For the post-signup advocate experience β the Share Page, Your Rewards tab, and authentication flow β every advocate lands in the same RC-hosted journey regardless of which signup surface enrolled them. See What advocates see after signing up.
Legacy widgets (not shown on the modern Widgets page)
Some older widgets were created when Shopify allowed more script-based customization. They don't appear on the modern ReferralCandy Widgets page, but some stores still run them:
Floating Referral Widget (legacy) β a script-based widget commonly placed on storefront pages (often the homepage). See Using a floating Referral Widget (legacy) for setup, customization, and the recommended modern alternative.
Shopify post-purchase script widget (legacy) β an older checkout-related widget from the pre-extension era. Modern Shopify checkout configurations often restrict script-based checkout customizations, so this widget may not be compatible with your checkout. The modern alternative is the Referral extension above.
Widgets FAQ
Can I use widgets from multiple campaigns at the same time?
Can I use widgets from multiple campaigns at the same time?
Widgets are campaign-specific if you're running multiple campaigns. The ability to use widgets simultaneously depends on the widget type:
The Referral extension (checkout block) can only be active in one campaign at a time.
The Friend Offer Popup (app embed) can be used simultaneously and is specific to the campaign the advocate or affiliate is enrolled in.
You can link the Join block to a maximum of 4 campaigns in your ReferralCandy account.
On the Customer referral details extension, a Shopify customer enrolled in multiple campaigns can select from the Campaign dropdown to view referral details for each campaign.
Embedded widgets (the legacy embedded signup page and the floating Referral widget) are campaign-specific β campaigns don't share the same embed code and can be used simultaneously. For the floating Referral widget, it's recommended to use only one per page.
Note: Some widgets require technical expertise to set up.
Where are the widgets from the previous dashboard in Shopify admin?
Where are the widgets from the previous dashboard in Shopify admin?
With Shopify 2.0, apps are no longer advised to use script-based widgets. As a result, widgets from the previous ReferralCandy dashboard (such as the embedded signup page, floating Referral widget, and Post-purchase popup widget) are no longer shown on the Widgets page in Shopify admin.
For modern Shopify setups, ReferralCandy provides these main alternatives in Shopify admin:
The Join block for the embedded signup-form use case
The Referral extension for the checkout / Thank you page referral prompt use case
If you still need the code snippet for the floating Referral widget (or any other legacy script-based widget), let us know and we can help. If you'd like to see one of these legacy widgets offered as a Shopify app block or extension in the future, let us know β that kind of feedback helps us prioritize where to invest.
What are the {{ }} placeholders in the Header and Body fields?
What are the {{ }} placeholders in the Header and Body fields?
Some widgets β the Referral extension is the most common β let you use placeholders inside the Header and Body text so each customer sees the right reward and offer.
The two you'll see most often:
{{incentive_description}}β renders the advocate's reward (for example, "$10 off"){{offer_description}}β renders the friend offer (for example, "20% off your first order"), ornoneif no friend offer is configured
You can also wrap them in {% if %} blocks so the text changes depending on whether a friend offer is configured. The default Header text in the Referral extension uses this pattern β open the Header field on the Widgets page to see the live example.
Insert placeholders by typing them directly into the field. If they don't appear substituted in the preview, that's expected β the live widget on your storefront fills in the real values for each customer.


