Sun-Free Tanning Lotion for a Natural Golden Glow – Vegan, Hydrating & Streak-Free
${function() {
const variantData = data.variant || {"id":"573cc7f2-921f-4c44-91b1-61bc22faa03c","product_id":"fa75c654-13e8-4ef0-b6d7-506e6ec1d40c","title":"Fair to Medium","weight_unit":"kg","inventory_quantity":0,"sku":"Tanning Lotion FTM","barcode":"","position":1,"option1":"Fair to Medium","option2":"","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/eed867e7536c6b7327fef657e44d3046.png","path":"eed867e7536c6b7327fef657e44d3046.png","width":1100,"height":1100,"alt":"Sun-Free Tanning Lotion for a Natural Golden Glow \u2013 Vegan, Hydrating & Streak-Free","aspect_ratio":1},"wholesale_price":[{"price":31.97,"min_quantity":1}],"weight":"0","compare_at_price":"60.99","price":"31.97","retail_price":"60.99","available":true,"url":"\/products\/sun-free-tanning-lotion?variant=573cc7f2-921f-4c44-91b1-61bc22faa03c","available_quantity":999999999,"options":[{"name":"Color","value":"Fair to Medium"}],"off_ratio":48,"flashsale_info":[],"sales":0};
const saveType = "percentage";
const productLabelDiscountOn = true;
return `
-
${saveType == 'percentage'
? `-${variantData.off_ratio}% `
: `- `
}
`;
}()}
Color:
Fair to Medium
${function(){
const optName = "Color";
const optionValue = data.originData.selectData ? data.originData.selectData[optName].value : data.originData.value;
const optionValueText = optionValue ? (optionValue) : '';
return `${optionValueText} `;
}()}
${function(){
const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data);
return `${tipText}
`
}()}
Add to cart
$31.97
${function(){
const wholesale_enabled = false;
const qty = data.quantity || 1;
const currentSelectVariant = data.variant;
const defaultVariant = (data.product && data.product.variants && data.product.variants[0]);
const productVariant = {"id":"573cc7f2-921f-4c44-91b1-61bc22faa03c","product_id":"fa75c654-13e8-4ef0-b6d7-506e6ec1d40c","title":"Fair to Medium","weight_unit":"kg","inventory_quantity":0,"sku":"Tanning Lotion FTM","barcode":"","position":1,"option1":"Fair to Medium","option2":"","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/eed867e7536c6b7327fef657e44d3046.png","path":"eed867e7536c6b7327fef657e44d3046.png","width":1100,"height":1100,"alt":"Sun-Free Tanning Lotion for a Natural Golden Glow \u2013 Vegan, Hydrating & Streak-Free","aspect_ratio":1},"wholesale_price":[{"price":31.97,"min_quantity":1}],"weight":"0","compare_at_price":"60.99","price":"31.97","retail_price":"60.99","available":true,"url":"\/products\/sun-free-tanning-lotion?variant=573cc7f2-921f-4c44-91b1-61bc22faa03c","available_quantity":999999999,"options":[{"name":"Color","value":"Fair to Medium"}],"off_ratio":48,"flashsale_info":[],"sales":0};
const variantData = currentSelectVariant || defaultVariant || productVariant;
const wholesale_price = variantData.wholesale_price || [];
if(wholesale_enabled && wholesale_price.length > 0) {
let wholesaleIndex = wholesale_price.findIndex(item => {
return item.min_quantity > qty;
});
if(wholesaleIndex < 0){
wholesaleIndex = wholesale_price.length - 1;
}else if(wholesaleIndex > 0){
wholesaleIndex = wholesaleIndex - 1;
}
const wholesalePrice = wholesale_price[wholesaleIndex] || '';
return `
`
}else {
const price = variantData && variantData.price;
return price != undefined ? `
` : ' ';
}
}()}
Buy now
Product was out of stock.
Product is unavailable.
✨ Sunless Tanning Lotion – Natural Glow, No Sun Needed ☀️
Enjoy a radiant golden tan without the harmful rays! This plant-based tanning lotion delivers a natural-looking sun-kissed glow while deeply nourishing your skin. Perfect for all skin tones, from fair to deep, and all skin types – even sensitive!
🌿 Why You'll Love It
🧴 Moisturizes & Nourishes – Infused with organic shea butter, aloe vera, and jojoba oil
🌱 Clean & Conscious – Natural, organic, vegan, cruelty-free & non-toxic
✨ Glow Without Streaks – Smooth application with even color
🌼 Brightens & Revitalizes – Supports radiant, healthy-looking skin
🌸 Soothing Formula – Great for sensitive skin with calming plant extracts
🍃 Alcohol-Free & Sulfate-Free – Gentle and safe for everyday use
🧪 Ingredient Highlights
Dihydroxyacetone (sugar beet-derived): key tanning agent
Aloe Vera & Coconut Oil : hydrate and soothe
Japanese Green Tea & Pomegranate Extracts : antioxidant-rich care
Witch Hazel & Cranberry : tone and brighten
Argan Oil & Jojoba Oil : deeply nourish and restore skin texture
📦 Product Details
🔹 Volume : 222 ml (Single Pack)
🔹 Form : Lotion
🔹 Shelf Life : 12 Months
🔹 Skin Type : All – oily, dry, combination & normal
🔹 Free From : Alcohol, sulfates, parabens, phthalates, and chemicals
🔹 Does Not Contain : Aerosols, batteries, flammable liquids
Glow naturally, feel amazing – no sunburn, no guilt. 🌞💛
/** @private {string} */
class SpzCustomAnchorScroll extends SPZ.BaseElement {
static deferredMount() {
return false;
}
constructor(element) {
super(element);
/** @private {Element} */
this.scrollableContainer_ = null;
}
isLayoutSupported(layout) {
return layout == SPZCore.Layout.LOGIC;
}
buildCallback() {
this.viewport_ = this.getViewport();
this.initActions_();
}
setTarget(containerId, targetId) {
this.containerId = '#' + containerId;
this.targetId = '#' + targetId;
}
scrollToTarget() {
const container = document.querySelector(this.containerId);
const target = container.querySelector(this.targetId);
const {scrollTop} = container;
const eleOffsetTop = this.getOffsetTop_(target, container);
this.viewport_
.interpolateScrollIntoView_(
container,
scrollTop,
scrollTop + eleOffsetTop
);
}
initActions_() {
this.registerAction(
'scrollToTarget',
(invocation) => this.scrollToTarget(invocation?.caller)
);
this.registerAction(
'setTarget',
(invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId)
);
}
/**
* @param {Element} element
* @param {Element} container
* @return {number}
* @private
*/
getOffsetTop_(element, container) {
if (!element./*OK*/ getClientRects().length) {
return 0;
}
const rect = element./*OK*/ getBoundingClientRect();
if (rect.width || rect.height) {
return rect.top - container./*OK*/ getBoundingClientRect().top;
}
return rect.top;
}
}
SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll);
const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings";
class SpzCustomStrengthenTrust extends SPZ.BaseElement {
constructor(element) {
super(element);
this.renderElement_ = null;
}
isLayoutSupported(layout) {
return layout == SPZCore.Layout.CONTAINER;
}
buildCallback() {
this.xhr_ = SPZServices.xhrFor(this.win);
const renderId = this.element.getAttribute('render-id');
SPZCore.Dom.waitForChild(
document.body,
() => !!document.getElementById(renderId),
() => {
this.renderElement_ = SPZCore.Dom.scopedQuerySelector(
document.body,
`#${renderId}`
);
if (this.renderElement_) {
this.render_();
}
this.registerAction('track', (invocation) => {
this.track_(invocation.args);
});
}
);
}
render_() {
this.fetchData_().then((data) => {
if (!data) {
return;
}
SPZ.whenApiDefined(this.renderElement_).then((apis) => {
apis?.render(data);
document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{
if(event.target.nodeName == 'A'){
this.track_({type: 'trust_content_click'});
}
})
});
});
}
track_(data = {}) {
const track = window.sa && window.sa.track;
if (!track) {
return;
}
track('trust_enhancement_event', data);
}
parseJSON_(string) {
let result = {};
try {
result = JSON.parse(string);
} catch (e) {}
return result;
}
fetchData_() {
return this.xhr_
.fetchJson(STRENGTHEN_TRUST_URL)
.then((responseData) => {
if (!responseData || !responseData.data) {
return null;
}
const data = responseData.data;
const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => {
return result.concat(Object.assign(moduleSetting, {
logos: (moduleSetting.logos || []).map((item) => {
return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item;
})
}));
}, []);
return Object.assign(data, {
module_settings: moduleSettings,
isEditor: window.self !== window.top,
});
});
}
}
SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);
${data.module_title}
To display this card to customers, you need to go to "Booster & Store Conversion" to turn on the trust enhancement feature.
${item.content.replaceAll("{store_name}","The Green Nutrition")}
To display this card to customers, you need to go to "Booster & Store Conversion" to turn on the trust enhancement feature.
${function() {
const postageFreeAmount = 59;
const custom_text = "Buy {amount} more to enjoy FREE Shipping";
const totalPrice = +data.total_price;
const diffPrice = postageFreeAmount - totalPrice;
const percentDiff = (diffPrice > 0 ? (totalPrice / postageFreeAmount * 100) : 100) + '%';
let tipText = "Your order is free delivery";
if (diffPrice > 0) {
tipText = custom_text.replace('{amount}', `
`);
}
return `
`;
}()}
people are viewing this right now
const addToCartText = "Add to cart";
SPZCore.Dom.waitForChild(
document.body,
() => !!document.querySelector('[data-click="addToCart"], [role="addToCart"]'),
() => {
const addToCartEle = window.SPZCore.Dom.scopedQuerySelector(
document.body,
'[data-click="addToCart"], [role="addToCart"]'
);
const getContentChild_ = function(el) {
if(el) {
const childs = el.childNodes;
for (let i = childs.length - 1; i >= 0; i--) {
const child = childs[i];
if (child.getAttribute && child.getAttribute('role') === 'content') {
return child;
}
}
}
return;
}
const changeAddToCartText = function(text) {
const contentEle = getContentChild_(addToCartEle);
if(contentEle){
const addToCartChilds = addToCartEle.childNodes;
for (let i = addToCartChilds.length - 1; i >= 0; i--) {
const child = addToCartChilds[i];
if (typeof child.getAttribute !== 'function' || (child.getAttribute('role') !== 'content' && child.getAttribute('role') !== 'loading')) {
addToCartEle.removeChild(child);
}
}
}else{
addToCartEle.innerHTML = addToCartText;
}
}
changeAddToCartText(addToCartText);
}
);
const SITE = (window.C_SETTINGS && window.C_SETTINGS.routes && window.C_SETTINGS.routes.root) || '';
const PRODUCT_PLAN_INFO_URL =
`${SITE}/api/storefront/selling_plans/product_plan_info/:product_id`;
const { i18nProductDetail, i18nProduct } = JSON.parse(
document.querySelector('#i18n-json').textContent
);
const currentI18nProduct = i18nProductDetail || i18nProduct;
class SpzCustomSubscription extends SPZ.BaseElement {
constructor(element) {
super(element);
this.productPlanInfo = null;
this.cycle = null;
this.optionid_ = null;
this.form_ = null;
this.variantId_ = null;
this.variantChangeData = null;
this.cycleList = [1,2];
this.productId = this.element.getAttribute('productId');
this.initialCycle = this.element.getAttribute('cycles');
this.noPlanShowTitle = JSON.parse(this.element.getAttribute('noPlanShowTitle'));
}
get initIsCycleSubscribe() {
if(this.initialCycle == 2) {
return true;
}
if(this.initialCycle == 1) {
return false;
}
return null;
}
get productInfo() {
let pJson = document.querySelector('#product-json');
if (pJson) {
return JSON.parse(pJson.innerHTML);
}else if(typeof $ === 'function' && typeof $(document).data === 'function') {
return $(document).data('djproduct');
}
return null;
}
get hasSKU() {
if(this.productPlanInfo?.sku) {
return true;
}
return false
}
get hasSPU() {
if(this.productPlanInfo?.spu) {
return true;
}
return false
}
get originalPrice() {
if(!this.variantChangeData?.selected?.price){
return '';
};
return this.variantChangeData.selected.price;
}
get defaultPlanData() {
if (!this.productPlanInfo) {
return {};
}
let planInfo = {};
if(this.hasSPU && this.productPlanInfo?.spu[this.productId]) {
planInfo = this.productPlanInfo.spu[this.productId];
}else if(this.hasSKU && this.productPlanInfo?.sku[this.variantId_]) {
planInfo = this.productPlanInfo.sku[this.variantId_];
}
return planInfo;
}
get defaultCycle_() {
if(!this.defaultPlanData) {
return null;
}
return this.defaultPlanData.cycles;
}
get defaultOption_() {
if(!this.defaultPlanData) {
return null;
}
return this.defaultPlanData.selected_selling_plan_option_id;
}
get isCycleSubscribe() {
if(this.cycle === 2) {
return true;
}
if(this.cycle === 1) {
return false;
}
return null;
}
get currentOption_() {
if(!this.isCycleSubscribe){
return null;
}
if(!this.optionId_) {
return this.defaultOption_;
}
return this.optionId_;
}
get currentPlanData() {
if(!this.defaultPlanData) {
return {};
}
let result = Object.assign({},this.defaultPlanData);
if(result.selected_selling_plan_option_id !== this.optionId_) {
result.selected_selling_plan_option_id = this.optionId_;
result.selling_plan_options = result.selling_plan_options.map(item => {
return {
...item,
selected_enabled: item.selling_plan_option_id === result.selected_selling_plan_option_id
}
})
}
if (result.cycles !== this.cycle) {
result.cycles = this.cycle;
}
return result;
}
fetchData_(product_id) {
return SPZServices.xhrFor(this.win).fetchJson(PRODUCT_PLAN_INFO_URL.replace(/:product_id/gi, product_id))
.then((data) => {
this.productPlanInfo = data;
}
);
}
isLayoutSupported(layout) {
return layout == SPZCore.Layout.CONTAINER;
}
mountCallback() {
console.log('subsciption-mountCallback');
this.initVariantId();
if(!!this.variantId_) {
this.track_('product_view', this.initIsCycleSubscribe);
}
this.getElement_();
Promise.all([this.productInfoReady_(), this.fetchData_(this.productId)]).then(() => {
this.init_();
this.initActions_();
this.showPlan_(false);
if(!!this.variantId_){
this.changeBuyNowText();
this.dispatchSubScribeIdChange_();
}
});
}
productInfoReady_() {
if(this.productInfo) {
return Promise.resolve();
}
SPZUtils.Event.listen(document,'load',()=> {
if(this.productInfo) {
return Promise.resolve();
}else{
return Promise.reject();
}
})
}
getElement_() {
this.titleEle = SPZCore.Dom.scopedQuerySelector(document.body, '[role="plugin-subscription-title"]');
this.noPlanTipsEle = SPZCore.Dom.scopedQuerySelector(this.element, '[role="plugin-subscription-plan-tips"]');
this.noPaymentTipsEle = SPZCore.Dom.scopedQuerySelector(this.element, '[role="plugin-subscription-payment-tips"]');
this.renderEle = SPZCore.Dom.scopedQuerySelector(this.element, '[role="plugin-subscription-content-render"]');
this.productEle = SPZCore.Dom.scopedQuerySelector(document.body, '[data-section-type="product"], [data-section-type="product_detail"], [data-section-type="product_club"]')
this.buyNowEle = SPZCore.Dom.scopedQuerySelector(this.productEle, '[data-click="submit"], [role="buyNow"]');
this.addToCartEle = SPZCore.Dom.scopedQuerySelector(this.productEle, '[data-click="addToCart"], [role="addToCart"]');
}
init_() {
this.cycle = this.defaultCycle_;
this.optionId_ = this.defaultOption_;
this.variantChangeData = this.productInfo;
}
initVariantId() {
const formData = this.getFormData();
if (formData) {
if(formData['variant_id'] && formData['variant_id'] !== 'undefined') {
this.variantId_ = formData['variant_id'];
}else{
this.variantId_ = ''
}
}else if(this.productInfo?.selected?.id){
this.variantId_ = this.productInfo.selected.id
}else{
this.variantId_ = ''
}
}
getFormData() {
this.form_ = this.element.closest('form');
if(!this.form_) {
return null;
}
const result = {
quantity: 1,
};
const formData = new FormData(this.form_);
const formDataKey = formData.keys();
for (const key of formDataKey) {
result[key] = formData.get(key);
}
return result;
}
showPlan_(rerender = false) {
if (!this.variantId_) {
return this.hide_();
}
if (rerender) {
this.renderPlan_();
}
}
renderPlan_() {
if (Object.keys(this.currentPlanData).length === 0) {
this.showNoPlanTips_(true);
this.showNoPaymentTips_(false);
this.showRender_(false);
if(this.noPlanShowTitle) {
this.showTitle_(true);
}else{
this.showTitle_(false);
}
return;
}
this.showRender_(true);
this.showNoPaymentTips_(true);
this.showTitle_(true);
this.showNoPlanTips_(false);
const selectedPlanItem = this.currentPlanData.selling_plan_options.filter((item) => item.selected_enabled === true)[0];
SPZ.whenApiDefined(this.renderEle).then((apis) => {
apis.render({ ...this.currentPlanData, originalPrice: this.originalPrice, selectedPlanItem }, false);
});
}
showTitle_(visible = true) {
if(this.titleEle) {
this.titleEle.toggleAttribute('hide', !visible);
}
}
showNoPlanTips_(visible = true) {
if(this.noPlanTipsEle) {
this.noPlanTipsEle.toggleAttribute('hide', !visible);
}
}
showNoPaymentTips_(visible = true) {
if(this.noPaymentTipsEle){
this.noPaymentTipsEle.toggleAttribute('hide', !visible);
}
}
showRender_(visible = true) {
if(this.renderEle){
this.renderEle.toggleAttribute('hide', !visible);
}
}
hide_() {
this.showTitle_(false);
this.element.toggleAttribute('hide', true);
}
show_() {
this.showTitle_(true);
this.element.toggleAttribute('hide', false);
}
dispatchSubScribeIdChange_() {
this.dispatchEvent_('payment_ec_refresh', {
sources: 'subscription'
});
}
dispatchEvent_(name, data) {
const event = SPZUtils.Event.create(this.win, name, data, { bubbles: true });
this.element.dispatchEvent(event);
}
initActions_() {
this.onVariantChange_();
this.element.addEventListener('change', (e) => {
if(e.target?.role === 'plugin-subscription-option-selector') {
this.onOptionChange_(e.target.value);
}
if(e.target?.role === 'plugin-subscription-option-card') {
this.changeCardOption_(e.target.value);
}
});
this.registerAction(
'changeCycle',
(invocation) => this.onCycleChange_(invocation.args?.selectedOptions[0])
);
this.registerAction('subscribeChange', (invocation) => {
this.dispatchSubScribeIdChange_(invocation.args);
});
this.addToCartEle.addEventListener('click', () => {
this.track_('add_to_cart');
});
this.buyNowEle.addEventListener('click', () => {
this.track_('add_to_cart');
});
this.submitInterrapt();
}
onVariantChange_() {
SPZUtils.Event.listen(document, 'dj.variantChange', (e) => {
if(this.variantId_ === e.detail?.selected?.id) {
return;
}
if(!this.variantId_ && e.detail?.selected?.id) {
this.show_();
}
this.variantId_ = e.detail.selected?.id;
this.optionId_ = this.defaultOption_;
this.cycle = this.defaultCycle_;
this.variantChangeData = Object.assign(this.variantChangeData, e.detail);
this.changeBuyNowText();
this.changeAddToCartText(e.detail);
this.showPlan_(true);
this.track_('product_view');
});
}
onOptionChange_(op, render = true) {
this.optionId_ = op;
this.changeBuyNowText();
if(render) {
this.showPlan_(true);
}
}
onCycleChange_(val, render = true) {
const cy = Number(val);
if (this.cycleList.includes(cy)) {
this.cycle = cy;
this.changeBuyNowText();
if(render) {
this.showPlan_(true);
}
}
}
submitInterrapt() {
if(!this.form_) {
window.djInterceptors.request.use((config) => {
if(config?.url === '/api/cart') {
return this.addToCartRequestData_(config);
}
if(config?.url === '/api/checkout/order') {
return this.checkoutOrderRequestData_(config);
}
})
}
}
addToCartRequestData_(config) {
const cartConfig = { ...config };
const hasProductId = cartConfig?.body?.product_id;
const hasVariantId = cartConfig?.body?.variant_id;
if(cartConfig?.method == 'POST' && hasProductId && hasVariantId) {
if (!cartConfig.body.properties) {
cartConfig.body.properties = {};
}
if(this.currentOption_) {
cartConfig.body.properties = {
...cartConfig.body.properties,
_selling_plan_option_id: this.currentOption_
}
}
}
return cartConfig;
}
checkoutOrderRequestData_(config) {
const orderConfig = { ...config };
const hasVariantId = orderConfig?.body?.line_items[0]?.variant_id;
if(orderConfig?.method == 'POST' && hasVariantId) {
if (!orderConfig.body.line_items[0].properties) {
orderConfig.body.line_items[0].properties = {};
}
if(this.currentOption_) {
orderConfig.body.line_items[0].properties = {
...orderConfig.body.line_items[0].properties,
_selling_plan_option_id: this.currentOption_
}
}
}
return orderConfig;
}
changeCardOption_(val) {
const oneTimeInputEle = document.querySelector('.one-time [role=plugin-subscription-option-card]');
if(val == 0) {
this.onCycleChange_(1, true);
oneTimeInputEle.toggleAttribute('disabled',true);
return;
}
oneTimeInputEle.toggleAttribute('disabled',false);
this.onCycleChange_(2, false);
this.onOptionChange_(val, true);
}
getContentChild_(el) {
if(el) {
const childs = el.childNodes;
for (let i = childs.length - 1; i >= 0; i--) {
const child = childs[i];
if (child.getAttribute && child.getAttribute('role') === 'content') {
return child;
}
}
}
return;
}
changeBuyNowText() {
let buyNowText = currentI18nProduct.buy_now;
let subscribeText = "Subscribe";
const contentEle = this.getContentChild_(this.buyNowEle);
// 1. 有role="content"的元素,替换role="content"的元素
if(contentEle) {
contentEle.innerHTML = this.isCycleSubscribe ? subscribeText : buyNowText;
}else{
// 2. 不存在role="content"的元素,直接替换文本
this.buyNowEle.innerHTML = this.isCycleSubscribe
? this.buyNowEle.innerHTML.replace(buyNowText, subscribeText) :
this.buyNowEle.innerHTML.replace(subscribeText, buyNowText);
}
}
changeAddToCartText(data) {
const contentEle = this.getContentChild_(this.addToCartEle);
// 1. 有role="content"的元素,移除role不等于content和loading的元素
if(contentEle) {
const addToCartChilds = this.addToCartEle.childNodes;
for (let i = addToCartChilds.length - 1; i >= 0; i--) {
const child = addToCartChilds[i];
// 移除元素(role不等于content和loading)
if (typeof child.getAttribute !== 'function' || (child.getAttribute('role') !== 'content' && child.getAttribute('role') !== 'loading')) {
this.addToCartEle.removeChild(child);
}
}
}else{
// 2. 不存在role="content"的元素,直接替换文本
const addToCartText = this.getAddToCartText_(data);
this.addToCartEle.innerHTML = addToCartText;
}
}
getAddToCartText_(data) {
const selected = data?.selected;
const productAvailable = data?.product?.available;
const variantAvailable = data?.selected?.available;
const variantId = data?.selected?.id;
let text = currentI18nProduct.add_to_cart;
if (!productAvailable) {
text = currentI18nProduct.sold_out;
}
if (selected && !variantId) {
text = currentI18nProduct.unavailable;
}
if (productAvailable && selected && variantId && !variantAvailable) {
text = currentI18nProduct.sold_out;
}
return text;
}
track_(eventName, optionSelected = this.isCycleSubscribe) {
if(window && window.sa && typeof window.sa.registerExtraInfo === 'function') {
window.sa.registerExtraInfo(eventName, {
function_name: "product_subscription",
module: "apps",
option_selected: optionSelected
}, optionSelected === null);
}
}
}
SPZ.defineElement('spz-custom-subscription', SpzCustomSubscription);
Purchase options:
Delivery frequency
Skip ,modify or cancel any time
${function() {
const blockStyle = 1;
const subscriptionLang = {"my_subscription":"My subscriptions","agree_to_subscription_terms":"By checking this box, you confirm that one or more items in your cart is a deferred or recurring purchase. Your subscription will automatically renew and your payment method will automatically be charged at the frequency listed on this page until you cancel it. You can change and cancel your subscription by clicking My Subscription. You accept and agree to the Subscription Policy.","agree_to_subscription_terms_error_message":"Please agree to the subscription terms to proceed with checkout","subscription_billing":"Subscription renewal charge","subscription_billing_tips":"After subscribing, you'll be billed automatically at regular intervals. You can check billing details or cancel anytime in your account's subscription management page after placing the order.","every_x_years":"Every {{ x }} year(s)","every_x_months":"Every {{ x }} month(s)","every_x_weeks":"Every {{ x }} week(s)","every_x_days":"Every {{ x }} day(s)","purchase_options":"Purchase options","subscribe":"Subscribe","save":"Save","delivery_frequency":"Delivery frequency","modify_tips":"Skip ,modify or cancel any time","one_time":"One-Time Purchase"};
const planTextLang = {
day: subscriptionLang.every_x_days,
week: subscriptionLang.every_x_weeks,
month: subscriptionLang.every_x_months,
year: subscriptionLang.every_x_years,
};
const regex = /\{\{\s*x\s*\}\}/;
return `
${function() {
const selected = data.cycles === 1 ? 'selected' : '';
return `
`
}()}
${function() {
const selected = data.cycles === 2 ? 'selected' : '';
return `
Subscribe
& Save
${ data.selectedPlanItem.discount_value }%
Delivery frequency
${function() {
const disabled = data.cycles === 1 ? 'disabled' : '';
return `
${data.selling_plan_options.map(item => {
const interval = item.interval;
const count = item.interval_count;
const planText = planTextLang[interval].replace(regex,count);
const selected = item.selected_enabled ? 'selected' : '';
return item.selected_enabled ? `
${planText}
`: `
${planText}
`
}).join('')}
`
}()}
${function() {
const checked = item.selected_enabled && data.cycles === 2 ? 'checked' : '';
const disabled = data.cycles === 1 ? 'disabled' : '';
return `
${function() {
const interval = item.interval;
const count = item.interval_count;
const planText = planTextLang[interval].replace(regex,count);
return `
${planText}
`
}()}
`
}()}
Skip ,modify or cancel any time
`
}()}
${function() {
const checked = data.cycles == 1 ? 'checked' : '';
const disabled = data.cycles == 1 ? 'disabled' : '';
return `
`
}()}
${function(){
const disabled = data.cycles === 1 ? 'disabled' : '';
return `
Subscribe
& Save
${
data.selling_plan_options.map(item => {
const checked = item.selected_enabled && data.cycles === 2 ? 'checked' : '';
const interval = item.interval;
const count = item.interval_count;
const planText = planTextLang[interval].replace(regex,count);
return `
${planText}
Save
Save ${ item.discount_value }%
`
}).join('')}
Skip ,modify or cancel any time
`
}()}
`;
}()}