🪄How do I install Smartrr on a Shopify 2.0 theme? (Automatic Install)

Implementing Smartrr on storefronts with one of Shopify’s 2.0 free themes: Dawn, Craft, Crave, and Sense.

Last updated: April 3, 2024

Note: Before implementing Smartrr, it's important to review Shopify's subscription requirements to determine your eligibility for offering subscriptions on your storefront. You must also have inventory tracking enabled for a product to be subscription-eligible.

If your store is using one of Shopify’s 2.0 free themes, and have not made any customizations your your theme’s source code, you’re eligible for our simple one-click automated install of Smartrr via our in-app Setup page.

As of 2023, Shopify has begun offering New customer accounts as a setting option. New customer accounts are not compatible with apps; please ensure you are using Classic customer accounts with Smartrr in order to display our Modern Account Portal where your customers will be able to access and manage their subscriptions.

Within the Smartrr app navigate to Setup under RESOURCES in the left-hand menu.

Subscription setup

1. Set up a subscription program

Subscription Programs are the heart of the Smartrr app. If you're just getting started with subscriptions, we can create a demo program for you by clicking Use a demo program. This will automatically create a "Subscribe & Save 10%" program for your shop.

Alternatively, you can create a new program from scratch by pressing Create my own program. You'll be redirected to our Subscription Program tab to complete this step. Learn more about setting up a Subscription Program here.

2. Select subscription products

Now that your Subscription Program is created, your next step is to assign a product/s to this program.

Similarly to above, Smartrr can create a demo product for you if you press Use a demo product. This will create a Smartrr Snack Cookie (Demo) in your Shopify shop. You can use this demo product for previewing purposes, and will be able to delete it at a later date directly within your Shopify admin.

Note: If you select to create a Demo Product, it won't appear in previews or in your storefront until you go to your Shopify admin and set the product sales channel availability to "Online Store".

If you want to start with one of the existing products in your shop, press Select from existing products. You can select one or multiple products from the modal that appears.

Note: We recommend always using variants for your Shopify products when offering subscriptions, even if there is only one option for your product. Shopify auto-assigns a "Default variant" to a product that does not have any variants associated with it. If you decide to add variants to a product at a later date, and subscriptions are already running with the "Default variant", then those subscriptions will fail and will need to be re-mapped.

Optional: Smartrr optimizations

Now that you've completed the required Subscription setup steps, explore the remaining cards on this tab for ways you can further optimize your subscription business:

On-site setup

1. Install Smartrr snippets

Warning: To prevent Smartrr from showing up on your site before you're ready to launch, we recommend navigating back to Shopify’s Themes to duplicate a copy of your current theme (Actions > Duplicate). Name it something that is easily recognizable, such as [Your Store] Smartrr Integration Copy [Date].

Select the Shopify theme you'd like Smartrr snippets to be in stalled on. Smartrr Snippets are files that are injected into your code base and will not modify any existing liquid files. These are required in order to render Smartrr on your storefront. There are five files that will be added under the Snippets section in your theme's liquid code.

Note: If you're planning on using Smartrr's subscription widget, leave the I'm planning on using Smartrr's subscription widget box checked. If you're not using a liquid Shopify theme compatible with app blocks, and/or are planning to manually render subscription options on your shop's PDPs with the assistance of a developer, uncheck this box. If you're unsure, no worries. You can always duplicate a clean version of your Shopify theme and re-install Smartrr snippets again.

2. Add Smartrr subscription widget

Smartrr's subscription widget is an app block that can be added to your Default product page from your Shopify theme's online customizer.

If you installed Smartrr snippets to a theme that supports our widget, you will see a green banner during this step that reads: "You're using a Shopify theme that supports the block for our Smartrr Subscription widget."

Don't see this banner? Try our guided install instead.

Below are Shopify themes that are compatible with Smartrr's subscription widget: Colorblock Craft Crave Creator Dawn Enterprise Expanse Fetch Focal Impact Impulse Motion Origin Prestige Publisher Refresh Ride Sense Spotlight Streamline Studio Taste Warehouse

Click Add Smartrr subscription widget to be taken to your live theme editor. Make sure you are viewing Products > Default product. Additionally, make sure you are previewing a product that you have added to a Smartrr subscription program. Under Product information, click Add block and find Subscription Options.

You can customize the look and feel of Smartrr Subscription Options on your by manipulating the block's settings in the left-hand sidebar.

Note: 💻 Have a developer who would like to make even more changes to Smartrr's Widget? They can add custom CSS in the "Custom CSS" block.

Custom CSS Selectors
/* Universal Selectors */
.smartrr-plans-frequency-label /* Frequency Text */

[data-smartrr-price-style] /* Pricing Display */
[data-smartrr-subscribe-price] /* Subscription/OTP Price */
[data-smartrr-regular-price] /* Strikethrough Price */

/* Sub Program Radio Selectors */

[data-smartrr-selling-plan-group-input] + .smartrr-selling-plan-group-input-display:before /* Border color */

