Skip to content

Buy More Save More Custom Template

Overview

This allows developers the ability to add custom functionality that is currently not achievable by the buy more save more widget settings. These templates can use any globally accessible functions. Developers can add additional Vue.js/HTML to these templates as needed. As these templates are written in Vue.js they accept any Vue.js attributes such as v-if for conditional rendering.

Setting up Custom Templates

There are a couple of ways these templates can be used. They can target all widgets of that widget type or, they can target a specific widget if you do not want the custom work to be applied to all widgets of that specific widget type.

Typically developers will create a new snippet named something like "rebuy-templates.liquid" and paste the contents of the code in that file. Then render that snippet in the associated file or in the theme.liquid file if they want the template to be globally accessible.

Buy More Save More Default Template

Last Updated: June 17th, 2026
<script id="rebuy-buy-more-save-more-template" type="text/template">
    <div
        class="rebuy-widget rebuy-buy-more-save-more rebuy-buy-more-save-more__widget"
        v-cloak
        :id="'rebuy-widget-' + id"
        :class="[visible ? 'is-visible' : 'is-hidden']"
        role="region"
        aria-label="Buy More Save More Widget"
    >
        <div
            class="rebuy-buy-more-save-more__layout"
            :class="['rebuy-buy-more-save-more__layout--' + config.layout.type]">
            <!-- Header -->
            <div class="rebuy-buy-more-save-more__header">
                <h3
                    v-if="getConfigLanguage('super_title')"
                    class="super-title rebuy-buy-more-save-more__header-super-title"
                    v-html="getConfigLanguage('super_title')">
                </h3>

                <h4
                    v-if="getConfigLanguage('title')"
                    class="primary-title rebuy-buy-more-save-more__header-title"
                    v-html="getConfigLanguage('title')">
                </h4>

                <p
                    v-if="getConfigLanguage('description')"
                    class="description rebuy-buy-more-save-more__header-description"
                    v-html="getConfigLanguage('description')">
                </p>
            </div>
            <!-- /Header -->

            <!-- Main -->
            <div class="rebuy-buy-more-save-more__main">
                <!-- Subscribe and Save Container - Above Position -->
                <div
                    v-if="shouldShowSwitchToSubscription() && getSubscriptionLayoutPosition() === 'above'"
                    class="rebuy-buy-more-save-more__subscribe-and-save-container"
                    :class="['rebuy-buy-more-save-more__subscribe-and-save-container--' + getSubscriptionLayoutType(), 'rebuy-buy-more-save-more__subscribe-and-save-container--above']"
                >
                    <!-- Purchase Type Tabs -->
                    <div class="rebuy-buy-more-save-more__purchase-type-tabs">
                        <div
                            class="rebuy-buy-more-save-more__purchase-type-tab rebuy-buy-more-save-more__purchase-type-tab--subscribe"
                            :class="{ 'rebuy-buy-more-save-more__purchase-type-tab--active': isSubscriptionPurchaseType() }"
                            @click="selectPurchaseType('subscription')"
                            role="button"
                            tabindex="0"
                            :aria-pressed="isSubscriptionPurchaseType() ? 'true' : 'false'"
                            @keydown.enter.prevent="selectPurchaseType('subscription')"
                            @keydown.space.prevent="selectPurchaseType('subscription')"
                        >
                            <div class="rebuy-buy-more-save-more__purchase-type-tab-content">
                                <span
                                    v-html="getConfigLanguage('subscribe_and_save_label')"
                                    class="rebuy-buy-more-save-more__purchase-type-tab-title">
                                </span>

                                <select
                                    id="rebuy-subscription-frequency-select"
                                    class="rebuy-select rebuy-buy-more-save-more__subscription-frequency-select"
                                    v-model="selected_interval"
                                    @change="updateSubscriptionInterval(selected_interval)"
                                    @click.stop
                                    :aria-label="getConfigLanguage('subscribe_and_save_label')"
                                >
                                    <option
                                        v-for="(interval, interval_index) in selling_plan_interval_list"
                                        v-bind:key="'rebuy-buy-more-save-more-subscription-interval--' + interval_index"
                                        v-bind:value="interval">
                                        {{ interval }}
                                    </option>
                                </select>

                                <p
                                    v-if="hasExcludedAddOnDiscountOnSub() && getConfigLanguage('excluded_bundle_discount_text')"
                                    v-html="getConfigLanguage('excluded_bundle_discount_text')"
                                    class="rebuy-buy-more-save-more__excluded-bundle-discount-text">
                                </p>
                            </div>
                        </div>

                        <div
                            v-if="shouldShowSwitchToOneTime()"
                            class="rebuy-buy-more-save-more__purchase-type-tab rebuy-buy-more-save-more__purchase-type-tab--one-time"
                            :class="{ 'rebuy-buy-more-save-more__purchase-type-tab--active': !isSubscriptionPurchaseType() }"
                            @click="selectPurchaseType('one-time')"
                            role="button"
                            tabindex="0"
                            :aria-pressed="!isSubscriptionPurchaseType() ? 'true' : 'false'"
                            @keydown.enter.prevent="selectPurchaseType('one-time')"
                            @keydown.space.prevent="selectPurchaseType('one-time')"
                        >
                            <div class="rebuy-buy-more-save-more__purchase-type-tab-content">
                                <span
                                    v-html="getConfigLanguage('one_time_label')"
                                    class="rebuy-buy-more-save-more__purchase-type-tab-title">
                                </span>
                            </div>
                        </div>
                    </div>
                    <!-- /Purchase Type Tabs -->
                </div>
                <!-- /Subscribe and Save Container - Above Position -->

                <!-- Blocks Type -->
                <div
                    v-if="!isProgressBarLayout()"
                    class="rebuy-buy-more-save-more__blocks-container"
                    role="radiogroup"
                    aria-label="Select a tier option"
                    :class="[
                        'rebuy-buy-more-save-more__blocks-container--' + config.layout.type,
                        'rebuy-buy-more-save-more__blocks-container--align-' + getLayoutThemeContentAlignment(),
                        layoutBlocksClasses
                    ]">
                    <div
                        v-for="(tier, tier_index) in getConfigTiers()"
                        :key="tier_index + '-' + getTierLanguage(tier, 'label')"
                        :class="[
                        'rebuy-buy-more-save-more__block',
                        'rebuy-buy-more-save-more__block--' + tier_index,
                        'rebuy-buy-more-save-more__block--' + (selected_tier_index === tier_index ? 'active' : 'inactive')
                        ]"
                        @click="selectTier(tier_index)"
                        @keydown.enter.prevent="selectTier(tier_index)"
                        @keydown.space.prevent="selectTier(tier_index)"
                        role="radio"
                        :aria-checked="selected_tier_index === tier_index ? 'true' : 'false'"
                        :aria-labelledby="'rebuy-tier-label-' + tier_index"
                        tabindex="0"
                    >
                        <div class="rebuy-buy-more-save-more__block-info-container">
                            <div class="rebuy-buy-more-save-more__block-info">
                                <div class="rebuy-buy-more-save-more__block-info-utility">
                                    <label v-if="hasRadioButtonEnabled()" class="rebuy-radio-label">
                                        <input
                                            type="radio"
                                            name="rebuy-buy-more-save-more-tier"
                                            :id="'rebuy-buy-more-save-more-tier-' + tier_index"
                                            v-model="selected_tier_index"
                                            :value="tier_index"
                                            class="radio-input rebuy-radio rebuy-buy-more-save-more__radio-input"
                                            tabindex="-1"
                                            :aria-label="getTierLanguage(tier, 'label') + ' - ' + formatMoney(tier.price)"
                                        />

                                        <span class="radio-label sr-only" :aria-label="getTierLanguage(tier, 'label')"></span>
                                    </label>


                                    <div v-if="getTierImage(tier)" class="rebuy-buy-more-save-more__block-info-image">
                                        <img
                                            :src="getTierImage(tier)"
                                            :alt="getTierLanguage(tier, 'label')"
                                            class="rebuy-buy-more-save-more__block-info-image-img"
                                        />
                                    </div>
                                </div>

                                <div class="rebuy-buy-more-save-more__block-info-header">
                                    <h3
                                        :id="'rebuy-tier-label-' + tier_index"
                                        class="rebuy-product-title rebuy-buy-more-save-more__block-info-title"
                                        v-html="getTierLanguage(tier, 'label')">
                                    </h3>
                                    <p
                                        :id="'rebuy-tier-desc-' + tier_index"
                                        class="rebuy-product-description rebuy-buy-more-save-more__block-info-description"
                                        v-html="getTierLanguage(tier, 'description')">
                                    </p>
                                </div>
                            </div>

                            <div class="rebuy-buy-more-save-more__block-info-body">
                                <div v-if="tierOnSale(tier)" class="rebuy-buy-more-save-more__block-info-price-container">
                                    <span class="rebuy-money sale rebuy-buy-more-save-more__block-price-text rebuy-buy-more-save-more__block-info-price">
                                        <span class="sr-only">Sale tier price: </span>
                                        <span aria-hidden="false" v-html="formatMoney(tier.price)"></span>
                                    </span>

                                    <span class="rebuy-money compare-at rebuy-buy-more-save-more__block-price-text rebuy-buy-more-save-more__block-info-compare-at-price">
                                        <span class="sr-only">Original price: </span>
                                        <span aria-hidden="false" v-html="formatMoney(tier.compare_at_price)"></span>
                                    </span>
                                </div>

                                <div v-if="!(tierOnSale(tier))">
                                    <span class="rebuy-money rebuy-buy-more-save-more__block-price-text rebuy-buy-more-save-more__block-info-price">
                                        <span class="sr-only">Price: </span>
                                        <span aria-hidden="false" v-html="formatMoney(tier.price)"></span>
                                    </span>
                                </div>

                                <p v-if="shouldShowUnitPriceForTier(tier)" class="rebuy-product-unit rebuy-buy-more-save-more__block-price-text rebuy-buy-more-save-more__block-info-unit">
                                    <span class="sr-only">Unit price: </span>
                                    <span class="rebuy-money" v-html="formatMoney(tier.unit_price)"></span>/<span class="rebuy-product-unit-text" v-html="tier.unit_label"></span>
                                </p>
                            </div>
                        </div>

                        <!-- Custom Variant Selector For Vertical/Horizontal Layout Type Only -->
                        <div
                            v-if="!isProgressBarLayout() && shouldShowVariantOptionsForTier(tier_index)"
                            class="rebuy-buy-more-save-more__block-info-variants">
                            <div
                                v-for="(product, product_index) in getTierSelectedProducts(tier_index)"
                                v-if="!productHasDefaultVariantTitle(product)"
                                class="rebuy-buy-more-save-more__block-info-variant"
                                :class="['rebuy-buy-more-save-more__block-info-variant--' + getTierSelectedProducts(tier_index).length]"
                                :key="product_index + '-' + product.id"
                                >
                                <label
                                    class="rebuy-buy-more-save-more__block-info-variant-label"
                                    :for="id + '-' + 'select' + '-' + product.id + '-' + product_index"
                                    >
                                    <span
                                        v-html="getCustomSelectProductLabel(tier_index, product_index)"
                                        class="rebuy-buy-more-save-more__block-info-variant-label-text">
                                    </span>
                                </label>

                                <!-- Variant Selector -->
                                <select
                                    v-if="isProductOptionVariantSelect()"
                                    title="Select product variant"
                                    :id="id + '-' + 'select' + '-' + product.id + '-' + product_index"
                                    :class="{ hide : !isProductOptionVariantSelect() }"
                                    class="rebuy-select"
                                    v-bind:aria-label="'variant of ' + product.title"
                                    v-model="product.selected_variant_id"
                                    v-on:change="selectVariantForSelectedProduct(product, tier_index)"
                                    >
                                    <option
                                        v-for="(variant, variant_index) in getVariantsOnSelectedProduct(product)"
                                        :key="variant_index + '-' + variant.id"
                                        class="rebuy-product-options__option"
                                        :class="{ 'rebuy-product-options__option--oos' : !variantAvailable(variant) }"
                                        v-bind:value="variant.id"
                                        :disabled="!variantAvailable(variant)"
                                        v-html="formatVariantOptionTitle(variant)">
                                    </option>
                                </select>
                                <!-- /Variant Selector -->

                                <!-- Swatch Selector -->
                                <div
                                    v-if="!isProductOptionVariantSelect()"
                                    class="rebuy-product-options__button-swatches-container rebuy-buy-more-save-more__button-swatches-container"
                                    :class="{ 'rebuy-style__hidden-block' : isProductOptionVariantSelect() }"
                                    >
                                    <div
                                        v-for="option in product.options"
                                        :key="'option-' + product.id + '-' + option.name"
                                        class="rebuy-product-options__button-swatches rebuy-size-swatches"
                                        >
                                        <div
                                            v-for="(value, value_index) in getSelectedProductOptions(option, product)"
                                            :key="'value-' + product.id + '-' + option.name + '-' + value + '-' + value_index"
                                            >
                                            <div v-if="displayColorSwatches(option)" class="rebuy-product-options__button-swatch rebuy-color-swatch">
                                                <input
                                                    :name="id + '-color-' + product_index"
                                                    :id="id + '-color-' + product_index + '-' + value + '-' + value_index"
                                                    :checked="hasSwatchOptionSelected(product, value, value_index, 'color')"
                                                    :value="value"
                                                    type="radio"
                                                    class="rebuy-color-input hide"
                                                    v-on:change="selectVariantByOption(product, option.name, value)"
                                                    :disabled="isDisabledOptionValue(product, option.name, value)"
                                                />

                                                <label
                                                    :for="id + '-color-' + product_index + '-' + value + '-' + value_index"
                                                    :style="getMerchantThemeColorAssetStyle(value)"
                                                    :title="value"
                                                    class="rebuy-color-label"
                                                    :class="{ 'rebuy-product-options__button-swatch-label--disabled' : isDisabledOptionValue(product, option.name, value) }"
                                                >
                                                </label>
                                            </div>

                                            <div v-if="!displayColorSwatches(option)" class="rebuy-product-options__button-swatch rebuy-size-swatch">
                                                <input
                                                    :name="id + '-' + option.name + '-' + product_index"
                                                    :id="id + '-' + option.name + '-' + product_index + '-' + value"
                                                    :checked="hasSwatchOptionSelected(product, value, value_index, option.name)"
                                                    :value="value"
                                                    type="radio"
                                                    class="rebuy-size-input hide"
                                                    v-on:change="selectVariantByOption(product, option.name, value)"
                                                    :disabled="isDisabledOptionValue(product, option.name, value)"
                                                />

                                                <label
                                                    :for="id + '-' + option.name + '-' + product_index + '-' + value"
                                                    class="rebuy-size-label"
                                                    :class="{ 'rebuy-product-options__button-swatch-label--disabled' : isDisabledOptionValue(product, option.name, value) }"
                                                >
                                                    {{ value }}
                                                </label>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                <!-- /Swatch Selector -->
                            </div>
                        </div>
                        <!-- /Custom Variant Selector For Vertical/Horizontal Layout Type Only -->
                    </div>
                </div>
                <!-- /Blocks Type -->

                <!-- Progress Bar Type -->
                <div
                    v-if="isProgressBarLayout()"
                    class="rebuy-buy-more-save-more__dragger-container"
                    :class="['rebuy-buy-more-save-more__dragger-container--' + config.layout.type]">
                    <div
                        class="rebuy-buy-more-save-more__dragger-labels"
                        :class="['rebuy-buy-more-save-more__dragger-labels--align-' + getLayoutThemeContentAlignment()]"
                        role="list"
                        aria-label="Available tiers"
                        >
                        <div
                            v-for="(tier, tier_index) in getConfigTiers()"
                            class="rebuy-buy-more-save-more__dragger-label"
                            :key="tier_index + '-' + getTierLanguage(tier, 'label')"
                            :class="[
                                'rebuy-buy-more-save-more__dragger-label--' + tier_index,
                                selected_tier_index >= tier_index ? 'rebuy-buy-more-save-more__dragger-label--active' : ''
                            ]"
                            role="listitem"
                            @click="selectTier(tier_index)"
                        >
                            <div class="rebuy-buy-more-save-more__dragger-header">
                                <div
                                    class="rebuy-buy-more-save-more__dragger-image-title-container"
                                    :class="['rebuy-buy-more-save-more__dragger-image-title-container--' + getProductQuantityPosition()]"
                                >
                                    <div v-if="getTierImage(tier)" class="rebuy-buy-more-save-more__dragger-image">
                                        <img
                                            :src="getTierImage(tier)"
                                            :alt="getTierLanguage(tier, 'label')"
                                            class="rebuy-buy-more-save-more__dragger-image-img"
                                        />
                                    </div>

                                    <h3
                                        :id="'rebuy-tier-title-' + tier_index"
                                        class="rebuy-product-title rebuy-buy-more-save-more__block-info-title"
                                        v-html="getTierLanguage(tier, 'label')">
                                    </h3>
                                </div>

                                <p
                                    :id="'rebuy-tier-description-' + tier_index"
                                    class="rebuy-product-description rebuy-buy-more-save-more__block-info-description"
                                    v-html="getTierLanguage(tier, 'description')">
                                </p>
                            </div>

                            <div class="rebuy-buy-more-save-more__dragger-body">
                                <div v-if="tierOnSale(tier)" class="rebuy-buy-more-save-more__dragger-price-container">
                                    <span class="rebuy-money sale rebuy-buy-more-save-more__block-price-text rebuy-buy-more-save-more__block-info-price">
                                        <span class="sr-only">Sale tier price: </span>
                                        <span aria-hidden="false" v-html="formatMoney(tier.price)"></span>
                                    </span>

                                    <span class="rebuy-money compare-at rebuy-buy-more-save-more__block-price-text rebuy-buy-more-save-more__block-info-compare-at-price">
                                        <span class="sr-only">Original price: </span>
                                        <span aria-hidden="false" v-html="formatMoney(tier.compare_at_price)"></span>
                                    </span>
                                </div>

                                <div v-if="!tierOnSale(tier)">
                                    <span class="rebuy-money rebuy-buy-more-save-more__block-price-text rebuy-buy-more-save-more__block-info-price">
                                        <span class="sr-only">Price: </span>
                                        <span aria-hidden="false" v-html="formatMoney(tier.price)"></span>
                                    </span>
                                </div>

                                <p v-if="shouldShowUnitPriceForTier(tier)" class="rebuy-product-unit rebuy-buy-more-save-more__block-price-text rebuy-buy-more-save-more__block-info-unit">
                                    <span class="sr-only">Unit price: </span>
                                    <span class="rebuy-money" v-html="formatMoney(tier.unit_price)"></span>/<span class="rebuy-product-unit-text" v-html="tier.unit_label"></span>
                                </p>
                            </div>
                        </div>
                    </div>

                    <div class="rebuy-buy-more-save-more__dragger-track-container">
                        <div
                            class="rebuy-buy-more-save-more__dragger-track-fill"
                            :style="{ width: getProgressBarFillPercentage() }"
                        ></div>

                        <input
                            type="range"
                            v-model.number="selected_tier_index"
                            :min="0"
                            :max="getConfigTiersLastIndex()"
                            :step="1"
                            aria-label="Select tier"
                            :aria-valuetext="'Tier ' + (selected_tier_index + 1) + ' of ' + getConfigTiersLength()"
                            :aria-valuenow="selected_tier_index"
                            :aria-valuemin="0"
                            :aria-valuemax="getConfigTiersLastIndex()"
                        />
                    </div>

                    <!-- Custom Variant Selector For Progress Bar Layout Type Only -->
                    <div
                        v-if="isProgressBarLayout() && shouldShowVariantOptionsForTier(selected_tier_index)"
                        class="rebuy-buy-more-save-more__block-info-variants">
                        <div
                            v-for="(product, product_index) in getTierSelectedProducts(selected_tier_index)"
                            v-if="!productHasDefaultVariantTitle(product)"
                            class="rebuy-buy-more-save-more__block-info-variant"
                            :class="['rebuy-buy-more-save-more__block-info-variant--' + getTierSelectedProducts(selected_tier_index).length]"
                            :key="product_index + '-' + product.id"

                        >
                            <label
                                class="rebuy-buy-more-save-more__block-info-variant-label"
                                :for="id + '-' + 'select' + '-' + product.id + '-' + product_index"
                                >
                                <span
                                    v-html="getCustomSelectProductLabel(selected_tier_index, product_index)"
                                    class="rebuy-buy-more-save-more__block-info-variant-label-text">
                                </span>
                            </label>

                            <!-- Variant Selector -->
                            <select
                                v-if="isProductOptionVariantSelect()"
                                title="Select product variant"
                                :id="id + '-' + 'select' + '-' + product.id + '-' + product_index"
                                :class="{ hide : !isProductOptionVariantSelect() }"
                                class="rebuy-select"
                                v-bind:aria-label="'variant of ' + product.title"
                                v-model="product.selected_variant_id"
                                v-on:change="selectVariantForSelectedProduct(product, selected_tier_index)"
                                >
                                <option
                                    v-for="(variant, variant_index) in getVariantsOnSelectedProduct(product)"
                                    :key="variant_index + '-' + variant.id"
                                    class="rebuy-product-options__option"
                                    :class="{ 'rebuy-product-options__option--oos' : !variantAvailable(variant) }"
                                    v-bind:value="variant.id"
                                    :disabled="!variantAvailable(variant)"
                                    v-html="formatVariantOptionTitle(variant)">
                                </option>
                            </select>
                            <!-- /Variant Selector -->

                            <!-- Swatch Selector -->
                            <div
                                v-if="!isProductOptionVariantSelect()"
                                class="rebuy-product-options__button-swatches-container rebuy-buy-more-save-more__button-swatches-container"
                                :class="{ 'rebuy-style__hidden-block' : isProductOptionVariantSelect() }"
                                >
                                <div
                                    v-for="option in product.options"
                                    :key="'option-' + product.id + '-' + option.name"
                                    class="rebuy-product-options__button-swatches rebuy-size-swatches"
                                    >
                                    <div
                                        v-for="(value, value_index) in getSelectedProductOptions(option, product)"
                                        :key="'value-' + product.id + '-' + option.name + '-' + value + '-' + value_index"
                                        >
                                        <div v-if="displayColorSwatches(option)" class="rebuy-product-options__button-swatch rebuy-color-swatch">
                                            <input
                                                :name="id + '-color-' + product_index"
                                                :id="id + '-color-' + product_index + '-' + value + '-' + value_index"
                                                :checked="hasSwatchOptionSelected(product, value, value_index, 'color')"
                                                :value="value"
                                                type="radio"
                                                class="rebuy-color-input hide"
                                                v-on:change="selectVariantByOption(product, option.name, value)"
                                                :disabled="isDisabledOptionValue(product, option.name, value)"
                                            />

                                            <label
                                                :for="id + '-color-' + product_index + '-' + value + '-' + value_index"
                                                :style="getMerchantThemeColorAssetStyle(value)"
                                                :title="value"
                                                class="rebuy-color-label"
                                                :class="{ 'rebuy-product-options__button-swatch-label--disabled' : isDisabledOptionValue(product, option.name, value) }"
                                            >
                                            </label>
                                        </div>

                                        <div v-if="!displayColorSwatches(option)" class="rebuy-product-options__button-swatch rebuy-size-swatch">
                                            <input
                                                :name="id + '-' + option.name + '-' + product_index"
                                                :id="id + '-' + option.name + '-' + product_index + '-' + value"
                                                :checked="hasSwatchOptionSelected(product, value, value_index, option.name)"
                                                :value="value"
                                                type="radio"
                                                class="rebuy-size-input hide"
                                                v-on:change="selectVariantByOption(product, option.name, value)"
                                                :disabled="isDisabledOptionValue(product, option.name, value)"
                                            />

                                            <label
                                                :for="id + '-' + option.name + '-' + product_index + '-' + value"
                                                class="rebuy-size-label"
                                                :class="{ 'rebuy-product-options__button-swatch-label--disabled' : isDisabledOptionValue(product, option.name, value) }"
                                            >
                                                {{ value }}
                                            </label>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <!-- /Swatch Selector -->
                        </div>
                    </div>
                    <!-- /Custom Variant Selector For Progress Bar Layout Type Only -->
                </div>
                <!-- /Progress Bar Type -->

                <!-- Subscribe and Save Container - Below Position -->
                <div
                    v-if="shouldShowSwitchToSubscription() && getSubscriptionLayoutPosition() === 'below'"
                    class="rebuy-buy-more-save-more__subscribe-and-save-container"
                    :class="['rebuy-buy-more-save-more__subscribe-and-save-container--' + getSubscriptionLayoutType(), 'rebuy-buy-more-save-more__subscribe-and-save-container--below']"
                >
                    <!-- Purchase Type Tabs -->
                    <div class="rebuy-buy-more-save-more__purchase-type-tabs">
                        <div
                            class="rebuy-buy-more-save-more__purchase-type-tab rebuy-buy-more-save-more__purchase-type-tab--subscribe"
                            :class="{ 'rebuy-buy-more-save-more__purchase-type-tab--active': isSubscriptionPurchaseType() }"
                            @click="selectPurchaseType('subscription')"
                            role="button"
                            tabindex="0"
                            :aria-pressed="isSubscriptionPurchaseType() ? 'true' : 'false'"
                            @keydown.enter.prevent="selectPurchaseType('subscription')"
                            @keydown.space.prevent="selectPurchaseType('subscription')"
                        >
                            <div class="rebuy-buy-more-save-more__purchase-type-tab-content">
                                <span
                                    v-html="getConfigLanguage('subscribe_and_save_label')"
                                    class="rebuy-buy-more-save-more__purchase-type-tab-title">
                                </span>

                                <select
                                    id="rebuy-subscription-frequency-select-below"
                                    class="rebuy-select rebuy-buy-more-save-more__subscription-frequency-select"
                                    v-model="selected_interval"
                                    @change="updateSubscriptionInterval(selected_interval)"
                                    @click.stop
                                    :aria-label="getConfigLanguage('subscribe_and_save_label')"
                                >
                                    <option
                                        v-for="(interval, interval_index) in selling_plan_interval_list"
                                        v-bind:key="'rebuy-buy-more-save-more-subscription-interval-below--' + interval_index"
                                        v-bind:value="interval">
                                        {{ interval }}
                                    </option>
                                </select>

                                <p
                                    v-if="hasExcludedAddOnDiscountOnSub() && getConfigLanguage('excluded_bundle_discount_text')"
                                    v-html="getConfigLanguage('excluded_bundle_discount_text')"
                                    class="rebuy-buy-more-save-more__excluded-bundle-discount-text">
                                </p>
                            </div>
                        </div>

                        <div
                            v-if="shouldShowSwitchToOneTime()"
                            class="rebuy-buy-more-save-more__purchase-type-tab rebuy-buy-more-save-more__purchase-type-tab--one-time"
                            :class="{ 'rebuy-buy-more-save-more__purchase-type-tab--active': !isSubscriptionPurchaseType() }"
                            @click="selectPurchaseType('one-time')"
                            role="button"
                            tabindex="0"
                            :aria-pressed="!isSubscriptionPurchaseType() ? 'true' : 'false'"
                            @keydown.enter.prevent="selectPurchaseType('one-time')"
                            @keydown.space.prevent="selectPurchaseType('one-time')"
                        >
                            <div class="rebuy-buy-more-save-more__purchase-type-tab-content">
                                <span
                                    v-html="getConfigLanguage('one_time_label')"
                                    class="rebuy-buy-more-save-more__purchase-type-tab-title">
                                </span>
                            </div>
                        </div>
                    </div>
                <!-- /Purchase Type Tabs -->
                </div>
                <!-- /Subscribe and Save Container - Below Position -->
            </div>
            <!-- /Main -->
        </div>
    </div>
</script>
See something that needs updating? Suggest an edit