[data-smartrr-selling-plan-group-input] + .smartrr-selling-plan-group-input-display:after /* Inner Radio Color */

.smartrr-selling-plan-group-name /* Selling Plan Group Name Text */

/* Sub Program Dropdown */
[data-smartrr-selling-plan-group-select-id] /* Sets border/radius, width, padding, text and background color of the select element */

/* Sub Program Pills */
[data-smartrr-selling-plan-group-id].smartrr-group-active [data-smartrr-selling-plan-group-input-display-pills] /* Sets background and text color of active pill element */

[data-smartrr-selling-plan-group-id] [data-smartrr-selling-plan-group-input-display-pills] /* Sets background and text color of inactive pill element */

.smartrr-pills-header /* Used for font size, This affects group and plan pills */

[data-smartrr-selling-plan-group-input-display-pills] /* Sets border/border-radius */

/* Sub Program Grids */
.smartrr-grid-container /* Sets grid template for plan and group grids */

[data-smartrr-selling-plan-group-id].smartrr-group-active [data-smartrr-selling-plan-group-input-display-grid] /* Sets background and text color of active grid element */

[data-smartrr-selling-plan-groups-grid] [data-smartrr-selling-plan-group-input-display-grid] /* Sets background and text color of inactive grid element. Also sets font size */

[data-smartrr-selling-plan-group-input-display-grid] /* Sets border/border-radius of grid elements */

/* Plan Dropdown */
[data-smartrr-selling-plans-select] /* Selling plans dropdown */

/* Plan Radio */
[data-smartrr-selling-plan-radio] + .smartrr-selling-plan-input-display:before /* Border Color */

[data-smartrr-selling-plan-radio]:checked + .smartrr-selling-plan-input-display:after /* Inner Radio Color */

.smartrr-selling-plan-radio-header /* Selling Plan Name */

/* Plan Pills */
[data-smartrr-selling-plan-pills-header].smartrr-plan-active /* Active Pill Element, Used for background color and text color */

[data-smartrr-selling-plans-select].smartrr-pills-header /* Used for inactive elements background and text color. Also used for border settings/border-radius for plan pills */
.smartrr-pills-header /* Used for font size, This affects group and plan pills */

/* Plan Grids */
.smartrr-grid-container /* Sets the grid templates, also sets the width of grid container */

.smartrr-plan-active.smartrr-input-display-grid /* Active grid element’s background and text color */

[data-smartrr-selling-plans-select].smartrr-input-display-grid /* Inactive element’s background and text color. Also used for border settings/radius for all plan grid elements */


Why don't see Smartrr on my theme once I preview my shop?

Whether you've created a demo Subscription Program or made a new program from scratch, you may need to double check and make sure your program details have been successfully "saved". To do this, go to Subscription Programs > Manage Program. Check and see if there is a Discard / Save banner at the top, and click the green Save button.

Can I add subscription pricing outside the Smartrr subscription widget?

To add Smartrr's pricing element outside of the subscription widget, you can add the following code:

<div data-smartrr-product-id="{{ product.id }}" data-smartrr-price-
style="overwrite-compare" data-use-quantity="true">
  <span data-smartrr-compare-price></span>
  <span data-smartrr-regular-price></span>
  <span data-smartrr-subscribe-price></span>

Styling can be changed by adding the following values to the data-smartrr-price-style attribute.

  • original (Adds the original variant price/one-time purchase)

  • original-compare (Adds the original variant price/one-time purchase price and the compare price)

  • overwrite (Adds the current selected subscription plan's price)

  • overwrite-compare (Adds the current selected subscription plan's price and compare price)

  • strike (Discounted price struck through)

  • strike-compare (Compare at price struck through)

How do I enable variant selection within the Smartrr subscription widget?

  1. Find the product liquid file in your theme's code. This is usually named product.liquid or main-product.liquid, but can also be uniquely named if your shop uses a custom theme. If you can't find this file, you can also use theme.liquid.

  2. At the bottom of the file, paste the following code:

    document.addEventListener("DOMContentLoaded", function() {
        const SmartrrHandler = window.smartrrProductList["{{ product.id }}"];
        const variantSelectors = document.querySelectorAll('[data-variant-
            option - value]
        variantSelectors.forEach(selector => {
            selector.addEventListener('change', () => {
                // If the variant selectors values are the variant names
                const variantName = SmartrrHandler.ui.apiGetValue(selector);
                const variant =
                // If the variant selectors values are the variant ids
  1. In lines 4-5 above, input the unique selector for your variant selector elements. This can be done by inspecting the elements using your browser's developer tools and finding a class or data-attribute that is used only for variant selectors. Examples below:

// Class syntax: 


// Data-attribute syntax: 


Note: If your variant selectors are not <input> elements, then you can change the 'change' event listener to 'click'.

Still having trouble installing and don’t have access to a developer? We partner with a handful of excellent agencies. We also offer full white-glove onboarding support with our Grow and Excel plans.

Last updated